﻿window.dhx_globalImgPath = "Scripts/calendar/imgs/";

var d;
var e;
var t;

function doOnYearSelect(value) {

    var curdate;
    curdate = d.split("/");

    var newdate = curdate[0] + "/1/" + value;

    d = newdate;
    e = newdate;

    $('d').value = d;
    $('e').value = e;
    document.forms['calfrm'].submit();

}

function doOnMonthSelect(value) {

    var curdate;
    curdate = d.split("/");

    var newmonth = parseInt(value);
    newmonth++;

    var newdate = newmonth.toString() + "/1/" + curdate[2];

    d = newdate;
    e = newdate;

    $('d').value = d;
    $('e').value = e;
    document.forms['calfrm'].submit();

}

function draw_calendar(start_date, end_date, calendar_type) {

    mCal = new dhtmlxCalendarObject("CalendarBox", false, { isYearEditable: true, isMonthEditable: true });
    mCal.setSkin("vista");
    mCal.setDateFormat("%c/%e/%Y");
    mCal.setYearsRange(2009, 2020);
    var onYS = mCal.onYearSelect;
    var onMS = mCal.onMonthSelect;

    mCal.onYearSelect = function(value) {
        doOnYearSelect(value);
        return onYS.apply(this, [value])
    }
    mCal.onMonthSelect = function(value) {
        doOnMonthSelect(value);
        return onMS.apply(this, [value])
    }


    var curdate;
    curdate = start_date.split("/");
    var first_of_month = new Date(curdate[0] + "/1/" + curdate[2]);
    var end_of_month = new Date(curdate[0] + "/" + daysInMonth(curdate[0], curdate[2]) + "/" + curdate[2]);

    var month = first_of_month.getMonth();
    month++;

    the_url = "http://discovery.cor.gov/public/cvb/cvbweb.nsf/getEventsByDate?openagent&searchby=range&date=";
    the_url += month + "/" + first_of_month.getDate() + "/" + first_of_month.getFullYear();

    month = end_of_month.getMonth();
    month++;



    the_url += "&end=" + month + "/" + end_of_month.getDate() + "/" + end_of_month.getFullYear();
    the_url += "&type=" + calendar_type;


    new Ajax.Request('request_proxy.aspx',
           {
               method: "get",
               parameters: {
                   url: the_url
               },
               onSuccess: function(transport) {

                   var resp = transport.responseText || "no response text";

                   var obj = resp.evalJSON();
                   if (obj.response == "success") {
                       var x = 0;
                       var max = obj.events.length;
                       var dates = "";
                       var formatted_date;
                       while (x < max) {
                           formatted_date = mCal.getFormatedDate("%Y.%m.%d", obj.events[x].eventDate);
                           if (dates.indexOf(formatted_date) == -1) {

                               dates += formatted_date + ",";
                           }

                           x++;
                       }



                   }
                   if (dates.length > 0) {
                       dates = dates.substr(0, (dates.length - 1));
                       mCal.setSensitive(dates);
                   } else {
                       mCal.setInsensitiveDates("0,1,2,3,4,5,6");
                   }

                   mCal.setOnClickHandler("change_date");
                   mCal.attachEvent("onChangeMonth", reload_new_month);
                   mCal.setDate(start_date, "CalendarBox");
                   mCal.draw();

                   $('WaitDiv').hide();
                   load_list();
               }
           });


/*
    if (d != e) {
        $('select_date_inst').hide();
        $('CalendarBox').hide();
        $('RangeForm').show();
    } else {
        $('select_range_inst').hide();
        $('CalendarBox').show();
        $('RangeForm').hide();
    }
    */
}

function reload_new_month(curMonth, prevMonth) {
    var curdate;
    curdate = d.split("/");
    var yr = parseInt(curdate[2]);

    if (curMonth == 1 && prevMonth == 12) {
        yr++;
    }
    if (curMonth == 12 && prevMonth == 1) {
        yr--;
    }

    var first_of_month = curMonth + "/1/" + yr;
    change_date(first_of_month);

}

function change_date(date) {
    d = mCal.getFormatedDate("%c/%e/%Y", date);
    e = d;
    $('d').value = d;
    $('e').value = e;
    document.forms['calfrm'].submit();
    //load_list();
}
function load_list() {
    var the_url;
    var today = new Date;
    today.getDate();

    var header;
    var this_day = today.getDate();
    var this_month = today.getMonth() + 1;
    var this_year = today.getFullYear();

    if (d == e) {
        if (d == this_month + "/" + this_day + "/" + this_year) {
            header = "Today's Events";
        } else {
            //header = "Events for " + mCal.getFormatedDate("%b %e", d);
            header = "Events for " + mCal.getFormatedDate("%m/%d/%Y", d);
        }
    } else {
        //header = "Events from " + mCal.getFormatedDate("%b %e", d) + " to " + mCal.getFormatedDate("%b %e", e);
        header = "Events from " + mCal.getFormatedDate("%m/%d/%Y", d) + " to " + mCal.getFormatedDate("%m/%d/%Y", e);
    }
    $('ListHeader').innerHTML = header;

    if (d == e) {
        the_url = "http://discovery.cor.gov/public/cvb/cvbweb.nsf/getEventsByDate?openagent&searchby=date&date=" + d + "&type=" + encodeURI(t);
    } else {
        the_url = "http://discovery.cor.gov/public/cvb/cvbweb.nsf/getEventsByDate?openagent&searchby=range&date=" + d + "&end=" + e + "&type=" + encodeURI(t);
    }

    new Ajax.Request('request_proxy.aspx',
        {
            method: "get",
            parameters: {
                url: the_url
            },
            onSuccess: function(transport) {
                var resp = transport.responseText || "no response text";
                var obj = resp.evalJSON();
                if (obj.response == "success") {
                    if (obj.events) {
                        var x = 0;
                        var max = obj.events.length;
                        var rtn = "<table width=\"100%\" style=\"border-collapse:collapse;\">\r\n";
                        if (max == 0) {
                            rtn += "<tr><td class=\"list_text\" align=\"left\">No event information available for this date</td></tr>\r\n";
                        } else {
                            while (x < max) {
                                rtn += "<tr><td class=\"list_text\" align=\"left\" style=\"padding-right:2px;padding-top:2px;padding-bottom:2px;\">";
                                rtn += "<a class=\"list_link\" href=\"calendar_details.aspx?id=" + obj.events[x].eventID + "&d=" + d + "&e=" + e + "&t=" + t + "\">";
                                rtn += obj.events[x].title + "</a></td>\r\n";
                                if (d == e) {
                                    //if (d == this_month + "/" + this_day + "/" + this_year) {
                                    rtn += "<td align=\"right\" class=\"list_text\" nowrap=\"nowrap\" valign=\"top\">" + obj.events[x].starttime;
                                    //if (obj.events[x].endtime != "") {
                                      //  rtn += " - " + obj.events[x].endtime;
                                    //}
                                    rtn += "</td></tr>\r\n";
                                } else {
                                    rtn += "<td align=\"right\" class=\"list_text\">" + obj.events[x].eventDate + "</td></tr>\r\n";
                                }
                                x++;
                            }
                        }
                        rtn += "</table>\r\n";

                        $('EventList').innerHTML = rtn;
                        $('WaitDiv2').hide();
                    }


                }
            }
        }
    );
}

function toggle_cal(s) {
    //alert(s);
    if (s == "range") {
        $('select_date_inst').hide();
        $('select_range_inst').show();
        $('CalendarBox').hide();
        $('RangeForm').show();
    } else {
        $('select_date_inst').show();
        $('select_range_inst').hide();
        $('CalendarBox').show();
        $('RangeForm').hide();
    }
}

function load_types(selected_type) {
    var the_url = "http://discovery.cor.gov/public/cvb/cvbweb.nsf/getCalendarTypes";

    new Ajax.Request('request_proxy.aspx',
           {
               method: "get",
               parameters: {
                   url: the_url
               },
               onSuccess: function(transport) {
                   var resp = transport.responseText || "no response text";

                   var obj = resp.evalJSON();
                   if (obj.response == "success") {
                       var op;
                       var list = Object.values(obj.calendartypes);
                       var li = 0;
                       var si = 0;
                       op = document.createElement('option');
                       op.text = "All";
                       op.value = "All";
                       try {
                           $('t').add(op, null);
                       } catch (ex) {
                           $('t').add(op);
                       }

                       list.each(function(s) {
                           li++;
                           if (li == 0 || selected_type == "") {
                               si = li;
                           }
                           //if (s.toLowerCase() == selected_type.toLowerCase()) {
                           if (s == selected_type) {
                               si = li;
                           }

                           op = document.createElement('option');
                           op.text = s;
                           op.value = s;
                           try {
                               $('t').add(op, null);
                           } catch (ex) {
                               $('t').add(op);
                           }
                       }

                       );

                       $('t').selectedIndex = si;
                       //t = $F('t');
                       t = selected_type;
                       draw_calendar(d, e, t);
                   }
               }
           });

}

function daysInMonth(month, year) {
    var dd = new Date(year, month, 0);
    return dd.getDate();
}

function get_featured() {
    var the_url = "https://discovery.cor.gov/Public/CVB/cvbweb.nsf/getFeaturedEvents";
    new Ajax.Request('request_proxy.aspx',
                {
                    method: "get",
                    parameters: {
                        url: the_url
                    },
                    onSuccess: function(transport) {
                        var resp = transport.responseText || "no response text";
                        var obj = resp.evalJSON();
                        if (obj.response == "success") {
                            if (obj.events) {
                                var x = 0;
                                var max = obj.events.length;
                                var rtn = "<table width=\"100%\" style=\"border-collaspe:collapse;\">\r\n";
                                while (x < max) {
                                    rtn += "<tr><td class=\"list_text\" align=\"left\" style=\"padding-right:2px; padding-top:2px; padding-bottom:2px;\">";
                                    rtn += "<a class=\"list_link\" href=\"calendar_details.aspx?id=" + obj.events[x].eventID + "&d=" + d + "&e=" + e + "&t=" + t + "\">";
                                    rtn += obj.events[x].title + "</a></td>\r\n";
                                    rtn += "<td align=\"right\" class=\"list_text\">" + obj.events[x].eventDate + "</td></tr>\r\n";
                                    x++;
                                }
                                rtn += "</table>\r\n";

                                $('FeaturedList').innerHTML = rtn;
                                $('WaitDiv3').hide();
                            }


                        }
                    }
                }
            );

}


      
