eventstate = {};

jQuery.cqe = { 
  
  showEvent: function(ev) {
                if(!thePEvents[ev]) return;
                $(".e-"+ev).fadeIn();
                $(".subpanel input[type=checkbox][value="+ev+"]").attr("checked", true);
                $.cqe.enEvent(ev);
                viewConflict();
              },

  hideEvent: function(ev) {
                $(".e-"+ev).fadeOut();
                $(".subpanel input[type=checkbox][value="+ev+"]").attr("checked", false); 
                $.cqe.deEvent(ev);
                viewConflict();
              },

  toggleEvent: function(ev) {
                if($(".subpanel input[type=checkbox][value="+ev+"]").attr("checked") == false) {
                   $.cqe.hideEvent(ev);
                } else {
                   $.cqe.showEvent(ev);
                }
                //viewConflict();
              },

  init: function(json) {
              thePEvents = $.evalJSON(json);
              for (var p in thePEvents) {
                $.cqe.createEvent(thePEvents[p]);
              }
  
                $(".pevents input[type=checkbox]").bind(($.browser.msie ? "click" : "change"),(function(){
                   $.cqe.toggleEvent($(this).attr("value"));
                }));
              },

  enEvent: function(eid) {
                eventstate[eid] = eid;
              },

  deEvent: function(eid) {
                delete eventstate[eid];
              },
              
  addEvent: function() {
              var x = "";
              $("tr.daypicker td.dt-sel").each(function() {
                x += $(this).text();
              });
              
              if (x == "") return;
              
              $.cqe.addEventHelper($("#title").val(), x, nice2time($("#start_time").val()), nice2time($("#end_time").val()));
              },
  addEventHelper: function(t, d, s, e){
                var id;
                
                if (s*1 >= e*1) return;
                $.post("ajax/addevent.php", 
                       {'title':t,
                        'days': d,
                        'stime': s,
                        'etime': e}, 
                       function(id) {
                         if (id == "") {
                           alert("Internal error: Could not create event.");
                           return;
                         }
            			       var newEvent = {
                           eid: id,
                           days: d,
                           title: t,
                           stime: s,
                           etime: e
                         };
                         thePEvents[id] = newEvent;
                         $.cqe.createEvent(newEvent);
                         $(".pevents input[type=checkbox][value="+id+"]").bind(($.browser.msie ? "click" : "change"),(function(){
                            $.cqe.toggleEvent($(this).attr("value"));
                         }));
                         $.cqe.showEvent(id);
                         }
                      );

              },
              
  createEvent: function(pevent) {
                var start = time2min(pevent["stime"]);
                var end = time2min(pevent["etime"]);
                var duration = end - start - 10;

                var block = "<div class = 'block event e-"+pevent["eid"]+"' ";  
                block += "style = '";
                block += "margin-top: " + (start - 480) + "px;";
                block += "background: " + colors.pop() +";";
                block += "height: " + duration + "px; display:none'>";

                block += "<h3>"+pevent["title"]+"</h3>";
                block += "<h5>"+time2nice(pevent["stime"])+"-"+time2nice(pevent["etime"])+"</h5></div>";
                    // "<p>"+nameID+"</p>";

                $(".pevents").append("<label><input type='checkbox' value='"+pevent["eid"]+"'/>" + pevent["title"] + "<br /></label>");
                populate(pevent["days"],block);
                columnsToDom();
              },
              
  deleteButton: function(id) {
                  $(id).click(function(){
                    var x = [];
                    $("input[name=delevent]:checked").each(function() {
                      x.push($(this).val());
                    });
                    $.cqe.deleteEvent(x);
                    $("#console_menu_actions_share").fadeOut();
                  });
              },
              
  deleteEvent: function(id) {
                  $.post("ajax/removeevents.php", 
                         {'eid': $.toJSON(id)}, 
                         function(x) {
                           for (var i = 0; i<id.length; i++) {
                             // alert(id[i]);
                             $(".pevents input[value="+id[i]+"]").parents("label").remove();
                             delete thePEvents[id[i]];
                             delete eventstate[id[i]];
                             $(".e-"+id[i]).remove(); 
                             viewConflict();
                           }
                         }
                        );
                }
}

