/*
* History:
* 08/26/11 - Revised to handle Mini and Full versions
* 05/22/11 - Created this page based on http://www.chazzuka.com/blog/?p=88
* CPL hack: changed all "slow" to "fast"
*
* This page uses JQuery AJAX to load the calendar panel into the calling page.  It expects to inherit the following:
*   - JavaScript var named zCalSize that must be either 'Mini' or 'Full', indicating the size of the calendar panel.  
*   - JavaScript var named zCalShellFile that must be either '/calendar/calendar_display_mini.asp' or _mid.asp or _full.asp'
*   - Related CSS declarations
*/

$(function () {
  function ajaxify(file){
    //$('<div id="z_loadingAjaxCal' +zCalSize + '"></div>').html("Loading Content: "+file+" ...").appendTo('body').fadeIn();	//could use an animated gif
    $('<div id="z_loadingAjaxCal' +zCalSize + '"></div>').html("Loading Content...").appendTo('body').fadeIn();
    $.get(file,function(data) {
      $('#divAjaxCal' +zCalSize).slideUp('fast',function(){
        $(this).html(data).slideDown('fast',function(){
          $('#z_loadingAjaxCal' +zCalSize).fadeOut('fast',function(){$(this).remove();});
          });
        });
      });
    }
    
    //Handle PREV/NEXT clicks after initial load
    $('div#z_ajaxCalendarNav' +zCalSize + ' ul li a').click(function(){
      $('#z_ajaxCalendarNav' +zCalSize + ' ul li a.current').removeClass('current');
      $(this).addClass('current');
      ajaxify($(this).attr('href'));
      return false;
    });
    
    //Handle initial parent page load only, thereafter is slient until called anew.
    if (!zCalShellFile == ''){
      ajaxify(zCalShellFile);}
    zCalShellFile = '';
  });

  $(function(){
    var LoadMsg = 'Please Wait ...';
//    var AjaxPath = 'pages/';
    $('#z_ajaxCalendarNav' +zCalSize + ' ul li a').click(function(){
      if(!$(this).hasClass("current")) {
        var _Href = $(this).attr('href');
        $('#z_ajaxCalendarNav' +zCalSize + ' ul li a').removeClass("current");
        $(this).addClass("current");
        $('<div id="z_loadingAjaxCal' +zCalSize + '">'+LoadMsg+'</div>').appendTo('body').fadeIn('fast',function(){
          $.ajax({
            type:	'GET',
//          url:	AjaxPath+_Href,
            url:	_Href,
            dataType:	'html',
            timeout:    5000,
            success: function(d,s){
              $('#z_loadingAjaxCal' +zCalSize).fadeOut('fast',function(){
                $(this).remove();
                $('#divAjaxCal' +zCalSize).slideUp('fast',function(){
                  $(this).html(d).slideDown('fast');
                });
              });
             },
             error: function(o,s,e){
               $('#z_loadingAjaxCal' +zCalSize).html('Ajax Request Failed: '+s);
               eTimer(_Href);
             }
           });
         });
      }
      return false;
    });
    
    function eTimer(url) {
      var t=setTimeout("window.location='"+url+"'",1000);
      $('#z_loadingAjaxCal' +zCalSize).fadeOut('fast');
    }
});
