var displayedTip,ttImg;

function toggleDisplayStyle(elId)
{
	if(elId != null)
	{
		el = document.getElementById(elId);
		if(!el)
			return;
		el.style.display = el.style.display == 'block' ? 'none' : 'block';
	}
}



function faq_ShowOrHideAll (catID)
{
var buttonID = 'input'+catID;
var buttonHS = document.getElementById(buttonID);

if (buttonHS.childNodes[0].nodeValue.indexOf(showAllAnswers) > -1)
	{
		
		eval("buttonHS.childNodes[0].nodeValue = hideAllAnswers;");
		faq_ShowAll(catID);
	}
else
	{
		eval("buttonHS.childNodes[0].nodeValue = showAllAnswers;");
		faq_HideAll(catID);
	}

}

function faq_ShowAll(catID)
{
var buttonID = 'input'+catID;
var divs = document.getElementsByTagName("span");

	for (var i = 0; i < divs.length; i++)
	{
		var divId = divs[i].id;
		if ( divId > 100000*catID )
		if (divId<100000*(catID+1))
		{
			eval("document.getElementById('" + divId + "').style.display = 'block';");
		}
	}
}
	
function faq_HideAll(catID)
{
var buttonID = 'input'+catID;
var divs = document.getElementsByTagName("span");

	for (var i = 0; i < divs.length; i++)
	{
		var divId = divs[i].id;
		if ( divId > 100000*catID )
		if (divId<100000*(catID+1))
		{
			eval("document.getElementById('" + divId + "').style.display = 'none';");
		}
	}
}


function getCalendar( executor, target )
{
	showCalendar( executor, target, 'pl' );
}


function getWindowWidth()
{
		var wx;
		if (self.innerHeight) // all except Explorer
		{
			wx = self.innerWidth;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
			// Explorer 6 Strict Mode
		{
			wx = document.documentElement.clientWidth;
		}
		else if (document.body) // other Explorers
		{
			wx = document.body.clientWidth;
		}
		return wx;
}

function getWindowHeight()
{
		var wy;
		if (self.innerHeight) // all except Explorer
		{
			wy = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
			// Explorer 6 Strict Mode
		{
			wy = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			wy = document.body.clientHeight;
		}
		return wy;
}

function getScrollLeft()
{
		var x;
		if (self.pageYOffset) // all except Explorer
		{
			x = self.pageXOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop)// Explorer 6 Strict
		{
			x = document.documentElement.scrollLeft;
		}
		else if (document.body) // all other Explorers
		{
			x = document.body.scrollLeft;
		}
		return x;
}

function getScrollTop()
{
		var y;
		if (self.pageYOffset) // all except Explorer
		{
			y = self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop)// Explorer 6 Strict
		{
			y = document.documentElement.scrollTop;
		}
		else if (document.body) // all other Explorers
		{
			y = document.body.scrollTop;
		}
		return y;
}


function removeChildren(el){
	for(var i=0; i<el.childNodes.length; i++){
		el.removeChild(el.childNodes[i]);
	}
}
//mosaics
function initMosaics()
{
	if(!document.getElementById) return;
	displayedTip=null;
	var children=null;
	//if(typeof(ttImg)=='undefined')
		ttImg=document.getElementById('ttImg');
	for(var i=0; i<mosaics.length; i++)
	{
		if(!document.getElementById(mosaics[i]))
			continue;
		children=document.getElementById(mosaics[i]).getElementsByTagName('IMG');
		for(var c=0; c<children.length; c++)
		{
			if(children[c])
				attachTooltip(children[c]);
		}
	}
}

function attachTooltip(rIcon)
{
	var imgID=rIcon.id.replace(/.*_r/,'');
	var txt=document.getElementById('RolesMosaic_'+imgID);
	if(!txt) return;
	rIcon.style.cursor='help';
	rIcon.tip=txt;
	if(txt.style.position!='absolute'){
		txt.parentNode.removeChild(txt);
		document.body.getElementsByTagName('FORM')[0].appendChild(txt);
		txt.style.position='absolute';
	}
	setTooltipEvents(rIcon,txt)
}

//tooltips
var tooltipTimeout = 2000;
var ttCursorOffset = 2;
var ttOffset = 10;
var ttMaxWidth = 400;
var ttZIndex = 300;
function setTooltips()
{
	if(!document.getElementById) return;
	var tip, img;
	displayedTip=null;
	ttImg=document.getElementById('ttImg');
	ttImg.parentNode.removeChild(ttImg);
	document.body.getElementsByTagName('FORM')[0].appendChild(ttImg);
	ttImg.style.display='none';
	if( typeof(tooltips)!="undefined" )
		for(var i=0; i<tooltips.length; i++){
			tip = tooltips[i];
			img = tip.getElementsByTagName('IMG')[0];
			img.style.cursor='help';
			tip.parentNode.insertBefore(img,tip);
			tip.parentNode.removeChild(tip);
			document.body.getElementsByTagName('FORM')[0].appendChild(tip);
			tip.style.display='none';	
			setTooltipEvents(img,tip);
			img.tip=tip;
			img.parentNode.display='inline';
		}
	
	var text;
	var at=false;
	var atObj;
	if( typeof(tooltipsNI)=="undefined" )
		return;
	for(var i=0; i<tooltipsNI.length; i++){
		at=false;
		tip = tooltipsNI[i];
		if(typeof(tip.at)=="undefined"){
			text = tip.previousSibling;
		}else{
			at=true;
		}
		tip.parentNode.removeChild(tip);
		document.body.getElementsByTagName('FORM')[0].appendChild(tip);
		if(!at){
			text.style.cursor='help';
			setTooltipEvents(text,tip);
			text.tip=tip;
		}else{
			atObj=document.getElementById(tip.at);
			atObj.style.cursor='help';
			atObj.tip=tip;
			setTooltipEvents(atObj,tip);
		}
	}

}

function setTooltipEvents(dest, tip)
{
		tip.isHiding = 0;
		dest.onmouseover=function(e){showTooltip(this,e);};
		if( typeof(tip.timeout)=="undefined" )
			dest.onmouseout=function(){this.tip.isHiding-=1; temp=this; setTimeout("hideTooltip(temp);", tooltipTimeout)};
		else 
			dest.onmouseout=function(){this.tip.isHiding-=1; temp=this; setTimeout("hideTooltip(temp);", tip.timeout)};
			
		dest.ondrag = function () { this.tip.isHiding=0; hideTooltip(this); };
		dest.onselectstart = function () { this.tip.isHiding=0; hideTooltip(this); };
}

function setTTWidth(tip){
		if( tip.offsetWidth > ttMaxWidth ){
			tip.style.width = ttMaxWidth+'px';
		}
}
function hideTooltip(t){
	if(t.tip.isHiding==0){
		t.tip.style.display='none';
		if(displayedTip == null || displayedTip==t){
			ttImg.style.display='none';		document.getElementById('tooltipcover').style.display='none';
		}
	}
	
}


function showTooltip(t,ev1){
	if(displayedTip != null )
		hideTooltip(displayedTip); displayedTip=null;
	t.tip.isHiding+=1;
	var ev = ev1 ? ev1: window.event;
	
	var top, left, iTop, iLeft, ft, fr;
	t.tip.style.position='absolute';
	t.tip.zIndex = -100;
	t.tip.style.display='block';
	
	if( !t.tip.style.width ){
		setTTWidth(t.tip);
		t.tip.style.width = t.tip.offsetWidth+'px';
		t.tip.style.height = t.tip.offsetHeight+'px';
	}

	ft=tooltipFitsOnTop(t, ev.clientY,ev.clientX);
	fr=tooltipFitsOnRight(t, ev.clientX,ev.clientX);	
	
	if( ft ){
		top = getScrollTop()+ev.clientY-(ttImgs[0].height+ttCursorOffset+t.tip.offsetHeight);
		iTop = getScrollTop()+ev.clientY-(ttImgs[0].height+ttCursorOffset)-1;
	}else{
		top = getScrollTop()+ev.clientY+ttImgs[0].height+ttCursorOffset;
		iTop = getScrollTop()+ev.clientY+ttCursorOffset+1;
	}
	if( fr ){
		left = ev.clientX-ttImgs[0].width+ttCursorOffset;
		iLeft = ev.clientX + ttCursorOffset;
	}else{
		left = ev.clientX+ttImgs[0].width-ttCursorOffset-t.tip.offsetWidth;
		iLeft = ev.clientX-ttCursorOffset-ttImgs[0].width;
	}
	left+=getScrollLeft();
	iLeft+=getScrollLeft();
	t.tip.style.top = top + 'px';
	t.tip.style.left = left + 'px';
	var cover;
	if(typeof(useIFrame)!="undefined"){
		cover=document.getElementById('tooltipcover');
		cover.style.display='block';
		cover.style.top=t.tip.style.top;
		cover.style.left=t.tip.style.left;
		cover.style.width=t.tip.offsetWidth+'px';
		cover.style.height=t.tip.offsetHeight+'px';
	}
	
	if( ft && fr )
		ttImg.src = ttImgs[1].src;
	else if (ft && !fr )
		ttImg.src = ttImgs[0].src;
	else if (!ft && fr )
		ttImg.src = ttImgs[3].src;
	else //! !
		ttImg.src = ttImgs[2].src;

	ttImg.style.position='absolute';
	ttImg.style.top = iTop+'px';
	ttImg.style.left = iLeft+'px';
	ttImg.style.zIndex = ttZIndex+1;
	ttImg.style.display='block';
	t.tip.style.zIndex=ttZIndex;
	if(typeof(cover)!="undefined"){
		cover.style.zIndex=ttZIndex-1;
	}
	displayedTip = t;
}

function tooltipFitsOnTop(t, ex, ey)
{
	var imgh = ttImgs[0].height;
	var st = getScrollTop();
	return st<ey-(imgh+t.tip.offsetHeight);
}

function tooltipFitsOnRight(t, ex, ey)
{
		
	var imgw = ttImgs[0].width;
	var sl = getScrollLeft();
	var pgOw = document.body.offsetWidth;
	return ex+imgw+t.tip.offsetWidth<pgOw;
}
