// ----------------------------------------------------------------------
// Javascript form validation routines.
// Author: Stephen Poley
//
// Simple routines to quickly pick up obvious typos.
// All validation routines return true if executed by an older browser:
// in this case validation must be left to the server.
//
// Update Jun 2005: discovered that reason IE wasn't setting focus was
// due to an IE timing bug. Added 0.1 sec delay to fix.
//
// Update Oct 2005: minor tidy-up: unused parameter removed
//
// Update Jun 2006: minor improvements to variable names and layout
// ----------------------------------------------------------------------

var nbsp = 160;		// non-breaking space char
var node_text = 3;	// DOM text node-type
var emptyString = /^\s*$/ ;
var global_valfield;	// retain valfield for timer thread

// --------------------------------------------
//                  trim
// Trim leading/trailing whitespace off string
// --------------------------------------------

function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}


// --------------------------------------------
//                  setfocus
// Delayed focus setting to get around IE bug
// --------------------------------------------

function setFocusDelayed()
{
  global_valfield.focus();
}

function setfocus(valfield)
{
  // save valfield in global variable so value retained when routine exits
  global_valfield = valfield;
  setTimeout( 'setFocusDelayed()', 100 );
}


// --------------------------------------------
//                  msg
// Display warn/error message in HTML element.
// commonCheck routine must have previously been called
// --------------------------------------------

function msg(fld,     // id of element to display message in
             msgtype, // class to give element ("warn" or "error")
             message) // string to display
{
  // setting an empty string can give problems if later set to a 
  // non-empty string, so ensure a space present. (For Mozilla and Opera one could 
  // simply use a space, but IE demands something more, like a non-breaking space.)
  var dispmessage;
  if (emptyString.test(message)) 
    dispmessage = String.fromCharCode(nbsp);    
  else  
    dispmessage = message;

  var elem = document.getElementById(fld);
  elem.firstChild.nodeValue = dispmessage;  
  
  elem.className = msgtype;   // set the CSS class to adjust appearance of message
}

// --------------------------------------------
//            commonCheck
// Common code for all validation routines to:
// (a) check for older / less-equipped browsers
// (b) check if empty fields are required
// Returns true (validation passed), 
//         false (validation failed) or 
//         proceed (don't know yet)
// --------------------------------------------

var proceed = 2;  

function commonCheck    (valfield,   // element to be validated
                         infofield,  // id of element to receive info/error msg
                         required)   // true if required
{
  if (!document.getElementById) 
    return true;  // not available on this browser - leave validation to the server
  var elem = document.getElementById(infofield);
  if (!elem.firstChild) return true;  // not available on this browser 
  if (elem.firstChild.nodeType != node_text) return true;  // infofield is wrong type of node  

  if (emptyString.test(valfield.value)) {
    if (required) {
      msg (infofield, "error", "ERROR: required");  
      setfocus(valfield);
      return false;
    }
    else {
      msg (infofield, "warn", "");   // OK
      return true;  
    }
  }
  return proceed;
}

// --------------------------------------------
//            validatePresent
// Validate if something has been entered
// Returns true if so 
// --------------------------------------------

function validatePresent(valfield,   // element to be validated
                         infofield ) // id of element to receive info/error msg
{
  var stat = commonCheck (valfield, infofield, true);
  if (stat != proceed) return stat;

  msg (infofield, "warn", "");  
  return true;
}

// --------------------------------------------
//               validateEmail
// Validate if e-mail address
// Returns true if so (and also if could not be executed because of old browser)
// --------------------------------------------



// --------------------------------------------
//            validateTelnr
// Validate telephone number
// Returns true if so (and also if could not be executed because of old browser)
// Permits spaces, hyphens, brackets and leading +
// --------------------------------------------

function validateTelnr  (valfield,   // element to be validated
                         infofield,  // id of element to receive info/error msg
                         required)   // true if required
{
  var stat = commonCheck (valfield, infofield, required);
  if (stat != proceed) return stat;

  var tfld = trim(valfield.value);  // value of field with whitespace trimmed off
  var telnr = /^\+?[0-9 ()-]+[0-9]$/  ;
  if (!telnr.test(tfld)) {
    msg (infofield, "error", "ERROR: not a valid telephone number. Characters permitted are digits, space ()- and leading +");
    setfocus(valfield);
    return false;
  }

  var numdigits = 0;
  for (var j=0; j<tfld.length; j++)
    if (tfld.charAt(j)>='0' && tfld.charAt(j)<='9') numdigits++;

  if (numdigits<6) {
    msg (infofield, "error", "ERROR: " + numdigits + " digits - too short");
    setfocus(valfield);
    return false;
  }

  if (numdigits>14)
    msg (infofield, "warn", numdigits + " digits - check if correct");
  else { 
    if (numdigits<10)
      msg (infofield, "warn", "Only " + numdigits + " digits - check if correct");
    else
      msg (infofield, "warn", "");
  }
  return true;
}

// --------------------------------------------
//             validateAge
// Validate person's age
// Returns true if OK 
// --------------------------------------------

function validateAge    (valfield,   // element to be validated
                         infofield,  // id of element to receive info/error msg
                         required)   // true if required
{
  var stat = commonCheck (valfield, infofield, required);
  if (stat != proceed) return stat;

  var tfld = trim(valfield.value);
  var ageRE = /^[0-9]{1,3}$/
  if (!ageRE.test(tfld)) {
    msg (infofield, "error", "ERROR: not a valid age");
    setfocus(valfield);
    return false;
  }

  if (tfld>=200) {
    msg (infofield, "error", "ERROR: not a valid age");
    setfocus(valfield);
    return false;
  }

  if (tfld>110) msg (infofield, "warn", "Older than 110: check correct");
  else {
    if (tfld<7) msg (infofield, "warn", "Bit young for this, aren't you?");
    else        msg (infofield, "warn", "");
  }
  return true;
}


/*inserted by kwm*/



function validateInput(strValidateStr,objValue,strError , cmdvalue ) 
{ 
    var ret = true;
    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
		command = strValidateStr; 
    }
	if( epos > 0 )
	{
		cmdvalue = strValidateStr.substr(epos+1); 
	}
    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
		   ret = TestRequiredInput(objValue,strError)
           break;             
         }//case required 
        case "dontselect": 
         { 
			 ret = TestDontSelect(objValue,cmdvalue,strError)
             break; 
         }
		case "correctnum":
		{
			ret = TestNumberType(objValue, "[^0-9\. ]",  strError, 
					objValue.name+": Only digits allowed " );
			break;
		}
        case "num": 
        case "numeric": 
        { 
			ret = TestInputType(objValue,"[^0-9 ]",strError, 
					objValue.name+": Only digits allowed ");
			break;               
        }
		case "comnum":
		{
			ret = TestCommasInputType( objValue,"[^0-9\. ]",strError, 
					objValue.name+": Only digits allowed " );
			break;
		}
        case "decimal": 
	    { 
			ret = TestInputType( objValue, "[^0-9\. ]", strError, 
					objValue.name+": Only numbers allowed ");
			break;               
	    }
		case "customdec":
		{
			ret = TestCustomInputType( objValue, "[^0-9\., ]", strError, 
					objValue.name+": Only numbers allowed ");
			break;               
			break;
		}
		case "len":
		{
			ret = TestInputLength( objValue, cmdvalue, strError );
			break;
		}
		case "phone":
		{
			ret = CheckPhone(objValue, strError);
			break;
		}
        case "email": 
        { 
			   ret = TestEmail(objValue,strError);
               break; 
        }
		case "selone_radio":
		{
			ret = TestSelectOneRadio(objValue,strError);
		    break;
		}	
		case "shouldselchk":
		{
			ret = TestShouldSelectChk(objValue,cmdvalue,strError)
			break;
		}
        case "minlength": 
        case "minlen": 
        { 
			 ret = TestMinLen(objValue,cmdvalue,strError)
             break; 
        }//case minlen 
        case "lessthan": 
        { 
    	      ret = TestLessThan(objValue,cmdvalue,strError);
              break; 
        }
		case "sepnum":
		{
			ret = TestSepInputType(objValue,"[(?[0-9]{3}\)?[0-9]{3}-?[0-9]{4}]",strError, 
					objValue.name+": Only digits allowed ");
			break;
		}
		case "date":
		{
			ret = isValidDate( objValue );
			break;
		}
		case "urlcheck":
			ret = urlCheck( objValue );
			break;
        case "greaterthan": 
        { 
			ret = TestGreaterThan(objValue,cmdvalue,strError);
            break; 
        }//case greaterthan 
    }//switch 
	return ret;
}
function isBigerEndThanStart( starttime, endtime )
{
	if( starttime == "" || endtime == "" )
	{
		return true;
	}
	var startDateList = starttime.split( "-" );
	var endDateList = endtime.split( "-" );

	var stDate = parseInt( startDateList[0] )*1000 + parseInt( removeCharacter(startDateList[1], "0", 0 ) ) * 100 + parseInt( removeCharacter(startDateList[2], "0", 0) ) ;
	var edDate = parseInt( endDateList[0] )*1000 + parseInt( removeCharacter( endDateList[1], "0", 0)) * 100 + parseInt( removeCharacter(endDateList[2], "0", 0) ) ;

	if( edDate >= stDate )
	{
		return true;
	}
	return false;
//	alert( startDateList[0] + "*" + startDateList[1] + "*" + startDateList[2] );
}
function isLowerThanHigher( lowerobjid, higherobjid )
{
	var htempobj = document.getElementById( higherobjid );
	var ltempobj = document.getElementById( lowerobjid );
	var higher = parseFloat( htempobj.value );
	var lower = parseFloat( ltempobj.value );

	if( lower > higher )
	{
		return false;
	}
	return true;
}
function removeCharacter( value, ref, index )
{
	if( value.indexOf( ref ) == index )
	{
		return value.split( ref )[1];
	}
	return value;
}
function isValidMacAddress1( macAdd ) 
{
/*
    rePhoneNumber = new RegExp(/^\(?\d{2,4}\)?\/?\s?\d{2,10}\-?\s?\d{2,10}$/);
    
    if ((!rePhoneNumber.test(text)) && (text != '')) {
		sfm_show_error_msg(strError,objValue);     	
        ret = false;
    }   
*/
	var RegExPattern = new RegExp( /[a-z0-9A-Z]*/ );
 
//	if (!(RegExPattern.test(macAdd ) ) || macAdd.length != 17) 
	if (!(RegExPattern.test(macAdd ) ) || ( macAdd.length != 12 ) ) 
    {
		return false; 
    }
    else
    {
		return true;
    }
}
function isValidMacAddress2( macAdd ) 
{
/*
    rePhoneNumber = new RegExp(/^\(?\d{2,4}\)?\/?\s?\d{2,10}\-?\s?\d{2,10}$/);
    
    if ((!rePhoneNumber.test(text)) && (text != '')) {
		sfm_show_error_msg(strError,objValue);     	
        ret = false;
    }   
*/
//	var addMacReg = "^[0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}"; 
	var addMacReg = "^([0-9A-Fa-f]{2}[:][0-9A-Fa-f]{2}[:][0-9A-Fa-f]{2}[:][0-9A-Fa-f]{2}[:][0-9A-Fa-f]{2}[:][0-9A-Fa-f]{2})";

//    regex=/^([0-9a-f]{2}([:-]|$)){6}$|([0-9a-f]{4}([.]|$)){3}$/i;
	var RegExPattern = new RegExp( addMacReg );
 
//	if (!(RegExPattern.test(macAdd ) ) || macAdd.length != 17) 
	if (!(RegExPattern.test( macAdd ) ) ) 
    {
		return false; 
    }
    else
    {
		return true;
    }
}
function isValidMacAddress3( macAdd ) 
{
/*
    rePhoneNumber = new RegExp(/^\(?\d{2,4}\)?\/?\s?\d{2,10}\-?\s?\d{2,10}$/);
    
    if ((!rePhoneNumber.test(text)) && (text != '')) {
		sfm_show_error_msg(strError,objValue);     	
        ret = false;
    }   
*/
//	var addMacReg = "^[0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}[:-][0-9A-F]{2}"; 
	var addMacReg = "^([0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f]{2}[-][0-9A-Fa-f][0-9A-Fa-f])";

//    regex=/^([0-9a-f]{2}([:-]|$)){6}$|([0-9a-f]{4}([.]|$)){3}$/i;
	var RegExPattern = new RegExp( addMacReg );
 
//	if (!(RegExPattern.test(macAdd ) ) || macAdd.length != 17) 
	if (!(RegExPattern.test( macAdd ) ) || macAdd.length != 17  ) 
    {
		return false; 
    }
    else
    {
		return true;
    }
}
function isValidDate( obj )
{
	var addDateReg = "^[1-2][089][0-9][0-9][-][0-1][1-9][-][0-3][0-9]$";

	var RegExPattern = new RegExp( addDateReg );
 
//	if (!(RegExPattern.test(macAdd ) ) || macAdd.length != 17) 
	if (!(RegExPattern.test( obj.value ) ) ) 
    {
		return false; 
    }
    else
    {
		return true;
    }
}
function TestGreaterThan(objValue,strGreaterThan,strError)
{
	var ret = true;
	var value = objValue.value.replace(/[,]/g,'' );
	 if(isNaN(value)) 
	 { 
	   sfm_show_error_msg(objValue.name+": Should be a number ",objValue); 
	   ret = false; 
	 }//if 
	 else
	 {
		 if(eval(value) <=  eval(strGreaterThan)) 
		  { 
			if(!strError || strError.length ==0) 
			{ 
			  strError = objValue.name + " : value should be greater than "+ strGreaterThan; 
			}//if               
			sfm_show_error_msg(strError,objValue);  
			ret = false;
		  }//if  
	 } 
	return ret;           
}
function TestLessThan(objValue,strLessThan,strError)
{
	var ret = true;

	var value = objValue.value.replace(/[,]/g,'' );
	if(isNaN( value ) ) 
	{ 
		sfm_show_error_msg(objValue.name +": Should be a number ",objValue); 
		ret = false; 
	}//if 
	else
	{
		if(eval(value) >=  eval(strLessThan)) 
		{ 
			if(!strError || strError.length ==0) 
			{ 
			  strError = objValue.name + " : value should be less than "+ strLessThan; 
			}//if               
			sfm_show_error_msg(strError,objValue); 
			ret = false;                 
		}//if   
	}
	return ret;          
}

function TestMinLen(objValue,strMinLen,strError)
{
	 var ret = true;
	if(eval(objValue.value.length) <  eval(strMinLen)) 
	{ 
	  if(!strError || strError.length ==0) 
	  { 
		strError = objValue.name + " : " + strMinLen + " characters minimum  "; 
	  }//if               
	  sfm_show_error_msg(strError,objValue); 
	  ret = false;   
	}//if 
	return ret;
}

function IsCheckSelected(objValue,chkValue)
{
    var selected=false;
	var objcheck = objValue.form.elements[objValue.name];
    if(objcheck.length)
	{
		var idxchk=-1;
		for(var c=0;c < objcheck.length;c++)
		{
		   if(objcheck[c].value == chkValue)
		   {
		     idxchk=c;
			 break;
		   }//if
		}//for
		if(idxchk>= 0)
		{
		  if(objcheck[idxchk].checked=="1")
		  {
		    selected=true;
		  }
		}//if
	}
	else
	{
		if(objValue.checked == "1")
		{
			selected=true;
		}//if
	}//else	

	return selected;
}

function TestShouldSelectChk(objValue,chkValue,strError)
{
	var pass = true;

	pass = IsCheckSelected(objValue,chkValue)?true:false;

	if( pass==false )
	{
     if(!strError || strError.length ==0) 
        { 
        	strError = "You should select" + objValue.name;  
        }//if			  
	  sfm_show_error_msg(strError,objValue);
	  
	}
    return pass;
}
/*
function TestSelectOneRadio( objList,strError)
{
	var one_selected = false;
	for(var r=0;r < objList.length;r++)
	{
	  if(objList[r].checked == 1 )
	  {
	  	one_selected = true;
		break;
	  }
	}
	if(false == one_selected)
	{
      if(!strError || strError.length ==0) 
       {
	    strError = "Please select one option from " + objList[0].name;
	   }	
	  sfm_show_error_msg(strError,objList[0] );
	}
return one_selected;
}
*/
function TestSelectOneRadio(objValue,strError)
{
	var objradio = objValue.form.elements[objValue.name];
	var one_selected=false;
	for(var r=0;r < objradio.length;r++)
	{
	  if(objradio[r].checked == "1")
	  {
	  	one_selected=true;
		break;
	  }
	}
	if(false == one_selected)
	{
      if(!strError || strError.length ==0) 
       {
	    strError = "Please select one option from "+objValue.name;
	   }	
	  sfm_show_error_msg(strError,objValue);
	}
return one_selected;
}


function validateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

function TestEmail(objValue,strError)
{
	 var ret = true;
     if(objValue.value.length > 0 && !validateEmail(objValue.value)	 ) 
     { 
       if(!strError || strError.length ==0) 
       { 
          strError = objValue.name+": Enter a valid Email address "; 
       }//if                                               
       sfm_show_error_msg(strError,objValue); 
       ret = false; 
     }//if 
	return ret;
}

function TestPostCode( objValue, strError )
{
	var ret = true;
	if( objValue.value < 2000 && objValue.value > 9000  )
	{
		  sfm_show_error_msg( strError, objValue ); 
		  ret =  false;                                   
	}
	return ret;
}
function TestInputLength( objValue, len, strError )
{
	var ret = true;

	if( parseInt(objValue.value.length) < len )
	{
		  sfm_show_error_msg(strError, objValue ); 
		  ret =  false;                                   
	}
	return ret;
}

function CheckPhone(objValue, strError) {
	var text = objValue.value;
	var ret=true;
	// Check for correct phone number
    rePhoneNumber = new RegExp(/^\(?\d{2,4}\)?\/?\s?\d{2,10}\-?\s?\d{2,10}$/);
    
    if ((!rePhoneNumber.test(text)) && (text != '')) {
		sfm_show_error_msg(strError,objValue);     	
        ret = false;
    }   
    return ret;
}

function TestDontSelect(objValue,dont_sel_index,strError)
{
	var ret = true;
    if(objValue.selectedIndex == 0 ) 
    { 
		  sfm_show_error_msg("ERROR: dontselect command for non-select Item"); 
		  ret =  false; 
    } 
    if(objValue.selectedIndex == eval(dont_sel_index)) 
    { 
		 if(!strError || strError.length ==0) 
		  { 
		  strError = objValue.name+": Please Select one option "; 
		  }//if                                                               
		  sfm_show_error_msg(strError, objValue ); 
		  ret =  false;                                   
     } 
	return ret;
}

function TestRequiredInput(objValue,strError)
{
	 var ret = true;
	 var val = objValue.value;
	 val = val.replace(/^\s+|\s+$/g,"");//trim
		if(eval(val.length) == 0) 
		{ 
		   if(!strError || strError.length ==0) 
		   { 
			 strError = objValue.name + " : Required Field"; 
		   }//if 
		   sfm_show_error_msg(strError,objValue); 
		   ret=false; 
		}//if 
	return ret;
}
function TestMaxLen(objValue,strMaxLen,strError)
{
	 var ret = true;
		if(eval(objValue.value.length) > eval(strMaxLen)) 
		{ 
		  if(!strError || strError.length ==0) 
		  { 
			strError = objValue.name + " : "+ strMaxLen +" characters maximum "; 
		  }//if 
		  sfm_show_error_msg( strError, objValue ); 
		  ret = false; 
		}//if 
	return ret;
}
function TestNumberType( objValue, regexp, strError, strDefaultError )
{

	var ret = true;
	var value = trim( objValue.value );
	if( value.charAt(0) == '0' )
	{
		if( value.indexOf( "." ) == -1 && value.length > 1 )
		{
			 if( !strError || strError.length == 0 ) 
			 { 
				strError = strDefaultError;
			 }//if 
			 sfm_show_error_msg(strError,objValue);
			 ret = false;
		}
	}
	return ret;
}
function TestInputType( objValue,strRegExp,strError,strDefaultError )
{
   var ret = true;

    var charpos = objValue.value.search(strRegExp); 
    if(objValue.value.length > 0 &&  charpos >= 0) 
    { 
     if(!strError || strError.length ==0) 
      { 
        strError = strDefaultError;
      }//if 
      sfm_show_error_msg(strError,objValue); 
      ret = false; 
    }//if 
	 return ret;
}
function TestCommasInputType( objValue,strRegExp,strError,strDefaultError )
{
   var ret = true;

	var value = objValue.value.replace(/[,]/g,'' );

    var charpos = value.search(strRegExp); 
    if( value.length > 0 &&  charpos >= 0 ) 
    { 
     if(!strError || strError.length ==0) 
      { 
        strError = strDefaultError;
      }//if 
      sfm_show_error_msg(strError,objValue ); 
      ret = false; 
    }//if
	var isExitCommas = objValue.value.indexOf( "," )?true:false;
	if( addCommas(value) != objValue.value && !isExitCommas )
	{
		ret = false;
	}
	return ret;
}

function TestSepInputType(objValue,strRegExp,strError,strDefaultError )
{
   var ret = true;

    var charpos = objValue.value.search(strRegExp); 
	alert( charpos );
    if(objValue.value.length > 0 &&  charpos >= 0) 
    { 
     if(!strError || strError.length ==0) 
      { 
        strError = strDefaultError;
      }//if 
      sfm_show_error_msg(strError,objValue); 
      ret = false; 
    }//if 
 return ret;
}
function urlCheck( obj ) {
	var str = obj.value;
	var RegexUrl = new RegExp( /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ );
	if( !RegexUrl.test(str) ) 
	{
		return false;
	}
	return true;
} 
function TestCustomInputType( objValue,strRegExp,strError,strDefaultError )
{
   var ret = true;

    var charpos = objValue.value.search( strRegExp ); 
    if(objValue.value.length > 0 &&  charpos >= 0) 
    { 
     if(!strError || strError.length ==0) 
      { 
        strError = strDefaultError;
      }//if 
      sfm_show_error_msg(strError,objValue); 
      ret = false; 
    }//if 
 return ret;
}

function sfm_show_error_msg(msg,input_elmt)
{
//	alert( msg );
//	input_elmt.focus();
}

function ExtensionsOkay( value ) {
	var extension = new Array();

	// Step 1 of 2:
	// Replace MyForm with the name of your form and 
	//    replace FieldName with the upload field name.

	var fieldvalue = value;


	// Step 2 of 2:
	// Add the file name extensions that are okay (with 
	//    the period), for the variables with their numbers 
	//    in sequential order, as many or as few as needed, 
	//    starting with 0. (These are case sensitive.)

	extension[0] = ".png";
	extension[1] = ".gif";
	extension[2] = ".jpg";
	extension[3] = ".jpeg";
	extension[4] = ".JPEG";
	extension[5] = ".GIF";
	extension[6] = ".PNG";
//	extension[4] = ".ico";
//	extension[5] = ".cur";


	// No other customization needed.
	var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));
	for(var i = 0; i < extension.length; i++) 
	{
		if(thisext == extension[i]) { return true; }
	}
	return false;
}
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function removeCommas( nStr )
{
	var value = nStr.replace(/[,]/g,'' );
	return value;
}
