// check browser
function Is(){
  this.agent = navigator.userAgent.toLowerCase();
  this.major = parseInt(navigator.appVersion);
  
  // DOM Support
  if(document.addEventListener && document.removeEventListener){this.dom2events = true;}
  if(document.getElementById){this.dom1getbyid = true;}
  
  // Opera
  this.opera = this.agent.indexOf('opera') != -1;
  if(this.opera){
    this.opera5 = (this.agent.indexOf('opera 5') != -1 || this.agent.indexOf('opera/5') != -1);
    this.opera6 = (this.agent.indexOf('opera 6') != -1 || this.agent.indexOf('opera/6') != -1);
    return;
  }

  // MSIE
  this.ie = this.agent.indexOf('msie') != -1;
  if (this.ie) {
    this.ie3 = this.major < 4;
    this.ie4 = (this.major == 4 && this.agent.indexOf('msie 5') == -1 && this.agent.indexOf('msie 6') == -1);
    this.ie4up = this.major >= 4;
    this.ie5 = (this.major == 4 && this.agent.indexOf('msie 5.0') != -1);
    this.ie5up = !this.ie3 && !this.ie4;
    this.ie6 = (this.major == 4 && this.agent.indexOf('msie 6.0') != -1);
    this.ie7 = (this.major == 4 && this.agent.indexOf('msie 7.0') != -1);
    return;
  }

  // Gecko, NN4+, and NS6
  this.gecko = this.agent.indexOf('gecko') != -1;
  this.nav = (this.agent.indexOf('mozilla') != -1 && this.agent.indexOf('spoofer') == -1 && this.agent.indexOf('compatible') == -1 && this.agent.indexOf('firefox') == -1);
  if (this.nav) {
    this.nav4  = this.major == 4;
    this.nav4up= this.major >= 4;
    this.nav5= this.major >= 5;
	return;
  }
  this.ff = (this.agent.indexOf('mozilla') != -1 && this.agent.indexOf('firefox') != -1);
  if (this.ff) {
  	this.firefox = this.major >= 5;
	return;
  }
}

// set method (post / get)
is = new Is(); 
if((is.ie5 || is.ie5up || is.ie6)&&!is.ie7) { 
	var smethod = "POST";
}
else {
	var smethod = "GET";
}

// create http request
function createHttpRequest() {
	var xmlhttp;
	
	// alle Browser außer IE6 und älter
 	try {
 		xmlhttp = new XMLHttpRequest();
 	}
 	// IE 6 und älter
 	catch(e) {
 		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
 										"MSXML2.XMLHTTP.5.0",
 										"MSXML2.XMLHTTP.4.0",
 										"MSXML2.XMLHTTP.3.0",
 										"MSXML2.XMLHTTP",
 										"Microsoft.XMLHTTP");
 		for (var i = 0; i<XmlHttpVersions.length && !xmlhttp; i++) {
 			try {
 				xmlhttp = new ActiveXObject(XmlHttpVersions[i]);
 			}
 			catch(e) {
 			}
 		}
 	}
 	if (!xmlhttp) {
 		alert("Ihr Browser unterstützt die verwendete Webtechnologie leider nicht.");
 	}
 	else {
 		return xmlhttp;
 	}
}

// check/uncheck fuehrung
function getDatum(id,date) {
	var xmlhttp = createHttpRequest();

	xmlhttp.open(smethod, "ajax/anmeldungDatum.php?id=" + id + "&date=" + date, true);
	xmlhttp.onreadystatechange=function() {
	  // readyState==4 - meaning the load is complete
	  if (xmlhttp.readyState==4) {
	  	// only if "OK"
		var status = '';
		try {
			status = xmlhttp.status;
			if (status==200) {
				eval(xmlhttp.responseText);
			}
		}
		catch(e) {
			status = '';
		}
	  }
	}
	xmlhttp.send(null);
}


// check/uncheck fuehrung
// MIP
function getDatum_MIP(id,date,eventtime) {
	var xmlhttp = createHttpRequest();

	xmlhttp.open(smethod, "ajax/anmeldungDatum.php?id=" + id + "&date=" + date + "&eventtime=" + eventtime, true);
	xmlhttp.onreadystatechange=function() {
	  // readyState==4 - meaning the load is complete
	  if (xmlhttp.readyState==4) {
	  	// only if "OK"
		var status = '';
		try {
			status = xmlhttp.status;
			if (status==200) {
				eval(xmlhttp.responseText);
			}
		}
		catch(e) {
			status = '';
		}
	  }
	}
	xmlhttp.send(null);
}


// check mandatory fields (Anmeldung)
function checkMandatory() {
	var error = false;
	if (document.getElementById('fuehrung_titel').value=='') error = true;
	if (document.getElementById('fuehrung_datum').value=='') error = true;
	if (document.getElementById('fuehrung_anzahl').value=='') error = true;
	if (document.getElementById('fuehrung_vorname').value=='') error = true;
	if (document.getElementById('fuehrung_nachname').value=='') error = true;
	if (document.getElementById('fuehrung_email').value=='') error = true;
	if (document.getElementById('fuehrung_telefon').value=='') error = true;
	if (document.getElementById('fuehrung_datenschutz').checked==false) error = true;
	if (document.getElementById('fuehrung_agb').checked==false) error = true;
	if (error == true) {
		alert('Bitte füllen Sie alle Felder aus!');
		return false;
	}
	else return true;
}

// check mandatory fields
function checkMandatoryGutschein() {
	var error = false;
	if (document.getElementById('gutschein_name').value=='') error = true;
	if (document.getElementById('gutschein_vorname').value=='') error = true;
	if (document.getElementById('gutschein_strasse').value=='') error = true;
	if (document.getElementById('gutschein_plz_ort').value=='') error = true;
	if (document.getElementById('gutschein_telefon').value=='') error = true;
	if (document.getElementById('gutschein_email').value=='') error = true;
	//if (document.getElementById('gutschein_agb').checked!=true) error = true;
	if (error == true) {
		alert('Bitte füllen Sie alle Felder aus!');
		return false;
	}
	else return true;
}

// check mandatory fields
function checkMandatoryPayment() {
	var error = false;
	if (document.getElementById('gutschein_zahlart1').checked==false && document.getElementById('gutschein_zahlart2').checked==false) error = true;
	if (document.getElementById('gutschein_zahlart1').checked==true) {
		if (document.getElementById('gutschein_konto').value=='') error = true;
		if (document.getElementById('gutschein_blz').value=='') error = true;
		if (document.getElementById('gutschein_bank').value=='') error = true;
		if (document.getElementById('gutschein_kontoinhaber').value=='') error = true;
	}
	if (error == true) {
		alert('Bitte füllen Sie alle Felder aus!');
		return false;
	}
	else return true;
}

// check mandatory fields
function checkMandatoryFinish(form) {
	
	if (form.submitButton == 'submitBestellungBack') return true;
	
	var error = false;
	if (document.getElementById('gutschein_einzugok') && document.getElementById('gutschein_einzugok').value==1 && document.getElementById('gutschein_einzugok').checked!=true) error = true;
	if (document.getElementById('gutschein_agb').checked!=true) error = true;
	if (document.getElementById('gutschein_datenschutz').checked!=true) error = true;
	if (error == true) {
		alert('Bitte stimmen Sie den AGB, der Datenschutzerklärung und ggf. der Einzugsermächtigung zu, um Ihre Bestellung abzuschließen!');
		return false;
	}
	else return true;
}

// toggle fields
function toggleGutscheinFields(n,ntotal) {
	if (document.getElementById('gliste_id[' + n + ']').checked == true) {
		if (document.getElementById('amount[' + n + ']')) document.getElementById('amount[' + n + ']').style.display = 'block';
		if (document.getElementById('sum[' + n + ']')) document.getElementById('sum[' + n + ']').style.display = 'block';
		if (document.getElementById('desc[' + n + ']')) document.getElementById('desc[' + n + ']').style.display = 'block';
	}
	else {
		if (document.getElementById('amount[' + n + ']')) document.getElementById('amount[' + n + ']').style.display = 'none';
		if (document.getElementById('sum[' + n + ']')) document.getElementById('sum[' + n + ']').style.display = 'none';
		if (document.getElementById('desc[' + n + ']')) document.getElementById('desc[' + n + ']').style.display = 'none';
	}
	document.getElementById('gdata_amount[' + n + ']').value = '';
	document.getElementById('gsum[' + n + ']').value = '';
	totalSum();
}

// get sum
function getSum(n,amount,price) {
	document.getElementById('gsum[' + n + ']').value=(amount*price) + " €";
}

// get total sum
function totalSum() {
	//if (n == '' || n == 'undefined') return;
	var totalsum = 0;
	//for (var i = 0; i<n; i++) {
		//if (document.getElementById('gsum[' + i + ']').value != '')
			//totalsum += parseFloat(document.getElementById('gsum[' + i + ']').value);
	//}
	
	for (var e = 0; e < document.forms['gutschein'].elements.length; e++) {
		var el = document.forms['gutschein'].elements[e];
    	if (el.type == 'text' && el.name.indexOf('gsum')!=-1 && el.value!='') {
    		totalsum += parseFloat(el.value);
    	}
	}
	
	totalsum += " &euro;"
	document.getElementById('totalsum').innerHTML=totalsum;
	if (document.getElementById('totalsum_value')) document.getElementById('totalsum_value').value=totalsum;
	if (document.getElementById('gutschein_rechnung_tax2')) {
		if (document.getElementById('gutschein_rechnung_tax2').checked == true) enableTax();
		else if (document.getElementById('gutschein_rechnung_tax1').checked == true) disableTax();
	}
}

// toggle lastschrift
function toggleBankeinzug(mode) {
	// lastschrift
	if (mode == 'true') {
		document.getElementById('lastschrift').style.display = 'block';
	}
	
	// rechnung
	else if (mode == 'false') {
		document.getElementById('lastschrift').style.display = 'none';
		document.getElementById('gutschein_konto').value = '';
		document.getElementById('gutschein_blz').value = '';
		document.getElementById('gutschein_bank').value = '';
		document.getElementById('gutschein_kontoinhaber').value = '';
	}
}

MS_restrict_field = function(formname, id_or_name, chars) {
	var obj = (document.getElementById && document.getElementById(id_or_name) != null) ? document.getElementById(id_or_name) : ((document[formname][id_or_name] != null) ? document[formname][id_or_name] : '');
	if(obj.type == "text" || obj.type == "textarea") {
		obj.timer = "";
		obj.chars = chars;
		obj.onkeypress = obj.onkeydown = function() {
			var self = this;
			controll = function() {
				for(var t='',x=0; x<self.value.length; ++x) {
					if(self.chars.indexOf(self.value.charAt(x))>-1) {
						t += self.value.charAt(x);
					}
				}
				self.value = t;
			}
			this.timer = setTimeout(controll,1);
		}
		obj.onkeyup = function() {
			clearTimeout(this.timer);
		}
	}
}

function get_mwst_satz() {
	return document.getElementById('mwst_satz').value;
}

function disableTax() {
	var totalsum  = document.getElementById('totalsum_value').value;
	document.getElementById('gutschein_rechnung_netto').disabled='disabled';
	document.getElementById('gutschein_rechnung_mwst').disabled='disabled';
	document.getElementById('gutschein_rechnung_netto').value='';
	document.getElementById('gutschein_rechnung_mwst').value='';
	document.getElementById('gutschein_rechnung_brutto').value=parseFloat(totalsum).toFixed(2);
}

// enable tax
function enableTax() {
	var totalsum  = document.getElementById('totalsum_value').value;
	document.getElementById('gutschein_rechnung_netto').disabled='';
	document.getElementById('gutschein_rechnung_mwst').disabled='';
	document.getElementById('gutschein_rechnung_netto').value=parseFloat(totalsum).toFixed(2);
	calculateMwst('netto',document.getElementById('gutschein_rechnung_netto').value,get_mwst_satz());
	calculateBrutto('netto',document.getElementById('gutschein_rechnung_netto').value,get_mwst_satz());
}

// calculate Mwst
function calculateMwst(from,w,satz) {
	w = parseFloat(w);
	satz = parseFloat(satz);
	if (from == 'netto') {
		var mwst = w*(satz/100);
	}
	else if (from == 'brutto') {
		var mwst = (w/(100+satz))*satz;
	}
	document.getElementById('gutschein_rechnung_mwst').value=mwst.toFixed(2);
}

// calculate Brutto
function calculateBrutto(from,w,satz) {
	w = parseFloat(w);
	satz = parseFloat(satz);
	if (from == 'netto') {
		var brutto = (w + (w*(satz/100)));
	}
	else if (from == 'mwst') {
		var brutto = (w + ((w/satz)*100));
	}
	document.getElementById('gutschein_rechnung_brutto').value=brutto.toFixed(2);
}

// calculate Netto
function calculateNetto(from,w,satz) {
	w = parseFloat(w);
	satz = parseFloat(satz);
	if (from == 'brutto') {
		var netto = w - ((w/(satz+100))*satz);
	}
	else if (from == 'mwst') {
		var netto = (w/satz) * 100;
	}
	document.getElementById('gutschein_rechnung_netto').value=netto.toFixed(2);
}

// update extras
function updateExtras(id,xname,xprice) {
	if (document.getElementById(id).checked == true) {
		if (document.getElementById("preis_" + id)) {
      document.getElementById("preis_" + id).value = xname + "|" + xprice;
		  xajax_updateExtraBox(id,xname,xprice,"check");
		}
	} else {
		if (document.getElementById("preis_" + id)) {
      document.getElementById("preis_" + id).value = "";
		  xajax_updateExtraBox(id,xname,xprice,"uncheck");
		}
	}
}

function checkCompany(text) {
	if (text != "") {
		document.getElementById('user_account_company').checked = true;
	}
}

function togglePaymentmethod(paymentmethod) {
	if (paymentmethod == "creditcard") {
		document.getElementById('creditcard1').style.color = "#000000";
		document.getElementById('creditcard2').style.color = "#000000";
		document.getElementById('creditcard3').style.color = "#000000";
		document.getElementById('directdebit1').style.color = "#C0C0C0";
		document.getElementById('directdebit2').style.color = "#C0C0C0";
		document.getElementById('directdebit3').style.color = "#C0C0C0";
		document.getElementById('creditcard1_input').disabled = false;
		document.getElementById('creditcard2a_input').disabled = false;
		document.getElementById('creditcard2b_input').disabled = false;
		document.getElementById('creditcard3_input').disabled = false;
		document.getElementById('directdebit1_input').disabled = true;
		document.getElementById('directdebit2_input').disabled = true;
		document.getElementById('directdebit3_input').disabled = true;
	}
	else if (paymentmethod == "directdebit") {
		document.getElementById('directdebit1').style.color = "#000000";
		document.getElementById('directdebit2').style.color = "#000000";
		document.getElementById('directdebit3').style.color = "#000000";
		document.getElementById('creditcard1').style.color = "#C0C0C0";
		document.getElementById('creditcard2').style.color = "#C0C0C0";
		document.getElementById('creditcard3').style.color = "#C0C0C0";
		document.getElementById('directdebit1_input').disabled = false;
		document.getElementById('directdebit2_input').disabled = false;
		document.getElementById('directdebit3_input').disabled = false;
		document.getElementById('creditcard1_input').disabled = true;
		document.getElementById('creditcard2a_input').disabled = true;
		document.getElementById('creditcard2b_input').disabled = true;
		document.getElementById('creditcard3_input').disabled = true;
	}
}

function confirmRemoveTour(tour) {
	if (confirm('Möchten Sie diese Tour wirklich wieder aus dem Warenkorb entfernen?') == true) {
		document.location.href = 'index.php?warenkorb&removetour=' + tour;
	} else {
		return false;
	}
}

function discardShoppingCart() {
	if (confirm('Wollen Sie den Warenkorb wirklich löschen?')==true) {
		document.ds.submit();
		return false;
	} else {
		return false;
	}
}

function toggleFirma(val) {
	var s1 = document.getElementById('user_company');
	var s2 = document.getElementById('user_company_label');
	var s3 = document.getElementById('user_company_addon');
	var s4 = document.getElementById('user_company_addon_label');
	if (val=='none' || val=='block') {
		s1. value="";
		s3. value="";
		s1.style.display = val;
		s2.style.display = val;
		s3.style.display = val;
		s4.style.display = val;
	}
}