// string trim function

String.prototype.trim=function(){var x=this;x=x.replace(/^\s*(.*)/,"$1");x=x.replace(/(.*?)\s*$/,"$1");return x;}

var undefined = 'undefined';
var badPaste  = 'The clipboard contains data that is incompatible with the target field. The paste operation cannot be completed.';

// protect email addresses 

function DisplayMail(Server, Login, Display, Subject){
	var s = (typeof(Subject) == 'undefined') ? '' : "?subject=" + Subject ;
	if ((Display.length == 0) || (Display.indexOf('@')+1)) {
		document.write("<A HREF=" + "'mai" + "lto:" + Login + "@" + Server + s + "'>" + "<U>" + Login + "@" + Server + "</u>" + "</A>"); }
	else  {
		document.write("<A HREF=" + "'mai" + "lto:" + Login + "@" + Server + s + "'>" + Display + "</A>"); }
}

// browser-independent element locator
function getElement(elm) { return document.all ? document.all[elm] : document.getElementById ? document.getElementById(elm) : null }


// validate time: for use with onChange event
var errBadTime = 'Invalid time';
function validateTime(fld) {
	if (fld.value.trim().length==0) {return true}
		var time = ' ' + fld.value + ' ';
		var cpos = time.indexOf(':');
		if (cpos != -1) {
		time = time.substr(0,cpos) + time.substr(cpos+1,99)
		if (cpos == 1) {time = '00' + time.trim();}
		if (cpos == time.length-1) {time = time.trim() + '00'}
	}
	time = time.trim();
	if (time.length != 3 && time.length != 4) {alert(errBadTime + ' "'+time+'"'); event.returnValue = false; return false}
	if (time.length==3) {time = '0' + time.substr(0,1) + ':' + time.substr(1,2)}
	if (time.length==4) {time = time.substr(0,2) + ':' + time.substr(2,2)}
	if (time.substr(0,2) > 23 || time.substr(3,2) > 59) {alert(errBadTime + ' "'+time+'"'); event.returnValue = false; return false}
	fld.value = time;
	return true;     
}

// limit keysrtrokes used in a time field: for use with onKeydown event
function timeOnly (fld) {
	if (event.shiftKey && event.keyCode == 186) {if (fld.value.indexOf(':') != -1) {event.returnValue = false} return}
	numericField (fld)
}

// limit keystrokes used in a numeric field
function numericField(fld) {
	with (event) {
		var kc = keyCode;
		// handle numeric keypad numerics
		if (kc > 95 && kc < 106) {kc = kc - 48}
		// copy .. No Change
		if (ctrlKey && kc == 67) {return false}
		// cut, paste ... Change
		if (ctrlKey && (kc == 86 || kc == 88)) {return true}
		// back tab .. No Change
		if (shiftKey && kc == 9) {return false}
	    // left arrow, right arrow, tab ... No Change
		if (kc == 37 || kc == 39 || kc == 9) {return false}
		// backspace , delete ... Change
		if (kc == 8 || kc == 46) {return true}
		// no special character allowances
		if (kc < 48 || kc > 57 || shiftKey) {returnValue = false; return false}
		return true;
	}
}

// LIMIT DATA THAT MAY BE PASTED INTO A FIELD: FOR USE WITH ONPASTE EVENT
// MAY INCLUDE A CHARACTER TO BE ACCEPTED ONCE IN ADDITION TO DIGITS
function checkNumericPaste(char) {
	var r = '';
	var nums = '0123456789';
	var data = window.clipboardData.getData("Text");
	var valids = nums + char;
	for (var i = 0; i < data.length; i++) {
		if (valids.indexOf(data.substr(i,1)) > -1) {
			r = r + data.substr(i,1);
			if (data.substr(i,1) == char) {valids = nums}
		} 
	}
	event.returnValue = (data == r);
	if (event.returnValue == false) {alert(badPaste)}
}

// page menu data

var activeMenu = 0;

var menuHOME		= 'HOME';
var menuADDNOTE		= 'TURNDOWNS';
var menuADMIN		= 'ADMIN';
var menuLOGOUT		= 'LOGOUT';

var menuItems = new Array()
menuItems[menuItems.length] = {'name':menuHOME, 	'link':'home.asp'};
menuItems[menuItems.length] = {'name':menuADDNOTE,	'link':'note_main.asp'};
menuItems[menuItems.length] = {'name':menuADMIN,	'link':'setup.asp'};
menuItems[menuItems.length] = {'name':menuLOGOUT,	'link':'logout.asp'};

// emit page top
function issuePageTop (userName, compName, userIsSysAdmin, userIsCompAdmin, compCanAddNotes, userCanAddNotes, menuName, pageTitle, bCanCycleMap) {
	with (document) {
		write ('<table id="pageTable" border=0 cellpadding=0 cellspacing=0 width=754 height="100%" align="center" bgcolor="#3F617E">');
		write ('  <tr>'																									);
					// EDGE LINE LEFT
		write ('    <td rowspan=3 bgcolor="333333"><img src="Image Files/space.gif" width=1 height=1></td>'				);
		write ('    <td id="topRow" bgcolor="#293E4F" style="height:45px">'												);
			          // HEADER
		write ('      <table border=0 cellpadding=0 cellspacing=0 width=752>'											);
		write ('        <tr>'																							);
		write ('          <td width="100%">'																			);
		write ('            <table width="100%" border=0 cellpadding=0 cellspacing=0>'									);
		write ('			  <tr>'																						);
		write ('                <td>'																					);
		write ('                  <table border=0 cellpadding=0 cellspacing=0>'											);
		write ('			        <tr>'																				);
		
		// MENU
		for (var i = 0; i < menuItems.length; i++) 
		{
			if (!bCanCycleMap || (bCanCycleMap && (menuItems[i].name == menuHOME || menuItems[i].name == menuLOGOUT)))
			{
				if (
						( menuItems[i].name != menuADMIN && menuItems[i].name != menuADDNOTE )
						|| 
							(   menuItems[i].name == menuADMIN   )//&& ( userIsSysAdmin || userIsCompAdmin)   ) 
						|| 
							(   menuItems[i].name == menuADDNOTE && ( (compCanAddNotes && userCanAddNotes) || userIsSysAdmin)   )
					) 
				{ 
					if (menuItems[i].name == menuName) 
					{
						activeMenu = i;
						write ('<td nowrap class="inertMenu" style="padding-left:15px">' + menuItems[i].name + '</td>');
					} 
					else 
					{
						write ('<td nowrap style="padding-left:15px"><a class="menu" href="' +  menuItems[i].link + '">' + menuItems[i].name + '</a></td>');
					}
				}
			}
		}
								
		write ('			        </tr>'																				);
		write ('                  </table>'																				);
		write ('                </td>'																				    );
		write ('                <td align="right" style="padding-right:20px">'											);
		write ('					<table cellpadding=0 cellspacing=0>'												);
		write ('					  <tr>'																				);
		write ('						<td align="center" style="font-size:11px;color:#999999">'						);
		write ('							logged in as<br>' + userName												);
		write ('						</td>'																			);
		write ('                      </tr>'																			);
		write ('                    </table>'																			);
		write ('				  </td>'																				);
		write ('              </tr>'																					);
		write ('            </table>'																					);
		write ('          </td>'																						);
		write ('          <td align="right"><img src="Image Files/logo.jpg">&nbsp;&nbsp;</td>'							);
		write ('        </tr>'																							);
		write ('      </table>'																							);
		write ('    </td>'																								);
				    // EDGE LINE RIGHT
		write ('    <td rowspan=3 bgcolor="#333333"><img src="Image Files/space.gif" width=1 height=1></td>'			);
		write ('  </tr>'																								);
		write ('  <tr>'																									);
		write ('    <td background="Image Files/bg.gif" height="100%" valign="top">'									);
		write ('      <DIV id="contentDiv" style="height:\'100%\'">'													);
					  // TWISTERS
		write ('	  <table border=0 cellpadding=0 cellspacing=0>'														);
		write ('        <tr>'																							);
		write ('          <td><img src="Image Files/twist_topleft.jpg"  width=376 height=163></td>'						);
		write ('          <td><img src="Image Files/twist_topright.jpg" width=376 height=163></td>'						);
		write ('        <tr>'																							);
		write ('          <td><img src="Image Files/twist_botleft.jpg"  width=376 height=163></td>'						);
		write ('          <td><img src="Image Files/twist_botright.jpg" width=376 height=163></td>'						);
		write ('        </tr>'																							);
		write ('      </table>'																							);
		write ('      </DIV>'																							);
		write ('      <DIV id="contentDivOverlay" style="position:absolute;top:55px">'									);
		write ('      <table border=0 cellpadding=0 cellspacing=0>'														);
		write ('        <tr>'																							);
		write ('          <td valign="top">'																			);
							// CONTENT TABLE
		write ('            <table border=0 cellpadding=0 cellspacing=0 width=730>'										);
							  // PAGE TITLE
		write ('              <tr id="titleRow">'																		);
		write ('                <td rowspan=2><img src="Image Files/space.gif" width=20 height=1></td>'					);
		write('                <td nowrap class="pageTitle" style="vertical-align:top"><div nowrap style="width:400px;overflow:hidden;text-overflow:ellipsis">' + pageTitle + '</div></td>');
		write('                <td valign="top" align="right"><img src="Image Files/space.gif" height=2><br><div nowrap style="width:300px;overflow:hidden;text-overflow:ellipsis">' + compName + '</div></td>');
		write ('              </tr>'																					);
		write ('              <tr>'																						);
		write ('                <td colspan=2 valign="top">'															);
	}
}

function issuePageBottom() {
	with (document) {
		write ('                </td>'																					);
		write ('              </tr>'																					);
		write ('            </table>'																					);
		write ('          </td>'																						);
		write ('        </tr>'																							);
		write ('      </table>'																							);
		write ('      </DIV>'																							);
		write ('    </td>'																								);
		write ('  </tr>'																								);
		write ('  <tr id="bottomRow" style="background-color:#293E4F">'													);
		write ('    <td align="center">'																				);
		write ('		<table cellpadding=0 cellspacing=0>'															);
		write ('		  <tr>'																							);
		write ('			<td style="height:25px;padding-right:10px;padding-top:5px">'								);
		write ('			<img src="http://www.weatherturndown.com/Image Files/LogoTiny.png">'						);
		write ('			</td>'																						);
		write ('			<td style="height:25px;font-size:11px">'													);
		write ('			Brought to you by AirMed International, LLC&nbsp&nbsp;&nbsp;&copy; 2007-2008&nbsp;&nbsp;');
		write ('			<a href="http://www.airmed.com" target="blank">www.airmed.com</a>'							);
		write ('			</td>'																						);
		write ('		  </tr>'																						);
		write ('		</table>'																						);
		write ('	  </td>'																							);
		write ('  </tr>'																								);
		write ('</table>'																								);
	}
}

function issueErrorTable(displayInterval) {
	with (document) {
		if (typeof(errList) != 'undefined') {
			write ('<table id="errorTable" style="margin-top:10px">'														);
			write ('<tr><td align="center">'																				);
			write ('<table cellpadding=2 cellspacing=0><tr><td style="border:1px solid maroon;background-color:yellow;color:maroon;padding-right:15px">Errors encountered:');
			write ('<ul style="margin-left:25px">'																			);
				for (var i = 0; i < errList.length; i++) {write ('<li>' + errList[i].msg + '</li>')}
				setTimeout('getElement("errorTable").style.display = "none"', displayInterval);
			write ('</ul></td></tr></table>'																				);
			write ('</td></tr></table>'																						);
		}
	}
}