function validatePhone(ele) {
    var error = "";
    var stripped = ele.value.replace(/[\(\)\.\-\ ]/g, '');
	var vaildareacodes = new RegExp('(201)|(202)|(203)|(204)|(205)|(206)|(207)|(208)|(209)|(210)|(212)|(213)|(214)|(215)|(216)|(217)|(218)|(219)|(225)|(228)|(229)|(231)|(234)|(240)|(242)|(246)|(248)|(250)|(252)|(253)|(254)|(256)|(262)|(264)|(267)|(268)|(270)|(281)|(284)|(301)|(302)|(303)|(304)|(305)|(306)|(307)|(308)|(309)|(310)|(312)|(313)|(314)|(315)|(316)|(317)|(318)|(319)|(320)|(321)|(323)|(330)|(334)|(336)|(337)|(340)|(345)|(347)|(352)|(360)|(361)|(385)|(401)|(402)|(403)|(404)|(405)|(406)|(407)|(408)|(409)|(410)|(412)|(413)|(414)|(415)|(416)|(417)|(418)|(419)|(423)|(425)|(435)|(440)|(441)|(443)|(450)|(456)|(469)|(473)|(478)|(480)|(484)|(500)|(501)|(502)|(503)|(504)|(505)|(506)|(507)|(508)|(509)|(510)|(512)|(513)|(514)|(515)|(516)|(517)|(518)|(519)|(520)|(530)|(540)|(541)|(559)|(561)|(562)|(570)|(571)|(573)|(580)|(600)|(601)|(602)|(603)|(604)|(605)|(606)|(607)|(608)|(609)|(610)|(612)|(613)|(614)|(615)|(616)|(617)|(618)|(619)|(623)|(626)|(630)|(631)|(636)|(641)|(646)|(647)|(649)|(650)|(651)|(660)|(661)|(662)|(664)|(670)|(671)|(678)|(682)|(700)|(701)|(702)|(703)|(704)|(705)|(706)|(707)|(708)|(709)|(710)|(712)|(713)|(714)|(715)|(716)|(717)|(718)|(719)|(720)|(724)|(727)|(732)|(734)|(740)|(757)|(758)|(760)|(763)|(765)|(767)|(770)|(773)|(775)|(780)|(781)|(784)|(785)|(786)|(787)|(800)|(801)|(802)|(803)|(804)|(805)|(806)|(807)|(808)|(809)|(810)|(812)|(813)|(814)|(815)|(816)|(817)|(818)|(819)|(828)|(830)|(831)|(832)|(843)|(845)|(847)|(850)|(856)|(858)|(859)|(860)|(863)|(864)|(865)|(866)|(867)|(867)|(867)|(868)|(869)|(870)|(876)|(877)|(880)|(881)|(882)|(888)|(900)|(901)|(902)|(902)|(903)|(904)|(905)|(906)|(907)|(908)|(909)|(910)|(912)|(913)|(914)|(915)|(916)|(917)|(918)|(919)|(920)|(925)|(931)|(936)|(937)|(940)|(941)|(949)|(952)|(954)|(956)|(970)|(971)|(972)|(973)|(978)|(979)','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.";
    }
	}
	if (ele.name == "C_HomePhone1") {
		if (vaildareacodes.test(ele.value) == false)
		{
			error = " invalid area code!";
		}
	}
    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 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+" is 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";
				  }
			}
	 } // end if
	} // end for i
  
  if (Err) alert("ERROR:\n"+Err);
  return (Err) ? false : true;	  
}

//====================================================================================================================
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;

}
