<!--//

//Global functions
var windowName;

//***************************************************
//Generic trim function. Accepts a string
//Trim spaces before and after value
//***************************************************
function trim( str ) 
    {
 	// Immediately return if no trimming is needed
 	if( (str.charAt(0) != ' ') && (str.charAt(str.length-1) != ' ') ) 
         {
          return str; 
          }
 	// Trim leading spaces
 	while( str.charAt(0)  == ' ' ) 
         {
 	     str = '' + str.substring(1,str.length);
 	     }
 	 // Trim trailing spaces
 	 while( str.charAt(str.length-1)  == ' ' ) 
        {
 		str = '' + str.substring(0,str.length-1);
 	    }
 		return str;
      }

//***************************************************
//Generic replace char function. Accepts a string
//Trim spaces before and after value
//***************************************************
function replaceChars( str, replThis, withThis ) {

temp = "" + str; // temporary holder

while (temp.indexOf(replThis)>-1) {
	pos= temp.indexOf(replThis);
	temp = "" + (temp.substring(0, pos) + withThis + 
	temp.substring((pos + replThis.length), temp.length));
	}
	return temp;
}

//***************************************************
//Generic IsInt function.
//Makes sure the value of object is only a number
//***************************************************
function isInt(textObj)
	{
	var valueOfObject = textObj.value;
	var lengthOfObject = valueOfObject.length;
	for(var i = 0; i != lengthOfObject; i++) {
		aChar = valueOfObject.substring(i,i+1);
		if(aChar < "0" || aChar > "9") {
			return false;
			}
		}
		return true;
	}

//***************************************************
//Generic badChars function
//Returns false if any of the listed chars. exists
//in string passed to it.
//***************************************************
function badChars(myString)
	{
	var arrBadChars = new Array();
	arrBadChars[0]="\\";
	arrBadChars[2]="!";
	arrBadChars[3]="*";
	arrBadChars[4]="\;";
	arrBadChars[5]="\:";
	arrBadChars[6]="\"";
	arrBadChars[7]="\'";
	arrBadChars[8]="\,";
	arrBadChars[9]=">";
	arrBadChars[10]="<";
	arrBadChars[11]="\%";
	arrBadChars[12]="\&";
	
	for(var i = 0; i < arrBadChars.length; i++) {
		if(myString.indexOf(arrBadChars[i]) > -1) {
			return true;
			//break;
			}//End of if
		}//End of for
		return false;
	}//End of badChars Function

//***************************************************
//Generic PopUp function
//This function takes the string passed and launches 
//the appropriate popup window
//Expects:
//type: Either "help" or other
// template: The filename to open
//winWidth: The width of the window
//winHeight: The height of the window
//***************************************************
function PopUp(type, template, winWidth, winHeight, scrollable, winResize)
	{
		var templatePath;
		var myLeft 	= 0;
		var myTop 	= 0;
		var resize = "no";
		//&& winResize!='undefined'
		/*
		if(winResize!=""){
			resize = "yes";
			}
		*/
		if(type=="help"){
			templatePath = "help/help_shell.jsp?template="+template;
			myLeft = 150;
			myTop = 100;
		}else{
			templatePath = template;
		}
		
		windowName = window.open(templatePath,"windowName","toolbar=no,menubar=no,scrollbars="+scrollable+",width="+winWidth+",height="+winHeight+",resizable="+resize+",alwaysRaised=yes,maximize=no,left="+myLeft+",top="+myTop);
		window.windowName.focus();
	}

//***************************************************
//function to kill popups if parent is closed
//***************************************************
function closePopUp()
	{
	if(windowName && !windowName.closed)
		{
		windowName.close();
		}
	}	
	
//*************************************************
//Function to swap images
//*************************************************
function MM_swapImgRestore() { //v3.0
	  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}
	
	function MM_preloadImages() { //v3.0
	  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}
	
	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}
	
	function MM_swapImage() { //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}
	

//*************************************************
//Function to auto-timeout after 31 minutes
//*************************************************
/*
var currentMin = 0;
function checkTimeout()
	{
	currentMin = currentMin +1;
	if(currentMin==31){
		//Only logout if NOT on index.jsp page
		var thisPage = new String(window.location);
		if(thisPage.indexOf("index.jsp")==-1){	
			clearInterval(timerID);
			document.frmLogout.submit();
			}
		}
	}
timerID = setInterval('checkTimeout()', 60000)
*/
//*************************************************
//Populate function: Used for start and end date by passing appropriate form objects
//*************************************************
function Populate(theForm,selYear,selMonth,selDay) 
	{
	with(theForm)
		{
		//This is a kludge to deal with Netscrap
		if(selYear.options[selYear.selectedIndex].value != "-")
			{
				timeA = new Date(selYear.options[selYear.selectedIndex].text, selMonth.options[selMonth.selectedIndex].value,1);
				timeDifference = timeA - 86400000;
				timeB = new Date(timeDifference);
				var daysInMonth = timeB.getDate();
				for (var i = 0; i < selDay.length; i++) {
					selDay.options[0] = null;
					}
				for (var i = 0; i < daysInMonth; i++) {
					selDay.options[i] = new Option(i+1);
					if(i < 9){
						var a;
						a = i+1;
						selDay.options[i].value = "0" + a;
						selDay.options[i].text = "0" + a;
					}else{
						selDay.options[i].value = i+1;
						}
					}
				selDay.options[0].selected = true;
			}
		}
	}
		
function getYears(theForm, browser, startYear, endYear) 
	{
	//This dynamically populates the year list boxes
	var curDate = new Date();
	var curYear = (curDate.getYear()-3);
		
	//Yet another Netscrap kludge for year
	if(browser=="ns4" || browser=="ns4l" || browser=="ns6" ||  browser=="ns6l"){ 
		curYear = curYear-1;
		curYear = curYear+1901;
	}
	var topYear = curYear + 20;
	var arrYears = new Array();
	for(var x=0; curYear <= topYear; x++) {
		arrYears[x] = curYear;
		curYear = curYear + 1;
		}
	var currYearIndex = 0;
	with (theForm)
		{
		for (var i = 0; i < selYearStart.length-1; i++) {
			selYearStart.options[i] = null;
			}
			
		for (var i = 0; i < selYearEnd.length-1; i++) {
			selYearEnd.options[i] = null;
			}
		currDate = new Date();
		currYear = currDate.getFullYear();
		for (var i = 0; i < selYearStart.length-1; i++) {
			selYearStart.options[i] = new Option(arrYears[i]);
			selYearEnd.options[i] = new Option(arrYears[i]);
			//Set a flag to indicate current year
			if(currYear == arrYears[i]){
				currYearIndex = i;
				}
			}
			
		if(!isNaN(endYear)){
			
			//Set focus to years specified
			var startYearIndex = 0;
			var endYearIndex = 0;
			for (var i = 0; i < selYearStart.length-1; i++) {
				var curVal = arrYears[i];
				//endYear = trim(endYear);
				if(startYear == curVal){
					startYearIndex = i;
				}
				if(endYear == curVal){
					endYearIndex = i;
				}
			}
			selYearStart.options[startYearIndex].selected=true;
			selYearEnd.options[endYearIndex].selected=true;
		}else{
			//Set focus to current year in year list boxes
			selYearStart.options[currYearIndex].selected=true;
			selYearEnd.options[currYearIndex+1].selected=true;
			}
		}
	}
function ResetForm(myFormObject)
	{
	with(myFormObject)
		{
		txtLineID.value	="";
		txtDN.value		="";
		txtLEN.value	="";
		txtCaseID.value ="";
		selSection.options[0].selected=true;
		if(myFormObject == document.frmMessageSearch){
			txtCCCID.value	="";
			selMessageType.options[0].selected=true;
			}
		
		//Deal with date drop downs
		chkToday.checked=false;
		chkHour.checked=false;
		
		selYearStart.options[1].selected=true;
		selYearEnd.options[1].selected=true;
		selMonthStart.options[0].selected=true;
		selMonthEnd.options[0].selected=true;
		//Clean up the Day drop downs
		for (var i = 31; i > 0; i--) {
			selDayStart.options[i] = null;
			selDayEnd.options[i] = null;
			}
		selDayStart.options[0].value="--";	
		selDayStart.options[0].text="--";	
		selDayEnd.options[0].value="--";	
		selDayEnd.options[0].text="--";	
		selHourStart.options[0].selected=true;
		selMinStart.options[0].selected=true;
		selHourEnd.options[0].selected=true;
		selMinEnd.options[0].selected=true;
		
		//Make sure both are enabled
		chkToday.disabled=false;
		chkHour.disabled=false;
		}
	}
//Function for "Today" & "Past Hour" checkboxes
function SetDates(TheForm, TheCheckBox, browser)
	{
	//Determine the current date
	var curDate 	= new Date();
	var curYear 	= (curDate.getYear());
	var lastYear	= curYear-3;
	var topYear 	= lastYear + 20;
	var curMonth 	= (curDate.getMonth()+1);
	var curDay		= (curDate.getDate()-1);
	var curHour		= curDate.getHours();
	var curMin		= curDate.getMinutes();
	var pastHour	= curHour - 1;
	var curYearIndex = 0;
	
	//Fix year if user has Netscape
	if(browser=="ns4" || browser=="ns4l" || browser=="ns6" || browser=="ns6l"){ 
		curYear 	= curYear+1901;
		lastYear 	= lastYear+1901;
		topYear		= topYear+1901;	
	}
	
	//Loop over a 10 year span (begining 1 year before cur. year) to determine index of cur. year in drop down
	for(var x=0; lastYear <= topYear; x++) {
		if(lastYear==curYear){
			curYearIndex = x;
			break;
			}
		lastYear = lastYear + 1;
		}
	//Make sure the pastHour value is at least 0, otherwise, set to 23 Hr 
	if(pastHour < 0) {
		pastHour = 23;
		}
	
	with(TheForm)
		{
		if(TheCheckBox.checked==true) {		
			//Set the start date & time to today
			selYearStart.options[curYearIndex].selected=true;
			selMonthStart.options[curMonth].selected=true;
			Populate(TheForm, selYearStart, selMonthStart, selDayStart);
			selDayStart.options[curDay].selected=true;
			
			//Set the end date & time to today
			selYearEnd.options[curYearIndex].selected=true;
			selMonthEnd.options[curMonth].selected=true;
			Populate(TheForm, selYearEnd, selMonthEnd, selDayEnd);
			selDayEnd.options[curDay].selected=true;
			//Set the time to the whole day, or past hour
			if(TheCheckBox.name=="chkHour") {
				selHourStart.options[pastHour].selected=true;
				selMinStart.options[curMin].selected=true;
				selHourEnd.options[curHour].selected=true;
				selMinEnd.options[curMin].selected=true;
				chkToday.disabled=true;
			} else {
				//Whole day (00:01 to 23:59)
				selMinStart.options[1].selected=true;
				selHourEnd.options[23].selected=true;
				selMinEnd.options[59].selected=true;
				chkHour.disabled=true;
				}
		} else {
			selYearStart.options[curYearIndex].selected=true;
			selYearEnd.options[curYearIndex].selected=true;
			selMonthStart.options[0].selected=true;
			selMonthEnd.options[0].selected=true;
			//Clean up the Day drop downs
			for (var i = 31; i > 0; i--) {
				selDayStart.options[i] = null;
				selDayEnd.options[i] = null;
				}
			selDayStart.options[0].value="--";	
			selDayStart.options[0].text="--";	
			selDayEnd.options[0].value="--";	
			selDayEnd.options[0].text="--";	
			selHourStart.options[0].selected=true;
			selMinStart.options[0].selected=true;
			selHourEnd.options[0].selected=true;
			selMinEnd.options[0].selected=true;
			
			//Make sure both are enabled
			chkToday.disabled=false;
			chkHour.disabled=false;
			}// End of if(TheCheckBox...
		}//End of with
	}
//-->
