//--Returns passed date object as a string in mm/dd/yy format.
function mdy(anyDate) {
   return anyDate.getMonth()+1+"/"+anyDate.getDate()+"/"+anyDate.getYear()
}

//--Returns passed date object as a string in mm/dd/yy format.
function mdyy(anyDate) {
   return anyDate.getMonth()+1+"/"+anyDate.getDate()+"/"+anyDate.getFullYear()
}



function whenIs(anyDate, n){
   //-- Returns the date that is n days from any date object.
   var newDate = new Date()
   newDate.setTime(anyDate.getTime()+(n*1000*60*60*24))
   return newDate
}



//------------------------------------------------------------------------------------
// function: isProperDate
//           Function to tell whether the given date is valid or not
//           This function expects date in the format of mm/dd/yyyy or mm/dd/yy
//           or mm-dd-yyyy or mm-dd-yy
//------------------------------------------------------------------------------------
function isProperDate(argDate) {

	var tmpDay = getDay(argDate)
	var tmpMon = getMonth(argDate)
	var tmpYear = getYear(argDate)

	return isProperDay(tmpDay, tmpMon, tmpYear) && isProperMonth(tmpMon) && isProperYear(tmpYear)
}


//------------------------------------------------------------------------------------
// function: isAfterDate
//           Function to tell whether argDate2 is after argDate1
//           This function expects dates in the format of mm/dd/yyyy or mm/dd/yy
//           or mm-dd-yyyy or mm-dd-yy
//------------------------------------------------------------------------------------
function isAfterDate(argDate1,argDate2) {
	
	var mon1 = getMonth(argDate1);
	if (parseInt(mon1) < 10) { mon1="0"+parseInt(mon1); }
	var day1 = getDay(argDate1);
	if (parseInt(day1) < 10) { day1="0"+parseInt(day1); }
	var Date1 = getYear(argDate1)+'-'+mon1+"-"+day1;
	
	var mon2 = getMonth(argDate2);
	if (parseInt(mon2) < 10) { mon2="0"+parseInt(mon2); }
	var day2 = getDay(argDate2);
	if (parseInt(day2) < 10) { day2="0"+parseInt(day2); }
	var Date2 = getYear(argDate2)+'-'+mon2+"-"+day2;
	
	if (Date2 > Date1) { return true; }
	else {return false; }

}

//------------------------------------------------------------------------------------
// function: isWhiteSpace
//           Function to check whether the given argument consists of charactes other
//           than a space and \t
//------------------------------------------------------------------------------------
function isWhiteSpace(argWhiteSpace) {
	argWs = argWhiteSpace.toString()
	
	for (var intI=0; intI < argWs.length; intI++)
		if (argWs.charAt(intI) != ' ' && argWs.charAt(intI) != '\t')
			return false
	
	return true
}

//------------------------------------------------------------------------------------
// function: isLeapYear
//           Function to tell, whether the given year is leap year or not
//------------------------------------------------------------------------------------
function isLeapYear(argYear) {
	return ((argYear % 4 == 0) && (argYear % 100 != 0)) || (argYear % 400 == 0) 
}

//------------------------------------------------------------------------------------
// function: daysInMonth
//           Function to return the maximum number of days in a given month of a
//           given year
//------------------------------------------------------------------------------------
function daysInMonth(argMonth, argYear) {
	switch (Number(argMonth)) {
		case 1:		// Jan
		case 3:		// Mar
		case 5:		// May
		case 7:		// Jul
		case 8:		// Aug
		case 10:		// Oct
		case 12:		// Dec
			return 31;
			break;
		
		case 4:		// Apr
		case 6:		// Jun
		case 9:		// Sep
		case 11:		// Nov
			return 30;
			break;
		
		case 2:		// Feb
			if (isLeapYear(argYear))
				return 29
			else
				return 28
			break;
		
		default:
			return 0;
	}
}

//------------------------------------------------------------------------------------
// function: getDateSeparator
//           Function to return the date separator
//           This function expects date in the format of mm/dd/yyyy or mm/dd/yy
//           or mm-dd-yyyy or mm-dd-yy
//------------------------------------------------------------------------------------
function getDateSeparator(argDate) {
	// Are there invalid separators?
	if ((argDate.indexOf('-') > 0) && (argDate.indexOf('/') > 0))
		return ' '

	if (argDate.indexOf('-') > 0)
		return '-'
	else
		if (argDate.indexOf('/') > 0)
			return '/'
		else
			return ' '
}

//------------------------------------------------------------------------------------
// function: getYear
//           Function to return the year part of the given date.
//           This function expects date in the format of mm/dd/yyyy or mm/dd/yy
//           or mm-dd-yyyy or mm-dd-yy
//------------------------------------------------------------------------------------
function getYear(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[2]
	else
		return 0
}

//------------------------------------------------------------------------------------
// function: getMonth
//           Function to return the month part of the given date.
//           This function expects date in the format of mm/dd/yyyy or mm/dd/yy
//           or mm-dd-yyyy or mm-dd-yy
//------------------------------------------------------------------------------------
function getMonth(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[0]
	else
		return 0
}

//------------------------------------------------------------------------------------
// function: getDay
//           Function to return the day part of the given date.
//           This function expects date in the format of mm/dd/yyyy or mm/dd/yy
//           or mm-dd-yyyy or mm-dd-yy
//------------------------------------------------------------------------------------
function getDay(argDate) {
	var dateSep = getDateSeparator(argDate)
	
	if (dateSep == ' ')
		return 0

	if(argDate.split(dateSep).length == 3)
		return argDate.split(dateSep)[1]
	else
		return 0
}


//------------------------------------------------------------------------------------
// function: gettodayDate
//           Function to return the date today in the format of mm/dd/yyyy
//------------------------------------------------------------------------------------
function gettodayDate() {

    todaysdate = new Date();
    date  = todaysdate.getDate();
    day  = todaysdate.getDay() + 1;
    month = todaysdate.getMonth() + 1;
    yy = todaysdate.getYear();
    year = (yy < 1000) ? yy + 1900 : yy;
    year2 = 2000 - year; year2 = (year2 < 10) ? "0" + year2 : year2;

    final_date = month + "/" + date + "/" + year;
    return(final_date);

}


//------------------------------------------------------------------------------------
// function: isProperDay
//           Function to tell whether the given day of the given month is valid
//------------------------------------------------------------------------------------
function isProperDay(argDay, argMonth, argYear) {
	if ((isWhiteSpace(argDay)) || (argDay == 0))
		return false

	if ((argDay > 0) && (argDay < daysInMonth(argMonth, argYear) + 1))
		return true
	else 
		return false
}

//------------------------------------------------------------------------------------
// function: isProperMonth
//           Function to tell whether the given month is a valid one
//------------------------------------------------------------------------------------
function isProperMonth(argMonth) {
	if ((isWhiteSpace(argMonth)) || (argMonth == 0))
		return false
	
	if ((argMonth > 0) && (argMonth < 13))
		return true
	else
		return false
}

//------------------------------------------------------------------------------------
// function: isProperYear
//           Function to tell whether the given Year is a valid one
//------------------------------------------------------------------------------------
function isProperYear(argYear) {
	if ((isWhiteSpace(argYear)) || (argYear.toString().length > 4) || (argYear.toString().length == 3))
		return false
	
	switch (argYear.toString().length) {
		case 1:
			if (argYear >=0 && argYear < 10)
				return true
			else
				return false
			
		case 2:
			if (argYear >=0 && argYear < 100)
				return true
			else
				return false
			
		case 4:
			if (((argYear >=1900) || (argYear >=2000)) && ((argYear < 3000) || (argYear < 2000)))
				return true
			else
				return false
		
		default:
			return false
	}
}

function writeYears(start_year,end_year) {
    str="";
    for (i=start_year; i<end_year; i++) str +="<option value='"+i+"'>"+i+"</option>";
    return str;
}

//-----------------------------------------------------------------------------------------------
// Additional functions
//
//-----------------------------------------------------------------------------------------------

if (document.layers) document.captureEvents(Event.KEYPRESS); 
var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function trim(argvalue) {
  var tmpstr = ltrim(argvalue);
  return rtrim(tmpstr);
}

function ltrim(argvalue) {
  while (1) {
    if (argvalue.substring(0, 1) != " ")
      break;
    argvalue = argvalue.substring(1, argvalue.length);
  }
  return argvalue;
}

function rtrim(argvalue) {
  while (1) {
    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
      break;
    argvalue = argvalue.substring(0, argvalue.length - 1);
  }
  return argvalue;
}

function numbersonly(e){
	var keyCode = (isNN) ? e.which : e.keyCode;
	if ((keyCode < 48 || keyCode > 57) && keyCode != 8 && keyCode != 9 && keyCode !=0) {
		return false
	} else {
		return true
	}
}

function lettersonly(e){
	var keyCode = (isNN) ? e.which : e.keyCode;
	if ((keyCode < 96 || keyCode > 122) && (keyCode < 65 || keyCode > 90) && (keyCode < 37 || keyCode > 40) && keyCode != 8 && keyCode != 9 && keyCode != 46 && keyCode !=0) {
		return false
	} else {
		return true
	}
}


function ENGlettersonly(e){
	var keyCode = (isNN) ? e.which : e.keyCode;
	if ((keyCode==8 || keyCode==0) ||(keyCode >= 32 && keyCode <= 127) || (keyCode >= 192 && keyCode <= 255 && keyCode != 247) ) {
		return true
	} else {
		return false
	}
}


function Jump(el, next, e){

var kc = (isNN) ? e.which : e.keyCode;

//el.maxLength is specified
if(el.maxLength<100){
	if (!((kc -0 > 47 && kc - 0 < 58) ||
                (kc==13) ||
		(kc -0 > 64 && kc - 0 < 91) ||
		(kc -0 > 95 && kc - 0 < 106)) )return
	if ((el.maxLength == el.value.length) || (kc==13))
		if (isNN) {
			eval('document.forms[0].' + next).focus();
		} else {
		//if(document.all(next))		
			document.all(next).focus();
		}
}
//el.maxLength is not specified
else
 if(kc==13)
   if(document.all(next))		
     document.all(next).focus();
}

function PopWin1(url,name,h,w) {
var str="height="+h+",innerHeight="+h;
 str+=",width="+w+",innerWidth="+w;
 if(window.screen){
   var ah=screen.availHeight-30;
   var aw=screen.availWidth-10;
   var x=(aw-w)/2;
   var y=(ah-h)/2;
   str+=",left="+x+",screenX="+x;
   str+=",top="+y+",screenY="+y;
   str+=",scrollbars=yes";
  }
  window.open(url,name,str);
}
function goLink1(url,name,h,w){
 PopWin1(url,name, h, w);
}

function hand(obj,browser){
if(document.all)
  obj.style.cursor='hand'
else  
  obj.style.cursor='pointer'
}
function chgCursor(x){
var x0=x-10;
var x1=x+10;
if((window.event.x>x0) && (window.event.x<x1))
 document.all.Layer3.style.cursor='hand'}

function resetCursor(){
 document.all.Layer3.style.cursor='default'}

function xx_format(amount) {
// returns the amount in the .99 format
    amount -= 0;
    return (amount == Math.floor(amount)) ? amount + '.00' : (  (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}


function changeDivContent(layer_id,new_content){
	if (document.getElementById(layer_id)){
		document.getElementById(layer_id).innerHTML = new_content;
	}
}

function changeDivVisibility(layer_id,new_visibility) {
	if (document.getElementById(layer_id)){
		document.getElementById(layer_id).style.visibility=new_visibility;
	}
}

function changeLayerStyle(obj,tip) {
    var s=document.getElementById(obj).style;
    if (tip){
        s.color='#cccccc';
    } else {
        s.color='#000066';
    }
        
}



function EntitiesToText(strEncodedText) {
  var strData    = String(strEncodedText);
  var objRegExp  = (new RegExp).compile("&#(x?)([0-9A-Z]+);", "ig");

  /* FOR EACH MATCH TO ANY ENTITY, REPLACE THAT
  ENTITY GLOBALLY WITH ITS SINGLE CHAR EQUIVALENT */
  while(strData.match(objRegExp)) {
    var strCharMatch   = RegExp.$2;
    var strRadixMatch  = RegExp.$1;
    var strRadix 	   = 10;		// Default is dec (10)
	if (strRadixMatch == 'x') strRadix = 16;
    var objRegExpMatch = new RegExp("&#x?" + strCharMatch + ";", "ig");
    strData = strData.replace(objRegExpMatch, String.fromCharCode(parseInt(strCharMatch, strRadix)));
  }
  return strData;
}

