﻿ //The following are the regular expression used to validate form fileds
	var regFirst    = /[0-9\(\)\<\>\,\;\:\\\/\"\[\]\`\~\!\@\#\$\%\^\&\*\_\-\+\+\\\|\{\}\.\<\>\?]/;
	var regMiddle   = /[\(\)\<\>\,\;\:\\\/\"\[\]\`\~\!\#\$\%\^\&\*\+\+\\\|\{\}\<\>\?]/;
	var regLast     =  /[\(\)\<\>\,\;\\\/\"\[\]\ \`\~\!\@\#\$\%\^\&\*\_\-\+\+\\\|\{\}\<\>\?]/;
	var addFirst    = /[0-9\(\)\<\>\,\;\"\[\]\ \`\~\@\!\$\%\^\&\*\-\{\}\.\<\>\?]/;
	var addMiddle   = /[\(\)\<\>\;\:\"\[\]\`\~\!\$\%\^\&\*\{\}\<\>\?]/;
	var addLast     =  /[\(\)\<\>\;\:\\\/\"\[\]\`\~\!\$\%\^\&\*\\\|\{\}\<\>\?]/;
	var regMail     = /[\(\)\<\>\,\;\:\\\/\"\[\]\ \`\~\!\#\$\%\^\&\*\-\+\+\\\|\{\}\<\>\?]/;
	var regMail1    = /[\(\)\<\>\,\;\:\\\/\"\[\]\ \`\~\!\#\$\%\^\&\*\+\+\\\|\{\}\<\>\?]/;
	var regName     = /[\(\)\<\>\,\;\:\\\/\"\[\]\ \`\~\!\@\#\$\%\^\&\*\_\-\+\+\\\|\{\}\.\<\>\?]/;
	var regex       = /^[0-9+-]+[0-9+ -]+([0-9+ -])+[0-9+-]$/;
	var regOrg      = /^([0-9]{6}[\-]{1}[0-9]{4})$/;
	var regPostal   = /^([0-9]{3}[\ ]{1}[0-9]{2})$/;

//This  function used for removing empty spaces and tab charecters	
function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

//This funnction for validating user name fields
function validateUsername(src) 
{
	return(regName.test(src));
}
	
//This  function used for validating email fields
function validateMail(src)
{
	src = trim(src);
	at_occ = src.split('@');
	dot_occ = src.split('.');
	if((at_occ.length==2) && (dot_occ.length<=5))  {
		var first = src.charAt(0);
		var middle = src.substring(1,(src.indexOf('@')));
		var lst=middle.charAt(middle.length-1);
		if (middle.length==0) {
				middle="s";
		}		
		var len_middle=middle.length;
		dot_occ=middle.split('.');
		if(dot_occ.length<=2) {
			if((!(regFirst.test(first))) && (!(regMail.test(middle))) && middle.length!=(middle.indexOf('.')+1)) {
				middle = src.substring((src.indexOf('@'))+1,src.length);
			    first = middle.charAt(0);
				last = middle.charAt(middle.length-1);
				hyp_occ = middle.split('--');
				dot_occ = middle.split('.');
				dt = middle.indexOf('.');
					if((dot_occ.length==2 || dot_occ.length==3)&& (!(regMail1.test(middle))) && (first!='.') && (last!='.') && hyp_occ.length<2 && (!((middle.charAt(dt)=='.') && (middle.charAt(dt+1)=='.') ))) {
						if(dot_occ.length==2)	{
							var temp = dot_occ[0].charAt(dot_occ[0].length-1);
								if(lst == '_'  || last == '_' || temp == '_' || lst == '-'  || last == '-' || temp == '-' || first == '_' || first == '-'  ) {
									return false
								}	
								else {
									return true; 
								}	
						}
						if(dot_occ.length==3) {
							var temp = dot_occ[0].charAt(dot_occ[0].length-1);
							var temp1 = dot_occ[1].charAt(dot_occ[1].length-1);
								if(lst == '_'  || last == '_' || temp == '_' || temp1 == '_' || lst == '-'  || last == '-' || temp == '-' || temp1 == '-' || first == '_' || first == '-')  {
									return false
								}	
								else  {
									return true; 
								}	
						}
					}      
					else {
						return false;     
					}	
			} 
			else  {
				return false;
			}	
		}
		else {
			return false;
		}	
	} 
	else  {
		return false; 
	}	
}

function validateSSN(sSSN) 
{
  var regex =(/^\d+$/);
   
  sSSN = sSSN .replace(/-/,'')
    if(regex.test(sSSN))
	 if (sSSN.length==10) 
    {
        iLast=sSSN.charAt(9);
	   if (!(iLast != '8' && iLast != '9' && iLast != '0'))
		{
			var day=parseInt(sSSN.substring(0,2));
			var month=parseInt(sSSN.substring(2,4));
			var ye=parseInt(sSSN.substring(4,6));
			if (month<=12)
			{
				var NoOfDays=0;
				if(month==2)
				{
					NoOfDays=28;
					if((ye%4==0))
					NoOfDays=29;
      
				} 
				if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)
					NoOfDays=31;
				if(month==4 || month==6 || month==9 || month==11)
					NoOfDays=30;
			    if(NoOfDays<day)
					return false;
				else
					return true;
    
			}
			else
				return false;
      }
	  else
			return false;
	}
	else
		return false;
    else
		return false;
  
  
}


//This funnction for validating password fields, It can be any charecter but the should not be less than 4
function validatePass(src) 
{
	  src=trim(src);		
	  if(src.length<4) { 
		 return false;
	  } else {
		return true;
	  } 
  
}

function trySubmitLogin(Sender,lang) 
{
    if(lang == "se")
	 {
		var err_fill_email    =  'Fyll i e-post\n';
		var err_inc_email     =  'Ange korrek e-post\n';
		var err_fill_uname    =  'Fyll i användarnamn\n';
		var err_inc_uname     =  'Ange korrek användarnamn\n'
		var err_fill_ssn      =  'Fyll i lösenord\n';
		var err_inc_ssn       =  'Ange korrek lösenord\n';
		var err_fill_pwd      =  'Fyll i lösenord\n';
		var err_inc_pwd       =  'Ange korrek lösenord\n';
	}
	else  {
		var err_fill_email    =  'Enter email \n';
		var err_inc_email     =  'Enter valid email\n';
		var err_fill_uname    =  'Enter username\n';
		var err_inc_uname     =  'Enter valid username\n'
		var err_fill_ssn      =  'Enter ssn\n';
		var err_inc_ssn       =  'Enter valid ssn\n'
		var err_fill_pwd      =  'Enter password\n';
		var err_inc_pwd       =  'Enter valid password\n'
	}
    var errorMessage = '';
	var inputName = '';
	for(var i = 0 ; i < Sender.elements.length;i++) 
    {
		if(Sender.elements[i].type=="text")
		{
			inputName = Sender.elements[i].name;
		}
    }
    if ( inputName == 'loginfield_1')
    {
	  	//Checking the email field value is null 
  		if((trim(Sender.loginfield_1.value)).length==0)
		{
			errorMessage = errorMessage+err_fill_email;
		}
		//Checking the email field format
		else if(!validateMail(Sender.loginfield_1.value))
		{
			 errorMessage = errorMessage+err_inc_email;
		}
    
    }
    if ( inputName == 'loginfield_2')
    {
		//Checking the user name field value is null 
  		if((Sender.loginfield_2.value).length==0)
		{
			errorMessage = errorMessage+err_fill_uname;
		}
		//Checking the user name field format
		else if(!validateUsername(Sender.loginfield_2.value))
		{
			errorMessage = errorMessage+err_inc_uname;
		}
    
    }
    if ( inputName == 'loginfield_7')
    {
		//Checking the ssn field value is null 
  		if((Sender.loginfield_7.value).length==0)
		{
			errorMessage = errorMessage+err_fill_ssn;
		}
		//Checking the ssn field format
		else if(!validateSSN(Sender.loginfield_7.value))
		{
			errorMessage = errorMessage+err_inc_ssn;
		}
    
    }
    if(document.getElementById('password') != null) {
		//Checking the password field value is null 
  		if((Sender.loginfield_100.value).length==0)
		{
			errorMessage = errorMessage+err_fill_pwd;
		}
		//Checking the password field format
		else if(!validatePass(Sender.loginfield_100.value))
		{
			errorMessage = errorMessage+err_inc_pwd;
	    }
    }
	//Here checking the validation is successfull or not by checking the value in "errorMessage" variable
			if (errorMessage == '')
			{
				//Sender.elements['forgotpassword'].value = '';
				return true;
					
			}      
			else
			{      
				alert(errorMessage);
				return false;
			}	
			
			
	}
