//SISOSITE DEFAULT JAVASCRIPT
var CheckEdited = true;
var Edited = false;
var ClientValidated = false;
var STimerID = '';
var PTimerID = '';
var TT;
var TTVisible=false;
var ShowInvalWarning=false;
var i, ii, iii, iiii, s, o, oo, v, d, o1, o2, v1, v2;
var EC = ''; //(Cx)(Cx)(...)
var OV = '';  //(OxPx)(...)
var TS = ''; //(OxTx)(...)
var CVA= ''; //(OxAEid)(OxA...)

window.onbeforeunload=InitUnload;
window.onload=InitLoad;
document.onmousemove=SetTT;

function InitLoad()
	{window.clearTimeout(STimerID);
	window.clearTimeout(PTimerID);
	if (document.getElementById("SessionRefresh").value > 0)
		{STimerID = window.setInterval("RefreshSession()", document.getElementById("SessionRefresh").value);
		};
	if (document.getElementById("PageRefresh").value > 0)
		{PTimerID = window.setTimeout("RefreshPage()", document.getElementById("PageRefresh").value);
		};
	CUpd;
	if (document.getElementById("InitAnchor") != null)
		{document.getElementById("InitAnchor").scrollIntoView();
		}
		else
		{scrollTo(document.getElementById("HoriPos").value, document.getElementById("VertPos").value);
		};
	if (document.getElementById("InitAlert").value != "")
		{window.alert(document.getElementById("InitAlert").value);
		document.getElementById("InitAlert").value="";
		};
	}
	
function InitUnload()
	{//Eventually raise the OnBeforeUnload
	if (CheckEdited == true)
		{if (Edited == true)
			{if (ExitAlert != "")
				{event.returnValue = ExitAlert;
				}
			}
		}
	}
	
function DoSubmit(ID, Action)
	{var cqs = Action.indexOf('(#?');
	while (cqs != -1)
		{cqs += 3;
		var cqe = Action.indexOf('#)',cqs);
		if (window.confirm(Action.substring(cqs,cqe)) == false) {return false}
		cqs = Action.indexOf('(#?',cqs);
		};
		
	//Checken 'cancel when edited'
	i=Action.indexOf('(#CC:');
	if (i!=-1)
		{if (Edited == true)
			{if (window.confirm(Action.substring(i+5,Action.indexOf('#)',i))) == false) 
				{return false}
			}
		};

	//*Syntax ID: de id van de submit-entiteit (CxIxOxBx of CxIxPxCx)
	//*Syntax action: [~Cx(~Ix~!BTrxOxVx~!CTrxPxVx~!...~)~]|LIP|LOP|LIC|LOC (Vx: x= o.a. (#R:x#))
	//Checken aanwezigheid changes
	if (Action.indexOf('(#R:C#)') != -1)
		{if (EC.indexOf('(' + ID.substr(1,ID.indexOf('I')-1) + ')') == -1)
			{if (Action.indexOf('(#FS#)')==-1){if(CleanAlert != ""){window.alert(CleanAlert)};return false}
			}
		}
		else
		{if (Action.indexOf('(#R:O#)') != -1)
			{i=ID.indexOf('O');
			if (i == -1)
				{i=ID.indexOf('P')+1;
				i=ID.substr(i,ID.indexOf('C',i)-i);
				}
				else
				{i=ID.substr(i,ID.indexOf('B',i)-i);
				};
			if (OV.indexOf('(' + i + 'P') != -1)
				{if (Action.indexOf('(#FS#)')==-1){if(CleanAlert != ""){window.alert(CleanAlert)};return false}
				}
			}
		};
	
	//Checken validiteit
	if (Action.indexOf('(#CV#)') != -1)
		{if (ID.indexOf('B') == -1)
			{s=ID.substr(0,ID.lastIndexOf('C'));}
			else
			{s=ID.substr(0,ID.lastIndexOf('B'))};
		var hiset = document.getElementById(s).getElementsByTagName('input');
		for(i=0;i<hiset.length;i++)
			{if (hiset[i].id.substr(0,3) == 'CV_')
				{if (hiset[i].value.charAt(0)=='I')
					{if (OV.indexOf(hiset[i].id.substring(hiset[i].id.indexOf('O'),hiset[i].id.indexOf('B')) + 'P')==-1)
						{if (InvalAlert != ""){window.alert(InvalAlert)};
						return false;
						}
					}
				}
			}
		};
	//(no cancel by 'return false': SUBMIT ALLOWED)
	//Save scroll-position
	if(navigator.appName == 'Netscape')
		{document.getElementById("VertPos").value = document.pageYOffset;
		document.getElementById("HoriPos").value = document.pageXOffset;
		}
		else
		{document.getElementById("VertPos").value = document.body.scrollTop;
		document.getElementById("HoriPos").value = document.body.scrollLeft;
		}
	//Set Action
	document.getElementById("Action").value = Action;
	//Save Edited and Validated
	document.getElementById("Edited").value = Edited;
	document.getElementById("ClientValidated").value = ClientValidated;
	//Fill TimeStamps
	document.getElementById("TimeStamps").value = TS;
	//Submit Form
	CheckEdited = false;
	try	
		{document.getElementById("SisoForm").submit();}
	catch(e)
		{window.alert(e.message);return false;}
	}

function RefreshSession()
	{top.frames['Refresh'].location.reload(true);
	}

function RefreshPage()
	{top.location.reload(true);
	}

function SetEdited(ID, RE, VT, VV)
	{//ID=thisCxIxOxBx, RE=RegisterEdit, VT=ValidationType (AWSx/NNN0) VV=Valid/Invalid
	if(RE==true){Edited = true};
	var CVF = document.getElementById('CV_' + ID);
	if(VV=='Valid')
		{//Valid
		if (CVF){CVF.value='V' + CVF.value.substr(1)};
		if (VT.charAt(0)=='A'){document.getElementById('AS_' + ID).style.visibility='hidden'};
//		if (VT.charAt(2)=='S'){SetSwitch(ID.substr(0,ID.lastIndexOf('B')+1) + VT.substr(3), 'A')};
		}
		else
		{//Invalid
		if (CVF){CVF.value='I' + CVF.value.substr(1)};
		if (VT.charAt(0)=='A'){document.getElementById('AS_' + ID).style.visibility='visible'};
		if(ShowInvalWarning){if (VT.charAt(1)=='W'){window.alert(CVF.value.substr(1))}};
//		if (VT.charAt(2)=='S'){SetSwitch(ID.substr(0,ID.lastIndexOf('B')+1) + VT.substr(3), 'B')};
		};
	if(RE==false){return};
	//Bijwerken OV-register (OriginalValue-register)
	//en Uitvoeren CVA (ChangedValueAction), syntax CVA: (OxAEid)(...)
	i=ID.indexOf('O');
	i='(' + ID.substr(i,ID.indexOf('B')-i);
	ii=OV.indexOf(i + 'P');
	while(ii != -1)
		{if (CVA!='')
			{iii=CVA.indexOf(i + 'A');
			while (iii != -1)
				{iiii=CVA.indexOf('A',iii)+2;                
				switch (CVA.charAt(iiii-1))
					{case 'E':
						document.getElementById(CVA.substr(iiii, CVA.indexOf(')',iiii)-iiii)).disabled=false;
						break;
					//case 'X':
						//do something...
						//break;
					};
				CVA = CVA.substr(0,iii) + CVA.substr(CVA.indexOf(')',iiii)+1);
				iii=CVA.indexOf(i + 'A');
				};
			};
		i=OV.indexOf('P',ii)+1;
		i= '(O' + OV.substr(i,OV.indexOf(')',i)-i);
		OV = OV.substr(0,ii) + OV.substr(OV.indexOf(')',ii)+1);
		ii=OV.indexOf(i + 'P');
		};
		//Checken of the parent van de 'root-OV' in CVA voorkomt.
		if (CVA!='')
			{iii=CVA.indexOf(i+'A');
			while (iii!=-1)
				{iiii=CVA.indexOf('A',iii)+2;                
				switch (CVA.charAt(iiii-1))
					{case 'E':
						document.getElementById(CVA.substr(iiii, CVA.indexOf(')',iiii)-iiii)).disabled=false;
						break;
					//case...
					};
				CVA = CVA.substr(0,iii) + CVA.substr(CVA.indexOf(')',iiii)+1);
				iii=CVA.indexOf(i + 'A');
				};
			};
	//Bijwerken EC (Edited Contents)
	i='(' + ID.substr(1,ID.indexOf('I')-1) + ')';
	if (EC.indexOf(i) == -1)
		{EC = EC + i};
//	//Triggeren Clientside formula and calc calculations
//	//var CFD (syntax: [id:id][...]), function TrFormula(ID)
//	var CFDS,CFDT,CFDi;
//	CFDS=ID;
//	CFDi=CFD.indexOf('[' + CFDS + ':');
//	while (CFDi!=-1)
//		{CFDT=CFD.substring(CFD.indexOf(':',CFDi)+1,CFD.indexOf(']',CFDi));
//		TrFormula(CFDT);
//		CFDi=CFD.indexOf('[' + CFDS + ':',CFDi+1);
//		if (CFDi==-1)
//			{if(CFDS.indexOf('P')==-1){CFDS=CFDS.substring(0,CFDS.indexOf('O')) + CFDS.substr(CFDS.indexOf('B'};
//			if (CFDi==-1)
//				{CFDS=CFDT;
//				CFDi=CFD.indexOf('[' + CFDS + ':');
//				};
//			};
//		};
	}

function SetSwitch(ID, SV)
	{//HiddenField met syntax: [A|B][A|B][Ax][Bx]~[gotoa]~[gotob]
    //[value][alleen A if Beide][Ax][Bx]~[gotoa]~[gotob]
	//(SwitchID=S_ID)
	//ID=CxIxOxBx of CxIxPxCx
	o=document.getElementById(ID);
	oo=document.getElementById('S_'+ID);
	if (SV=='C')
		{if (o.value.charAt(0)=='A')
			{o.value='B'+o.value.substr(1);SV='B'}
			else
			{o.value='A'+o.value.substr(1);SV='A'}
		}
		else
		{o.value=SV + o.value.substr(1)};
	if (ID.indexOf('P')==-1){s=ID.substr(0,ID.lastIndexOf('B')+1)}else{s=ID.substr(0,ID.lastIndexOf('C')+1)};
	var posA=o.value.indexOf('~')+1;
	var posB=o.value.lastIndexOf('~')+1;
	i=o.value.indexOf('B',3)+1;
	if (SV=='A')
		{if(oo.type=='checkbox'){oo.checked=true}else{oo.innerHTML=o.value.substr(posB)};
		document.getElementById(s + o.value.substr(2,i-3)).style.display='block';
		if (o.value.charAt(1)=='B'){document.getElementById(s + o.value.substr(i,(posA-1)-i)).style.display='none';}
		}
		else
		{if(oo.type=='checkbox'){oo.checked=false}else{oo.innerHTML=o.value.substr(posA,(posB-1)-posA)};
		document.getElementById(s + o.value.substr(2,i-3)).style.display='none';
		if (o.value.charAt(1)=='B'){document.getElementById(s + o.value.substr(i,(posA-1)-i)).style.display='block';}
		}
	}

function ShowTT(tooltip)
	{if (TT==null){TT=document.getElementById('TT')};
	TT.innerHTML=tooltip;
	TTVisible=true;
	TT.style.visibility="visible";
	SetTT(null)}
	
function HideTT()
	{TTVisible=false;
	TT.style.visibility="hidden"
	}
	
function SetTT(e)
	{if (!e) var e = window.event;
	if (TTVisible==true)
		{TT.style.left = e.clientX + document.body.scrollLeft + 0 + "px";
		TT.style.top = e.clientY + document.body.scrollTop + 20 + "px";
		}
	};
	
function GetFormat(V, F)
	{//if (F=='')
//		{return V
//		};
//	switch(F.charAt(0)
//		{case 'F':
//		V=parseFloat(V).toFixed(F.substr(1));
//		break;
//		//case 'x':
//		//...
//		//break;
//		};
//	return V;
	}
	
function CUpd()
	{//Bijwerken CUpd aan de hand van document.getElementById('CUpd').innerHTML (Syntax: id:...~*!id:...~*!)
//	s=document.getElementById('CUpd').innerHTML;
//	i=0
//	ii=s.indexOf(':',i);
//	while(ii!=-1)
//		{o=document.getElementById(s.substring(i,ii));
//		i=s.indexOf('~*!',ii);
//		if (o!=null)
//			{ii+=1;
//			o.innerHTML=s.substring(ii,i);
//			};
//		i+=3;
//		ii=s.indexOf(':',i);
//		};
	}
	
	
function AddHVB(URL)
	{if (URL.indexOf('?')==-1)
		{s = URL + '?'}
		else
		{s = URL + '&'};
	var B=top.location.href;
	i=B.indexOf('HVB=');
	if(i!=-1){ii=B.indexOf('&',i);if(ii!=-1){B=B.substr(0,i-1)+B.substr(ii)}else{B=B.substr(0,i-1)}};
	i=B.indexOf('T=');
	if(i!=-1){ii=B.indexOf('&',i);if(ii!=-1){B=B.substr(0,i-1)+B.substr(ii)}else{B=B.substr(0,i-1)}};
	i=B.indexOf('?');
	if(i==-1){ii=B.indexOf('&');if(ii!=-1){B=B.substr(0,i-1)+'?'+B.substr(ii)}};
	if(navigator.appName == 'Netscape')
		{s += 'HVB=' + document.getElementById('ReqT').value + 'H' + document.pageXOffset + 'V' + document.pageYOffset + 'B' + encodeURIComponent(B)}
		else
		{s += 'HVB=' + document.getElementById('ReqT').value + 'H' + document.body.scrollLeft + 'V' + document.body.scrollTop + 'B' + encodeURIComponent(B)};
	return s
	}

function xHVB(URL)
	{if (URL.indexOf('?')==-1)
		{s = URL + '?'}
		else
		{s = URL + '&'};
	var B=top.location.href;
	i=B.indexOf('HVB=');
	if(i!=-1){window.alert(B);ii=B.indexOf('&',i);if(ii!=-1){B=B.substr(0,i-1)+B.substr(ii)}else{B=B.substr(0,i-1)}};
	i=B.indexOf('T=');
	if(i!=-1){ii=B.indexOf('&',i);if(ii!=-1){B=B.substr(0,i-1)+B.substr(ii)}else{B=B.substr(0,i-1)}};
	i=B.indexOf('?');
	if(i==-1){ii=B.indexOf('&');if(ii!=-1){B=B.substr(0,i-1)+'?'+B.substr(ii)}};
	return B;
	if(navigator.appName == 'Netscape')
		{s += 'HVB=' + document.getElementById('ReqT').value + 'H' + document.pageXOffset + 'V' + document.pageYOffset + 'B' + encodeURIComponent(B)}
		else
		{s += 'HVB=' + document.getElementById('ReqT').value + 'H' + document.body.scrollLeft + 'V' + document.body.scrollTop + 'B' + encodeURIComponent(B)};
	return s
	}


//SETS:0=strL,1=strM,2=arrayV,3=arrayN,4=arrayS
function EditSetInit(ID,SETS)
	{//vullen idV en idN adhv idL
	i=1;
	ii=SETS[0].indexOf(';',i);
	iii=0
	while(ii!=-1)
		{iiii=SETS[0].indexOf(':',i);
		SETS[2][iii]=SETS[0].substring(i,iiii);
		SETS[3][iii]=SETS[0].substring(iiii+1,ii);
		i=ii+1;
		ii=SETS[0].indexOf(';',i);
		iii+=1};
	//vullen idS adhv  id (idM wordt genegeerd tijdens de initialisatie)
	o=document.getElementById(ID);
	v=o.value;
	for(i=0;i<SETS[4].length;i++)
		{ii=v.indexOf(';'+SETS[2][i]+';');
		if(ii==-1){SETS[4][i]=false}else{SETS[4][i]=true};
		}
	//Updates (Box only)
	EditSetUpdBox(ID,SETS);
	}
	
function EditSetAdd(ID,SETS)
	{//bijwerken idS
	o=document.getElementById(ID+'SOURCE');
	for(i=0;i<o.length;i++)
		{if(o.options[i].selected)
			{for(ii=0;ii<SETS[4].length;ii++)
				{if(SETS[2][ii]==o.options[i].value){SETS[4][ii]=true;ii=SETS[4].length}
				}
			}
		};
	//Updates
	EditSetUpdVar(ID,SETS);
	EditSetUpdBox(ID,SETS);
	}
	
function EditSetDel(ID,SETS)
	{//bijwerken idS
	o=document.getElementById(ID+'TARGET');
	for(i=0;i<o.length;i++)
		{if(o.options[i].selected)
			{for(ii=0;ii<SETS[4].length;ii++)
				{if(SETS[2][ii]==o.options[i].value){SETS[4][ii]=false;ii=SETS[4].length}
				}
			}
		};
	//Updates
	EditSetUpdVar(ID,SETS);
	EditSetUpdBox(ID,SETS);
	}

function EditSetUpdVar(ID,SETS)
	{//updaten idS adhv idM
	for(i=0;i<SETS[4].length;i++)
		{if(SETS[1].indexOf(';'+SETS[2][i]+';')!=-1){SETS[4][i]=true}
		};
	//bijwerken id
	s=';';
	for(i=0;i<SETS[4].length;i++)
		{if(SETS[4][i]==true){s+=SETS[2][i]+';'}
		};
	document.getElementById(ID).value=s;
	}

function EditSetUpdBox(ID,SETS)
	{//vullen idSOURCE
	o=document.getElementById(ID+'SOURCE');
	while(o.length>0){o.remove(0)};
	ii=0;
	for(i=0;i<SETS[4].length;i++)
		{if(SETS[4][i]==false)
			{o.options[ii] = new Option(SETS[3][i],SETS[2][i],false,false);
			ii+=1;
			}
		};
	//vullen idTARGET
	o=document.getElementById(ID+'TARGET');
	while(o.length>0){o.remove(0)};
	ii=0;
	for(i=0;i<SETS[4].length;i++)
		{if(SETS[4][i]==true)
			{o.options[ii] = new Option(SETS[3][i],SETS[2][i],false,false);
			ii+=1;
			}
		};
	}
	
function RealWidth(obj){
if (navigator.userAgent.toLowerCase().indexOf('opera')!=-1)
	{//Opera
	return obj.width}
	else
	{//Anders
	var CW=obj.width;
	obj.style.width='';
	var RW=obj.width;
	obj.style.width=CW;
	return RW
	}
}

function RealHeight(obj){
if (navigator.userAgent.toLowerCase().indexOf('opera')!=-1)
	{//Opera
	return obj.height}
	else
	{//Anders
	var CW=obj.height;
	obj.style.height='';
	var RW=obj.height;
	obj.style.height=CW;
	return RW
	}
}
