/*--------------------------------------------------------------------
' File:		MultiPopClient.js
' Purpose:	Handle Multi Popup menu specific client-side issues
' Updated:	030827
' Version:	040502
' Edited:	TNY
' Status:	Release
' Copyright © Centroid Software Ab Oy 2000-2003, Finland
'				All rights reserved. 
'--------------------------------------------------------------------*/
/*--------------------------------------------------------------------
*  global variable scope
*-------------------------------------------------------------------*/
var Timer=-1;	//timeout timer
var waiter=-1;	//timeout timer
var s=-1;	//timeout timer	
var time=6000;	//normal timeout in ms
var clicked=-1;

/*--------------------------------------------------------------------
*  Function:		multiblinkOnImg
*  Purpose:		Opens "please wait"-layer  
*  Created:		021202 MRi
*  Updated:	
*---------------------------------------------------------------------*/
function multiblinkOnImg(a,b,themeGroups,targ,length,cg,layout,waittext){
	var hostname = 'THM'+a+'_'+b;
	var this_x; 				
	var this_y; 
	var width=m_sPopWidth;	//normal width
	
	//Doesn't work, own parametres can't be inserted into div
	if(bw.ns6)return;
	
	if(bAloaded==false)return;
	
	//if uppercase
	if(length==19){
		width=width-2;
	}
	
	if(!(isNaN(targ)) && cg==1){
		size=12;
	}
	
	this_x = parseInt(document.getElementById(hostname).left)+size;
	this_y = parseInt(document.getElementById(hostname).top);
	
	clearTimeout(s); 
	s = -1; 
	clearTimeout(waiter); 
	waiter = -1; 
	destroyLayer('Div',null);
	
	if(document.all['multiDiv']!=null){
		if(Timer>-1){
			clearTimeout(Timer); 
			Timer = -1; 
		}
		
		destroyLayer('multiDiv',null);
	}
	createLayer('Div',null,this_x,this_y,width,20+6,'<table><td><img src="../_Layouts/'+layout+'/Images/wait.gif" width=12 height=12><a class=waitItem valign=top>'+waittext+'</a></td></table>',m_sColor,'hidden',101);

	s=setTimeout("if(document.getElementById('Div')!=null && clicked==-1)document.getElementById('Div').style.visibility='visible';",700);
	waiter=setTimeout("if(clicked==-1)multiblinkOnImg2("+a+","+b+","+themeGroups+",'"+targ+"',"+width+","+cg+")",710);	
		
}
	
/*--------------------------------------------------------------------
*  Function:		multiblinkOnImg2
*  Purpose:		Opens a new layer including all the items in a certain region
*  Created:		021202 MRi
*  Updated:	
*---------------------------------------------------------------------*/
function multiblinkOnImg2(a,b,themeGroups,targ,w,cg){
	
	var hostname = 'THM'+a+'_'+b;	// mouseOver themeItem 
	var clientname				// other themeItems 
	var this_x 				// place of the popUp-layer
	var this_y 
	var n=0,i,j;
	var cnt="";	// Inner-html
	var link	// Inner-html link
	var target;
	var width=w;
	
	//if CityGis-mode	
	if(cg==1){
		maxItems=250;
	}
	else{
		
		target="_new";
	}
	
	
	for(i=0; i<=themeGroups; i++){
			if(document.getElementById('THM'+i+'_1')!=null){	//if elements in a group
			  if(document.getElementById('THM'+i+'_1').style.visibility=='visible'){	 //if elements visible
				for(j=0; j<maxItems; j++){
					clientname='THM'+i+'_'+j;
			
					if(document.getElementById(clientname)!=null){	//if div exists 
					
						if(document.getElementById(clientname).link!=''){
							if(!(isNaN(document.getElementById(clientname).target))){
								link = "<a class=popMenuItem onclick=OpenNewWindow('"+document.getElementById(clientname).link+"',100,100,"+parseInt(document.getElementById(clientname).target)+",0);SetLocation('"+parseInt(document.getElementById(clientname).left)+"','"+parseInt(document.getElementById(clientname).top)+"'); onmouseover=blinkOn(event); onmouseout=blinkOff(event);>&nbsp";			
							}	
							else{	
								link = "<a class=popMenuItem onclick=OpenNewWindow('"+document.getElementById(clientname).link+"',350,425,'newwindow',0);SetLocation('"+parseInt(document.getElementById(clientname).left)+"','"+parseInt(document.getElementById(clientname).top)+"'); onmouseover=blinkOn(event); onmouseout=blinkOff(event);>&nbsp";
							}
						}
						else{
							link = "<a class=popMenuItem>&nbsp";	
						}
						if(document.getElementById(clientname).style.visibility=='visible' && parseInt(document.getElementById(clientname).left) >= parseInt(document.getElementById(hostname).left)-size && parseInt(document.getElementById(clientname).left) <= parseInt(document.getElementById(hostname).left)+size && parseInt(document.getElementById(clientname).top) >= parseInt(document.getElementById(hostname).top)-size && parseInt(document.getElementById(clientname).top) <= parseInt(document.getElementById(hostname).top)+size){ //if inside the square
							cnt+= "<table><td nowrap>"+document.getElementById(clientname).src+link+document.getElementById(clientname).label+"</a></td></table>"; 								
							n++;
							if(document.getElementById(clientname).length==19){
								width=153;
							}
					
						}
					}
				}
			  }
			}
	}
		
	//popup will be created if needed
	if(n>0 && document.getElementById('multiDiv')==null && document.getElementById('Div')!=null){		//Only one popup can be visible at a time
		
			this_x = parseInt(document.getElementById(hostname).left)+size;
			this_y = parseInt(document.getElementById(hostname).top);
			destroyLayer('Div',null);
			createLayer('multiDiv',null,this_x,this_y,width,n*20+6,cnt,m_sColor,'visible',101);
	}
	
}


/*--------------------------------------------------------------------
*  Function:		multiblinkOffImg
*  Purpose:		Closes the popup layer 
*  Created:		021115 MRi
*  Updated:	
*---------------------------------------------------------------------*/
function multiblinkOffImg(targ){
		
	if(document.getElementById('multiDiv')!=null || document.getElementById('Div')!=null){
			if(!(isNaN(targ))){
				time=10000;
			}
			if(Timer>-1){
				clearTimeout(Timer); 
				Timer=-1;
			}
	
			if(document.getElementById('Div')!=null){
				clearTimeout(waiter); 
				waiter = -1; 
				destroyLayer('Div',null);
			}
		
			if(document.getElementById('Div')==null){
				Timer=setTimeout("destroyLayer('multiDiv',null)", time);
			}	
	}	
}


/*--------------------------------------------------------------------
*  Function: BrowserCheck
*  Purpose:	 BrowserCheck
*-------------------------------------------------------------------*/
function BrowserCheck(){  
	this.ver=navigator.appVersion 
	this.agent=navigator.userAgent 
	this.dom=document.getElementById?1:0 
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie=this.ie4||this.ie5||this.ie6 
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.bw=(this.ie6 || this.ie5 || this.ns6 ) 
	return this 
} 


// automatically create the "bw" object

bw = new BrowserCheck()

/*--------------------------------------------------------------------
*  Function:		createLayer
*  Purpose:		Creates a new layer in multipopupclient.js
*  Created:		021115 MRi
*  Updated:	
*---------------------------------------------------------------------*/
function createLayer(id,nestref,left,top,width,height,content,bgColor,visibility,zIndex) {
	var parentlayerobj=document.body;
	h=height-2;
	marginstart="<table border=1 bordercolor='"+m_sOuterbordercolor+"' width="+width+" height="+h+" valign=top align=left cellspacing=0><td bordercolor='"+m_sInnerbordercolor+"'>";
	
	marginend="</td></table>";

	if (bw.ie5 || bw.ie6) {
		var str = '\n<DIV id='+id+' onclick=destroyLayer("multiDiv",null); style="position:absolute; left:'+left+'; top:'+top+'; width:'+width
		str += '; height:'+height
		str += '; clip:rect(0,'+width+','+height+',0)'
		if (bgColor!=null) str += '; background-color:'+bgColor		
		if (zIndex!=null) str += '; z-index:'+zIndex
		if (visibility) str += '; visibility:'+visibility
		str += ';">'+marginstart+((content)?content:'')+marginend+'</DIV>'
		parentlayerobj.insertAdjacentHTML("BeforeEnd",str)
		
	}
}

/*--------------------------------------------------------------------
*  Function:		destroyLayer
*  Purpose:		Deletes a layer
*  Created:		021115 MRi
*  Updated:	
*---------------------------------------------------------------------*/
function destroyLayer(id,nestref){
	
	if (bw.ie5 || bw.ie6) {
		if(document.all[id]!=null){
			clicked=-1;
			document.all[id].innerHTML = ""
			document.all[id].outerHTML = ""
		}
	}
}
