function openPopup(url, name, width, height)
{
	var oTarget = window.open(url, name, 'scrollbars=no, toolbar=no, resizable=yes, menubar=no, status=no, width=' + width + ', height=' + height + ' top=250, left=350');
	oTarget.focus();
	return false;
}

function openScrolledPopup(url, name, width, height)
{
	var oTarget = window.open(url, name, 'scrollbars=yes, toolbar=no, resizable=yes, menubar=no, status=no, width=' + width + ', height=' + height + ' top=250, left=350');
	oTarget.focus();
	return false;
}

function HideControl( id )
{
	document.getElementById( id ).style.display = 'none';
}

function ShowControl( id )
{
	document.getElementById( id ).style.display = 'inline';
}

function nextFieldFocus(curObj, prevObj, nextObj, length, event)
{
	if( event.keyCode == '37' || event.keyCode == '39' )
	{
		return;
	}
  if(nextObj != null && curObj.value.length == length && event.keyCode != '9' && event.keyCode != '16')
  {
    nextObj.focus();
    nextObj.select();
  }
  if(event.keyCode == '8' && curObj.value.length == 0)
  {
    prevObj.focus();
    rng = prevObj.createTextRange(); 
    rng.collapse(false); 
    rng.select(); 
    prevObj.click(); 
  }
}


function newImage(arg)
{
	if (document.images)
	{
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages()
{
	if (document.images)
	{
		for (var i=0; i<changeImages.arguments.length; i+=2)
		{
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

//************************************************************* 
function Trim (str)  
{ 
	return RTrim(LTrim(str)); 
} 
//************************************************************* 	
function LTrim (str) { 
var ret_str = str; 
for (var i=0; i<str.length; i++){ 
	if (str.charAt(i) == ' ') {;} 
	else  
	{ 
		ret_str = str.substring(i); 
		return ret_str; 
	} 
} 
ret_str=''; 
return ret_str; 
} 
//************************************************************* 
function RTrim (str) { 
	var ret_str = str; 
	for (var i=(str.length-1); i>=0; i--) 
	{ 
		if (str.charAt(i) == ' ') {;} 
		else  
		{ 
			ret_str = str.substring(0,(i+1)); 
			return ret_str; 
		} 
	} 
	ret_str=''; 
	return ret_str; 
} 


//--------------------------------------------
// Any valid float, +/-/0
function IsFloat(s)
{
  rePosFlt1=/^\s+$/;
  rePosFlt2=/^\s*[\-\+]?[0-9.]+\s*$/;
  rePosFlt3=/.*\..*\./;
  rePosFlt4=/.*,.?.?,.*/;
  rePosFlt5=/,.?.?\s*$/;
  if(rePosFlt1.test(s)) return false;
  if(!rePosFlt2.test(s)) return false;
  if(rePosFlt3.test(s)) return false;
  if(rePosFlt4.test(s)) return false;
  if(rePosFlt5.test(s)) return false;
  return true;
}

function IsEmpty(s)
{
  return (s.length == 0);
}

function IsFloatOrEmpty(s)
{
  return (IsEmpty(s) || IsFloat(s));
}

function NoLongerThan(s, length)
{
  return (s.length <= length);
}


// any valid integer, +/-/0
function IsInt(s)
{
  var rePosInt1, rePosInt2;
  rePosInt1=/^\s+$/;
  rePosInt2=/^\s*[\-\+]?[0-9]+\s*$/;
  if(rePosInt1.test(s)) return false;
  if(!rePosInt2.test(s)) return false;
  return true;
}
// Returns reformatted ]date as mm/dd/yyyy if valid, null otherwise
function ValidDate(s) // [bFixYear = true, bFixDay = true]
{
        // get optional params
   bFixYear = (arguments.length > 1 ? arguments[1] : true);
   bFixDay = (arguments.length > 2 ? arguments[2] : true);

   var reVal = "/[^\d-\/. ]/";
   var reSep = "/([-\/. ])/";
   
   // valid len/chars
   if (!s.length)
      return null;
      
   //if (RegExp("[^\\d-/. ]").test(s))
   if (reVal.test(s))
      return null;
      
   

   // find seperator and split
   var sDay;
   var sMonth;
   var sYear;
   if (reSep.test(s))
   {
                // brute force split approach
      da = s.split(RegExp.lastMatch);
                if (da.length == 1) da = s.split('/');
                if (da.length == 1) da = s.split('-');
                if (da.length == 1) da = s.split(' ');
                if (da.length == 1) da = s.split('.');

      if (da.length == 3)
      {
         sMonth = da[0];
         sDay = da[1];
         sYear = da[2];
      }
      else if ((da.length == 2) && bFixDay)
      {
         sMonth = da[0];
         sDay = 1;
         sYear = da[1];
      }
      else
         return null;
   }
   else
      return null;

   if (sYear.length == 2)
        {
      if (eval(sYear) > 50)
         sYear = '19' + sYear;
      else
         sYear = '20' + sYear;
   }
   if (sYear.length != 4)
      return null;
      
   //alert(sDay + '/' + sMonth + '/' + sYear);

   var iDay;
   var iMonth;
   var iYear;
   iDay = parseInt(sDay, 10);
   iMonth = parseInt(sMonth, 10);
   iYear = parseInt(sYear, 10);

        if ((iDay < 1) || (iMonth < 1) || (iYear < 1))
                return null;

   if (iMonth>12)
      return null;
   if ((iMonth == 1 || iMonth == 3 || iMonth == 5 || iMonth == 7 || iMonth == 8 || iMonth == 10 || iMonth == 12) && (iDay > 31))
      return null;
   if ((iMonth == 4 || iMonth == 6 || iMonth == 9 || iMonth == 11) && (iDay > 30))
      return null;
   if ((iMonth == 2) && (iDay > 28))
        {
      if (LeapYear(iYear) && (iDay > 29))
         return null;
   }

   return (iMonth + "/" + iDay + "/" + iYear);
}

function LeapYear(y) {
   if (y % 100 == 0)
      if (y % 400 == 0) return true;
   else
      if (y % 4 == 0) return true;
   return false;
}

//Date
function IsDate(s)
{
   s = ValidDate(s);
   if (s)
   {
        return true;
   }
   return false;
}

function IsZipValid(s)
{
  var rePosZIP;
  rePosZIP=/^\s*\d{5}\s*$/;
  if(!rePosZIP.test(s)) return false;
  return true;
}

function GetPercentValue ( value )
{
    var r = new RegExp("%", "g");    
    var s = String(value);
    return s.replace(r, "");
}

function SetPercentValue( value )
{   
    var newstr = parseFloat(value).toFixed(3) + "%";
    
    return newstr;
}
function GetCurrencyValue ( value )
{
    var r = new RegExp(",", "g");    
    var s = String(value);
    return s.replace(r, "");
}


function SetCurrencyValue( value )
{   
    var oldstr = String(Trim(value));
    var newstr = "";
    var threecount = 0;
    
    for(i = oldstr.length-1; i>=0; i--)
    {
        if (oldstr.charAt(i) != ",")
        {
            newstr = oldstr.charAt(i) + newstr;
        
            threecount++;
            if (threecount == 3)
            {
                if (i != 0)
                    newstr = "," + newstr;
                threecount = 0;
            }
        }
    }
    return newstr;
}


function GetSelectValue(controlID)
{
  return document.getElementById(controlID).options[document.getElementById(controlID).options.selectedIndex].value;
}


function KeyPressedEnterValid(e)
{

    if(window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    
    keychar = String.fromCharCode(keynum);

    //alert(keynum);

    if(keynum == 13) 
	{	
	    var InputArray = document.getElementsByTagName("input");
		var ActiveElement = document.activeElement;
		for(i = 0; i < InputArray.length; i++) 
		{  
		    if(InputArray[i]==ActiveElement)
			{
			    return false;
			}
		}
		return true;		
	}
}