function ltrim(s){
 return s.replace(/^\s*/,"")
} 
function rtrim(s){
 return s.replace(/\s*$/,"");
} 
function trim(s){
 return rtrim(ltrim(s));
}

function formvalidation(){
	var email_check = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var alpha_num_check = /^([a-zA-Z0-9\s])+$/;
	var alpha_check = /^([a-zA-Z\.\s])+$/;
	var phone_check= /\(?\d{2}\)?([-\/\.])\d{3}\1\d{4}/;
	var website_check= /^(http|ftp):\/\/(www\.)?.+\.(com|net|org)$/;
	var dob='';	
		if(trim(document.getElementById('userName').value)==''){
			alert('Please enter your username / Login ID');
			document.getElementById('userName').focus();
			return false;
		}else if (!isNaN(document.getElementById('userName').value)){
			alert('Please enter only alpha numeric character');
			document.getElementById('userName').value='';
			document.getElementById('userName').focus();
			return false;
		}else if(!alpha_num_check.test(document.getElementById('userName').value)){
			alert('Please enter only alpha numeric character');
			document.getElementById('userName').focus();
			return false;
		}else if(document.getElementById('userName').value.length < '3' || document.getElementById('userName').value.length>'15'){
			alert('Please enter username atleast 3 to 15 character');
			document.getElementById('userName').focus();
			return false;
		}else if(trim(document.getElementById('password').value)==''){
			alert('Please enter your password');
			document.getElementById('password').focus();
			return false;
		}else if(document.getElementById('password').value.length<'4' || document.getElementById('password').value.length>'15'){
			alert('Please enter password atleast 4 to 15 character');
			document.getElementById('password').focus();
			return false;
		}else if(trim(document.getElementById('repassword').value)==''){
			alert('Please enter your retype password');
			document.getElementById('repassword').focus();
			return false;
		}else if(document.getElementById('repassword').value!=document.getElementById('password').value){
			alert('Please enter correct confirm password');
			document.getElementById('repassword').focus();
			return false;
			
		}else if(chktrim(document.getElementById('hintQuestion').value)==''){
			alert('Please enter your Hint Question');
			document.getElementById('hintQuestion').focus();
			return false;
		}else if(chktrim(document.getElementById('hintAnswer').value)==''){
			alert('Please enter your hint answer');
			document.getElementById('hintAnswer').focus();
			return false;		
		}
		
		
		if(trim(document.getElementById('firstname').value)==''){
			alert('Please enter your first name');
			document.getElementById('firstname').focus();
			return false;
		}		
		
		if(!alpha_check.test(document.getElementById('firstname').value)){
			alert('Please enter your first name in alphabatic format');
			document.getElementById('firstname').focus();
			return false;
		}
		
		if(trim(document.getElementById('lastname').value)==''){
			alert('Please enter last name');
			document.getElementById('lastname').focus();
			return false;
		}
		if(!alpha_check.test(document.getElementById('lastname').value)){
			alert('Please enter your last name in alphabatic format');
			document.getElementById('lastname').focus();
			return false;
		}
		
		if(trim(document.getElementById('fathername').value)==''){
			alert("Please enter your Father's / Husband Name");
			document.getElementById('fathername').focus();
			return false;
		}
		
		if(document.getElementById('date').value==''){
			alert("Please select day of birthday");
			document.getElementById('date').focus();
			return false;
		}
		if(document.getElementById('month').value==''){
			alert("Please select month of birthday");
			document.getElementById('month').focus();
			return false;
		}
		if(document.getElementById('year').value==''){
			alert("Please select year of birthday");
			document.getElementById('year').focus();
			return false;
		}
		
		
		
		if(trim(document.getElementById('emailid').value)==''){
			alert('Please enter your Email ID');
			document.getElementById('emailid').focus();
			return false;
		}else if(!email_check.test(document.getElementById('emailid').value)){
			alert('Please enter correct Email ID');
			document.getElementById('emailid').focus();
			return false;
		}else if(trim(document.getElementById('alternateemailid').value)==''){
			alert('Please enter your Alternate  Email ID');
			document.getElementById('alternateemailid').focus();
			return false;
		}else if(!email_check.test(document.getElementById('alternateemailid').value)){
			alert('Please enter correct Alternate  Email ID');
			document.getElementById('alternateemailid').focus();
			return false;
		}else if(trim(document.getElementById('phonenumber').value)==''){
			alert('Please enter your phone number');
			document.getElementById('phonenumber').focus();
			return false;
			
		}else if(document.getElementById('phonenumber').value.length > 11 || isNaN(document.getElementById('phonenumber').value)){
			alert('Please enter your Valid phone number.');
			document.getElementById('phonenumber').focus();
			return false;
		}else if(trim(document.getElementById('mobilenumber').value)==''){
			alert('Please enter your mobile number');
			document.getElementById('mobilenumber').focus();
			return false;
			
		}else if(document.getElementById('mobilenumber').value.length > 11 || isNaN(document.getElementById('mobilenumber').value)){	
			alert('Please enter your mobile number in numeric format');
			document.getElementById('mobilenumber').focus();
			return false;
		}else if(trim(document.getElementById('address1').value)==''){
			alert('Please enter your postal address');
			document.getElementById('address1').focus();
			return false;
		}else if(trim(document.getElementById('landmark').value)==''){
			alert('Please enter your Address landmark');
			document.getElementById('landmark').focus();
			return false;
		}else if(trim(document.getElementById('state').value)==''){
			alert('Please enter your state');
			document.getElementById('state').focus();
			return false;
		}else if(trim(document.getElementById('city').value)==''){
			alert('Please enter your city');
			document.getElementById('city').focus();
			return false;
		/*}else if(document.getElementById('cityid').value=='other' && document.getElementById('othercity').value==''){
			alert('Please enter your other city');
			document.getElementById('othercity').focus();
			return false;*/
		}else if(trim(document.getElementById('zip').value)==''){
			alert('Please enter your Zip/Postal code');
			document.getElementById('zip').focus();
			return false;
		}else if(isNaN(document.getElementById('zip').value) && parseInt(document.getElementById('zip').value)==0){
			alert('Please enter correct Postal code');
			document.getElementById('zip').focus();
			return false;
		}else if(trim(document.getElementById('paddress1').value)==''){
			alert('Please enter your Permanent address');
			document.getElementById('paddress1').focus();
			return false;
		}
		registernowprocess('errorMsgID');
}

function sameaddress(k,tpy){
	if(tpy=='1'){
		if(k.checked){
			if(document.getElementById('state').value!=''){
				document.getElementById('paddress1').value=document.getElementById('address1').value;
				document.getElementById('pstate').value=document.getElementById('state').value;
				document.getElementById('pcity').value=document.getElementById('city').value; 
				document.getElementById('pzip').value=document.getElementById('zip').value; 
			}else{
				alert("Please select postal address state");
				document.getElementById('sameabove').checked=false;
			}
		}else{
			document.getElementById('paddress1').value='';
			document.getElementById('paddress2').value='';
			document.getElementById('pcity').value='';
			document.getElementById('pstate').value='';
			document.getElementById('pzip').value='';
		}
	}

}

/*function to remove the space from the field*/
function chktrim(inputString) {
     if (typeof inputString != "string") { return inputString; }
     var retValue = inputString;
     var ch = retValue.substring(0, 1);
     while (ch == " ") { 
       retValue = retValue.substring(1, retValue.length);
       ch = retValue.substring(0, 1);
     } 
     ch = retValue.substring(retValue.length-1, retValue.length);
     while (ch == " ") { 
        retValue = retValue.substring(0, retValue.length-1);
        ch = retValue.substring(retValue.length-1, retValue.length);
     }
     while (retValue.indexOf("  ") != -1) { 
        retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
     }
     return retValue; 
}

function str_replace(haystack, needle, replacement) {
    var temp = haystack.split(needle);
    return temp.join(replacement);
}





var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	if (trim(dtStr) == "")
	{
		return false;
	}
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : dd-mm-yyyy");
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
	return true
}
