﻿/* static\de\function.js */
/**
* Helper functions for storefront
* $RCSfile: functions.js,v $
* $Author: hfritsche $
* $Revision: 1.3 $ - $Date: 2009/03/16 09:03:16 $
*
* Diese Datei ist 3x vorhanden, (DE/CH/AT); Postleitzahlüberprüfung abweichend
*/


function swapImage() {
    i = 0;
    while (i < arguments.length) {
        document.images[arguments[i]].src = eval(arguments[i + 1] + ".src");
        i += 2;
    }
}

function showLayer(id) {
    document.getElementById(id).style.visibility = "visible";
}

function hideLayer(id) {
    document.getElementById(id).style.visibility = "hidden";
}

function highlite(lay) {
    document.getElementById('h' + lay).style.color = '#000000';
    document.getElementById('c' + lay).style.color = '#ffffff';
}

function lowlite(lay) {
    document.getElementById('h' + lay).style.color = '#ffffff';
    document.getElementById('c' + lay).style.color = '#000000';
}

function DecodeString(wert) {
    var result = wert;
    var maxi = result.length;
    var i = 0;
    while ((result.search("&") != -1) && (i < maxi)) {
        result = result.replace(/\&nbsp\;/, " ");
        result = result.replace(/\&auml\;/, "ä");
        result = result.replace(/\&Auml\;/, "Ä");
        result = result.replace(/\&ouml\;/, "ö");
        result = result.replace(/\&Ouml\;/, "Ö");
        result = result.replace(/\&uuml\;/, "ü");
        result = result.replace(/\&Uuml\;/, "Ü");
        result = result.replace(/\&szlig\;/, "ß");
        result = result.replace(/\&raquo\;/, "»");
        result = result.replace(/\&laquo\;/, "«");
        result = result.replace(/\&frac12\;/, "½");
        result = result.replace(/\&frac14\;/, "¼");
        result = result.replace(/\&frac34\;/, "¾");
        result = result.replace(/\&quot\;/, "");
        result = result.replace(/\&ordm\;/, "°");
        result = result.replace(/\&rdquo\;/, "");
        result = result.replace(/\&ldquo\;/, "");
        result = result.replace(/\&acute\;/, "´");
        result = result.replace(/\&amp\;/, "&");
        result = result.replace(/\&ecirc\;/, "ê");
        result = result.replace(/\&eacute\;/, "é");
        result = result.replace(/\&egrave\;/, "è");
        result = result.replace(/\&euml\;/, "ë");
        result = result.replace(/\&agrave\;/, "à");
        result = result.replace(/\&aacute\;/, "á");
        result = result.replace(/\&acirc\;/, "â");
        result = result.replace(/\&Oslash\;/, "Ø");
        result = result.replace(/\&\#150\;/, "-");
        result = result.replace(/\&\#151\;/, "-");
        i++;
    }
    return result;
}

// fuer Filialseiten
function PopUpNoFrames(breite, hoehe, Ziel) {
    options = "width=" + breite + ",height=" + hoehe + ",toolbar=no,locationbar=no,directories=no,scrollbars=yes,status=yes,menubar=no,resizable=no";
    popup = open(Ziel, 'PopUp', options);
}

function OpenPopUpZoom(breite, hoehe, Ziel) {
    breite = parseInt(breite, 10) + 30;
    if (screen.height >= 700) {
        hoehe = eval(hoehe * 1 + 13);
    }
    options = "width=" + breite + ",height=" + hoehe + ",toolbar=no,locationbar=no,directories=no,scrolling=yes,scrollbars=yes,status=yes,menubar=no,resizable=no";
    //alert(options);
    popup = open(Ziel, 'PopUp', options);
}

function OpenPopUpScroll(breite, hoehe, Ziel) {
    options = "width=" + breite + ",height=" + hoehe + ",toolbar=no,locationbar=no,directories=no,scrollbars=auto,status=yes,menubar=no,resizable=no";
    popup = open(Ziel, 'PopUp', options);
}

function openPopupGlossar(url, fenster) {
    var pop_gl;

    if (pop_gl) {
        if (!pop_gl.closed) {
            pop_gl.close();
        }
    }
    options = "width=370,height=380,left=10,top=0,resizable=no";
    var template = "glossar/popup_terms/popup_" + fenster;
    Ziel = url + "?Template=" + template;
    pop_gl = open(Ziel, 'PopUp', options);
    pop_gl.focus();
}

/* open variable popup windows */
function openWin(url, name, paramList) {
    name0 = window.open(url, name, paramList);
    name0.focus();
}

function autoTab(input, len, e) {
    var isNN = (navigator.appName.indexOf("Netscape") != -1);
    var keyCode = (isNN) ? e.which : e.keyCode; // distinguish between netscape and ie events
    var filter = (isNN) ? [0, 8, 9] : [0, 8, 9, 16, 17, 18, 37, 38, 39, 40, 46];
    if (input.value.length >= len && !containsElement(filter, keyCode)) {
        input.value = input.value.slice(0, len);
        input.form[(getIndex(input) + 1) % input.form.length].focus();
    }
    function containsElement(arr, ele) {
        var found = false, index = 0;
        while (!found && index < arr.length)
            if (arr[index] == ele)
            found = true;
        else
            index++;
        return found;
    }
    function getIndex(input) {
        var index = -1, i = 0, found = false;
        while (i < input.form.length && index == -1)
            if (input.form[i] == input) index = i;
        else i++;
        return index;
    }
    if (keyCode == 13)
        checkLogin();
    else
        return true;
}

function checkLogin() {
    var login = document.LoginForm.LoginForm_Login.value;
    var okay = login.search(/\D/);
    var day = document.LoginForm.LoginForm_Day.value.search(/\D/);
    var month = document.LoginForm.LoginForm_Month.value.search(/\D/);
    var year = document.LoginForm.LoginForm_Year.value.search(/\D/);

    if (login.length != 8) {
        alert("Bitte überprüfen Sie, ob Sie Ihre Kundennummer korrekt und 8-stellig eingegeben haben.");
        document.LoginForm.LoginForm_Login.focus();
    } else if (okay != -1) {
        alert("Die Kundennummer darf nur Ziffern enthalten");
        document.LoginForm.LoginForm_Login.focus();
    } else if (document.LoginForm.LoginForm_Day.value.length != 2) {
        alert("Bitte geben Sie den Tag 2-stellig (z.B. 05) ein.");
        document.LoginForm.LoginForm_Day.focus();
    } else if (day != -1) {
        alert("Bitte geben Sie den Tag 2-stellig mit Ziffern (z.B. 05) ein.");
        document.LoginForm.LoginForm_Day.focus();
    } else if ((parseInt(document.LoginForm.LoginForm_Day.value, 10) < 1) || (parseInt(document.LoginForm.LoginForm_Day.value, 10) > 31)) {
        alert("Bitte geben Sie als Tag eine Zahl zwischen 01 und 31 ein!");
        document.LoginForm.LoginForm_Day.focus();
    } else if (document.LoginForm.LoginForm_Month.value.length != 2) {
        alert("Bitte geben Sie den Monat 2-stellig (z.B. 03) ein.");
        document.LoginForm.LoginForm_Month.focus();
    } else if (month != -1) {
        alert("Bitte geben Sie den Monat 2-stellig mit Ziffern (z.B. 03) ein.");
        document.LoginForm.LoginForm_Month.focus();
    } else if ((parseInt(document.LoginForm.LoginForm_Month.value, 10) < 1) || (parseInt(document.LoginForm.LoginForm_Month.value, 10) > 12)) {
        alert("Bitte geben Sie als Monat eine Zahl zwischen 01 und 12 ein!");
        document.LoginForm.LoginForm_Month.focus();
    } else if (document.LoginForm.LoginForm_Year.value.length != 4) {
        alert("Bitte geben Sie das Jahr 4-stellig (z.B. 1967) ein.");
        document.LoginForm.LoginForm_Year.focus();
    } else if (year != -1) {
        alert("Bitte geben Sie das Jahr 4-stellig in Ziffern (z.B. 1967) ein.");
        document.LoginForm.LoginForm_Year.focus();
    } else if (document.LoginForm.LoginForm_Year.value < 1850) {
        alert("Bitte geben Sie eine sinvolle Jahreszahl ein!");
        document.LoginForm.LoginForm_Year.focus();
    } else {
        //alert("submit");
        document.LoginForm.submit();
    }
}

// for Netscape, IE and webtool - tester
// Checks for Return Key Code
function TasteGedrueckt(Ereignis) {
    var Netscape = new Boolean();
    if (navigator.appName == "Netscape") {
        Netscape = true;
    }
    if (Netscape == true) {
        if (Ereignis.which == 13) {	// if Return was pressed, call checkLogin()
            checkLogin(); 		// for field checking and submit
        }
    } else {
        if (window.event) {		// check for IE
            if (event.keyCode == 13) {
                checkLogin();
            }
        }
    }
}

// remove leading and ending blanks e.g. to check for invalid input
function clearSpaces(str) {
    while (str.charAt(0) == ' ') {
        str = str.substr(1, str.length)
    }
    while (str.charAt(str.length - 1) == ' ') {
        str = str.substr(0, (str.length) - 1);
    }
    return str;
}



// check common WebForm Elements FirstName, LastName, Street, PostalCode and City
// for at least 1 character and PostalCode for 5 digits.
// Pass the form object with checkAddressParameter(document.<FormName>)
// return true or false for further specific checks or actions.
function checkAddressParameters(form) {
    // get webform-id because WebForm doesn't need to have the same name like the id
    var webformid = "";
    for (var i = 0; i < form.length; i++) {
        if (form.elements[i].name == "webform-id") {
            webformid = form.elements[i].value;
        }
    }

    var error = new Boolean(false);
    for (var i = 0; i < form.length; i++) {
        if ((form.elements[i].name == webformid + "_FirstName") && (clearSpaces(form.elements[i].value) == "")) {
            alert("Bitte geben Sie einen Vornamen ein!");
            error = true;
            form.elements[i].focus();
        } else if ((form.elements[i].name == webformid + "_LastName") && (clearSpaces(form.elements[i].value) == "")) {
            alert("Bitte geben Sie einen Nachnamen ein!");
            error = true;
            form.elements[i].focus();
        } else if ((form.elements[i].name == webformid + "_Street") && (clearSpaces(form.elements[i].value) == "")) {
            alert("Bitte geben Sie eine Straße ein!");
            error = true;
            form.elements[i].focus();
        } else if ((form.elements[i].name == webformid + "_Street") && (checkPackstation(clearSpaces(form.elements[i].value.toLowerCase())) == true)) {
            alert('Aus technischen Gründen kann leider nicht an eine Packstation geliefert werden.');
            error = true;
            form.elements[i].focus();
        } else if ((form.elements[i].name == webformid + "_City") && (clearSpaces(form.elements[i].value) == "")) {
            alert("Bitte geben Sie einen Ort ein!");
            error = true;
            form.elements[i].focus();
        } else if (form.elements[i].name == webformid + "_PostalCode") {
            if (clearSpaces(form.elements[i].value) == "") {
                alert("Bitte geben Sie eine Postleitzahl ein!");
                error = true;
                form.elements[i].focus();
            }
            // TODO: Bei kompletter Implementierung der functions den Block laenderspezifisch anpassen und wieder reinnehmen.
            //} else {
            //	if ((form.elements[i].value.search(/\d{5}/)) == -1 ){
            //		alert("Die Postleitzahl muss 5 Ziffern enthalten!");
            //		error = true;
            //		form.elements[i].focus();
            //	}
            // }
        }
        if (error == true) {
            break;
        }
    }
    if (error != true) {
        return true;
    } else {
        return false;
    }
}

// Check an EMail value and ask if the user really wants to use umlauts
function confirmEMail(email) {
    var counter = 0;
    for (i = 0; i < email.length; i++) {
        if (((email.charAt(i)).toLowerCase() == "ö") || ((email.charAt(i)).toLowerCase() == "ä") || ((email.charAt(i)).toLowerCase() == "ü") || (email.charAt(i) == "ß")) {
            counter++;
        }
    }
    if (counter == 0) {
        return true;
    } else {
        return (confirm("Ihre E-Mail Eingabe enthält Umlaute.\nWollen Sie wirklich diese E-Mail-Adresse verwenden?"));
    }
}

// some check functions using regular expressions
function checkEmailForm(s) {
    var reg = /^\d*$|([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    var ok = reg.exec(s);
    return ok;
}

function logout() {
    var confirmLogout = confirm("Wollen Sie sich wirklich abmelden?");
    if (confirmLogout == true)
        location.href = "#URL(Action('SPM_ViewMyAccount-Logout'))#";
}

function swapImages(sImgname, sOtherImgname) {
    sImgname.src = sOtherImgname.src;
}

function checkPackstation(street) {
    //street = document.NewAddressBookForm.NewAddressBookForm_Street.value;
    street = street.toLowerCase();
    var pack = new Boolean(false);
    if (street.indexOf("packstation") != -1)
        pack = true;
    if (street.indexOf("ackstation") != -1)
        pack = true;
    if (street.indexOf("packstatio") != -1)
        pack = true;
    if (street.indexOf("pakstation") != -1)
        pack = true;
    if (street.indexOf("pacstation") != -1)
        pack = true;
    if (street.indexOf("akstation") != -1)
        pack = true;
    if (street.indexOf("ackstatio") != -1)
        pack = true;
    if (street.indexOf("akstatio") != -1)
        pack = true;
    if (street.indexOf("akstation") != -1)
        pack = true;
    if (street.indexOf("pkstation") != -1)
        pack = true;
    if (street.indexOf("pckstation") != -1)
        pack = true;
    if (street.indexOf("packtation") != -1)
        pack = true;
    return pack;
}
//for Brands-Box
function search_brands(brand) {
    var sbr = brand;
    document.search_brand.Marken_Text.value = sbr;
    document.search_brand.action = "#URL(Action('SPM_ParametricSearch-Progress'))#";
    document.search_brand.submit();
}

function checkQuantity(o) {
    if (isNaN(o.value) || ((o.value != 0) && (o.value != 1) && (o.value != 2) && (o.value != 3))) {
        alert("Sie k&ouml;nnen maximal eine Anzahl von 3 eines Produktes bestellen!"); o.value = "1";
    }
}

function checkOrderNr(o) {
    var meld = "Bitte verwenden Sie nur sinnvolle 7stellige Bestellnummern (Bsp: 5805702).";
    var str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var teil = o.value.substring(0, 6);
    var lb = o.value.substring(6, 7).toUpperCase();
    if ((o.value.length != 7)) {
        alert(meld);
    }
    else if (str.indexOf(lb) == -1) {
        alert(meld);
    }
    else if (isNaN(teil)) {
        alert(meld);
    }
    document.DirectOrderForm.OrderNr.focus();
}

function gobasket() {
    if ((document.DirectOrderForm.OrderNr[i]) && ((document.DirectOrderForm.OrderNr[i].value != "") && (document.DirectOrderForm.Size[i].value == ""))) {
        document.DirectOrderForm.Size[i].value = "0";
    }
    document.DirectOrderForm.submit();
}
