﻿var grid = null;

// fixed the date.format bug in Chrome5
Date.prototype.toYYYYMMDDformat = function() {
    var dd = this.getDate();
    if (dd < 10) dd = '0' + dd;
    var mm = this.getMonth() + 1;
    if (mm < 10) mm = '0' + mm;
    var yyyy = this.getFullYear();
    return String(yyyy + "-" + mm + "-" + dd);
}

jQuery(document).ready(function() {

    ConfigureDatePicker("divGrid");
    var now = new Date();
    var today = new Date();

    var filter = "";
    now = now.toYYYYMMDDformat();
    today = today.toYYYYMMDDformat();
    dtStDate = new Date();
    var dtEndDate = new Date();
    dtEndDate.setDate(dtEndDate.getDate() + 365);
    dtEndDate = dtEndDate.toYYYYMMDDformat();
    var scheduleQuery = "schedule <> " + now + ".." + dtEndDate;
    filter = " and PublishedStatus=2";

    if ((KindofNewsItem.toLowerCase() == 'events') || (KindofNewsItem == 'cevents')) {
        grid = GenerateEventsGrid(SiteFilter, ServicePath, filter);
    } else if ((KindofNewsItem.toLowerCase() == 'pressreleases') || (KindofNewsItem == 'cpressreleases')) {
        grid = new PalmspringControls.GridControl({ PageSize: 25,
            ServicePath: ServicePath + EventServiceMethods.GetPressReleasesByQuery + "?appendQuery=" + filter,
            ServicePathCount: ServicePath + EventServiceMethods.GetPressReleasesByQueryCount + "?appendQuery=" + filter,
            GridTemplatePath: "/Templates/Home/Press.htm",
            PagerTemplatePath: Templates.PagerTemplate,
            PagerDescTemplatePath: Templates.PagerDescTemplate,
            PagerSizeDescTemplatePath: Templates.PagerSizeDescTemplate,
            NoDataTemplate: Templates.NoDataTemplate,
            SortColumn: $("#selOrder").val(),
            GridControlId: "divGrid",
            PageSize: 25
        });
    } else {
        grid = new PalmspringControls.GridControl({ PageSize: 25,
            ServicePath: ServicePath + EventServiceMethods.GetInTheNewsByQuery + "?appendQuery=" + filter,
            ServicePathCount: ServicePath + EventServiceMethods.GetInTheNewsByQueryCount + "?appendQuery=" + filter,
            GridTemplatePath: "/Templates/Home/News.htm",
            PagerTemplatePath: Templates.PagerTemplate,
            PagerDescTemplatePath: Templates.PagerDescTemplate,
            PagerSizeDescTemplatePath: Templates.PagerSizeDescTemplate,
            NoDataTemplate: Templates.NoDataTemplate,
            SortColumn: $("#selOrder").val(),
            GridControlId: "divGrid",
            PageSize: 25
        });
    }

    grid.formatData = formatData;
    grid.initialize();

    $("#selOrder").bind("change", function() {
        grid.SortBy.call(grid, $("#selOrder").val());
    });
});

function formatData(content, data) {
    if (!CBoolean(isConv)) {
        $("img", content).not("[entryid]").filter("[url=0]").parents(".gridCol1").css("display", "none");
        $("img", content).filter("[url='']").css("display", "none");
    }
    else {
        var imageNumber = 1;
        $("img", content).not("[entryid]").filter("[url=0]").each(function() {
            var newNumber = Math.floor(Math.random() * 4) + 1;
            while (newNumber == imageNumber) {
                newNumber = Math.floor(Math.random() * 4) + 1;
            }
            imageNumber = newNumber;
            $(this).attr("src", "/images/events/0" + imageNumber + ".jpg");
        });
        $("img", content).filter("[url='']").css("display", "none");

        $("a", content).filter("[url]").each(function() {
            $(this).attr("href", $(this).attr("url"));
        });
        $("a", content).filter("[url='']").each(function() {
            $(this).removeAttr("href");

            $(this).addClass("diabledLink");

        });
    }
    $("img[isPDFAvailable='false']", content).css("display", "none");
    $("span[isStartDate='false']", content).css("display", "none");

    $("#refNewsHtmlLink", content).filter("[href=#]").attr("target", "_self");
    $("img[imgTitle]", content).each(function() {
        $(this).attr("alt", $(this).attr("imgTitle"));
    });
}

function GenerateEventsGrid(SiteFilter, ServicePath, filter) {

    SiteFilter = SiteFilter.replace("&", "|");
    var dtStart = $("#startDate").datepicker('getDate');
    var dtEnd = $("#endDate").datepicker('getDate');
    dtEnd.setDate(dtEnd.getDate() + 1);
    var scheduleQuery = "schedule <> " + dtStart.toYYYYMMDDformat() + ".." + dtEnd.toYYYYMMDDformat();


    var template = "";
    if (CBoolean(isConv))
        template = "/Templates/Home/CEvent.htm";
    else
        template = "/Templates/Home/Event.htm";
    filter = filter + " and (PublishOnDate = null or PublishOnDate <= (" + dtStart.toYYYYMMDDformat() + ")) and (ExpireOnDate = null or ExpireOnDate >= (" + dtStart.toYYYYMMDDformat() + "))";
    var serviceQuery = "?scheduleFilter=" + scheduleQuery + filter + SiteFilter + "&appendQuery=";
    grid = new PalmspringControls.GridControl({ PageSize: 25,
        ServicePath: ServicePath + EventServiceMethods.GetEventByQuery + serviceQuery,
        ServicePathCount: ServicePath + EventServiceMethods.GetEventByQueryCount + serviceQuery,
        GridTemplatePath: template,
        PagerTemplatePath: Templates.PagerTemplate,
        PagerDescTemplatePath: Templates.PagerDescTemplate,
        PagerSizeDescTemplatePath: Templates.PagerSizeDescTemplate,
        NoDataTemplate: Templates.NoDataTemplate,
        SortColumn: $("#selOrder").val(),
        GridControlId: "divGrid",
        PageSize: 25
    });
    return grid;
}

function ConfigureDatePicker(gridId) {
    // alert($("#" + gridId +" .datepicker").length);
    $("#startDate").datepicker({ showOn: 'button',
        buttonImage: '/images/icons/calendar.png',
        buttonImageOnly: true,
        minDate: new Date(),
        onSelect: function(dateText, inst) {
            var curr = $(this).datepicker('getDate');
            var endDate = $("#endDate").datepicker('getDate');
            endDate.setDate(endDate.getDate() + 30);

            if (endDate < curr)
                $("#endDate").datepicker('setDate', curr);
            $("#endDate").datepicker('option', 'minDate', curr);
        },
        currentText: 'Today'
    });
    $("#endDate").datepicker({
        showOn: 'button',
        buttonImage: '/images/icons/calendar.png',
        buttonImageOnly: true,
        minDate: new Date(),
        currentText: 'Today'
    });
    //
    $("#startDate").datepicker('setDate', new Date());
    var toDate = new Date();
    toDate.setDate(toDate.getDate() + 730); // use 2 years (365 * 2) as default range
    $("#endDate").datepicker('setDate', toDate);

}
function updateEvents() {
    filter = " and PublishedStatus=2"
    var grid = GenerateEventsGrid(SiteFilter, ServicePath, filter);
    grid.formatData = formatData;
    grid.initialize();
}


function ResetFilter() {
    $("#startDate").datepicker('setDate', new Date());
    var toDate = new Date();
    toDate.setDate(toDate.getDate() + 30);
    $("#endDate").datepicker('setDate', toDate);
    updateEvents();
}