﻿//create by 彭卓异
var INNER_TITLE="";
var INNER_CONTENT="";
var INNER_WIDTH="400px";
var INNER_HEIGHT="100px";
var YING_WIDTH="";
var YING_HEIGHT="";
var shieldAlpha = 20;
var rolinShield;
var rolinShieldSw; //屏蔽层开关，当值为"no"时，rolinShield屏蔽关闭

var jsArrDom =new Array();
var jsArrDom2 =new Array();

var jsArrCall =new Array();
var jsArrCall2 =new Array();

var maxNum=3;
var floatType="";
var floatSpanName="";
//行业和领域筛选框弹出（title:标题,width:宽度,height:高度,maxnum:多选数量限制,floattype:是行业call还是领域dom）
function pzyFloatBegin(title,width,height,maxnum,floattype){
	maxNum=maxnum;
	floatType=floattype;
	if(floatType=="dom"){
		pzyFloat(title,document.getElementById("strContent").innerHTML,width,height);
		document.getElementById("haveChkDom").innerHTML=jsArrDom;
	}else if(floatType=="call"){
		pzyFloat(title,document.getElementById("strContent2").innerHTML,width,height);
		document.getElementById("haveChkCall").innerHTML=jsArrCall;
	}
	
}
//行业和领域筛选框弹出（title:标题,width:宽度,height:高度,maxnum:多选数量限制,floattype:是行业call还是领域dom,alphaDeep:背景灰阶）
function pzyFloatBegin2(title,width,height,maxnum,floattype,alphaDeep){
	shieldAlpha=alphaDeep;
	maxNum=maxnum;
	floatType=floattype;
	if(floatType=="dom"){
		pzyFloat(title,document.getElementById("strContent").innerHTML,width,height);
		document.getElementById("haveChkDom").innerHTML=jsArrDom;
	}else if(floatType=="call"){
		pzyFloat(title,document.getElementById("strContent2").innerHTML,width,height);
		document.getElementById("haveChkCall").innerHTML=jsArrCall;
	}
	
}
//行业和领域筛选框弹出,多组件共存（title:标题,width:宽度,height:高度,maxnum:多选数量限制,floattype:是行业call还是领域dom,alphaDeep:背景灰阶）
function pzyFloatBegin3(title,width,height,maxnum,floattype,alphaDeep,spanName){
	floatSpanName=spanName;
	shieldAlpha=alphaDeep;
	maxNum=maxnum;
	floatType=floattype;
	if(floatType=="dom"){
		pzyFloat(title,document.getElementById("strContent").innerHTML,width,height);
		document.getElementById("haveChkDom").innerHTML=jsArrDom;
	}else if(floatType=="call"){
		pzyFloat(title,document.getElementById("strContent2").innerHTML,width,height);
		document.getElementById("haveChkCall").innerHTML=jsArrCall;
	}
	
}
//普通框弹出（title:标题,width:宽度,height:高度,alphaDeep:背景灰阶）
function comFloatBegin(title,width,height,alphaDeep){
		shieldAlpha=alphaDeep;
		pzyFloat(title,document.getElementById("strContent").innerHTML,width,height);
		
}
//普通框弹出 框后阴影位置自定义调整（title:标题,width:宽度,height:高度,alphaDeep:背景灰阶,ywidth:背影宽度,yheight:背影高度）
function comFloatBegin2(title,width,height,alphaDeep,ywidth,yheight){
		shieldAlpha=alphaDeep;
		YING_WIDTH=ywidth;
		YING_HEIGHT=yheight;
		pzyFloat(title,document.getElementById("strContent").innerHTML,width,height);
}

//普通框弹出带内容（title:标题,width:宽度,height:高度,alphaDeep:背景灰阶）
function comFloatBegin3(title,width,height,alphaDeep,comContent){
		shieldAlpha=alphaDeep;
		pzyFloat(title,comContent,width,height);
}

function chkChk(domId,domName,type,floattype){
	
	floatType=floattype;
	if(floatType=="dom"){
		var tempStr=" <input type='checkbox' name='x3' value='"+domId+"' checked='checked' onclick=chkChk('"+domId+"','"+domName+"',1,'dom') />"+domName;
		if(document.getElementById("domChk"+domId) && !document.getElementById("domChk"+domId).checked){
			if(jsArrDom.length>maxNum-1 && maxNum!=1){
				alert("最多只可选"+maxNum+"个子项");
				return;
			}
			if(type==1){
				document.getElementById("domChk"+domId).checked="checked";
			}
			if(maxNum==1){
				jsArrDom=new Array();
				jsArrDom2=new Array();
				jsArrDom.push(tempStr); 
				jsArrDom2.push(domId);
			}else{
				jsArrDom.push(tempStr); 
				jsArrDom2.push(domId);
			}
			document.getElementById("haveChkDom").innerHTML=jsArrDom;
			if(floatSpanName!="" && document.getElementById(floatSpanName)){
				document.getElementById(floatSpanName).innerHTML=jsArrDom;
			}else{
				document.getElementById("domSpan").innerHTML=jsArrDom;
			}
			
			if(maxNum==1){
				closeBtnClick();
				if(document.getElementById("domButton") && floatType=="dom"){
			   		document.getElementById("domButton").value=domName;
			    }
			}
		}else{
			if(maxNum!=1){
				if(document.getElementById("domChk"+domId)){
					if(type==1){
						document.getElementById("domChk"+domId).checked="";
					}
				}
				var j=0;
				for(i=0;i<jsArrDom.length;i++){
					if(jsArrDom[i]==tempStr){
						break;
					}
					j++;
				}
				jsArrDom.splice(j,1);
				jsArrDom2.splice(j,1);
				
			}else if(maxNum==1){
				if(document.getElementById("domButton") && floatType=="dom"){
					closeBtnClick();
					jsArrDom=[];
					jsArrDom2=[];
	   				document.getElementById("domButton").value="选择/修改";
	    		}
			}
			document.getElementById("haveChkDom").innerHTML=jsArrDom;
			if(floatSpanName!="" && document.getElementById(floatSpanName)){
				document.getElementById(floatSpanName).innerHTML=jsArrDom;
			}else{
				document.getElementById("domSpan").innerHTML=jsArrDom;
			}
		}
	}else if(floatType=="call"){
		var tempStr=" <input type='checkbox' name='x3' value='"+domId+"' checked='checked' onclick=chkChk('"+domId+"','"+domName+"',1,'call') />"+domName;
		if(document.getElementById("domChk"+domId) && !document.getElementById("domChk"+domId).checked){
			if(jsArrCall.length>maxNum-1 && maxNum!=1){
				alert("最多只可选"+maxNum+"个子项");
				return;
			}
			if(type==1){
				document.getElementById("domChk"+domId).checked="checked";
			}
			if(maxNum==1){
				jsArrCall=new Array();
				jsArrCall2=new Array();
				jsArrCall.push(tempStr); 
				jsArrCall2.push(domId);
			}else{
				jsArrCall.push(tempStr); 
				jsArrCall2.push(domId);
			}
			document.getElementById("haveChkCall").innerHTML=jsArrCall;
			if(floatSpanName!="" && document.getElementById(floatSpanName)){
				document.getElementById(floatSpanName).innerHTML=jsArrCall;
			}else{
				document.getElementById("callSpan").innerHTML=jsArrCall;
			}
			
			if(maxNum==1){
				closeBtnClick();
				if(document.getElementById("callButton") && floatType=="call"){
			   		document.getElementById("callButton").value=domName;
			    }
			}
		}else{
			
			if(maxNum!=1){
				if(document.getElementById("domChk"+domId)){
					if(type==1){
						document.getElementById("domChk"+domId).checked="";
					}
				}
				var j=0;
				for(i=0;i<jsArrCall.length;i++){
					if(jsArrCall[i]==tempStr){
						break;
					}
					j++;
				}
				jsArrCall.splice(j,1);
				jsArrCall2.splice(j,1);
				
			}else if(maxNum==1){
				if(document.getElementById("callButton") && floatType=="call"){
					closeBtnClick();
					jsArrCall=[];
					jsArrCall2=[];
	   				document.getElementById("callButton").value="选择/修改";
	    		}
			}
			document.getElementById("haveChkCall").innerHTML=jsArrCall;
			if(floatSpanName!="" && document.getElementById(floatSpanName)){
				document.getElementById(floatSpanName).innerHTML=jsArrCall;
			}else{
				document.getElementById("callSpan").innerHTML=jsArrCall;
			}
		}
	}
	
}
function chkChk2(){
	if(floatType=="dom"){
		for(i=0;i<jsArrDom2.length;i++){
			if(document.getElementById("domChk"+jsArrDom2[i])){
				document.getElementById("domChk"+jsArrDom2[i]).checked="checked";
			}
		}
	}else if(floatType=="call"){
		for(i=0;i<jsArrCall2.length;i++){
			if(document.getElementById("domChk"+jsArrCall2[i])){
				document.getElementById("domChk"+jsArrCall2[i]).checked="checked";
			}
		}
	}
}
function chkLastOk(){
	if(floatType=="dom"){
		if(floatSpanName!="" && document.getElementById(floatSpanName)){
			document.getElementById(floatSpanName).innerHTML=jsArrDom;
		}else{
			document.getElementById("domSpan").innerHTML=jsArrDom;
		}
	}else if(floatType=="call"){
		if(floatSpanName!="" && document.getElementById(floatSpanName)){
			document.getElementById(floatSpanName).innerHTML=jsArrCall;
		}else{
			document.getElementById("callSpan").innerHTML=jsArrCall;
		}
	}
	closeBtnClick();
}
function chgSpanNameValue(strvalue){
	floatSpanName=strvalue;
}
/********************************************/


function rAlert() {
	var closeBtn;
	var dBody = document.getElementsByTagName("BODY")[0];
	
	var ch = document.documentElement.clientHeight;
	var bh = ( ch > dBody.scrollHeight ) ? ch:dBody.scrollHeight;
	
	noSeeSelect("hidden");
	
	rolinShield = document.createElement("DIV");
	rolinShield.id = "shield";
	var arr = [["position","absolute"],
	     ["left","0px"],
	     ["top","0px"],
	     ["width",document.body.offsetLeft*2+document.body.clientWidth],
	     ["height",bh + "px"],
	     ["zIndex","2000"],
	     ["filter","alpha(opacity="+shieldAlpha+")"],
	     ["opacity",shieldAlpha/100],
	     ["textAlign","center"],
	     ["background","#000"]];
	for (var i=0; i<arr.length; i++) {
	   rolinShield.style[arr[i][0]] = arr[i][1];
	}
	if(rolinShieldSw!="no"){
		dBody.appendChild(rolinShield);
	}
	
	var mainWindow = document.getElementById("pzyRolinWindow");
	mainWindow.className = "pzyRolinWindow";
	mainWindow.style.width=INNER_WIDTH;
	
	var h1 = document.getElementById("pzyH1");
	h1.innerHTML = INNER_TITLE+"<span>[关闭]</span>";
	
	var main = document.getElementById("pzyRMain");
	main.className = "pzyRMain";
	main.innerHTML=INNER_CONTENT;
	main.style.height=INNER_HEIGHT;
	
	mainWindow.style.left = "45%";
	mainWindow.style.top = "50%";
	mainWindow.style.left = mainWindow.offsetLeft - mainWindow.offsetWidth/2 + "px";
	mainWindow.style.top = parseInt(document.documentElement.scrollTop+document.documentElement.clientHeight/2-190) + "px";
	mainWindow.style.zIndex = 2001;
	
	mainWindow.style.display="";
	if(document.getElementById("yinYingCeng")){
		document.getElementById("yinYingCeng").style.display="";
		document.getElementById("yinYingCeng").style.top=parseInt(mainWindow.style.top)-9+"px";
		document.getElementById("yinYingCeng").style.left=parseInt(mainWindow.style.left)-8+"px";
		if(YING_WIDTH!="" && YING_HEIGHT!="")
		{
			document.getElementById("yinYingCeng").style.width=YING_WIDTH;
			document.getElementById("yinYingCeng").style.height=YING_HEIGHT;
		}else{
			document.getElementById("yinYingCeng").style.width=parseInt(INNER_WIDTH)+17+"px";
			document.getElementById("yinYingCeng").style.height=parseInt(INNER_HEIGHT)+51+"px";
		}
	}
	
	if(document.getElementById("pzyScrollbar")){
		document.getElementById("pzyScrollbar").style.width=parseInt(INNER_WIDTH)-5+"px";
		document.getElementById("pzyScrollbar").style.height=parseInt(INNER_HEIGHT)-5+"px";
	}
	
	closeBtn = h1.getElementsByTagName("SPAN")[0];
	closeBtn.onclick = function(event) {
		floatSpanName="";
		if(document.getElementById("yinYingCeng")){
			document.getElementById("yinYingCeng").style.display="none";
		}
	   mainWindow.style.display="none";
	   if(rolinShield.parentNode){
			rolinShield.parentNode.removeChild(rolinShield);
	   }
	   wsug(event, 0);
	   noSeeSelect("");
	   return;
	}
	
	h1.onmousedown = function(ev) {
	   offsetY = getMouse(ev)[1] - mainWindow.offsetTop;
	   offsetX = getMouse(ev)[0] - mainWindow.offsetLeft;
	   rolinDrag(mainWindow,offsetX,offsetY,bh);
	   if(document.getElementById("yinYingCeng")){
		document.getElementById("yinYingCeng").style.top=parseInt(mainWindow.style.top)-9+"px";
		document.getElementById("yinYingCeng").style.left=parseInt(mainWindow.style.left)-8+"px";
	   }
	}
	h1.onmousemove = function(ev) {
	   if(document.getElementById("yinYingCeng")){
		document.getElementById("yinYingCeng").style.top=parseInt(mainWindow.style.top)-9+"px";
		document.getElementById("yinYingCeng").style.left=parseInt(mainWindow.style.left)-8+"px";
	   }
	}
}

function closeBtnClick(event){
		floatSpanName="";
		if(document.getElementById("yinYingCeng")){
			document.getElementById("yinYingCeng").style.display="none";
		}
	   document.getElementById("pzyRolinWindow").style.display="none";
	   if(rolinShield.parentNode){
			rolinShield.parentNode.removeChild(rolinShield);
	   }
	   wsug(event, 0);
	   noSeeSelect("");
	   
}

function rolinDrag(obj,offsetX,offsetY,bh) {
var bw = document.documentElement.clientWidth;

document.onmousemove = rolinmove;
document.onmouseup = rolinScrollUp;

function rolinmove(ev) {
  
   var t = getMouse(ev)[1] - offsetY;
   var l = getMouse(ev)[0] - offsetX;
  
   if ((l + obj.offsetWidth )<= bw && (l ) >= 0) obj.style.left = l + "px";
   obj.style.top = t + "px";
  
   return false;
} 
function rolinScrollUp() {
   document.onmousemove = null;
   document.onmouseup = null;
}


}
function getMouse(ev) {
   var ev = ev || window.event;
   if (ev.x) {
    nx = ev.x;
    ny = ev.y;
   } else {
    nx = ev.pageX;
    ny = ev.pageY;
   }
   return [nx,ny];
}

function noSeeSelect(state) {
	var objl = document.getElementsByTagName("select");
	for (var i = 0; i < objl.length; i++) {
		objl[i].style.visibility = state;
	}
}
function pzyFloat(innerTitle,innerContent,innerWidth,innerHeight){
	INNER_TITLE=innerTitle;
	INNER_CONTENT=innerContent;
	INNER_WIDTH=innerWidth;
	INNER_HEIGHT=innerHeight;
	rAlert();
	
}

/***********************************************/

function wsug(e, str){ 
	var oThis = arguments.callee;
	
	if(!str) {
		if(oThis.sug){
			oThis.sug.style.visibility = 'hidden';
			document.onmousemove = null;
		}
		return;
	} 
	if(!oThis.sug){
		var div = document.createElement('div'), css = 'top:0; left:0; position:absolute;z-index:10002; visibility:hidden';
		div.style.cssText = css;
		div.setAttribute('style',css);
		
		var sug = document.createElement('div'), css= 'font:normal 12px/16px "宋体"; white-space:nowrap; color:#666; padding:3px; position:absolute; left:0; top:0; background:#f9fdfd; border:1px solid #0aa';
		sug.style.cssText = css;
		sug.setAttribute('style',css);
		
		var dr = document.createElement('div'), css = 'position:absolute; top:3px; left:3px; background:#333; filter:alpha(opacity=50); opacity:0.5; ';
		dr.style.cssText = css;
		dr.setAttribute('style',css);
		
		var ifr = document.createElement('iframe'), css='position:absolute; left:0; top:0;  filter:alpha(opacity=0); opacity:0';
		ifr.style.cssText = css;
		ifr.setAttribute('style',css);
		div.appendChild(ifr);
		div.appendChild(dr);
		div.appendChild(sug);
		div.sug = sug;
		document.body.appendChild(div);
		
		oThis.sug = div;
		oThis.dr = dr;
		oThis.ifr = ifr;
		div = dr = ifr = sug = null;
	}
	var e = e || window.event, obj = oThis.sug, dr = oThis.dr, ifr = oThis.ifr;
	obj.sug.innerHTML = str;
	//obj.sug.onmouseout=function(){mouseoutOper(obj.sug, e);}
	
	var w = obj.sug.offsetWidth, h = obj.sug.offsetHeight, dw = document.documentElement.clientWidth||document.body.clientWidth; dh = document.documentElement.clientHeight || document.body.clientHeight;
	var st = document.documentElement.scrollTop || document.body.scrollTop, sl = document.documentElement.scrollLeft || document.body.scrollLeft;
	var left = e.clientX +sl +17 + w < dw + sl && e.clientX + sl + 15 || e.clientX +sl-8 - w, top = e.clientY + st +17 + h < dh + st && e.clientY + st + 17 || e.clientY + st - 5 - h;
	obj.style.left = left-10 + 'px';
	obj.style.top = top-10 + 'px';
	dr.style.width = w + 'px';
	dr.style.height = h + 'px';
	ifr.style.width = w + 3 + 'px';
	ifr.style.height = h + 3 + 'px';
	obj.style.visibility = 'visible';
}

//我们预期只有当鼠标从div中移开的时候才会触发onmouseout事件，可是，事实上，当我们移到div中的元素时，例如本例中的a标签时，就会触发onmousout事件。此方法能解决问题
function mouseoutOper(obj, e) {
	if(e.currentTarget) {
	   if(e.relatedTarget != obj) {if(obj != e.relatedTarget.parentNode){wsug(e, 0);}}
	}else{
	   if(e.toElement != obj) {if(obj != e.toElement.parentNode){wsug(e, 0);}}
	}
}

