function mouseOver(e, file, dir)
{
    // Ballon weergeven en op de juiste locatie.
    var ballon = document.getElementById("productBallon");
    var e 	= e || window.event;
    var d 	= (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;

    var y 		= e.clientY + d.scrollTop+5;
    var x 		= e.clientX + d.scrollLeft+5;
    var tHeight	= y+ballon.clientHeight;
    var vHeight	= document.body.clientHeight;
    var tWidth	= x+ballon.clientWidth;
    var vWidth	= document.body.clientWidth;

    if(tHeight > vHeight){
        var y 	= ((e.clientY + d.scrollTop)-ballon.clientHeight )+25;
    }
    if(tWidth > vWidth){
        var x 	= ((e.clientX + d.scrollLeft)-ballon.clientWidth )-10;
    }
    ballon.style.top=y+"px";
    ballon.style.left=x+"px";

    if(file && ballon.childNodes.length == 0){
        ballon.style.display="block";
        var objImage = new Image();
        objImage.onLoad = imageIsLoaded;
        objImage.src = file;
        ballon.appendChild(objImage);
    }
    //ballon.innerHTML ="<img src='/userfiles/"+dir+"/"+file+"' width='300' alt='' />";
}
function imageIsLoaded(){
    alert(this.src);
}

function mouseOut(){
    var ballon = document.getElementById("productBallon");
    ballon.style.display="none";
    ballon.innerHTML ="";

    for(var i=0;i<ballon.childNodes.length;i++){
        ballon.removeChild(i);
    }
}

function calculateLidmaatschap(object,price){
    total = parseFloat(total);
    price = parseFloat(price);
    if(object.checked){
        total+=price;
    }
    else{
        total-=price;
    }
    document.getElementById("__subtotal").innerHTML = "&euro;&nbsp;"+number_format(total,2,",",".");
    document.getElementById("__total").innerHTML    = "&euro;&nbsp;"+number_format((total+parseFloat(verzendkosten[document.frm.verzendkosten.value])),2,",",".");
    document.getElementById("__btw").innerHTML      = number_format(((total+parseFloat(verzendkosten[document.frm.verzendkosten.value]))-((total+parseFloat(verzendkosten[document.frm.verzendkosten.value]))/1.19)),2,",",".");
}
function calculateTransport(){
    total = parseFloat(total);
    document.getElementById("__transport").innerHTML = "&euro;&nbsp;"+number_format(parseFloat(verzendkosten[document.frm.verzendkosten.value]),2,",",".");
    document.getElementById("__total").innerHTML    = "&euro;&nbsp;"+number_format((total+parseFloat(verzendkosten[document.frm.verzendkosten.value])),2,",",".");
    document.getElementById("__btw").innerHTML      = number_format(((total+parseFloat(verzendkosten[document.frm.verzendkosten.value]))-((total+parseFloat(verzendkosten[document.frm.verzendkosten.value]))/1.19)),2,",",".");
}
function showFaktuurAdres(layerName,checked){
    var layer = document.getElementById(layerName);
    if(checked && layer){
        layer.style.display = "none";
//        document.frm.faktuurstraat.value = "";
//        document.frm.faktuurhuisnr.value = "";
//        document.frm.faktuurtoev.value = "";
//        document.frm.faktuurpostcode.value = "";
//        document.frm.faktuurstad.value = "";
//        document.frm.faktuurland.selectedIndex = 0;
    }
    else{
        layer.style.display = "block";
    }
}
function validWinkelmandje(formname) {
    var valid   = true;
    var form    = document.forms[formname];

    var go = false;
    for (var i in form["field"]) {
        if (form["field"][i].value != "") {            
            go = true;
            break;
        }
    }

    if($("#montagediv").css("display") != "none" && (form["verzendradio"][1].style.display != "none" && form["verzendradio"][1].checked && form["dealer"].value=="") && !go){
        alert("U dient een dealer te selecteren");
        valid = false;
    }

//    if((form["verzendradio"][1].checked && form["planningsdatum"].value=="" && !go)){
//        alert("U dient een montagedatum te selecteren");
//        valid = false;
//    }  
    //alert(form["verzendradio"][1].style.display);
    //return false;
    if ($("#montagediv").css("display") != "none" && form["verzendradio"][1].style.display != "none" && form["verzendradio"][1].checked && form["planningsdatum"].value=="") {
        alert("U dient een montagedatum te selecteren");
        valid = false;
    }
    
    return valid;
}

function checkLogin(formname) {
    var valid   = true;
    var form    = document.forms[formname];

    if (form[0].value != "") {
        if (!cValidEmail(form["emailbekend"])) {
            alert("U dient een geldig e-mailadres in te voeren");
            valid = false;
        } else {
            valid = true;
        }
    }

    if (valid) form.submit();
}

function validGegevens(formname){
    var valid   = true;
    var form    = document.forms[formname];
    var fields  = {
//        "geslacht":"Titel",
//        "voornaam":"Voornaam",
        "achternaam":"Achternaam",
        "telefoon":"Telefoon",
        "emailadres":"E-mail",
        "straat":"Straatnaam",
//        "huisnr":"Huisnummer",
        "postcode":"Postcode",
        "stad":"Stad",
        "land":"Land"
    };
    var ffields = {
        "faktuurstraat":"Straatnaam (factuuradres)",
//        "faktuurhuisnr":"Huisnummer (factuuradres)",
        "faktuurpostcode":"Postcode (factuuradres)",
        "faktuurstad":"Stad (factuuradres)",
        "faktuurland":"Land (factuuradres)"
    };

    if (form[0].value != "") {
        if (!cValidEmail(form["emailbekend"])) {
            alert("U dient een geldig e-mailadres in te voeren");
            valid = false;
        } else {
            valid = true;
        }
    }

    if (form[0].value == "") {
    for(findex in fields){
        if(valid === true && form[findex].value == ""){
            alert("U dient \""+fields[findex]+"\" in te vullen");
            valid = false;
            form[findex].focus();
            break;
        }
    }
    //return false;

    if(valid === true && !cValidTelefoon(form["telefoon"])){
        alert("U dient \"Telefoon\" correct in te vullen");
        valid = false;
    }
    if(valid === true && !cValidEmail(form["emailadres"])){
        alert("U dient \"E-mailadres\" correct in te vullen");
        valid = false;
    }
    if(valid === true && !cValidPostcode(form["postcode"],form["land"].value)){
        alert("U dient \"Postcode\" correct in te vullen");
        valid = false;
    }
    }

    if(!form["afleveradres"].checked){
        for(ffindex in ffields){
            if(valid === true && form[ffindex].value == ""){
                alert("U dient \""+ffields[ffindex]+"\" in te vullen");
                valid = false;
                break;
            }
        }
        if(valid === true && !cValidPostcode(form["faktuurpostcode"],form["faktuurland"].value)){
            alert("U dient \"Postcode (factuuradres)\" correct in te vullen");
            valid = false;
        }
    }

    if(valid === true && !form["voorwaardenbevestigd"].checked){
        alert("U dient akkoord te gaan met de algemene voorwaarden");
        valid = false;
    }

    return valid;
}

function validDealerGegevens(formname){
    var valid   = true;
    var form    = document.forms[formname];
    var fields  = {
        "bedrijfsnaam":"Bedrijfsnaam",
        "adres":"Adres",
        "postcode":"Postcode",
        "stad":"Stad",
        "provincie":"Provincie",
        "voornaam":"Voornaam",
        "achternaam":"Achternaam",
        "telefoon":"Telefoon",
        "email":"E-mail"
    };

    //return false;
    for(findex in fields){
        if(valid === true && form[findex].value == ""){
            alert("U dient \""+fields[findex]+"\" in te vullen");
            valid = false;
            form[findex].focus();
            break;
        }

    if(valid === true && !cValidTelefoon(form["telefoon"])){
        alert("U dient \"Telefoon\" correct in te vullen");
        valid = false;
    }
    if(valid === true && !cValidEmail(form["email"])){
        alert("U dient \"E-mailadres\" correct in te vullen");
        valid = false;
    }
//    if(valid === true && !cValidPostcode(form["postcode"],form["land"].value)){
//        alert("U dient \"Postcode\" correct in te vullen");
//        valid = false;
//    }
    }
    return valid;
}

function validBetalen(formname){
    var valid   = false;
    var form    = document.forms[formname];

    if (form["betaalmethode"].length == undefined) {
        if(form["betaalmethode"].checked){
            valid = true;
        }
    } else {
        for(var i=0; i<form["betaalmethode"].length; i++){
            if(form["betaalmethode"][i].checked){
                valid = true;
                break;
            }
        }
    }

    if (!valid) {
        alert("U dient een betaalmethode te kiezen");
        return false;
    }
    if(form["betaalmethode"][i].value == "iDEAL" && form["issuerID"].value == 0){
        alert("U dient een bank te selecteren");
        valid = false;
    }
    else if(!valid){
        alert("U dient een betaalwijze te selecteren");
        valid = false;
    }

    if(form["betaalmethode"][i].value != "iDEAL" && form["issuerID"]){
        form["issuerID"].selectedIndex = 0;
    }

    if (form["kenteken"]) {
        if (form["kenteken"].value == "") {
            valid = false;
            alert("U dient uw kenteken op te geven");
        } else {
            valid = true;
        }
    }

    return valid;
}

function cValidTelefoon(element){
    var _valid = null;
    if(element.value.toString().replace(/\D/g,"").length==10){
        element.value = element.value.toString().replace(/[a-zA-Z*]/g,"");
        _valid = true;
    }
    else{
        _valid = false;
    }
    return _valid;
}
function cValidEmail(element){
    var _valid = null;
    AtPos   = element.value.indexOf("@");
    StopPos = element.value.lastIndexOf(".");
    if ((StopPos == -1 || AtPos == -1 || StopPos < AtPos))
    {
        _valid = false;
    }
    else{
        _valid = true;
    }

    return _valid;
}
function cValidPostcode(element, land){
    var _valid = false;

    if(land == "Nederland" && element.value.toString().match(/^\d{4}[\s-]?[a-zA-Z]{2}$/)!=null){
        _valid = true;
    }
    else if(land != "Nederland" && element.value.toString().match(/^\d{4}/)!=null){
        _valid = true;
    }

    return _valid;
}

function number_format(number, decimals, dec_point, thousands_sep) {
    number = (number+'').replace(',', '').replace(' ', '');
    var n = !isFinite(+number) ? 0 : +number,
    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
    sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
    s = '',
    toFixedFix = function (n, prec) {
        var k = Math.pow(10, prec);
        return '' + Math.round(n * k) / k;
    };
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}

function getVerenigingen()
{
    var stad = document.frmAanmelden.stad.value;
    var _verenigingen = Array();
    var j = 0;
        for(var i=0; i<verenigingen.length; i++)
        {
            if(verenigingen[i]['site'] == stad)
            {
                _verenigingen[j] = verenigingen[i];
                j++;
            }
        }

    fillSelectElement(document.frmAanmelden.vereniging, _verenigingen)
}

function removeSelectElement(selectbox){
    if(selectbox.options.length-1>0){
        for(i=selectbox.options.length-1;i>0;i--){
            selectbox.removeChild(selectbox[i]);
        }
    }
}

function fillSelectElement(selectbox, items){
    removeSelectElement(selectbox);
    var optn = null;
    for(var i=0; i<items.length; i++){
            optn   = document.createElement("OPTION");
            optn.value = items[i]["id"];
            optn.text  = items[i]["naam"];
            selectbox.options.add(optn);
    }
}

function in_array (needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
    return false;
}

