﻿<!--

function HTMLEncoder(strVal)
{
    var newVal = strVal.replace(/\&quot\;/gi, "[QUOTEDOUBLE]").replace(/\&/gi, "[AND]").replace(/\</gi, "[ARROWLEFT]").replace(/\>/gi, "[ARROWRIGHT]").replace(/\'/, "[QUOTESINGLE]").replace(/\"/gi, "[QUOTEDOUBLE]").replace(/\n/gi, "[NEWLINE]").replace(/\r/gi, "[RETURN]");
    return newVal;
}

function HTMLDecoder(strVal)
{
    var newVal = strVal.replace(/\[AND\]/gi, "&").replace(/\[ARROWLEFT\]/gi, "<").replace(/\[ARROWRIGHT\]/gi, ">").replace(/\[QUOTESINGLE\]/gi, "'").replace(/\[QUOTEDOUBLE\]/gi, "\"").replace(/\[NEWLINE\]/gi, "\n").replace(/\[RETURN\]/gi, "\r");
    return newVal;
}

function DocumentMethod()
{
    var DocumentMethod = "";
    if (document.body && (document.body.clientWidth || document.body.clientHeight)) 
        DocumentMethod = document.body;
    else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) 
        DocumentMethod = document.documentElement;
    return DocumentMethod;
}

function CalcBrowserDimensions()
{
    var browserWidth = 0, browserHeight = 0;
    if(typeof(window.innerWidth) == 'number') 
    {
        //Non-IE
        browserWidth = window.innerWidth;
        browserHeight = window.innerHeight;
    } 
    else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) 
    {
        //IE6+ standards compliant mod
        browserWidth = document.documentElement.clientWidth;
        browserHeight = document.documentElement.clientHeight;
    } 
    else if(document.body && (document.body.clientWidth || document.body.clientHeight)) 
    {
        //compatibility mode IE5.5+ - and works on IE6+ - but not very accurately to get browser dimensions
        browserWidth = document.body.clientWidth;
        browserHeight = document.body.clientHeight;
    }
    //alert(browserWidth + " : " + browserHeight);
    return [browserWidth, browserHeight];
}

function CalcScrolledHeightWidthAmt() 
{
    var scrollWidth = 0, scrollHeight = 0;
    if(typeof(window.pageYOffset) == 'number') 
    {
        //Netscape compliant
        scrollHeight = window.pageYOffset;
        scrollWidth = window.pageXOffset;
    } 
    else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))  
    {
        //IE6+ standards compliant mode
        scrollHeight = document.documentElement.scrollTop;
        scrollWidth = document.documentElement.scrollLeft;
    }
    else if(document.body && (document.body.scrollLeft || document.body.scrollTop)) 
    {
        //compatibility mode IE5.5+ - and works on IE6+ - but not very accurately to get browser dimensions
        scrollHeight = document.body.scrollTop;
        scrollWidth = document.body.scrollLeft;
    } 
    return [scrollWidth, scrollHeight];
}

function GetPagePlusScrollAmt()
{
    var arrDimensions = CalcBrowserDimensions();
    var intWidth = arrDimensions[0];
    var intHeight = arrDimensions[1];
    //alert(intWidth + " : " + intHeight);
    
    var arrScrollDimensions = CalcScrolledHeightWidthAmt();
    var scrollWidth = arrScrollDimensions[0];
    var scrollHeight = arrScrollDimensions[1];
    //alert(scrollWidth + " : " + scrollHeight);
    
    intWidth += scrollWidth;
    intHeight += scrollHeight;
    //alert(intWidth + " : " + intHeight);
          
    return [intWidth, intHeight]; 
} 

function ConvertMetricTime(totSec)
{
    var min = 0, strRet = "";
    var sec = (totSec % 60);
    if ((sec == 0) || (totSec > 59))  min = parseInt(totSec/60);
    if (min == 0)
        strRet = sec + "s";
    else
        strRet = min + "m : " + sec + "s";
    return strRet;
}

function Bookmark(url, title)
{
    if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) 
        window.external.AddFavorite(url,title);
    else if (navigator.appName == "Netscape") 
        window.sidebar.addPanel(title, url, "");
    else 
        alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark.");
}


function SwapImage(cImgName, imgName)
{
    var curImg = document.getElementById(cImgName);
    curImg.style.cursor = "pointer";
    curImg.src = "/images/" + imgName;
}

function HideAllSelBoxes(strOp)
{
	var intx=0, intz=0, inty=0, cFrame="";
	
	//Check through all form objects and find select boxes in main form and in frame document and hide or show them
	for(intx=0; intx<=document.forms.length-1; intx++)
	{
		curForm = document.forms[intx]
		for (intz=0; intz<=curForm.elements.length-1; intz++)
		{
			curObj = curForm.elements[intz];
			if ((curObj.type == "select-one") || (curObj.type == "select-multiple") || (curObj.type == "textarea"))
			{
				if (strOp == "hide")
					curObj.style.display = "none";
				else
					curObj.style.display = "block";
			}
		}
	}

	for (intx=0; intx<=window.frames.length-1; intx++)
	{
		cFrame = document.getElementById(window.frames[intx].name)
		for(intz=0; intz<=cFrame.contentWindow.document.forms.length-1; intz++)
		{
			curForm = cFrame.contentWindow.document.forms[intz]
			for (inty=0; inty<=curForm.elements.length-1; inty++)
			{
				curObj = curForm.elements[inty];
				if ((curObj.type == "select-one") || (curObj.type == "select-multiple") || (curObj.type == "textarea"))
				{
					if (strOp == "hide")
						curObj.style.display = "none";
					else
						curObj.style.display = "block";
				}
			}
		}
	}
}

function HideState(nameCountryObj, stateObjContainerName, nameStateObj)
{
    var objCountry = document.getElementById(nameCountryObj);
    var objState = document.getElementById(nameStateObj)
    var objStateContainer = document.getElementById(stateObjContainerName);
    if (objCountry.value.toLowerCase() != "united states")
        objStateContainer.style.display = "none";
    else
    {
        objState.value = "HI";
        objStateContainer.style.display = "block";
    }
}

function RestrictCharEntry(e, cObj, numMaxChar)
{
    var strRet = false;
    if (cObj.value.length < numMaxChar) strRet = true;

    //8=backspace, 46=del, 37-40=direction keys, 144=numlock, 9=tab, 20=caps lock
    if ((e.keyCode == 8) || (e.keyCode == 46) || ((e.keyCode >= 37) && (e.keyCode <= 40)) || (e.keyCode == 144) || (e.keyCode == 9) || (e.keyCode == 20)) strRet = true;
    return strRet;
}

function KeyRestricted(event, strType, strCharList)
{
	//Note these only work for onKeyPress event.  onKeyUp and onKeyDown have different keyCode values for some reason.
	
	var strReturn = false;
	if (document.all)
	{
		var numkey = event.keyCode;
		var blnIsShiftKeyPressed = event.shiftKey;
	}
	else
	{
		var numkey = event.which;
		var blnIsShiftKeyPressed = event.modifiers & Event.SHIFT_MASK;
	}
	if (strCharList != "") var strChars = strCharList.split(",")

	//KEYCODES:
	//Numbers 0-9, regularkeys & numericpad: 48-57
	//Letters: a-z 97-122, and A-Z, 65-90
	//("-" 45), ("/" 47)
	//("." 46), ("," 44)

	switch (strType)
	{
		case "letters":
		    if ((numkey==8) || ((numkey>=65) && (numkey<=90)) || ((numkey>=97) && (numkey<=122))) strReturn = true;
			break;
		case "numbers":
			if (blnIsShiftKeyPressed == false)
			{
				if ((numkey==8) || (numkey==46) || ((numkey>=37) && (numkey<=40)) || ((numkey>=48) && (numkey<=57))) strReturn = true;
			}
			break;
		case "numbersonly":
			if (blnIsShiftKeyPressed == false)
			{
				if (((numkey>=48) && (numkey<=57)) || (numkey==8) || (numkey==0)) strReturn = true;
			}
			break;
		case "date":
			if (blnIsShiftKeyPressed == false)
			{
				if (((numkey==8) || ((numkey>=37) && (numkey<=40))) || ((numkey==47) || (((numkey>=48) && (numkey<=57))))) strReturn = true;
			}
			break;
		case "phone":
			if (blnIsShiftKeyPressed == false)
			{
				if (((numkey==8) || ((numkey>=37) && (numkey<=40))) || ((numkey==45) || (((numkey>=48) && (numkey<=57))))) strReturn = true;
			}
			break;
		default:
			break;
	}
	return strReturn;
}

function ShowTwoDec(val)
{
	var strRet = Math.round(parseFloat(val) * 100)/100;
	strRet = strRet.toString();
    if (strRet == "0")
        strRet = "0.00";
    else
    {
        if (strRet.search(/\./gi) >= 0)
        {
            var arrStr = strRet.split(".");
            if (arrStr[1].length == 1) strRet += "0";
        }
        else
	        strRet += ".00";
    }
    return strRet;
}

function Trim(str)
{
    return str.replace(/^\s*|\s*$/g,"");
}

//Expand and Collapse
function Expcol(parentDiv, rowName, picName, rowVal, intHeight, e)
{
	var rootImgFolder = document.getElementById("rootImageFolder" + rowVal);
	var cpbox = document.getElementById("popbox");
	var curRow = document.getElementById(rowName + rowVal);
	var curImg = document.getElementById(picName + rowVal);
	if (parentDiv != "") var objParentDiv = document.getElementById(parentDiv);
	if (curImg.src.search(/plus.gif/gi) >= 0)
	{
		curRow.style.display = "block";
		if (curImg.src.search(/plus.gif/gi) >= 0) curImg.src = "/images/minus.gif";
		if (rootImgFolder) 
		{
			if (rootImgFolder.src.search(/folder/gi) >= 0) rootImgFolder.src = "/images/folderopen.gif";
		}
		curImg.alt = "Click here to collapse this tree";
	}
	else
	{
		curRow.style.display = "none";
		if (curImg.src.search(/minus.gif/gi) >= 0) curImg.src = "/images/plus.gif";
		if (rootImgFolder) 
		{
			if (rootImgFolder.src.search(/folder/gi) >= 0) rootImgFolder.src = "/images/folder.gif";
		}
		curImg.alt = "Click here to expand this tree";
	}
}

//Expand and Collapse
function ExpcolALT(parentRowName, subRowName, imgCollapser, imgFolderName)
{
    var objFolder = document.getElementById(imgFolderName);
    var parentRow = document.getElementById(parentRowName);
    var childRow = document.getElementById(subRowName);
    var objCollapser = document.getElementById(imgCollapser);
    if (objCollapser.src.search(/plus/gi) >= 0)
    {
	    childRow.style.display = "block";
	    if (objCollapser.src.search(/plus/gi) >= 0) objCollapser.src = "/images/icon_minus.gif";
	    if (objFolder) 
	    {
		    if (objFolder.src.search(/icon_folder.gif/gi) >= 0) objFolder.src = "/images/icon_folderopen.gif";
	    }
	    objCollapser.alt = "Click here to collapse this tree";
    }
    else
    {
	    childRow.style.display = "none";
	    if (objCollapser.src.search(/minus/gi) >= 0) objCollapser.src = "/images/icon_plus.gif";
	    if (objFolder) 
	    {
		    if (objFolder.src.search(/icon_folderopen.gif/gi) >= 0) objFolder.src = "/images/icon_folder.gif";
	    }
	    objCollapser.alt = "Click here to expand this tree";
    }
}

//finds IE version number
function GetIEVersionNumber() 
{
    var ua = navigator.userAgent;
    var MSIEOffset = ua.indexOf("MSIE ");
    if (MSIEOffset == -1)
        return 0;
    else
        return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
}


//finds current XML version on client machine
function FindXMLVersion()
{
	var xmlVersion = ["4.0", "3.0", "2.6", "2.5", "2", "Microsoft", "MSXML"];
	var xmlDoc = "<?xml version=\"1.0\"?><Test>hellow World</Test>";
	var i, objXml, objXmlDom, strRetVal="";

	for (i=0; i <= xmlVersion.length-1; i++)
	{
		if (xmlVersion[i] == "Microsoft")
		{
			try 
			{
				objXML = new ActiveXObject("Microsoft.XMLDOM");
				objXML.async = false;
				if (objXML.loadXML(xmlDoc))
				{
					if (strRetVal == "") strRetVal = "Microsoft";
				}
			}
			catch (e)
			{
			}
		}
		else if (xmlVersion[i] == "MSXML")
		{
			try 
			{
				objXML = new ActiveXObject("Msxml.DOMDocument");
				objXML.async = false;
				if (objXML.loadXML(xmlDoc))
				{
					if (strRetVal == "") strRetVal = "Msxml";
				}
			}
			catch (e)
			{
			}
		}
		else if (xmlVersion[i] == "2")
		{
			try 
			{
				objXML = new ActiveXObject("Msxml2.DOMDocument");
				objXML.async = false;
				if (objXML.loadXML(xmlDoc))
				{
					if (strRetVal == "") strRetVal = "Msxml2";
				}
			}
			catch (e)
			{
			}
		}
		else
		{
			try 
			{
				objXML = new ActiveXObject("Msxml2.DOMDocument." + xmlVersion[i]);
				objXML.async = false;
				if (objXML.loadXML(xmlDoc))
				{ 
					if (strRetVal == "") strRetVal = "Msxml2";
				}
			}
			catch (e)
			{
			}	
		}
	}
	return strRetVal;
}

//dynamically fill object and display
function RebuildMain(objFilled, strPath, strPassfilterValue, nodeStatus)
{
	var strBuild="", strAnswer="";
	if (document.all)
		var poster = new ActiveXObject(FindXMLVersion() + ".XMLHTTP")
	else
		var poster = new XMLHttpRequest();
	
	if (objFilled != "") objFilled = document.getElementById(objFilled);
	if (strPassfilterValue == "")
		strBuild = "<?xml version=\"1.0\"?><template />";
	else
	{
		switch (nodeStatus)
		{
			case "doDelete":
				strBuild = "<?xml version=\"1.0\"?><template>" + strPassfilterValue + "</template>";
				break;
			case "getTable":
				strBuild = "<?xml version=\"1.0\"?><template>" + strPassfilterValue + "</template>";
				break;
			case "getValue":
				strBuild = "<?xml version=\"1.0\"?><template>" + strPassfilterValue + "</template>";
				break;
			case "verifyDragToTargetID":
				strBuild = "<?xml version=\"1.0\"?><template>" + strPassfilterValue + "</template>";
				break;
			case "copymoveconfirm":
				strBuild = "<?xml version=\"1.0\"?><template>" + strPassfilterValue + "</template>";
				break;
			default:
				strBuild = "<?xml version=\"1.0\"?><template>" + strPassfilterValue + "||" + nodeStatus + "</template>";
				break;
		}
	}

	poster.open("POST", strPath, "false");
	poster.onreadystatechange=function() {
		//States of readyState:
		//0 - UNINITIALIZED, The object has been created, but not initialized (open method has not been called).
		//1 - LOADING, The object has been created, but the send method has not been called.
		//2 - LOADED, The send method has been called and the status and headers are available, but the response is not yet available.
		//3 - INITIALIZED, Some data has been received. You can call responseBody and responseText to get the current partial results.
		//4 - COMPLETED, All the data has been received, and the complete data is available in responseBody and responseText.

		if (poster.readyState == 4)
		{
		    if (poster.status == 200)
		    {
			    strBuild = strAnswer + poster.responseText;
			    if (objFilled != "") objFilled.innerHTML = strBuild;
		    }
		}
	}
	poster.send(strBuild);
	if ((nodeStatus == "verifyDragToTargetID") || (nodeStatus == "getTable") || (nodeStatus == "doDelete")) return strBuild;
}

function TextHighLight(cObj, strMouseState, strNatColor, imgIDIndicator, imgIDIndicatorPath)
{
    cObj.style.cursor = "pointer";
    cObj.style.color = strNatColor;
    if (strMouseState == "on")
        cObj.style.textDecoration = "underline";
    else
        cObj.style.textDecoration = "none";
    
    if (imgIDIndicator != "") 
    {
        var objImgIndicator = document.getElementById(imgIDIndicator);
        if (imgIDIndicatorPath != "") objImgIndicator.src = imgIDIndicatorPath;
    }
}

//HIGHTLIGHTS THE INPUT BOX WITH A COLOR IF ITS CURRENTLY FOCUSSED
function HighLightFocusALT(cObj, colorVal)
{
    cObj.style.backgroundColor = colorVal;
}

function ExpDispALT(cImgName, targetArea, parentObj, parentObjHeight, parentObjWidth, intCollapsedWidth)
{
    var curImg = document.getElementById(cImgName);
    var curImgClose = document.getElementById(cImgName + "Close");
    var objTargetFill = document.getElementById(targetArea);
    var objParent = document.getElementById(parentObj);
    if (curImg.src.search(/plusalt.gif/gi) >= 0)
    {
        curImg.src = "/images/minusalt.gif";
        curImg.alt = "Click here to collapse";
        objParent.style.height = parseInt(parentObjHeight) + "px";
        objParent.style.width = parseInt(parentObjWidth) + "px";
        objParent.style.overflow = "visible";
        objTargetFill.style.display = "block";
        if (curImgClose) curImgClose.style.left = (parseInt(parentObjWidth.replace("px", "")) - 12) + "px";
    }
    else
    {
        curImg.src = "/images/plusalt.gif";
        curImg.alt = "Click here to expand";
        objParent.style.height = "17px";
        objParent.style.width = intCollapsedWidth + "px";
        objParent.style.overflow = "hidden";
        objTargetFill.style.display = "none";
        if (curImgClose) curImgClose.style.left = (intCollapsedWidth - 12) + "px";
    }
}

function ValidateEmail(valEmail)
{
	var blnValid = true, curExtVal = "";
	if ((valEmail.search(/\@/gi)) && (valEmail.search(/ /gi)<0))
	{
		var arrEmail = valEmail.split("@");
		if (arrEmail.length == 2)
		{
			var leftPartEmail = arrEmail[0];
			if (leftPartEmail.search(/\./gi)>=0)
			{
				var arrLeftPartEmail = leftPartEmail.split(".");
				for (var i=0; i<=arrLeftPartEmail-1; i++)
				{
					if (Trim(arrLeftPartEmail[i])=="") blnValid = false;
				}
			}
			
			var rightPartEmail = Trim(arrEmail[1]);
			if (rightPartEmail.search(/\./gi)>=0)
			{
				var arrRightPartEmail = rightPartEmail.split(".");
				for (var i=0; i<=arrRightPartEmail.length-1; i++)
				{
					if (Trim(arrRightPartEmail[i])=="") blnValid = false;
				}
				
				if (blnValid)
				{
					var maxArrayVal = arrRightPartEmail.length;
					var lastExt = Trim(arrRightPartEmail[maxArrayVal-1]);
					if (maxArrayVal >=  2)
					{	
						for (x=1; x<=arrRightPartEmail.length-1; x++)
						{
							curExtVal = Trim(arrRightPartEmail[x]);
							if ((curExtVal.length<2) || (curExtVal.length>3)) blnValid = false;
						}
					}
				}
			}
			else
				blnValid = false;
		}
		else
			blnValid = false;
	}
	else
		blnValid = false;
		
	return blnValid;
}

//==================================================================================================================

	//This is a series of function used for moving HTML Elements on the page, namely DIVs correctly.

	var dragObj = new Object();
	dragObj.zIndex = 0;

	function DragStart(e, id, strScope)
	{
		var el, x, y;
		if (id)
			dragObj.elNode = document.getElementById(id);
		else 
		{
			if (document.all) 
				dragObj.elNode = window.event.srcElement;
			else 
				dragObj.elNode = e.target;

			//If this is a text node, use its parent element
			if (dragObj.elNode.nodeType == 3) dragObj.elNode = dragObj.elNode.parentNode;
		}
		dragObj.elScope = strScope;
		
		if (dragObj.elNode)
		{
            if (dragObj.elNode.style.position != "absolute") 
            {
                var arrCoordinate = FindPosRelativeToParent(dragObj.elNode)
                dragObj.elNode.style.position = "absolute";
                dragObj.elNode.style.left = arrCoordinate[0];
                dragObj.elNode.style.top = arrCoordinate[1];
            }
        }
        
		// Save starting positions of cursor and element.
		dragObj.elWidth = parseInt(dragObj.elNode.style.width);
		dragObj.elHeight = parseInt(dragObj.elNode.style.height);
		dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
		dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
		if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
		if (isNaN(dragObj.elStartTop)) dragObj.elStartTop = 0;
		dragObj.diffValX = (e.clientX - dragObj.elStartLeft);
		dragObj.diffValY = (e.clientY - dragObj.elStartTop);
		
		// Capture mousemove and mouseup events on the page.
		if (document.all) 
		{
			document.attachEvent("onmousemove", DragGo);
			document.attachEvent("onmouseup", DragStop);
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		else
		{
			document.addEventListener("mousemove", DragGo, true);
			document.addEventListener("mouseup", DragStop, true);
			e.preventDefault();
		}
	}

	function DragGo(event) 
	{
		var x, y, newLeft, newRight, newTop, newBottom, intWinHeight, intWinWidth;
	    if (document.all)
	        var curObjTarget = event.srcElement;
	    else
	        var curObjTarget = event.target;
	    
	    if ((curObjTarget.tagName != "BODY") && (curObjTarget.tagName != "HTML"))
	    {
	        var objContainer = GetRelativeObjScrollAmount(curObjTarget);
		    if (document.all) 
		    {
                //alert(dragObj.elScope);
                if (dragObj.elScope == "element")
                {
                    if (objContainer.tagName != "BODY")
                    {
                        var intWinHeight = objContainer.clientHeight;
                        var intWinWidth = objContainer.clientWidth;
                    }
                    else
                    {
                        if (window.event)
                        {
                            window.event.cancelBubble = true;
			                window.event.returnValue = false;
                        }
                    }
                }
                else
                {
                    var arrDimensions = CalcBrowserDimensions();
                    var intWinWidth = arrDimensions[0];
                    var intWinHeight = arrDimensions[1];
                }
		    }
		    else
		    {
                //alert(dragObj.elScope);
                if (dragObj.elScope == "element")
                {
                    if (objContainer.tagName != "BODY")
                    {
                        var intWinHeight = objContainer.clientHeight;
                        var intWinWidth = objContainer.clientWidth;
                    }
                    else
                    {
                        if (window.event)
                        {
                            window.event.cancelBubble = true;
			                window.event.returnValue = false;
                        }
                    }
                }
                else
                {
                    var arrDimensions = CalcBrowserDimensions();
                    var intWinWidth = arrDimensions[0];
                    var intWinHeight = arrDimensions[1];
                }
		    }
		    //alert(intWinWidth + " : " + intWinHeight);
		}
		
		//Move drag element by the same amount the cursor has moved.
		newLeft = (event.clientX - dragObj.diffValX);
		newTop = (event.clientY - dragObj.diffValY);
		newRight = (newLeft + dragObj.elWidth);
		newBottom = (newTop + dragObj.elHeight);
		if ((newLeft>=0) && (newTop>=0) && (newRight<=intWinWidth) && (newBottom<=intWinHeight))
		{
			dragObj.elNode.style.left = newLeft + "px";
			dragObj.elNode.style.top = newTop + "px";
		}
	    if (newLeft<0) dragObj.elNode.style.left = "0px";
	    if (newTop<0) dragObj.elNode.style.top = "0px";
        if (newRight>intWinWidth) dragObj.elNode.style.left = (intWinWidth - dragObj.elWidth) + "px";
        if (newBottom>intWinHeight) dragObj.elNode.style.top = (intWinHeight - dragObj.elHeight) + "px";
		
		if (document.all) 
		{
			window.event.cancelBubble = true;
			window.event.returnValue = false;
		}
		else
			event.preventDefault();
	}

	function DragStop(event) 
	{
		// Stop capturing mousemove and mouseup events.
		if (document.all) 
		{
			document.detachEvent("onmousemove", DragGo);
			document.detachEvent("onmouseup", DragStop);
		}
		else 
		{
			document.removeEventListener("mousemove", DragGo, true);
			document.removeEventListener("mouseup", DragStop, true);
		}
	}

//==================================================================================================================

	//This is a series of function used for generating dynamic menus.
	var objRootMenuStart = "", histMenuActive = "";
	var cancelTimeOut = new Array(1);
	cancelTimeOut[0] = new Array();
	cancelTimeOut[1] = new Array();
	function GenMenu(e, curObj, menuStatus, navMenuDirection, lastNavMenuDirection, extraXPosSpace, extraYPosSpace, targetMenuName, menuImportPage, passValstoImportMenuPage, dispDimensionsExact)
	{
	    var newHistMenuActive = ""
	    if (document.getElementById("testarea")) var objTestArea = document.getElementById("testarea");
        if (menuStatus == "on")
        {
            curObj.style.cursor = "pointer";
            //objTestArea.innerHTML += "UBOUND S: " + cancelTimeOut[1].length + "<br>"
            for (var t=0; t<=cancelTimeOut[1].length-1; t++)
            {
                //objTestArea.innerHTML += "OPEN: " + targetMenuName + " - " + cancelTimeOut[0][t] + "<br>";
                if (targetMenuName.toLowerCase() == cancelTimeOut[0][t].toLowerCase())
                {
                    newHistMenuActive = eval("histMenuActive.replace(/" + targetMenuName + ",/gi, \"-\")");
                    window.clearTimeout(cancelTimeOut[1][t]);
                    //objTestArea.innerHTML += "OPEN1: " + targetMenuName + " - CANCEL: " + cancelTimeOut[0][t] + " - " + cancelTimeOut[1][t] + "<br>";
                    cancelTimeOut[0].splice(t, 1);
                    cancelTimeOut[1].splice(t, 1);
                    t--
                }
            }
   
            if (newHistMenuActive.search(/-/gi) > 0)
            {
                //objTestArea.innerHTML += "UBOUND M: " + cancelTimeOut[1].length + "<br>"
                var newHistMenuSeq = newHistMenuActive.slice(0, newHistMenuActive.search(/-/gi));
                for (var v=0; v<=cancelTimeOut[1].length-1; v++)
                {
                    //objTestArea.innerHTML += "OPEN: " + v + " : " + targetMenuName + " - " + cancelTimeOut[0][v] + "<br>";
                    if (eval("newHistMenuSeq.toLowerCase().search(/" + cancelTimeOut[0][v].toLowerCase() + ",/gi) >= 0"))
                    {
                        window.clearTimeout(cancelTimeOut[1][v]);
                        //objTestArea.innerHTML += "OPEN2: " + targetMenuName + " - CANCEL: " + cancelTimeOut[0][v] + " - " + cancelTimeOut[1][v] + "<br>";
                        cancelTimeOut[0].splice(v, 1);
                        cancelTimeOut[1].splice(v, 1);
                        v--
                    }
                }
            }
            //objTestArea.innerHTML += "UBOUND E: " + cancelTimeOut[1].length + "<br>"
   
            //-----------------------------------------------------------------------------------------------------
            if (!document.getElementById(targetMenuName))
            {
                //objTestArea.innerHTML += "BEFORE CREATE HIST: " + histMenuActive + "<br>";
                if (histMenuActive.search(/,/gi) >= 0)
                {
                    var arrHistMenuActive = histMenuActive.slice(0, histMenuActive.length-1).split(",");
                    var arrLastActiveMenu = arrHistMenuActive[arrHistMenuActive.length-1].split(":");
                    var lastActiveMenuTreeLevel = parseInt(arrLastActiveMenu[1]);
                    var arrTargetMenuName = targetMenuName.split(":");
                    var targetMenuNameTreeLevel = parseInt(arrTargetMenuName[1]);
                    //objTestArea.innerHTML += histMenuActive + " --- " + arrHistMenuActive[arrHistMenuActive.length-1] + "<br>"
                    //objTestArea.innerHTML += arrHistMenuActive[arrHistMenuActive.length-1] + " --- " + targetMenuName + "<br>"
                    if (lastActiveMenuTreeLevel == targetMenuNameTreeLevel) 
                    {
                        histMenuActive = eval("histMenuActive.replace(/" + arrHistMenuActive[arrHistMenuActive.length-1] + ",/gi, \"\")");
                        //objTestArea.innerHTML += arrHistMenuActive[arrHistMenuActive.length-1] + " : " + document.getElementById(Trim(arrHistMenuActive[arrHistMenuActive.length-1])) + "<br>";
                        if (document.getElementById(arrHistMenuActive[arrHistMenuActive.length-1]))
                        {
                            var objDestroy = document.getElementById(arrHistMenuActive[arrHistMenuActive.length-1]);
                            document.body.removeChild(objDestroy);
                            for (var y=0; y<=cancelTimeOut[1].length-1; y++)
                            {
                                if (cancelTimeOut[0][y].toLowerCase() == arrHistMenuActive[arrHistMenuActive.length-1].toLowerCase())
                                {
                                    window.clearTimeout(cancelTimeOut[1][y]);
                                    cancelTimeOut[0].splice(y, 1);
                                    cancelTimeOut[1].splice(y, 1);
                                    y--
                                }
                            }
                        }
                    }
                }
                histMenuActive += targetMenuName + ",";
                //objTestArea.innerHTML += "AFTER CREATE HIST: " + histMenuActive + "<br>";
                
                var arrDimensionsScroll = GetPagePlusScrollAmt();
                intWidth = arrDimensionsScroll[0];
                intHeight = arrDimensionsScroll[1];
                //alert(intWidth + " : " + intHeight);
        	
                curObjWidth = curObj.offsetWidth;
                curObjHeight = curObj.offsetHeight;
                //alert(curObjWidth + " : " + curObjHeight);
                
                var arrLoc = FindPos(curObj, lastNavMenuDirection).split("||");
                var xPos = arrLoc[0];
                var yPos = arrLoc[1];
                
                var createdDIV = document.createElement("DIV");
                createdDIV.id = targetMenuName;
                createdDIV.style.position = "absolute";
                createdDIV.style.zIndex = 99;
                if ((targetMenuName == "calendarYearDropdown:1") || (targetMenuName == "calendarMonthDropdown:1")) createdDIV.style.zIndex = 100;
                var objLoadingDisplay = "<div style=\"background-color:#ffffff;border:solid 1px #000000;width:60px;height:50px;padding:3px;\">"
                                      + "<div style=\"text-align:center;\"><img src=\"/images/spinner.gif\" border=0 style=\"width:16px;height:16px;\"></div>"
                                      + "<div style=\"margin-top:7px;text-align:center;font-family:arial;font-weight:bold;font-size:8pt;\">Loading...</div>"
                                      + "</div>";
                createdDIV.innerHTML = objLoadingDisplay;
                document.body.insertBefore(createdDIV, document.body.firstChild);

                var strVals = intHeight + "|*|" + intWidth + "|*|" + navMenuDirection + "|*|" + lastNavMenuDirection + "|*|" + xPos + "|*|" + yPos + "|*|"
                            + extraXPosSpace + "|*|" + extraYPosSpace + "|*|" + targetMenuName;
                DisplayDynamicWindow(strVals, createdDIV, curObj, histMenuActive, objTestArea)

                //------------------------------------------------------------------------------------------------------

                if (document.all)
                    var poster = new ActiveXObject(FindXMLVersion() + ".XMLHTTP")
                else
                    var poster = new XMLHttpRequest();	
                    
                var strBuild = "<?xml version=\"1.0\"?><template>" + passValstoImportMenuPage + "</template>";
                poster.open("POST", menuImportPage, true);
                poster.onreadystatechange=function() {
                    if (poster.readyState == 4)
                    {
                        //alert(poster.responseText);
                        //document.getElementById("MainArea").innerHTML = poster.responseText;
                        if (poster.status == 200)
                        {
                            createdDIV.innerHTML = poster.responseText;
                            if ((dispDimensionsExact == "") || (dispDimensionsExact == "no") || (dispDimensionsExact == "xonly") || (dispDimensionsExact == "yonly"))
                            {
                                var strVals = intHeight + "|*|" + intWidth + "|*|" + navMenuDirection + "|*|" + lastNavMenuDirection + "|*|" + xPos + "|*|" + yPos + "|*|";
                                strVals += extraXPosSpace + "|*|" + extraYPosSpace + "|*|" + targetMenuName;
                                DisplayDynamicWindow(strVals, createdDIV, curObj, histMenuActive, objTestArea)
                            }
                            else
                            {
                                createdDIV.style.left = parseInt(extraXPosSpace) + "px";
                                createdDIV.style.top = parseInt(extraYPosSpace) + "px";
                            }
                            if (dispDimensionsExact == "xonly") createdDIV.style.left = parseInt(extraXPosSpace) + "px";
                            if (dispDimensionsExact == "yonly") createdDIV.style.top = parseInt(extraYPosSpace) + "px";
                            
                            //alert(createdDIV.style.left + " : " + createdDIV.style.top);
                            if (createdDIV) createdDIV.style.visibility = "visible";
                        } 
                    }
                }
                poster.send(strBuild);
            }
        }
        else
        {
            var valDelay = 250;
            //if (document.all)
            //    var tarElement = e.toElement;
            //else 
            //    var tarElement = e.relatedTarget;
            //var blnCurObjIsParent = ChkifParent(curObj, tarElement);
            //objTestArea.innerHTML += blnCurObjIsParent + " : " + curObj.tagName + " : " + (curObj == tarElement) + " : " + tarElement.tagName + "<br>"
            //if ((blnCurObjIsParent==false) && (curObj != tarElement))
            //{      
                var iUbound = cancelTimeOut[0].length;
                var iTOUbound = cancelTimeOut[1].length;
                if (Trim(histMenuActive) != "")
                {
                    newHistMenuActive = histMenuActive.slice(0, histMenuActive.length-1);
                    if (newHistMenuActive.search(/,/gi) >= 0)
                    {
                        var arrHistMenuActive = newHistMenuActive.split(",");
                        for (var i=0; i<=arrHistMenuActive.length-1; i++)
                        {
                            cancelTimeOut[0][iUbound+i] = arrHistMenuActive[i];
                            cancelTimeOut[1][iTOUbound+i] = window.setTimeout("CloseMenu('" + arrHistMenuActive[i] + "')", valDelay);
                            //objTestArea.innerHTML += "CLOSE2: " + cancelTimeOut[0][iUbound+i] + " - " + cancelTimeOut[1][iTOUbound+i] + "<br>";
                        }
                    }
                    else
                    {
                        cancelTimeOut[0][iUbound] = newHistMenuActive;
                        cancelTimeOut[1][iTOUbound] = window.setTimeout("CloseMenu('" + newHistMenuActive + "')", valDelay);
                        //objTestArea.innerHTML += "CLOSE1: " + cancelTimeOut[0][iUbound] + " - " + cancelTimeOut[1][iTOUbound] + "<br>";
                    }
                }
                //objTestArea.innerHTML += "---------------------<br>"
            //}
        }
	}

    function DisplayDynamicWindow(strVals, createdDIV, curObj, histMenuActive, objTestArea)
    {
        var arrVals = strVals.split("|*|");
        var intHeight = arrVals[0];
        var intWidth = arrVals[1];
        var navMenuDirection = arrVals[2];
        var lastNavMenuDirection = arrVals[3];
        var xPos = arrVals[4];
        var yPos = arrVals[5];
        var extraXPosSpace = arrVals[6];
        var extraYPosSpace = arrVals[7];
        var targetMenuName = arrVals[8];
        //alert(extraXPosSpace + " : " + extraYPosSpace)

        var objRelativeParent = GetRelativeObjScrollAmount(curObj);
        if (objRelativeParent)
        {
            //alert(objRelativeParent.tagName + " : " + objRelativeParent.scrollTop);
            var valRelParentScrollTop = objRelativeParent.scrollTop;
            var valRelParentScrollLeft = objRelativeParent.scrollLeft;
            //alert(valRelParentScrollLeft + " : " + valRelParentScrollTop); 
        }
        
        //objTestArea.innerHTML += "CREATED ID: " + createdDIV.id + "<br>";
        var createdDIVWidth = createdDIV.offsetWidth;
        var createdDIVHeight = createdDIV.offsetHeight;
        //alert(createdDIVWidth + " : " + createdDIVHeight);
        
        var getCurObjParentHist =  eval("histMenuActive.replace(/" + targetMenuName + ",/gi, \"\")");
        if (getCurObjParentHist != "")
        {
            var arrCurObjParentHist = getCurObjParentHist.slice(0, getCurObjParentHist.length-1).split(",");
            var objParentCheck = document.getElementById(arrCurObjParentHist[arrCurObjParentHist.length-1]);
            if (objParentCheck)
            {
                var arrLocALT = FindPos(objParentCheck, lastNavMenuDirection).split("||");
                if ((navMenuDirection == "left") || (navMenuDirection == "right"))
                    xPos = arrLocALT[0];
                else
                {
                    xPos = arrLocALT[0];
                    yPos = arrLocALT[1];
                }
                curObjWidth = objParentCheck.offsetWidth;
                curObjHeight = objParentCheck.offsetHeight;
            }
        }  

        //alert(createdDIVWidth + " : " + createdDIVHeight);        
        switch (navMenuDirection)
        {
            case "right":
                if (valRelParentScrollLeft) xPos = (parseInt(xPos) - parseInt(valRelParentScrollLeft));
                if (valRelParentScrollTop) yPos = (parseInt(yPos) - parseInt(valRelParentScrollTop));
                
                //show menu on right side if there is enough space to do so
                createdDIV.style.left = (parseInt(xPos) + parseInt(curObjWidth) + parseInt(extraXPosSpace)) + "px";
                var bottomMenuEndPoint = (parseInt(yPos) + parseInt(createdDIVHeight) + parseInt(extraYPosSpace));
                var topMenuStartPoint = (parseInt(yPos) + parseInt(curObjHeight) - parseInt(createdDIVHeight) - parseInt(extraYPosSpace));
                if (bottomMenuEndPoint > intHeight)
                    createdDIV.style.top = (parseInt(yPos) + parseInt(curObjHeight) - parseInt(createdDIVHeight) - parseInt(extraYPosSpace)) + "px";
                else
                    createdDIV.style.top = (parseInt(yPos) + parseInt(extraYPosSpace)) + "px";
                break;
            case "left":
                if (valRelParentScrollLeft) xPos = (parseInt(xPos) - parseInt(valRelParentScrollLeft));
                if (valRelParentScrollTop) yPos = (parseInt(yPos) - parseInt(valRelParentScrollTop));
                
                //show menu on left side if there is enough space to do so
                createdDIV.style.left = (parseInt(xPos) - parseInt(createdDIVWidth) - parseInt(extraXPosSpace)) + "px";
                
                var bottomMenuEndPoint = (parseInt(yPos) + parseInt(createdDIVHeight) + parseInt(extraYPosSpace));
                var topMenuStartPoint = (parseInt(yPos) + parseInt(curObjHeight) - parseInt(createdDIVHeight) - parseInt(extraYPosSpace));
                if (bottomMenuEndPoint > intHeight)
                    createdDIV.style.top = (parseInt(yPos) + parseInt(curObjHeight) - parseInt(createdDIVHeight) - parseInt(extraYPosSpace)) + "px";
                else
                    createdDIV.style.top = (parseInt(yPos) + parseInt(extraYPosSpace)) + "px";
                break;
            case "bottom":
                if (valRelParentScrollLeft) xPos = (parseInt(xPos) - parseInt(pvalRelParentScrollLeft));
                if (valRelParentScrollTop) yPos = (parseInt(yPos) - parseInt(valRelParentScrollTop));
            
                var rightMenuEndPoint = (parseInt(xPos) + parseInt(createdDIVWidth) + parseInt(extraXPosSpace));
                var leftMenuStartPoint = (parseInt(xPos) + parseInt(curObjWidth) - parseInt(createdDIVWidth) - parseInt(extraXPosSpace));
                if (rightMenuEndPoint > intWidth)
                    createdDIV.style.left = (parseInt(xPos) + parseInt(curObjWidth) - parseInt(createdDIVWidth) - parseInt(extraXPosSpace)) + "px";
                else if (leftMenuStartPoint < 0) 
                    createdDIV.style.left = (parseInt(xPos) + parseInt(extraXPosSpace)) + "px";
                else
                    createdDIV.style.left = (parseInt(xPos) + parseInt(extraXPosSpace)) + "px";
                       
                //show menu on bottom side if there is enough space to do so
                //HAVE TO ADD curObjHeight, because the yPos is the top position of curObj we are showing the menu downward.
                var remainingBotSpace = (parseInt(intHeight) - (parseInt(yPos) + parseInt(curObjHeight) + parseInt(createdDIVHeight) + parseInt(extraYPosSpace)));
                if (remainingBotSpace > 0) createdDIV.style.top = (parseInt(yPos) + parseInt(curObjHeight) + parseInt(extraYPosSpace)) + "px";
                //alert(createdDIV.style.left + " : " + createdDIV.style.top );
                break;
            case "top":
                if (valRelParentScrollLeft) xPos = (parseInt(xPos) - parseInt(valRelParentScrollLeft));
                if (valRelParentScrollTop) yPos = (parseInt(yPos) - parseInt(valRelParentScrollTop));

                var rightMenuEndPoint = (parseInt(xPos) + parseInt(createdDIVWidth) + parseInt(extraXPosSpace));
                var leftMenuStartPoint = (parseInt(xPos) + curObjWidth - parseInt(createdDIVWidth) - parseInt(extraXPosSpace));
                if (rightMenuEndPoint > intWidth) 
                    createdDIV.style.left = (parseInt(xPos) + parseInt(curObjWidth) - parseInt(createdDIVWidth) - parseInt(extraXPosSpace)) + "px";
                else if (leftMenuStartPoint < 0) 
                    createdDIV.style.left = (parseInt(xPos) + parseInt(extraXPosSpace)) + "px";
                else
                    createdDIV.style.left = (parseInt(xPos) + parseInt(extraXPosSpace)) + "px";

                //show menu on top side if there is enough space to do so
                //DONT HAVE TO SUBTRACT curObjHeight, because the yPos is already the top position of curObj and we are showing the menu upward.
                var remainingTopSpace = (parseInt(yPos) - parseInt(createdDIVHeight) - parseInt(extraYPosSpace));
                if (remainingTopSpace > 0) createdDIV.style.top = (parseInt(yPos) - parseInt(createdDIVHeight) - parseInt(extraYPosSpace)) + "px";
                //alert(createdDIV.style.left + " : " + createdDIV.style.top );
                break;
            default:
                break;
        }
    }

	function CloseMenu(targetMenuName, tarParentID, tarParentTAGNAME)
	{
	    var curMenuDIV = document.getElementById(targetMenuName);
	    if (curMenuDIV) document.body.removeChild(curMenuDIV);
	    
	    histMenuActive = eval("histMenuActive.replace(/" + targetMenuName + ",/gi, \"\")");
	    //objTestArea.innerHTML += "DESTROY HIST: " + histMenuActive + "<br>";
	}
	
	function FindPos(obj, lastNavMenuDirection) 
	{
	    var curleft = curtop = 0;
	    if (obj.offsetParent) 
	    {
	        do
	        {
	            curleft += obj.offsetLeft;
	            curtop += obj.offsetTop;
	            //alert(obj.offsetLeft + " : " + obj.offsetTop);
	        }
	        while (obj = obj.offsetParent) 
	    }
	    var retVal = curleft + "||" + curtop;
	    return retVal
    }

	function FindPosRelativeToParent(obj) 
	{
	    var curleft = curtop = 0;
	    if (obj.offsetParent) 
	    {
	        do
	        {
	            if (obj.style.position == "relative") break;
	            curleft += obj.offsetLeft;
	            curtop += obj.offsetTop;
	        }
	        while (obj = obj.offsetParent) 
	    }
	    var retVal = [curleft, curtop];
	    return retVal;
    }

    function GetRelativeObjScrollAmount(curObj)
    {
        var blnContinue = true;
        while (blnContinue)
        {
            if (curObj.parentNode)
            {
                curObj = curObj.parentNode;
                if (curObj.style.position == "relative") blnContinue = false;
            }
            if (Trim(curObj.tagName) == "BODY") blnContinue = false;
        }
        return curObj;
    }

    function FindParentObj(curObj)
    {
        var blnContinue = true;
        while (blnContinue)
        {
            if (curObj.parentNode)
            {
                curObj = curObj.parentNode;
                if (curObj.id)
                {
                    if (Trim(curObj.tagName.toUpperCase()) == "DIV")
                    {
                        //alert(curObj.id);
                        if (curObj.style.position == "absolute") blnContinue = false;
                    }
                }
            }
            if (Trim(curObj.tagName) == "BODY") blnContinue = false;
        }
        return curObj;
    }
    
    function FindFirstTagName(objParent, tagName)
    {
        var objReturn = "";
        if (objParent.childNodes)
        {
            for (var i=0; i<=objParent.childNodes.length; i++)
            {
                if (objParent.childNodes[i])
                {
                    if (objParent.childNodes[i].tagName)
                    {
                        //alert(objParent.childNodes[i].tagName)
                        if (objParent.childNodes[i].tagName.toLowerCase() == tagName.toLowerCase())
                        {
                            objReturn = objParent.childNodes[i];
                            break;
                        }
                    }
                }
            }
        }
        return objReturn;
    }
    
    function ChkifParent(curObj, tarElement)
    {
        var blnContinue = true, blnIsParent = false;
        if (tarElement)
        {
            var objTarget = tarElement;
            while (blnContinue)
            {
                if (objTarget.tagName)
                {
                    if (objTarget.tagName != "BODY")
                    {
                        if (objTarget.parentNode)
                        {
                            objTarget = objTarget.parentNode;
                            if (objTarget.tagName == "BODY")
                                break;
                            else
                            {
                                if (curObj == objTarget) 
                                {
                                    blnContinue = false
                                    blnIsParent = true;
                                }
                            }
                        }
                    }
                    else
                        break;
                }
                else
                    break;
            }
            return blnIsParent;
        }
    }
    
//==================================================================================================================

    //CALENDAR FUNCTIONS
    //==========================================================================================================
    function FillDate(e, curObj, nameObjtoFill, intDateCounter)
    {
        var objToFill = document.getElementById(nameObjtoFill);
        var objCurMonth = document.getElementById("calendarCurMonth");
        var objCurYear = document.getElementById("calendarCurYear");
        
        var intMonth = parseInt(GetMonthNumber(objCurMonth));
        if (intDateCounter == "")
            objToFill.value = "";    
        else
        {
            var strDate = parseInt(intMonth) + "/" + parseInt(intDateCounter) + "/" + parseInt(objCurYear.innerHTML);
            objToFill.value = strDate;
        }
        
        //modifies global JavaScript Variable used in Global Navigation Menu System (very important variable!!!)
        if (Trim(histMenuActive) != "")
        {
            arrHistMenuActive = histMenuActive.slice(0, histMenuActive.length-1).split(",");
            for (var i=arrHistMenuActive.length-1; i>=0; i--)
            {
                if (document.getElementById(arrHistMenuActive[i])) document.getElementById(arrHistMenuActive[i]).parentNode.removeChild(document.getElementById(arrHistMenuActive[i]));
            }
            histMenuActive = "";
        }
    }

    function SetNewYearVal(curMenuName, nameObjtoFill)
    {
        var objNewYearChange = document.getElementById("fldNewYearValue_text_non");
        var objCurYear = document.getElementById("calendarCurYear");
        if (objNewYearChange.value != "")
        {
            objCurYear.innerHTML = objNewYearChange.value;
            GetCalendarMonth('month', nameObjtoFill);
        }
        
        //modifies global JavaScript Variable used in Global Navigation Menu System (very important variable!!!)
        if (Trim(histMenuActive) != "")
        {
            arrHistMenuActive = histMenuActive.slice(0, histMenuActive.length-1).split(",");
            for (var i=arrHistMenuActive.length-1; i>=0; i--)
            {
                if (document.getElementById(arrHistMenuActive[i])) 
                {
                    if (curMenuName.toLowerCase() == document.getElementById(arrHistMenuActive[i]).id.toLowerCase()) document.getElementById(arrHistMenuActive[i]).parentNode.removeChild(document.getElementById(arrHistMenuActive[i]));
                }
            }
            eval("histMenuActive = histMenuActive.replace(/" + curMenuName + ",/gi, \"\")");
        }
    }

    function SetNewMonthStr(strMonthVal, curMenuName, nameObjtoFill)
    {
        var objCurMonth = document.getElementById("calendarCurMonth");
        objCurMonth.innerHTML = strMonthVal
        GetCalendarMonth('month', nameObjtoFill);
        
        //modifies global JavaScript Variable used in Global Navigation Menu System (very important variable!!!)
        if (Trim(histMenuActive) != "")
        {
            arrHistMenuActive = histMenuActive.slice(0, histMenuActive.length-1).split(",");
            for (var i=arrHistMenuActive.length-1; i>=0; i--)
            {
                if (document.getElementById(arrHistMenuActive[i])) 
                {
                    if (curMenuName.toLowerCase() == document.getElementById(arrHistMenuActive[i]).id.toLowerCase()) document.getElementById(arrHistMenuActive[i]).parentNode.removeChild(document.getElementById(arrHistMenuActive[i]));
                }
            }
            eval("histMenuActive = histMenuActive.replace(/" + curMenuName + ",/gi, \"\")");
        }
    }

    function GetCalendarMonth(strNav, nameObjtoFill)
    {
        var objCurMonth = document.getElementById("calendarCurMonth");
        var objCurYear = document.getElementById("calendarCurYear");
        var objCalendarBody = document.getElementById("calendarBody");
        var intMonth = parseInt(GetMonthNumber(objCurMonth));
        switch (strNav)
        {
            case "month":
                var newYear = parseInt(objCurYear.innerHTML)
                break;
            case "prev":
                var newYear = parseInt(objCurYear.innerHTML)
                if (intMonth == 1) 
                {
                    newYear -= 1;
                    intMonth = 12;
                }
                else
                    intMonth -= 1;
                break;
            case "next":
                var newYear = parseInt(objCurYear.innerHTML)
                if (intMonth == 12) 
                {
                    newYear += 1;
                    intMonth = 1;
                }
                else
                    intMonth += 1;
                break;
            default:
                break;
        }
        objCurMonth.innerHTML = GetMonthNameStr(intMonth);
        objCurYear.innerHTML = newYear;
        
        if (document.all)
        {
            var strBrowser = "ie";
            var poster = new ActiveXObject(FindXMLVersion() + ".XMLHTTP")
        }
        else
        {
            var strBrowser = "other";
            var poster = new XMLHttpRequest();	
        }
    	
        var strBuild = "<?xml version=\"1.0\"?><template>" + nameObjtoFill + "||" + strBrowser + "||" + strNav + "||" + intMonth + "||" + newYear + "</template>";
        poster.open("POST", "/calendar/calendar.aspx", true);
        poster.onreadystatechange=function() {
            if (poster.readyState == 4)
            {
                //alert(poster.responseText);
                if (poster.status == 200) objCalendarBody.innerHTML = poster.responseText;
            }
        }
        poster.send(strBuild);
    }

    function GetMonthNameStr(intCurMonth)
    {
        var strMonth = "";
        switch (intCurMonth)
        {
            case 1:
                strMonth = "January";
                break;
            case 2:
                strMonth = "February";
                break;
            case 3:
                strMonth = "March";
                break;
            case 4:
                strMonth = "April";
                break;
            case 5:
                strMonth = "May";
                break;
            case 6:
                strMonth = "June";
                break;
            case 7:
                strMonth = "July";
                break;
            case 8:
                strMonth = "August";
                break; 
            case 9:
                strMonth = "September";
                break;
            case 10:
                strMonth = "October";
                break;
            case 11:
                strMonth = "November";
                break;
            case 12:
                strMonth = "December";
                break; 
            default:
                break;
        }
        return strMonth;
    }

    function GetMonthNumber(objCurMonth)
    {
        var intMonth = "";
        switch (objCurMonth.innerHTML.toLowerCase())
        {
            case "january":
                intMonth = 1;
                break;
            case "february":
                intMonth = 2;
                break;
            case "march":
                intMonth = 3;
                break;
            case "april":
                intMonth = 4;
                break;
            case "may":
                intMonth = 5;
                break;
            case "june":
                intMonth = 6;
                break;
            case "july":
                intMonth = 7;
                break;
            case "august":
                intMonth = 8;
                break; 
            case "september":
                intMonth = 9;
                break;
            case "october":
                intMonth = 10;
                break;
            case "november":
                intMonth = 11;
                break;
            case "december":
                intMonth = 12;
                break; 
            default:
                break;
        }
        return intMonth;
    }
    
    function HighLight(cObj, strMouseState, strNatColor)
    {
        switch (strMouseState)
        {
	        case "on":
		        if (Trim(strNatColor) != "")
			        cObj.style.backgroundColor = strNatColor;
		        else
			        cObj.style.backgroundColor = "#F1A67A";
		        cObj.style.cursor = "pointer";
		        break;
	        case "off":
		        cObj.style.backgroundColor = strNatColor;
		        break;
	        default:
		        break;
        }
    }
    
    
    //==========================================================================================================
    
    
    function ShowDropDownHeader(curObj, htmlFirstTag, displayContainerID)
    {
        if (!document.getElementById("containerTopHeaderDropDown" + displayContainerID))
        {
            if (htmlFirstTag == "table")
            {
                var getHeaderTbl = FindFirstTagName(curObj, "TABLE");
                var getHeaderTblTbody = FindFirstTagName(getHeaderTbl, "TBODY");
                var strInput = "<TABLE id=\"rowTopHeaderFieldNames\" border=0 cellpadding=0 cellspacing=0 style=\"width:100%;height:20px;\">" + getHeaderTblTbody.innerHTML + "</TABLE>";
            }
            else
                var strInput = "<DIV id=\"rowTopHeaderFieldNames\" style=\"height:20px;\">" + curObj.innerHTML + "</DIV>";
                
            var objTopHeaderContainer= document.createElement("DIV");
            objTopHeaderContainer.id = "containerTopHeaderDropDown" + displayContainerID;
            objTopHeaderContainer.style.position = "absolute";
            objTopHeaderContainer.style.left = "0px";
            objTopHeaderContainer.style.top = "0px";
            objTopHeaderContainer.style.zIndex = 3;
            objTopHeaderContainer.style.height = "20px";
            objTopHeaderContainer.style.width = "100%";
            objTopHeaderContainer.style.overflow = "hidden";
            objTopHeaderContainer.innerHTML = strInput;
            if (htmlFirstTag == "table")
            {
                getHeaderTbl = FindFirstTagName(objTopHeaderContainer, "TABLE");
                getHeaderTblTbody = FindFirstTagName(getHeaderTbl, "TBODY");
                var getFirstTR = FindFirstTagName(getHeaderTblTbody, "TR");
                var getFirstTD = "", getFirstIMG = "";
                while (true)
                {
                    if (getFirstTR.tagName == "TR")
                    {
                        getFirstTR.id += "ScrollHeader";
                        getFirstTD = FindFirstTagName(getFirstTR, "TD");
                        while (true)
                        {
                            if (getFirstTD.tagName == "TD")
                            {
                                getFirstTD.id += "ScrollHeader";
                                getFirstIMG = FindFirstTagName(getFirstTD, "IMG");
                                if (getFirstIMG) getFirstIMG.id += "ScrollHeader";    
                            }
                            
                            if (getFirstTD.nextSibling)
                                getFirstTD = getFirstTD.nextSibling;
                            else
                                break;
                        }
                    }
                    
                    if (getFirstTR.nextSibling) 
                        getFirstTR = getFirstTR.nextSibling;
                    else
                        break;   
                }
            }
            else if (htmlFirstTag == "div")
            {
                var getFirstDIV = FindFirstTagName(objTopHeaderContainer, "DIV");
                while (true)
                {
                    if (getFirstDIV.tagName == "DIV") getFirstDIV.id += "ScrollHeader";
                    if (getFirstDIV.nextSibling) 
                        getFirstDIV = getFirstDIV.nextSibling;
                    else
                        break;   
                } 
            }
            //alert(objTopHeaderContainer.innerHTML);
            curObj.insertBefore(objTopHeaderContainer, curObj.firstChild);
        }
        else
        {
            var objTopHeaderContainer = document.getElementById("containerTopHeaderDropDown" + displayContainerID);
            objTopHeaderContainer.style.left = curObj.scrollLeft;
            objTopHeaderContainer.style.top = curObj.scrollTop;
        }
    }

    function ShowFloatTblHeader(curObj)
    {
        if (!document.getElementById("containerTopHeader"))
        {
            var getHeaderTbl = FindFirstTagName(curObj, "TABLE");
            var getHeaderTblTbody = FindFirstTagName(getHeaderTbl, "TBODY");
            var strTbl = "<TABLE id=\"rowTopHeaderFieldNames\" border=0 cellpadding=0 cellspacing=0 style=\"width:100%;height:30px;\">" + getHeaderTblTbody.innerHTML + "</TABLE>";
            if (getHeaderTbl)
            {
                var objTopHeaderContainer= document.createElement("DIV");
                objTopHeaderContainer.id = "containerTopHeader";
                objTopHeaderContainer.style.position = "absolute";
                objTopHeaderContainer.style.left = "0px";
                objTopHeaderContainer.style.top = "0px";
                objTopHeaderContainer.style.zIndex = 3;
                objTopHeaderContainer.style.height = "31px";
                objTopHeaderContainer.style.overflow = "hidden";
                objTopHeaderContainer.innerHTML = strTbl;
                getHeaderTbl = FindFirstTagName(objTopHeaderContainer, "TABLE");
                getHeaderTblTbody = FindFirstTagName(getHeaderTbl, "TBODY");
                var getFirstTR = FindFirstTagName(getHeaderTblTbody, "TR");
                var getFirstTD = "", getFirstIMG = "";
                while (true)
                {
                    if (getFirstTR.tagName == "TR")
                    {
                        getFirstTR.id += "ScrollHeader";
                        getFirstTD = FindFirstTagName(getFirstTR, "TD");
                        while (true)
                        {
                            if (getFirstTD.tagName == "TD")
                            {
                                getFirstTD.id += "ScrollHeader";
                                getFirstIMG = FindFirstTagName(getFirstTD, "IMG");
                                if (getFirstIMG) getFirstIMG.id += "ScrollHeader";    
                            }
                            
                            if (getFirstTD.nextSibling)
                                getFirstTD = getFirstTD.nextSibling;
                            else
                                break;
                        }
                    }
                    
                    if (getFirstTR.nextSibling) 
                        getFirstTR = getFirstTR.nextSibling;
                    else
                        break;   
                }
                //alert(objTopHeaderContainer.innerHTML);
                curObj.insertBefore(objTopHeaderContainer, curObj.firstChild);
            }
        }
        else
        {
            var objTopHeaderContainer = document.getElementById("containerTopHeader");
            objTopHeaderContainer.style.left = curObj.scrollLeft;
            objTopHeaderContainer.style.top = curObj.scrollTop;
        }
    }
    
//-->