//--------------------------------------------
// Common Functions For all Common Validation
//--------------------------------------------

// Trim function removes extra spaces 
function Trim(str)
{
	while(true)
	{
		if(str.charAt(0) == ' ')
			str = str.substr(1);
		else
			break;
	}
	
	while(true)
	{
		if(str.charAt(str.length-1) == ' ')
			str = str.substr(0,str.length-1);
		else
			break;
	}
	return(str);	
}


// e-Mail Validation  Check multiple emails
function checkmail(objval)
{
	var s1;
	var k,j;
	j=0;
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
  // This is to split the multiple emails seperated by commas
  s1 = objval.split(",");
  s1=s1;
	for (k=0;k<s1.length;k++)
	{
	    // This is to split the multiple emails seperated by commas
		var returnval=emailfilter.test(s1[k])
		//var returnval=emailfilter.test(s1)
		if (returnval==false)		
		{
			j=j+1;
		}
	}
	if(j>=1)
	{
		alert("Please enter a valid email address.")
		//document.form1.mailtxt.focus();
		return false;
	}

}

//Date Validation - Check The entered date is valid format
function checkdate(objName) 
{
   flag=false;
	var datefield = objName;
	
	if (chkdate(objName) == false) 
	{
		if (flag){
			alert("Invalid Date  Please Enter Year in YYYY format.");
		}
		else{
			alert("Invalid Date.  Please enter a valid date in the format DD/MMM/YYYY.");
		}
		datefield.value="";
		datefield.focus();
		return false;
	}
	else 
	{
		return true;
	}	
}

function chkdate(objName) 
{   
	var strDatestyle = "ER"; 
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;	
	var booFound = false;
	var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/","."," ");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";	
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	strDate = datefield.value;
	if (strDate.length < 1) 
	{
		return true;
	}
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
	{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) 
			{
				err = 1;
				return false;
			}
			else 
			{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}
	if (booFound == false) 
	{	
		if (strDate.length>4)
		{
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
		else
		return false;
	}
	if (strYear.length > 4  ) 
	{
	    flag=true;
	    return false;
	}
	if (strYear.length < 4  ) 
	{
		flag=true;
		return false;
	}		
	if (strDatestyle == "US") 
	{
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}
	intday = parseInt(strDay, 10);
	if (isNaN(intday)) 
	{
		err = 2;
		return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) 
	{
	for (i = 0;i<12;i++) 
	{
		if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) 
		{
			intMonth = i+1;
			strMonth = strMonthArray[i];
			i = 12;
		}
	}
	if (isNaN(intMonth)) 
	{
		err = 3;
		return false;
	}
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) 
{
	err = 4;
	return false;
}
if (intMonth>12 || intMonth<1) 
{
	err = 5;
	return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) 
{
	err = 6;
	return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) 
{
	err = 7;
	return false;
}
if (intMonth == 2) 
{
	if (intday < 1) 
	{
		err = 8;
		return false;
	}
	if (LeapYear(intYear) == true) 
	{
		if (intday > 29) 
		{
			err = 9;
			return false;
		}
	}
	else 
	{
		if (intday > 28) 
		{	
			err = 10;
			return false;
		}
	}
}
	if (strDatestyle == "US") 
	{
		datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
	}
	else 
	  
	{ 
		var d = new Date()
       day=d.getUTCDate()
       mon=d.getUTCMonth()+1 
       year=d.getUTCFullYear()
             
		     datefield.value = intday + "-" + strMonthArray[intMonth-1] + "-" + strYear;
	        }

		        	return true;
}

// Block the non numbers in the number field
function blockNonNumbers(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}


// Decimal Point Validation
function extractNumber(keyid,obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	l =obj.value.length
	//alert("len"+l)
	 if(keyid==1)
	{
		if (l==9)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==2)
	{
		if (l==4)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==3)
	{
		if(l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}

	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}
// File Field  Validation
///u have to call like this onKeyPress="return blockfilefield(this, event, false, false,false,false);"
function blockfilefield(obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if(key==48 || key==49 || key==50|| key==51|| key==52|| key==53|| key==54|| key==55|| key==56|| key==57)
	{
		return false;
	}
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	
	return isFirstN || isFirstD || reg.test(keychar);
}
 
// Used for AJAX xmlHttp variable declaration

//Get Http objects 
function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

/// for numeric(8,3)

function extractNumbermm(keyid,obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	l =obj.value.length
	//alert("len"+l)
	 if(keyid==1)
	{
		if (l==3)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==2)
	{
		if (l==4)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==3)
	{
		if(l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}

	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}

function blockNonNumbersmm(keyid,obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	extractNumbermm(keyid,obj,2,true)
	return isFirstN || isFirstD || reg.test(keychar);
	
}




//for numeric(8,4)

function extractNumberunit(keyid,obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	l =obj.value.length
	//alert("len"+l)
	 if(keyid==1)
	{
		if (l==4)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==2)
	{
		if (l==4)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==3)
	{
		if(l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}

	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}



function blockNonNumbersunit(keyid,obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	extractNumbernew(keyid,obj,2,true)
	return isFirstN || isFirstD || reg.test(keychar);
	
}


// for numeric (10,4)
function extractNumbernew(keyid,obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	l =obj.value.length
	//alert("len"+l)
	 if(keyid==1)
	{
		if (l==8)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==2)
	{
		if (l==4)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==3)
	{
		if(l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}

	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}

function blockNonNumbersnew(keyid,obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	extractNumbernew(keyid,obj,3,true)
	return isFirstN || isFirstD || reg.test(keychar);
	
}
function searchdatecomparsion(startdt,enddt)
{

			var date1, date2,month1, month2,year1, year2;
			var y,m,d;
			y=0;m=0;d=0;
			value1= startdt;
			value2= enddt;
		  	date1  = parseFloat(value1.substring (0, value1.indexOf ("-")));
   		 	month1 = (value1.substring (value1.indexOf ("-")+1, value1.lastIndexOf ("-")));
			if(month1=="Jan"){month1=1;}
			else if(month1=="Feb"){month1=2;}
			else if(month1=="Mar"){month1=3;}
			else if( month1=="Apr"){month1=4;}
			else if(month1=="May"){month1=5;}
			else if(month1=="Jun"){month1=6;}
			else if(month1=="Jul"){month1=7}
			else if(month1=="Aug"){month1=8}
			else if(month1=="Sep"){month1=9}
			else if(month1=="Oct"){month1=10}
			else if(month1=="Nov"){month1=11}
			else {month1=12}
		  year1  = parseInt(value1.substring (value1.lastIndexOf ("-")+1, value1.length));
		  date2  = parseFloat(value2.substring (0, value2.indexOf ("-")));
   		  month2 = (value2.substring (value2.indexOf ("-")+1, value2.lastIndexOf ("-")));
			if(month2=="Jan"){month2=1;}
			else if(month2=="Feb"){month2=2;}
			else if(month2=="Mar"){month2=3;}
			else if( month2=="Apr"){month2=4;}
			else if(month2=="May"){month2=5;}
			else if(month2=="Jun"){month2=6;}
			else if(month2=="Jul"){month2=7}
			else if(month2=="Aug"){month2=8}
			else if(month2=="Sep"){month2=9}
			else if(month2=="Oct"){month2=10}
			else if(month2=="Nov"){month2=11}
			else {month2=12}
			  year2  = parseInt(value2.substring (value2.lastIndexOf ("-")+1, value2.length));
			  if (year1 > year2) 
			  {
					y=1
			  }
			  else if ((month1 > month2)&& (year1 == year2)) 
			  {
					m=1
			  }
			  else if ((date1 > date2) && (month1 == month2) && (year1 == year2))
			  {
					d=1		  
			  }
			  if (y==1 || m==1 || d==1)
			  {
				alert("Activity 'From' date  is greater than 'To' date");
				return false;
			  }
			  
}

function blockNonNumbers2(keyid,obj, e, allowDecimal, allowNegative)
{
var key;
var isCtrl = false;
var keychar;
var reg;

if(window.event) {
key = e.keyCode;
isCtrl = window.event.ctrlKey
}
else if(e.which) {
key = e.which;
isCtrl = e.ctrlKey;
}
if (isNaN(key)) return true;
keychar = String.fromCharCode(key);
// check for backspace or delete, or if Ctrl was pressed
if (key == 8 || isCtrl)
{
return true;
}
reg = /\d/;
//var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
//var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
//extractNumber2(keyid,obj,0,true)
//return isFirstN || isFirstD || reg.test(keychar);
return  reg.test(keychar);
}

function validate_txtarea(mxlen,tx)
{
var maxChar = mxlen
var txtarlen=tx.length;
if (txtarlen >= maxChar) 
{
diff=txtarlen - maxChar;
if (diff > 1)
diff = diff + " characters";
else
diff = diff + " character";
return false;
}
}

function blockNonNumbersnew123(keyid,obj, e, allowDecimal, allowNegative)
{
	var key;
	var isCtrl = false;
	var keychar;
	var reg;
		
	if(window.event) {
		key = e.keyCode;
		isCtrl = window.event.ctrlKey
	}
	else if(e.which) {
		key = e.which;
		isCtrl = e.ctrlKey;
	}
	
	if (isNaN(key)) return true;
	
	keychar = String.fromCharCode(key);
	
	// check for backspace or delete, or if Ctrl was pressed
	if (key == 8 || isCtrl)
	{
		return true;
	}

	reg = /\d/;
	var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
	var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;
	extractNumbernew123(keyid,obj,2,true)
	return isFirstN || isFirstD || reg.test(keychar);
	
}

function extractNumbernew123(keyid,obj, decimalPlaces, allowNegative)
{
	var temp = obj.value;
	l =obj.value.length
	//alert("len"+l)
	 if(keyid==1)
	{
		if (l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==2)
	{
		if (l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}
	else if(keyid==3)
	{
		if(l==6)
		{
			temp =temp+"."
			obj.value=temp
		}
	}

	// avoid changing things if already formatted correctly
	var reg0Str = '[0-9]*';
	if (decimalPlaces > 0) {
		reg0Str += '\\.?[0-9]{0,' + decimalPlaces + '}';
	} else if (decimalPlaces < 0) {
		reg0Str += '\\.?[0-9]*';
	}
	reg0Str = allowNegative ? '^-?' + reg0Str : '^' + reg0Str;
	reg0Str = reg0Str + '$';
	var reg0 = new RegExp(reg0Str);
	if (reg0.test(temp)) return true;

	// first replace all non numbers
	var reg1Str = '[^0-9' + (decimalPlaces != 0 ? '.' : '') + (allowNegative ? '-' : '') + ']';
	var reg1 = new RegExp(reg1Str, 'g');
	temp = temp.replace(reg1, '');

	if (allowNegative) {
		// replace extra negative
		var hasNegative = temp.length > 0 && temp.charAt(0) == '-';
		var reg2 = /-/g;
		temp = temp.replace(reg2, '');
		if (hasNegative) temp = '-' + temp;
	}
	
	if (decimalPlaces != 0) {
		var reg3 = /\./g;
		var reg3Array = reg3.exec(temp);
		if (reg3Array != null) {
			// keep only first occurrence of .
			//  and the number of places specified by decimalPlaces or the entire string if decimalPlaces < 0
			var reg3Right = temp.substring(reg3Array.index + reg3Array[0].length);
			reg3Right = reg3Right.replace(reg3, '');
			reg3Right = decimalPlaces > 0 ? reg3Right.substring(0, decimalPlaces) : reg3Right;
			temp = temp.substring(0,reg3Array.index) + '.' + reg3Right;
		}
	}
	
	obj.value = temp;
}

///----------------------------------------multiple emailid check---------------------

function numbervalidate(val)
{	      
		if (val.value.length > 17 ){event.returnValue=false; return;}
		if (event.keyCode < 46 || event.keyCode > 57 || event.keyCode==47){ event.returnValue = false; return;}
		if (val.value.indexOf(".") !=-1  && ((val.value.length - val.value.indexOf(".")) >= 5 || event.keyCode==46))  
		{event.returnValue = false; return;}
		else {event.returnValue = true; return;}
}



