isIE = (navigator.userAgent.indexOf("MSIE") > -1)? true:false;
var CN = (isIE)? "children":"childNodes";
var PN = (isIE)? "parentElement":"parentNode";
var sElem = (isIE)? "srcElement":"target";
var tgName = (isIE)? "tagName":"nodeName";
var CNindx = (isIE)? 0:1;
var kCode = (isIE)? "keyCode":"which";
//document.oncontextmenu = new Function("return false");

Array.prototype.isIn = isInArray;

function isInArray(val) {
	for (var ii=0; ii<this.length; ii++) {
		if (this[ii] == val) {
			return ii;
			break;
		}
	}
	return -1;
}
//window.onerror = errHandler;

if (document.addEventListener) {  
	document.addEventListener("onmousemove", mover, true);
}
else if (document.attachEvent) {  
	document.attachEvent("onmousemove", function(evt) {mover(evt)});
}
function decHTMLStr(str) {
	reQuot = /&quot;/g;
	reStT = /&lt;/;
	reEnT = /&gt;/;
	reSQuot = /&lsquo;/g;
	str = str.replace(reQuot, "\"");
	str = str.replace(reSQuot, "'");
	str = str.replace(reStT, "<");
	str = str.replace(reEnT, ">");
	return str;
}
function encHTMLStr(str) {
	reQuot = /\"/g;
	reStT = /</;
	reEnT = />/;
	reSQuot = /'/;
	str = str.replace(reQuot, "&quot;");
	str = str.replace(reSQuot, "&lsquo;");
	str = str.replace(reStT, "&lt;");
	str = str.replace(reEnT, "&gt;");
	return str;
}
function mover(evnt) {
	if (evnt[sElem][tgName] == "A") {
		window.status = evnt[sElem].title;
		return true;
	}
	else if (evnt[sElem][tgName] == "IMG") {
		window.status = evnt[sElem].alt;
		return true;
	}
}
function stripAmp(str) {
	var amp = /\&amp;/g;
	return str.replace(amp, "&");
}
function gEl(obj) {
	return document.getElementById(obj);
}
function gElt(obj) {
	return document.getElementsByTagName(obj);
}

function wd(str) {
	gEl("debugger").innerHTML += (str + "<br>");
}

function clearWD() {
	gEl("debugger").innerHTML = "";
}
function showProps(elem) {
	wdPop("<b style='color:blue'>SHOW PROPERTIES</b>");
	for (x in elem) {
		try {
			if (elem[x]) {
				wdPop(x + ": " + elem[x]);
			}
		}
		catch (err) {
			wdPop("<b style='color:red'>ERROR:</b> " + x);
		}
	}
}
function moverTR(tr) {
	if (tr.className != "selTD") {
		tr.className = "mover";
	}
}
function moutTR(tr) {
	if (tr.className != "selTD") {
		tr.className = "mout";
	}
}
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
function verfifyVoucher() {
	vchr = document.forms[0].voucher.value;
	accID = "";
	if (document.forms[0].orgAccountID) {
		accID = document.forms[0].orgAccountID.value;
	}
	makeRequest("/owf/verifyVoucher.asp?isExport=Yes&vchr=" + vchr + "&accID=" + accID, "voucherVerified");
}
function voucherVerified(str) {
	alert(str);
	if (str.indexOf("existing Office Web Forms account holder") > -1) {
		document.forms[0].voucherVerified.value = "2";
	}
	else if (str.indexOf("Congratulations") > -1) {
		document.forms[0].voucherVerified.value = "1";
	}
	else {
		document.forms[0].voucherVerified.value = "0";
	}
}
/******** AJAX **************/
var http_request = false;
function getHttpRequest() {
	if (window.XMLHttpRequest) { //Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject) { //IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	if (!http_request) {
		alert("Giving up: (Cannot create an XMLHTTP instance");
		return false;
	}
	return true;
}
function makeRequest(url, mthd) { 
	http_request = false;
	getHttpRequest();
	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				formatRequest(http_request.responseText, mthd);
			}
			else {
				formatRequest("There was a problem locating the requested file: '" + url + "'.", mthd);
			}
		}
	}
	http_request.open('GET', url, true);
	http_request.send(null);
}
function formatRequest(txt, mthd) {
	switch (mthd) {
		case "doDeleteOption":
			doDeleteOption(txt);
			break;
		case "confirmDeleteRequests":
			confirmDeleteRequests(txt);
			break;
		case "doEditOption":
			doEditOption(txt);
			break;
		case "doDeleteQuestion":
			doDeleteQuestion(txt);
			break;
		case "doDeleteSection":
			doDeleteSection(txt);
			break;
		case "setFilterOptions":
			setFilterOptions(txt);
			break;
		case "populateReportData":
			populateReportData(txt);
			break;
		case "attDeleted":
			attDeleted(txt);
			break;
		case "voucherVerified":
			voucherVerified(txt);
			break;
		case "voucherFormVerified":
			return txt;
			break;
		case "presentHistory":
			presentHistory(txt);
			break;
		case "sessionEnforced":
			sessionEnforced(txt);
			break;
		case "cookieLoaded":
			cookieLoaded(txt);
			break;
	}
}
function sessionEnforced(txt) {
	if (txt.length > 0) {
		top.location.href = "login.asp?loginMsg=Your session has expired, please login again.";
	}
}
function addFormEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}

var debugWin = null;
function wdPop(str) {
	if (!top.debugWin || top.debugWin.closed) {
		top.debugWin = window.open("","debugWin","target=debugWin,width=600,height=400,scrollbars=1");
		top.debugWin.document.open();
		top.debugWin.document.write("<html><head><title>Debugger</title><style>body {font-family:verdana; font-size:xx-small } </style></head><body><a href='javascript:void(0)' onclick=\"document.getElementById('debugger').innerHTML = '';\">Clear</a><br><div id=debugger></div></body></html>");
		top.debugWin.document.close();
	}
	top.debugWin.document.getElementById("debugger").innerHTML += (str + "<br>");
}
var cWin = null;
function errHandler(msg, url, lno) {
	url = "errHandler.asp?msg=" + msg + "&page=" + location.pathname + "&lno=" + lno + "&brow=" + navigator.userAgent + "&dateStr=" + new Date();
	if (cWin) {
		cWin.close();
	}
	cWin = window.open(url,"cWin","target=cWin,width=500,height=400,scrollbars=1");
	return null;
}
function passRTEFocus(fName) {
	try {
		iFrm = document[fName];
		iFrm.textEditor.focus();
	}
	catch (error) {}
}
function updateRequestMenu(projID, ttl) {
	if (gEl("reqFrm_" + projID)) {
		gEl("reqFrm_" + projID).innerHTML = encHTMLStr(ttl) + " Form";
	}
}
function updateReportMenu(accID, projID, rptID, ttl, rptType) {
	srchStr = "orgAccountID=" + accID + "&orgProjectID=" + projID + "&orgReportID=" + rptID;
	tbl = (rptType == 0)? top.gEl("rptData" + projID).cells[1].firstChild:top.gEl("rptGraph" + projID).cells[1].firstChild;
	var eIndex = (rptType == 0)? 1:2;
	NR = tbl.insertRow(tbl.rows.length - eIndex);
	NC = tbl.rows[NR.rowIndex].insertCell(0);
	NC.width = "14px";
	img = document.createElement("img");
	img.src = "images/closed.gif";
	img.border = 0;
	img.id = "rptUrl_" + rptID;
	NC.appendChild(img);
	addShowAreaEvent(img, rptID, 'rptUrl', 1);
	NC = tbl.rows[NR.rowIndex].insertCell(1);
	a = document.createElement("a");
	a.href = "javascript:void(0)";
	a.innerHTML = encHTMLStr(ttl);
	addShowAreaEvent(a, rptID, 'rptUrl', 1);
	NC.appendChild(a);
	//child table
	NR = tbl.insertRow(tbl.rows.length - eIndex);
	NR.id = "rptUrl" + rptID;
	NR.style.display = rowDisp;
	NC = tbl.rows[NR.rowIndex].insertCell(0);
	NC.width = "14%"
	NC.className = "explorerTD";
	NC = tbl.rows[NR.rowIndex].insertCell(1);
	t = document.createElement("table");
	t.cellPadding = 0;
	t.cellSpacing = 0;
	t.width = "100%";
	t.border = 0;
	NC.appendChild(t);
	//report options
	lbls = ["Edit Report","View Report","Delete Report"];
	urls = (rptType == 0)? ["createReport","showReport","deleteReport"]:["createGraphicReport","showGraphicReport","deleteReport"];
	for (var o=0; o<lbls.length; o++) {
		NR = t.insertRow(t.rows.length);
		NC = t.rows[NR.rowIndex].insertCell(0);
		NC.width = "14px";
		img = document.createElement("img");
		img.src = (o < lbls.length-1)? "images/right_arrow.gif":"images/False.gif";
		img.border = 0;
		NC.appendChild(img);
		NC = t.rows[NR.rowIndex].insertCell(1);
		NC.width = "95%";
		a = document.createElement("a");
		a.href = urls[o] + ".asp?" + srchStr;
		a.target = "cpFrame";
		a.innerHTML = lbls[o];
		NC.appendChild(a);
		if (o == 0) {
			if (currentLink) {
				currentLink[PN][PN].style.backgroundColor = "white";
			}
			currentLink = a;
			NR.style.backgroundColor = "LightSteelBlue";
		}
		addEvent(a, "onclick", getPage);
	}
	aBarTxt = gEl("addressBar").innerHTML;
	aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
	gEl("addressBar").innerHTML = aBarTxt + "\\" + encHTMLStr(ttl) + "\\Edit Report";
}
function deleteReportMenuItem(rptID) {
	tr = top.gEl("rptUrl" + rptID);
	if (tr) {
		ri = tr.rowIndex;
		rTbl = tr[PN][PN];
		rTbl.deleteRow(ri);
		rTbl.deleteRow(ri-1);
		aBarTxt = gEl("addressBar").innerHTML;
		aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
		aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
		gEl("addressBar").innerHTML = aBarTxt + "\\";
		currentLink = null;
	}
}
function updateUpdateMenu(accID, projID, updID, ttl) {
	srchStr = "orgAccountID=" + accID + "&orgProjectID=" + projID + "&orgUpdateFormID=" + updID;
	tbl = top.gEl("updForm" + projID).cells[1].firstChild;
	var eIndex = 1;
	NR = tbl.insertRow(tbl.rows.length - eIndex);
	NC = tbl.rows[NR.rowIndex].insertCell(0);
	NC.width = "14px";
	img = document.createElement("img");
	img.src = "images/closed.gif";
	img.border = 0;
	img.id = "updFormLnk_" + updID;
	NC.appendChild(img);
	addShowAreaEvent(img, updID, 'updFormLnk', 1);
	NC = tbl.rows[NR.rowIndex].insertCell(1);
	a = document.createElement("a");
	a.href = "javascript:void(0)";
	a.innerHTML = encHTMLStr(ttl);
	addShowAreaEvent(a, updID, 'updFormLnk', 1);
	NC.appendChild(a);
	//child table
	NR = tbl.insertRow(tbl.rows.length - eIndex);
	NR.id = "updFormLnk" + updID;
	NR.style.display = rowDisp;
	NC = tbl.rows[NR.rowIndex].insertCell(0);
	NC.width = "14%"
	NC.className = "explorerTD";
	NC = tbl.rows[NR.rowIndex].insertCell(1);
	t = document.createElement("table");
	t.cellPadding = 0;
	t.cellSpacing = 0;
	t.width = "100%";
	t.border = 0;
	NC.appendChild(t);
	//Update form options
	lbls = ["Edit Update Form","Update Form Workflow","View Update Form","Delete Update Form"];
	urls = ["updateForms","updateWorkFlow","showUpdateForm","deleteForms"];
	for (var o=0; o<lbls.length; o++) {
		NR = t.insertRow(t.rows.length);
		NC = t.rows[NR.rowIndex].insertCell(0);
		NC.width = "14px";
		img = document.createElement("img");
		img.src = (o < lbls.length-1)? "images/right_arrow.gif":"images/False.gif";
		img.border = 0;
		NC.appendChild(img);
		NC = t.rows[NR.rowIndex].insertCell(1);
		NC.width = "95%";
		a = document.createElement("a");
		a.href = urls[o] + ".asp?" + srchStr;
		a.target = "cpFrame";
		a.innerHTML = lbls[o];
		NC.appendChild(a);
		if (o == 0) {
			if (currentLink) {
				currentLink[PN][PN].style.backgroundColor = "white";
			}
			currentLink = a;
			NR.style.backgroundColor = "LightSteelBlue";
		}
		addEvent(a, "onclick", getPage);
	}
	aBarTxt = gEl("addressBar").innerHTML;
	aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
	gEl("addressBar").innerHTML = aBarTxt + "\\" + encHTMLStr(ttl) + "\\Edit Update Form";
}
function updateTrackerMenu(accID, projID, updID, ttl) {
	srchStr = "orgAccountID=" + accID + "&orgProjectID=" + projID + "&orgUpdateFormID=" + updID;
	tbl = top.gEl("trackForm" + projID).cells[1].firstChild;
	var eIndex = 1;
	NR = tbl.insertRow(tbl.rows.length - eIndex);
	NC = tbl.rows[NR.rowIndex].insertCell(0);
	NC.width = "14px";
	img = document.createElement("img");
	img.src = "images/closed.gif";
	img.border = 0;
	img.id = "trackFormLnk_" + updID;
	NC.appendChild(img);
	addShowAreaEvent(img, updID, 'trackFormLnk', 1);
	NC = tbl.rows[NR.rowIndex].insertCell(1);
	a = document.createElement("a");
	a.href = "javascript:void(0)";
	a.innerHTML = encHTMLStr(ttl);
	addShowAreaEvent(a, updID, 'trackFormLnk', 1);
	NC.appendChild(a);
	//child table
	NR = tbl.insertRow(tbl.rows.length - eIndex);
	NR.id = "trackFormLnk" + updID;
	NR.style.display = rowDisp;
	NC = tbl.rows[NR.rowIndex].insertCell(0);
	NC.width = "14%"
	NC.className = "explorerTD";
	NC = tbl.rows[NR.rowIndex].insertCell(1);
	t = document.createElement("table");
	t.cellPadding = 0;
	t.cellSpacing = 0;
	t.width = "100%";
	t.border = 0;
	NC.appendChild(t);
	//Update form options
	lbls = ["Edit Tracker Form","Update Tracker Workflow","View Tracker Form","Delete Tracker Form"];
	urls = ["trackerForms","trackerWorkFlow","showtrackerForm","deleteForms"];
	for (var o=0; o<lbls.length; o++) {
		NR = t.insertRow(t.rows.length);
		NC = t.rows[NR.rowIndex].insertCell(0);
		NC.width = "14px";
		img = document.createElement("img");
		img.src = (o < lbls.length-1)? "images/right_arrow.gif":"images/False.gif";
		img.border = 0;
		NC.appendChild(img);
		NC = t.rows[NR.rowIndex].insertCell(1);
		NC.width = "95%";
		a = document.createElement("a");
		a.href = urls[o] + ".asp?" + srchStr;
		a.target = "cpFrame";
		a.innerHTML = lbls[o];
		NC.appendChild(a);
		if (o == 0) {
			if (currentLink) {
				currentLink[PN][PN].style.backgroundColor = "white";
			}
			currentLink = a;
			NR.style.backgroundColor = "LightSteelBlue";
		}
		addEvent(a, "onclick", getPage);
	}
	aBarTxt = gEl("addressBar").innerHTML;
	aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
	gEl("addressBar").innerHTML = aBarTxt + "\\" + encHTMLStr(ttl) + "\\Edit Update Form";
}
function deleteUpdateMenuItem(updID) {
	tr = top.gEl("updFormLnk" + updID);
	if (tr) {
		ri = tr.rowIndex;
		rTbl = tr[PN][PN];
		rTbl.deleteRow(ri);
		rTbl.deleteRow(ri-1);
		aBarTxt = gEl("addressBar").innerHTML;
		aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
		aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
		gEl("addressBar").innerHTML = aBarTxt + "\\";
		currentLink = null;
	}
}
function deleteTrackerMenuItem(updID) {
	tr = top.gEl("trackFormLnk" + updID);
	if (tr) {
		ri = tr.rowIndex;
		rTbl = tr[PN][PN];
		rTbl.deleteRow(ri);
		rTbl.deleteRow(ri-1);
		aBarTxt = gEl("addressBar").innerHTML;
		aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
		aBarTxt = aBarTxt.substring(0, aBarTxt.lastIndexOf("\\"));
		gEl("addressBar").innerHTML = aBarTxt + "\\";
		currentLink = null;
	}
}
function addShowAreaEvent(evntObj, oID, idName, uType) {
	if (evntObj.attachEvent ) {
		evntObj.attachEvent('onclick', function() {
			showArea(oID, idName, window.event, uType);
		});
	}
	else {
		evntObj.setAttribute('onclick',"showArea(" + oID + ",'" + idName + "', event, " + uType + ")");
	}
}
function addEvent(evntObj, evnt, func) {
	if (isIE) {
		evntObj.attachEvent(evnt, func);
	}
	else {
		evntObj.addEventListener(evnt.substring(2), func, true);
	}
}
