// JavaScript Document

// AJAX-Engine

function Ajax() {
  //Eigenschaften deklarieren und initialisieren
  this.url="";
  this.params="";
  this.method="GET";
  this.onSuccess=null;
  this.onError=function (msg) {
    alert(msg)
  }
}

Ajax.prototype.doRequest=function() {
  //Üeberpruefen der Angaben
  if (!this.url) {
    this.onError("Es wurde kein URL angegeben. Der Request wird abgebrochen.");
    return false;
  }

  if (!this.method) {
    this.method="GET";
  } else {
    this.method=this.method.toUpperCase();
  }

  //Zugriff auf Klasse für readyStateHandler ermöglichen  
  var _this = this;
  
  //XMLHttpRequest-Objekt erstellen
  var xmlHttpRequest=getXMLHttpRequest();
  if (!xmlHttpRequest) {
    this.onError("Es konnte kein XMLHttpRequest-Objekt erstellt werden.");
    return false;
  }
  
  //Fallunterscheidung nach Übertragungsmethode
  switch (this.method) {
    case "GET": xmlHttpRequest.open(this.method, this.url+"?"+this.params, true);
                xmlHttpRequest.onreadystatechange = readyStateHandler;
                xmlHttpRequest.send(null);
                break;
    case "POST": xmlHttpRequest.open(this.method, this.url, true);
                 xmlHttpRequest.onreadystatechange = readyStateHandler;
                 xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                 xmlHttpRequest.send(this.params);
                 break;
  }  

  //Private Methode zur Verarbeitung der erhaltenen Daten
  function readyStateHandler() {
    if (xmlHttpRequest.readyState < 4) {
      return false;
    }
    if (xmlHttpRequest.status == 200 || xmlHttpRequest.status==304) {
      if (_this.onSuccess) {
        _this.onSuccess(xmlHttpRequest.responseText, xmlHttpRequest.responseXML);
      }
    } else {
      if (_this.onError) {
        _this.onError("["+xmlHttpRequest.status+" "+xmlHttpRequest.statusText+"] Es trat ein Fehler bei der Datenbertragung auf.");
      }
    }
  }
}

//Gibt browserunabhängig ein XMLHttpRequest-Objekt zurück
function getXMLHttpRequest() 
{
  if (window.XMLHttpRequest) {
    //XMLHttpRequest für Firefox, Opera, Safari, ...
    return new XMLHttpRequest();
  } else 
  if (window.ActiveXObject) {
    try {   
      //XMLHTTP (neu) für Internet Explorer 
      return new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {        
        //XMLHTTP (alt) für Internet Explorer
        return new ActiveXObject("Microsoft.XMLHTTP");  
      } catch (e) {
        return null;
      }
    }
  }
  return false;
}


// Eigene Funktionen

function runden(x) {
// der Eingabewert wird gerundet und in einen String umgewandelt:
  var k = (Math.round(x * 100) / 100).toString();

// bei glatten Werten wird .00 angehängt:
  k += (k.indexOf('.') == -1)? '.00' : '00';

// fehlende führende Nullen werden aufgespürt und ggf. eingesetzt,
// Punkte werden durch Komata ersetzt:
  var p = k.indexOf('.'), m = k.indexOf('-.');
  var f = (p == 0 || m == 0)? '0,' : ',';

// der Rückgabewert wird zusammengesetzt:
  return k.substring(0, p) + f + k.substring(p+1, p+3);
}

function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  document.roundform.numberfield.value = newnumber; // Output the result to the form field (change for your purposes)
}

// DIATOM Internet & Medien GmbH - 05.07.2010
function recalculate_ballon_new(person, onlyprice, allprice, allpricenetto, allpricemwst) {

	var anzahl = document.getElementById(person).value;
	var einzelpreis = 189.00;
	
	var gesamtpreis = einzelpreis*anzahl;
	var gesamtNetto = gesamtpreis*100/119;
	var gesamtMwst = gesamtpreis - gesamtNetto;
	
	document.getElementById(onlyprice).value = runden(einzelpreis);
	document.getElementById(allpricemwst).value = runden(gesamtpreis);
	if( allprice ) document.getElementById(allprice).value = runden(gesamtNetto);
	if( allpricenetto ) document.getElementById(allpricenetto).value = runden(gesamtMwst);    
}

function recalculate_vip_new(lang, table, term, pricenettoonly, pricenettoall, priceall, bmwbid) {
	var anzahl = document.getElementById(table).value;
	var termin = document.getElementById(term).value;
	
	var bmwid = document.getElementById(bmwbid).value;
	
	if ( anzahl >= 10 ) {
		var rabatt = 0.15;
	}
	
	if ( anzahl >= 5 && anzahl < 10 ) {
		var rabatt = 0.10;
	}
	
	if ( anzahl >= 3 && anzahl < 5 ) {
		var rabatt = 0.05;
	}
	
	if ( anzahl == 2 ) {
		var rabatt = 0.03;
	}
	
	if ( anzahl < 2 ) {
		var rabatt = 0;
	}
	
	if( bmwid != '' ) {
	   rabatt = rabatt + 0.10;
	}
	
	if( lang == 'de' ) {
	
    	if ( termin == "Donnerstag, 29.07.2010" ) {
    			var einzelpreis = 800*(1-rabatt);
    	}
    	
    	if ( termin == "Freitag, 30.07.2010" ) {
    			var einzelpreis = 800*(1-rabatt);
    	}
    	
    	if ( termin == "Samstag, 31.07.2010" ) {
    			var einzelpreis = 800*(1-rabatt);
    	}
	} else {
	
	    if ( termin == "Thursday, 07/29/2010" ) {
    			var einzelpreis = 800*(1-rabatt);
    	}
    	
    	if ( termin == "Friday, 07/30/2010" ) {
    			var einzelpreis = 800*(1-rabatt);
    	}
    	
    	if ( termin == "Saturday, 07/31/2010" ) {
    			var einzelpreis = 800*(1-rabatt);
    	}
	}
	
	var gesamtpreis = einzelpreis*anzahl;
	var bruttopreis = gesamtpreis*1.19;
	
	/* document.getElementById("uid33").value = roundNumber((1 - rabatt)*100,0); */
	document.getElementById(pricenettoonly).value = runden(einzelpreis);
	document.getElementById(pricenettoall).value = runden(gesamtpreis);
	document.getElementById(priceall).value = runden(bruttopreis);
}

function recalculate_chillout_new(term, priceall, pricebutton) {
	var termin = document.getElementById(term).value;
	
	if ( termin == "Donnerstag, 30.07.09" ) {
			var einzelpreis = 350;
	}
	
	if ( termin == "Freitag, 31.07.09" ) {
			var einzelpreis = 350;
	}
	
	if ( termin == "Samstag, 01.08.09" ) {
			var einzelpreis = 350;
	}
	
	var gesamtpreis = einzelpreis;
	var bruttopreis = gesamtpreis*1.19;
	
	/* document.getElementById("uid33").value = roundNumber((1 - rabatt)*100,0); */
	document.getElementById(priceall).value = runden(gesamtpreis);
	document.getElementById(pricebutton).value = runden(bruttopreis);
}

function drawPayment(sel, last1, last2, last3, last4, kred1, kred2, kred3, kred4, kred5, kred6, pp1, pp2) {
    var divpref     = 'powermaildiv_';
    var payment     = document.getElementById(sel);
    if( payment != null ) {

        var lastlist    = new Array(last1, last2, last3, last4);
        var kredlist    = new Array(kred1, kred2, kred3, kred4, kred5, kred6);
        var paypallist  = new Array(pp1, pp2);
        
        for(z=0; z < lastlist.length; z++) {
            document.getElementById(divpref+lastlist[z]).style.display = 'none';
        }
        for(z=0; z < kredlist.length; z++) {
            document.getElementById(divpref+kredlist[z]).style.display = 'none';
        }
        for(z=0; z < paypallist.length; z++) {
            document.getElementById(divpref+paypallist[z]).style.display = 'none';
        }    
        
        if( payment.value == 'Lastschrift' || payment.value == 'Direct Debit') {
            for(z=0; z < lastlist.length; z++) {
                document.getElementById(divpref+lastlist[z]).style.display = 'block';
            }
            for(z=0; z < kredlist.length; z++) {
                document.getElementById(kredlist[z]).value = '';
                document.getElementById(kredlist[z]).selectedIndex = 0;
            }
        } 
        else if( payment.value == 'Kreditkarte' || payment.value == 'Credit Card' ) {
            for(z=0; z < kredlist.length; z++) {
                document.getElementById(divpref+kredlist[z]).style.display = 'block';
            }
            for(z=0; z < lastlist.length; z++) {
                document.getElementById(lastlist[z]).value = '';
                document.getElementById(lastlist[z]).selectedIndex = 0;
            }
        } 
        else if( payment.value == 'Paypal' ) { 
            for(z=0; z < paypallist.length; z++) {
                document.getElementById(divpref+paypallist[z]).style.display = 'block';
            }
            for(z=0; z < kredlist.length; z++) {
                document.getElementById(kredlist[z]).value = '';
                document.getElementById(kredlist[z]).selectedIndex = 0;
            }
            for(z=0; z < lastlist.length; z++) {
                document.getElementById(lastlist[z]).value = '';
                document.getElementById(lastlist[z]).selectedIndex = 0;
            }
        }
    }
}
// DIATOM Internet & Medien GmbH - 05.07.2010

function recalculate_ballon() {
	var anzahl = document.getElementById('uid10').value;
	var einzelpreis = 189.00;
	
	var gesamtpreis = einzelpreis*anzahl;
	var gesamtNetto = gesamtpreis*100/119;
	var gesamtMwst = gesamtpreis - gesamtNetto;
	
	document.getElementById("uid15").value = runden(einzelpreis);
	document.getElementById("uid17").value = runden(gesamtpreis);
	document.getElementById('uid523').value = runden(gesamtNetto);
	document.getElementById('uid524').value = runden(gesamtMwst);
}

function recalculate_ballon_magdeburg() {
	var anzahl = document.getElementById('uid960').value;
	var einzelpreis = 189.00;
	
	var gesamtpreis = einzelpreis*anzahl;
	var gesamtNetto = gesamtpreis*100/119;
	var gesamtMwst = gesamtpreis - gesamtNetto;
	
	document.getElementById("uid962").value = runden(einzelpreis);
	document.getElementById("uid965").value = runden(gesamtpreis);
	document.getElementById('uid963').value = runden(gesamtNetto);
	document.getElementById('uid964').value = runden(gesamtMwst);
}

function recalculate_ballon_en() {
	var anzahl = document.getElementById('uid178').value;
	var einzelpreis = 189.00;
	
	var gesamtpreis = einzelpreis*anzahl;
	
	document.getElementById("uid180").value = runden(einzelpreis);
	document.getElementById("uid181").value = runden(gesamtpreis);
}

function recalculate_vip() {
	var anzahl = document.getElementById('uid28').value;
	var termin = document.getElementById('uid27').value;
	
	if ( anzahl >= 10 ) {
		var rabatt = 0.15;
	}
	
	if ( anzahl >= 5 && anzahl < 10 ) {
		var rabatt = 0.10;
	}
	
	if ( anzahl >= 3 && anzahl < 5 ) {
		var rabatt = 0.05;
	}
	
	if ( anzahl == 2 ) {
		var rabatt = 0.03;
	}
	
	if ( anzahl < 2 ) {
		var rabatt = 0;
	}
	
	if ( termin == "Donnerstag, 29.07.2010" ) {
			var einzelpreis = 800*(1-rabatt);
	}
	
	if ( termin == "Freitag, 30.07.2010" ) {
			var einzelpreis = 800*(1-rabatt);
	}
	
	if ( termin == "Samstag, 31.07.2010" ) {
			var einzelpreis = 800*(1-rabatt);
	}
	
	var gesamtpreis = einzelpreis*anzahl;
	var bruttopreis = gesamtpreis*1.19;
	
	/* document.getElementById("uid33").value = roundNumber((1 - rabatt)*100,0); */
	document.getElementById("uid30").value = runden(einzelpreis);
	document.getElementById("uid31").value = runden(gesamtpreis);
	document.getElementById("uid62").value = runden(bruttopreis);
}

function recalculate_vip_en() {
	var anzahl = document.getElementById('uid516').value;
	var termin = document.getElementById('uid515').value;
	
	if ( anzahl >= 10 ) {
		var rabatt = 0.15;
	}
	
	if ( anzahl >= 5 && anzahl < 10 ) {
		var rabatt = 0.10;
	}
	
	if ( anzahl >= 3 && anzahl < 5 ) {
		var rabatt = 0.05;
	}
	
	if ( anzahl == 2 ) {
		var rabatt = 0.03;
	}
	
	if ( anzahl < 2 ) {
		var rabatt = 0;
	}
	
	if ( termin == "Thursday, 07/29/2010" ) {
			var einzelpreis = 800*(1-rabatt);
	}
	
	if ( termin == "Friday, 07/30/2010" ) {
			var einzelpreis = 800*(1-rabatt);
	}
	
	if ( termin == "Saturday, 07/31/2010" ) {
			var einzelpreis = 800*(1-rabatt);
	}
	
	var gesamtpreis = einzelpreis*anzahl;
	var bruttopreis = gesamtpreis*1.19;
	
	/* document.getElementById("uid33").value = roundNumber((1 - rabatt)*100,0); */
	document.getElementById("uid517").value = runden(einzelpreis);
	document.getElementById("uid518").value = runden(gesamtpreis);
	document.getElementById("uid519").value = runden(bruttopreis);
}

function recalculate_chillout() {
	var termin = document.chilloutzone.uid72.value;
	
	if ( termin == "Donnerstag, 30.07.09" ) {
			var einzelpreis = 350;
	}
	
	if ( termin == "Freitag, 31.07.09" ) {
			var einzelpreis = 350;
	}
	
	if ( termin == "Samstag, 01.08.09" ) {
			var einzelpreis = 350;
	}
	
	var gesamtpreis = einzelpreis;
	var bruttopreis = gesamtpreis*1.19;
	
	/* document.getElementById("uid33").value = roundNumber((1 - rabatt)*100,0); */
	document.getElementById("uid73").value = runden(gesamtpreis);
	document.getElementById("uid74").value = runden(bruttopreis);
}

function checkEmpty(id) {
	var quantity = document.getElementById(id).value;
	if ( quantity == "" || quantity == 0 ) {
		alert("Bitte geben Sie eine Stückzahl an.");
		return false;
	}
}

function check_bvmw () {

	if ( ( document.anmeldungballonfahrten.check_uid76_0.checked ) && ( document.anmeldungballonfahrten.uid61.value == "" ) ) {
		return false;	
	} else {
		return true;	
	}
	
}

function myCheckEmpty(product_id) {
	
	var quantity = document.getElementById('quantity_'+product_id).value;
	
	var myAjax = new Ajax();
	myAjax.url="fileadmin/template/checkMyStock.php";
	myAjax.params="id="+product_id+"&quantity="+quantity;
	
	//Verarbeitung der Response / PHP-Skript lieferte Ergebnis
	myAjax.onSuccess = function(txt,xml) {
	  
	 	//Abrufen war erfolgreich
		var myResult = txt.split("|");
		if ( myResult[0].indexOf("okay") != -1 ) {
			return true;
		} else {
			alert('Die gewünschte Anzahl ist für diesen Artikel leider nicht mehr verfügbar. Es sind noch max. '+myResult[1]+' Stück dieses Artikels verfügbar.');
			document.getElementById('quantity_'+product_id).value = myResult[1];
			return false;
		}
	}
	
	/* Fehler bei Übertragung der Dateiinhalts
	myAjax.onError = function() {
	alert ("Fehler");  
	}*/
	
	//Datei abrufen
	myAjax.doRequest();
	
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
