function validatePhone(ele) {
    var error = "";
    var stripped = ele.value.replace(/[\(\)\.\-\ ]/g, '');    
   if (ele.value == "") {
    } else if (isNaN(parseInt(stripped))) {
        error = " should be numeric.";
    } else 
	if (ele.name != "C_HomePhone3") {
	if (!(stripped.length == 3)) {
        error = " should be 3 Characters.";
    }
	} else {
			if (!(stripped.length == 4)) {
        error = " should be 4 Characters.";
    }
	}
    return error;
}
function isZip(s) 
{
		var ziperror = "";
     // Check for correct zip code
     reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);

     if (!reZip.test(s)) {
          return false;
     }
return true;
}
function evBal(s) 
{
	var error = "";
	if (isNaN(parseInt(s))) {
        error = " should be numeric, like: 100000";
	}
return error;
}
//
//
//
function v(){
  var SkipFields = "O_Age_Spouse";
  var frm = document.forms[0];
  var fLen = frm.length;
  var sFields = SkipFields.split(/,/);
  var ele;
  var Err="";
  var phoneerror="";
  var eDisplayName;
  var Xpr = /_/g;
  var tXpr = /(submit)|(button)|(hidden)|(reset)/;
  var Und = /undefined/i; 
  
  var errorcounter=0;
   for (i=0;i<fLen;i++){
    ele = frm.elements[i];
	if (!tXpr.test(ele.type)) {	 
	  if ( !in_array(ele.name,sFields) && ele.value=="") {
	   eDisplayName = ucwords(ele.name.replace(Xpr," ")); 
	   var brokenstring=ele.name.split("_");
	   eDisplayName = brokenstring[1];
	   Err += eDisplayName+" is required.\n";
	   errorcounter++;
	   if (errorcounter > 5) { Err = eDisplayName+" and others are required. (Muliple Errors Detected)\n "; } 
	  } // end if
	  	   	   if ((ele.name == "C_Email") && (ele.value != "") ) {
		 	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;  
				if(reg.test(ele.value) == false) {
				var brokenstring=ele.name.split("_");
	   			eDisplayName = brokenstring[1];
				Err += eDisplayName+" is not a valid Email Address.\n";
				}
		   }
			if ((ele.name == "C_HomePhone1") || (ele.name == "C_HomePhone2") || (ele.name == "C_HomePhone3")) {
				
				phoneerror = validatePhone(ele);
					if (phoneerror != "") {
				  var brokenstring=ele.name.split("_");
	   			  eDisplayName = brokenstring[1];
				  Err += eDisplayName+phoneerror+"\n";
					}
			}
			if (ele.name == "A_Zip") {
				  zip = isZip(ele.value);
				  if (zip != true ) {
				  var brokenstring=ele.name.split("_");
	   			  eDisplayName = brokenstring[1];
				  Err += eDisplayName+" should be a 5 digit valid postal code \n";
				  }
			}
			if ( (ele.name == "P_MortgageExisting" || ele.name == "P_ValueEstimated") && (ele.value != "") ) {
				  balerror = evBal(ele.value);
				  if (balerror != "" ) {
				  var brokenstring=ele.name.split("_");
	   			  eDisplayName = brokenstring[1];
				  Err += eDisplayName+balerror+"\n";
				  }
			}
			if ( (ele.name == "O_Age" || ele.name == "O_Age_Spouse") && (ele.value != "") ) {
				  if(isNaN(parseInt(ele.value)))
				  {
					  balerror = " Should be a 2 digit number like: 62";
					  var brokenstring=ele.name.split("_");
					  eDisplayName = brokenstring[1];
					  Err += eDisplayName+balerror+"\n";
				  }
			}
	 } // end if
	} // end for i
  
  if (Err) { 
  alert("ERROR:\n"+Err); //kill script for lack of validation on existing objects
  } 
  return (Err) ? false : true;	  
}

//====================================================================================================================
function getFileName() {
//this gets the full url
var url = document.location.href;
//this removes the anchor at the end, if there is one
url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#"));
//this removes the query after the file name, if there is one
url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?"));
//this removes everything before the last slash in the path
url = url.substring(url.lastIndexOf("/") + 1, url.length);
//return
return url;
}

function ucwords(str) {
 return (str + '').replace(/^(.)|\s(.)/g, function ($1) {
        return $1.toUpperCase();    });

}

function in_array (needle, haystack, argStrict) {
 var key = '', strict = !!argStrict; 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {                return true;
            }
        }
    }
     return false;

}
