var TimeField;
var goHours = 0;
var goMins = 0;
var goSecs = 0;
var goPM = "";
/////////////////////////////////////////////////////////	
function setTimeField(ptf) 	{
  	TimeField=ptf;
  	
  	// if we have a time, try to use it
  	if(TimeField.value != '') { // we have time, try to parse it
  		parseUpTimeValue(TimeField.value);  		
  		
  	}
  	// if we have no time or not able to use existing time, use current time
  	if(goHours == 0) {
  		var d = new Date();
  		var dHours =d.getHours();
		if (dHours>12){
			goHours = dHours - 12;
			goPM ="pm";
		} else {
			goHours = dHours;
			goPM = "am";
		}
		// defaulting minutes and seconds to 0
  		//goMins = d.getMinutes();
  		//goSecs = d.getSeconds();
  		doMins = 0;
  		goSecs = 0;
  	}
  	
  	writeOpener();
}

function returnDatabasePath() {
	var sCurrentLoc = document.location.toString().toLowerCase();
 	var nsfPos = sCurrentLoc.indexOf('.nsf');
 	var dbPath = sCurrentLoc.substr(0, nsfPos + 5);
 	return dbPath;
}

function getLeft() {
	return returnDatabasePath() + 'TimeSelect/$File/left.gif';
}

function getRight() {
	return returnDatabasePath() + 'TimeSelect/$File/right.gif';
}

/////////////////////////////////////////////////////////
function writeOpener() {
	//alert('goHours = ' + goHours + '\ngoMins = ' + goMins + '\ngoSecs = ' + goSecs + '\ngoPM = ' + goPM)
	
	var twin = window.open('', '', 'width=200, height=100, resizable, top=' + event.offsetX + ',right=' + event.offsetY);
	
	var allHTML = '<html><head><title>Select Time</title>\n';
	
	allHTML += '<Script Language="JavaScript">\n';
	allHTML += 'var form1;\n';
	allHTML += 'function ChangeColor(tdID) { tdID.bgColor="#808080"; }\n';
	allHTML += 'function ReturnColor(tdID) { tdID.bgColor="#ffffff"; }\n';
	allHTML += 'function MakeReady(obj) {obj.select(); obj.focus(); }\n';
	
	allHTML += 'function sub(obj,MaxVal,MinVal, inc) {\n';
	allHTML += 'var tempnew = obj.value - inc;\n';
	allHTML += 'var insertnew = 0;\n';
	allHTML += 'if(tempnew >= MinVal) {\n';
	allHTML += 'insertnew = tempnew;\n';
	allHTML += '} else {\n';
	allHTML += 'insertnew = ++MaxVal - (inc - obj.value);\n';
	allHTML += '}\n';
	allHTML += 'if(insertnew < 10) {insertnew = 0 + insertnew;}\n';
	allHTML += 'obj.value = insertnew;\n';
	allHTML += '}\n';
	
	allHTML += 'function Change() {';
	allHTML += "if ((document.forms[0].M.value.charAt(0)=='a'||document.forms[0].M.value.charAt(0)=='A')&&(document.forms[0].M.value.charAt(1)=='m'||document.forms[0].M.value.charAt(1)=='M')) {";
	allHTML += 'document.forms[0].M.value="PM";';
	allHTML += ' } else {document.forms[0].M.value="AM" }}';
		
	allHTML += 'function add(obj,MaxVal,MinVal, inc) {\n';
	allHTML += 'var tempnew = Number(obj.value) + inc;\n';
	allHTML += 'var isnew = 0;\n';
	allHTML += 'if(tempnew > MaxVal) {\n';
	allHTML += 'isnew = tempnew - (++MaxVal);\n';
	allHTML += '} else {\n';
	allHTML += 'isnew = tempnew;\n';
	allHTML += '}\n';
	allHTML += 'if(isnew < 10) {isnew = "0" + isnew;}\n';
	allHTML += 'obj.value = isnew; }\n';
	
	allHTML += 'function validate() {\n';
	allHTML += 'var h=document.forms[0].Hours.value;\n';
	allHTML += 'var min=document.forms[0].Minute.value;\n';
	allHTML += 'var sec=document.forms[0].Seconds.value;\n';
	allHTML += 'if (isNaN(parseInt(h))||h>12||h<1){\n';
	allHTML += 'alert("invalid number format");\n';
	allHTML += 'MakeReady(document.forms[0].Hours);\n';
	allHTML += 'return false;\n';
	allHTML += '} else {\n';
	allHTML += 'if (isNaN(parseInt(min))||min>59||min<0){\n';
	allHTML += 'alert("invalid number format");\n';
	allHTML += 'MakeReady(document.forms[0].Minute);\n';
	allHTML += 'return false;\n';
	allHTML += '}else {\n';
	allHTML += 'if (isNaN(parseInt(sec))||sec>59||sec<0) {\n';
	allHTML += 'alert("invalid number format");\n';
	allHTML += 'MakeReady(document.forms[0].Seconds);\n';
	allHTML += 'return false;\n';
	allHTML += '} else {\n';
	allHTML += 'return true;\n';
	allHTML += '}}}}\n';
	
	allHTML += 'function setTimeField(){\n';
	allHTML += 'var newVal = (setNum(parseInt(document.forms[0].Hours.value,10))+":"+ setNum(parseInt(document.forms[0].Minute.value,10))+":"+ setNum(parseInt(document.forms[0].Seconds.value,10)) +" "+ document.forms[0].M.value.toUpperCase());\n';
	allHTML += 'window.opener.document.forms[0].' + TimeField.name + '.value = newVal;\n';
	allHTML += 'window.close();}\n';
	
	allHTML += 'function setNum(num) {\n';
	allHTML += 'if (num<10) { return("0"+num); } \n';
	allHTML += 'else { return num; }}\n';
	
	
	
	allHTML += 'function doDrop() {if (validate()) setTimeField(); }';
	
	// function to add enter events
	allHTML += "function attachSubmit() {var frm = document.forms[0];";
	allHTML += "var ele = frm.elements;";
	allHTML += "for(ei=0; ei< ele.length; ei++) {";
	allHTML += "if(ele[ei].type == 'text') {";
	allHTML += "ele[ei].attachEvent('onkeypress', possibleDoDrop);";
	allHTML += "}}}";
	
	allHTML += 'function possibleDoDrop() {if(window.event.keyCode == 13) { doDrop(); } }';
	
	allHTML += "var frm;";
	
	allHTML += '</Script>\n';  
	
	allHTML += '</head><body><Form><Center>\n';
	allHTML += '<table name="tab1" id="tab2" bgColor="#COCOCO">\n';
	allHTML += '<tr>\n';
	allHTML += '<td id="tdHours" onClick="MakeReady(document.forms[0].Hours)" onMouseOver="ChangeColor(tdHours);" onMouseout="ReturnColor(tdHours)" bgColor="#ffffff">\n';
	allHTML += '<center>\n';
	allHTML += '<input type="text" name="Hours" tabindex="1" maxlength="2" size="2" value="' + goHours + '" style="FONT-SIZE: 8pt; Z-INDEX: 2; BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; VERTICAL-ALIGN: 1; WIDTH: 18px; BORDER-TOP-STYLE: solid; BORDER-TOP-COLOR: #ffffff; LINE-HEIGHT: 100%; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; LETTER-SPACING: -1pt; POSITION: relative; HEIGHT: 18px; TEXT-ALIGN: center; BORDER-RIGHT-COLOR: #ffffff; BORDER-BOTTOM-STYLE: solid"\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
			
			
	allHTML += '<td id="tdMinute" onClick="MakeReady(document.forms[0].Minute)" onMouseOver="ChangeColor(tdMinute)" onMouseout="ReturnColor(tdMinute)" bgColor="#ffffff">\n';
	allHTML += '<center>\n';
	allHTML += '<input type=text name="Minute" tabindex="2" maxlength="2" size="2" value="' + goMins + '" style="FONT-SIZE: 8pt; Z-INDEX: 2; BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; VERTICAL-ALIGN: 1; WIDTH: 18px; BORDER-TOP-STYLE: solid; BORDER-TOP-COLOR: #ffffff; LINE-HEIGHT: 100%; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; LETTER-SPACING: -1pt; POSITION: relative; HEIGHT: 18px; TEXT-ALIGN: center; BORDER-RIGHT-COLOR: #ffffff; BORDER-BOTTOM-STYLE: solid"\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '<td style="display:none" id="tdSeconds" onClick="MakeReady(document.forms[0].Seconds)" onMouseOver="ChangeColor(tdSeconds);" onMouseout="ReturnColor(tdSeconds)" bgColor="#ffffff">\n';
	allHTML += '<center>\n';
	allHTML += '<input type=text name="Seconds" tabindex="3" maxlength="2" size="2" value="' + goSecs + '" style="FONT-SIZE: 8pt; Z-INDEX: 2; BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; VERTICAL-ALIGN: 1; WIDTH: 18px; BORDER-TOP-STYLE: solid; BORDER-TOP-COLOR: #ffffff; LINE-HEIGHT: 100%; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; LETTER-SPACING: -1pt; POSITION: relative; HEIGHT: 18px; TEXT-ALIGN: center; BORDER-RIGHT-COLOR: #ffffff; BORDER-BOTTOM-STYLE: solid"\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '<td id="tdM" onClick="MakeReady(document.forms[0].M)" onMouseOver="ChangeColor(tdM)" onMouseout="ReturnColor(tdM)" bgColor="#ffffff">\n';
	allHTML += '<center>\n';
	allHTML += '<input type=text name="M" tabindex="4" maxlength="2" size="2" value="' + goPM + '" READONLY style="FONT-SIZE: 8pt; Z-INDEX: 2; BORDER-LEFT-COLOR: #ffffff; BORDER-BOTTOM-COLOR: #ffffff; VERTICAL-ALIGN: 1; WIDTH: 25px; BORDER-TOP-STYLE: solid; BORDER-TOP-COLOR: #ffffff; LINE-HEIGHT: 100%; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; POSITION: relative; HEIGHT: 18px; TEXT-ALIGN: center; BORDER-RIGHT-COLOR: #ffffff; BORDER-BOTTOM-STYLE: solid"\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '</tr>\n';
	allHTML += '<tr>\n';
	allHTML += '<td>\n';	
        allHTML += '<center>\n';
	allHTML += '<IMG style="cursor:hand" onclick=sub(document.forms[0].Hours,12,1,1) src="' + getLeft() + '" border=0><IMG style="cursor:hand" onclick=add(document.forms[0].Hours,12,1,1) src="' + getRight() + '" border=0>\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '<td>\n';
        allHTML += '<center>\n';
	allHTML += '<IMG style="cursor:hand" onclick=sub(document.forms[0].Minute,59,0,15) src="' + getLeft() + '" border=0><IMG style="cursor:hand" onclick=add(document.forms[0].Minute,59,0,15) src="' + getRight() + '" border=0>\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '<td style="display:none">\n';
        allHTML += '<center>\n';
	allHTML += '<IMG style="cursor:hand" onclick=sub(document.forms[0].Seconds,59,0,1) src="' + getLeft() + '" border=0><IMG style="cursor:hand" onclick=add(document.forms[0].Seconds,59,0,1) src="' + getRight() + '" border=0>\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '<td>\n';
        allHTML += '<IMG style="cursor:hand" onclick=Change() src="' + getLeft() + '" border=0><IMG style="cursor:hand" onclick=Change() src="' + getRight() + '" border=0>\n';
	allHTML += '</td>\n';
	allHTML += '</tr>\n';
	allHTML += '<tr>\n';
	allHTML += '<td colspan=4>\n';
	allHTML += '<center>\n';
	allHTML += '<input type="button" value="    OK    " onclick="doDrop();" style="FONT-WEIGHT: bold; FONT-SIZE: 10px; FONT-VARIANT: small-caps; font-family:Arial">\n';
	allHTML += '<input type="button" value="  Close  " onClick="window.close();" style="FONT-WEIGHT: bold; FONT-SIZE: 10px; FONT-VARIANT: small-caps; font-family:Arial">\n';
	allHTML += '</center>\n';
	allHTML += '</td>\n';
	allHTML += '</tr>\n';
	allHTML += '</table>\n';
	
	allHTML += '</Center>\n'
	allHTML += '<Script Language="JavaScript">attachSubmit()</Script>\n';
	
	allHTML += '</Form></body></html>\n';
	
	twin.document.write(allHTML);		
	
	
}

/////////////////////////////////////////////////////////
/* Parses up an existing time value and tries to populate the global variables. */
function parseUpTimeValue(isTime) {
	try {
		if(null == isTime || isTime == '') {
			return;
		}
		
		// check for colons
		var fColon = isTime.indexOf(':');
		if(fColon == -1) {
			return;
		}
		if(isTime.indexOf(':', fColon + 1) == -1) {
			return;
		}
		
		// get hours
		var hrs = isTime.substring(0, isTime.indexOf(':'));
		if(hrs.length < 3 && hrs.length > 0) {
			if(!(isNaN(hrs))) {
				goHours = hrs;
			}
		}
		
		// get minutes
		var mins = isTime.substring(fColon + 1, isTime.lastIndexOf(':'));
		if(mins.length < 3 && mins.length > 0) {
			if(!(isNaN(mins))) {
				goMins = mins;
			}
		}		
		
		// get seconds
		var secs = isTime.substring(isTime.lastIndexOf(':') + 1, isTime.lastIndexOf(' '));
		if(secs.length < 3 && secs.length > 0) {
			if(!(isNaN(secs))) {
				goSecs = secs;
			}
		}
		
		var amer = isTime.substring(isTime.lastIndexOf(' ') + 1);
		if(amer != '' && amer.length == 2) {
			if(amer.toLowerCase() == 'am') {
				goPM = 'AM';
			} else {
				goPM = 'PM';
			}
		}
				
	} catch (Exception) {
		
	}	
}