/*
 * GeneralValidation.js
 * @author RERA
 */

function setCaps(obj){
    var data = obj.value;
    obj.value = data.toUpperCase();
}

/*function validNumber()
{
    //alert("dsf");
    if(event.keyCode > 47 && event.keyCode <= 57)
		return true
	else
		return false
}*/

function percent()
{
    if((event.keyCode > 47 && event.keyCode <= 57)|| (event.keyCode == 46))
            return true
     else 
            return false
} 

function validNumberWithDeci()
{
    if( (event.keyCode == 46)||(event.keyCode > 47 && event.keyCode <= 57 ))
		return true
	else
		return false
}



function validPersonAge()
{
   if(event.KeyCode == 46)
      return true;
 
}  

function validNumberx()
{
    if( (event.keyCode==44) || (event.keyCode > 47 && event.keyCode <= 57))
		return true
	else
		return false
}

function validNumberd()
{
    if( (event.keyCode==46) || (event.keyCode > 47 && event.keyCode <= 57))
		return true
	else
		return false
}

//Validation to enter Only Character(Alpha) 
function validCharacter()
{
    if ((event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122))
		return true
	else
		return false
}

function validCharacterSpace() //Function to accept space & dot
{
    if ((event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122) || (event.keyCode == 32) || (event.keyCode == 46) )
		return true
	else
		return false
}


function validCharacterSpace1() //Function to accept space & dot & '
{
    if ((event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122) || (event.keyCode == 32) || (event.keyCode == 46)|| (event.keycode ==39) )
		return true
	else
		return false
}


function validAlphaNum() // Alphanumeric with space only.
{ 
	//alert(event.keyCode);
	if((event.keyCode > 47 && event.keyCode <= 57) || (event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122) || (event.keyCode == 32))
		return true
		else
		return false
}




function validAlphaNum1()  // Alphanumeric only
{ 
	if((event.keyCode == 32) || (event.keyCode > 47 && event.keyCode <= 57) || (event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122))
		return true
		else
		return false 
}


function validAlphaNum3()  // Alphanumeric with space only
{ 
	if((event.keyCode == 32) || (event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122))
		return true
		else
		return false 
}


function validAlphaNum2()  // Alphanumeric with space & comma(,).
{ 
	//alert(event.keyCode);
	if((event.keyCode > 47 && event.keyCode <= 57) || (event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122) || (event.keyCode == 32) || (event.keyCode == 44))
		return true
		else
		return false
}

function validAlphaNumx()
{ 
	if((event.keyCode==44) || (event.keyCode > 47 && event.keyCode <= 57) || (event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122))
		return true
		else
		return false
}

function validAlphaNumP() //Alpha Numeric with % symbol
{ 
	if((event.keyCode==37) || (event.keyCode==44) || (event.keyCode > 47 && event.keyCode <= 57) || (event.keyCode > 64 && event.keyCode <= 90) || (event.keyCode > 96 && event.keyCode <= 122))
		return true
		else
		return false
}

function validDate()
{
	    if(event.keyCode >= 47 && event.keyCode <= 57)
		return true
		else
		return false
}

//function enter Price max allows 8,2
function validPricex(object)
{
	var NumVal = object.value;
	var len = NumVal.length
	var found = 0;
	var countlen = 0;

	//allow only 8-digit
	if(len > 5 && NumVal > 9999999.99){
		alert('Value Exceeds Limit...!');
		return false
	}else{

		if(event.keyCode > 47 && event.keyCode <= 57 || event.keyCode == 46 || (event.keyCode==44))
		{
		  for(var ii=0; ii <= len; ii++)
		  {
			if(NumVal.indexOf(".",ii) >= 0)
			{
			   found = 1;
			}
		  }//for	
	  
	  		
		//Check for two digit after '.'
		  if(found >= 1 )
		  {
			 if(NumVal.indexOf(".",len-2) >= 0 && event.keyCode != 46 || (event.keyCode==44) || event.keyCode > 47 && event.keyCode <= 57 || event.keyCode == 46) return true
				else return false
		  }

		}//if
		else
		{
		   return false
		}
	}//else

 }//fun price()
 
 function validPhone()
{
    if(event.keyCode > 47 && event.keyCode <= 57 || event.keyCode == 45 || event.keyCode == 43 )
		return true
	else
		return false
}

//Function to validate official email address. 
//Dont change any condition below this line as it may not work

var invalidaddress=new Array()
invalidaddress[0]="hotmail"
invalidaddress[1]="rocketmail"
invalidaddress[2]="yahoo"
//invalidaddress[3]="gmail"
invalidaddress[4]="rediffmail"
invalidaddress[5]="zapak"
invalidaddress[6]="indiatimes"
invalidaddress[7]="aol"

function officeEmailValidation(fieldName)
{
var invalidcheck=0;
var str=fieldName.value;
var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(str))
     {
        var tempstring=str.split("@")
	tempstring=tempstring[1].split(".")
	  for (i=0;i<invalidaddress.length;i++)
	      {
		if (tempstring[0]!=invalidaddress[i])
		   {
                          
		   }
                else
		   {
		     invalidcheck=3;
	            }
		}
	  	 if (invalidcheck==3)
		    {								
		      fieldName.value="";
		      alert("Please enter official email-id");
                      fieldName.focus();                                                                                                                                
		      return false;
		    }
		 else
                      {
			return true;
		      }
       }
   else
       {
	        fieldName.value="";
                alert("Please enter official email-id");          
		fieldName.focus();
                return false;
	}
 }
 
//Validation to enter Email

function validEmail(object) {

    var checkString = object.value
    var validflag = true
   
	// do some preliminary checks on the data
    var newstr = "";
    var at = false;
    var dot = false;
    // if email address has a '@' character
    if (checkString.indexOf("@") != -1) {
      at = true; }
    // if email address has a '.' character
    if (checkString.indexOf(".") != -1) {
      dot = true; }
    // parse remainder of string
    for (var i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i + 1)
        if ((ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z")
                || (ch == "@") || (ch == ".") || (ch == "_")
                || (ch == "-") || (ch >= "0" && ch <= "9")) {
                newstr += ch;
                if (ch == "@") {
                    at=true; }
                if (ch == ".") {
                    dot=true; } } }
     if ((at == true) && (dot == true)) {return true}
    else {
          // display error message
          alert ("Please enter valid E-mail");
          object.value = "";
          object.focus();
          
	  return false; 
    }  
 }

 //Validate to trim

 function validTrim(object)
 {
     var str = object.value;
	 var len = str.length;
	// alert(str.trim())
	 alert(len);
 }

 function replaceQuotes(object)
 {
	var str = object.value;
	var len = str.length;
	var ii;
	var replaceStr = str;

	for(ii=0; ii < len; ii++)

	{
		alert(str.indexOf("'",ii));
		alert(str.lastindexOf("'",ii))
		
		str.indexOf("'",ii);


		replaceStr = str.replace("'","''");
		alert(replaceStr);			                
	}	
 }
 
 //Checking no charecters in onkeypress
function validNumber(e)
{
var keynum;
var keychar;
var numcheck;if(window.event) // IE
  {
  keynum = e.keyCode;
  }
else if(e.which) // Netscape/Firefox/Opera
  {
  keynum = e.which;
  }
keychar = String.fromCharCode(keynum);

 
//numcheck = /\d/;
numcheck = /[a-zA-Z,\.\/;'\\<>\?:"{}`~!@#$%^& \*()\-_+=\[\]]/;
if(!numcheck.test(keychar)==false)
    return false;

}
function validdateNumeric(object) {
    
    if(object.value != "") {
        var checkOK = "0123456789";
        var checkStr = object.value;
        var allValid = true;
        for (i = 0;  i < checkStr.length;  i++) {
            ch = checkStr.charAt(i);
            for (j = 0;  j < checkOK.length;  j++)
                if (ch == checkOK.charAt(j))
                    break;
                if (j == checkOK.length) {
                    allValid = false;
                    break;
                }
            }
            if (!allValid) {
                alert("Field should be numeric.");
                object.value="";
                object.focus();
                
                return false;
            }
            
        }
    }
 
//Function to allow hyphen
function validNumberwithHyphen(e)
{
var keynum;
var keychar;
var numcheck;if(window.event) // IE
  {
  keynum = e.keyCode;
  }
else if(e.which) // Netscape/Firefox/Opera
  {
  keynum = e.which;
  }
keychar = String.fromCharCode(keynum);

 
//numcheck = /\d/;
numcheck = /[a-zA-Z,\.\/;'\\<>\?:"{}`~!@#$%^& \*()\_+=\[\]]/;
if(!numcheck.test(keychar)==false)
    return false;

}

function validNumberHypen(e)
{
var keynum;
var keychar;
var numcheck;if(window.event) // IE
  {
  keynum = e.keyCode;
  }
else if(e.which) // Netscape/Firefox/Opera
  {
  keynum = e.which;
  }
keychar = String.fromCharCode(keynum);

 
//numcheck = /\d/;
numcheck = /[a-zA-Z,\.\/;'\\<>\?:"{}`~!@#$%^& \*()\_+=\[\]]/;
if(!numcheck.test(keychar)==false)
    return false;

}
// Clear a field
function clear_field(frm,field,data)
{
	var val = eval("document." + frm + "." + field + ".value");
	if(data == val)
	{
		eval("document." + frm + "." + field + ".value=''"); 
	}
}

//Function to validate mobile, fax and phone (format is 123-2222)
function validateFax_Phone_Mobile(object)
{
 
    if(obj.value.search(/\d{3}\-\d{4}/)==-1)
    {
      alert("The number you entered is not valid.\r\nPlease enter a number with the format 123-4567.");
      object.value="";
      object.focus();
      return false;
    }
    else
        {return true;}
        
}

//The below mentioned two functions is to validate the initial mobile number format (Example: +971-(0)50-222-2222)")
function validateMobileNumberInitial(object)
{
    if(object.value.length!=2)
        {
                alert("Invalid Mobile Number (Example: +971-(0)50-222-2222)");
                object.focus();    
                return false;
        }
}
//The below mentioned two functions is to validate the mobile number format (Example: +971-(0)50-222-2222)")
function validateMobileNumber(object)
{
        
      if(object.value.search(/-/)==-1)
        {
             if(object.value.length!=7)
                {
                alert("Invalid Mobile Number (Example: +971-(0)50-222-2222)");
                object.focus();
                return false;
                }
        }
     if(object.value.search(/-/)!=-1)
        {   
             if(object.value.search(/-/)!=3)
               {
                 alert("Invalid Mobile Number (Example: +971-(0)50-222-2222)");
                 object.focus();
                 return false;
               }
             if(object.value.search(/-/)==3 && object.value.length!=8)
               {
                 alert("Invalid Mobile Number (Example: +971-(0)50-222-2222)");
                 object.focus();
                 return false;
                }
        }      
       
}

//The below mentioned two functions is to validate the initial phone number format (Example: +971-(0)5-222-2222)")
function validatePhoneNumberInitial(object)
{
    if(object.value.length!=1)
        {
                alert("Invalid Phone Number(Example: +971-(0)5-222-2222)");
                object.focus();    
                return false;
        }
}
//The below mentioned two functions is to validate the phone number format (Example: +971-(0)5-222-2222)")
function validatePhoneNumber(object)
{
        
      if(object.value.search(/-/)==-1)
        {
             if(object.value.length!=7)
                {
                alert("Invalid Phone Number(Example: +971-(0)5-222-2222)");
                object.focus();
                return false;
                }
        }
     if(object.value.search(/-/)!=-1)
        {   
             if(object.value.search(/-/)!=3)
               {
                 alert("Invalid Phone Number(Example: +971-(0)5-222-2222)");
                 object.focus();
                 return false;
               }
             if(object.value.search(/-/)==3 && object.value.length!=8)
               {
                 alert("Invalid Phone Number(Example: +971-(0)5-222-2222)");
                 object.focus();
                 return false;
                }
        }      
       
}

//The below mentioned two functions is to validate the initial fax number format (Example: +971-(0)5-222-2222)")
function validateFaxNumberInitial(object)
{
    if(object.value.length!=1)
        {
                alert("Invalid Fax Number(Example: +971-(0)5-222-2222)");
                object.focus();    
                return false;
        }
}

//The below mentioned two functions is to validate the fax number format (Example: +971-(0)5-222-2222)")
function validateFaxNumber(object)
{
        
      if(object.value.search(/-/)==-1)
        {
             if(object.value.length!=7)
                {
                alert("Invalid Fax Number(Example: +971-(0)5-222-2222)");
                object.focus();
                return false;
                }
        }
     if(object.value.search(/-/)!=-1)
        {   
             if(object.value.search(/-/)!=3)
               {
                 alert("Invalid Fax Number(Example: +971-(0)5-222-2222)");
                 object.focus();
                 return false;
               }
             if(object.value.search(/-/)==3 && object.value.length!=8)
               {
                 alert("Invalid Fax Number(Example: +971-(0)5-222-2222)");
                 object.focus();
                 return false;
                }
        }      
       
}

/*Textarea Maxlength Validation */
    function checkLength(object, maximum) {
        var length = object.value.length;

        if (length > maximum) {
            alert('Cannot exceed ' + maximum
                + ' characters. There are currently ' + length + '.');
            object.focus;
            return false;
        }
        return true;
    }

/*Image upload validation*/

function CheckImageUploadfiles(object)

{

     var fup = object;

     var fileName = fup.value;

     var ext = fileName.substring(fileName.lastIndexOf('.') + 1);

     if(ext == "gif" || ext == "GIF" || ext == "JPEG" || ext == "jpeg" || ext == "jpg" || ext == "JPG")

      {

                return true;

      }        

      else

      {

                alert("Upload .gif or .jpg files only");

                 fup.focus();

                return false;

       }

}


/*Website Name Validation*/

function validateWebsite(object)
{
        //alert("before companyURL");
	if(object.value != "")
	{
		/*var url=object.value;
		var url1 = /[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
	   	if (!url1.test(url))
	   	{
	    	alert("Invalid \'Company URL\'");
	    	object.focus();
	    	object.select();
	    	return false; 
	    }	*/
		
		var mailids =object.value.toLowerCase();
					var mai = mailids;
					//var val = true;
					 var subs = mailids.substring(0,4)	;
					  var httpSubs = mailids.substring(0,7)	;
					  //alert("httpSubs==>"+httpSubs);
					 if((subs != "www.") &&  (subs != "WWW.") && (httpSubs!="http://") && (httpSubs!="HTTP://"))
					{
					 //alert("Website Address starts with www. or WWW. or http:// or HTTP://");
					 alert("Invalid \'Website URL\'");
					 object.focus();
						object.select();
					 return false;
					}
					if(mai.indexOf("@")>=0)
					{
						 alert('Invalid \'Company URL\'');
						 object.focus();
						 object.select();
					 	 return false;
					}
					var dot1 = mai.lastIndexOf(".");
					//alert("dot1==>"+dot1);
					var ext = mai.substring(dot1,mai.length);
					var dot = mai.indexOf(".");
					//alert("dot==>"+dot);
					
					var dom = dot1 - dot;
					//alert("Last dot :"+dot1+"First dot  : "+dot+" ext : "+ext);
					if((httpSubs!="http://")&& (httpSubs!="HTTP://"))
					{
							if (dot1==dot || dot1==(dot+1))
							{					
								alert('Invalid \'Website URL\'');
								return false;
							}
							var subBtwDot = mai.substring(dot+1,dot1);
							//alert("subBtwDot==>"+subBtwDot);
							if(subBtwDot.length == 1)
							{
								 alert('Invalid \'Website URL\'');
								 object.focus();
								 object.select();
								 return false;
							}
							if((mai.charAt(dot+1) == '.' ) || (mai.charAt(dot1-1) == '.'))
						   {
							  alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						   }
					 }
					 //=========================================================================>
					 else
					 {
						 var dot2 = mai.lastIndexOf(".");
						 var dot3 = mai.indexOf(".");
						 var afterExt="";
						 //alert("dot2==>"+dot2);
						 //alert("dot3==>"+dot3);
						 if(dot2!=-1)
						 {
							 	afterExt = mai.charAt(dot2+2);
						 		//alert("afterExt==>"+afterExt);
						 }
						  if((mai.charAt(dot3+1) == '.' ) || (mai.charAt(dot2-1) == '.'))
						  {
							  alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						  }
						 if ((dot2==dot3 || dot2==(dot3+1)) && (afterExt==""))
						 {					
								alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						 }
						
						 var ffslash = mai.lastIndexOf("/");
						 //alert("ffslash==>"+ffslash);
						 var subStr = mai.substring(ffslash+1,dot3);
						 //alert("subStr==>"+subStr);
						 if(subStr.length==1)
						 {
								alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						 }
						 if((subStr == "ww") || (subStr == "WW"))
						 {
								alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						 }
						 var subStrAfterwww =  mai.charAt(dot3);
						  //alert("subStrAfterwww==>"+subStrAfterwww);
						  if((subStr == "www") && (mai.charAt(dot3+2)==".") || (subStr == "WWW") && (mai.charAt(dot3+2)==".") )
						  {
							  alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						  }
						 if(((subStr == "www") && (subStrAfterwww == '.') && (dot2 == dot3)) || ((subStr == "WWW") && (subStrAfterwww == '.') && (dot2 == dot3)))
						 {
							 alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						 }
						 var checkwwww = mai.substring(ffslash+1,ffslash+4);
						// alert("checkwwww==>"+checkwwww);
						 if((checkwwww == "www") && (subStr.length !=3) || (checkwwww == "WWW") && (subStr.length !=3))
						 {
							 alert('Invalid \'Website URL\'');
								object.focus();
								object.select();
								return false;
						 }
					 }
					 //===============================================================================>
				var arr = new Array('.com','.net','.org','.biz','.coop','.info','.museum','.name','.pro'
									,'.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag','.ai','.al',
									'.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw','.az','.ba','.bb',
									'.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm','.bn','.bo','.br','.bs',
									'.bt','.bv','.bw','.by','.bz','.ca','.cc','.cd','.cf','.cg','.ch','.ci',
									'.ck','.cl','.cm','.cn','.co','.cr','.cu','.cv','.cx','.cy','.cz','.de',
									'.dj','.dk','.dm','.do','.dz','.ec','.ee','.eg','.eh','.er','.es','.et',
									'.fi','.fj','.fk','.fm','.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh',
									'.gi','.gl','.gm','.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy',
									'.hk','.hm','.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io',
									'.iq','.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
									'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li','.lk',
									'.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg','.mh','.mk',
									'.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt','.mu','.mv','.mw',
									'.mx','.my','.mz','.na','.nc','.ne','.nf','.ng','.ni','.nl','.no','.np',
									'.nr','.nu','.nz','.om','.pa','.pe','.pf','.pg','.ph','.pk','.pl','.pm',
									'.pn','.pr','.ps','.pt','.pw','.py','.qa','.re','.ro','.rw','.ru','.sa',
									'.sb','.sc','.sd','.se','.sg','.sh','.si','.sj','.sk','.sl','.sm','.sn',
									'.so','.sr','.st','.sv','.sy','.sz','.tc','.td','.tf','.tg','.th','.tj',
									'.tk','.tm','.tn','.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug',
									'.uk','.um','.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu',
									'.ws','.wf','.ye','.yt','.yu','.za','.zm','.zw','.co.in','.com.au','.com.uk'); 
	//var sp = mai.indexOf(" ");
		if((httpSubs!="http://")&& (httpSubs!="HTTP://"))
		{
				if((dom >= 1&&dom<75) && dot ==3 )
				{
					for(var i=0; i<arr.length; i++)
					{
						if(ext == arr[i])
						{
							val = true;
							break;
						} 
						else
						{
							val = false;
						}
					}
					if(val == false)
					{
						alert("Invalid \'Website URL\'");
						object.focus();
						object.select();
						return false;
					}
				}
				else
				{	
					alert("Invalid \'Website URL\'");
					object.focus();
						object.select();
					return false;
				}
		}
		//=================================================================================>
		else
		{		var fslash = mai.lastIndexOf("/");
				//alert("fslash==>"+fslash);
				var domHttp = dot2 - fslash;
				var strAfterExt = mai.substring(dot2,mai.length);
				//alert("strAfterExt==>"+strAfterExt);
				if((domHttp >= 1&&domHttp<75))
					{
						for(var i=0; i<arr.length; i++)
						{
							if(strAfterExt == arr[i])
							{
								//alert("equall")
								val = true;
								break;
							} 
							else
							{
								val = false;
							}
						}
						if(val == false)
						{
							alert("Invalid \'Website URL\'");
							object.focus();
						object.select();
							return false;
						}
					}
					else
					{	
						alert("Invalid \'Website URL\'");
						object.focus();
						object.select();
						return false;
					}
		}
	}
}



