var _console = null;

function getSize(strWhich) {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else {
    if( document.documentElement &&
        ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
      //IE 6+ in 'standards compliant mode'
      myWidth = document.documentElement.clientWidth;
      myHeight = document.documentElement.clientHeight;
    } else {
      if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
      }
    }
  }
	if (strWhich == "h")
		return myHeight;
	if (strWhich == "w")
		return myWidth;
	return null;
}


function allowBrowser (InString) {
	var Allow = false;
	var Browser = navigator.userAgent;
	if ((Browser.indexOf("Win9") !=-1) && (InString.indexOf("W") != -1)) Allow = true;
	if ((Browser.indexOf("WinNT") !=-1) && (InString.indexOf("N") != -1)) Allow = true;
	if ((Browser.indexOf("Win16") !=-1) && (InString.indexOf("w") != -1)) Allow = true;
	if ((Browser.indexOf("X11") !=-1) && (InString.indexOf("X") != -1)) Allow = true;
	if ((Browser.indexOf ("86K") !=-1) && (InString.indexOf("m") != -1)) Allow = true;
	if ((Browser.indexOf("PPC") !=-1) && (InString.indexOf("M") != -1)) Allow = true;
	return (Allow);
}


function allowInString (InString, RefString)  {
	if(InString.length==0) return (false);
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)  
			return (false);
	}
	return (true);
}

function allowNotInString (InString, RefString)  {
	if(InString.length==0) return (false);
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)!=-1)  
			return (false);
	}
	return (true);
}

function daysTil(Year, Month, Day)  {
	now = new Date();
	Hour = now.getHours();
	Minute = now.getMinutes();
	Second = now.getSeconds();
	elapse = Date.parse(new Date (Year, Month, Day, Hour, Minute, Second))  
		- Date.parse (new Date());
	elapse = Math.round (elapse / (24 * 60 * 60 * 1000));
	return (elapse);
}

function filenameOnly (InString)  {
	LastSlash=InString.lastIndexOf ('/', InString.length-1)
	OutString=InString.substring  (LastSlash+1, InString.length)
	return (OutString);	
}

function formatCommas (Val)  {
	OutString="";
	len=Val.length;
	if (len>=3) {
		while (len>0) {
			TempString=Val.substring(len-3, len)
			if (TempString.length==3) {
				OutString=","+TempString+OutString
				len=len-3;
			} else {
				OutString=TempString+OutString
				len=0
			}
		}
		if (OutString.substring(0, 1)==",") 
			Val=OutString.substring (1, OutString.length)
		else
			Val=OutString
	} 
	return (Val);
}

function formatDollar (Val, DollarSign)  {
	Val=""+Val;
	if (Val.indexOf (".", 0)!=-1) {
		Dollars = Val.substring(0, Val.indexOf (".", 0));
		Cents = Val.substring(Val.indexOf (".", 0)+1, Val.indexOf (".", 0)+3);
		if (Cents.length==0) 
			Cents="00";
		if (Cents.length==1)
			Cents=Cents+"0";
	} else {
		Dollars = Val;
		Cents = "00";
	}
	OutString="";
	len=Dollars.length;
	if (len>=3) {
		while (len>0) {
			TempString=Dollars.substring(len-3, len)
			if (TempString.length==3) {
				OutString=","+TempString+OutString
				len=len-3;
			} else {
				OutString=TempString+OutString
				len=0
			}
		}
		if (OutString.substring(0, 1)==",") 
			Dollars=OutString.substring (1, OutString.length)
		else
			Dollars=OutString
	} 
	if (DollarSign)
		return ("$"+Dollars+"."+Cents);
	else
		return (Dollars+"."+Cents);
}

function getMaxList ()  {
	var Count, NumItems, HighestVal
	NumItems = getMaxList.arguments.length;
	HighestVal = getMaxList.arguments[0];
	for (Count = 0; Count < NumItems; Count++) {
		if (getMaxList.arguments[Count] > HighestVal)
			HighestVal = getMaxList.arguments[Count]
	}
	return (HighestVal)
}

function getMinList ()  {
	var Count, NumItems, LowestVal
	NumItems = getMinList.arguments.length;
	LowestVal = getMinList.arguments[0];
	for (Count = 0; Count < NumItems; Count++) {
		if (getMinList.arguments[Count] < LowestVal)
			LowestVal = getMinList.arguments[Count]
	}
	return (LowestVal)
}


function ifExists (CheckVar) {
	CheckVar = "" + CheckVar; 
	if (CheckVar == "<undefined>")
		return (false);
	else
		return (true);
}

function ifExistsString (CheckVar) {
	if (CheckVar == null)
		return (false);
	else
		return (true);
}

function initUpper (InString)  {
	if(InString.length==0) return(InString)
	InString=InString.toLowerCase();
	Space=false;
	OutString="";
	OutString+=InString.substring(0, 1).toUpperCase();
	for(Count=1; Count<InString.length; Count++)  {
		if(InString.substring(Count, Count+1)==" ")  {
			Space=true;
			OutString+=InString.substring(Count, Count+1)
			continue;
		}
		if (Space)  {
			OutString+=InString.substring(Count, Count+1).toUpperCase();
			Space=false;
			continue;
		}
		OutString+=InString.substring(Count, Count+1);
	}
	return (OutString);
}

function initUpperQualify (InString)  {
	ParsedStringArray=parser(InString.toLowerCase(), " ");
	QualifyArray=initUpperQualifyWords();
	OutString=""
	for(Count=1; Count<=ParsedStringArray[0]; Count++)  {
		Match=false;
	for(CountArray=1; CountArray<=QualifyArray[0]; CountArray++)  {						if(ParsedStringArray[Count]==QualifyArray[CountArray]) {
Match=true;
				break;
			}
		}
		if ((Match==false) || (Count==1)) {
			OutString+=ParsedStringArray[Count].toUpperCase().substring (0, 1)
			OutString+=ParsedStringArray[Count].substring(1, ParsedStringArray[Count].length)
		}	
		else  {
			OutString+=ParsedStringArray[Count]
		}
		OutString+=" "
}
return(OutString);
}

function initUpperQualifyWords()  {
	QualifyArray=new makeArray(7);
	
QualifyArray[1]="a";
QualifyArray[2]="an";
QualifyArray[3]="the";
	QualifyArray[4]="of";
	QualifyArray[5]="at";
	QualifyArray[6]="for";
	QualifyArray[7]="by";

	return(QualifyArray);
}


function isAlphabeticChar (InString)  {
	if(InString.length!=1) 
		return (false);
	InString=InString.toLowerCase ()
	RefString="abcdefghijklmnopqrstuvwxyz";
	if (RefString.indexOf (InString, 0)==-1) 
		return (false);
	return (true);
}

function isAlphabeticString (InString)  {
	if(InString.length==0)
		return (false);
	InString=InString.toLowerCase ()
	RefString="abcdefghijklmnopqrstuvwxyz";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring(Count, Count+1);
		if (RefString.indexOf(TempChar, 0)==-1) 
			return (false);
	}
	return (true);
}

function isBlank (InString) {
	if (InString==null) return (!false)
	if (InString.length!=0)
		return (!true);
	else
		return (!false);
}

function isNotBlank (InString) {
	if (InString==null) return (false)
	if (InString.length!=0)
		return (true);
	else
		return (false);
}
	

function isNumberChar (InString)  {
	if(InString.length!=1) 
		return (false);
	RefString="1234567890";
	if (RefString.indexOf (InString, 0)==-1) 
		return (false);
	return (true);
}

function isNumberString (InString)  {
	if(InString.length==0) 
		return (false);
	RefString="1234567890";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)  
			return (false);
	}
	return (true);
}

function isPunc (InString)  {
	if(InString.length!=1) 
		return (false);
	RefString="!$()-_;:,.<>[]{}";
	if (RefString.indexOf (InString, 0)==-1) 
		return (false);
	return (true);
}

function isStringLower (InString)  {
	TestString=InString.toLowerCase();
	if (TestString==InString)
		return (true);
	else
		return (false);
}

function isStringUpper (InString)  {
	TestString=InString.toUpperCase();
	if (TestString==InString)
		return (true);
	else
		return (false);
}

function isUSZip (InString)  {
	if (InString.length==0) 
		return (false);
	if ((InString.length!=5) && (InString.length!=10))
		return (false);
	RefString="1234567890-";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1) 
			return (false);
	}
	return (true);
}

function isWithinRange (InString, RangeMin, RangeMax)  {
	if ((InString == null) || (InString == "")) 
		return (false) 
	if((InString>=RangeMin) && (InString<=RangeMax))
		return (true);
	else
		return (false);
}

function leftString (InString, num)  {
	OutString=InString.substring (InString, num);
	return (OutString);
}

function leftTrim (InString)  {
	OutString=InString;
	for (Count=0; Count < InString.length; Count++)  {
		TempChar=InString.substring (Count, Count+1);
		if (TempChar!=" ") {
			OutString=InString.substring (Count, InString.length)
			break;
		}
	}
	return (OutString);
}

function makeArray (NumElements, Fill)  {
	var Count;
	this.length = NumElements;
	for (Count = 1; Count <= NumElements; Count++)  {
		this[Count] = Fill;
	}
	return (this);
}

function makeArray2 (X, Y) {
	var Count;
	this.length = X;
	for (var Count= 1; Count <= X; Count++) 
		this[Count] = new makeArray(Y);
}


function makeArrayImplicit () {
	var Count;
	this.length=makeArrayImplicit.arguments.length;
	for (Count = 1; Count < makeArrayImplicit.arguments.length+1; Count ++)
	this[Count]=makeArrayImplicit.arguments[Count-1];
	return (this);
}

function makeArraySimple (NumElements) {
	var Count;
	this.length = NumElements;
	for (Count = 1; Count <= NumElements; Count++)
		this[Count]=0;
	return (this);
}

function padTextPrefix (InString, PadChar, DefLength)  {
	if (InString.length>=DefLength)
		return (InString);
	OutString=InString
	for (Count=InString.length; Count<DefLength; Count++)  {
		OutString=PadChar+OutString;
	}
	return (OutString);
}

function padTextSuffix (InString, PadChar, DefLength)  {
	if (InString.length>=DefLength)
		return (InString);
	OutString=InString
	for (Count=InString.length; Count<DefLength; Count++)  {
		OutString=OutString+PadChar;
	}
	return (OutString);
}

function parser (InString, Sep)  {
	NumSeps=1;
	for (Count=1; Count < InString.length; Count++)  {
		if (InString.charAt(Count)==Sep)
			NumSeps++;
	}
	parse = new makeArray (NumSeps);
	Start=0; Count=1; ParseMark=0;
	LoopCtrl=1;
	while (LoopCtrl==1)  {
		ParseMark = InString.indexOf(Sep, ParseMark);
		TestMark=ParseMark+0;
		if ((TestMark==0) || (TestMark==-1)){
			parse[Count]= InString.substring (Start, InString.length);
			LoopCtrl=0;
			break;
		}
		parse[Count] = InString.substring (Start, ParseMark);
		Start=ParseMark+1;
		ParseMark=Start;
		Count++;
	}
	parse[0]=Count;
	return (parse);
}

function pathOnly (InString)  {
	LastSlash=InString.lastIndexOf ('/', InString.length-1)
	OutString=InString.substring  (0, LastSlash+1)
	return (OutString);	
}

function rightString (InString, num)  {
	OutString=InString.substring (InString.length-num, InString.length);
	return (OutString);
}

function rightTrim (InString)  {
	OutString=InString;
	for (Count=InString.length; Count > 0; Count--)  {
		TempChar=InString.substring (Count-1, Count);
		if (TempChar!=" ") {
			OutString=InString.substring (0, Count)
			break;
		}
	}
	return (OutString);
}

function roundDollar (Val) {
	Dollar = Math.floor(Val) 
	Val = "" + Math.round(Val * 100)
	Decimal = Val.substring (Val.length-2, Val.length)
	return (Dollar + "." + Decimal);
}

function sortArray (SortArr) {
	var CurRow, RowMin, RowNext, Temp;
	for (RowCur = 1; RowCur < SortArr.length+1; RowCur++) {
		RowMin = RowCur;
		for (RowNext = RowCur; RowNext < SortArr.length+1; RowNext++) {
			if (SortArr[RowNext] < SortArr[RowMin]) {
				RowMin = RowNext;
			}
		}

		if (RowMin > RowCur) {
			Temp = SortArr[RowCur];
			SortArr[RowCur] = SortArr[RowMin];
			SortArr[RowMin] = Temp;
		}
	}
}

function spaceTrim(InString) {
	var LoopCtrl=true;
	while (LoopCtrl) {
		if (InString.indexOf("  ") != -1) {
			Temp = InString.substring(0, InString.indexOf("  "))
			InString = Temp + InString.substring(InString.indexOf("  ")+1, 
				InString.length)
		} else
			LoopCtrl = false;
	}
	if (InString.substring(0, 1) == " ")
		InString = InString.substring(1, InString.length)
	if (InString.substring (InString.length-1) == " ")
		InString = InString.substring(0, InString.length-1)
	return (InString)
}

function stripChar (InString, StripThis)  {
	OutString="";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar=InString.substring (Count, Count+1);
		if (TempChar!=StripThis)
			OutString=OutString+TempChar;
	}
	return (OutString);
}

function stripCharString (InString, CharString)  {
	OutString="";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar=InString.substring (Count, Count+1);
		Strip = false;
		for (Countx = 0; Countx < CharString.length; Countx++) {
			StripThis = CharString.substring(Countx, Countx+1)
			if (TempChar == StripThis) {
				Strip = true;
				break;
			}
		}
		if (!Strip)
			OutString=OutString+TempChar;
	}
	return (OutString);
}

function stripSpaces (InString)  {
	OutString="";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar=InString.substring (Count, Count+1);
		if (TempChar!=" ")
			OutString=OutString+TempChar;
	}
	return (OutString);
}

function testForLength (InString, Abs, LTE, GTE) {
	if (Abs != -1) {if(InString.length==Abs) return(true);} else
	if (LTE != -1) {if(InString.length<=LTE) return(true);} else
	if (GTE != -1) {if(InString.length>=GTE) return(true);} 
		return (false);
}


//==================================================

function mask (InString, Mask)  {
	LenStr = InString.length;
	LenMsk = Mask.length;
	if ((LenStr==0) || (LenMsk==0))
		return(0);
	if (LenStr!=LenMsk)
		return(0);
	TempString=""
	for (Count=0; Count<=InString.length; Count++)  {
		StrChar = InString.substring(Count, Count+1);
		MskChar = Mask.substring(Count, Count+1);
		if (MskChar=='#') {
			if(!isNumberChar(StrChar))
				return(0);
		}
		else if (MskChar=='?') {
			if(!isAlphabeticChar(StrChar))
				return(0);
		}
		else if (MskChar=='!') {
			if(!isNumOrChar(StrChar))
				return(0);
		}
		else if (MskChar=='*') {
		}
		else {
			if (MskChar!=StrChar) 
				return(0);
		}
	}
	return (1);
}

function isAlphabeticChar (InString)  {
	if(InString.length!=1) 
		return (false);
	InString=InString.toLowerCase();
	RefString="abcdefghijklmnopqrstuvwxyz";
	if (RefString.indexOf (InString.toLowerCase(), 0)==-1) 
		return (false);
	return (true);
}

function isNumberChar (InString)  {
	if(InString.length!=1) 
		return (false);
	RefString="1234567890";
	if (RefString.indexOf (InString, 0)==-1) 
		return (false);
	return (true);
}

function isNumOrChar (InString)  {
	if(InString.length!=1) 
		return (false);
	InString=InString.toLowerCase();
	RefString="1234567890abcdefghijklmnopqrstuvwxyz";
	if (RefString.indexOf (InString, 0)==-1)  
		return (false);
	return (true);
}



/*
  GetArgs - A general purpose routine to retrieve into an object
            the values of any arguments passed in the search part
            of a page's URL.
*/
function getArgs(url) {

  var args = new Object();
  if (url) {
    var query = url.search.substring(1);
  }
  else {
    var query = location.search.substring(1);
  }
  var pairs = query.split("&");
  for (var i = 0; i < pairs.length; i++) {
    var pos = pairs[i].indexOf('=');
    if (pos == -1) continue;
    var argname = pairs[i].substring(0, pos);
    var value = pairs[i].substring(pos+1);
    args[argname] = unescape(value);
  } 
  return args;
}



function debug(msg) {
    if ((_console == null) || (_console.closed)) {
        _console = window.open("", "console", "width=600,height=300,resizable");
        _console.document.open("text/plain");
    }
    _console.document.writeln(msg);
}

//==================================================



