var isEmail = false;
var curentValidatorHash = new Array();

function checkIsEmail(data,text,cur_el){
	var z,z1,t_id, pr_err;
	var parent, str;
	cur_el = document.getElementById(cur_el);
	parent = cur_el.parentNode;
     if(parent.childNodes[0]){
        l = parent.childNodes.length;
        for(j=0;j<l;j++){
            if(parent.childNodes[j]){
                str = parent.childNodes[j].id + '';
                if(str.indexOf("err_message") != -1){
                    parent.removeChild(parent.childNodes[j]);
                }
            }
        }
     }
	if(text=='ok'){
		isEmail = false;         
        //pr_err = 1;
	}
	else{
		//z = document.createTextNode("Another user has already registered with this email. If you are a returning user, click <a href='/sale-by-owner-user-area/index.html'>here</a> to log in, or, if you forgot your password, click <a href='https://www.fizber.com/sale-by-owner-user-area/forgot-password.html'>here</a>.");
		 z = "Another user has already registered with this email. If you are a returning user, click <a href='/sale-by-owner-user-area/index.html'>here</a> to log in, or, if you forgot your password, click <a href='https://www.fizber.com/sale-by-owner-user-area/forgot-password.html'>here</a>.";
         z1 = document.createElement("DIV") ;
         z1.style.width = '305px';
         t_id = "err_message" + Math.round(Math.random() * 200);
         z1.setAttribute("id", t_id);
         z1.id = t_id;
         //z1.appendChild(z);
         z1.innerHTML = z;
         if(parent.childNodes[0]){
             parent.insertBefore(z1,cur_el);				 
         }else{
             parent.appendChild(z1);				
         }
         fade(cur_el.id, 'fadeRule2');
         fade(t_id, 'fadeRule3');
		isEmail = true;
	}
}

function setValidatorAction(hash,reg){
    var c = hash.length;
    for (var i = 0;i<c;i++){ 
        curentValidatorHash[curentValidatorHash.length] = hash[i]
        var cur_el = document.getElementById(hash[i].key);
        try{
 			if (reg){
 				eval('cur_el.onblur = function (){checkFormForErrors(false,"' + hash[i].key + '","' + reg + '" )}');
 			}
 			else {
				eval('cur_el.onblur = function (){checkFormForErrors(false,"' + hash[i].key + '",' + false + ' )}');
        }
        }
        catch(e){
        	//alert(hash[i].key + " - not exist");
        }
    }
}

function checkFormForErrors( hash, element, reg){
    if (!hash){
        hash = curentValidatorHash;
    }
    var i,c1;
    var l = 0;
    var c = hash.length;
    var parent, str;
    var z,z1,t_id, pr_err;
    pr_err = 0;
    for (var i = 0;i<c;i++){ 
        hash[i].error = "";
        var cur_el = document.getElementById(hash[i].key);
        if(!cur_el){
            continue;
        }
        if(!element || element == hash[i].key){		
            c1 = hash[i].type.length;
            for(j=0;j<c1;j++){
                if(hash[i].type[j] == "int" && cur_el.value!=""){
                    if(/^\d{1,}$/.test(cur_el.value)){
                        
                    }else{
                        hash[i].error = "Please enter a valid number in this field.";
                    }
                }else if(hash[i].type[j] == "price" && cur_el.value!=""){
                    if(/^\d{1,}$/.test(cur_el.value)){
                        if(parseInt(cur_el.value)>20000){
                        
	                    }else{
	                        hash[i].error = "Please enter a valid price greater than $20000.";
	                    }
                    }else{
                        hash[i].error = "Please enter a valid number in this field.";
                    }
                }else if(hash[i].type[j] == "cc" && cur_el.value!=""){
                    if(/^\d{1,}$/.test(cur_el.value) && cur_el.value.length>12 && cur_el.value.length<17){
                        
                    }else{
                        hash[i].error = "Please enter a valid cc number in this field.";
                    }
                }else if(hash[i].type[j] == "cvv" && cur_el.value!=""){
                    if(/^\d{1,}$/.test(cur_el.value) && cur_el.value.length>2 && cur_el.value.length<5){
                        
                    }else{
                        hash[i].error = "Please enter a valid cvv code in this field.";
                    }
                }else if(hash[i].type[j] == "email" && cur_el.value!=""){
                    var test = function (v){return v;}
                    if(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(cur_el.value)){
                        if(reg){
                        	ajaxDataScript("/ajaxCheckEmail.html", {email:cur_el.value}, "checkIsEmail(req.responseData, req.responseText,'"+cur_el.id+"');");
                        }
						if (!/.*?earthlink.net$/.test(cur_el.value))
						{
							
                        }else {
							//hash[i].error = "To receive your password add support@fizber.com to your address book.";
							//cur_el.value = '';
						}
                    }else{
                        hash[i].error = "Please enter a valid email address.";
                    }
                }else if(hash[i].type[j] == "float" && cur_el.value!=""){
                    
                    var test = function (v){return v;}
                    if(/^\d{1,}\.{0,1}\d{0,}$/.test(cur_el.value)){
            
                    }else{
                        hash[i].error = "Please enter a valid float number in this field.";
                    }
                }else if(hash[i].type[j] == "date" && cur_el.value!=""){
                   	var c_err = false;
                    var test = function (v){return v;}
                    if(/^\d{4}-\d{2}-\d{2}$/.test(cur_el.value)){
            			var vl = cur_el.value.split("-");
            			if(parseInt(vl[0])<1900 || parseInt(vl[1])>12 || parseInt(vl[2])>31 ){
            				c_err = true;
            			}
                    }else{
                        c_err = true;
                    }
                    if(c_err){
                    	hash[i].error = "Please enter a valid date in this field.";
                    }

                }else if(hash[i].type[j] == "address" && cur_el.value!=""){
					var vl  = cur_el.value;
					vl = vl.toLowerCase() 
                    if(vl.indexOf("call for") != -1 || (vl.indexOf("call") != -1 && (vl.indexOf("address") != -1 || vl.indexOf("realtor") != -1 || vl.indexOf("owner") != -1))){
                        hash[i].error = "Please enter a valid address in this field.";
                    }
                }else if(hash[i].type[j] == "words" && cur_el.value!=""){
                    var test = function (v){return v;}
                    if(/^[^\d]{1,}$/.test(cur_el.value)){
                        
                    }else{
                        hash[i].error = "Please enter a valid value in this field.";
                    }
                }else if(hash[i].type[j] == "req" ){
                    if(cur_el.value == ""){
                        hash[i].error = "This is a required field.";
                    }
                }else if(hash[i].type[j] == "req_select"){
                    if(cur_el.options[cur_el.selectedIndex].value == ""){
                        hash[i].error = "This is a required field.";
                    }
                }			
            }
			 
			 var c_el_id = "#" + cur_el.id;
			remErr(c_el_id);
            if(hash[i].error!= "" ){
				markErr(c_el_id, hash[i].error);
                pr_err = 1;
            }
        }
    }
    if (pr_err || isEmail){  
        if(!element){
            alert('Please check form for errors');
        }
        return false;
    }else{
        return true;
    }
}
function markErr(id, mess){
	 $("<div id='val_err'>").css('color','red').html(mess).insertBefore(id);
	 $(id).css('background', '#EFA3A0');
	 $(id).keydown( function(){$(this).css('background', '#FFFFFF')} );
}
function remErr(id){
	 if($(id).prev().attr('id')=='val_err'){
		$(id).prev().remove();
	}
}
