function warn(field) {
    if(field.attr("name") != "country" && field.attr("name") != "operator")
        field.val("This field cannot be left blank");
    field.css({color:"red"});
    field.focus(function () {
        field.val("");
        field.css({color:"black"});
        field.unbind();
    });
    return false;
}

function error(field) {
     $("#"+field.attr("name")+"_err").show();
     field.focus(function () {
        $("#"+field.attr("name")+"_err").hide();
        field.unbind();
    });
}

var valid_range = {'name': function(val) {return val.length<=128;},
                   'address': function(val) {return val.length<=255;},
                   'city': function(val) {return val.length<=32;},
                   'state': function(val) {return val.length<=32;},
                   'email': function(val) {return validateEmail(val)==true;},
                   'postal_code': function(val) {return val.length<=10;},
                   'country': function(val) {return true;},
                   'operator': function(val) {return true;},
                   'mobile': function(val) {return (val.length>=5 && val.length<=20);},
                   'Quill_key': function(val) {return true;}
                  };

function validate(){
	
	var frm = document.frmTransaction;
    var fields = Array('name','address','city','state','email','postal_code','country','mobile','Quill_key', 'operator');
    var errors = false;
	for(var i = 0; i < fields.length ; i++){
            if (frm.elements[fields[i]].value == "This field cannot be left blank"){
                frm.elements[fields[i]].value ="";   
            }
            if(frm.elements[fields[i]].value.length == 0){
                warn($(frm.elements[fields[i]]));
                errors = true;
            }
            else if(!valid_range[frm.elements[fields[i]].name](frm.elements[fields[i]].value)){
                error($(frm.elements[fields[i]]));
                errors = true;
            }
	}  

    $("#dTermsMsg").hide();
    if(!$('#tcagree').is(':checked')){
        $("#dTermsMsg").show();
        errors = true;
    }

    if(errors) {
        return false;
    }
	return true;
}

function validateEmail(email) {
    //Validating the email field
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	//"
    if (! email.match(re)) {
        return false;
    }
    return true;
}

Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
    var i;
    for (i=0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};

function clearErrMsg() {
    $(".error").each(function(){
        $(this).hide();
    });
    $("#dTermsMsg").hide();
    $(document.frmTransaction['country']).css({color:"black"});
    $(document.frmTransaction['operator']).css({color:"black"});
}

$(document).ready(function() {
	var frm = document.frmTransaction;
    var fields = Array('name','address','city','state','email','postal_code','country','mobile','Quill_key');
//	for(var i = 0; i < fields.length ; i++){
//                frm.elements[fields[i]].value ="";   
//   }
});
