// object representing an LaminaatProduct
function LaminaatProduct(id,name,width,length,nrInPack) {
	this.name = name;
	this.id = id;
	this.width = width;
	this.length = length;
	this.nrInPack = nrInPack;
}

function closeContainer(productid) {
 	var par = document.getElementById('paint_result_column');
 	var div = document.getElementById("container_" + divid);
 	par.removeChild(div);
}

// building the objects
var laminaten = new Array();
var ondervloeren = new Array();

function initSelectLists() {
	var lamSelect = document.getElementById('lam');
	
	lamSelect.options[0] = new Option("Maak uw keuze","0",true,true);
	
	for ( var i = 0 ; i < laminaten.length ; i++ ) {
		lamSelect.options[i+1] = new Option(laminaten[i].name,laminaten[i].id,false,false);
	}
	
	var onderSelect = document.getElementById('ondervl');
	
	onderSelect.options[0] = new Option("Maak uw keuze","0",true,true);
	
	for ( var i = 0 ; i < ondervloeren.length ; i++ ) {
		onderSelect.options[i+1] = new Option(ondervloeren[i].name,ondervloeren[i].id,false,false);
	}
	
}

// old code

var div_id = 1;

var tempTextEl;

function validate_laminaat(){
	
	
	var lengte = document.getElementById('lengte');
	var breedte = document.getElementById('breedte');
	var oppervlakte = document.getElementById('oppervlakte');
	var afm1 = document.getElementById('afmeting1');
	var afm2 = document.getElementById('afmeting2');
	var laminaat = document.getElementById('lam');
	var ondervl = document.getElementById('ondervl');
	var x=document.getElementById('lengte').value;
	var y=document.getElementById('breedte').value;
	var opp=document.getElementById('oppervlakte').value;
	var anum=/(^\d+$)|(^\d+\.\d+$)/
	var hasError = false;
		
	if(laminaat.value < 1){
		hasError = true;
		laminaat.parentNode.className = "fault";
	}
	else {
		laminaat.parentNode.className = "";
	}
	if(ondervl.value < 1 ){
		hasError = true;
		ondervl.parentNode.className = "fault";
	}
	else  {
		ondervl.parentNode.className = "";
	}
	if (!anum.test(x) && afm1.checked == true){
		hasError = true;
		lengte.parentNode.className = "fault";
	}
	else { 
		lengte.parentNode.className = "";
	}
	if (!anum.test(y) && afm1.checked == true){
		hasError = true;
		breedte.parentNode.className = "fault";
	}
	else {
		breedte.parentNode.className = "";
	}
	if ((!anum.test(x) || !anum.test(y)) && afm1.checked == true){
		//when we get here, hasError should already be true.
		afm1.parentNode.className = "fault";
	}
	else { 
		afm1.parentNode.className = "";
	}
	if (afm2.checked == true){
		if (!anum.test(opp)){
			hasError = true;
			oppervlakte.parentNode.className = "fault";
			afm1.parentNode.className = "fault";
		}
		else {
			oppervlakte.parentNode.className = "";
			afm1.parentNode.className = "";
		}
	} else {
		oppervlakte.parentNode.className = "";
	}
	if(hasError == false){
		// validation ok, proceed
		if (afm1.checked == true) {
			opp = 0;
		}
		else if (afm2.checked == true) {
			x = 0;
			y = 0;
		}
		calc(x, y, opp, laminaat.value, ondervl.value);
		
		wa.toolcompleted("laminaatBerekenen");
	}
}

function calc(lengte, breedte, oppervlakte, lamID, ondervlID){
			var lamtitel = '';
			var ondervltitel = '';
			var dia = document.getElementById('dia');
			var opp;
			if (oppervlakte ==0) {
				opp = lengte*breedte;
			}
			else {
				opp = 1*oppervlakte;
			}
			var onderopp = opp;
			var diaOpp;
			var topp = opp;
			if (dia.checked){
				diaOpp = 0.07*topp;
				topp = topp+diaOpp;
			}
			var zaag = 0.05*topp;
			var topp = topp+zaag;
			
			var pak;
			var onderpak;
			
			// find selected laminaat
			for (var i = 0 ; i < laminaten.length ; i++ ) {
				if (laminaten[i].id == lamID) {
					lamtitel = laminaten[i].name
					
					// cm2
					var surfaceInPack = (laminaten[i].width * laminaten[i].length) * laminaten[i].nrInPack;
					
					//m2
					surfaceInPack = surfaceInPack / 10000;
					
					// nr of packs needed
					pak = topp / surfaceInPack;
					
					//alert("surface in pack: " + surfaceInPack + "\nNumber of packs: " + pak);
					
					// exit loop
					break;
				}
			}
			
			// find selected ondervloer
			for (var i = 0 ; i < ondervloeren.length ; i++ ) {
				if (ondervloeren[i].id == ondervlID) {
					ondervltitel = ondervloeren[i].name
					
					// cm2
					surfaceInPack = (ondervloeren[i].width * ondervloeren[i].length) * ondervloeren[i].nrInPack;
					
					//m2
					surfaceInPack = surfaceInPack / 10000;
					
					// no of packs needed
					onderpak = onderopp / surfaceInPack;
					
					// exit loop
					break;
				}
			}
			
			// round the numbers
			
			// round on 2 decimals
			zaag = Math.round(zaag*100)/100 + '';
			opp = Math.round(opp*100)/100 + '';
			onderopp = Math.round(onderopp*100)/100 + '';
			topp = Math.round(topp*100)/100 + '';
			diaOpp= Math.round(diaOpp*100)/100 + '';
			
			// round upwards
			pak = Math.ceil(pak) + '';
			pak = pak.replace(/\./g,",");
			onderpak = Math.ceil(onderpak) + '';
			
			// get the container output element
			var cont = document.getElementById("paint_result_column");
			
			var result_nr = 1;
									
	var output = "<h2>Benodigd laminaat</h2><div class='graybox mb10' id='result_" + result_nr + "'>";
	output += "<div class='form'><fieldset><div class='checkbox'>";
	output += "<input type='checkbox' class='checkbox' checked='checked' id='checkbox3'  stuks='"+ pak + "' value='" + lamtitel + "' /><label for='checkbox3'><strong>";
	output += lamtitel;
	output += "</strong></label></div>";
	output += "<table class='table'>";
	output += "<tr><td>Kamer oppervlakte:</td><td>" + opp.replace(/\./g,",") + " m2</td></tr>";
	
	if (dia.checked) {
		output = output + "<tr><td>Diagonaal gelegd</td><td>" + diaOpp.replace(/\./g,",") + "m2</td></tr>";
	}
	
	output += "<tr><td>Zaagverlies 5%</td><td>" + zaag.replace(/\./g,",") + " m2</td></tr>";
	output += "<tr><td>Totale oppervlakte:</td><td>" + topp.replace(/\./g,",") + " m2</td></tr>";
	output += "<tr><td>Totaal aantal pakken: </td><td >" + pak + " stuks</td></tr>";
	output += "</tr></table></fieldset></div></div>";	
	
	// add to results & increase result_nr
	cont.innerHTML = output;
	result_nr++;

	// output ondervloer
	output = "<div class='graybox mb10' id='result_" + result_nr + "'>";
	output += "<div class='form'><fieldset><div class='checkbox'>";
	output += "<input type='checkbox' class='checkbox' checked='checked' id='checkbox4' stuks='"+ pak + "' value='" + ondervltitel + "' />" ;
	output +=		"<label for='checkbox4'><strong>";
	output += ondervltitel;
	output += "</strong></label></div>";
	output += "<table class='table'>";
	output += "<tr><td>Totale oppervlakte:</td><td>" + opp.replace(/\./g,",") + " m2</td></tr>";
	output += "<tr><td>Totaal aantal pakken: </td><td>" + pak + " stuks</td></tr>";
	output += "</tr></table></fieldset></div></div>";
	
	cont.innerHTML = cont.innerHTML + output;
	
	// output knoppen
	output = "<span class='btn'><input type='button' value='Zet op boodschappenlijst' onclick='addToShoppingCart()' /></span>";
	output += "<a href='#' class='print iconlink ml20' onclick='javascript:print();'>Print benodigdheden</a>";
	output += "</div></div>";
	cont.innerHTML = cont.innerHTML + output;
}

function addToShoppingCart(){
	var products = $$("#paint_result_column input[type=checkbox]");
	//if checked add to list
	for(i in products){
		if(products[i].checked){
			var stuks = products[i].getAttribute('stuks');
			var productName = products[i].value;
			addShoppingItem({ name: productName, amount: stuks });
		}	
	}
}
				
function deletediv(divid) {
 	var cont = document.getElementById('paint_result_column')
	var div = document.getElementById(divid);
	cont.removeChild(div);
	
	// if container empty, add temporary text
	if ( cont.innerHTML.match(/^\s*$/) ) {
		cont.appendChild(tempTextEl);
	}
}

function printMateriaal(bgColor) {
	var title = document.getElementById('titlesource').firstChild.nodeValue.replace(/^\s*/,"").replace(/\s*$/,"");

	var closeregex = /<a\s.*<\/a>/gim;
	var widthregex = /width=[\'\"]200[\'\"]/gim;
	var colspanregex = /colspan=[\'\"]3[\'\"]/gim;
	
	var textFound = false;
	
	var content = new Array();
	
	for ( var i = 1 ; i <= div_id ; i++ ) {
		var source = document.getElementById( 'result_' + i );
	
		// only proceed if element found
		if ( source ) {
			
			textFound = true;
			
			// add the text
			content[content.length] = source.innerHTML.replace(closeregex,"").replace(colspanregex,"colspan='4'").replace(widthregex,"width='300'");
		}
	}
	
	//alert("Number of content: " + content.length);
	
	if ( textFound ) {
		
		openPrintWindow(title,content,bgColor);
		
	} else {
		alert("U heeft nog geen keuze gemaakt...");
	}
	
	return false;
}		

