function validateInput(columnName,objElement,dataValue,dataType){
	
	//Initialise local variables
	var valtext = 1;
	var valnum = 1;
	var valemail = 1;
    var valdate = 1;
    var valdrop = 1;
    var valnumNull = 1;
    var valMoney = 1;
        
	maskarr = dataType
	
	//Test field against validation mask character
	if (maskarr == "T")
	{
		valtext = validateText(dataValue);
	}
	if (maskarr == "D")
	{
		valdate = validateDate(dataValue);
	}
	if (maskarr == "N")
        {
         valnum = validateNum(dataValue);
        }
    if (maskarr == "E")
	{
		valemail = validateEmail(dataValue);
	}
	if (maskarr == "X")
	{
		valnumNull = validateNumNULL(dataValue);
		alert(valnumNull)
	}
	if (maskarr == "M")
	{
		valMoney = validateMoney(dataValue);
	}

	//If the validation fails prompt the user
	if (! valtext)
	{
		alert(columnName + " cannot be blank!");
		objElement.style.backgroundColor="Red";
		return false;
	}
	if (! valnum)
        {
                alert("Please enter a valid number less than 100 upto 5 decimal places for " + columnName);
                objElement.style.backgroundColor="Red";
                return false;
        }
        
     if (! valnumNull)
        {
                alert("Please enter a valid number for " + columnName);
                objElement.style.backgroundColor="Red";
                return false;
        }  
     if (! valMoney)
        {
                alert("Please enter a valid money value for " + columnName);
                objElement.style.backgroundColor="Red";
                return false;
        }   

	if (! valdate)
	{
		alert("The date you have entered is invalid");
		objElement.style.backgroundColor="Red";
		return false;
	}
	if (! valemail)
	{
		alert("The Email address you have entered is invalid");
		objElement.style.backgroundColor="Red";
		return false;
	}
	if (! valdrop)
	{
		alert("Please select the Value from pull down");
		objElement.style.backgroundColor="Red";
		//frm.elements[i].selectedindex = 0;
		return false;
	}
	
		return true;
}



//Text validation function
function validateText(s)
{
        //test for a string
        if (s.length > 0)
        {
                return true;
        }
        return false;
}


//check checkBox
function validateCheckBox(s) 
{
answer=false;
	for (i=0; i<s.length;i++)
	{
		if(s[i].checked==true)
			{
				answer = true
				return true;
				//alert("asdfa")
			}
	}
	
	if(answer == false)
	{
		return false;
	}
}


//Number validation function
function validateNum(s)
{
        //Test to see if the value converts to a number
        
       // var i;
        founderror = true;
        
        	if(isNaN(s) == false)
				{
					if (s < 0 || s > 100) founderror=true
					else founderror = false;
				}
			else
				{
					return false;
				}
			if(s.indexOf ('.',0) != -1){
				var decimalPlaces = s.substring((s.indexOf ('.',0)+1),s.length)
				//alert(decimalPlaces.length)
				if (decimalPlaces.length > 5)
					//alert("Please enter number upto 2 decimal places");
					return false;
				else
					//alert(decimalPlaces)
					founderror = false;
			}
				
//		for (var i = 0; i < s.length; i++)
//		{
//			temp = s.substring(i,i+1)
			
			//if (parseFloat(temp) >= 0)
//			if((isNaN(temp))==false)
//				{
//					founderror = false;
//				}
//			else
//				{
//					return false;
//				}
//     
//	   }
	   
	   if (founderror == true)
	   {
		return false;
	   }
	   
	   return true;
}

//Decimal validation function
function validateMoney(s)
{
        //Test to see if the value converts to a number
        
       // var i;
        founderror = true;
        
        	if(isNaN(s) == false)
				{
					if (s < 0) founderror=true
					else founderror = false;
				}
			else
				{
					return false;
				}
			if(s.indexOf ('.',0) != -1){
				var decimalPlaces = s.substring((s.indexOf ('.',0)+1),s.length)
				//alert(decimalPlaces.length)
				if (decimalPlaces.length > 2)
					//alert("Please enter number upto 2 decimal places");
					return false;
				else
					//alert(decimalPlaces)
					founderror = false;
			}
				
   
	   if (founderror == true)
	   {
		return false;
	   }
	   
	   return true;
}


//Number validation function if allow nulls
function validateNumNull(s)
{
        //Test to see if the value converts to a number
     if (s.length > 0)
     {
        var i;
        founderror = true;
		for (var i = 0; i < s.length; i++)
		{
			temp = s.substring(i,i+1)
			
			if (parseInt(temp) >= 0)
				{
					founderror = false;
				}
			else
				{
					return false;
				}
       
	    }
	   
		 if (founderror == true)
			{
				return false;
			}
	  }
	   return true;
}



//Date validation function
function validateDate(s)
{
	//Test for a string
	if (s.length > 0)
	{
		//Create an array to split the date into (dd/mm/yy)
		strarr = new Array ()

		//Use own split function as JScript does not include JavaScripts split function
		own_split(strarr, s, "/");
		
		//3 array elements means day, month, and year
		if (strarr.length == 3)
		{
			//Test the value of each element falls in an acceptable range
			for (var i = 0; i < strarr.length; i++)
			{
				if ((strarr[0] < 0) || (strarr[0] >31)){
					return false;
				}
				if ((strarr[1] < 0) || (strarr[1] >12)){
					return false;
				}
				if ((strarr[2] <= 1899) || (strarr[2] > 2099)){
					return false;
				}
			}
			return true;
		}
		return false;
	}
	return false;
}
//E-Mail address validation function
function validateEmail(s)
{
	//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)
      			{
			return false;
			}
		return true;
	}
	return false;
}			
function putFocus(elementStr)
   {
   elementStr.value="";
   elementStr.focus();
   }

function validateDrop(p)
{
if (! p) {
	return false;
}
return true;
}

function validateCheckBox(formName)
{
founderror = true;
for(i=0;i<formName.ans.length;i++)
{
	if (formName.ans[i].checked == true)
	{
		founderror = false;
		return true;
	}
}

	if (founderror == true)
	{
		alert("Please select one option")
		return false;
	}
}


//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++;
	}
}

function trim(s){
	s = s.replace(/^\s*/,'').replace(/\s*$/, '');
	return s;
}

function round(number,X) {
// rounds number to X decimal places, defaults to 2
X = (!X ? 2 : X);
return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

//-- JavaScript code written by Alan Simpson - www.coolnerds.com
function currency(anynum) {
  //-- Returns passed number as string in $xxx,xxx.xx format.
  anynum=eval(anynum)
  workNum=Math.abs((Math.round(anynum*100)/100));workStr=""+workNum
 
  if (workStr.indexOf(".")==-1){workStr+=".00"}
   
  dStr=workStr.substr(0,workStr.indexOf("."));dNum=dStr-0
   
  pStr=workStr.substr(workStr.indexOf("."))
  while (pStr.length<3){pStr+="0"}
	
  //--- Adds comma in thousands place.
  if (dNum>=1000) {
	
     dLen=dStr.length
     dStr=parseInt(""+(dNum/1000))+","+dStr.substring(dLen-3,dLen)
    
  }

  //-- Adds comma in millions place.
  if (dNum>=1000000) {
 
     dLen=dStr.length
     dStr=parseInt(""+(dNum/1000000))+","+dStr.substring(dLen-7,dLen)
     
  }

  retval = dStr + pStr 
  //-- Put numbers in parentheses if negative.
  if (anynum<0) {retval="-"+retval}
  return retval
}
		
