/**
 * Javascript file for Yvora 
 *
 * (c) 2006 Yvora, all rights reserved
 * Authors: Simon Veenker
 *
 */
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//functie voor het activeren van login popup op standaard yvora sites
function activate_login() 
{
	if (document.getElementById)
	{
		// this is the way the standards work
		var style2 = document.getElementById("loginObject").style;
		style2.display = style2.display? "":"block";
	}
	else if (document.all)
	{
		// this is the way old msie versions work
		var style2 = document.all["loginObject"].style;
		style2.display = style2.display? "":"block";
	}
	else if (document.layers)
	{
		// this is the way nn4 works
		var style2 = document.layers["loginObject"].style;
		style2.display = style2.display? "":"block";
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function deactivate_login() 
{
	if (document.getElementById)
	{
		// this is the way the standards work
		var style2 = document.getElementById("loginObject").style;
		style2.display = style2.display? "":"none";
	}
	else if (document.all)
	{
		// this is the way old msie versions work
		var style2 = document.all["loginObject"].style;
		style2.display = style2.display? "":"none";
	}
	else if (document.layers)
	{
		// this is the way nn4 works
		var style2 = document.layers["loginObject"].style;
		style2.display = style2.display? "":"none";
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function goBack(pages)
{
	history.go(pages);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function Checkbox_form(FieldName,RowName,Actie, formName)
{
	if(Actie == 'click')
	{
		if(formName.elements[FieldName].checked == false)
		{
			var tr = eval("document.getElementById(RowName)");
			formName.elements[FieldName].checked = true;
			tr.style.backgroundColor='#E0E0E0';
		}
		else
		{
			var tr = eval("document.getElementById(RowName)");
			formName.elements[FieldName].checked = false;
			tr.style.backgroundColor='transparent';
		}
	}
	if(Actie == 'hover_over')
	{
		var tr = eval("document.getElementById(RowName)");
		tr.style.backgroundColor='#EEEEEE';
	}
	if(Actie == 'hover_out')
	{	
		if(FieldName == 'none')
		{
			var tr = eval("document.getElementById(RowName)");
			tr.style.backgroundColor='transparent';
		}
		else
		{
			if(formName.elements[FieldName].checked == false)
			{
				var tr = eval("document.getElementById(RowName)");
				tr.style.backgroundColor='transparent';
			}
			else
			{
				var tr = eval("document.getElementById(RowName)");
				tr.style.backgroundColor='#E0E0E0';
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function checkAll(rMin,rMax,tableid)
{
	var aantal = rMax-rMin+1;

	for(var i=rMin;i<aantal;i++)
	{
		var RowName = "row_"+i+"_"+tableid;
		var tr = eval("document.getElementById(RowName)");
		var cb = document.getElementById("record_"+i+"_"+tableid);


		cb.checked = true;
		tr.style.backgroundColor='#E0E0E0';
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function unCheckAll(rMin,rMax,tableid)
{
	var aantal = rMax-rMin+1;
	
	for(var i=rMin;i<aantal;i++)
	{
		var RowName = "row_"+i+"_"+tableid;
		
		var tr = eval("document.getElementById(RowName)");
		var cb = document.getElementById("record_"+i+"_"+tableid);
		cb.checked = false;
		tr.style.backgroundColor='transparent';
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function HelpVenster(URL) 
{
	window.open(URL, "help", "width=300,height=300");
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function submitFunction(de_link, formName) 
{
 	document.getElementById(formName).action=de_link;
	document.getElementById(formName).submit()
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function changeCurrency(value)
{
	var url = window.location.toString();
	//first we have to check if a currancy value is in the url
	url = url.replace(/[?&]+currency=[0-9]+/gi, "");
	//now we check whether we need & in url or ?
	if(url.indexOf("?") >= 0)
	{
		document.location = url+"&currency="+value;
	}
	else
	{
		document.location = url+"?currency="+value;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function changeLanguage(value)
{
	var url = window.location.toString();
	//first we have to check if a currancy value is in the url
	url = url.replace(/[?&]+lang=[0-9]+/gi, "");
	url = url.replace(/[?&]+currency=[0-9]+/gi, "");
	//now we check whether we need & in url or ?
	if(url.indexOf("?") >= 0)
	{
		switch(value)
		{
			case "1":
				document.location = url+"&lang="+value;
			break;
			case "2":
				document.location = url+"&lang="+value;
			break;
			default:
				document.location = url+"&lang="+value;
			break;
		}
	}
	else
	{
		switch(value)
		{
			case "1":
				document.location = url+"?lang="+value;
			break;
			case "2":
				document.location = url+"?lang="+value;
			break;
			default:
				document.location = url+"?lang="+value;
			break;
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function checkDimensions()
{
	var elements = document.getElementsByTagName('*');
	var nr = elements.length;
	
	var wT = viewportWidth();
	var hT = viewportHeight();
	
	var wT2 = viewportWidth2();
	var hT2 = viewportHeight2();
	
	var w2Max = getMaxW2();
	var h2Max = getMaxH2();
	
	for(var i = 0; i < nr; i++)
	{
		var percPlaceW = elements[i].style.width.indexOf("%");
		var percPlaceH = elements[i].style.height.indexOf("%");


		if(percPlaceW > 0)
		{
			if(elements[i].style.left == "50%")
			{
				
				var w = parseInt(elements[i].style.width.replace("%",""))*wT/100;
				elements[i].style.marginLeft = -w/2+"px";
			}
		
			var p = parseInt(elements[i].style.width.substring(0,percPlaceW));
			
			if(elements[i].style.left && elements[i].style.left.indexOf("px") > 0)
			{
				var x = parseInt(elements[i].style.left.replace("px",""));
			}
			else
			{
				var x = 0;
			}
			var w = 0;
			if(elements[i].getAttribute("rel"))
			{
				w = ((wT*p/100)-x);
			}
			else
			{
				w = ((wT2*p/100)-x);
			}
			if(elements[i].getAttribute("width2"))
			{
				w += parseInt(elements[i].getAttribute("width2"));
			}
			if(elements[i].id == "siteBG")
			{
				w += w2Max;
			}
			elements[i].style.width = w+"px";
		}
		
		
		
		if(percPlaceH > 0)
		{
			
			var p = parseInt(elements[i].style.height.substring(0,percPlaceH));
			
			if(elements[i].style.top && elements[i].style.top.indexOf("px") > 0)
			{
				var y = parseInt(elements[i].style.top.replace("px",""));
			}
			else
			{
				var y = 0;
			}
			var h = 0;
			if(elements[i].getAttribute("rel"))
			{
				h = ((hT*p/100)-y);
			}
			else
			{
				h = ((hT2*p/100)-y);
			}
			if(elements[i].getAttribute("height2"))
			{
				h += parseInt(elements[i].getAttribute("height2"));
			}
			if(elements[i].id == "siteBG")
			{
				h += h2Max;
			}
			elements[i].style.height = h+"px";
			
		}
		
		if(elements[i].style.left == "50%")
		{
			if(elements[i].getAttribute("rel"))
			{
				//elements[i].style.left = (wT/2)+"px";
			}
			if(elements[i].style.marginLeft && w)
			{
				//elements[i].style.marginLeft = -w/2;
			}
		}
		
		if(elements[i].style.top == "50%")
		{
			if(elements[i].getAttribute("rel"))
			{
				//elements[i].style.top = (hT/2)+"px";
			}
			if(elements[i].style.marginTop && h)
			{
				//elements[i].style.marginTop = -h/2;
			}
		}
		
		if(elements[i].style.right)
		{
			var elR = parseInt(elements[i].style.right.replace("px",""));
			elements[i].style.right = "";
			var elH = parseInt(elements[i].style.width.replace("px",""));
			if(elH > 0)
			{
				if(elements[i].getAttribute("rel"))
				{
					elements[i].style.left = (wT-elR-elH)+"px";
				}
				else
				{
					elements[i].style.left = (wT2-elR-elH)+"px";
				}
			}
			else
			{
				if(elements[i].getAttribute("rel"))
				{
					elements[i].style.left = (wT-elR)+"px";
				}
				else
				{
					elements[i].style.left = (wT2-elR)+"px";
				}
			}
		}
		if(elements[i].style.bottom)
		{
			var elB = parseInt(elements[i].style.bottom.replace("px",""));
			elements[i].style.bottom = "";
			var elH = parseInt(elements[i].style.height.replace("px",""));
			if(elH > 0)
			{
				if(elements[i].getAttribute("rel"))
				{
					
					elements[i].style.top = (hT-elB-elH)+"px";
				}
				else
				{
					elements[i].style.top = (hT2-elB-elH)+"px";
				}
			}
			else
			{
				if(elements[i].getAttribute("rel"))
				{
					elements[i].style.top = (hT-elB)+"px";
				}
				else
				{
					elements[i].style.top = (hT2-elB)+"px";
				}
			}
		}
		/*
		if(elements[i].style.lineHeight)
		{
			var fontHeight = parseInt(elements[i].size);
			var leading = parseInt(elements[i].style.lineHeight);
			elements[i].style.lineHeight = (12+leading)/12;
			alert(elements[i].currentStyle);
		}
		*/
	}
	
	var leading = getLeadingObjects();
	if(leading.length > 0)
	{
		checkLeadingObj(leading);
	}
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function viewportWidth2()
{
	return document.body.scrollWidth; 
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function viewportHeight2()
{
	return document.body.scrollHeight; 
} 
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function viewportWidth()
{
	var output = 0;
	var elements = document.getElementsByTagName('*');
	var nr = elements.length;
	for(var i = 0; i < nr; i++)
	{
		if(elements[i].offsetTop)
		{
			var x = elements[i].offsetLeft;
		}
		else
		{
			var x = 0;
		}
		if(elements[i].offsetHeight)
		{
			var w = elements[i].offsetWidth;
		}
		else
		{
			var w = 0;
		}
		if((x+w) > output)
		{
			
			output = x+w;
		}
	}
	return output; 
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function viewportHeight()
{
	var output = 0;
	var h2 = 0;
	var elements = document.getElementsByTagName('*');
	var nr = elements.length;
	for(var i = 0; i < nr; i++)
	{
		if(elements[i].offsetTop)
		{
			var y = elements[i].offsetTop;
		}
		else
		{
			var y = 0;
		}
		if(elements[i].offsetHeight)
		{
			var h = elements[i].offsetHeight;
		}
		else
		{
			var h = 0;
		}
		if((y+h) > output)
		{
			
			output = y+h;
		}
	}
	return output; 
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getMaxW2()
{
	var w2 = 0;
	var elements = document.getElementsByTagName('*');
	var nr = elements.length;
	for(var i = 0; i < nr; i++)
	{
		if(elements[i].getAttribute("widht2") && parseInt(elements[i].getAttribute("widht2")) > w2)
		{
			w2 = parseInt(elements[i].getAttribute("widht2"));
		}
	}
	return w2;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getMaxH2()
{
	var h2 = 0;
	var elements = document.getElementsByTagName('*');
	var nr = elements.length;
	for(var i = 0; i < nr; i++)
	{
		if(elements[i].getAttribute("height2") && parseInt(elements[i].getAttribute("height2")) > h2)
		{
			h2 = parseInt(elements[i].getAttribute("height2"));
		}
	}
	return h2;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getScrollPositionX()
{
	return(document.body.scrollLeft);
}
function getScrollPositionY()
{
	return(document.body.scrollTop);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getLeadingObjects()
{
	var elements = document.getElementsByTagName('*');
	var nr = elements.length;
	var leadingArray = new Array();
	for(var i = 0; i < nr; i++)
	{
		var obj = getLeadingObj(elements[i]);
		if(obj && !in_array(obj,leadingArray))
		{
			leadingArray.push(obj);
		}
	}
	return leadingArray;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getLeadingObj(obj)
{
	var end = false;
	var objT = obj;
	var found = false;
	while (!end)
	{
		if(objT && objT.getAttribute("alignObj"))
		{
			
			found = true;
			objT = document.getElementById(objT.getAttribute("alignObj"));
		}
		else
		{
			end = true;
		}
	}
	if(found)
	{
		
		return objT;
	}
	else
	{
		return false;
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function in_array (needle, haystack, argStrict) 
{
    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
 
    return false;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function checkLeadingObj(leadingArray)
{
	var nr = leadingArray.length;
	for(var i = 0; i < nr; i++)
	{
		var alignArray = getAlignGroup(leadingArray[i]);
		
		if(alignArray.length > 0 && leadingArray[i].style)
		{
			var nr2 = alignArray.length;
			//in firefox offsetHeight doesn't give the actual height if style.height is defined....
			var backupH = parseInt(leadingArray[i].style.height.replace("px",""));
			leadingArray[i].style.height = "";
			if(leadingArray[i].offsetHeight > backupH)
			{
				var yAlign = parseInt(leadingArray[i].style.top.replace("px","")) + leadingArray[i].offsetHeight;
			}
			else
			{
				
				var yAlign = parseInt(leadingArray[i].style.top.replace("px","")) + backupH;
			}
			
			leadingArray[i].style.height = backupH+"px";
			if(yAlign)
			{
				for(var j = 0; j < nr2; j++)
				{
					
					if(parseInt(alignArray[j].getAttribute("alignObjMargin")) > 0)
					{
						yAlign += parseInt(alignArray[j].getAttribute("alignObjMargin"))
					}
					alignArray[j].style.top = yAlign;
					
					if(parseInt(alignArray[j].style.height.replace("px","")))
					{
						yAlign += parseInt(alignArray[j].style.height.replace("px",""))
					}
					
					
				}
			}
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function getAlignGroup(obj)
{
		var objT = obj;
		
		var end = false;
		var alignArray = new Array();
		var elements = document.getElementsByTagName('*');
		var nr = elements.length;
		while (!end)
		{
			var found = false;
			for(var i=0; i < elements.length; i++)
			{
				
				if(elements[i] && objT && objT.id == elements[i].getAttribute("alignObj") && elements[i].getAttribute("alignObj"))
				{
					found = true;
					objT = elements[i];
					if(obj.id != elements[i].id)
					{
						alignArray.push(elements[i]);
					}
				}
			}
			if(!found)
			{
				end = true;
			}
		}
		return alignArray
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Written by Ed Chipman (http://www.edchipman.ca/)
function getPHPSessionId() {
    var start=document.cookie.lastIndexOf('PHPSESSID=');
    var cookies=document.cookie.substr(start+10,document.cookie.length);
    var end=cookies.indexOf(';');
 
    if(end!=-1) {
    	return cookies.substr(0,end);
    }else {
    	return document.cookie.substr(start,document.cookie.length).replace("PHPSESSID=","");
    }
}