$(document).ready(function(){

var classes_css = new Array();
jQuery.fn.switchCals = function(options) {
       options = jQuery.extend({
              classe : null,
              color_up:"#a1a5a9",
              color_down:"#dddddd"
       }, options);
       

       $(this).load(classes_css[classes_css.length] = options.classe)
              .click(function () { 
                     for( i=0;i<classes_css.length;i++ )
                     {
                            if( classes_css[i] == options.classe )
                                   $("."+classes_css[i]).each(function () { $(this.parentNode).css("background-color",options.color_up)});
                            else
                                   $("."+classes_css[i]).each(function () { $(this.parentNode).css("background-color",options.color_down)});
                     }
              })
              .css("cursor","pointer");
};


$(".js_cal_user_bt").switchCals({classe:"js_cal_user", color_up:"#b70b0b"});
$(".js_cal_group_bt").switchCals({classe:"js_cal_group", color_up:"#0db015"});
$(".js_cal_gene_bt").switchCals({classe:"js_cal_gene"});



/*
    $(".eventbg2").click(function() {
        links = this.getElementsByTagName('a');
        link = links[0].href;
        alert(link);
    });*/
    

jQuery.fn.dragCalendrier = function(options) {
       options = jQuery.extend({
              color:"red",
              background:"white",
              hedb:7,
              hfin:19
       }, options);
       
       url_deb = null;
       url_fin = null;
       lock = 1;
       
       
       $("img[src$='add_small.png']").each(function () {
              $(this.parentNode.parentNode).mousedown(function() {
                     lock = 0;
                     url_deb = getInfos(this);
              }).mouseup(function() {
                     lock = 1;
                     url_fin = getInfos(this);
                     effectDown($("a[href*='tx_cal_controller[gettime]']"));
                     
                     t = this.getElementsByTagName('a')[0];
                     
                     if( url_deb[0]<10 )
                            url_deb[0] = '0'+url_deb[0];
                     if( url_deb[1]<10 )
                            url_deb[1] = '0'+url_deb[1];
                            
                     lien = t.toString()+'&tx_cal_controller[gettime2]='+url_deb[0]+''+url_deb[1]+'&tx_cal_controller[getdate2]='+url_deb[2];
                     window.open(lien, '','width=550, height=600, toolbar=no');
                    // t = t+'&amp;'
                     //alert(lien);
              }).mouseover(function() {
                     if( !lock )
                     {
                            $(this).focus();
                            url_fin = getInfos(this);
                            
                            tmp_url_deb = url_deb;
                            tmp_url_fin = url_fin;
                            // Si (jdeb avant jfin) ou si (jdeb = jfin et que hdeb > hfin ) ou si ( jdeb = jfin et que hdeb = hfin et que mdeb > mfin )
                            if( (tmp_url_deb[2] > tmp_url_fin[2]) || (tmp_url_deb[2] == tmp_url_fin[2] && tmp_url_deb[0] > tmp_url_fin[0] ) || (tmp_url_deb[2] == tmp_url_fin[2] && tmp_url_deb[0] == tmp_url_fin[0] && tmp_url_deb[1] > tmp_url_fin[1] ))
                            {
                                   tmp = tmp_url_deb;
                                   tmp_url_deb = tmp_url_fin;
                                   tmp_url_fin = tmp;
                            }
                            effectDown($("a[href*='tx_cal_controller[gettime]']"));
                            for ( d=tmp_url_deb[2];d<=tmp_url_fin[2];d++)
                            {
                                   hdeb = ( d==tmp_url_deb[2] )?tmp_url_deb[0]:7;
                                   hfin = ( d==tmp_url_fin[2] )?tmp_url_fin[0]:19;
                                   
                                   for( h=hdeb;h<=hfin;h++ )
                                   {                            
                                          mdeb = ( d==tmp_url_deb[2] && h==tmp_url_deb[0] )?tmp_url_deb[1]:0;
                                          mfin = ( d==tmp_url_fin[2] && h==tmp_url_fin[0] )?tmp_url_fin[1]:30;
                                          
                                          th = ( h<10 )?'0'+h:h;
                                          
                                          if( mdeb == 0 )
                                                 effectUP($("a[href*='tx_cal_controller[gettime]="+th+"00&tx_cal_controller[getdate]="+d+"']"));
                                          
                                          if( mfin == 30 )
                                                 effectUP($("a[href*='tx_cal_controller[gettime]="+th+"30&tx_cal_controller[getdate]="+d+"']"));
                                   }
                            }
                     }
              });
       });
       function getInfos(obj)
       {
              tmp = new Array();
              url = obj.getElementsByTagName('a')[0].href;
              //tx_cal_controller%5Bgettime%5D=1730&amp;tx_cal_controller%5Bgetdate%5D=20090212&amp;tx_cal_controller%5Blastview%5D=month-2%7Cday-34&amp;tx_cal_controller%5Bview%5D=create_event"
              ifs = url.replace(new RegExp('(.*)tx_cal_controller.gettime.=(.*)&tx_cal_controller.getdate.=(.*)&tx_cal_controller(.*)','gi'),'$2#$3');
              ifs = ifs.split('&')[0].split('#');
              
              tmp[0] = bugParseInt(ifs[0].substr(0,2));
              tmp[1] = parseInt(ifs[0].substr(2));
              tmp[2] = parseInt(ifs[1]);
              
              return tmp;
       }
       function bugParseInt(v) // Bug etrange de parsint...
       {
              switch(v)
              {
                     case '06':return 6;
                     case '07':return 7;
                     case '08':return 8;
                     case '09':return 9;
                     default: return parseInt(v);
              }
       }
       function effectUP(obj)
       {
              obj.each(function(){
                     pobj =  $(this.parentNode);
                     pobj.css("background-color",options.color);
                     
              });
       }
       function effectDown(obj)
       {
              obj.each(function(){
                    pobj =  $(this.parentNode);
                    pobj.css("background-color",options.background);
              });
       }
};
$("img[src$='add_small.png']").dragCalendrier();
//dragCalendrier();
});
	

