﻿$(function(){
   /*@cc_on
    if (navigator.userAgent.indexOf('MSIE 7')<0){                
        try {
            // Disable IE flickering
            //document.execCommand('BackgroundImageCache', false, true);
        } catch(e) {}
        
    }
    @*/
    $("input[@type=text]")
        .add("input[@type=password]")
        .focus(function(){
            $(this).addClass("focus");
        })
        .blur(function(){
            $(this).removeClass("focus");
        });
});

function sendForm(formElement, success){
    var formVal = 'ajax=1';
    /* get all inputs from form */
    formElement.find("input").add("textarea").each(function(i){                
        if (this.type=='radio'){
            if (this.checked) { formVal = sendForm_addValue(this, formVal);}
        } else {
            if (this.value.length > 0){
                formVal = sendForm_addValue(this,formVal);
            }
        }
    }).end();
    $.post(formElement.attr('action'),formVal,function(data){
        if (success) success(data);
    });
}

function sendForm_addValue(input,formString){
    if (formString!='') formString += '&';
    formString += input.name + '=' + input.value.replace('&','&amp;');
    return formString;
}

function validateInput(el,theForm) {
    
    if (el.className.indexOf("required")>=0){
        var isValid = false;
        if (el.type=="radio"){
            theForm.find("input[name='" + el.name + "']").each(function(i){
                if (this.checked) isValid = true;
            });
        } else {
            isValid = (el.value.length>0);
        }
        validate_markValid(el,isValid, 'error');
    }
    if (el.className.indexOf("validate-email")>=0){        
        validate_markValid(el,(el.value.length > 0 && (/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i.test(el.value))),'error');        
    }   
}

function validate_markValid(el,isValid,cssClass){
    if (isValid){
        $(el).removeClass('invalid').parent().parent().find("."+cssClass).fadeOut("fast");
    } else {        
        $(el).addClass('invalid').parent().parent().find("."+cssClass).fadeIn("fast");    
    }
}

function validateForm(theForm){
    theForm.find(".required").add(".validate-email").each(function(){
        validateInput(this, theForm);
    }).end();
    if (theForm.find(".invalid").length>0){        
        return false;
    }
    
    return true;
}
