//Javascript Document

// Global Variables
var sSourceDomain = null;
//var sSourceDomain = "www.baldheadisland.com";           // The Domain This Script is hosted on.
//var sSourceDomain = "localhost:49828";           // The Domain This Script is hosted on.
var sRightCalloutMenuID;
var sCalendarID;
var sSpryXMLURLBase; 
var bHTTPRequest;                                // Needed for the XMLHTTPRequest
var sPageURI = document.URL;
var sSiteURI = document.domain;
var bYouTubeExists;
var bRightMenuExists;
var bCalendarExists;
var bSpryCapable;
var sSpryXML;
var sSpryXMLURL;
var dsCallouts;
var dsCalendar;

var CalloutObserver = new Object;
var CalendarObserver = new Object;

function LoadSpryFramework()
{
    LoadSpryFramework(null);
}

function LoadSpryFramework(sSprySourceDomain)
{
    if(sSprySourceDomain != null)
        sSourceDomain = sSprySourceDomain;
        
    if(sSourceDomain!=null)
        sSpryXMLURLBase = "http://" + sSourceDomain + "/utils/SpryConnector.ashx";
    else
        sSpryXMLURLBase = "/utils/SpryConnector.ashx";
        
    //Spry.Utils.addLoadListener = PerformSpryCode();
    LoadCalloutData();
}


function LoadCalloutData()
{
    //alert("Running PerformSpryCode.js");
    // Set Global Variables
    sRightCalloutMenuID = "RightCol";
    sCalendarID = "CalendarContainer";
    bRightMenuExists = checkElementExists(sRightCalloutMenuID);
    bCalendarExists = checkElementExists(sCalendarID);
    sPageURI = document.URL;
    sSiteURI = document.domain;
    sPageTitle = document.title;
    var sSpryType = "";
    
    // If it's a URL with a querystring on it.. strip off the querystring.  
    if(sPageURI.indexOf("?") > 0)
    {
        sPageURI = sPageURI.slice(0,sPageURI.indexOf("?"));
    }
    //alert(bRightMenuExists);
    //alert(bCalendarExists);
    
    if (bCalendarExists || bRightMenuExists)
    {
        if(!checkElementExists("NoSpry"))
        {
            bSpryCapable = true;
        }
        else
        {
            bSpryCapable = false;
        }
    }
    else
    {
        bSpryCapable = false;
    }
    sSpryXMLURL = sSpryXMLURLBase + "?SiteURI=" + sSiteURI + "&PageURI=" + sPageURI + "&SpryCapable=" + bSpryCapable.toString() + "&PageTitle=" + sPageTitle + "&IsCalendar=" + bCalendarExists.toString();
    
    //sSpryXMLURL = "http://192.168.2.20/bhi/utils/SpryConnector.ashx?SiteURI=192.168.2.20&PageURI=http://192.168.2.20/bhi/explore/recreation/calendar.aspx&SpryCapable=true";
    
    //alert(sSpryXMLURL);
    
    //AddSpryComponentsToPage();
    
    if(bCalendarExists && bRightMenuExists)
    {
        sSpryType = "All";
    }
    else if(bCalendarExists)
    {
        sSpryType = "Calendar";
    }
    else if(bRightMenuExists)
    {
        sSpryType = "Callout";
    }
    
    if(bCalendarExists)
    {
        var sCalendarSpryXML = sSpryXMLURL + "&SpryType=" + sSpryType ;
        dsCalendar = new Spry.Data.XMLDataSet(sCalendarSpryXML , "/baldheadisland/events/event", { useCache: true });
        
        CalendarObserver.onPostLoad = function(notifier, data){
            if(document.getElementById("CalendarContainer"))
            {
                SelectCalendarEvents();
                document.getElementById("CalendarContainer").style.display = "block";
                document.getElementById("CalendarTable").style.display = "block";
                
            }
        }
        
        dsCalendar.addObserver(CalendarObserver);
    }
    
    if(bRightMenuExists)
    {
        var sCalloutSpryXML = sSpryXMLURL + "&SpryType=" + sSpryType;
        dsCallouts = new Spry.Data.XMLDataSet(sCalloutSpryXML , "/baldheadisland/callouts/callout", { useCache: true, sortOnLoad: "@Priority", sortOrderOnLoad: "descending" });

        CalloutObserver.onPostLoad = function(notifier, data){
            if(document.getElementById("CalloutContainer")) {
                document.getElementById("CalloutContainer").style.display = "block";  
            }
        }
        dsCallouts.addObserver(CalloutObserver);
    }
    
}


/*function AddSpryComponentsToPage()
{
    //alert("Adding Spry Components to Page");
    var sRightMenuContent;
    var sCalloutCode;
    var sYouTubeContent;
    var sCalendarContent;
    var sSpryCalloutCode = "";
    
    if(bRightMenuExists)
    {
        //alert("Right Menu Exists");
        var RightMenuDiv = document.getElementById(sRightCalloutMenuID);
                
        var SpryContainer = document.createElement("div");
        SpryContainer.setAttribute("spry:region", "dsCallouts");
        SpryContainer.setAttribute("id", "CalloutContainer");
        SpryContainer.setAttribute("style", "display:none;");
        RightMenuDiv.appendChild(SpryContainer);

        var SpryRepeater = document.createElement("div");
        SpryRepeater.setAttribute("spry:repeat", "dsCallouts");
        SpryRepeater.setAttribute("spry:choose", "spry:choose");
        SpryRepeater.innerHTML+='<div spry:when="\'{Youtube}\' == \'False\'\" class="right_col_callout"><a href=\"{Hyperlink}\" ><img src=\"http://www.baldheadisland.com/{image}\" border="0" width="87" height="107" /></a><h4><a href=\"\{Hyperlink\}\" >{title}</a></h4></div>';
        SpryRepeater.innerHTML+='<div spry:when="\'{Youtube}\' == \'True\'\" id="YouTubeVideo"><object width="205" height="178" style="margin-bottom: 50px;"><param name="movie" value="\{Hyperlink\}"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="\{Hyperlink\}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="205" height="178"></embed></object></div>';
        SpryContainer.appendChild(SpryRepeater);

        RightMenuDiv.appendChild(SpryContainer);
    }
    
    if(bCalendarExists)
    {
        //alert("Calendar Exists");
        var oCalendarSearchButton = document.getElementById("CalSearch");
        oCalendarSearchButton.setAttribute("OnClick", "SelectCalendarEvents()");
        
        var oCalendarDiv = document.getElementById(sCalendarID);
        
        
        sCalendarContent = oCalendarDiv.innerHTML;          // Store the current code.
        sCalendarContent.innerHTML = "";                    // Clear the current code.
        
        var oCalendarDataContainer = document.createElement("div");
        oCalendarDataContainer.setAttribute("ID", "CalendarContainer");
        oCalendarDataContainer.setAttribute("style", "display:none;");
        
        oCalendarDiv.appendChild(oCalendarDataContainer);
        
        var oCalendarDataTable = document.createElement("table");
        oCalendarDataTable.setAttribute("id", "CalendarTable");
        oCalendarDataTable.setAttribute("width", "100%");
        oCalendarDataTable.setAttribute("border", "0");
        oCalendarDataTable.setAttribute("style","border-width:0px;width:100%;border-collapse:collapse;");
        oCalendarDataTable.setAttribute("cellpadding", "5");
        oCalendarDataTable.setAttribute("cellspacing", "0");
        oCalendarDataTable.setAttribute("spry:region", "dsCalendar");
        oCalendarDataTable.setAttribute("style", "display:none;");
        
        var oCalendarRow = document.createElement("tr");
        oCalendarRow.setAttribute("spry:repeat", "dsCalendar");

        var oCalendarColumn1 = document.createElement("td");
        oCalendarColumn1.innerHTML = "{date}";
        
        var oCalendarColumn2 = document.createElement("td");
        oCalendarColumn2.innerHTML = "{description}";
       
        
        
        oCalendarRow.appendChild(oCalendarColumn1);
        oCalendarRow.appendChild(oCalendarColumn2);
        oCalendarDataTable.appendChild(oCalendarRow);
        
        
        oCalendarDataContainer.appendChild(oCalendarDataTable);
        
        Spry.Data.initRegions();
    }
}*/

function checkElementExists(sElementID)
{
    //alert("Checking for " + sElementID);
    //alert(document.getElementById(sElementID));
    if (document.getElementById(sElementID) != null)
    {
        return true;
    }
    else
    {
        return false;
    }
}

function SelectCalendarEvents()
{
    dsCalendar.removeAllFilters(true);
    var ddlMonth = document.getElementById("DDLMonth");
    var ddlYear = document.getElementById("DDLYear");
    
    var ddlYearIndex = ddlYear.selectedIndex;
    var ddlMonthIndex = ddlMonth.selectedIndex;
    
    var ddlYearValue = ddlYear[ddlYearIndex].value;
    var ddlMonthValue = ddlMonth[ddlMonthIndex].value;
    
    var sXPathStatement = "//events/event";
    
    //alert(ddlYearValue);
    //alert(ddlMonthValue);
    
    function ffMonthYear(ds, row, index){return (row.month == ddlMonthValue && row.year == ddlYearValue) ? row : null; };
    function ffMonth(ds, row, index){return (row.month == ddlMonthValue) ? row : null; };
    function ffYear(ds, row, index){ return (row.year == ddlYearValue) ? row : null; };
    
    if (ddlYearValue != "%" && ddlMonthValue != "%")
    {
        dsCalendar.addFilter(ffMonthYear, true);
    }
    else if (ddlMonthValue == "%")
    {        
        dsCalendar.addFilter(ffYear, true);
    }
    else if (ddlYearValue == "%")
    {        
        dsCalendar.addFilter(ffMonth, true);
    }
    
    dsCalendar.applyFilters();
    dsCalendar.setColumnType("month", "number");
    dsCalendar.setColumnType("day", "number");
    dsCalendar.setColumnType("year", "number");
    dsCalendar.sort(["year","month","day"], "ascending");
    
    ///bookstore/book[price>35]/title 
    //var dropdownIndex = document.getElementById('colorsselect').selectedIndex;
    //var dropdownValue = document.getElementById('colorsselect')[dropdownIndex].value;
    //document.write(dropdownValue);
}