/*
CUSTOM FORM ELEMENTS
Created by Ryan Fait
www.ryanfait.com
Visit http://ryanfait.com/ for more information.
*/

var checkboxHeight = "25";
var radioHeight = "25";
var selectWidth = "190";


document.write('<style type="text/css">input.styled { display: none; } select.styled { position: relative; width: ' + selectWidth + 'px; opacity: 0; filter: alpha(opacity=0); z-index: 5; }</style>');

var Custom = {
	init: function() {
		var inputs = document.getElementsByTagName("input"), span = Array(), textnode, option, active;
		for(a = 0; a < inputs.length; a++) {
			if((inputs[a].type == "checkbox" || inputs[a].type == "radio") && inputs[a].className == "styled") {
				span[a] = document.createElement("div");
				span[a].className = inputs[a].type + ' ' + inputs[a].name + ' ' + inputs[a].value;
				span[a].onclick = inputs[a].onclick;
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				//inputs[a].onchange = Custom.clear;
				//span[a].onmousedown = Custom.pushed;
				span[a].onmouseup = Custom.check;
				
				img = document.createElement('img');
				img.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/' + inputs[a].value +'.jpg');
				img.setAttribute('id',inputs[a].name+'_'+inputs[a].value);
				
				labeldiv = document.createElement('div');
				labeldiv.setAttribute('class','label');
				textnode = document.createTextNode(inputs[a].alt);
				
				
				fakeCheckBox = document.createElement('img');
				fakeCheckBox.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/checkbox.jpg');
				fakeCheckBox.setAttribute('id','checkbox_'+inputs[a].name+'_'+inputs[a].value);
				
				labeldiv.appendChild(fakeCheckBox);
				labeldiv.appendChild(textnode);
				span[a].appendChild(img);
				span[a].appendChild(labeldiv);
				//document.onmouseup = Custom.clear;
			}
		}
		inputs = document.getElementsByTagName("select");
		for(a = 0; a < inputs.length; a++) {
			if(inputs[a].className == "styled") {
				option = inputs[a].getElementsByTagName("option");
				active = option[0].childNodes[0].nodeValue;
				textnode = document.createTextNode(active);
				for(b = 0; b < option.length; b++) {
					if(option[b].selected == true) {
						textnode = document.createTextNode(option[b].childNodes[0].nodeValue);
					}
				}
				span[a] = document.createElement("span");
				span[a].className = "select";
				span[a].id = "select" + inputs[a].name;
				span[a].appendChild(textnode);
				inputs[a].parentNode.insertBefore(span[a], inputs[a]);
				inputs[a].onchange = Custom.choose;
			}
		}
		
		
	},
	check: function() {
		element = this.nextSibling;
		
		if(element.checked == true && element.type == "checkbox") {
			img = document.getElementById(element.name +'_'+element.value);
			img.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/' + element.value +'.jpg');
			
			img2 = document.getElementById('checkbox_'+element.name+'_'+element.value);
			img2.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/checkbox.jpg');
			
			element.checked = false;
		} else {
			if(element.type == "checkbox") {
				//this.style.backgroundPosition = "0 -" + checkboxHeight*2 + "px";
				//img = document.getElementById(element.name +'_'+element.value);
				//img.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/' + element.value +'_act.jpg');
			} else {
				group = this.nextSibling.name;
				
				inputs = document.getElementsByTagName("input");
				for(a = 0; a < inputs.length; a++) {
					if(inputs[a].name == group && inputs[a] != this.nextSibling) {
						img = document.getElementById(group +'_'+inputs[a].value);
						img.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/' + inputs[a].value +'.jpg');
						
						
						img2 = document.getElementById('checkbox_'+inputs[a].name+'_'+inputs[a].value);
						img2.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/checkbox.jpg');
					}
				}
			}
			element.checked = true;
		}
		if(element.checked){
			img = document.getElementById(element.name +'_'+element.value);
			img.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/' + element.value +'_act.jpg');
			
			img2 = document.getElementById('checkbox_'+element.name+'_'+element.value);
			img2.setAttribute('src','templates/ketelwijzer/extensions/bw_ketelwijzer/images/checkbox_checked.jpg');
		}

	},
	choose: function() {
		option = this.getElementsByTagName("option");
		for(d= 0; d < option.length; d++) {
			if(option[d].selected == true) {
				document.getElementById("select" + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue;
			}
		}
	}
}
window.onload = Custom.init;

function showLayer(layername){
	var layers = ['woningtype', 'bouwjaar', 'woninginhoud','comfortbehoefte'];
	hideDiv(layers[0]);hideDiv(layers[1]);hideDiv(layers[2]);hideDiv(layers[3]);
	showDiv(layername);
}

function checkRadioValue(name){
	for (var x=0; x<document.ketelwijzer.elements[name].length; x++ ) {
		if(document.ketelwijzer.elements[name][x].checked){
			return true;
		}
	}
	return false;
}

function checkSelectValue(name){
	for (var x=0; x<document.ketelwijzer.elements[name].options.length; x++ ) {
		if(document.ketelwijzer.elements[name].options[x].value !='' && document.ketelwijzer.elements[name].options[x].selected){
			return true;
		}
	}
	return false;
}

function is_selected_selectboxvalue(name,value) {
        for (var x=0; x<document.ketelwijzer.elements[name].length; x++ ) {
		if(document.ketelwijzer.elements[name][x].value ==value && document.ketelwijzer.elements[name][x].checked){
			return true;
		}
	}
        return false;
}

function switchToLayer(layer_to_validate,layer_to_show){
	validated = true;
	errormsg = '';
	switch(layer_to_validate){
		case 'woningtype':
			
			if(!checkRadioValue('woningtype')){
				errormsg = 'Kies uw woningtype a.u.b.';
				validated = false;
			}
			if(document.getElementById('flat').checked){
				if(!checkRadioValue('etage')){
					errormsg = 'Kies uw etage a.u.b.';
					validated = false;
				}
			}
			
		break;
		
		case 'bouwjaar':
			if(!checkRadioValue('bouwjaar')){
				errormsg = 'Fout: u heeft geen bouwjaar van uw woning geselecteerd';
				validated = false;
			}
			
			if(is_selected_selectboxvalue('isolatiemaatregelen[]','geenisolatie') && is_selected_selectboxvalue('isolatiemaatregelen[]','welisolatie')){
				errormsg = 'Een enkelsteens muur (zonder isolatie) en een enkelsteens muur (met isolatie) kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}
			
			if(is_selected_selectboxvalue('isolatiemaatregelen[]','welisolatie') && is_selected_selectboxvalue('isolatiemaatregelen[]','spouw')){
				errormsg = 'Een enkelsteens muur en spouwmuur kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}
			if(is_selected_selectboxvalue('isolatiemaatregelen[]','welisolatie') && is_selected_selectboxvalue('isolatiemaatregelen[]','spouwisolatie')){
				errormsg = 'Een enkelsteens muur en spouwmuur kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}
			
			
			if(is_selected_selectboxvalue('isolatiemaatregelen[]','geenisolatie') && is_selected_selectboxvalue('isolatiemaatregelen[]','spouw')){
				errormsg = 'Een enkelsteens muur en spouwmuur kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}
			if(is_selected_selectboxvalue('isolatiemaatregelen[]','geenisolatie') && is_selected_selectboxvalue('isolatiemaatregelen[]','spouwisolatie')){
				errormsg = 'Een enkelsteens muur en spouwmuur kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}
			
			if(is_selected_selectboxvalue('isolatiemaatregelen[]','spouw') && is_selected_selectboxvalue('isolatiemaatregelen[]','spouwisolatie')){
				errormsg = 'Een spouwmuur (zonder isolatie) en een spouwmuur (met isolatie) kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}
			
			if(is_selected_selectboxvalue('isolatiemaatregelen2[]','spouw') && is_selected_selectboxvalue('isolatiemaatregelen2[]','spouwisolatie')){
				errormsg = 'Een spouwmuur (zonder isolatie) en een spouwmuur (met isolatie) kunnen niet gelijktijdig gekozen worden.';
				validated=false;
			}

			var bouwjaar = get_bouwjaar_radio_value();
			//var bouwjaar = document.getElementById('bouwjaarselect').value;
		
			if(bouwjaar == '1930_1979' && document.getElementById('flat').checked){
				if(!checkRadioValue('flat_glas_situatie')){
					errormsg = 'Kies of u enkel of dubbel glas heeft.';
					validated=false;
				}
			}
			
		break;
		
		case 'woninginhoud':
			if(!checkRadioValue('woninginhoud')){
				errormsg = 'Kies uw woninginhoud a.u.b.';
				validated = false;
			}
			var userinput = document.getElementById('woninginhoud_user');
			if(userinput.style.display=='inline' && userinput.value<800){
				errormsg = 'Vul een getal in boven de 800 a.u.b.';
				validated=false;
			}
			
			
		break;
		
		case 'comfortbehoefte':
			if(!checkRadioValue('comfortbehoefte_situatie')){
				errormsg = 'Kies uw situatie a.u.b.';
				validated = false;
			}
			
		break;
	}
	
	if(errormsg.length >0){
		
		document.getElementById('errorDiv_'+layer_to_validate).innerHTML = '<span class="error">'+errormsg+'</span>';
	}
	
	if(validated){
		document.getElementById('errorDiv_'+layer_to_validate).innerHTML = '<span class="error"></span>';
		var layers = ['woningtype', 'bouwjaar', 'woninginhoud','comfortbehoefte'];
		hideDiv(layers[0]);hideDiv(layers[1]);hideDiv(layers[2]);hideDiv(layers[3]);
		showDiv(layer_to_show);
	}
	
}

function hideDiv(divId){
	document.getElementById(divId).style.display='none';
}

function showDiv(divId){
	document.getElementById(divId).style.display='block';
}

function checkBouwjaar(bouwjaar){
	hideDiv('bouwjaar_subquestion_before_1930');
	hideDiv('bouwjaar_subquestion_between_1930_1979');
	hideDiv('bouwjaar_subquestion_flat_between_1930_1979');
	if(bouwjaar == "1930"){
		showDiv('bouwjaar_subquestion_before_1930');
	}

	if(bouwjaar == "1930_1979"){
		if(document.getElementById('flat').checked) {
			showDiv('bouwjaar_subquestion_flat_between_1930_1979');
		} else {
			showDiv('bouwjaar_subquestion_between_1930_1979');
		}
	}
}

function enableField(fieldId){
	document.getElementById(fieldId).style.display='inline';
}
function disableField(fieldId){
	document.getElementById(fieldId).style.display='none';
}
function hideOption(fieldId,option,optioncount){
	//only disable some option when total selectioncount equals optioncount
	if(document.getElementById(fieldId).options.length == optioncount){
		document.getElementById(fieldId).options[option] = null;
	}
}

function checkComfortbehoefte(situation){
	hideDiv('comfortbehoefte_typebad');
	hideDiv('comfortbehoefte_typedouche');
	hideDiv('comfortbehoefte_gelijktijdig');
	hideDiv('comfortbehoefte_bad_en_douche_gelijktijdig');
	hideDiv('ajax-advice-results');
	
	if(situation == 'bad_en_douche_combi'){
		showDiv('comfortbehoefte_typebad');
		showDiv('comfortbehoefte_gelijktijdig');
	}
	if(situation == 'douche'){
		showDiv('comfortbehoefte_typedouche');
		showDiv('comfortbehoefte_gelijktijdig');
	}
	if(situation == 'bad_en_douche_apart' || situation=='bad_en_douche_apart'){
		showDiv('comfortbehoefte_typebad');
		showDiv('comfortbehoefte_typedouche');
		showDiv('comfortbehoefte_gelijktijdig');
		showDiv('comfortbehoefte_bad_en_douche_gelijktijdig');
	}
	if(situation == 'meer_dan_1_badkamer'){
		showDiv('comfortbehoefte_gelijktijdig');
		showDiv('comfortbehoefte_bad_en_douche_gelijktijdig');
	}
	extraBadkamerComfort();
	
}

function extraBadkamerComfort(){
	
	var situation = get_comfortbehoefte_situatie_radio_value();
	var gelijktijdig = get_comfortbehoefte_bad_en_douche_gelijktijdig_radio_value();
	if(situation=='meer_dan_1_badkamer' && gelijktijdig == 0){
		showDiv('comfortbehoefte_typebad');
		showDiv('comfortbehoefte_typedouche');
	}
	
	if(situation=='meer_dan_1_badkamer' && gelijktijdig == 1){
		hideDiv('comfortbehoefte_typebad');
		hideDiv('comfortbehoefte_typedouche');
		
	}
	
}

function checkEnable(){
	var situation = get_comfortbehoefte_situatie_radio_value();
	if(situation=='meer_dan_1_badkamer'){
		showDiv('send');
	}
	if(situation=='bad_en_douche_combi'){
		
		var typebad = get_typebad_radio_value();
		if(typebad){
			showDiv('send');
		}
	}
	if(situation=='bad_en_douche_apart'){
		var typebad = get_typebad_radio_value();
		var typedouche = get_typedouche_radio_value();
		if(typebad && typedouche){
			showDiv('send');
			
		}
	}
	if(situation=='douche'){
		var typedouche = get_typedouche_radio_value();
		if(typedouche){
			showDiv('send');
		}
	}
}

function checkComfortbehoefteGelijktijdig(){
	
	var gelijktijdigBadEnDouche = get_comfortbehoefte_bad_en_douche_gelijktijdig_radio_value();
	var situation = get_comfortbehoefte_situatie_radio_value();
	
	if(checkRadioValue('comfortbehoefte_gelijktijdig')){
		if((situation=='meer_dan_1_badkamer' || situation=='bad_en_douche_apart')){
			if(gelijktijdigBadEnDouche){
				ketelwijzerSubmit();
			} else {
				errormsg = 'Vul a.u.b. in of u gelijktijdig het bad en de douche wilt gebruiken.';
			}
		} else {
			ketelwijzerSubmit();
		}
	} else {
		errormsg = 'Vul a.u.b. in of u gelijktijdig de badkamer en een keuken of wastafelkraan wilt gebruiken.';
	}
	if(errormsg.length >0){
		document.getElementById('errorDiv_comfortbehoefte').innerHTML = '<span class="error">'+errormsg+'</span>';
	}
}


function get_typebad_radio_value(){
for (var i=0; i < document.ketelwijzer.typebad.length; i++)
   {
   if (document.ketelwijzer.typebad[i].checked)
      {
      var rad_val = document.ketelwijzer.typebad[i].value;
      }
   }
   return rad_val;
}

function get_typedouche_radio_value(){
for (var i=0; i < document.ketelwijzer.typedouche.length; i++)
   {
   if (document.ketelwijzer.typedouche[i].checked)
      {
      var rad_val = document.ketelwijzer.typedouche[i].value;
      }
   }
   return rad_val;
}

function get_comfortbehoefte_situatie_radio_value(){
for (var i=0; i < document.ketelwijzer.comfortbehoefte_situatie.length; i++)
   {
   if (document.ketelwijzer.comfortbehoefte_situatie[i].checked)
      {
      var rad_val = document.ketelwijzer.comfortbehoefte_situatie[i].value;
      }
   }
   return rad_val;
}

function get_bouwjaar_radio_value(){
for (var i=0; i < document.ketelwijzer.bouwjaar.length; i++)
   {
   if (document.ketelwijzer.bouwjaar[i].checked)
      {
      var rad_val = document.ketelwijzer.bouwjaar[i].value;
      }
   }
   return rad_val;
}

function get_comfortbehoefte_bad_en_douche_gelijktijdig_radio_value(){
for (var i=0; i < document.ketelwijzer.comfortbehoefte_bad_en_douche_gelijktijdig.length; i++)
   {
   if (document.ketelwijzer.comfortbehoefte_bad_en_douche_gelijktijdig[i].checked)
      {
      var rad_val = document.ketelwijzer.comfortbehoefte_bad_en_douche_gelijktijdig[i].value;
      }
   }
   return rad_val;
}

function ketelwijzerSubmit(){
$.post(
	document.ketelwijzer.action, 
	$("form").serialize(),
	function(data){
		$('#ajax-advice-results').html(data);
		document.getElementById('ketelwijzer').style.display='none';
		document.getElementById('ajax-advice-results').style.display='block';
	}
);
}

