//PCR 5322 5/15/2006 jwirges  currently when we open popups we check for netscape or everything else change 
//                            to check for ie or leave for every thing else, set global variable IsIEBrowser here

/* Begin style sheets detection */
	//Detect browser, use ns.css and detect screen width resolution to use correct additional css file.
if (parseInt(navigator.appVersion) == 5) {
 		if (screen.width>=1280) {
			document.write('<link rel="stylesheet" href="css/1280.css" type="text/css">');
			document.write('<style type="text/css" media="all"> @import "css/ns.css"; </style>'); 
		}
		else if (screen.width==1152) {
			document.write('<link rel="stylesheet" href="css/1152.css" type="text/css">');
			document.write('<style type="text/css" media="all"> @import "css/ns.css"; </style>'); 
		}
		else if  (screen.width==1024) {
			document.write('<link rel="stylesheet" href="css/1024.css" type="text/css">');
			document.write('<style type="text/css" media="all"> @import "css/ns.css"; </style>'); 
		}
		else if (screen.width==800) {
			document.write('<link rel="stylesheet" href="css/800.css" type="text/css">');
			document.write('<style type="text/css" media="all"> @import "css/ns.css"; </style>'); 
		}
}
else {  
		if (screen.width>=1280){
			document.write('<style type="text/css" media="all"> @import "css/1280.css"; </style>'); 
		}
		else if (screen.width==1152) {
			document.write('<style type="text/css" media="all"> @import "css/1152.css"; </style>'); 
		}
		else if  (screen.width==1024) {
			document.write('<style type="text/css" media="all"> @import "css/1024.css"; </style>'); 
		}
		else if  (screen.width==800) {
			document.write('<style type="text/css" media="all"> @import "css/800.css"; </style>'); 
		}
}		
/* End style sheets detection */

/* setup for navigator detection*/
var IsIEBrowser;
if(navigator.appName == "Microsoft Internet Explorer")
{
	IsIEBrowser = true;
}
else
{
	IsIEBrowser = false;
}
 
//get repeater index and info

function GetRepeaterInfo(fname) 
{
	var idx1 = fname.indexOf(":");
	var idx2 = fname.lastIndexOf(":");
	var retVal = new Array();
	retVal[0] = fname.substring(idx1 + 5, idx2);
	retVal[1] = fname.substring(0, idx1 + 5);
	return retVal;
}

function Trim(s) 
{
  // Remove leading spaces and carriage returns
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}
function AskConfirm(msg)
{
	return confirm(msg);
}

// timer
sessionTimer = new Object();
sessionTimer.leftMinutes;
sessionTimer.expireMinutes;
sessionTimer.logOutMessage;
sessionTimer.timeShortMessage;

var WarnWindow;

function SetTimeOutMinute(formName, fieldName)
{

    if (fieldName == undefined)
    	sessionTimer.expireMinutes = parseInt(document.forms[formName]["txtTimeOutMinute"].value);
    else
	    sessionTimer.expireMinutes = parseInt(document.forms[formName][fieldName].value);
	    
    if (window.name == "frmExpenseEdit")
    {
        CheckRequiredAndError();
    }
}

function ResetTimer()
{    
	InitClock();
	TimerDown();
}
function TimerDown() 
{
    window.status = "Your JAMIS e-timecard session will time out in " + sessionTimer.leftMinutes + " minutes.";
	
	if (sessionTimer.leftMinutes <= 0)
	{ 
//        if (navigator.appName == 'Netscape')
        if(IsIEBrowser)
        {  
            AllowExit();
//            window.top.location.href = "LogIn.aspx?Timeout"; 
            window.top.location.href = "TimedOut.htm";
        }
        else
        {
            AllowExit();
//            window.top.location.href = "LogIn.aspx?Timeout";
            window.top.location.href = "TimedOut.htm";
            if (dialogWin.win && !dialogWin.win.closed)
            {
    	        dialogWin.win.close();
    	        return;
            }
        }
//      else
//      {  
//          AllowExit();
//          window.top.location.href = "LogIn.aspx?Timeout"; 
//      }
	}
	if (sessionTimer.leftMinutes == 5)
	{	
		var WarnWindowTop = (screen.height - 100) / 2;
		var WarnWindowLeft = (screen.width - 650) / 2;											
		WarnWindow = window.open("", "tinyWindow", 'directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=no,modal=yes,width=650,height=100, top='+WarnWindowTop+', left='+WarnWindowLeft+'');
		WarnWindow.document.write("<body bgcolor=#ffff33><p align='center'><font color=#ff0033 size=5><b> Your JAMIS e-timecard session is running out of time! </b></font></p></body>");
		setTimeout("WarnWindow.close();",4500);
	}
//	if (sessionTimer.leftMinutes == 5)
//	{	
//		if (confirm(sessionTimer.timeShortMessage))
//		{
//			ResetTimer();
//		}
//	}
    
	--sessionTimer.leftMinutes;	
}
var tmrID;
function InitClock() 
{
	sessionTimer.leftMinutes = sessionTimer.expireMinutes;
	//sessionTimer.logOutMessage = document.frmTimeCardEdit.txtLogOutMessage.value;
	sessionTimer.logOutMessage = "Your JAMIS e-timecard session has timed out. If you had unsaved data, you must log in again and reenter it.";
	sessionTimer.timeShortMessage = "Your JAMIS e-timecard session running out of time, click [OK] to reset the timer, [Cancel] to ignor this message.";
	ClearTimer(tmrID)
	SetTimer()
	
}
function SetTimer()
{
    //window.setInterval("TimerDown()", 60000);	
    tmrID = window.setInterval("TimerDown()", 60000);
}
var startTime;
var date = new Date();
var winOpener;
function ClearTimer()
{
    window.clearInterval(tmrID);
}

function StartTime(winObj)
{   
    winOpener = winObj;
    startTime = date.getTime();
}
var funcButton;
function ElapsedMinute()//onUnLoad, not reseting time, applying time left to main form
{
    var present = new Date();
    var presentTime = present.getTime();
    var elapsedTime = Math.round((presentTime - startTime) / 60000);    
    
    if (funcButton !== 'search')
    {
//        if (navigator.appName == 'Netscape')
        if(IsIEBrowser)
        {
            winOpener.sessionTimer.leftMinutes = winOpener.sessionTimer.expireMinutes - elapsedTime;
            winOpener.window.status = "Your JAMIS e-timecard session will time out in " + winOpener.sessionTimer.leftMinutes + " minutes.";
        }
        else
        {
            window.opener.sessionTimer.leftMinutes = window.opener.sessionTimer.expireMinutes - elapsedTime;
        }
//        else
//        {
//            winOpener.sessionTimer.leftMinutes = winOpener.sessionTimer.expireMinutes - elapsedTime;
//            winOpener.window.status = "Your JAMIS e-timecard session will time out in " + winOpener.sessionTimer.leftMinutes + " minutes.";
//        }
    }
    TimerDown();
}

function ElapsedTime(buton)//ibtnSearch on click, reset time if not less the 0
{
    funcButton = buton;
    var etPresent = new Date();
    var etPresentTime = etPresent.getTime();
    var etElapsedTime = Math.round((etPresentTime - startTime) / 60000);
    
//    if (navigator.appName == 'Netscape')// reset minutes
    if(IsIEBrowser)
    {
        if (winOpener.sessionTimer.expireMinutes <= etElapsedTime)
        {
            window.close();
        }
        else//reset minutes
        {
            winOpener.sessionTimer.leftMinutes = winOpener.sessionTimer.expireMinutes;
        }
    }
    else
    {
        if (window.opener.sessionTimer.expireMinutes > etElapsedTime)
        {
            window.opener.sessionTimer.leftMinutes = window.opener.sessionTimer.expireMinutes;
        }
    }
//    else    //ie
//    {
//        if (winOpener.sessionTimer.expireMinutes <= etElapsedTime)
//        {
//            window.close();
//        }
//        else//reset minutes
//        {
//            winOpener.sessionTimer.leftMinutes = winOpener.sessionTimer.expireMinutes;
//        }
//    }
}

function FAQ()
{
	window.open("help/EtFaq.htm",'FAQ','',true);
}

function Help()
{
	window.open("help/Index.htm",'Help','',true);
}
function WhatsNew()
{
	window.open("whatsNew/Index.htm",'WhatsNew','',true);
}
function Legend()
{
	window.open("Legend.aspx",'Legend','',true);
}

function PrintWindow()
{	
	window.print();
}
//used for tabbing
var tabKey = "";
var shiftKey = false;
function keyDown(e)
{
	if (window.event)
	{ 
		if (window.event.shiftKey)
		{
			shiftKey = true;
		}
		else
		{
			shiftKey = false;
		}
		tabKey = window.event.keyCode;
	}
	else if (e) 
	{
		if (e.shiftKey)
		{
			shiftKey = true;
		}
		else
		{
			shiftKey = false;
		}
		tabKey = e.which;
	}
}
function ShowToolTip(fName, inst)
{
	var InstructionWin;
	var instructions;
	var winHeight;
	var winWidth;
	//form that got us here
	switch (fName)
		{
			case "frmComments":
				winHeight = 240;
				winWidth = 500;
				break;
			case "frmConfirmErrors":
				winHeight = 240;
				winWidth = 500;
				break;
			case "frmCreateCombinationPayCode":
				winHeight = 240;
				winWidth = 500;
				break;
			case "frmExplanations":
				winHeight = 190;
				winWidth = 500;
				break;
			case "fmLateEntry":
				winHeight = 320;
				winWidth = 500;
				break;	
			case "fmStartStopTime":																																						
				winHeight = 320;
				winWidth = 500;
				break;
			case "frmTimeCardErrors":
				winHeight = 240;
				winWidth = 500;
				break;
			case "frmExplainReject":
				winHeight = 200;
				winWidth = 500;
				break;
			case "frmItemizeCost":
				winHeight = 480;
				winWidth = 760;
				break;
			case "frmCertification":
			    winHeight = 200;
				winWidth = 500;
				break;
		    case "frmExpenseDetail":
			    winHeight = 200;
				winWidth = 500;
				break;
			case "frmConfirmExpenseError":
			    winHeight = 300;
				winWidth = 500;
				break;
			case "frmExpenseConfirmErrors":
			    winHeight = 200;
				winWidth = 500;
				break;
			case "frmLookUpExpenseLocation":
			    winHeight = 300;
				winWidth = 500;
				break;
			case "frmMileage":
			    winHeight = 200;
				winWidth = 500;
				break;
			case "frmReceiveReceipt":
			    winHeight = 300;
				winWidth = 500;
				break;
		}
	//put it all together and print to screen
	InstructionWin = window.open("Inst.htm","Instructions", "directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=yes,modal=yes,width=" + winWidth + ",height=" + winHeight);		
	InstructionWin.document.open();
	instructions = inst;
	// RejectedTimeCard may not be used will check later - Manny
	if (fName == "RejectedTimeCard" || fName == "RejectedRequest" || fName == "RejectedReport")
		InstructionWin.document.write("<html><title>Reject Information</title><head><script language='JavaScript'></script></head><body><form><table border=0><tr><td align=right><a href='javascript:window.print();'><img border='' id='ibtnPrint' title='Print Instructions' alt='Print Instructions' src='images/subprint.png' Width='41px' Height='19px'><\/a><\/td><\/tr><tr><td><br>" + instructions + "<br><br><\/td><\/tr><tr><td align=right>&nbsp;&nbsp;<a href='javascript:window.close();'><img border='' id='ibtnClose' title='Close' alt='Close' src='images/close.png' width='67px' height='25px' ></a><\/td><\/tr></table><\/form><\/body><\/html>");
	else
		InstructionWin.document.write("<html><title>Instructions</title><head><script language='JavaScript'></script></head><body><form><table border=0><tr><td align=right><a href='javascript:window.print();'><img border='' id='ibtnPrint' title='Print Instructions' alt='Print Instructions' src='images/subprint.png' Width='41px' Height='19px'><\/a><\/td><\/tr><tr><td><br>" + instructions + "<br><br><\/td><\/tr><tr><td align=right>&nbsp;&nbsp;<a href='javascript:window.close();'><img border='' id='ibtnClose' title='Close' alt='Close' src='images/close.png' width='67px' height='25px' ></a><\/td><\/tr></table><\/form><\/body><\/html>");
			
	InstructionWin.document.close();
}
function ClearEntry(fName)
{	
	var yesNo = confirm(" Are you sure you want to delete this entry? ");
	if (yesNo)
	{
		return true ;
	}	
	else
	{
		return false ;
	}
}
function SendMail(mailURL)
{
   var email;
   if (mailURL != "")
   {
      email = window.open(mailURL);
//      email.close();

   }
   
}

function DisplayMenuOnTop()
{
//	if (navigator.appName != 'Netscape') 
    if(IsIEBrowser)
	{
		ProcessOtherField("ctlTimeCardSelector_ddlDate", "none");
		ProcessOtherField("ctlTimeCardSelector_ddlEmployeeTimecard", "none");
		ProcessOtherField("ddlEmployee", "none");
		ProcessOtherField("ddlDelegatee", "none");
		ProcessOtherField("ddlDelegator", "none");
		ProcessOtherField("ddlSchedule", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlRequest", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlApproveRequest", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlVendor", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlReport", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlApproveReport", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlDelegator", "none");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlExpenseForm", "none");
	}
}

function ResumeOtherFields()
{
//	if (navigator.appName != 'Netscape')
    if(IsIEBrowser)
	{ 
		ProcessOtherField("ctlTimeCardSelector_ddlDate", "block");
		ProcessOtherField("ctlTimeCardSelector_ddlEmployeeTimecard", "block");
		ProcessOtherField("ddlEmployee", "block");
		ProcessOtherField("ddlDelegatee", "block");
		ProcessOtherField("ddlDelegator", "block");
		ProcessOtherField("ddlSchedule", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlRequest", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlApproveRequest", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlVendor", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlReport", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlApproveReport", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlDelegator", "block");
		ProcessOtherField("_ctl0_JamisContentPlaceHolder_ddlExpenseForm", "block");
	}
}

function ProcessOtherField(field, display)
{
	var onTopFld;

	onTopFld = document.getElementById(field);
	if (onTopFld != null)
	{
		onTopFld.style.display = display;
	}
}

function ReplaceSpecialChar(inStr)
{
	var outStr;
	outStr = inStr.replace(/&amp;/gi, "&");
//	outStr = outStr.replace(/&gt;/gi, ">");
//	outStr = outStr.replace(/&lt;/gi, "<");

	return outStr;	
}

var _btnAttachmentImage, _txtAttachmentFlag;
function AttachmentEdit(parameters, imgButton, attachFlag, editable)
{
    _btnAttachmentImage = imgButton;
    _txtAttachmentFlag = attachFlag;
	dialogWin.name = "AttachmentEdit";
    if(IsIEBrowser)
    {
		w = 770; 
		h = 547;
	}
	else
	{
		w = 760; 
		h = 560;
	} 

	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h - 40) / 2;
	if (editable == null)
	   editable = "true";
	var pageUrl = "AttachmentEdit.aspx?" + parameters + "&Edit=" + editable;
		ResetTimer();
		if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed))
			dialogWin.win = window.open(AddDynamicSessionParameter(pageUrl),'','directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=yes,modal=yes,top='+wint+',left='+winl+',width=' + w + ',height=' + h);
		else
			dialogWin.win.focus();
	
	return false;
}

function AttachmentEditExit(rows, callFrom)
{
/*
	if(IsIEBrowser)
	{
	    window.returnValue=new Array(rows);
		if (callFrom == "close")
    	{
	       window.close();
	    }
	}
	else
	{
*/
		if (callFrom == "close")
    	{
	       window.close();
	    }
	    else
	    {
	        window.opener.CallAttachmentEditReturn(rows);
	    }
	

}

function CallAttachmentEditReturn(rows)
{
    SetAttachmentEditReturn(_btnAttachmentImage, _txtAttachmentFlag, rows);
}

function SetAttachmentEditReturn(image, existFlag, retValue)
{
    try
    {
		if (retValue > 0)
		{
			image.src = "images/subattachments2.png";
			existFlag.value = "true";
//			existFlag = true;
		}
		else
		{
			image.src = "images/subattachments1.png";
			existFlag.value = "false";
//			existFlag = false;
		}
	}
	catch (e)
	{}
}
function timeOnFocus(tb)
{
    amtBefore = tb.value;
}
//used in Expense and Start Stop time
var letters = false;
var halfLife = false;
function TimeOnBlur(tb)
{
    var cellVal = tb.value;
    var src = tb.name;
    var link;
    var strVal;
    halfLife = false;
    //check for length
    if(cellVal.length == 0)
    {
        return;     
    }
    //check for change
    if(cellVal == amtBefore)
    {
        return;
    }    
    else    
    {
        if(src.match(/rptExpenseEdit/)) 
	    {
            var txtChange = '_ctl0_JamisContentPlaceHolder_txtExpenseReportChanged';
            window.document.getElementById(txtChange).value = 'true';
            src = src.replace(/([:])/g,"_");
        }
        else
        {
            var rptInfo = GetRepeaterInfo(src);
	        var lNum = rptInfo[0];
	        if(src.match(/txtStartTime/))
            {
		        link = "_txtStartTime"  
	        }
	        else 
	        {
		        link = "_txtStopTime"
	        }
	        src = "rptStartStopTime__ctl" + lNum + link;
	        
	        
        }
    }
    //check for any letter except a, p, or m ;,.
    var numChk = cellVal.match(/([b-l]|[n]|[o]|[q-z]|[\/;,.])/i);  
	if(isNaN(numChk))
	{
		alert("Letters cannot be used in this function, " + numChk);
		strVal = "";
		window.document.getElementById(src).value = "";
		window.document.getElementById(src).focus();
		return;
	}
    var iPos = cellVal.indexOf(":");
    if((cellVal.match(/pm/)) || (cellVal.match(/PM/)))
    {
        halfLife = true;
    }
    cellVal = cellVal.replace(/[a-z]|\s*/gi,'');
    if(iPos >= 0)// colon found
    {
        var cellArray = cellVal.split(':');
        //work on the front half
        if(halfLife) //pm found
	    {
		    if(cellArray[0] < 12)
		    {
		        cellArray[0] = (cellArray[0] * 1) + 12;	 
		    }
	    } 
	    var szArray = cellArray[0].toString();
	    switch (szArray.length)
	    {
            case 0:
                cellArray[0] += '00';
                break;
            case 1:
                cellArray[0] = '0' + cellArray[0] ;
                break;
            case 2:
                break;
            default:
                cellArray[0] = cellArray[0].substr(0,2);
                break;
	    }
	    //work on the back half
	    cellArray[1] = cellArray[1].replace(/[a-z]|\s*/gi,'');	   
	    switch (cellArray[1].length)
	    {
            case 0:
                cellArray[1] += '00';
                break;
            case 1:
                cellArray[1] += '0';
                break;
            default:
                cellArray[1] = cellArray[1].substr(0,2);
                break;
	    }
	    //glue back together
	    strVal = (cellArray[0] + ":" + cellArray[1]);
	    strVal = strVal.substr(0,5)
    }
    else//no colon but maybe am/pm  
    {        
        switch (cellVal.length)
        {
            case 0:
                strVal = "30:";//forces "Invalid time entered" message
                break;
            case 1:
                strVal = "0" + cellVal.substr(0,1) + ":00";
                break;
            case 2:
                strVal = cellVal.substr(0,2) + ":00";
                break;
            case 3:
                strVal = "0" + cellVal.substr(0,1) + ":" + cellVal.substr(1,2);
                break;
            default:        
                strVal =  cellVal.substr(0,2) + ":" + cellVal.substr(2,2);
                break;
        }
        if(halfLife) //pm found
	    {
	        var cellArray = strVal.split(':');
	        if(cellArray[0] < 12)
		    {
		        cellArray[0] = (cellArray[0] * 1) + 12;
		        strVal = (cellArray[0] + ":" + cellArray[1]);	    
		    }
	    }
    }
		var int1 = parseInt(strVal.substr(0,2));
		var int2 = parseInt(strVal.substr(3,2));
		//rework for both 
		if((int1 > 23) || (int2 > 59))
		{
			alert("Invalid time entered, \nplease use the format hh:mm, \nfrom 00:00 to 23:59");
			document.getElementById(src).value = ""
		    window.document.getElementById(src).focus();
		    return;
		}
	/////  
	window.document.getElementById(src).value = strVal; 
  
}
function AddDynamicSessionParameter(redirectUrl)
{
    var qst = redirectUrl.indexOf("?");
	if (qst > -1)
		redirectUrl = redirectUrl + "&";
	else
		redirectUrl = redirectUrl + "?";
	redirectUrl = redirectUrl + "hdFormWonder=" + FindWonder();
	//alert(redirectUrl);
	return redirectUrl;

}
function FindWonder()
{
   var wonderField, wFormName;
   for (var i = 0; i < document.forms.length; i++)
   {
      wFormName = document.forms[i].name;
//      alert(wFormName);
      if (wFormName == "aspnetForm")
         wonderField = document[wFormName]["_ctl0:hdFormWonder"];
      else
         wonderField = document[wFormName].hdFormWonder;
     if (wonderField != null)
         break;
   }
   if (wonderField == null)
      return null;
   else
//      alert("wonder " + wonderField.value);
     return wonderField.value;
}

function CHECK_NUMBER(obj_Box)
{
	obj_Box.value = obj_Box.value.trim();
	if(obj_Box.value==null || obj_Box.value=="")
		obj_Box.value=0;
	else
	{
	    var num = obj_Box.value.replace(/\,/g, ""); 

	    if(isNaN(Number(num)))
	    {
		    alert("Invalid number, please correct the value or set it as zero.");
		    obj_Box.focus();
		    obj_Box.select();
		    return false;
	    }
	}
	
	return true;
}

