// JScript File

var oldctrlID = "";
var currClassName = "";

var itineraryTblWidth = 0;
var locationColWidth = 0;
var datetimeColWidth = 0;
var eventColWidth = 0;
var statusColWidth = 0;

var waitHTML = "<font class=\"itinLink_inactive\"><span id=\"spnWait\">...fetching data. please wait...</span></font>"

var timeout_processTimeout;
function processTimeout(ctrlID, procIdx) {
    if ( procIdx == undefined ) procIdx = 0;
    if ( oldctrlID != ctrlID ) {
        switch ( procIdx ) {
            case 0:
                var nextfn = function() { timeout_processTimeout = processTimeout(ctrlID,++procIdx); }
                setTimeout(nextfn, 0);
                
                break;
            case 1:
                setDivDisable(true);

                var nextfn = function() { timeout_processTimeout = processTimeout(ctrlID,++procIdx); }
                setTimeout(nextfn, 0);
                
                break;
            case 2:
                getCtrlData(ctrlID);
                
                var nextfn = function() { timeout_processTimeout = processTimeout(ctrlID,++procIdx); }
                setTimeout(nextfn, 0);

                break;
            default:
                var nextfn = function() { timeout_processTimeout = processTimeout(ctrlID,++procIdx); }
                setTimeout(nextfn, 0);
                
                break;
        }
    } else {
        clearTimeout(timeout_processTimeout);
        setDivDisable(false);
    }
}

function setDivDisable(pDisabled) {
    switch ( pDisabled ) {
        case true:
            div_itinerary.style.cursor="wait";

            break;
        case false:
            div_itinerary.style.cursor="default";

            break;
    }
    div_itinerary.disabled = pDisabled;
}

function ctrlSpn_onclick(ctrlID) {
    var divV = document.getDocElementById("divViewModeDetail");
    if ( divV ) divV.innerHTML = waitHTML;

    if ( itineraryTblWidth==0 ) {
        if ( objItinDim==null ) objItinDim = new ItineraryDimObj();
        
        itineraryTblWidth = objItinDim.itineraryTblWidth();
        locationColWidth = objItinDim.locationColWidth();
        datetimeColWidth = objItinDim.datetimeColWidth();
        eventColWidth = objItinDim.eventColWidth();
        statusColWidth = objItinDim.statusColWidth();
    }

    processTimeout(ctrlID);
}

function getCtrlData(ctrlID) {
    var div = document.getDocElementById("div_itinerary");
    if ( div ) {
        if ( objItinXHTML==null ) {

            var xmlhttpItinerary = null;
            var xmldomItinerary = null;
            var xmldata = "itinerary.xml";
            var xmlasyncmode = false;

            xmlhttpItinerary = getXMLHTTPObj();                    

            if ( !(xmlhttpItinerary==null) ) {
                if ( typeof xmlhttpItinerary.overrideMimeType != 'undefined' ) {
                    xmlhttpItinerary.overrideMimeType('text/xml');
                }

                xmlhttpItinerary.open("GET",xmldata,xmlasyncmode);
                
                if ( xmlasyncmode ) xmlhttpItinerary.onreadystatechange = function(){ xmlItinerary_stateChange("xmlhttp",xmlhttpItinerary); };
                
                xmlhttpItinerary.send(null);
                
                        if ( !xmlasyncmode ) {
                        /* xmlItinerary_stateChange("xmlhttp",xmlhttpItinerary); */
	                        processItineraryXML("xmlhttp",xmlhttpItinerary);
	                  }

            } else {
                xmldomItinerary = getXMLDOMObj();
                if ( !(xmldomItinerary==null) ) {
                    xmldomItinerary.async = xmlasyncmode;
                    xmldomItinerary.load(xmldata);
                    
                    if ( xmlasyncmode ) {
                        xmldomItinerary.onreadystatechange=function(){ xmlItinerary_stateChange("xmldom",xmldomItinerary); };
                    } else {
                         /*       xmlItinerary_stateChange("xmldom",xmldomItinerary); */
	                        processItineraryXML("xmldom",xmldomItinerary);
                    }
                } else {
			var msg = "&#160;&#160;&#160;&#160;&#160;...sorry! Your browser cannot process XML requests...";

                        var divX = document.getDocElementById("div_itinerary");
       	                if ( divX ) divX.innerHTML = msg;

			var spn = document.getElementById("spn_home");
			if ( spn ) spn.innerText = msg;

			initOk = false;
                }
            }
            
            function processItineraryXML(xmlobjtype,xmlobj) {
                var xmldoc = null;
                
                switch (xmlobjtype) {
                    case "xmlhttp":
                        xmldoc = xmlobj.responseXML;
                        if ( xmldoc ) {
                            if ( !xmldoc.documentElement && xmlobj.responseStream ) {
                                xmldoc.load(xmlobj.responseStream);
                            }
                        }
                        break;
                        
                    case "xmldom":
                        xmldoc = xmlobj;
                        break;
                }
                
                if ( objItinDim==null ) objItinDim = new ItineraryDimObj();
                if ( objItinXHTML==null ) objItinXHTML = new ItineraryXHTMLObj(xmldoc);

                setData()
            }

            function xmlItinerary_stateChange(xmlobjtype,xmlobj) {
                if ( xmlobj.readyState==4 ) { 
                    if ( xmlobj.status==200 || ( !(location.protocol=='http:') && xmlobj.status==0 ) ) { // "OK"
                        processItineraryXML(xmlobjtype,xmlobj);
                    }
                }
            }
        } else setData();

        function setData() {
            var modedetail_xhtml = "";
            prevItineraryDiv = currItineraryDiv;

            switch ( ctrlID ) {
	            case "spnHistoric":
                    modedetail_xhtml = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_HISTORIC,
                        objItinDim.locationColWidth(),
                        objItinDim.datetimeColWidth(),
                        objItinDim.eventColWidth())[0];
		            break;
	            case "spnCurrent":
                    modedetail_xhtml = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_CURRENT,
                        objItinDim.locationColWidth(),
                        objItinDim.datetimeColWidth(),
                        objItinDim.eventColWidth())[0];
		            break;
	            case "spnPipeline":
                    modedetail_xhtml = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_PIPELINE)[0];
		            break;
                default:
            }
        	
            var divV = document.getDocElementById("divViewModeDetail");
            if ( divV ) divV.innerHTML = modedetail_xhtml;

            var divB = null;

            switch ( oldctrlID ) {         
	            case "spnHistoric":
                    divB = document.getDocElementById("divHistoricBookmarks");

	                break;
	            case "spnCurrent":
                    divB = document.getDocElementById("divCurrentBookmarks");

	                break;
	            case "spnPipeline":
                    divB = document.getDocElementById("divPipelineBookmarks");

	                break;
	            default:
	                break;
            } 
            
            if ( divB ) {
                divB.style.display = "none";
                divB.style.visibility = "hidden";
            }
            
            divB = null;

            switch ( ctrlID ) {
	            case "spnHistoric":
                    divB = document.getDocElementById("divHistoricBookmarks");

                    if ( divB ) {
                        if ( divB.innerHTML == "&nbsp;" ) divB.innerHTML = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_HISTORIC,
                        objItinDim.locationColWidth(),
                        objItinDim.datetimeColWidth(),
                        objItinDim.eventColWidth())[1];
                        divB.style.display = "inline-block";
                        divB.style.visibility = "visible";
                    }
	                break;
	            case "spnCurrent":
                    divB = document.getDocElementById("divCurrentBookmarks");

                    if ( divB ) {
                        if ( divB.innerHTML == "&nbsp;" ) divB.innerHTML = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_CURRENT,
                        objItinDim.locationColWidth(),
                        objItinDim.datetimeColWidth(),
                        objItinDim.eventColWidth())[1];
                        divB.style.display = "inline-block";
                        divB.style.visibility = "visible";
                    }
	                break;
	            case "spnPipeline":
                    divB = document.getDocElementById("divPipelineBookmarks");

                    if ( divB ) {
                        if ( divB.innerHTML == "&nbsp;" ) divB.innerHTML = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_PIPELINE)[1];
                        divB.style.display = "inline-block";
                        divB.style.visibility = "visible";
                    }
	                break;
            } 
                        
            switch ( ctrlID ) {
	            case "spnHistoric":
	                var divX = document.getDocElementById("divHomeDetail");
	                if ( divX ) divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");

	                var divX = document.getDocElementById("divCurrentDetail");
	                if ( divX ) {
	                    divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");
                        divX.style.display = "none";
                        divX.style.visibility = "hidden";
	                }
	                var divX = document.getDocElementById("divPipelineDetail");
	                if ( divX ) {
	                    divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");
                        divX.style.display = "none";
                        divX.style.visibility = "hidden";
	                }
                    var divX = document.getDocElementById("divHistoricDetail");
                    if ( divX ) {
                        if ( divX.innerHTML == "" ) divX.innerHTML = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_HISTORIC,
                        objItinDim.locationColWidth(),
                        objItinDim.datetimeColWidth(),
                        objItinDim.eventColWidth())[2];
                        else divX.innerHTML = divX.innerHTML.replace(/id=xx/g,"id=yr");
                        divX.style.display = "inline-block";
                        divX.style.visibility = "visible";
                        currItineraryDiv = divX.id;
                    }
                    
	                break;
	            case "spnCurrent":
	                var divX = document.getDocElementById("divHomeDetail");
	                if ( divX ) divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");

                    var divX = document.getDocElementById("divHistoricDetail");
	                if ( divX ) {
	                    divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");
                        divX.style.display = "none";
                        divX.style.visibility = "hidden";
	                }
	                var divX = document.getDocElementById("divPipelineDetail");
	                if ( divX ) {
	                    divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");
                        divX.style.display = "none";
                        divX.style.visibility = "hidden";
	                }
	                var divX = document.getDocElementById("divCurrentDetail");
                    if ( divX ) {
                        if ( divX.innerHTML == "" ) divX.innerHTML = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_CURRENT,
                        objItinDim.locationColWidth(),
                        objItinDim.datetimeColWidth(),
                        objItinDim.eventColWidth())[2];
                        else divX.innerHTML = divX.innerHTML.replace(/id=xx/g,"id=yr");
                        divX.style.display = "inline-block";
                        divX.style.visibility = "visible";
                        currItineraryDiv = divX.id;
                    }

	                break;
	            case "spnPipeline":
	                var divX = document.getDocElementById("divHomeDetail");
	                if ( divX ) divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");

	                var divX = document.getDocElementById("divCurrentDetail");
	                if ( divX ) {
	                    divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");
                        divX.style.display = "none";
                        divX.style.visibility = "hidden";
	                }
                    var divX = document.getDocElementById("divHistoricDetail");
	                if ( divX ) {
	                    divX.innerHTML = divX.innerHTML.replace(/id=yr/g,"id=xx");
                        divX.style.display = "none";
                        divX.style.visibility = "hidden";
	                }
	                var divX = document.getDocElementById("divPipelineDetail");
                    if ( divX ) {
                        if ( divX.innerHTML == "" ) divX.innerHTML = objItinXHTML.getXHTML(IDX_VIEWMODE_KEY_PIPELINE)[2];
                        else divX.innerHTML = divX.innerHTML.replace(/id=xx/g,"id=yr");
                        divX.style.display = "inline-block";
                        divX.style.visibility = "visible";
                        currItineraryDiv = divX.id;
                    }

	                break;
            } 
                        
            oldctrlID = ctrlID;
        }
    }
}

function getItineraryHTML() {
    if ( objItinDim==null ) objItinDim = new ItineraryDimObj();
    
    itineraryTblWidth = objItinDim.itineraryTblWidth();
    locationColWidth = objItinDim.locationColWidth();
    datetimeColWidth = objItinDim.datetimeColWidth();
    eventColWidth = objItinDim.eventColWidth();
    statusColWidth = objItinDim.statusColWidth();
/*    
    var locationColPct = ( colItinWidth_Location / ( itineraryTblWidth-5.0 ) );
    var datetimeColPct = ( colItinWidth_DateTime / ( itineraryTblWidth-5.0 ) );
    var eventColPct = ( colItinWidth_Event / ( itineraryTblWidth-5.0 ) );
    var statusColPct = ( colItinWidth_Status / ( itineraryTblWidth-5.0 ) );
    
    var topDiv = document.getDocElementById("divTop");
    if ( topDiv ) {
        itineraryTblWidth = ( parseInt(topDiv.clientWidth) - LOCNAVDOXOFFSETLEFT - 2 );
        locationColWidth = parseInt( ( itineraryTblWidth-5.0 ) * locationColPct );
        datetimeColWidth = parseInt( ( itineraryTblWidth-5.0 ) * datetimeColPct );
        eventColWidth = parseInt( ( itineraryTblWidth-5.0 ) * eventColPct );
        statusColWidth = parseInt(( itineraryTblWidth-5.0 ) * statusColPct );
    }
*/    
    var strHTML = ""
    //        +	"<table style='table-layout:fixed; border-left:solid 1pt #000080; border-top:solid 2pt #000080; border-right:solid 1pt #000080; border-bottom:solid 2pt #000080; vertical-align:top; text-align:left; width:" + tblItinWidth + ";' cellspacing='0' cellpadding='0'>"
            + "<table style='table-layout:fixed; border-left:groove 1px #000080;border-top:groove 2px #000080;border-right:groove 1px #000080;border-bottom:groove 2px #000080; width:100%;' cellspacing='0' cellpadding='0'>"
            +   "   <col width='100%'/>"
            +	"	<tr>"
            +	"		<td>"
            +	"			<table style='table-layout:fixed; vertical-align:top; text-align:left; width:" + itineraryTblWidth + "; border:0px;' cellspacing='0' cellpadding='4'>"
            +   "               <col style='width:" + locationColWidth + "; height:" + rowItinHeight_Label + ";'/>"
            +   "               <col style='width:" + datetimeColWidth + ";'/>"
            +   "               <col style='width:" + eventColWidth + ";'/>"
            +   "               <col />"
            +	"				<tr>"
            +   "                   <td colspan='4' style='border-left:solid 1pt #000080; border-right:solid 1pt #000080;'>&nbsp;"
            +	"						<span style='text-decoration:blink; font-size:10pt; color:#800000; text-align:left; vertical-align:middle; font-size:small; font-style:italic; '>*** Locations, dates and times are subject to change without notice. Check often!</span>"
            +   "                   </td>"
            +   "               </tr>"
            +	"				<tr style='background-color:#FFFFE0; font-size:medium; font-weight:bold; font-style:italic; color:#000080;'>"
            +	"					<td style='border-left:solid 1pt #000080; border-right:solid 1pt #000080; border-top:solid 1pt #000080; vertical-align:top;'>Location</td>"
            +	"					<td style='border-right:solid 1pt #000080; border-top:solid 1pt #000080; vertical-align:top;'>Date/Time</td>"
            +	"					<td style='border-right:solid 1pt #000080; border-top:solid 1pt #000080; vertical-align:top;'>Event</td>"
            +	"					<td style='border-right:solid 1pt #000080; border-top:solid 1pt #000080; vertical-align:top;'>Status</td>"
            +	"				</tr>"
            +	"				<tr>"
            +	"					<td colspan='4' style='height:" + rowItinHeight_Label + "; text-align:center; vertical-align:middle; border-left:solid 1pt #000080; border-right:solid 1pt #000080; border-top:solid 1pt #000080; border-bottom:solid 1pt #000080; '>"
            +	"						<div id='divViewModeDetail'>&nbsp;</div>"
            +	"					</td>"
            +	"				</tr>"
            +	"			</table>"
            +	"		</td>"
            +	"	</tr>"
            +	"	<tr>"
            +	"		<td style='text-align:left; border:solid 0pt #000080;'>"
            +	"			<table style='table-layout:fixed; width:100%; border:0px;' cellpadding='0' cellspacing='0'>"
            +   "               <col width='100%' style='text-align:center; vertical-align:middle;'/>"
            +	"				<tr>"
            +	"					<td style='border-right:1 solid #000080; border-bottom:1 solid #000000; border-left:1 solid #000080; height:" + rowItinHeight_Label + ";'>"
            +	"						<div id='divCurrentBookmarks' style='position:static; visibility:hidden; display:none;'>&nbsp;</div>"
            +	"						<div id='divHistoricBookmarks' style='position:static; visibility:hidden; display:none;'>&nbsp;</div>"
            +	"						<div id='divPipelineBookmarks' style='position:static; visibility:hidden; display:none;'>&nbsp;</div>"
            +	"					</td>"
            +	"				</tr>"
            +	"				<tr>"
            +	"					<td style='border-right:1 solid #000080; border-bottom:1 solid #000080; border-left:1 solid #000080; height:" + rowItinDetailHeight + "; vertical-align:top;' >"
            +	"						<div id='divCurrentDetail' style='height:" + rowItinDetailHeight + "; width:100%; position:static; overflow-y:scroll; overflow-x:hidden; visibility:hidden; display:none;'></div>"
            +	"						<div id='divHistoricDetail' style='height:" + rowItinDetailHeight + "; width:100%; position:static; overflow-y:scroll; overflow-x:hidden; visibility:hidden; display:none;'></div>"
            +	"						<div id='divPipelineDetail' style='height:" + rowItinDetailHeight + "; width:100%; position:static; overflow-y:scroll; overflow-x:hidden; visibility:hidden; display:none;'></div>"
            +	"					</td>"
            +	"				</tr>"
            +	"			</table>"
            +	"     </td>"
            +	"	</tr>"
            +	"	<tr>"
            +	"		<td style='border-left:solid 1pt #000080; border-right:solid 1pt #000080; height:30px; vertical-align:middle;'>"
            +   "           <table style='table-layout:fixed; width:100%; border:0px;' cellspacing='0' cellpadding='4'>"
            +	"			    <tr>"
            +	"					<td style='width:50%; text-align:center; font-size:small; color:#000080; font-style:italic;'>(P) = Private/Closed to the public</td>"
            +	"					<td style='width:50%; text-align:center; font-size:small; color:#000080; font-style:italic;'>($) = Admission/Cover (call)</td>"
            +	"				</tr>"
            +	"			</table>"
            +   "       </td>"
            +	"	</tr>"
            +	"</table>";
            
    return strHTML;
}
        
    
