/* This function will finds the length of the given string and if it exceeds
   length then it displays an appropriate message. 
   data = string to be checked for length.
   upperLeng = specified string upper length.
   lowerLeng = specified string lower length.

*/

function checkLength(data, upperLeng, lowerLeng)
{	
	if(data.length > upperLeng )
	{			
		
		alert("Length Of "+FieldName+" Should Not Be More Than "+upperLeng);		
		//data.focus();
		return false;
	}
	else if (data.length < lowerLeng)
	{	
		if (lowerLeng==1)			
			alert(FieldName+" Should Not Be Empty");
		else if (lowerLeng >1 && lowerLeng<11)
			alert(FieldName+" Atlest "+lowerLeng+" Character Long");
		//data.focus();
		return false;
	}
	else
		 return true;
}

/*
	it checks the number words have been entered in the given field
*/
function checkWordCount(data, upperLeng, lowerLeng)
{
	strValue = data.value
	wordCount = strValue.split(" ")

	if (wordCount.length > upperLeng)
	{
		alert("number of words should not be more than  "+upperLeng +" in the "+data.name)
	//data.focus()
		return false
	}
	else if(wordCount.length <= lowerLeng)
	{
		alert("number of words should be more than  "+lowerLeng +" in the "+data.name)
	//data.focus()
		return false
	}
	else
	 return true
}

/*
  This function checks whether the data has been sent is numeric or string
  if data is not numeric then it displays an appropriate error message.
*/

function checkPhone(data, leng)
{	//40,41,45,32,44 for (,),-," ",, characters respectively
	var num,i
	result=true
	num=data;	
	if(num.length > leng)
	{
		alert(FieldName+"  should not exceed "+leng+" digits");
		//data.focus()
		return false
	}
	else
	{
		for(i=0; i<num.length ; i++)
		{
			if((num.charCodeAt(i)!= 44 && num.charCodeAt(i)!= 32 && num.charCodeAt(i)!= 40 && num.charCodeAt(i)!= 41 && num.charCodeAt(i)!= 45 )&&( num.charCodeAt(i)<48 || num.charCodeAt(i)>57 ))
			{
				alert(FieldName+" is invalid")
				//data.focus()
				result = false		
				break;
			}
			else
			{
				result = true
			}
		}
		return result
	}
	
}

/*
  This function checks whether the data has been sent is numeric or string
  if data is not numeric then it displays an appropriate error message.
*/

function checkNumeric(data,leng)
{	
	var num,i
	num=data;
	result = true

	if(num.length > leng)
	{
		alert("Block should not exceed "+leng+" digits")
		return false
	}
	else
	{
		for(i=0; i<num.length ; i++)
		{
			if( (num.charCodeAt(i)<48 || num.charCodeAt(i)>57) )
			{
				alert(FieldName+" Should Be Numeric Only")
				//data.focus()
				result = false
				break;
			}
			else
			{
				result = true
			}
		}
		return result
	}
}


function checkEmail(str)
 {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
             
        }
		
		
function checkSpace(data){
	var Mystring=new String(data.value)
	var Idx=Mystring.search(" ") 
	if (Idx==-1){
	 return true}
	 else{
	 alert ("Please Remove The Space")
	 //data.focus()
	 return false
	 }
}

function SpecialCharEmail(data)
{	
  var chk1 = ",!#$%^*()-+=|\~`{}[]:'<>?/ ";
  
  for(var i=0;i<data.length;i++)

   {

    var ch=str.charAt(i);

    var rtn1=chk1.indexOf(ch);
	
    if (rtn1 != -1)

          {
                alert("Special characters are not allowed")
				return false;
          }

   }
   return true;
}

function checkURL(data)
 {
		strEmailId	=  data;
		//HERE EMAIL ID IS AN OPTIONAL FIELD IF NO DATA THEN NO VALIDATION.
		if (strEmailId == "")
		{
			return true // DONT VALIDATE EMAIL FIELD
		}

		 if(strEmailId.indexOf(".") > 1)
             {
		    //checks that last character is not "."
		    if( strEmailId.lastIndexOf(".") == data.length - 1)
                {  
			alert("Please correct URL")
			//data.focus()
			return false
		    }
		    else
		 	return true     
             }
             else
             {
                alert("Please correct URL")
		    //data.focus()	
		    return false	

             }
             
          }
          
          
function checkZip(data, leng)
{	//40,41,45,32,44 for " " characters respectively
	var num,i
	result=true
	num=data;	
	if(num.length > leng)
	{
		alert(FieldName+" Should Not Be Exceed "+leng+" Digits");
		//data.focus()
		return false
	}
	else
	{
		for(i=0; i<num.length ; i++)
		{
			if(num.charCodeAt(i)!= 32&&( num.charCodeAt(i)<48 || num.charCodeAt(i)>57 ))
			{
				alert(FieldName+" is invalid")
				//data.focus()
				result = false		
				break;
			}
			else
			{
				result = true
			}
		}
		return true
	}
	
}
function ValidImage(x)
{		
				var y=x;					
				var imglen=y.length;
				var imgdotpos=y.lastIndexOf(".");
				var imgext=y.substring(imgdotpos+1,imglen);			
				if((imgext!="jpg")&& (imgext!="gif")&&(imgext!="bmp")&& (imgext!="GIF")&&(imgext!="BMP")&& (imgext!="JPG")&& (imgext!="jpeg")&&(imgext!="JPEG"))
				{
					alert("For "+FieldName+" Please select .jpg Or .gif Or .bmp Or .jpeg Only")
					//x.select();
					//x.focus();
					return false;
				} 
				return true;
}
function ValidFile(x)
{		
				var y=x;					
				var imglen=y.length;
				var imgdotpos=y.lastIndexOf(".");
				var imgext=y.substring(imgdotpos+1,imglen);			
				if((imgext!="txt")&& (imgext!="csv")&&(imgext!="TXT")&& (imgext!="CSV"))
				{
					alert("For "+FieldName+" Please select .txt Or .csv Only")
					//x.select();
					//x.focus();
					return false;
				} 
				return true;
}
function ValidZip(x)
{		
				var y=x;					
				var imglen=y.length;
				var imgdotpos=y.lastIndexOf(".");
				var imgext=y.substring(imgdotpos+1,imglen);			
				if((imgext!="zip")&& (imgext!="ZIP"))
				{
					alert("For "+FieldName+" Please select .zip Only")
					//x.select();
					//x.focus();
					return false;
				} 
				return true;
}
//HANDLES THE KEYPRESS EVENT OF THE TEXTBOX.
function checkTBKeyPress(obj,tbtype,length,precision)
{
	//ADDITIONAL FEATURE to add
	//SPECIAL CHARATERS
	
	//ADD CHECKING FOR TEXTAREA
	
	if(obj.value.length >=length)
	{
		window.event.keyCode=0;
		return;
	}
		
	if(tbtype=="alphanumeric")
	{
		if((window.event.keyCode<65 || window.event.keyCode>90) && 
		   (window.event.keyCode<97 || window.event.keyCode>122) &&
		   (window.event.keyCode<48 || window.event.keyCode>57))
		{
			window.event.keyCode=0;
			return;
		}

		return;
	}

	if(tbtype=="alpha")
	{
		if((window.event.keyCode<65 || window.event.keyCode>90) && 
		   (window.event.keyCode<97 || window.event.keyCode>122))
		{
			window.event.keyCode=0;
			return;
		}
	}	
	
	if(tbtype=="float")
	{			
		if(window.event.keyCode==46)
		{			
			if(precision==0)
			{
				window.event.keyCode=0;
				return;
			}
							
			if(length-obj.value.length==1)
			{
				window.event.keyCode=0;
				return;
			}
			
			if(obj.value.length==0)
			{
				obj.value="0";
				return;
			}
			
			var ind=obj.value.indexOf(".");
			if(ind>=0)
				window.event.keyCode=0;
		}
		else if(window.event.keyCode<48 || window.event.keyCode>57)
		{
			window.event.keyCode=0;
			return;
		}

		var ind=obj.value.indexOf(".");
		//BUG: if we insert characters after .(dot) it doesn't allow to enter 
		//characters before dot even the total length doesn't exceeds
		//Solution : Use regular expression
		if(ind>=0)
		{
			var sstr=obj.value.substring(ind);
			if(sstr.length>precision)
				window.event.keyCode=0;
			return;
		}			
	}

	if(tbtype=="integer")
	{
		if(window.event.keyCode<48 || window.event.keyCode>57)
		{
			window.event.keyCode=0;
			return;
		}
	}		
	
}
	

