var pages = {1:"overzicht",2:"gegevens",3:"levering-en-betaalwijze",4:"bevestigen"};
document.getElementsByClassName = function (needle)
{
    var s = [document.documentElement || document.body], i = 0, r = [], l = 0, e;
    var re = new RegExp('(^|\\s)' + needle + '(\\s|$)');

    do
    {
        e = s[i];

        while (e)
        {
            if (e.nodeType == 1)
            {
                if (e.className && re.test(e.className)) r[l++] = e;

                s[i++] = e.firstChild;
            }

            e = e.nextSibling;
        }
    }
    while (i--);

    return r;
}

// GENERAL FUNCTIONS //
function valid(from, to)
{
    var valid    = true;
    var location = "/winkelmand/"+pages[to];

    switch(from)
    {
        case 1:
            if(from < to)
            {
                var overzicht = document.getElementById("overzicht");
                var rows = overzicht.getElementsByTagName("tr");
                for(i=0;i<rows.length;i++)
                {
                    if(rows[i].id)
                    {
                        var elm = Array("Maat","Kleur");
                        for(j=0;j<elm.length;j++)
                        {
                            object = document.overzicht[elm[j]+rows[i].id];
                            if(object.selectedIndex < 1)
                            {
                                alert(elm[j].toUpperCase()+" dient ingevuld te worden bij \""+rows[i].name+"\"");
                                valid = false;
                                break;
                            }
                        }
                    }
                    if(valid!=true){ break; }
                }
                if(valid)
                {
                    document.location = location;
                }
            }
            break;
        case 2:
            if(from<to)
            {
                if(!document.gegevens.klant_geslacht[0].checked && !document.gegevens.klant_geslacht[1].checked && valid)
				{
					alert("GESLACHT dient ingevuld te worden");
					valid = false;
				}
                if(valid)
                {
                    var velden = new Array("klant_voorletters", "klant_achternaam", "klant_straat", "klant_huisnummer", "klant_postcode", "klant_plaats", "klant_telefoonnummer");
                    for(i=0; i<velden.length;i++)
                    {

                        if(eval("document.gegevens."+velden[i]).value=="")
                        {
                            alert(velden[i].replace("klant_","").toUpperCase()+" dient ingevuld te worden");
                            eval("document.gegevens."+velden[i]).focus();
                            valid = false;
                            break;
                        }
                    }
                }
                /*
                var jaar = document.gegevens.jaar.value.split("");
				if( (document.gegevens.dag.value=="" || document.gegevens.maand.value==0 || document.gegevens.jaar.value=="" || (parseInt(document.gegevens.dag.value)/1 != document.gegevens.dag.value/1) || (parseInt(document.gegevens.jaar.value)/1 != document.gegevens.jaar.value/1) || jaar.length<4) && valid==true)
				{
					alert("GEBOORTEDATUM is niet correct");
                    document.gegevens.dag.focus();
					valid = false;
				}
                */
                var postcode = document.gegevens.klant_postcode.value.split("");
				if(valid && ((parseInt(postcode[0])/1 != postcode[0]/1) || (parseInt(postcode[1])/1 != postcode[1]/1) || (parseInt(postcode[2])/1 != postcode[2]/1) || (parseInt(postcode[3])/1 != postcode[3]/1)))
				{
					alert("POSTCODE is niet correct");
                    document.gegevens.klant_postcode.focus();
					valid = false;
				}
				else if(valid && postcode.length == 6)
				{
					document.gegevens.klant_postcode.value = postcode[0]+postcode[1]+postcode[2]+postcode[3]+" "+postcode[4]+postcode[5];
				}

				if(valid && document.gegevens.klant_telefoonnummer.value!="")
				{
					for(var i=0; i<10;i++)
					{
						document.gegevens.klant_telefoonnummer.value = document.gegevens.klant_telefoonnummer.value.replace(/\s/, "");
						document.gegevens.klant_telefoonnummer.value = document.gegevens.klant_telefoonnummer.value.replace(/-/, "");
					}

					var telefoonnummer = document.gegevens.klant_telefoonnummer.value.split("");
					if(telefoonnummer.length!=10)
					{
						alert("TELEFOONNUMMER is niet correct");
                        document.gegevens.klant_telefoonnummer.focus();
						valid = false;
					}
				}

				var email = document.gegevens.klant_email;
				AtPos = email.value.indexOf("@");
				StopPos = email.value.lastIndexOf(".");

				if ( (StopPos == -1 || StopPos < AtPos) && valid==true)
				{
					alert("E-MAIL is niet correct");
                    email.focus();
					valid = false;
				}

                if(valid)
                {
                    document.gegevens.action = "/custom/order.php?action=klant";
                    document.gegevens.submit();
                }
            }
            break;
        case 3:
            if(from<to)
            {
                var type        = document.levering.levering_type;
                var ander_adres = document.levering.ander_adres;
                var betaalwijze = document.levering.betaalwijze;
                var issuerID    = document.levering.issuerID;

                if(type[0].checked==false && type[1].checked==false && valid)
                {
                    alert("WIJZE VAN LEVEREN dient ingevuld te worden");
                    valid = false;
                }

                if(ander_adres[1].checked==true && valid)
                {
                    var fields = new Array("naam","straat","postcode","plaats");
                    for(i=0;i<fields.length;i++)
                    {
                        if(document.levering["levering_"+fields[i]].value=="")
                        {
                            alert(fields[i].toUpperCase()+" dient ingevuld te worden");
                            valid = false;
                            document.levering["levering_"+fields[i]].focus();
                            break;
                        }
                    }
                }

                if(betaalwijze[0])
                {
                    if(betaalwijze[0].checked==false && betaalwijze[1].checked==false && valid)
                    {
                        alert("BETAALWIJZE dient ingevuld te worden");
                        valid = false;
                    }
                    else if(betaalwijze[0].checked==true && issuerID.selectedIndex < 1) // && issuerID[0].checked==true
                    {
                        alert("BANK VOOR BETALING MET iDEAL dient ingevuld te worden");
                        valid = false;
                    }
                }
                else
                {
                    if(betaalwijze.checked==false && valid)
                    {
                        alert("BETAALWIJZE dient ingevuld te worden");
                        valid = false;
                    }
                    else if(betaalwijze.checked==true && issuerID.selectedIndex < 1) // && issuerID[0].checked==true
                    {
                        alert("BANK VOOR BETALING MET iDEAL dient ingevuld te worden");
                        valid = false;
                    }
                }

                if(valid)
                {
                    document.levering.action = "/custom/order.php?action=leveren";
                    document.levering.submit();
                }
            }
            break;
        case 4:
            document.bevestigen.action = "/custom/order.php?action=bevestigen";
            document.bevestigen.submit();
            break;
    }
    if(valid)
    {
        //document.location = location;
    }
}
function changeKleur(object)
{
    var elm = document.getElementById("maat"); 
    var tot = elm.length;
    for(var i=tot; i>=0; i--)
    {
        elm.remove(i);
    }
    for(var maat in maten[object])
    {
        var optn = document.createElement('OPTION');
        optn.text = maten[object][maat];
        optn.value = maat;
        elm.options.add(optn);
    }
}
// END GENERAL //

// FUNCTIONS FOR EDIT ORDEROVERVIEW //
function bestel(_id, _aantal, _maat, _kleur)
{
    var id      = "";
    var aantal  = "";
    var maat    = "";
    var kleur   = "";

    if(_id      == undefined){ alert("Het opgegeven product is niet bekend."); return false; }else{ id = _id; }
    if(_aantal  == undefined || _aantal<1){ aantal = 1; }else{ aantal = _aantal; }
    if (_maat == 0){ alert("Kies een maat"); return false; }
    if(_maat    == undefined){ maat = ""; }else{ maat = _maat; }
    if(_kleur   == undefined){ kleur = ""; }else{ kleur = _kleur; }
    
    document.location = "/custom/order.php?action=add&id="+id+"&aantal="+aantal+"&maat="+maat+"&kleur="+kleur;
    return true;
}
function edit(_id)
{
    var aantal  = document.overzicht["Aantal"+_id].value;
    var maat    = document.overzicht["Maat"+_id].value;
    var kleur   = document.overzicht["Kleur"+_id].value;
    document.location = "/custom/order.php?action=edit&id="+_id+"&aantal="+aantal+"&maat="+maat+"&kleur="+kleur;
}
function verwijder(_id)
{
    document.location = "/custom/order.php?action=verwijder&id="+_id;
}
// END ORDEROVERVIEW //

// FUNCTIONS FOR PAYMENT//
function changeLeveren(object)
{
    var ander_adres = document.getElementsByClassName("ander_adres"), ander_adres_display, ander_adres_form = document.getElementsByClassName("ander_adres_form"), ander_adres_form_display, elms;
    if(object.value == "Afhalen")
    {
        elms = document.levering.ander_adres;
        for(i=0;i<elms.length;i++)
        {
            elms[i].checked = false;
        }
        ander_adres_display = "none";
        ander_adres_form_display = "none";

        document.levering.levering_naam.value       = "";
        document.levering.levering_straat.value     = "";
        document.levering.levering_postcode.value   = "";
        document.levering.levering_plaats.value     = "";

        showRembours(false);
    }
    else
    {
        ander_adres_display = "";
        if(document.levering.ander_adres[0].checked==false && document.levering.ander_adres[1].checked==false)
        {
            document.levering.ander_adres[0].checked=true;
        }
        if(document.levering.ander_adres[1].checked==true)
        {
            ander_adres_form_display = "";
            showRembours(false);
        }
        else
        {
            ander_adres_form_display = "none";

            document.levering.levering_naam.value       = "";
            document.levering.levering_straat.value     = "";
            document.levering.levering_postcode.value   = "";
            document.levering.levering_plaats.value     = "";
            showRembours(true);
        }
       
    }
    
    for(i=0;i<ander_adres.length;i++)
    {
        ander_adres[i].style.display = ander_adres_display;
    }
    for(i=0;i<ander_adres_form.length;i++)
    {
        ander_adres_form[i].style.display = ander_adres_form_display;
    }
}
function changeLeverAdres(object)
{
    var ander_adres_form = document.getElementsByClassName("ander_adres_form"), ander_adres_form_display;

    if(object.value == "Ja")
    {
        ander_adres_form_display = "";
        showRembours(false);
    }
    else
    {
        document.levering.levering_naam.value       = "";
        document.levering.levering_straat.value     = "";
        document.levering.levering_postcode.value   = "";
        document.levering.levering_plaats.value     = "";

        ander_adres_form_display = "none";
        showRembours(true);
    }

    for(i=0;i<ander_adres_form.length;i++)
    {
        ander_adres_form[i].style.display = ander_adres_form_display;
    }
}
function showRembours(showRembours)
{
    var field = document.getElementById("betaalwijze_rembours");
    if(field)
    {
        if(showRembours == true)
        {
            field.style.display = "";
        }
        else
        {
            field.style.display = "none";
            if(document.levering.betaalwijze[1].checked)
            {
                document.levering.betaalwijze[0].checked = true;
            }
        }
    }
}
function clickIDEAL()
{
    if(document.levering.betaalwijze[0])
    {
        document.levering.betaalwijze[0].checked = true;
    }
    else
    {
        document.levering.betaalwijze.checked = true;
    }
}
function initPayment()
{
    if(document.levering)
    {
       if(document.levering.levering_type[0].checked==true)
       {
           showRembours(true);
           changeLeveren(document.levering.levering_type[0]);
       }
       else if(document.levering.levering_type[1].checked==true)
       {
           showRembours(false);
           changeLeveren(document.levering.levering_type[1]);
       }
       else
       {
            var ander_adres = document.getElementsByClassName("ander_adres"), ander_adres_form = document.getElementsByClassName("ander_adres_form");
            showRembours(false);

            for(i=0;i<ander_adres.length;i++)
            {
                ander_adres[i].style.display = "none";
            }
            for(i=0;i<ander_adres_form.length;i++)
            {
                ander_adres_form[i].style.display = "none";
            }
       }
    }
}

if(window.addEventListener)
{
    window.addEventListener("onload",initPayment,false);
}
else if(window.attachEvent)
{
    window.attachEvent("onload",initPayment);
}
// END PAYMENT //
