//enkele controle parameters initialiseren
var StartOk  = false;
var RegisteredCalls= new Array();


function RegisterObj(ObjNaam){
	this.name = ObjNaam;
	this.http = getXMLHTTPRequest();
	this.saveinprogress = false;
}


function RegisterHttpxCalls(ObjName){

	var NewCall=true;
	var CallInt = -1;

	NrCalls=RegisteredCalls.length;
	for(x=0;x < NrCalls;x++){
		if(RegisteredCalls[x].name==ObjName){
			NewCall = false;
			CallInt = x;
		}
	}

	if(NewCall){
		RegisteredCalls[NrCalls]=new RegisterObj(ObjName);
		CallInt = NrCalls;
	}

	return(CallInt);
}


function HttpxCallAktief(CallId){
	IsActief=false;

	if(CallId > -1){
		if(RegisteredCalls[CallId].http.readyState > 0 && RegisteredCalls[CallId].http.readyState < 4){
			IsActief=true;
		}
	}

	if(IsActief) alert('Even geduld aub er worden momenteel gegevens opgeslagen');

	return(IsActief);

}

function HttpxAktief(){

	IsActief=false;

	NrCalls=RegisteredCalls.length;
	for(x=0;x < NrCalls;x++){
		if(RegisteredCalls[x].http.readyState > 0 && RegisteredCalls[x].http.readyState < 4){
			IsActief=true;
		}
	}
	
	return(IsActief);
}

function getXMLHTTPRequest(){

	try {
		req = new XMLHttpRequest();

	} catch(err1) {

		try {
			req = new ActiveXObject('Msxml2.XMLHTTP');

		} catch (err2) {
			try {
				req = new ActiveXObject('Microsoft.XMLHTTP');

			} catch (err3) {
				req = false;
			}
		} 
	}

	return req;
}


function SchakelToolTip(ObjId){

	if(document.getElementById('tip'+ObjId).className.indexOf('disable')!=-1){
		document.getElementById('tip'+ObjId).className='showtooltip';
		Hoogte=(1*document.getElementById('tip'+ObjId).offsetHeight) - 28;
		document.getElementById('tip'+ObjId).style.top='-' + Hoogte + 'px';

	} else {
		document.getElementById('tip'+ObjId).className='disabletooltip';
	}
}

function DoGastLogin(Vorm){
	Vorm.Ausername.value='gast';
	Vorm.Apassword.value='gast';
	Vorm.submit();
}



function AktiveerVraag(VeldObj,scannr,vraagid){
	if(scannr<1){//alleen weergave geen verwerking keuze
		if(VeldObj.value=='1'){
			document.getElementById('vraagblok'+vraagid).className='scanantwoord';
		} else {
			document.getElementById('vraagblok'+vraagid).className='scanantwoorduit';
		}

	} else {//weergave en verwerking keuze
		if(HttpxAktief()){
			//alert('Even geduld aub er worden momenteel gegevens verwerkt');

		} else {
			CallId = RegisterHttpxCalls('MyOpslagVraag');
			Url='index.php?Cmd=xml&nr='+scannr+'&'+VeldObj.name+'='+unescape(VeldObj.value);

			if(VeldObj.value=='1'){
				document.getElementById('vraagblok'+vraagid).className='scanantwoord';
			} else {
				document.getElementById('vraagblok'+vraagid).className='scanantwoorduit';
			}

			if(!HttpxCallAktief(CallId)){

				RegisteredCalls[CallId].http.open('GET',Url,true);
				RegisteredCalls[CallId].http.onreadystatechange = httpMyOpslagVraag;
				RegisteredCalls[CallId].http.send(null);
			}
		}
	}
}


function VeranderInvoer(VeldObj,scannr){

	if(HttpxAktief()){
		//alert('Even geduld aub er worden momenteel gegevens verwerkt');

	} else {
		CallId = RegisterHttpxCalls('MyOpslagItems');

		Url='index.php?Cmd=xml&nr='+scannr

		ParaStr='&'+VeldObj.name+'='+unescape(VeldObj.value);

		if(!HttpxCallAktief(CallId)){
			RegisteredCalls[CallId].http.open('POST',Url,true);
			RegisteredCalls[CallId].http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			RegisteredCalls[CallId].http.setRequestHeader("Content-length", ParaStr.length);
			RegisteredCalls[CallId].http.setRequestHeader("Connection", "close");
			RegisteredCalls[CallId].http.onreadystatechange = httpMyOpslagItems;
			RegisteredCalls[CallId].http.send(ParaStr);
		}
	}

}


function httpMyOpslagVraag(){

	CallId = RegisterHttpxCalls('MyOpslagVraag');

	if(RegisteredCalls[CallId].http.readyState == 4){

		if(RegisteredCalls[CallId].http.status == 200){//de resultaten inlezen

			var resultaat = RegisteredCalls[CallId].http.responseXML.getElementsByTagName('cpsdata')[0];
			AantalAntw=1*resultaat.getAttribute('antwoorden');
			AantalVragen=1*resultaat.getAttribute('vragen');

			AktieveAntwoorden=','+resultaat.getAttribute('antwoordnrs')+',';
			for(vc=0;vc < AantalVragen;vc++){
				if(AktieveAntwoorden.indexOf(','+vc+',',0)!=-1){
					document.getElementById('statusvrg'+vc).className='gedaan';
				} else {
					document.getElementById('statusvrg'+vc).className='nietgedaan';
				}
			}

			if(AantalAntw>0 && AantalAntw==AantalVragen){
				document.getElementById('knopafronden').className='afrondenaktief';
				document.getElementById('knopafrondenboven').className='afrondenaktief';
			} else {
				document.getElementById('knopafronden').className='afrondennietaktief';
				document.getElementById('knopafrondenboven').className='afrondennietaktief';
			}
		}

	}

}


function httpMyOpslagItems(){

	CallId = RegisterHttpxCalls('MyOpslagItems');

	if(RegisteredCalls[CallId].http.readyState == 4){

		if(RegisteredCalls[CallId].http.status == 200){//de resultaten inlezen

			var resultaat = RegisteredCalls[CallId].http.responseXML.getElementsByTagName('cpsdata')[0];
			AantalAntw=1*resultaat.getAttribute('antwoorden');
			AantalVragen=1*resultaat.getAttribute('vragen');

			AktieveAntwoorden=','+resultaat.getAttribute('antwoordnrs')+',';
			for(vc=0;vc < AantalVragen;vc++){
				if(AktieveAntwoorden.indexOf(','+vc+',',0)!=-1){
					document.getElementById('statusvrg'+vc).className='gedaan';
				} else {
					document.getElementById('statusvrg'+vc).className='nietgedaan';
				}
			}

			if(AantalAntw>=0 && AantalAntw==AantalVragen){
				document.getElementById('knopafronden').className='afrondenaktief';
				document.getElementById('knopafrondenboven').className='afrondenaktief';
			} else {
				document.getElementById('knopafronden').className='afrondennietaktief';
				document.getElementById('knopafrondenboven').className='afrondennietaktief';
			}
		}

	}

}


function OpslaanScan(scannr){
	var ChkKnop1 = document.getElementById('knopafronden').className;
	var ChkKnop2 = document.getElementById('knopafrondenboven').className;
	if(ChkKnop1.indexOf('niet')==-1 && ChkKnop2.indexOf('niet')==-1){
		if(confirm('Zeker weten?\nNa afronden kan er in deze scan geen gegevens meer gewijzigd worden!'))
			document.location.href='?Cmd=scanfinish&nr='+scannr;
	} else {
		alert('Nog niet alle vragen zijn beantwoord.');
	}
}

function RegelToevoegen(ObjId,ScanId,vraagId){
	HuidigeObj=document.getElementById('antwtabel' + ObjId);
	TrCount=0;
	TdCount=0;

	for(rc=0;rc < HuidigeObj.childNodes.length;rc++){
		var CountDone=false;
		if(HuidigeObj.childNodes[rc].nodeName.toUpperCase()=='TBODY'){
			for(rx=0;rx < HuidigeObj.childNodes[rc].childNodes.length;rx++){

				if(HuidigeObj.childNodes[rc].childNodes[rx].nodeName.toUpperCase()=='TR'){

					TrCount++;
					for(kc=0;kc < HuidigeObj.childNodes[rc].childNodes[rx].childNodes.length && !CountDone;kc++){
						if(HuidigeObj.childNodes[rc].childNodes[rx].childNodes[kc].nodeName.toUpperCase()=='TH')
							TdCount++;
					}

					CountDone=true;
				}

			}


			if(CountDone){
				var tabelrowcomponent = document.createElement('tr');

				for(kc=0;kc < TdCount;kc++){
					var tabelcellcomponent = document.createElement('td');
					tabelrowcomponent.appendChild(tabelcellcomponent);

					if(!kc){
						var cellInhoud = document.createTextNode(TrCount);
					} else {

						var cellInhoud = document.createElement('textarea');
						cellInhoud.setAttribute('class', 'veldtabel');
						cellInhoud.setAttribute('name','antw[' + vraagId + '][' + (TrCount - 1) + '][' + (kc - 1) + ']');
						cellInhoud.setAttribute('onchange', 'VeranderInvoer(this,'+ ScanId +');');

					//IE6 patch:
						cellInhoud.className='veldtabel';
						cellInhoud.name='antw[' + vraagId + '][' + (TrCount - 1) + '][' + (kc - 1) + ']';
						cellInhoud.onchange=new Function('VeranderInvoer(this,'+ ScanId +');');

					}
					tabelcellcomponent.appendChild(cellInhoud);

				}

				HuidigeObj.childNodes[rc].appendChild(tabelrowcomponent);

			}

		}
	}

}


function setXAttribute(node, name, value) {
	var i;
	for (i = 0; i < node.attributes.length;i++){
		if (node.attributes[i].name == name){

			node.attributes[i].value = value;
		}
	}
} 


function PrintVenster(waarheen){
	PrevVenster = window.open(waarheen,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizeable=yes,width=630,height=450');
	PrevVenster.focus();
}


function maximizeWindow(WindowObj){
	if (parseInt(navigator.appVersion)>3){
		if (navigator.appName=="Netscape"){
			if(WindowObj.screenX>0 || WindowObj.screenY>0) WindowObj.moveTo(0,0);
			if(WindowObj.outerWidth < screen.availWidth) WindowObj.outerWidth=screen.availWidth;
			if(WindowObj.outerHeight < screen.availHeight) WindowObj.outerHeight=screen.availHeight;
		} else {
			WindowObj.moveTo(-4,-4);
			WindowObj.resizeTo(screen.availWidth+8,screen.availHeight+8);
		}
	}
}


function PreviewVenster(waarheen,W,H){
	W+=20;
	H+=20;
	PrevVenster = window.open(waarheen,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizeable=yes,width='+W+',height='+H);
	PrevVenster.focus();
}


function NaarWebsite(waarheen){
	DetailVenster = window.open(waarheen,'_blank');
	DetailVenster.focus();
}



function NieuwVenster(waarheen){
	DetailVenster = window.open(waarheen,'Detail','toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,resizeable=yes,width=800,height=600');
	DetailVenster.focus();
}



function CheckLoginVelden(Vorm){
	conf=true;
	Email=Vorm.Ausername.value;
	if(Email!=''){
		if(Email.indexOf('@', 0)==-1 || Email.indexOf('.', 0)==-1) conf=false;
	} else {
		conf=false;
	}
	if(Vorm.Apassword.value=='') conf=false;

	return conf;

}


function NieuweScan(Vorm){
	if(Vorm.nr.selectedIndex > 0) Vorm.submit();
}


function VerstuurAanmelden(Vorm){
	Msg='';

	if(Vorm.School.value=='') Msg+=' - School ';
	//if(Vorm.Adres.value=='') Msg+=' - Adres ';
	//if(Vorm.Postcode.value=='') Msg+=' - Postcode ';
	if(Vorm.Plaats.value=='') Msg+=' - Plaats ';
	//if(Vorm.Telefoon.value=='') Msg+=' - Telefoon ';

	//if(Vorm.Voornaam.value=='') Msg+=' - Voornaam contactpersoon ';
	//if(Vorm.Achternaam.value=='') Msg+=' - Achternaam contactpersoon ';

	if(Vorm.EPersoon.value!=''){
		if(Vorm.EPersoon.value.indexOf('@', 0)==-1 || Vorm.EPersoon.value.indexOf('.', 0)==-1) Msg+= ' - E-mailadres contactpersoon ';
	} else {
		Msg+=' - E-mail contactpersoon ';
	}

	if(!Vorm.Voorwaarden.checked) Msg+=' - Akkoord voorwaarden ';

	if(Msg){
		alert('Controleer de volgende velden '+Msg);
	} else {
		Vorm.submit();
	}
}


function VerstuurEditSchoolForm(Vorm){
	Msg='';

	if(Vorm.School.value=='') Msg+=' - School ';
	if(Vorm.Adres.value=='') Msg+=' - Adres ';
	if(Vorm.Postcode.value=='') Msg+=' - Postcode ';
	if(Vorm.Plaats.value=='') Msg+=' - Plaats ';
	if(Vorm.Telefoon.value=='') Msg+=' - Telefoon ';

	if(Msg){
		alert('Controleer de volgende velden '+Msg);
	} else {
		Vorm.submit();
	}
}


function VerstuurEditUserForm(Vorm){
	Msg='';
	
	if(Vorm.Voornaam.value=='') Msg+=' - Voornaam ';
	if(Vorm.Achternaam.value=='') Msg+=' - Achternaam ';

	if(Vorm.EPersoon.value!=''){
		if(Vorm.EPersoon.value.indexOf('@', 0)==-1 || Vorm.EPersoon.value.indexOf('.', 0)==-1) Msg+= ' - E-mailadres ';
	} else {
		Msg+=' - E-mailadres ';
	}

	if(Vorm.Wachtwoord1.value!=''){
		if(Vorm.Wachtwoord1.value!=Vorm.Wachtwoord2.value) Msg+=' - 2e invoer wachtwoord ';
	}

	if(Msg){
		alert('Controleer de volgende velden '+Msg);
	} else {
		Vorm.submit();
	}
}


function VerstuurContact(Vorm){
	Msg='';

	if(Vorm.Naam.value=='') Msg+=' - School ';
	if(Vorm.Adres.value=='') Msg+=' - Adres ';
	if(Vorm.Postcode.value=='') Msg+=' - Postcode ';
	if(Vorm.Plaats.value=='') Msg+=' - Plaats ';
	if(Vorm.Contactpersoon.value=='') Msg+=' - Contactpersoon ';
	if(Vorm.EPersoon.value!=''){
		if(Vorm.EPersoon.value.indexOf('@', 0)==-1 || Vorm.EPersoon.value.indexOf('.', 0)==-1) Msg+= ' - E-mailadres ';
	} else {
		Msg+=' - E-mailadres ';
	}

	//if(Vorm.Telefoonnummer.value=='') Msg+=' - Telefoonnummer ';
	//if(Vorm.Opmerkingen.value=='') Msg+=' - Opmerkingen of vragen ';

	if(Msg){
		alert('Controleer de volgende velden '+Msg);
	} else {
		Vorm.submit();
	}
}



function VerstuurNewUserForm(Vorm){

	Msg='';
	
	if(Vorm.Voornaam.value=='') Msg+=' - Voornaam contactpersoon ';
	if(Vorm.Achternaam.value=='') Msg+=' - Achternaam contactpersoon ';

	if(Vorm.EPersoon.value!=''){
		if(Vorm.EPersoon.value.indexOf('@', 0)==-1 || Vorm.EPersoon.value.indexOf('.', 0)==-1) Msg+= ' - E-mailadres ';
	} else {
		Msg+=' - E-mailadres ';
	}


	if(Msg){
		alert('Controleer de volgende velden '+Msg);
	} else {
		Vorm.submit();
	}

}


function SchakelInvoer(ToClass){

	HuidigeElement=document.getElementById('invoerdata');
	if(HuidigeElement.className.indexOf('invoeruit')!=-1){
		HuidigeElement.className=ToClass;
	} else {
		HuidigeElement.className='invoeruit';
	}

}


function numbersonly(myfield, e, dec){

	var key;
	var keychar;

	if(window.event){
		key = window.event.keyCode;
	} else if(e){
		key = e.which;
	} else {
		return true;
	}

	keychar = String.fromCharCode(key);

	// control keys
	if(key==null || key==0 || key==8 || key==9 || key==13 || key==27){
		return true;
	} else if((("0123456789").indexOf(keychar) > -1)){// numbers
		return true;
	} else {
		return false;
	}
}


//Image preload routines staan hieronder
function ImagePreloader(images, callback){

	this.callback = callback;// store the callback

	this.nLoaded = 0;
	this.nProcessed = 0;
	this.aImages = new Array;
 
	this.nImages = images.length;

	for(var i=0; i < images.length; i++){// for each image, call preload()
		this.preload(images[i]);
	}
}


ImagePreloader.prototype.preload = function(image){

	// create new Image object and add to array
	//var oImage = new Image;
	var oImage = document.createElement("img"); // met new Image() werkt 't zeker niet!

	this.aImages.push(oImage);

	// set up event handlers for the Image object
	oImage.onload = ImagePreloader.prototype.onload;
	oImage.onerror = ImagePreloader.prototype.onerror;
	oImage.onabort = ImagePreloader.prototype.onabort;

	// assign pointer back to this.
	oImage.oImagePreloader = this;
	oImage.bLoaded = false;

	// assign the .src property of the Image object
	oImage.src = image;
}

ImagePreloader.prototype.onComplete = function(){
	this.nProcessed++;

	if(this.nProcessed == this.nImages){
		this.callback(this.aImages, this.nLoaded);
	}
}

ImagePreloader.prototype.onload = function(){
	this.bLoaded = true;
	this.oImagePreloader.nLoaded++;
	this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onerror = function(){
   this.bError = true;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onabort = function(){
   this.bAbort = true;
   this.oImagePreloader.onComplete();

}

function StartScripts(){
	//initialisatie van enkele parameters


}
