//global vars
var req = null; //XMLHTTPRequest
var lang_id = null; // sprache
user_feedback=null; //platz für feedback an den user "es läuft etwas, warte rasch" (objekt)
var feedback =""; //string für user feedback

//wird nicht gebraucht, wäre nur beim asynchronen laden
/*function checkState() {
	if (req.readyState==4){
		document.getElementById("loading_indicator").style.display='none';
		//mach was 
	} else {
		document.getElementById("loading_indicator").style.display='block';
	}
}*/

//sende request an PHP/MySQL
function sendRequest(url, HttpMethod, param) {
	//var ans = null;
	if (!HttpMethod){
		HttpMethod="GET";
	}
	req = initXMLHttpRequest();
	if(req){
		//ansynchron (skript läuft einfach weiter...
		//req.onreadystatechange=checkState;
		//req.open(HttpMethod,url, true);
		//synchron (script wartet auf readystate==4
		//document.getElementById("loading_indicator").style.display='block';
		req.open(HttpMethod,url, false);
		//reg.setRequestHeader("Content-Type", "text/xml");
		if (HttpMethod=="POST")  {
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			req.setRequestHeader("Content-length", param.length);
			req.setRequestHeader("Connection", "close");
		}
		req.send(param);
		//document.getElementById("loading_indicator").style.display='none';
		return req.responseText;
	}
}



//kreiere ein XMPHttpRequest
function initXMLHttpRequest() {
	try {
		resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(Error) {
		try {
			resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(Error) {
			try {
				resObjekt = new XMLHttpRequest();
			}
			catch(Error) {
				alert("Erzeugung des XMLHttpRequest-Objekts nicht möglich");
			}
		}
	}
	return resObjekt;
}

function getbyID_safe(tag, id, parent) { //create das teil, wes nonid da isch...
	var element;
	try {
		element = document.getElementById(id);
		dummie = element.getAttribute("id");//dummie try to force error, if element is null
	} catch (error) {
		//alert ("catched error");
		element = document.createElement(tag);
		document.getElementById(parent).appendChild(element);
		element.setAttribute("id",id);
	}
	return element;
}

//load content
function loadOG(og_id, lid) {
	//change menupoint status (clear)
	a = document.getElementsByName("subMP");
	var ids = new Array ();
	for (var i=0; i<a.length;i++) {
		ids[i] = a[i].id;
	}
	for (var k=0; k<ids.length;k++) {
		document.getElementById(ids[k]).setAttribute("class", "");
	}
	
	//load area
	box = document.getElementById('og_box');
	
	//specifie language
	if (isNaN(lid)) lang_id=1;
	else lang_id=lid;
	
	//place loading image
	//loading_indicator = getbyID_safe("div", "loading_indicator", box);
	//loading_indicator.innerHTML = "<img src=\"./grafik/loader.gif\" width=\"31\" height=\"31\" alt=\"loading...\" />";
	
	//load OG content (cid is needed for readContentFromDB.php...)
	box.innerHTML=sendRequest("./showOG.php?cid=200&lid="+lang_id+"&og_id="+og_id);
	
	//change menupoint status (activate)
	document.getElementById("og_link_"+og_id).setAttribute("class", "act");
	
}

function toggleBox (hiddenSwitcher, switcher, area, requestStr) {
	//checkbox status
	if (document.getElementById(hiddenSwitcher).checked==true) document.getElementById(hiddenSwitcher).checked=false;
	else document.getElementById(hiddenSwitcher).checked=true;
	
	if (document.getElementById(hiddenSwitcher).checked==true) {
		document.getElementById(switcher).style.background = "url(./grafik/checkBox_on.png) center left no-repeat";
		box = document.getElementById(area);
		box.style.display = "block";
		box.innerHTML=sendRequest(requestStr);	
	} else {
		//del = document.getElementById('abo_box');
		//document.getElementById('order_box').removeChild(del);
		document.getElementById(area).style.display = "none";
		document.getElementById(switcher).style.background = "url(./grafik/checkBox.png) center left no-repeat";
	}
}

function toggleText(hiddenSwitcher,area,text_on,text_off) {
	if (document.getElementById(hiddenSwitcher).checked==true) {
		document.getElementById(area).innerHTML = text_on;
	} else {
		document.getElementById(area).innerHTML = text_off;
	}
}

function validate_email(field, alerttxt_id, lang_id) {
	with (field) {
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		if (apos<1||dotpos-apos<2) {
			feedback += sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid="+alerttxt_id+"&lid="+lang_id)+"<br />";
			return false;
		}
		else {return true;}
	}
}

function validate_required(field,alerttxt_id, stdText_id, lang_id) {
	if (field.value==null||field.value==""||field.value==sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid="+stdText_id+"&lid="+lang_id)){
		feedback += sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid="+alerttxt_id+"&lid="+lang_id)+"<br />";
		return false;
	} 
	else {return true;}
}

function makeOrder(lang_id) {
	//kunde informieren, dass die anfrage verarbeitet wird...
	//user_feedback = getbyID_safe("div", "user_feedback", "order_box");
	document.getElementById("user_feedback").style.display = "block";
	document.getElementById("user_feedback").innerHTML ="<img src='./grafik/loader.gif' />&nbsp;"+sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=45&lid="+lang_id);
	
	//checking form...
	var form_ok=true;
	var focusItem=null;
	
	feedback = "<img src='./grafik/fehler.png'><br />";
	with (document.getElementById("OGorderForm")) {
		//check waser de wetti
		//abo oder einzel, eines muss gewählt sein
		if (abo.checked==false && einzel.checked==false) {
			//alert (sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=43&lid="+lang_id));
			feedback += sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=43&lid="+lang_id)+"<br />";
			form_ok=false;
		}
		
		//wenn abo, dann muss eines angegeben sein...
		if (abo.checked==true) {
			try { //geht ja nur, wenn abo2 und 4 geladen wurden... dh, wenn abo angewählt ist
				var total=0;
				for (var i=0; i < abodauer.length; i++) {
					if (abodauer[i].checked) total +=1;
				}
				if (total==0) {
					//alert (sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=42&lid="+lang_id));
					feedback += sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=42&lid="+lang_id)+"<br />";
					form_ok=false;
				}
			} catch (error) {}
		}
		
		//wenn einzel muss eine ausgabe gewählt sein...
		if (einzel.checked==true) {
			try {
				var total=0;
				for(var i=0; i < ausgabe.length; i++) {
					if (ausgabe[i].checked) total +=1;
				}
				if(total==0) {
					//alert(sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=44&lid="+lang_id))
					feedback += sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=44&lid="+lang_id)+"<br />";
					form_ok=false;
				}
			} catch (error){}
		}
		
		//checking adress
		if (validate_required(anrede,34,11,lang_id)==false) {
			if (focusItem==null) focusItem = anrede;
			form_ok=false;
		}
		if (validate_required(vorname,47,13,lang_id)==false) {
			if (focusItem==null) focusItem = vorname;
			form_ok=false;
		}
		if (validate_required(nachname,35,12,lang_id)==false) {
			if (focusItem==null) focusItem = nachname;
			form_ok=false;
		}
		if (validate_required(plz,48,15,lang_id)==false) {
			if (focusItem==null) focusItem = plz;
			form_ok=false;
		}
		if (validate_required(ort,36,16,lang_id)==false) {
			if (focusItem==null) focusItem = ort;
			form_ok=false;
		}
		if (validate_email(email,37,lang_id)==false) {
			if (focusItem==null) focusItem = email;
			form_ok=false;
		}
		
		
		//checking delivery
		if (geschenk.checked==true) {
			if (validate_required(anrede_del,34,11,lang_id)==false) {
				if (focusItem==null) focusItem = anrede_del;
				form_ok=false;
			}
			if (validate_required(vorname_del,49,13,lang_id)==false) {
				if (focusItem==null) focusItem = vorname_del;
				form_ok=false;
			}
			if (validate_required(name_del,50,12,lang_id)==false) {
				if (focusItem==null) focusItem = name_del;
				form_ok=false;
			}
			if (validate_required(plz_del,51,15,lang_id)==false) {
				if (focusItem==null) focusItem = plz_del;
				form_ok=false;
			}
			if (validate_required(ort_del,52,16,lang_id)==false) {
				if (focusItem==null) focusItem = ort_del;
				form_ok=false;
			}
		}
	}
	if (form_ok==true) { // form wurde korrekt ausgefüllt.
		
		//write in DB
		param='action=5';
			//user
		param=param + '&anrede=' + encodeURIComponent(document.getElementById("OGorderForm").anrede.value);
		param=param + '&vorname=' + encodeURIComponent(document.getElementById("OGorderForm").vorname.value);
		param=param + '&nachname=' + encodeURIComponent(document.getElementById("OGorderForm").nachname.value);
		param=param + '&strasse=' + encodeURIComponent(document.getElementById("OGorderForm").strasse.value);
		param=param + '&plz=' + encodeURIComponent(document.getElementById("OGorderForm").plz.value);
		param=param + '&ort=' + encodeURIComponent(document.getElementById("OGorderForm").ort.value);
		param=param + '&tel=' + encodeURIComponent(document.getElementById("OGorderForm").tel.value);
		param=param + '&email=' + encodeURIComponent(document.getElementById("OGorderForm").email.value);
		param=param + '&mitteilung=' + encodeURIComponent(document.getElementById("OGorderForm").mitteilung.value);
	
			//present (delivery adress)
		if (document.forms[0].geschenk.checked==true) {
			param=param + '&anrede_del=' + encodeURIComponent(document.getElementById("OGorderForm").anrede_del.value);
			param=param + '&vorname_del=' + encodeURIComponent(document.getElementById("OGorderForm").vorname_del.value);
			param=param + '&name_del=' + encodeURIComponent(document.getElementById("OGorderForm").name_del.value);
			param=param + '&strasse_del=' + encodeURIComponent(document.getElementById("OGorderForm").strasse_del.value);
			param=param + '&plz_del=' + encodeURIComponent(document.getElementById("OGorderForm").plz_del.value);
			param=param + '&ort_del=' + encodeURIComponent(document.getElementById("OGorderForm").ort_del.value);
		}
		
			//abo
		if (document.forms[0].abo.checked == true) {
			for (i=0;i<document.forms[0].abodauer.length;i++){
				if (document.forms[0].abodauer[i].checked==true){
					param=param + '&abodauer=' + encodeURIComponent(document.getElementById("OGorderForm").abodauer[i].value);
					break; //exit loop, as target acquired.
				}
			}
		}
			
			//einzelausgaben
		if (document.forms[0].einzel.checked == true) {
			var ausgaben="";
			var temp=new Array();
			var count=0;
			for (var i=0;i<document.forms[0].ausgabe.length;i++){
				if (document.forms[0].ausgabe[i].checked==true){
					temp[count] = document.forms[0].ausgabe[i].value;
					count += 1;
				}
			}
			if (temp.length>1) {
				for (var j=0; j<temp.length;j++) {
					ausgaben = ausgaben + temp[j];
					if (j<temp.length-1) ausgaben = ausgaben + ', ';
				}
				param=param + '&ausgaben=' + encodeURIComponent(ausgaben);
			} else param=param + '&ausgaben=' + encodeURIComponent(temp[0]);
		}
		
			//sprache und content id
		param=param + '&lid='+lang_id;
		param=param + '&cid=300';
			
			//send request
		var orderFeedback = sendRequest("./order.php", "POST", param);

		if (orderFeedback=="ok") { // -> alles i.o.
			document.getElementById("user_feedback").innerHTML = '<div style="background:url(./grafik/ok.png) left top no-repeat; margin:4px; padding:4px 0px 4px 30px;" >'+sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=46&lid="+lang_id)+'</div>';
		} else document.getElementById("user_feedback").innerHTML = orderFeedback;
	} else { //fehler im Formular
		focusItem.focus();
		//document.getElementById("user_feedback").style.display = "none";
		document.getElementById("user_feedback").innerHTML = feedback;
	}
}


function getPlace(plz_field, ort_field_id) {
	var ort;
	if (isNaN(plz_field.value)) {}
	else {
		ort = sendRequest("./ajax.php?action=getPlacebyPLZ&plz="+plz_field.value);
		if (ort!="") {
			document.getElementById(ort_field_id).value = ort;
			writeSession(document.getElementById(ort_field_id));
		}
	}
}

function writeSession (field) {
	sendRequest("./ajax.php?action=writeSession&var="+field.name+"&val="+field.value);
}

function rst(lang_id) {
	sendRequest("./ajax.php?action=destroySession");
	document.getElementById("rg_box").innerHTML = sendRequest("./order.php?cid=300&action=3&lid="+lang_id);
	try {
		document.getElementById("geschenk_box").innerHTML = sendRequest("./order.php?cid=300&action=4&lid="+lang_id);
	} catch (err) {}
	/*
	for (var i=0; i<document.forms[0].length; i++) {
		try {
			//document.forms[0].elements[i].checked = false;
		}
		catch (err) {}
		try {
			document.forms[0].elements[i].value = document.forms[0].elements[i].defaultValue;
			deactivate(document.forms[0].elements[i], document.forms[0].elements[i].defaultValue)
		}
		catch (err) {}
	}
	*/
}

function getBGInfo(lang_id) {
	document.getElementById("sendbtn").style.display="none";
	document.getElementById("ufb").style.display = "block";
	document.getElementById("ufb").innerHTML ="<img src='./grafik/loader.gif' />&nbsp;"+sendRequest("./ajax.php?action=getTextbyIDs&cid=300&oid=60&lid="+lang_id);
	
	var form_ok = true;
	var focusItem=null;
	feedback="";
	if (validate_email(document.getElementById("bgInfoForm_id").email,37,lang_id)==false) {
		if (focusItem==null) focusItem = document.getElementById("bgInfoForm_id").email;
		form_ok=false;
	}
	if (form_ok==true) {
		param='action=2';
			//user
		param=param + '&email=' + encodeURIComponent(document.getElementById("bgInfoForm_id").email.value);
		
			//outdoor-guide ausgabe und sprache
		param=param + '&og_id=' + encodeURIComponent(document.getElementById("bgInfoForm_id").og_id.value);
		param=param + '&lid='+lang_id;
		
			//senden und eintragen
		document.getElementById("ufb").innerHTML = sendRequest("./getBGInfo.php", "POST", param);
	} else {
		focusItem.focus();
		//document.getElementById("user_feedback").style.display = "none";
		document.getElementById("ufb").innerHTML = feedback;
		document.getElementById("sendbtn").style.display="block";
	}
	
}

