var errorelm="error";
function sending(tekst,elm) {
	if(elm=="inschrijven") {
		errorelm="error";
	} else if(elm=="optie") {
		errorelm="error2";
	}
	if(document.getElementById(errorelm)) {
		if(tekst!="") {
			tekst=tekst+"";
			tekst=nl2br(tekst,true);
			document.getElementById(errorelm).innerHTML=tekst;
			document.getElementById(errorelm).style.display="block";
		} else {
			document.getElementById(errorelm).style.display="none";	
		}
	}
}
function nl2br (str, is_xhtml) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Philip Peterson
    // +   improved by: Onno Marsman
    // +   improved by: Atli Þór
    // +   bugfixed by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Maximusya
    // *     example 1: nl2br('Kevin\nvan\nZonneveld');
    // *     returns 1: 'Kevin<br />\nvan<br />\nZonneveld'
    // *     example 2: nl2br("\nOne\nTwo\n\nThree\n", false);
    // *     returns 2: '<br>\nOne<br>\nTwo<br>\n<br>\nThree<br>\n'
    // *     example 3: nl2br("\nOne\nTwo\n\nThree\n", true);
    // *     returns 3: '<br />\nOne<br />\nTwo<br />\n<br />\nThree<br />\n'

    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';

    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
}

var zd = {};
var zd2 = '';
var order_id = Math.floor(Math.random() * 1111111111);

function inschrijven(deze,soort) {
	
	sending("Bezig met verwerken.",soort);
	zd2 = soort;
	
	//
	//alert("!");
	aantal1=deze.getElementsByTagName('input').length;
	aantal2=deze.getElementsByTagName('select').length;
	var q="";
	for(var x=0; x<aantal1; x++) {
		//alert(x);
		elm=deze.getElementsByTagName('input')[x];
		name=elm.getAttribute("name");
		//class=elm.getAttribute("class");
		if(elm.getAttribute("name")) {
			if(elm.getAttribute("type")=="text") {
				//if(class.indexOf('verplicht')>=0) {
					//name="!"+name;
				//}
				q+="&"+name+"="+elm.value;
				zd[name] = elm.value;
				//alert("text:"+elm.getAttribute("name"));
			} else if(elm.getAttribute("type")=="radio") {
				//if(class.indexOf('verplicht')>=0) {
					//name="!"+name;
				//}
				if(elm.checked == true) {
					q+="&"+name+"="+elm.value;
					zd[name] = elm.value;
				}
				//alert("radio:"+elm.getAttribute("name"));
			} else if(elm.getAttribute("type")=="checkbox") {
				//if(class.indexOf('verplicht')>=0) {
					//name="!"+name;
				//}
				if(elm.checked == true) {
					q+="&"+name+"="+elm.value;
					zd[name] = elm.value;
				}
				//alert("checkbox:"+elm.getAttribute("name"));
			} else if(elm.getAttribute("type")=="hidden") {
				//if(class.indexOf('verplicht')>=0) {
					//name="!"+name;
				//}
				q+="&"+name+"="+elm.value;
				zd[name] = elm.value;
				//alert("text:"+elm.getAttribute("name"));
			} else {
				//alert("anders:"+elm.getAttribute("name"));
			}
		}
	}
	for(var x=0; x<aantal2; x++) {
		//alert(x);
		elm=deze.getElementsByTagName('select')[x];
		name=elm.getAttribute("name");
		value=elm.options[elm.selectedIndex].value;
		//class=elm.getAttribute("class");
		//if(class.indexOf('verplicht')>=0) {
			//name="!"+name;
		//}
		q+="&"+name+"="+value;
		zd[name] = value;
				
	}
	
	//alert("elm:"+aantal);
    /*var fields = new Array();
	for (var x=0; deze.elements.length; x++ ) {
        if (form.elements[x].value != ""){
            fields[]=form.elements[x];
        }
    }       
	//alert("check 1");
	var source="inschrijven";
	//alert("check 2");
	var d = deze;
	//alert("check 3");
	var q="?a=1";
	alert("aantal:"+fields.length);
	for (i=0;i<fields.length;i++){ 
		data_field = fields[i];
		if(d [data_field].length) { 
			for (y=0;y<d [data_field].length;y++) { // get options
				if(d [data_field][y].checked == true) {
					q+="&"+data_field+"="+d [data_field][y].value;
				}
			}
			
		}		
		else { 
			
				q+="&"+data_field+"="+d [data_field].value;
			
		}
	}
	alert("?"+q);
	*/

	var dat=new Array();
	dat["error"]=soort;
	file="/form/check?action="+soort+q;
	
	//alert(file);
	//sending("Bezig met verwerken...");
	xmlophalen( ""+file, 'test',callbackInschrijven,dat,'' );
	
	return false;
}

function StringtoXML(text){
                if (window.ActiveXObject){
                  var doc=new ActiveXObject('Microsoft.XMLDOM');
                  doc.async='false';
                  doc.loadXML(text);
                } else {
                  var parser=new DOMParser();
                  var doc=parser.parseFromString(text,'text/xml');
                }
                return doc;
}

function xmlToString(xmlObj) {
    if (navigator.appName == "Netscape")
    {
       return (new XMLSerializer()).serializeToString(xmlObj);
    }
    if (navigator.appName == "Microsoft Internet Explorer")
    {
        return xmlObj.xml;
    }
}

function urldecode (str) {
    // Decodes URL-encoded string  
    // 
    // version: 1107.2516
    // discuss at: http://phpjs.org/functions/urldecode    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous    // +   improved by: Orlando
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +      bugfixed by: Rob
    // +      input by: e-mike
    // +   improved by: Brett Zamir (http://brett-zamir.me)    // %        note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // %        note 2: Please be aware that this function expects to decode from UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: urldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin van Zonneveld!'    // *     example 2: urldecode('http%3A%2F%2Fkevin.vanzonneveld.net%2F');
    // *     returns 2: 'http://kevin.vanzonneveld.net/'
    // *     example 3: urldecode('http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a');
    // *     returns 3: 'http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'
    return decodeURIComponent((str + '').replace(/\+/g, '%20'));}

function callbackInschrijven(responseText,dat,extra) {
	//alert("!");
	sending("Bezig met verwerken......",dat["error"]);
	var tekst="";
	if(responseText.getElementsByTagName("status").length>0) {
			status=responseText.getElementsByTagName("status")[0].childNodes.item(0).nodeValue;
			if(status=="error") {
				t=responseText.getElementsByTagName("error").length;
				for(a=0; a<t; a++) {
					v=responseText.getElementsByTagName("error")[a].childNodes.item(0).nodeValue;
					tekst+=""+v+"\n";
				}
				sending(tekst,dat["error"]);
			} else if(status == "check") {
				pageTracker._trackPageview(window.location + '/controle');
				elm=dat["error"];
				if(document.getElementById(elm+"_formulier")) {
				   document.getElementById(elm+"_formulier").style.display="none";
				}
				t=responseText.getElementsByTagName("value").length;
				html="";
				for(a=0; a<t; a++) {
					v=responseText.getElementsByTagName("value")[a].childNodes.item(0).nodeValue;
					k=responseText.getElementsByTagName("value")[a].getAttribute("field");
					if(responseText.getElementsByTagName("value")[a].getAttribute("value2")) {
						v2=responseText.getElementsByTagName("value")[a].getAttribute("value2");
						if(document.getElementById("field_"+elm+"_"+k)) {
							if(v2!='') {
								document.getElementById("field_"+elm+"_"+k).innerHTML=urldecode(v2);
							} else {
								document.getElementById("field_"+elm+"_"+k).innerHTML=urldecode(v);
							}
							html+="<input type=\"hidden\" name=\""+k+"\" value=\""+v+"\"/>";
						}
					} else {
						if(document.getElementById("field_"+elm+"_"+k)) {
							
								document.getElementById("field_"+elm+"_"+k).innerHTML=urldecode(v);
							
							html+="<input type=\"hidden\" name=\""+k+"\" value=\""+v+"\"/>";
						}
					}
				}
				if(document.getElementById(elm+"_controle_hiddenfields")) {

					document.getElementById(elm+"_controle_hiddenfields").innerHTML=urldecode(html);
				} 
				if(document.getElementById(elm+"_controle")) {
					document.getElementById(elm+"_controle").style.display="block";
				} 
				sending("",dat["error"]);
			} else {

				var price = $('#za_price').html().trim().split('&nbsp;')[1];
				price = price.split(',')[0];
				price = price.replace('.', '');
				price = parseInt(price);

				var price2 = $('#za_tax').html().trim().split('&nbsp;')[1];
				price2 = price2.split(',')[0];
				price2 = price2.replace('.', '');
				price2 = parseInt(price2);

				if(url_helper.get('env') == 'dev') {
					console.log('price - ' + price);
					console.log('source - ' + zd2);
					console.log(zd);
				}
				
				pageTracker._trackPageview(window.location + '/bedankt');
				
				loc=responseText.getElementsByTagName("page")[0].childNodes.item(0).nodeValue;
				
				pageTracker._addTrans(
					order_id,
					"Horizon TO",
					price,
					price * 1.19,
					price2,
					zd['plaats'],
					zd['plaats'],
					'Netherlands'
				);
				
				pageTracker._addItem(
					order_id,
					zd['training'],
					zd2,
					$('.subtitle').text().trim(),
					price,
					"1"
				);
				pageTracker._trackTrans();
				
				if(url_helper.get('env') != 'dev') {
					document.location=loc;
				}
				
			}
	}
	else
	{
		alert('Status error');
		alert(xmlToString(responseText));
	}
	return false;
}

function wijzigpagina(welke) {
		sending("Bezig met verwerken...",welke);
		if(document.getElementById(welke+"_controle")) {
			//alert("!");	
			document.getElementById(welke+"_controle").style.display="none";
		}
		if(document.getElementById(welke+"_formulier")) {
			//alert("!");	
			document.getElementById(welke+"_formulier").style.display="block";
		}
		//pageTracker._trackPageview('' + (document.location) + '/'+welke);
		sending("",welke);
}
