/* ab 04.03.08 */

/*-------------------------------------*/
/* Globale Variablen                   */
/*-------------------------------------*/
var current_date = new Date();
var current_year = 2000 + current_date.getYear() % 100;

var checkform_messageheader = "Sehr geehrter Kunde,\nfolgende Felder \nsind leer oder falsch ausgefuellt:\n\n";
var prigs_message = '<br />Bitte prüfen Sie unser Angebot des <a href="http://www.prigs.de" target="_blank" style="font-weight: bold; color:#004279; text-decoration: underline">PrivatGroßstückService</a>!<br />';
var checkform_message = "";
var exp = new Date()+30;

var maxKgAbgabe                         = "25";
var maxKgAbgabeEU                       = "25";
var maxKgAbgabeWelt                     = "20";

var errorShow = false;
// PaketShopWelt = Liechtenstein + Schweiz
var Sendung_S_Abholung                  =  6.90;
var Sendung_M_Abholung                  =  11.90;
var Sendung_L_Abholung                  =  15.90;
var Sendung_XL_Abholung                 =  25.90;
var Sendung_XXL_Abholung                =  30.90;

var Sendung_S_PaketShop                 =  4.30;
var Sendung_M_PaketShop                 =  6.30;
var Sendung_L_PaketShop                 =  9.30;
var Sendung_XS_PaketShopEU              =  10.90;
var Sendung_S_PaketShopEU               =  14.90;
var Sendung_M_PaketShopEU               =  19.90;
var Sendung_L_PaketShopEU               =  29.90;
var Sendung_XS_PaketShopWelt              =  16.90;
var Sendung_S_PaketShopWelt               =  27.90;
var Sendung_M_PaketShopWelt               =  32.90;
var Sendung_L_PaketShopWelt               =  40.90;

var Sendung_S_OnlinePaketschein         =  4.00;
var Sendung_M_OnlinePaketschein         =  5.90;
var Sendung_L_OnlinePaketschein         =  8.90;
var Sendung_XS_OnlinePaketscheinEU      =  9.90;
var Sendung_S_OnlinePaketscheinEU       =  13.90;
var Sendung_M_OnlinePaketscheinEU       =  18.90;
var Sendung_L_OnlinePaketscheinEU       =  28.90;
var Sendung_XS_OnlinePaketscheinWelt      =  15.90;
var Sendung_S_OnlinePaketscheinWelt       =  26.90;
var Sendung_M_OnlinePaketscheinWelt       =  31.90;
var Sendung_L_OnlinePaketscheinWelt       =  39.90;

var Sendung_S_Shop2Shop                 =  3.65;

var Inselzuschlag                       =  5.90;
var Inselzuschlag_Reisegepaeck          =  6.90;

var Sperrigkeits_zuschlag_einfach       =  15.90;
var Sperrigkeits_zuschlag_sondergepaeck =  14.90;
var MinderMengenzuschlag                =  0.00;
var Sendung_bis_5_kg                    =  7.00;
var Sendung_bis_5_kg_sperrig            =  Sendung_bis_5_kg    + Sperrigkeits_zuschlag_einfach;
var Sendung_bis_10_kg                   =  10.00;
var Sendung_bis_10_kg_sperrig           =  Sendung_bis_10_kg   + Sperrigkeits_zuschlag_einfach;
var Sendung_bis_31_5_kg                 =  16.00;
var Sendung_bis_31_5_kg_sperrig         =  Sendung_bis_31_5_kg + Sperrigkeits_zuschlag_einfach;
var Reisegepaeck                        =  14.90;
var Reisegepaeck_sperrig                =  Reisegepaeck + Sperrigkeits_zuschlag_sondergepaeck;
var Fahrrad                             =  39.90;
var Skiverpackung                       =  2.90;
var Fahrradverpackung                   =  5.90;

var PaketKlasse      = new Array("XS", "S",   "M",    "L",    "XL",   "XXL"  );
var PaketAbmessungen = new Array( 30,   50,    80,     120,    150,    310   );
var PaketPreiseAbgabe;
var PaketPreiseAbgabeOnline;
var PaketPreiseAbholung;


var InselPLZ = new Array(18565,27498,27499,25938,25946,25849,25859,25869,25863,25845,25980,25992,25996,25997,25999,26579,26757,26571,26465,26474,26486,26548);
var alertString = "";
/*-------------------------------------*/
function DJcheckOnSumbit () {
	var Land = document.Tarifrecher.Land.value;
	switch (Land) {
	  case "Welt":
			document.getElementById('maxKgAbgabe').innerHTML = maxKgAbgabeWelt;
			document.getElementById('maxKgAbgabe2').innerHTML = maxKgAbgabeWelt;
			document.getElementById('maxKgAbgabe3').innerHTML = maxKgAbgabeWelt;
			// zusätzliche Paketklasse für Welt setzen
			PaketKlasse[0]      = "XS";
			PaketAbmessungen[0] = 30;
			// Preise Welt
			PaketPreiseAbgabe       = new Array(Sendung_XS_PaketShopWelt,Sendung_S_PaketShopWelt,Sendung_M_PaketShopWelt, Sendung_L_PaketShopWelt, "-", "-" );
			PaketPreiseAbgabeOnline = new Array(Sendung_XS_OnlinePaketscheinWelt,Sendung_S_OnlinePaketscheinWelt,Sendung_M_OnlinePaketscheinWelt, Sendung_L_OnlinePaketscheinWelt, "-", "-" );
			PaketPreiseAbholung     = new Array("-","-","-","-","-","-");
			PaketPreiseShop2Shop    = new Array("-","-","-","-","-","-");
	    break;
	  case "Europa":
			document.getElementById('maxKgAbgabe').innerHTML = maxKgAbgabeEU;
			document.getElementById('maxKgAbgabe2').innerHTML = maxKgAbgabeEU;
			document.getElementById('maxKgAbgabe3').innerHTML = maxKgAbgabeEU;
			// zusätzliche Paketklasse für Europa setzen
			PaketKlasse[0]      = "XS";
			PaketAbmessungen[0] = 30;
			// Preise Europa
			PaketPreiseAbgabe       = new Array(Sendung_XS_PaketShopEU,Sendung_S_PaketShopEU,Sendung_M_PaketShopEU, Sendung_L_PaketShopEU, "-", "-" );
			PaketPreiseAbgabeOnline = new Array(Sendung_XS_OnlinePaketscheinEU,Sendung_S_OnlinePaketscheinEU,Sendung_M_OnlinePaketscheinEU, Sendung_L_OnlinePaketscheinEU, "-", "-" );
			PaketPreiseAbholung     = new Array("-","-","-","-","-","-");
			PaketPreiseShop2Shop    = new Array("-","-","-","-","-","-");
	    break;
	  default:
			document.getElementById('maxKgAbgabe').innerHTML = maxKgAbgabe;
			document.getElementById('maxKgAbgabe2').innerHTML = maxKgAbgabe;
			document.getElementById('maxKgAbgabe3').innerHTML = maxKgAbgabe;
			// zusätzliche Paketklasse für Europa ignorieren
			PaketKlasse[0]      = "S";
			PaketAbmessungen[0] = 50;
			// Preise Deutschland
			PaketPreiseAbgabe       = new Array(Sendung_S_PaketShop,Sendung_S_PaketShop,Sendung_M_PaketShop, Sendung_L_PaketShop, "-", "-" );
			PaketPreiseAbgabeOnline = new Array(Sendung_S_OnlinePaketschein,Sendung_S_OnlinePaketschein,Sendung_M_OnlinePaketschein, Sendung_L_OnlinePaketschein, "-", "-" );
			PaketPreiseAbholung     = new Array(Sendung_S_Abholung,Sendung_S_Abholung,Sendung_M_Abholung,Sendung_L_Abholung,Sendung_XL_Abholung,Sendung_XXL_Abholung);
			PaketPreiseShop2Shop    = new Array(Sendung_S_Shop2Shop, "-", "-", "-", "-", "-" );
	    break;
	}
	
	var DEBUG = 0;
	alertString = "";
	
	var StartPlz= parseFloat(document.Tarifrecher.StartPlz.value);
	var ZielPlz = parseFloat(document.Tarifrecher.ZielPlz.value);
	var Menge = document.Tarifrecher.Menge.value;
	if (Menge == '' || isNaN(Menge) || Menge=="0")
	{
		Menge = 0;
		//document.Tarifrecher.Menge.value = Menge;
		AbholPreis = "---";
		AbgabePreis = "---";
		document.Tarifrecher.PaketKlasse.value = "";
		document.Tarifrecher.LaengeKL.value = "";
	} 
	else
	{
		var Menge   = parseFloat(document.Tarifrecher.Menge.value);
		var Laenge  = parseFloat(document.Tarifrecher.Laenge.value);
		var Breite  = parseFloat(document.Tarifrecher.Breite.value);
		var Hoehe   = parseFloat(document.Tarifrecher.Hoehe.value);
		var AbgabePreis = 0;
		var AbgabePreisOnline = 0;
		var AbholPreis = 0;
		var Zuschlag = 0;
	
			// Inselzuschlaege
		if ( is_Insel( StartPlz ) )  Zuschlag = Only2Digits(parseFloat(Zuschlag) + Menge*Inselzuschlag);
		if ( is_Insel( ZielPlz ) )   Zuschlag = Only2Digits(parseFloat(Zuschlag) + Menge*Inselzuschlag);
		document.Tarifrecher.InselZuschlag.value = Zuschlag;
		var i = finde_PaketKlasse( Laenge, Breite, Hoehe );
		if (DEBUG) alert ("Paketklasse " +  PaketKlasse[i]);

		AbgabePreis = Only2Digits(Menge * parseFloat(PaketPreiseAbgabe[i]));
		AbgabePreis_Gesamt = Only2Digits( (Menge * parseFloat(PaketPreiseAbgabe[i])));

		AbgabePreisOnline = Only2Digits(Menge * parseFloat(PaketPreiseAbgabeOnline[i]));
		AbgabePreisOnline_Gesamt = Only2Digits( (Menge * parseFloat(PaketPreiseAbgabeOnline[i])));

		AbholPreis = Only2Digits(Menge * parseFloat(PaketPreiseAbholung[i]) +  parseFloat(Zuschlag));
		AbholPreis_Gesamt = Only2Digits( (Menge * parseFloat(PaketPreiseAbholung[i]) +  parseFloat(Zuschlag)));
	
		if (parseFloat(PaketPreiseShop2Shop[i]) > 0)
		{
			AbgabePreisShop2Shop = Only2Digits(Menge * parseFloat(PaketPreiseShop2Shop[i]) +  parseFloat(Zuschlag));
			AbgabePreisShop2Shop_Gesamt = Only2Digits( (Menge * parseFloat(PaketPreiseShop2Shop[i]) +  parseFloat(Zuschlag)));
		}
		else
		{
			AbgabePreisShop2Shop = "---";
			AbgabePreisShop2Shop_Gesamt = "---";
		}
	
		switch (PaketKlasse[i]) {
		case "XS":
			break;
		case "S":
			break;
		case "M":
			break;
		case "L":
			break;
		case "XL":
			switch (Land) {
				case "Welt":
				case "Europa":
					alertString += ("bitte beachten Sie, dass der internationale Versand nur für die Paketklassen XS, S, M und L bei Abgabe am Hermes PaketShop möglich ist.");
					break;
				default:
					alertString += ("Die Abgabe von Paketen der Klasse XL ist am PaketShop nicht möglich. Wir holen das Paket gern bei Ihnen zuhause ab.");
					break;
			}
			AbgabePreis = "---";
			AbgabePreisOnline = "---"; 
			break;
		case "XXL":
			switch (Land) {
				case "Welt":
				case "Europa":
					alertString += ("bitte beachten Sie, dass der internationale Versand nur für die Paketklassen S, M und L bei Abgabe am Hermes PaketShop möglich ist.");
					break;
				default:
					alertString += ("Die Abgabe von Paketen der Klasse XXL ist am PaketShop nicht möglich. Wir holen das Paket gern bei Ihnen zuhause ab.");
					break;
			}
			AbgabePreis = "---";
			AbgabePreisOnline = "---"; 
			break;
		default:
			alertString += ("Die Eingaben entsprechen keiner Hermes Paketklasse." + prigs_message);
			AbgabePreis = "---";
			AbholPreis = "---";
			AbgabePreisOnline = "---"; 
			document.Tarifrecher.PaketKlasse.value = "---";
			break;
		}
		/*
		if (Menge > 5) {
			alertString += ("Am PaketShop koennen Sie nur bis zu 5 Pakete auf einmal abgeben.");
			AbgabePreis = "---";		
		}
		*/
		if (Land == "Europa") {
			AbholPreis = "---";		
		}
		if (Land == "Welt") {
			AbholPreis = "---";
		}
	}

	// abholung
	document.Tarifrecher.Preis_Abholung.value = AbholPreis;
	if (AbholPreis == "---")
	{
		document.Tarifrecher.Preis_Abholung_Gesamt.value = "---";
		document.Tarifrecher.Preis_Abholung.value = "---";
	}
	else
	{
		document.Tarifrecher.Preis_Abholung_Gesamt.value = AbholPreis_Gesamt;
		document.Tarifrecher.Preis_Abholung.value = AbholPreis;
	}

	// abgabe
	document.Tarifrecher.Preis_Paketshop.value = AbgabePreis;
	if (AbgabePreis == "---")
	{
		document.Tarifrecher.Preis_Paketshop_Gesamt.value = "---";
		document.Tarifrecher.Preis_Paketshop_Online_Gesamt.value = "---";
		document.Tarifrecher.Preis_Shop2Shop_Gesamt.value = "---";
	}
	else
	{
		document.Tarifrecher.Preis_Paketshop_Gesamt.value = AbgabePreis_Gesamt;
		document.Tarifrecher.Preis_Paketshop_Online_Gesamt.value = AbgabePreisOnline_Gesamt;
		document.Tarifrecher.Preis_Shop2Shop_Gesamt.value = AbgabePreisShop2Shop_Gesamt;
	}


	if (alertString != "") 
	{
		document.getElementById('tarifrechner_hinweis_text').innerHTML = "Liebe Nutzerin / lieber Nutzer,<br /><br />" + alertString;
		document.getElementById('tarifrechner_hinweis_tabelle').style.display = 'block';
		errorShow = true;
	}
	else
	{
		document.getElementById('tarifrechner_hinweis_text').innerHTML = "";
		document.getElementById('tarifrechner_hinweis_tabelle').style.display = 'none';
		errorShow = false;
	}
	
}
/*-------------------------------------*/
function finde_PaketKlasse( Laenge, Breite, Hoehe ) {    
  	var DEBUG=0;
  	var Summe=Summe_SeitenKurzLang( Laenge, Breite, Hoehe );
  	var i=0;
   
    // finde die PaketKlasse
	while (Summe > PaketAbmessungen[i]) i++;
  	document.Tarifrecher.PaketKlasse.value = PaketKlasse[i];
  	
  	if (DEBUG) 
   	  alert (  "Laenge   = "+Laenge +
		     "\nBreite   = "+Breite +
		     "\nHoehe    = "+Hoehe +
		     "\nPaketklasse = "+ PaketKlasse[i]);     
    // nu find man dat mittlere Mas ans dritteSeite
    // duesse dusselige javascript integpreter braucht etwas nachhilfe, um zahlen zu vergleichen (2*)
	if ( ( (2*Laenge >= 2*Breite) && (2*Breite >= 2*Hoehe) ) ||
		 ( (2*Laenge <= 2*Breite) && (2*Breite <= 2*Hoehe) ) ) {
		 dritteSeite = Breite;
		 if (DEBUG) alert ("its Breite " + Laenge + " " + Breite + " " + Hoehe);
		 }
	
	if ( ( (2*Breite >= 2*Hoehe)  && (2*Hoehe  >= 2*Laenge) ) ||
		 ( (2*Breite <= 2*Hoehe)  && (2*Hoehe  <= 2*Laenge) ) ) {
		 dritteSeite = Hoehe;
		 if (DEBUG) alert ("its Hoehe "  + Laenge + " " + Breite + " " + Hoehe);
		 }
		
	if ( ( (2*Hoehe  >= 2*Laenge) && (2*Laenge >= 2*Breite) ) ||
		 ( (2*Hoehe  <= 2*Laenge) && (2*Laenge <= 2*Breite) ) ) {
	 	 dritteSeite = Laenge;
		 if (DEBUG) alert ("its Laenge "  + Laenge + " " + Breite + " " + Hoehe);
		 }
    // nu mot we nok de Regel "3. Seite < 50cm bei XXL" moken
    if ((PaketKlasse[i] == "XXL") 
    	&& ( dritteSeite*1.0 > 50.0) ) {
    	alertString += "Die dritte Seite ("+dritteSeite+" cm) darf bei XXL Paketen nicht größer als 50 cm sein! ";
    	i++;
    	}
    return i;
}
/*-------------------------------------*/
function Summe_SeitenKurzLang( Laenge, Breite, Hoehe ) {    
  	var DEBUG=0;
  	var min=Math.min(Math.min(Laenge,Breite),Hoehe);
  	var max=Math.max(Math.max(Laenge,Breite),Hoehe);
  	var Summe = min+max;
  	if(isNaN(Summe) == true) Summe = "";
  	document.Tarifrecher.LaengeKL.value = Summe;
	 	
	if (DEBUG) 
	  alert (  "Laenge   = "+Laenge +
		     "\nBreite   = "+Breite +
		     "\nHoehe    = "+Hoehe +
		     "\nmin   = "+min +
		     "\nmax    = "+max +
		     "\nSumme = "+ Summe);     
    return Summe;
}
/*-------------------------------------*/
function is_Insel( plz ) {    
    for (i=0; i<InselPLZ.length ;i++) {
        if( plz == InselPLZ[i] )
            return true;
    }    
    return false;
}
/*-------------------------------------*/
function check_start()
{
    
    if( is_Insel(document.Tarifrecher.StartPlz.value) )   {     
        alertString += ("Sehr geehrter Kunde, fuer die Abholung von Paketen und Reisegepaeck von ausgewaehlten Inseln in Nord- und Ostsee berechnen wir aufgrund des erhoehten Befoerderungsaufwands einen Inselzuschlag von 5,90 EUR pro Gepaeckstueck und Transportweg. ");
        DJcheckOnSumbit ();
        }
}
/*-------------------------------------*/
function check_ziel()
{
    if( is_Insel(document.Tarifrecher.ZielPlz.value) ) {
        alertString += ("Sehr geehrter Kunde, fuer die Zustellung von Paketen und Reisegepaeck auf ausgewaehlte Inseln in Nord- und Ostsee berechnen wir aufgrund des erhoehten Befoerderungsaufwands einen Inselzuschlag von 5,90 EUR pro Gepaeckstueck und Transportweg.");
        DJcheckOnSumbit ();
        }
}
//alert ("hi"); 
/*--------------------------------------*/
function Only2Digits(X)
{
    
    var T, S=new String( Math.round(X*100) )
        while (S.length<3) 
            S='0'+S;   
    return S.substr(0, T=(S.length-2)) + ',' + S.substr(T, 2) ;  
}
/*--------------------------------------*/
function prettyPrint (string) {
	return ("huhu" + string);
}

