var toonOptieLadder		= false
var toonOptieRailing	= false
var dagmaat, dagmaatMem
var dagluikBoolean		= false
var dagluikDagmaat		= ""
var codeClick			= false
var oppSet				= false

var cleanBestek = function(bestekTekst){
	var retArr = []
	var startPos, endPos, repString

	//labels verwijderen:
	bestekTekstArr		= bestekTekst.split("\n")
	bestekTekstArrLengte= bestekTekstArr.length

	for(var i = 0; i < bestekTekstArrLengte; i++){
		startPos = bestekTekstArr[i].search(/\[Stat\:/gi)
		if(startPos != -1){
			endPos		= bestekTekstArr[i].search(/\]/gi) + 1
			repString	= bestekTekstArr[i].substring(startPos, endPos)

			bestekTekstArr[i] = bestekTekstArr[i].replace(repString, "")
		}

		if(bestekTekstArr[i].search(/\[/gi) == -1){
			retArr[retArr.length] = bestekTekstArr[i]
		}else{
			testVal=bestekTekstArr[i].replace(/\[LF\]/gi,"\n")
			if(testVal.search(/\[/gi) == -1){
				retArr[retArr.length] = testVal
			}
		}
	}
	bestekTekst = retArr.join("\n").replace(/…/gi, "...")

	//bestekregels evt. afbreken (slechts voor STABU):
	if(bestekTekst.search(/@ST_BEGIN:/gi) != -1){
		bestekTekstArr		= bestekTekst.split("\n")
		bestekTekstArrLengte= bestekTekstArr.length
		bestekTekst			= ""

		for(var i = 0; i < bestekTekstArrLengte; i++){
			if(bestekTekstArr[i].search(/999.c99.000/gi) == -1){
				bestekTekst += formatRegel(bestekTekstArr[i]) + "\n"
			}else{
				bestekTekst += bestekTekstArr[i] + "\n"
			}
		}
	}

	return bestekTekst
}

var formatRegel = function(str){
	var breedte = 53
	var retVal
	var x, y

	if(str.length > breedte){
		retVal = str
		x = breedte - 1
		y = breedte
		do{
			x = x - 1
			y = y - 1
		}while(
			str.substring(x, y) != " "
		)
			retVal = str.substring(0, y) + "\n    " + formatRegel(str.substring(y, str.length))
	}else{
		retVal = str
	}

	return retVal
}

function copyBestek (){
	try{
		window.clipboardData.setData('text', getText ('bestekPost'));
		alert("De bestektekst is naar het klembord gekopieerd.");
	}catch(e){
		alert("Uw browser ondersteunt het kopieren naar het klembord niet, kopieer de bestektekst handmatig uit uw browser.")
	}
}

function getText (o) {
	var txt = document.getElementById(o).innerText;

	if(typeof txt == "undefined") {
		txt = document.getElementById(o).value;
	}
	txt = txt.replace(/\n/g, "\r\n");

	return txt;
}

var wisselBestek = function(bestek){
	var externBestek = false;
	var verwerkExterneBestekTekst = false;
	var bestekTekst;

	if(document.getElementById("aanvullendBestek")){
		if(document.getElementById("aanvullendBestek").style.display == "block"){
			externBestek = true;
		}
	}

	if(parent){
		if(parent.bestekForm){
			if(parent.bestekForm.bestekPost){
				if(parent != document){
					verwerkExterneBestekTekst = true;
				}
			}
		}
	}

	if(typeof bestek =="undefined"){
		if(verwerkExterneBestekTekst){
			bestek = parent.document.bestekForm.BestekControll[0].checked ? "STABU" : "Neutraal"
		}else{
			if(typeof document.bestekForm.BestekControll == "undefined"){
				bestek = "STABU"
			}else{
				bestek = document.bestekForm.BestekControll[0].checked ? "STABU" : "Neutraal"
			}
		}
	}

	if(document.getElementById("BlokSTABU") && document.getElementById("BlokNeutraal")){
		switch(bestek){
			case "STABU":
				document.getElementById("BlokSTABU").style.display		= "block";
				document.getElementById("BlokNeutraal").style.display	= "none";
				bestekTekst												= cleanBestek(verwerkBestek(bestek, document.getElementById("BestekSTABUPost").value));
				document.bestekForm.bestekPost.value					= bestekTekst;
				if(externBestek){
					document.aanvullendBestek.bestekForm.BestekControll[0].click();
				}
			break
			case "Neutraal":
				document.getElementById("BlokSTABU").style.display		= "none";
				document.getElementById("BlokNeutraal").style.display	= "block";
				bestekTekst												= cleanBestek(verwerkBestek(bestek, document.getElementById("BestekNeutraalPost").value))
				document.bestekForm.bestekPost.value					= bestekTekst;
				if(externBestek){
					document.aanvullendBestek.bestekForm.BestekControll[1].click();
				}
			break
		}
	}

	if(verwerkExterneBestekTekst){
		//aanroep vanuit onderliggende pagina: muurafdeksysteem.asp
		parent.verwerkExternBestek(cleanBestek(verwerkBestek(bestek, parent.document.getElementById("Bestek" + bestek + "Post").value)), document.bestekForm.bestekPost.value);
	}else{
		//controleren of er een extern bestek aanwezig is:
		if(document.getElementById("aanvullendBestek")){
			if(document.getElementById("aanvullendBestek").style.display == "block"){
				parent.verwerkExternBestek(bestekTekst, document.aanvullendBestek.bestekForm.bestekPost.value)
			}
		}
	}
}

var verwerkBestek = function(bestek, bestekTekst){
	var schrijfWaarde, extraLabels, e, l, vrijeInvoer, prodType, vorm, artikelnummer

	for(var i = 0; i < bestekEigenschapArray.length; i++){
		switch(bestek){
			case "STABU":
				schrijfWaarde	= bestekEigenschapArray[i].stabuCode
				extraLabels		= bestekEigenschapArray[i].extralabelsSTABU
			break;
			case "Neutraal":
				schrijfWaarde	= bestekEigenschapArray[i].neutraalCode
				extraLabels		= bestekEigenschapArray[i].extralabelsNeutraal
			break;
		}

		vrijeInvoer = document.getElementById("input" + bestekEigenschapArray[i].label).value

		if(vrijeInvoer != ""){
			schrijfWaarde = vrijeInvoer
			if(1 == 2){
				schrijfWaarde.replace(/\.\.\.\.\./gi, vrijeInvoer)
			}
		}

		//uitzondering balusters einddop:
		if(bestekEigenschapArray[i].label == "Einddop"){
			//alert(bestekEigenschapArray[i].label + "\n\n" + schrijfWaarde)
			for(var j = 0; j < bestekEigenschapArray.length; j++){
				prodType = document.title;
				if(prodType != ""){
					prodType = prodType.split(" > ")[prodType.split(" > ").length - 1];
					prodType = prodType.replace(/Roval /gi, "")
					vorm = prodType.split(" ")[0];
					artikelnummer = prodType.split(" ")[1];
					
					bestekTekst = bestekTekst.replace(/\[EinddopType\]/gi, vorm + ", art. nr. " + artikelnummer);
					//bestekTekst = bestekTekst.replace(eval("\/\\[" + bestekEigenschapArray[i].label + "\\]\/gi"), artikelnummer);
				}
			}
		}

		bestekTekst = bestekTekst.replace(eval("\/\\[" + bestekEigenschapArray[i].label + "\\]\/gi"), schrijfWaarde)

		if((extraLabels != "") && (bestekEigenschapArray[i].stabuCode != "[D]")){
			e = extraLabels.split("[,]")
			l = e.length
			for(var j = 0; j < l; j++){
				e[j] = e[j].split("|")
				bestekTekst = bestekTekst.replace(eval("\/\\[" + e[j][0] + "\\]\/gi"), e[j][1])
			}
		}
	}

	return bestekTekst
}

var verwerkExternBestek = function (internBestek, externBestek){
	var tempBestekArray;
	var tempBestek = "";
	var voegtoe;

	if(externBestek.search(/#STABU/gi) != -1){
		tempBestekArray = externBestek.split("\n")
		externBestek = "";
		for(var i = 0; i < tempBestekArray.length; i++){
			voegtoe = true;

			if(tempBestekArray[i].search(/#/gi) == 0){
				voegtoe = false;
			}
			if(tempBestekArray[i].search(/@ST_END/gi) == 0){
				voegtoe = false;
			}
			if(tempBestekArray[i].search(/@ST_BEGIN:/gi) == 0){
				voegtoe = false;
			}

			if(voegtoe){
				externBestek += tempBestekArray[i] + "\n";
			}
		}
		document.bestekForm.bestekPost.value = internBestek.replace(/@ST_END/gi, externBestek + "\n@ST_END");
	}else{
		document.bestekForm.bestekPost.value = internBestek + "\n\n" + externBestek;
	}
}

Array.prototype.remove = function(from, to){
	var rest = this.slice((to || from) + 1 || this.length);
	this.length = from < 0 ? this.length + from : from;
	return this.push.apply(this, rest);
}

var toonOpties = function(labelString, captionString){
	labelString = "optie" + labelString + "Div"
	if(document.getElementById(labelString) && document.getElementById("optieDiv")){
		document.getElementById("optieDiv").innerHTML		= "<table cellpadding='0' cellspacing='0' border='0' width='100%'><tr><td align='left'><strong>" + captionString + "</strong></td><td align='right'><A href='javascript://' onClick='sluitOptieVenster()'>sluit opties</A></td></tr><tr><td colspan='2'><hr>" + document.getElementById(labelString).innerHTML + "</td></tr></table>"
		document.getElementById("optieDiv").style.display	= "block"
	}
}

var selecteerEigenschap = function(a){
	var valueSet = false
	var bObj = new bestekObject(a)

	if(document.getElementById("input" + bObj.label).value != ""){
		bObj.toonWaarde = document.getElementById("input" + bObj.label).value
	}

	if(bObj.toonWaarde == ""){
		if(bObj.toonWaarde == ""){
			bObj.toonWaarde = "....."
		}
	}

	if(document.getElementById("optieDiv")){
		document.getElementById("optieDiv").style.display	= "none"
		document.getElementById("optieDiv").innerHTML		= "&nbsp;"
	}
	if(document.getElementById("keuze" + bObj.label)){
		document.getElementById("keuze" + bObj.label).style.display = "none"
	}

	if(document.getElementById("waarde" + bObj.label)){
		document.getElementById("waarde" + bObj.label).innerHTML = bObj.toonWaarde
		document.getElementById("waarde" + bObj.label).style.display = "block"

		for(var i = 0; i < bestekEigenschapArray.length; i++){
			if(bestekEigenschapArray[i].label == bObj.label){
				bestekEigenschapArray[i] = bObj
			}
		}

		if(!valueSet){
			bestekEigenschapArray[bestekEigenschapArray.length] = bObj
		}

		wisselBestek()
	}

	if(!codeClick){
		if(document.getElementById(bObj.label + "ResetCell")){
			document.getElementById(bObj.label + "ResetCell").innerHTML = "<A href='javascript://' onClick='resetLabel(\"" + bObj.label + "\")'><img src='images/ico_erase.gif' alt='' width='15' height='14' border='0'></A>"
		}
	}

	if(bObj.toonWaarde.search(/\.\.\.\.\./gi) != -1){
		document.getElementById(bObj.label + "InvoerCell").innerHTML = "<A href='javascript://' onClick='vulEigenschap(\"" + bObj.label + "\")'><img src='images/ico_edit.gif' alt='' width='15' height='14' border='0'></A>"
	}

	//afhankelijkheden verwerken:
	switch(bObj.label){
		case "Kleur":
			//oppervlaktebehandeling brute & blank geanodiseerd uitschakelen:

			for(var i = 0; i < document.links.length; i++){
				var t = new String(document.links[i].onclick)

				if((t.search(/selecteerEigenschap/gi) != -1) && (t.search(/gemoffeld/gi) != -1) && (t.search(/Oppervlaktebehandeling/gi) != -1)){
					codeClick	= true
					oppSet		= true
					document.links[i].click()
				}
//buggie, vervangen door bovenstaande code:
//				if((t.search(/selecteerEigenschap/gi) != -1) && (t.search(/\,\ \'\'\]\)/gi) == -1) && t.search(eval("/\,\ \'" + bObj.label + "\'\]/gi")) != -1){
//					codeClick	= true
//					oppSet		= true
//					document.links[i].click()
//				}
			}
			if(document.getElementById("OppervlaktebehandelingResetCell")){
				document.getElementById("OppervlaktebehandelingResetCell").innerHTML = "&nbsp;"
			}
		break;
		case "Oppervlaktebehandeling":
			//bij keuze gemoffeld slechts de keuze kleur mogelijk maken:
			if(bObj.toonWaarde != "Gemoffeld"){
				if(document.getElementById("keuzeKleur")){
					document.getElementById("keuzeKleur").style.display = "none"
				}
				if(document.getElementById("waardeKleur")){
					document.getElementById("waardeKleur").innerHTML = "n.v.t."
					document.getElementById("waardeKleur").style.display = "block"
				}
			}
		break;
		case "Muurafdeksysteem":
			if(bObj.toonWaarde != ""){
				if(document.getElementById("aanvullendBestek")){
					document.getElementById("aanvullendBestek").src = "muurafdeksysteem.asp?productId=" + bObj.stabuCode;
					document.getElementById("aanvullendBestek").style.display = "block";
				}
			}
		break;
	}

	codeClick = false

	sluitOptieVenster()
	toelichtingActie()
}

var resetLabel = function(labelString){
	if(document.getElementById("keuze" + labelString)){
		document.getElementById("keuze" + labelString).style.display = "block"
	}
	if(document.getElementById("waarde" + labelString)){
		document.getElementById("waarde" + labelString).style.display = "none"
	}
	if(document.getElementById(labelString + "ResetCell")){
		document.getElementById(labelString + "ResetCell").innerHTML = "&nbsp;"
	}
	if(document.getElementById(labelString + "InvoerCell")){
		document.getElementById(labelString + "InvoerCell").innerHTML = "&nbsp;"
	}

	for(var i = 0; i < bestekEigenschapArray.length; i++){
		if(bestekEigenschapArray[i].label == labelString){
			bestekEigenschapArray.remove(i)
		}
	}

	//afhankelijkheden goedzetten (kleur <--> oppervlaktebehandeling:
	if(labelString == "Oppervlaktebehandeling"){
		if(document.getElementById("waardeKleur")){
			if(document.getElementById("waardeKleur").innerHTML == "n.v.t."){
				document.getElementById("waardeKleur").innerHTML = "&nbsp;"
				document.getElementById("waardeKleur").style.display = "none"
			}
			if(document.getElementById("keuzeKleur")){
				document.getElementById("keuzeKleur").style.display = "block"
			}
		}
	}
	if(oppSet){
		//uit array verwijderen:
		for(var i = 0; i < bestekEigenschapArray.length; i++){
			if(bestekEigenschapArray[i].label == "Oppervlaktebehandeling"){
				bestekEigenschapArray.remove(i)
			}
		}

		oppSet = false
		if(document.getElementById("keuzeOppervlaktebehandeling")){
			document.getElementById("keuzeOppervlaktebehandeling").style.display = "block"
		}
		if(document.getElementById("waardeOppervlaktebehandeling")){
			document.getElementById("waardeOppervlaktebehandeling").style.display = "none"
		}
	}

	if(document.getElementById("aanvullendBestek")){
		document.getElementById("aanvullendBestek").style.display = "none";
	}
	
	wisselBestek()
}

var vulEigenschap = function(labelString){
	var HTML = "<table cellpadding='0' cellspacing='0' border='0' width='100%'>"
	HTML += "<tr><td align='left'><strong>" + labelString + "</strong></td><td align='right'><A href='javascript://' onClick='sluitOptieVenster()'>sluit opties</A></td></tr>"
	HTML += "<tr><td colspan='2'><hr></td></tr>"
	HTML += "<tr><td colspan='2'><form name='IVF' action='javascript://' onSubmit='verwerkVrijeInvoer(\"" + labelString + "\")'><input name='IVV' value='" + document.getElementById("input" + labelString).value + "'>&nbsp;<input type='button' onClick='verwerkVrijeInvoer(\"" + labelString + "\")' value='ok' style='width:30px'></form></td></tr>"
	HTML += "</table>"

	if(document.getElementById("optieDiv")){
		document.getElementById("optieDiv").innerHTML		= HTML
		document.getElementById("optieDiv").style.display	= "block"
		document.IVF.IVV.select()
	}
}

var verwerkVrijeInvoer = function(labelString){
	var huidigeWaarde = document.getElementById("input" + labelString).value
	
	if(huidigeWaarde == ""){
		if(document.getElementById("waarde" + labelString)){
			huidigeWaarde = document.getElementById("waarde" + labelString).innerHTML
		}
	}

	document.getElementById("input" + labelString).value = document.IVF.IVV.value
	document.getElementById("waarde" + labelString).innerHTML = document.getElementById("waarde" + labelString).innerHTML.replace(eval("/" + huidigeWaarde.replace(/\./gi, "\\.") + "/gi"), document.IVF.IVV.value)

	sluitOptieVenster()
	wisselBestek()
}

var sluitOptieVenster = function(){
	if(document.getElementById("optieDiv")){
		document.getElementById("optieDiv").style.display	= "none"
		document.getElementById("optieDiv").innerHTML		= "&nbsp;"
	}
}

var toelichtingActie = function(a){
	var displayString	= (typeof a == "undefined") ? "none" : "block"
	var HTML			= "&nbsp;"

	if(displayString == "block"){
		var bObj = new bestekObject(a)

		if(typeof bObj.toelichting != "undefined"){
			HTML = bObj.toelichting
		}
		if((HTML == "&nbsp;") || (HTML == "")){
			displayString = "none"
		}
	}

	if(document.getElementById("toelichtingDiv")){
		document.getElementById("toelichtingDiv").innerHTML		= HTML
		document.getElementById("toelichtingDiv").style.display = displayString
	}
}

var bestekObject = function(a){
	this.label				= a[0]
	this.toonWaarde			= a[1]
	this.stabuCode			= a[2]
	this.neutraalCode		= a[3]
	this.toelichting		= a[4]
	this.extralabelsSTABU	= a[5]
	this.extralabelsNeutraal= a[6]
}
