// Constants

// Globals

var strLoc = document.location.href;
var strRootPath = "";
var strPageName = "";

if(strLoc.lastIndexOf("?") > -1) {
	strPageName = strLoc.substring(strLoc.lastIndexOf("/")+1, strLoc.lastIndexOf("?"));
}
else {
	strPageName = strLoc.substr(strLoc.lastIndexOf("/")+1);
}

var locidh = strLoc.toLowerCase().search("idhweb");
var locnapa = strLoc.toLowerCase().search("napaweb");
var loccq = strLoc.toLowerCase().search("cqweb");
var locwp = strLoc.toLowerCase().search("wpweb");
var loccskps = strLoc.toLowerCase().search("cskweb");
var loccskpn = strLoc.toLowerCase().search("cskpndev_net");
var locbf = strLoc.toLowerCase().search("bfrcweb");
var loctis = strLoc.toLowerCase().search("tisweb");
	
if(locidh > -1) {
    //strRootPath += "/idhdev_net";
    strRootPath += "/idhweb";	
}
if (locnapa > -1) {
	strRootPath += "/napaweb";	
}
if (loccq > -1) {
	strRootPath += "/cqweb";	
}
if (locwp > -1) {
	strRootPath += "/wpweb";	
}
if (loccskps > -1) {
	strRootPath += "/cskweb";	
}
if (loccskpn > -1) {
	strRootPath += "/cskpndev_net";	
}
if (locbf > -1) {
	strRootPath += "/bfrcweb";
}
if (loctis> -1) {
    strRootPath += "/tisweb";
}

//Functions

if (typeof window.addEventListener != 'undefined')
    window.addEventListener('keypress', keyPressed, false);
else if (typeof document.addEventListener != 'undefined')
    document.addEventListener('keypress', keyPressed, false);

function keyPressed() {
	var KeyCode = 0;
	if(window.Event) {
		KeyCode=window.Event.which;
	}
	else {
		KeyCode=event.keyCode;
	}
	return KeyCode;
}

function setfocus(controlname)
{
	var targetElement = getElementGeneric(controlname);
	if (targetElement != null)
		targetElement.focus();
}

function moveNext(ObjID, FocusObjID) {
	var targetElement = getElementGeneric(ObjID);
	if (keyPressed() != 9 && keyPressed() !=16) {
		if (targetElement.value.length == 3) {
			targetElement = getElementGeneric(FocusObjID);
			targetElement.focus();
		}
	}
}

function textCounter(field, countfield, maxlimit) {
	var targetElement = getElementGeneric(countfield);
	// Match everything except newline and linefeed
	var nChar = field.value.match(/[^\r\n]/g);
	// Match only newline (carriage return)
	var nCR = field.value.match(/\n/g);
	// Match only linefee
	var nLF = field.value.match(/\r/g);
	if(nChar != null){
		nChar = nChar.length;
	}
	else{
		nChar = 0;
	}
	if(nCR != null){
		nCR = nCR.length;
	}
	else{
		nCR = 0;
	}

	if(nLF != null){
		nLF = nLF.length;
	}
	else{
		nLF = 0;
	}
	
	if(nCR > 0 && nLF < nCR) {
		// if we have CR's and less LF's then make sure we count LF's (pairs so 2 x CR)
		if (nChar+nCR+(nCR-nLF) > maxlimit){	// if too long...trim it!
			field.value = field.value.substring(0, maxlimit-(nCR-nLF));
		}
	}
	else {
		if(field.value.length > maxlimit) {
			field.value = field.value.substring(0, maxlimit);
		}
	}

	// otherwise, update 'characters left' counter
	// if we have CR's and less LF's then make sure we count LF's (pairs so 2 x CR)
	if(nCR > 0 && nLF < nCR) {
		targetElement.innerHTML = (maxlimit-(nCR-nLF)) - field.value.length;
	}
	else {
		targetElement.innerHTML = maxlimit - field.value.length;
	}
}

function viewOBD(strLocation) {
	var winStats = "toolbar=no,location=no,directories=no,menubar=yes,resizable=yes,";
	winStats += "scrollbars=yes,width=";
	winStats += screen.availWidth - 40;
	winStats += ",height=";
	winStats += screen.availHeight - 60;
	if (navigator.appName.indexOf("Microsoft") >= 0) {
	  winStats += ",left=25,top=25";
	}else{
	  winStats += ",screenX=25,screenY=25";
	}
	var newWindow = window.open(strLocation,"",winStats);
}

function TSBClick() {
	var targetElement1 = getElementGeneric("TSB1");
	var targetElement2 = getElementGeneric("TSB2");
	if(targetElement1.style.display == "none") {
		targetElement1.style.display = "";
		targetElement2.style.display = "none";
		setfocus("TSBSearch");
	}
	else {
		targetElement1.style.display = "none";
		targetElement2.style.display = "";
		setfocus("TSBNumber");
	}
}

function MaintAllClick(srcElementID, count) {
	var bAllClosed=true;
	var i;
	
	for(i = 0; i < count; i++) {
		var targetElement = getElementGeneric(srcElementID + i);
		
		if (targetElement != null)		
			if(targetElement.style.display != "none") {
				bAllClosed=false;
				break;
			}
	}
	
	for(i = 0; i < count; i++) {
		var targetElement = getElementGeneric(srcElementID + i);
		if (targetElement != null)		
			if(bAllClosed == true) {
				targetElement.style.display = "";
			}
			else {
				targetElement.style.display = "none";
			}
	}
}

function MaintClick(srcElementID) {
	var targetElement = getElementGeneric(srcElementID);
	if(targetElement.style.display == "none") {
		targetElement.style.display = "";
	}
	else {
		targetElement.style.display = "none";
	}
}

function FindingClick(srcElementID) {
	var i;
	var targetElement = getElementGeneric(srcElementID);
	var tableTags = targetElement.childNodes;
	if(targetElement.style.display == "none") {
		for(i = 0; i < tableTags.length; i++) {
			if(tableTags[i].nodeName.toLowerCase() == "table") {
				tableTags[i].style.display = "";
			}
		}
		targetElement.style.display = "";
	}
	else {
		for(i = 0; i < tableTags.length; i++) {
			if(tableTags[i].nodeName.toLowerCase() == "table") {
				tableTags[i].style.display = "none";
			}
		}
		targetElement.style.display = "none";
	}
}

function FindingOpenClose(srcElementID) {
	var i;
	var openElement = getElementGeneric('FindingOpen' + srcElementID);
	var closeElement = getElementGeneric('FindingClose' + srcElementID);
	var targetElement = getElementGeneric('Finding' + srcElementID);
	var tableTags = targetElement.childNodes;
	if(targetElement.style.display == "none") {
		for(i = 0; i < tableTags.length; i++) {
			if(tableTags[i].nodeName.toLowerCase() == "table") {
				tableTags[i].style.display = "";
			}
		}
		targetElement.style.display = "";
		openElement.style.display = "none";
		closeElement.style.display = "";
	}
	else {
		for(i = 0; i < tableTags.length; i++) {
			if(tableTags[i].nodeName.toLowerCase() == "table") {
				tableTags[i].style.display = "none";
			}
		}
		targetElement.style.display = "none";
		openElement.style.display = "";
		closeElement.style.display = "none";
	}
}

function FaultClick(srcElementID) {
	var i;
	var targetElement = getElementGeneric(srcElementID);
	var tableTags = targetElement.childNodes;
	if(targetElement.style.display == "none") {
		for(i = 0; i < tableTags.length; i++) {
			if(tableTags[i].nodeName.toLowerCase() == "table") {
				tableTags[i].style.display = "";
			}
		}
		targetElement.style.display = "";
	}
	else {
		for(i = 0; i < tableTags.length; i++) {
			if(tableTags[i].nodeName.toLowerCase() == "table") {
				tableTags[i].style.display = "none";
			}
		}
		targetElement.style.display = "none";
	}
}

function ProcessResultsClick(formName, TextMsg, start, count) {
	// var targetId, tableElement, targetElement, i, inputTags;
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, i, inputTags;
	targetElement = getElementGeneric(formName);
	inputTags = targetElement.elements;
	for(i = 0;i < inputTags.length;i++) {
		if(inputTags[i].type == "radio" && 
			inputTags[i].value != "none") {						
			if(inputTags[i].checked) {
				targetElement.submit();
				return;
			}
		}
	}
	// Hide all of the Extended Attribute data when we iterate through the Findings
	for(i = 1;i < 4;i++) {
		id = "EANextBest" + i;

		targetId = id + "_details";
		fontId = id + "_font";
		tableId = id + "_table";
		targetElement = getElementGeneric(targetId);
		fontElement = getElementGeneric(fontId);
		tableElement = getElementGeneric(tableId);
		if (fontElement != null)
			fontElement.innerHTML = "";
		if (tableElement != null)
			tableElement.style.display = "none";
		if (targetElement != null)
			targetElement.style.display = "none";
	}
	
	targetElement = getElementGeneric(TextMsg);
	if (targetElement != null) {
		targetElement.style.display = "none";
	}
	for(i = start;i < count;i++) {
		targetId = "Finding" + String(i);
		targetElement = getElementGeneric(targetId);
		if(targetElement.style.display == "") {
			tableElement = getElementGeneric(targetId + "_table");
			if (tableElement != null) {
				tableElement.style.display = "none";
			}
			targetElement.style.display = "none";
			i++;
			if(i > count-1) {
				targetElement = getElementGeneric(TextMsg);
				if (targetElement != null) {
					targetElement.style.display = "";
				}
				tableElement = getElementGeneric("Finding" + String(start) + "_table");
				if (tableElement != null) {
					tableElement.style.display = "";
				}
				targetElement = getElementGeneric("Finding" + String(start));
				targetElement.style.display = "";
				break;
			}
			tableElement = getElementGeneric("Finding" + String(i) + "_table");
			if (tableElement != null) {
				tableElement.style.display = "";
			}
			targetElement = getElementGeneric("Finding" + String(i));
			targetElement.style.display = "";
		}
	}
}


function ProcessSkipClick(TextMsg, start, count) {
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, i, inputTags;
	// Hide all of the Extended Attribute data when we iterate through the Findings
	for(i = 1;i < 4;i++) {
		id = "EANextBest" + i;
		targetId = id + "_details";
		fontId = id + "_font";
		tableId = id + "_table";
		targetElement = getElementGeneric(targetId);
		fontElement = getElementGeneric(fontId);
		tableElement = getElementGeneric(tableId);
		if (fontElement != null)
			fontElement.innerHTML = "";
		if (tableElement != null)
			tableElement.style.display = "none";
		if (targetElement != null)
			targetElement.style.display = "none";
	}
	
	targetElement = getElementGeneric(TextMsg);
	if (targetElement != null) {
		targetElement.style.display = "none";
	}
	for(i = start;i < count;i++) {
		targetId = "Finding" + String(i);
		targetElement = getElementGeneric(targetId);
		if(targetElement.style.display == "") {
			tableElement = getElementGeneric(targetId + "_table");
			if (tableElement != null) {
				tableElement.style.display = "none";
			}
			targetElement.style.display = "none";
			i++;
			if(i > count-1) {
				targetElement = getElementGeneric(TextMsg);
				if (targetElement != null) {
					targetElement.style.display = "";
				}
				tableElement = getElementGeneric("Finding" + String(start) + "_table");
				if (tableElement != null) {
					tableElement.style.display = "";
				}
				targetElement = getElementGeneric("Finding" + String(start));
				targetElement.style.display = "";
				break;
			}
			tableElement = getElementGeneric("Finding" + String(i) + "_table");
			if (tableElement != null) {
				tableElement.style.display = "";
			}
			targetElement = getElementGeneric("Finding" + String(i));
			targetElement.style.display = "";
		}
	}
}

function GetDataRS(srcElementID, vehID, findingTag, Type, TypeID, logSL, logDL, logDI, logWA, logWL) {
	var targetId, fontId, tableId, linkId, specId, id, targetElement, fontElement, tableElement, linkElement, specElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = vehID;
	aVal[2] = findingTag;
	aVal[3] = Type;
	aVal[4] = TypeID;
	aVal[5] = logSL;
	aVal[6] = logDL;
	aVal[7] = logDI;
	aVal[8] = logWA;
	aVal[9] = logWL;

	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	tableId = id + "_table";
	linkId = id + "_link";
	specId = id + "_spec";
	
	
	//for debugging purposes only
	//alert("GetDataRS: " + targetId + ", " + fontId + ", " + tableId);
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	linkElement = getElementGeneric(linkId);
	specElement = getElementGeneric(specId);
	
	if(targetElement.style.display == "none") {
		if (fontElement != null)
			fontElement.innerHTML = "";
		if (linkElement != null)
			linkElement.innerHTML = "Test Procedure (Close)";
		if (specElement != null)	
			specElement.innerHTML = "Specifications (Close)";
		jsrsExecute( strRootPath + '/ea_rs.asp', cbFillEA, 'GetDataRS', aVal );
		
	}
	else {
		if (fontElement != null)
			fontElement.innerHTML = "";
		if (linkElement != null)
			linkElement.innerHTML = "Test Procedure";
		if (specElement != null)
			specElement.innerHTML = "Specifications";
		if (tableElement != null)
			tableElement.style.display = "none";
		targetElement.style.display = "none";
	}
	
	// may need to rewrite this next line to check if image exists
	SwapImage(srcElementID + '_img');
}

function EAClick(srcElementID, vehID, findingTag, Type, TypeID) {
	var targetId, fontId, tableId, linkId, specId, id, targetElement, fontElement, tableElement, linkElement, specElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = vehID;
	aVal[2] = findingTag;
	aVal[3] = Type;
	aVal[4] = TypeID;

	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	tableId = id + "_table";
	linkId = id + "_link";
	specId = id + "_spec";
	
	
	//for debugging purposes only
	//alert("EAClick: " + targetId + ", " + fontId + ", " + tableId);
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	linkElement = getElementGeneric(linkId);
	specElement = getElementGeneric(specId);
	
	if(targetElement.style.display == "none") {
		if (fontElement != null)
			fontElement.innerHTML = "";
		if (linkElement != null)
			linkElement.innerHTML = "Test Procedure (Close)";
		if (specElement != null)	
			specElement.innerHTML = "Specifications (Close)";
		jsrsExecute( strRootPath + '/ea_rs.asp', cbFillEA, 'GetEAData', aVal );
		
	}
	else {
		if (fontElement != null)
			fontElement.innerHTML = "";
		if (linkElement != null)
			linkElement.innerHTML = "Test Procedure";
		if (specElement != null)
			specElement.innerHTML = "Specifications";
		if (tableElement != null)
			tableElement.style.display = "none";

		targetElement.style.display = "none";
	}
	
	// may need to rewrite this next line to check if image exists
	SwapImage(srcElementID + '_img');
}

function OBDClick(srcElementID, vehID, JID, Type, Code) {
	var targetId, fontId, id, targetElement, fontElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = vehID;
	aVal[2] = JID;
	aVal[3] = Type;
	aVal[4] = Code;

	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	
	if(targetElement.style.display == "none") {
		if (fontElement != null)
			fontElement.innerHTML = "";
		jsrsExecute( strRootPath + '/ea_rs.asp', cbFillOBD, 'GetOBDData', aVal );
		
	}
	else {
		if (fontElement != null)
			fontElement.innerHTML = "";

		targetElement.style.display = "none";
	}
}

function cbFillOBD(strOBDData) {
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement
	var i;
	var aOBDDate = strOBDData.split('|');
	targetId = aOBDDate[0] + "_details";
	fontId = aOBDDate[0] + "_font";

	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	
	if(targetElement.style.display == "none") {
		for(i = 1; i < aOBDDate.length - 1; i++ ){
			fontElement.innerHTML += aOBDDate[i];
		}
        if(KeywordToHighlight != null && OBDControlToHighlight != null){
            if(KeywordToHighlight != ''){
                highlightTerms(KeywordToHighlight, OBDControlToHighlight);
            }
        }
		targetElement.style.display = "";
	}
}

function EASpecClick(srcElementID, vehID, findingTag, Type, TypeID, gotoElementID) {
	var specId, specElement, loc;
	EAClick(srcElementID, vehID, findingTag, Type, TypeID);
	specId = srcElementID + "_spec";
	specElement = getElementGeneric(specId);
	if (specElement != null){
		loc = specElement.innerHTML.search("(Close)");
		if (loc != -1)
			document.location.href="#" + gotoElementID;
	}
}

function EARMClick(srcElementID, vehID, findingTag, Type, TypeID) {
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = vehID;
	aVal[2] = findingTag;
	aVal[3] = Type;
	aVal[4] = TypeID;

	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	tableId = id + "_table";

	//for debugging purposes only
	//alert("EAClick: " + targetId + ", " + fontId + ", " + tableId);
	
	targetElement = parent.frame1.getElementGeneric(targetId);
	fontElement = parent.frame1.getElementGeneric(fontId);
	tableElement = parent.frame1.getElementGeneric(tableId);
	
	targetElement.style.display = "none";
	fontElement.innerHTML = "";
	
	jsrsExecute( strRootPath + '/ea_rs.asp', cbFillEARM, 'GetEAData', aVal );

	// may need to rewrite this next line to check if image exists
	SwapImage(srcElementID + '_img');
}

function GetBannerInfo(bInfo,RepairOrderID,UserID,SnoozeHours,logSL,logDL,logDI,logWA,logWL,logUserID,logROID) {
	var targetId, fontId, tableId, imgId, targetElement, fontElement, tableElement, imgElement;
	var aVal = new Array();
	aVal[0] = RepairOrderID;
	aVal[1] = UserID;
	aVal[2] = SnoozeHours;
	aVal[3] = logSL;
	aVal[4] = logDL;
	aVal[5] = logDI;
	aVal[6] = logWA;
	aVal[7] = logWL;
	aVal[8] = logUserID;
	aVal[9] = logROID;
	
	targetId = "banner_details";
	fontId = "banner_font";
	tableId = "banner_table";
	imgId = "banner_img";
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	imgElement = getElementGeneric(imgId);
	if (targetElement.style.display == "none") {
		targetElement.style.display = "block";
		fontElement.innerHTML = "Thank you for your feedback.";
		imgElement.src = strRootPath + "/img/banner_handshake.gif";
	} 
	else {		
		
		if (bInfo == 'feedback') {
				fontElement.innerHTML = "Thank you for your feedback.";
				imgElement.src = strRootPath + "/img/banner_handshake.gif";
		} 
		else {
			if (bInfo == 'snooze') 	
				
				jsrsExecute( strRootPath + '/ea_rs.asp', cbDelayFeedback, 'DelayFeedback', aVal );
				
				fontElement.innerHTML = "Thank you, we will remind you in two days.";
				imgElement.src = strRootPath + "/img/banner_alarm.gif";
		}
	}		
}	

function cbDelayFeedback() {
	//alert('Feedback has been snoozed!');
}

function EALinkClick(srcElementID, vehID, findingTag, Type, TypeID, gotoElementID) {
	var linkId, linkElement, loc;
	EAClick(srcElementID, vehID, findingTag, Type, TypeID);
	linkId = srcElementID + "_link";
	linkElement = getElementGeneric(linkId);
	if (linkElement != null){
		loc = linkElement.innerHTML.search("(Close)");
		if (loc != -1)
			document.location.href="#" + gotoElementID;
	}
}


function FFClick(TargetElementID, PCListID) {
	var targetElement;
	var aVal = new Array();
	aVal[0] = PCListID;

	targetElement = getElementGeneric(TargetElementID);
	if(targetElement.style.display == "none") {
		targetElement.style.display = "";
		jsrsExecute( strRootPath + '/ea_rs.asp', cbFastFix, 'SetPCListID', aVal );
	}
	else {
		targetElement.style.display = "none";
	}
}

function getElementGeneric(ElementID) {
	if (document.getElementById) {
		return document.getElementById(ElementID);
	}
	else if (document.all) {
		return document.all[ElementID];
	}
	else {
		alert("Can not determine the DOM type");
		return null;
	}
}

function CheckSPClient(PresentationActionID){
	jsrsExecute( strRootPath + '/ea_rs.asp', cbClientSlideLoaded, 'ClientSlideLoaded', PresentationActionID );	
}

function cbClientSlideLoaded(strResult){
	var targetElement = getElementGeneric('SP_Font');
	var aResult = strResult.split('|');
	if	(aResult[0]=='true')
		targetElement.innerHTML = 'The slide IS completely loaded.';
	else{
		targetElement.innerHTML = 'The slide IS NOT completely loaded';
		setTimeout("CheckSPClient('" + aResult[1] + "')", 3*1000);
	}
}


function cbFillEA(strEAData) {
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement
	var i;
	var aEAData = strEAData.split('|');
	targetId = aEAData[0] + "_details";
	fontId = aEAData[0] + "_font";
	tableId = aEAData[0] + "_table";
	
	
	//for debugging purposes only
	//alert("cbFillEA: " + targetId + ", " + fontId + ", " + tableId);

	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	
	//for debugging purposes only
	//alert("Data elements = " + aEAData.length + ", Font element = " + fontElement.innerHTML);
	if(targetElement.style.display == "none") {
		for(i = 1; i < aEAData.length - 1; i++ ){
			//for debugging purposes only
			//alert("For Loop:" + fontElement.innerHTML);
			fontElement.innerHTML += aEAData[i];
		}
		if (tableElement != null)
			tableElement.style.display = "";
		targetElement.style.display = "";
	}
	//for debugging purposes only
	//alert("Exit Function Font element:" + fontElement.innerHTML);
}

function cbFillEARM(strEAData) {
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement
	var i;
	var aEAData = strEAData.split('|');
	targetId = aEAData[0] + "_details";
	fontId = aEAData[0] + "_font";
	tableId = aEAData[0] + "_table";
	
	
	//for debugging purposes only
	//alert("cbFillEA: " + targetId + ", " + fontId + ", " + tableId);

	targetElement = parent.frame1.getElementGeneric(targetId);
	fontElement = parent.frame1.getElementGeneric(fontId);
	tableElement = parent.frame1.getElementGeneric(tableId);
	
	//for debugging purposes only
	//alert("Data elements = " + aEAData.length + ", Font element = " + fontElement.innerHTML);
	if(targetElement.style.display == "none") {
		for(i = 1; i < aEAData.length - 1; i++ ){
			//for debugging purposes only
			//alert("For Loop:" + fontElement.innerHTML);
			fontElement.innerHTML += aEAData[i];
		}
		tableElement.style.display = "";
		targetElement.style.display = "";
	}
	var frameElement = parent.getElementGeneric("frameset0");
	var linkElement = getElementGeneric("ShowHideTOCLink");
	if(frameElement != null) {
		if(frameElement.cols.indexOf(",") > -1) {
			if(parseInt(frameElement.cols.substring(0, frameElement.cols.indexOf(","))) > 0) {
				if(linkElement != null) {
					linkElement.innerHTML = "Hide TOC";
				}
			}
			else {
				if(linkElement != null) {
					linkElement.innerHTML = "Show TOC";
				}
			}
		}
	}
	//for debugging purposes only
	//alert("Exit Function Font element:" + fontElement.innerHTML);
	
	//Size any images in the return data
	var imgTags = fontElement.getElementsByTagName("img");
	if(imgTags != null) {
		for(i = 0; i < imgTags.length; i++) {
			if(imgTags[i].nodeName.toLowerCase() == "img") {
				if(imgTags[i].width > 530) {
					imgTags[i].style.width = '530px';
				}
			}
		}
	}
}


function LaborClick(srcElementID, vehicleID, laborRetrieveLevel, Header1, Header15, Header2, Header3) 
{
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = vehicleID;
	aVal[2] = laborRetrieveLevel;
	aVal[3] = Header1;
	aVal[4] = Header15;
	aVal[5] = Header2;
	aVal[6] = Header3;
	
	/*alert(srcElementID);
	alert(vehicleID);
	alert(laborRetrieveLevel);
	alert(Header1);
	alert(Header15);
	alert(Header2);
	alert(Header3);
	*/
	
	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	tableId = id + "_table";
	
	//for debugging purposes only
	//alert("LaborClick: " + targetId + ", " + fontId + ", " + tableId);
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	
	jsrsExecute( strRootPath + '/ea_rs.asp', cbFillLabor, 'LoadLaborData', aVal );
	SwapImage(srcElementID + '_img');
}

function BookTOCClick(srcElementID, BookID, NodeID) 
{
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = BookID;
	aVal[2] = NodeID;
	
	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	tableId = id + "_table";
	
	//for debugging purposes only
	//alert("BookTOCClick: " + targetId + ", " + fontId + ", " + tableId);
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	if(fontElement.innerHTML == "&nbsp;") {
		jsrsExecute( strRootPath + '/ea_rs.asp', cbFillBookTOC, 'LoadBookTOCData', aVal );
	}
	else {
		//fontElement.innerHTML = "&nbsp;";
		if(targetElement.style.display == "none") {
			tableElement.style.display = "";
			targetElement.style.display = "";
		}
		else {
			tableElement.style.display = "none";
			targetElement.style.display = "none";
		}
	}
	SwapImage(srcElementID + '_img');
}

function EstLaborClick(srcElementID, vehicleID, laborRetrieveLevel, Header1, Header15, Header2, Header3) 
{
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, loc, i;
	var aVal = new Array();
	aVal[0] = srcElementID;
	aVal[1] = vehicleID;
	aVal[2] = laborRetrieveLevel;
	aVal[3] = Header1;
	aVal[4] = Header15;
	aVal[5] = Header2;
	aVal[6] = Header3;
	
	/*alert(srcElementID);
	alert(vehicleID);
	alert(laborRetrieveLevel);
	alert(Header1);
	alert(Header15);
	alert(Header2);
	alert(Header3);
	*/
	
	loc = srcElementID.search("_");
	if(loc > -1)
		id = srcElementID.substring(0, loc);
	else
		id = srcElementID;

	targetId = id + "_details";
	fontId = id + "_font";
	tableId = id + "_table";
	
	//for debugging purposes only
	//alert("EstLaborClick: " + targetId + ", " + fontId + ", " + tableId);
	
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	
	jsrsExecute( strRootPath + '/ea_rs.asp', cbFillLabor, 'LoadLaborData', aVal );
	SwapImage(srcElementID + '_img');
}


function SwapImage(inElementID){
	var ImageId, strFullImageName, strImageName, intSlashPos, intStringLength
	
	ImageId = getElementGeneric(inElementID);
	if (ImageId != null){
		strFullImageName = ImageId.src;
		intSlashPos = strFullImageName.lastIndexOf("/");
		strImageName = strFullImageName.slice(intSlashPos);
		
		if (strImageName == "/plusik.gif") {
			ImageId.src = strRootPath + "/treeinc/minus.gif";
		} else {
			ImageId.src = strRootPath + "/treeinc/plusik.gif";
		}
	}
}

function cbFillLabor(strLaborData) 
{
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement, LaborRetrieveLevel
	var aLaborData = strLaborData.split('|');
	targetId = aLaborData[0] + "_details";
	fontId = aLaborData[0] + "_font";
	tableId = aLaborData[0] + "_table";
	
	//for debugging purposes only
	//alert(strLaborData);
	//alert("cbFillLabor: " + targetId + ", " + fontId + ", " + tableId);
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	//for debugging purposes only
	//alert("Data elements = " + aLaborData.length + ", Target element = " + targetElement.style.display);
	//alert(aLaborData[1]);
	//alert('LaborRetrieveLevel Before: ' + strLaborData);
	LaborRetrieveLevel = (aLaborData[0].charAt(0) + aLaborData[0].charAt(1) + aLaborData[0].charAt(2)).toLowerCase();
	
	//alert('LaborRetrieveLevel: ' + LaborRetrieveLevel);
	
	if (( LaborRetrieveLevel == 'lgh') || ('est' + LaborRetrieveLevel == 'estlgh'))
	{
		//Find the span and open or close when clicking on a Header 1 link
		if(targetElement.style.display == "none") 
		{
				//alert(aLaborData[1]);
				fontElement.innerHTML = aLaborData[1];
				tableElement.style.display = "";
				targetElement.style.display = "";
		}
		else
		{
				tableElement.style.display = "none";
				targetElement.style.display = "none";
		}
	}
	else
	{	
		//Here we are looking for the font tag where we are going to insert or replace data
		//alert('Font: ' + fontElement.innerHTML);
		if (fontElement.innerHTML == "")
		{
				//for debugging purposes only
				//It is assumed that aLaborData[1] is the only array we want because it is the
				//one containing the data.
				fontElement.innerHTML = aLaborData[1];
		}
		else
		{
			fontElement.innerHTML = "";
		}
		
		//for debugging purposes only
		//alert("Exit Function Font element:" + fontElement.innerHTML);
	}
}

function cbFillBookTOC(strBookTOCData) 
{
	var targetId, fontId, tableId, id, targetElement, fontElement, tableElement
	var i;
	var aBookTOCData = strBookTOCData.split('|');
	targetId = aBookTOCData[0] + "_details";
	fontId = aBookTOCData[0] + "_font";
	tableId = aBookTOCData[0] + "_table";
	
	//for debugging purposes only
	//alert(strBookTOCData);
	//alert("cbFillLabor: " + targetId + ", " + fontId + ", " + tableId);
	targetElement = getElementGeneric(targetId);
	fontElement = getElementGeneric(fontId);
	tableElement = getElementGeneric(tableId);
	//for debugging purposes only
	//alert("Data elements = " + aBookTOCData.length + ", Target element = " + targetElement.style.display);
	//alert(aBookTOCData[1]);
	
	//Find the span and open or close when clicking on a Header 1 link
	if(targetElement.style.display == "none") 
	{
		fontElement.innerHTML = "";
		for(i = 1; i < aBookTOCData.length - 1; i++ ){
			//for debugging purposes only
			//alert("For Loop:" + fontElement.innerHTML);
			fontElement.innerHTML += aBookTOCData[i];
		}
		tableElement.style.display = "";
		targetElement.style.display = "";
	}
	else
	{
		tableElement.style.display = "none";
		targetElement.style.display = "none";
	}
}

function UpdateNonCurrentFile(FileName, DateLastLoaded, PresentationActionID) {
	var aVal = new Array();
	aVal[0] = FileName;
	aVal[1] = DateLastLoaded;
	aVal[2] = '' + PresentationActionID;
	//alert(FileName);
	jsrsExecute( strRootPath + '/ea_rs.asp', cbFileCurrent, 'IsFileCurrent', aVal );
}

function cbFileCurrent(strResult){
	//alert(strResult);
	if (strResult == 'reload')
		window.location.reload( true );
	else if (strResult == 'noreload')
		setTimeout("UpdateNonCurrentFile(FilePath,CurDate,0)", 3*1000);
	
		
}



function cbFastFix(strFFData) {
	if(strFFData != 'success'){
		alert('Failed to record Fast Fix!');
	}
}

function FPactive() {
	return;
}
function FPdeactive() {
	return;
}

function toggleBold(obj) {
	if(obj.style.fontWeight == "bold")
		obj.style.fontWeight = "";
	else
		obj.style.fontWeight = "bold";
}

function ShowHide(ElementID) {
	var targetElement;
		
	//for debugging purposes only
	//alert("ShowHide: " + ElementID);

	targetElement = getElementGeneric(ElementID);
		
	if (targetElement.style.display == "") 
		targetElement.style.display = "none";
	else
		targetElement.style.display = "";

	//for debugging purposes only
	//alert("ShowHide: " + ElementID);
}

function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){
		return "";
	}
	else{
		return TRIM_VALUE;
	}
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return"";
	}
	var iTemp = v_length -1;

	while(iTemp > -1){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp - 1;
	} //End While
	return strTemp;
} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
	return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";

	var iTemp = 0;

	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) == w_space){
		}
		else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function


