function validateInput(frm, mask)
{
	var str=""
	var msg
	
	
	//Count the number of form elements
	var FrmLen = frm.elements.length;
	
	//Get the validation mask string
	for (var i = 1; i < FrmLen; i++)
	{
		//obtain the validation mask character
		mask=frm.elements[i].name
		maskarr = mask.substring(0,1)
		
		//Initialise local variables
		var valdrop = 1;
		var valtext = 1;
		var valnum = 1;
		var valtelenum = 1;
		var valemail = 1;
		
		if (maskarr == "t")
		{
			valtext = validateText(frm.elements[i].value,i);
			
		}
	   if (maskarr == "n")
		{
			valnum = validateNum(frm.elements[i].value,i);
		}
		if (maskarr == "p")
		{
			//alert("hi")
			valtelenum = validateTeleNum(frm.elements[i].value,i);
		}
		
		if (maskarr == "e")
		{
			valemail = validateEmail(frm.elements[i].value);
		}
		if (maskarr == "s")
		{
			referby=frm.elements[39].options[frm.elements[39].selectedIndex].value //used only to check for referby value since we have no option passing it for all textboxes
			valdrop = validateDrop(frm.elements[i].value,i,referby);
		}
		
		if (! valtext)
		{
			name=checkname(i)
			//alert("Please enetr a valid value for "+name);
			putFocus(frm.elements[i]);
			return false;
		}
		if (! valnum)
		{
			name=checkname(i)
			//alert("Please enter a valid number as"+name);
			putFocus(frm.elements[i]);
			return false;
		}
		if (! valtelenum)
		{
			//name=checkname(i)
			//alert("Please enter a valid telephone or extension number");
			putFocus(frm.elements[i]);
			return false;
		}
		if (! valemail)
		{
			name=checkname(i)
			alert("The Email address you have entered is invalid");
			putFocus(frm.elements[i]);
			return false;
		}
		if (! valdrop)
		{
			name=checkname(i)
			alert("Please select  value for"+name+" from dropdown");
			frm.elements[i].focus();
			return false;
		}
	}
	//frm.submit();	
	
}

// function to validate text
function validateText(s,msg)
{

	var str=s
	var strTemp=str
	
	//alert(strTemp.length)
	
	
	strTemp=strTemp.replace(/ /g , ""); //to remove space
	var strTemp1=str
	
		if (str == "" || strTemp=="" )
		{ 
			alert("Please enter "+msg+" !");
			return false; 
		}
		if(strTemp.length < 3) 
		{
			alert(msg+" should be min three char")
			return false; 
		}	
	
		var flag=0;
		//alert(strTemp)
		for(i=0;i < strTemp.length;i++)
		{
			
			var s=strTemp.charAt(i)
			var d=asc(s,2)
			if(d==1) break;
		}
		//alert(strTemp1.charAt(0))
		if(strTemp1.charAt(0)==" " ||strTemp1.charAt(0)=="_" ||strTemp1.charAt(0)=="'"  ) d=1
		if(d==1)
		{
			alert(msg+" contains invalid characters")
			return false; 
		}
	
}

function asc(each_char,x)
{
   var n = 0
   var char_str = charSetStr(x)
			
      for (k = 0; k < char_str.length; k++)
		{
		   if (each_char == char_str.substring(k, k+1))
		    {
			n=1
			break
		    }
		 }
      return n
}

function charSetStr(x)
{
	var str
	str=' !"#$%&'+ '()*+,-./:;<=>?@[\\]^`{|}~§ '
	return str
}
function validateNum(s,i)
{
	//Test to see if the value converts to a number
	
	if (isNaN(s) == true || s=="")
	{
		return false;
	}
	return true;
}

//Telephone Number validation function
function validateTeleNum(s)
{
	
	var msg;
	if (s.length > 0)
	{
		for (i = 0;  i < s.length;  i++)
 		{
		    ch = s.charAt(i);
			if(! own_instring(ch))
			{
				alert("Please enter proper telephone number")
				//alert("kl"+msg)
			return false;
			}
		}
		return true;
	}
	
	return false;
}

//E-Mail address validation function
function validateEmail(s)
{

	if(s=="")
	{
		alert("Please enter email");
		return false;
	}
	else
	{

		for(i=0;i<s.length;i++)
		{
			if(s.charAt(i)==" ")
			{
				alert("Please do not enter spaces in email address");
				return false;
			}
		}
	}
	
	//Test for a string
	if (s.length > 0)
	{
			// Return false if e-mail field does not contain a '@' and '.' .
			if (s.indexOf ('@',0) == -1 || s.indexOf ('.',0) == -1)
      				{
      				alert("Please enter valid email");
				return false;
				}
			
		
		return true;
	}
	else
	{
		alert("Please enter Email")
	return false;
	}
}

//to check if drop down values have been selected
function validateDrop(s,i)
{
	if(s==0)
	{
		return false;
	
	}
	return true;
}

function own_instring(c)
{
	var checkOK = "0123456789-+-. ()\t\r\n\f";
	var ret  = false;

  		for (j = 0;  j < checkOK.length;  j++)
		{
      			if (c != checkOK.charAt(j))
			{
			continue;
			}
			else
			{
			ret = true;
			break;
			}
		}
	return ret;
}

//String split function to accomodate JScripts lack of JavaScripts split function
function own_split(arr, str, delim)
{
	//Initialise local variables
	var pos = 0;
	var num = 0;
	var start = 0;
	
	//Loop while there are characters in the string
	while (pos < str.length)
	{
		//Loop while there are delimiters in the string
		while((str.substring (pos, pos+1) != delim) && (pos < str.length))
		{
		pos++;
		}
		//Add the new characters to the output array
		arr[num] = str.substring(start,pos);
		num++;
		start = pos+1;
		pos++;
	}
}