//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("?"));
    }
    // 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 = "http://www.shoalsclub.com/spry/sprydata.ashx?1=1";
    
    //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 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 sSpryXMLURL = sSpryXMLURL + "&Month=" + ddlMonthValue;
        var sSpryXMLURL = sSpryXMLURL + "&Year=" + ddlYearValue;
        
        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 checkElementExists(sElementID)
{
    //alert("Checking for " + sElementID);
    //alert(document.getElementById(sElementID));
    if (document.getElementById(sElementID) != null)
    {
        return true;
    }
    else
    {
        return false;
    }
}

function GetNewCalendarEvents(sSprySourceDomain) {

    //alert("Running PerformSpryCode.js");
    // Set Global Variables
    sRightCalloutMenuID = "RightCol";
    sCalendarID = "CalendarContainer";
    sPageURI = document.URL;
    sSiteURI = document.domain;
    sPageTitle = document.title;
    var sSpryType = "Calendar";
    bSpryCapable = true;
    
    sSpryXMLURL = "http://www.shoalsclub.com/spry/sprydata.ashx?1=1";

    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 sSpryXMLURL = sSpryXMLURL + "&Month=" + ddlMonthValue;
    var sSpryXMLURL = sSpryXMLURL + "&Year=" + ddlYearValue;

    dsCalendar.setURL(sSpryXMLURL);
    dsCalendar.loadData();
    
    CalendarObserver.onPostLoad = function(notifier, data) {
        if (document.getElementById("CalendarContainer")) {
            SelectCalendarEvents();
            document.getElementById("CalendarContainer").style.display = "block";
            document.getElementById("CalendarTable").style.display = "block";

        }
    }

    SelectCalendarEvents();
    

}


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.start_month == ddlMonthValue && row.start_year == ddlYearValue) ? row : null; };
    function ffMonth(ds, row, index) { return (row.start_month == ddlMonthValue) ? row : null; };
    function ffYear(ds, row, index) { return (row.start_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("start_month", "number");
    dsCalendar.setColumnType("start_day", "number");
    dsCalendar.setColumnType("start_hour", "number");
    dsCalendar.sort(["start_month", "start_day", "start_hour"], "ascending");

    ///bookstore/book[price>35]/title 
    //var dropdownIndex = document.getElementById('colorsselect').selectedIndex;
    //var dropdownValue = document.getElementById('colorsselect')[dropdownIndex].value;
    //document.write(dropdownValue);
}

function DownloadCalendarEvents()
{
    //alert("made it here");
    var pageTitle = document.title;
    var pageURL = document.URL;
    var pageDomain = document.domain;
    var selectedMonth = document.getElementById('DDLMonth');
    var selectedMonthValue = selectedMonth.options[selectedMonth.selectedIndex].value;
    var selectedYear = document.getElementById('DDLYear');
    var selectedYearValue = selectedYear.options[selectedYear.selectedIndex].value;
    
    var url = 'http://www.baldheadisland.com/utils/CalendarPDF.ashx?CalendarURL=' + pageURL + '&CalendarDomain=' + pageDomain + '&CalendarTitle=' + pageTitle + '&CalendarMonth=' + selectedMonthValue + '&CalendarYear=' + selectedYearValue;
    //alert(url);
    window.open(url);
}
