// ##########################################################################################################
// ###########                                 E-shop functions                                    ##########
// ##########################################################################################################

function getElementByIdCompatible (the_id) {
    if (typeof the_id != 'string') {
        return the_id;
    }

    if (typeof document.getElementById != 'undefined') {
        return document.getElementById(the_id);
    } else if (typeof document.all != 'undefined') {
        return document.all[the_id];
    } else if (typeof document.layers != 'undefined') {
        return document.layers[the_id];
    } else {
        return null;
    }
}

function OrderFormControl(obj) {
    var backval;

    backval=true;
    if (obj.ordfrmCompany.value.length<3) {
        obj.ordfrmCompany.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmFaktUlice.value.length<3) {
        obj.ordfrmFaktUlice.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmFaktMesto.value.length<2) {
        obj.ordfrmFaktMesto.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmFaktPSC.value.length<2) {
        obj.ordfrmFaktPSC.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (!EmailValidator(obj.ordfrmKoudEmail.value)) {
        obj.ordfrmKoudEmail.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    return backval;
}

function KatalogFormControl(obj) {
    var backval;

    backval=true;
    if (obj.ordfrmCompany.value.length<3) {
        obj.ordfrmCompany.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmKoadUlice.value.length<3) {
        obj.ordfrmKoadUlice.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmKoadMesto.value.length<2) {
        obj.ordfrmKoadMesto.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmKoadPSC.value.length<2) {
        obj.ordfrmKoadPSC.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    return backval;
}

function RegisterFormControl(obj) {
    var backval;

    backval=true;

    if (obj.ordfrmCompany.value.length<3) {
        obj.ordfrmCompany.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmFaktUlice.value.length<3) {
        obj.ordfrmFaktUlice.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmFaktMesto.value.length<2) {
        obj.ordfrmFaktMesto.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmFaktPSC.value.length<2) {
        obj.ordfrmFaktPSC.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (!EmailValidator(obj.ordfrmKoudEmail.value)) {
        obj.ordfrmKoudEmail.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmKoudEmail.value.length<1) {
        obj.ordfrmKoudEmail.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmPass1.value!==obj.ordfrmPass2.value) {
        obj.ordfrmPass1.style.backgroundColor='#FFE2E2';
        obj.ordfrmPass2.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmPass1.value.length<4) {
        obj.ordfrmPass1.style.backgroundColor='#FFE2E2';
        obj.ordfrmPass2.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    return backval;
}

function PassChangeFormControl(obj) {
    var backval;

    backval=true;

    if (obj.ordfrmPassNew1.value.length<4) {
        obj.ordfrmPassNew1.style.backgroundColor='#FFE2E2';
        obj.ordfrmPassNew2.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    if (obj.ordfrmPassNew1.value!==obj.ordfrmPassNew2.value) {
        obj.ordfrmPassNew1.style.backgroundColor='#FFE2E2';
        obj.ordfrmPassNew2.style.backgroundColor='#FFE2E2';
        backval=false;
    }
    return backval;
}

function EmailValidator(mail) {
    var valid=true;

    if (mail.match("\\.{2,}","gi") !== null) { valid=false; } // ..
    if (mail.match("-{2,}","gi") !== null) { valid=false; } // --
    if (mail.match("_{2,}","gi") !== null) { valid=false; } // __
    if (mail.match("\\.@","gi") !== null) { valid=false; } // .@
    if (mail.match("\\.-","gi") !== null) { valid=false; } // .-
    if (mail.match("\\._","gi") !== null) { valid=false; } // ._
    if (mail.match("_\\.","gi") !== null) { valid=false; } // _.
    if (mail.match("_@","gi") !== null) { valid=false; } // _@
    if (mail.match("_-","gi") !== null) { valid=false; } // _-
    if (mail.match("-\\.","gi") !== null) { valid=false; } // -.
    if (mail.match("-_","gi") !== null) { valid=false; } // -_
    if (mail.match("-@","gi") !== null) { valid=false; } // -@
    if (mail.match("@\\.","gi") !== null) { valid=false; } // @.
    if (mail.match("@-","gi") !== null) { valid=false; } // @-
    if (mail.match("@_","gi") !== null) { valid=false; } // @_
    if (Number(mail.split("@").length) != 2) { valid=false; } // obsahuje pouze jeden @

    if (valid) {
        var arrDeleni=mail.split("@");
        mailbox=arrDeleni[0];
        domena=arrDeleni[1];

        var validtld="cz";
        validtld+="|aero|asia|biz|cat|com|coop|cym|edu|geo|gov|info|int|jobs|mail|mil|mobi|museum|name|net|org|post|pro|tel|travel";
        validtld+="|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br";
        validtld+="|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|de|dj|dk|dm|do|dz|ec|ee";
        validtld+="|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk";
        validtld+="|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la";
        validtld+="|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my";
        validtld+="|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro";
        validtld+="|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl";
        validtld+="|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw";

        if (mailbox.substr(0,1).match("[a-zA-Z0-9]") == null) { valid=false; } // začíná na alfanumerický znak
        if (mailbox.match("[_a-zA-Z0-9\\-\\.]*") == null) { valid=false; }
        if (mailbox.substr(mailbox.length-1,1).match("[a-zA-Z0-9]") == null) { valid=false; } // končí na alfanumerický znak

        if (domena.substr(0,1).match("[a-zA-Z0-9]") == null) { valid=false; } // začíná na alfanumerický znak
        if (domena.match("[_a-zA-Z0-9-\\.]*\\.(" + validtld + ")") == null) { valid=false; }
    }

    return valid;
}


