initial commit
[CPE_learningsite] / CPE / CPE.App / CPE.App.Web / static / js / rebroadcast / rebroadcastschedule.js
1 $(document).ready(function () {
2     $(".datepicker").datepicker();
3
4     var morning = new Date();
5     morning.setHours(6, 0, 0, 0);
6
7     $('.timepicker').timePicker({
8         startTime: morning,
9         show24Hours: false,
10         step: 30
11     });
12
13     $(".datepicker, .timepicker, #surveyLink").change(function () {
14         if (checkDateTimes() && $('#surveyLink').val().length > 0) {
15             $("#btnSubmit").removeAttr("disabled");
16         }
17         else {
18             $("#btnSubmit").attr("disabled", "disabled");
19         }
20     });
21
22     var validator = $('form').validate();
23     $('#btnSubmit').click(function () {
24         if ($('form').valid()) {
25
26             if (validTimes()) {
27                 createRebroadcast();
28             }
29             else {
30                 validator.showErrors({ EndTime: "End Time must be greater than start time" });
31             }
32         }
33     });
34
35     function checkDateTimes() {
36         var date = $("#Date").val();
37         var startTime = $("#StartTime").val();
38         var endTime = $("#EndTime").val();
39
40         if (date.length > 0 && startTime.length > 0 && endTime.length > 0) {
41             return true;
42         }
43
44         return false;
45     }
46
47     function validTimes() {
48         var date = $("#Date").datepicker("getDate");
49         var startTime = $.timePicker($("#StartTime")).getTime();
50         var endTime = $.timePicker($("#EndTime")).getTime();
51         var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), startTime.getHours(), startTime.getMinutes(), startTime.getSeconds(), startTime.getMilliseconds());
52         //startDate = convertDateToUTC(startDate);
53         var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), endTime.getHours(), endTime.getMinutes(), endTime.getSeconds(), endTime.getMilliseconds());
54         //endDate = convertDateToUTC(endDate);
55
56         return (endDate > startDate);
57     }
58
59     function createRebroadcast() {
60
61         var date = $("#Date").datepicker("getDate");
62
63         var startTime = $.timePicker($("#StartTime")).getTime();
64         var endTime = $.timePicker($("#EndTime")).getTime();
65
66         var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), startTime.getHours(), startTime.getMinutes(), startTime.getSeconds(), startTime.getMilliseconds());
67         //startDate = convertDateToUTC(startDate);
68         var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), endTime.getHours(), endTime.getMinutes(), endTime.getSeconds(), endTime.getMilliseconds());
69         //endDate = convertDateToUTC(endDate);
70
71         var data = {};
72         data.meetingSessionKey = $("#meetingSessionKey").val();
73         data.startTime = startDate;
74         data.endTime = endDate;
75         data.surveyLink = encodeURIComponent($('#surveyLink').val());
76         data.passcode = null;
77         var passcode = $('#passcode').val();
78         if (passcode.length > 0) {
79             data.passcode = passcode;
80         }
81         
82
83         $.ajax({
84             url: "/rebroadcast/publishrecording",
85             contentType: "application/x-www-form-urlencoded; charset=UTF-8",
86             dataType: "json",
87             type: "POST",
88             data: $.toDictionary(data),
89             success: function (data, textStatus, jqXhr) {
90                 if (data.Success == true && data.Data.Url.length > 0) {
91                     location.reload();
92                 }
93                 else {
94                     alert("Problem creating rebroadcast session.  " + data.Data.Message)
95                 }
96             },
97             error: function (jqXhr, textStatus, errorThrown) {
98                 alert("Request failed: " + textStatus);
99
100             }
101         });
102     }
103
104     //    function convertDateToUTC(date) {
105     //        return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
106     //    }
107
108
109     //    Date.prototype.stdTimezoneOffset = function () {
110     //        var jan = new Date(this.getFullYear(), 0, 1);
111     //        var jul = new Date(this.getFullYear(), 6, 1);
112     //        return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
113     //    };
114
115     //    Date.prototype.dst = function() {
116     //        return this.getTimezoneOffset() < this.stdTimezoneOffset();
117     //    };
118
119     //    function convertDatetoET(date) {
120     //        var EToffset = -5;
121     //        var today = new Date();
122     //        if (today.dst()) {
123     //            EToffset = -4;
124     //        }
125     //        var localTime = date.getTime();
126     //        var localOffset = date.getTimezoneOffset() * 60000;
127     //        // obtain UTC time in msec
128     //        var utc = localTime + localOffset;
129
130     //        var et = utc + (3600000 * EToffset);
131     //        return new Date(et);
132     //    }
133
134     //    function isDST() {
135     //        var dst = false;
136     //        var gmt = new Date;
137     //        var lsm = new Date;
138     //        var lso = new Date;
139     //        // months 0-11
140     //        lsm.setMonth(2); // March
141     //        // days 1-31
142     //        lsm.setDate(11);
143     //        var day = lsm.getDay(); // day of week of 11th
144     //        lsm.setDate(11 - day); // set day 2nd Sunday
145     //        // months 0-11
146     //        lso.setMonth(10); // October
147     //        // days 1-31
148     //        lso.setDate(4);
149     //        day = lso.getDay(); // day of week of 4th
150     //        lso.setDate(4 - day); // set day 1st Sunday
151     //        if (gmt < lsm || gmt >= lso) {
152     //            dst = true;
153     //        }
154     //        return dst;
155     //    }
156 });