﻿$(document).ready(function() {

    var tr_count;
    $("table").each( function() {
        tr_count=0;
        $(this).find("tr").each(function(i) {
            tr_count++;
            if (i % 2 == 0) $(this).addClass('even');
        });
    });
    
    function elemsAreValid(_elems) {
        var ret = true;
        for (var i = 0; i<_elems.length; i++) {
            if (_elems[i] == false) {
                ret = false;
                break;
            }
        }
        return ret;
    }

    function clearElems(_elems) {
        for (var i=0; i<_elems.length; i++) {
            _elems[i].val("");
        }
    }

    function checkInput(_form_elements) {
        var email_regex = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
        var length_regex = /\w+/;

        for (var i=0; i<_form_elements.length; i++) {
        
            var this_el = _form_elements[i];
            var this_el_index = [i];
            
            (function() {

                if (this_el.attr("id").indexOf("email") > 0) {
                    if ( (!this_el.val().match(email_regex)) ) {
                        
                        label_elems[this_el_index].css("display","");
                        form_elem_is_valid[this_el_index] = false;

                    } else {

                        label_elems[this_el_index].css("display","none");
                        form_elem_is_valid[this_el_index] = true;
                    }
                } else {
                    if (!this_el.val().match(length_regex)) {
                    
                        label_elems[this_el_index].css("display","");
                        form_elem_is_valid[this_el_index] = false;
                    
                    } else {
                        
                        label_elems[this_el_index].css("display","none");
                        form_elem_is_valid[this_el_index] = true;

                    }
                }

            })();
            
        }
        
    }
    
    var toggle = $("#contact-click");
    
    if (toggle.length > 0) {
    
        $("#csubmit").after("<span class=\"ohnoes\" style=\"\"></span>");
        var err_el = $("#form-pop > .grid > p:last > span");
    
        var form_elems = new Array();
        form_elems.push($("#cmessage"));
        form_elems.push($("#cname"));
        form_elems.push($("#cemail"));
        
        var label_elems = new Array();
        var form_elem_is_valid = new Array();
        for (var i=0; i<form_elems.length; i++) {
        
            var this_form_el = form_elems[i];
            var this_form_el_index = [i];
            
            (function() {
                $("label[for=" + this_form_el.attr("id") + "]").after("<span class=\"ohnoes\" style=\"display: none\">*</span>");
                label_elems.push($("span.ohnoes:eq(" + this_form_el_index + ")"));
            })();

            form_elem_is_valid.push(false);
            
        }
        
        //alert(label_elems[1].text())
        
        $("#csubmit").click(function() {
            checkInput(form_elems);
            //alert("Valid: " + elemsAreValid(form_elem_is_valid));
            
            if (elemsAreValid(form_elem_is_valid) == false) {
            
                err_el.css("display","");
                
                err_el.text(" * Please fix input.");
                
            } else {
                err_el.css("display","");
                err_el.text("Thank you! Your message has been received.");
                
                $.get("/call/email.aspx", { name: $("#cname").val(), message: $("#cmessage").val(), email: $("#cemail").val()} );
                clearElems(form_elems);
            }
        });

        
    }

});
