﻿
var zCalCurMonth = new Date().getMonth()+1;
var zCalCurYear = new Date().getFullYear();
var zCalDateList = new Array();
var zCalXml;
var zCalItemXml;
var zCalMouseX;
var zCalMouseY;
var zCalPopupOffsetLeft;
var zCalPopupOffsetTop;
var zCalItemDt;

function calMouseMove(e)
{
  
  
  zCalMouseX = e.pageX - zCalPopupOffsetLeft -15 ;
  zCalMouseY = e.pageY - zCalPopupOffsetTop -15 ;
  
}

function setupZCalendars()
{
  $(".gridCal").datepicker({
      onChangeMonthYear: function(year,month,inst) {
         zCalCurMonth = month;
         zCalCurYear = year;
         getCalEvents();
      },  
      beforeShowDay: function(showDt) {
        for(var dt in zCalDateList)
        {
            if (zCalDateList[dt].valueOf() == showDt.valueOf())
            {
                return [true, "hasEvent",""];
            }
        }
        return [true,"",""];
      },
      onSelect: function(dateText,inst) {
         showEvent(dateText);
      }
  });
  getCalEvents();
  
  
  
  
  $(".calEventItem").unbind("click",calEventClick);
  $(".calEventItem").click(calEventClick);
}

function calEventClick()
{
    var d = $(this).attr("eventDate");
    zCalItemdt = new Date(d);    
    getCalEvent($(this).attr("itemid"));
    
}

function showEvent(dt)
{

    var dtCheck =  new Date(dt);
    for(var dt in zCalDateList)
    {
      if (zCalDateList[dt].valueOf() ==  dtCheck.valueOf())
      {
          populateEventDiv(dtCheck,zCalXml);
          
          showEventPopup();
       }
     }
}

function showSingleEvent(dt)
{
     populateSingleEventDiv(dt,zCalItemXml);          
     showEventPopup();  
}

function showEventPopup()
{
    
  gcSetupPopups();                                            
  $("#zCalPopup").css({top:zCalMouseY,left:zCalMouseX});
  $("#zCalPopup").show();
  $("#zCalPopup").unbind("mouseleave",zCalPopupHide);
  $("#zCalPopup").mouseleave(zCalPopupHide);
}

function populateSingleEventDiv(dt,xmdata)
{
    var calItem="";
       
       
       $(xmdata).children("zCalItems").children("zCalItem").each(function() {         
               
         calItem += "<div id=\"zCalHeader\" class=\"zCalHeaderDiv\">";
         calItem += "<span id=\"zCalImage\" class=\"zCalImageSpan\"><img src=\"images/calicon.png\" /></span>";
         calItem += "<div id=\"zCalDate\" class=\"zCalDateDiv\">"+dt.toDateString()+"</div>";
         calItem += "<div id=\"zCalTitle\" class=\"zCalTitleDiv\">"+$(this).children("Title").text()+"</div>";
         calItem += "</div>";
         calItem += "<div id=\"zCalDescription\" class=\"zCalDescriptionDiv\">"+ $(this).children("Description").text()+"</div>";
         calItem +="<div ><img src=\"images/greyDot.png\" style=\"width:100%;height:1px\"></div>";
         
             
         
       });
       $("#zCalPopup").html(calItem);
}

function populateEventDiv(dt,xmdata)
{  
       var calItem="";
       
       
       $(xmdata).children("zCalItems").children("zCalItem").each(function() {
          var eventDateStr = $(this).children("eventDate").text();
          var eventDate = new Date(eventDateStr);
          eventDate = new Date(eventDate.toDateString());
          if (dt.valueOf() == eventDate.valueOf())
          {
               
             calItem += "<div id=\"zCalHeader\" class=\"zCalHeaderDiv\">";
             calItem += "<span id=\"zCalImage\" class=\"zCalImageSpan\"><img src=\"images/calicon.png\" /></span>";
             calItem += "<div id=\"zCalDate\" class=\"zCalDateDiv\">"+dt.toDateString()+"</div>";
             calItem += "<div id=\"zCalTitle\" class=\"zCalTitleDiv\">"+$(this).children("Title").text()+"</div>";
             calItem += "</div>";
             calItem += "<div id=\"zCalDescription\" class=\"zCalDescriptionDiv\">"+ $(this).children("Description").text()+"</div>";
             calItem +="<div ><img src=\"images/greyDot.png\" style=\"width:100%;height:1px\"></div>";
             
             
          }
       });
       $("#zCalPopup").html(calItem);
}


      
    


function zCalPopupHide(){
    $("#zCalPopup").hide();
}

function getCalEvent(itemid)
{
    var modToGet  = moreDNNBasePath+"DesktopModules/zCalendar/getCalendar.aspx?calItem="+itemid+"&moduleid="+zCalModuleId.toString();

    
    $.ajax({
            type: "GET",
            url: modToGet,
            dataType: "xml",
            success: ajshowcalItem,                       
            cache: false
            
       });   
}

function getCalEvents()
{
    var modToGet  = moreDNNBasePath+"DesktopModules/zCalendar/getCalendar.aspx?calMonth="+zCalCurMonth.toString()+"&calYear="+zCalCurYear.toString()+"&moduleid="+zCalModuleId.toString();

    
    $.ajax({
            type: "GET",
            url: modToGet,
            dataType: "xml",
            success: ajshowcalItems,                       
            cache: false
            
       });   
}

function ajshowcalItem(data)
{
    zCalItemXml = data;
    showSingleEvent(zCalItemdt);
}

function ajshowcalItems(data)
{

  zCalXml = data;
  parseEvents();
}

function parseEvents()
{
    
    zCalDateList=[];
    $(zCalXml).children("zCalItems").children("zCalItem").each(function() {    
        var eventDateStr = $(this).children("eventDate").text();                
        var eventDate = new Date(eventDateStr);        
        zCalDateList.push(new Date(eventDate.toDateString()));
    });
    $(".gridCal").datepicker("refresh");
}


function gcSetupPopups()
{
    if (window.setupArticlePopupLinks())
    {
        window.setupArticlePopupLinks();
    }
    if (window.setupLinkPopupLinks())
    {
      window.setupLinkPopupLinks()
    }
}
