var STARTING_Z_INDEX=1000;
var siteem_win_al=[];
siteemWinGetWinSize=window.innerHeight?function(b_h){return b_h?innerHeight:innerWidth;}:function(b_h){return document.body[b_h?'clientHeight':'clientWidth'];};
siteemWinGetWinScroll=window.innerHeight?function(b_h){return b_h?pageYOffset:pageXOffset;}:function(b_h){return document.body[b_h?'scrollTop':'scrollLeft'];};
siteemWinSetStyle=function(ele,value){ele.style.cssText=value;ele.setAttribute("style",value);};
function siteem_win(content,title,imagePath,width,bLoading,top,left){
	var win=this;this.nsscrolltimer=null;this.imagePath=imagePath;this.uniqueid=++STARTING_Z_INDEX;
	siteem_win_al.push(this);
	this.width=width?width:500;this.top=top;this.left=left;
	this.winClientoutW=this.width+6;
	this.winClientinW=this.width+2;
	this.canFocusList={};
	this.content=[];this.tabIndex=0;
	this.onShow=null;this.onClose=null;this.bLoading=bLoading;
	var winContainer=document.createElement("div");
	document.body.appendChild(winContainer);
	siteemWinSetStyle(winContainer,"top:"+siteemWinGetWinScroll(true)+"px;left:"+siteemWinGetWinScroll(false)+"px;position:absolute;visibility:visible;width:100%;height:100%;background-image:url("+this.imagePath+"/transparent.gif);z-index:"+(win.uniqueid)+";");
	if(typeof(content)=="string"){
		var obj=document.createElement("div");obj.innerHTML=content;
		siteemWinSetStyle(obj,"position:relative;visibility:visible;display:inline;");
		this.content[0]=obj;
	}
	else if(typeof(content)=="object"){
		for(var i=0;i<content.length;i++){
			var obj=document.createElement("div");obj.innerHTML=content[i];
			//if(i==0)siteemWinSetStyle(obj,"position:relative;visibility:visible;display:inline;");
			if(i==0)siteemWinSetStyle(obj,"visibility:visible;display:inline;");
			else siteemWinSetStyle(obj,"position:relative;visibility:visible;display:none;");
			this.content[i]=obj;
		}
	}
	var buttons=[];
	var winPanel=document.createElement("div");var winBody=document.createElement("div");var winBar=document.createElement("div");
	var winBottom=document.createElement("div");var winTitle=document.createElement("div");var winClient=document.createElement("div");
	winTitle.id="siteem_drag_bar"+win.uniqueid;
	siteemWinSetStyle(winBody,"top:-10000px;left:-10000px;position:absolute;visibility:visible;display:block;z-index:"+(win.uniqueid+1));
	if(!this.bLoading)siteemWinSetStyle(winBar,"cursor:default;position:relative;top:0px;left:0px;");
	siteemWinSetStyle(winPanel,"text-align:center;");
	siteemWinSetStyle(winClient,"text-align:center;");
	siteemWinSetStyle(winTitle,"color:#000000;font-weight:bold;margin-top:4;padding-top:2;margin-left:4px;font-size:11pt;text-align:left;")
	if(!this.bLoading)winBottom.innerHTML="<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td height=\"10\"><\/td><\/tr><\/table>";
	if(this.bLoading)winClient.innerHTML="<table id=\"siteem_win_clienttbl"+this.uniqueid+"\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border:0px\"><tr><td id=\"siteem_win_client"+win.uniqueid+"\" align=\"center\"><\/td><\/tr><\/table>";
	else winClient.innerHTML="<table id=\"siteem_win_clienttb2"+this.uniqueid+"\" width=\""+this.winClientoutW+"\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"style=\"background-color:#ffffff;border-left:#66667E solid 1px;border-right:#66667E solid 1px;border-bottom:#66667E solid 1px;\"><tr><td align=\"center\"><table id=\"siteem_win_clienttbl"+this.uniqueid+"\" width=\""+this.winClientinW+"\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#E0DFE3;border-left:#66667E solid 1px;border-right:#66667E solid 1px;border-bottom:#66667E solid 1px;margin-bottom:1px\"><tr><td id=\"siteem_win_client"+win.uniqueid+"\" align=\"center\"><\/td><\/tr><\/table><\/td><\/tr><\/table>";
	winContainer.appendChild(winBody);
	if(!this.bLoading)winBody.appendChild(winBar);
	winBody.appendChild(winClient);
	var clientEle=document.getElementById("siteem_win_client"+win.uniqueid);
	if(clientEle){for(var i=0;i<this.content.length;i++)winPanel.appendChild(this.content[i]);clientEle.appendChild(winPanel);clientEle.appendChild(winBottom);}
	var html="<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td width=\"5\" height=\"29\"><img border=\"0\" src=\""+this.imagePath+"/left_focus.gif\" id=\"left_image"+win.uniqueid+"\"><\/td><td id=\"siteem_win_title"+win.uniqueid+"\" style=\"background-image:url("+this.imagePath+"/bg_focus.gif)\"><\/td>"+
	"<td width=\"29\" align=\"right\" valign=\"middle\" id=\"td_close"+win.uniqueid+"\" style=\"background-image:url("+this.imagePath+"/bg_focus.gif)\"><img border=\"0\" src=\""+this.imagePath+"/close_focus.gif\" id=\"siteem_win_close"+win.uniqueid+"\" style=\"cursor:default\"><\/td><td width=\"5\"><img border=\"0\" src=\""+this.imagePath+"/right_focus.gif\" id=\"right_image"+win.uniqueid+"\"><\/td><\/tr><\/table>";
	winBar.innerHTML=html;
	var ele=document.getElementById("siteem_win_title"+win.uniqueid);
	if(ele)ele.appendChild(winTitle);
	var agent=navigator.userAgent.toLowerCase();
	var ns=(agent.indexOf('mozilla')!=-1&&agent.indexOf('spoofer')==-1&&agent.indexOf('compatible')==-1&&agent.indexOf("opera")==-1&&agent.indexOf("firefox")==-1);
	var isIE=((agent.indexOf("msie")!=-1)&&(agent.indexOf("opera")==-1));
	var op=(agent.indexOf("opera")!=-1);
	var ff=(agent.indexOf('mozilla')!=-1&&agent.indexOf('spoofer')==-1&&agent.indexOf('compatible')==-1&&agent.indexOf("opera")==-1&&agent.indexOf("firefox")!=-1);
	this.mflag=false;
	this.attachEvent=function(){
		with(winBar){
			var x1,y1,l1,t1;
			if(isIE){
				onmousedown=function(){if(event.button!=1)return;this.setCapture();win.mflag=true;x1=event.clientX;y1=event.clientY;l1=winBody.style.pixelLeft;t1=winBody.style.pixelTop;};
				onmousemove=function(){if(win.mflag){winBody.style.pixelLeft=l1+event.clientX-x1;winBody.style.pixelTop=t1+event.clientY-y1;}};
				onmouseup=function(){this.releaseCapture();win.mflag=false;this.style.cursor='default';};
				onSelectStart=function(){return false;};
				onclick=function(){if(event.srcElement.id=="siteem_win_close"+win.uniqueid)win.hide();};
			}
			else{
				onmousedown=function(e){if(e.which!=1)return;if(e.target.id==("siteem_drag_bar"+win.uniqueid)){win.mflag=true;x1=e.clientX;y1=e.clientY;l1=winBody.offsetLeft;t1=winBody.offsetTop;}};
				onmousemove=function(e){if(win.mflag){winBody.style.left=l1+e.clientX-x1;winBody.style.top=t1+e.clientY-y1;}};
				onmouseup=function(e){win.mflag=false;};
				onSelectStart=function(){return false;};
				onclick=function(e){if(e.target.id=="siteem_win_close"+win.uniqueid)win.hide();};
			}
		}
	}
	this.buttons=buttons;this.body=winBody;this.panel=winPanel;
	this.bar=winBar;this.container=winContainer;this.bottom=winBottom;
	this.setTitle=function(val){if(val)winTitle.innerHTML=val;};
	this.setX=function(val){var x=siteemWinGetWinSize(false)-winBody.offsetWidth;winBody.style.left=(val?val:(x>0?parseInt(x/2):0));};
	this.setY=function(val){var t=siteemWinGetWinSize(true)-winBody.offsetHeight;winBody.style.top=(val?val:(t>0?parseInt(t/2):0));};
	this.setW=function(){winBody.style.width=this.winClientoutW};
	this.hide=function(){
		if(typeof(win.onClose)=="function")if(!win.onClose())return;
		win.hideOrShowOther("focus",win,"#66667E","#000000");
		if(winContainer.parentNode)
			winContainer.parentNode.removeChild(winContainer);
		win.clearScrollTimer();siteem_win_al.pop();
		if(siteem_win_al.length){var w=siteem_win_al[siteem_win_al.length-1];w.attachEvent();w.focusFirst();}
	};
	this.show=function(){
		win.hideOrShowOther("blur",win,"#C9C9D7","#A2A1A1");this.setW();this.setX(this.left);this.setY(this.top);
		this.retrieveCanFocusList();var oldSt=siteemWinGetWinScroll(true);var oldSl=siteemWinGetWinScroll();this.focusFirst();if(ns||ff){document.body.scrollTop=oldSt;document.body.scrollLeft=oldSl;};if(typeof(this.onShow)=="function"){this.onShow();}
	};
	this.ffnsscroll=function(){
		var dy=winBody.offsetTop;
		document.body.scrollTop = dy;
	}	
	this.reShow=function(){this.setX(this.left);this.setY(this.top);};
	this.hideOrShowOther=function(hide,obj,color,color1){if(siteem_win_al.length>1)siteem_win_al[siteem_win_al.length-2].hideOrShow(hide,color,color1);};
	this.hideOrShow=function(hide,color,color1){
		var li=document.getElementById("left_image"+win.uniqueid);var wt=document.getElementById("siteem_win_title"+win.uniqueid);
		var tc=document.getElementById("td_close"+win.uniqueid);var wc=document.getElementById("siteem_win_close"+win.uniqueid);
		var ri=document.getElementById("right_image"+win.uniqueid);
		var ele=document.getElementById("siteem_win_clienttbl"+win.uniqueid);var ele2=document.getElementById("siteem_win_clienttb2"+win.uniqueid);
		if(ele){ele.style.borderLeftColor=color;ele.style.borderRightColor=color;ele.style.borderBottomColor=color;}
		if(ele2){ele2.style.borderLeftColor=color;ele2.style.borderRightColor=color;ele2.style.borderBottomColor=color;}
		if(li)li.src=win.imagePath+"/left_"+hide+".gif";if(wt)wt.style.backgroundImage="url("+win.imagePath+"/bg_"+hide+".gif)";
		if(tc)tc.style.backgroundImage="url("+win.imagePath+"/bg_"+hide+".gif)";if(wc)wc.src=win.imagePath+"/close_"+hide+".gif";
		if(ri)ri.src=win.imagePath+"/right_"+hide+".gif";
		siteemWinSetStyle(winTitle,"color:"+color1+";font-weight:bold;margin-top:4;padding-top:2;margin-left:4px;font-size:12pt;text-align:left;");
	};
	this.setOnShow=function(onShow){this.onShow=onShow;};
	this.setOnClose=function(onClose){this.onClose=onClose};
	this.addButton=function(text,name,exeType,cb,disable,width,target){
		var btn=document.createElement("input");
		btn.name=name;btn.id=name;btn.type="button";btn.value=text;btn.disabled=disable;
		btn.style.width=width?width:80;btn.style.height=24;btn.style.fontSize=12;btn.style.marginLeft=5;btn.style.marginRight=5;
		if(clientEle)clientEle.insertBefore(btn,winBottom);
		btn.execute=new Function();
		exeType=(exeType?exeType:"").toLowerCase();
		switch(exeType){
			case "hide":btn.onclick=win.hide;break;
			case "js":btn.onclick=cb;break;
			case "url":if(typeof(cb)!="string")break;if(target==null||target=="")target="_blank";btn.onclick=function(){open(cb,target);};break;
		}
		buttons[buttons.length]=btn;
		return btn;
	};
	this.startScroll=function(){
		if(this.mflag)return;var st=siteemWinGetWinScroll(true);var sl=siteemWinGetWinScroll(false);
		for(var n_id=0;n_id<siteem_win_al.length;n_id++){if(siteem_win_al[n_id].container){siteem_win_al[n_id].container.style.top=st;siteem_win_al[n_id].container.style.left=sl;}}
	}
	this.startScrollTimer=function(){if(this.nsscrolltimer==null)this.nsscrolltimer=setInterval(this.startScroll,100);};
	this.clearScrollTimer=function(){if(this.nsscrolltimer){clearInterval(this.nsscrolltimer);this.nsscrolltimer=null;}};
	this.setTitle(title);
	this.attachEvent();
	if((ns)||(ff))this.startScrollTimer();
	this.retrieveCanFocusList=function(){
		var prevele=null;var firstele=null;var bFirst=true;
		var uid=0;
		function recursiveGetChildren(obj,lst){
			for(var i=0;i<obj.childNodes.length;i++)
			{
				var ele=obj.childNodes[i];if((ele.style)&&(ele.style.display)&&(ele.style.display=="none"))continue;
				if((ele.disabled)&&(ele.disabled))continue;
				if((ele.type)&&(ele.type=="hidden"))continue;
				var tn=ele.nodeName.toLowerCase();
				if((tn=="input")||(tn=="textarea")||(tn=="select")){
					if(bFirst){firstele=ele;bFirst=false;}
					ele.uid=(++uid);
					if(prevele)win.canFocusList[prevele.uid][2]=ele;
					lst[ele.uid]=[ele,false,null];
					prevele=ele;
					ele.onfocus=function(){var l=win.canFocusList[this.uid];if(l)l[1]=true;return true;};
					ele.onblur=function(){var l=win.canFocusList[this.uid];if(l)l[1]=false;return true;};
				}
				else recursiveGetChildren(ele,lst);
			}
		}
		recursiveGetChildren(winClient,this.canFocusList);
		if(prevele)win.canFocusList[prevele.uid][2]=firstele;
	};
	this.focusFirst=function(){for(attr in this.canFocusList){var l=this.canFocusList[attr];if(typeof(l)=="function")continue;l[0].focus();break;}};
	this.setBgColor=function(color){var ele=document.getElementById("siteem_win_clienttbl"+win.uniqueid);if(ele)ele.style.backgroundColor=color;}
	window.onscroll=function(e){
		var st=siteemWinGetWinScroll(true);var sl=siteemWinGetWinScroll(false);
		for(var n_id=0;n_id<siteem_win_al.length;n_id++){if(siteem_win_al[n_id].container){siteem_win_al[n_id].container.style.top=st;siteem_win_al[n_id].container.style.left=sl;}}
	};
	window.onresize=function(e){for(var n_id=0;n_id<siteem_win_al.length;n_id++)siteem_win_al[n_id].reShow();};
	this.handleKeydown=function(E){
		var key;
		if(isIE)key=event.keyCode;else key=E.which;
		if(siteem_win_al.length){
			if(key==9){/*tab*/
				var w=siteem_win_al[siteem_win_al.length-1];
				var bFinded=false;var bFirst=true;var firstl=null;
				for(attr in w.canFocusList){
					var l=w.canFocusList[attr];
					if(typeof(l) == "function") continue;
					if(bFirst){bFirst=false;firstl=l;};
					if(l[1]){
						bFinded=true;
						if(l[2]!=l[0])l[2].focus();
						break;
					}
				}
				if((!bFinded)&&(firstl))firstl[0].focus();
				return false;
			}
			else if(key==27)/*escape*/{var w=siteem_win_al[siteem_win_al.length-1];if(!w.bLoading){w.hide();return false;}}
		}
		return true;
	};
	if(ns||op)window.onkeydown=this.handleKeydown;
	else document.onkeydown=this.handleKeydown;
	this.changeTab=function(prev,cb){
		if(this.content.length<=1)return;
		if(this.tabIndex<0)this.tabIndex=0;if(this.tabIndex>=this.content.length)this.tabIndex=this.content.length-1;
		var newTabIndex;
		if(prev){
			if(this.tabIndex==0)return;
			newTabIndex=this.tabIndex-1;
		}
		else{
			if(this.tabIndex==(this.content.length-1))return;
			newTabIndex=this.tabIndex+1;
		}
		if(newTabIndex==this.tabIndex)return;
		this.tabIndex=newTabIndex;
		for(var i=0;i<this.content.length;i++){
			var ct=this.content[i];
			if(i!=this.tabIndex)ct.style.display="none";
			else ct.style.display="inline";
		}
		cb();
		this.retrieveCanFocusList();this.focusFirst();
	};
	this.getSource=function(){var ta=document.createElement("textarea");document.body.appendChild(ta);ta.value=winContainer.innerHTML;};
}