SF.Cal={today:[],selected:[],events:[],range:[],flyMode:"right",flyOpen:false,ch:24,idToDate:function(d){var c=d.substr(d.indexOf("_")+1);c=c.split("-");for(var b in c){c[b]=parseInt(c[b],10)}return c},select:function(b){var a=SF.Cal.idToDate(this.id);var d=SF.Cal.current;if(a[0]>d[0]||(a[0]==d[0]&&a[1]>d[1])){SF.Cal.nextMonth()}else{if(a[0]<d[0]||(a[0]==d[0]&&a[1]<d[1])){SF.Cal.prevMonth()}}$(".sfcal tbody td.selected").removeClass("selected");$("#"+this.id).addClass("selected");if($("#"+this.id+" .events").html()!=""){SF.Cal.openFlyout(a)}else{SF.Cal.closeFlyout()}return false},openFlyout:function(a){this.flyOpen=true;switch(this.flyMode){case"right":this.flyRight(a);break;case"center":this.flyRight(a,true);break;case"bubble":this.flyBubble(a);break}},flyBubble:function(a){},flyRight:function(d,a){var e=$("#sfcal_events");var g=$(".sfcalendar").offset();if(SF.isTouch()){g.left-=window.pageXOffset;g.top-=window.pageYOffset}var f=parseInt(g.left,10);var b=$(".sfcalendar").width();if($(window).width()-f>b*2&&!a){f+=b}e.css("left",f);var c=($.browser.mozilla)?1:0;e.css("top",parseInt(g.top,10)-c);e.width(1).html("<h4>&nbsp;</h4>").show();e.animate({width:b},510,function(){$("#sfcal_events").addClass("rounded");var k="<h4>"+d[2]+" "+SF.Cal.getMonthData(d[1])[0]+" "+d[0]+"</h4>";k+="<ul>";var l,m,j;for(var i=0;i<SF.Cal.events.length;i++){l=SF.Cal.events[i];if(l.date[0]==d[0]&&l.date[1]==d[1]&&l.date[2]==d[2]){m="";j="/modules/calendar/showCalendarDay.phtml?oc_id[]="+SF.Cal.oc_id;j+="&day="+l.date[2]+"&month="+l.date[1]+"&year="+l.date[0];j+="&eid="+l.eid;j+="&"+sessionname+"="+sessionid;if(l.popup_option1){m+=l.popup_option1}if(l.description){if(m){m+=" - "}m+=l.description}k+="<li><a title='"+m+"' href='"+j+"'>"+l.name+"</a>";if(l.timespan){k+="<div class='timespan'>"+l.timespan+"</div>"}k+="</li>"}}if(0){k+="<li><button onclick='SF.Cal.closeFlyout():'>Close</button></li>"}k+="</ul>";$("#sfcal_events").html(k)})},closeFlyout:function(){$(".sfcal tbody td.selected").removeClass("selected");if(SF.Cal.flyOpen){$("#sfcal_events").removeClass("rounded");$("#sfcal_events").html("<h4>&nbsp;</h4>").animate({width:0},500,function(){$("#sfcal_events").hide()});SF.Cal.flyOpen=false}},getMonthData:function(b){var a,c;switch(b){case 1:a="January";c=31;break;case 2:a="February";c=(this.current[0]%4===0)?29:28;break;case 3:a="March";c=31;break;case 4:a="April";c=30;break;case 5:a="May";c=31;break;case 6:a="June";c=30;break;case 7:a="July";c=31;break;case 8:a="August";c=31;break;case 9:a="September";c=30;break;case 10:a="October";c=31;break;case 11:a="November";c=30;break;case 12:a="December";c=31;break}return[a,c]},init:function(){$("body").append($("#sfcal_events"));$(".sfcal tbody td").click(SF.Cal.select);if(typeof(SF.indata.Cal)=="object"){var a=SF.indata.Cal;this.today=a.today;this.selected=a.selected;this.current=a.current;this.events=a.events;this.range=a.range;this.oc_id=a.ev.oc_id;this.popEvents(a.ev.events);if(typeof(a.flyMode)!=="undefined"){this.flyMode=a.flyMode}}$("body").click(function(){SF.Cal.closeFlyout()});$(document).bind("touchend",function(b){setTimeout(SF.Cal.closeFlyout,100)});$(".cal_holder").bind("touchend",function(b){b.stopPropagation()});$("#sfcal_events").bind("touchend",function(b){b.stopPropagation()});this.ch=$(".cal_holder .nr td").height()+1},popEvents:function(f){var d,c,h,g;if(f.length){for(d=0;d<f.length;d++){h=f[d];g=h.date.split("-");for(c=0;c<3;c++){g[c]=parseInt(g[c],10)}h.date=g;this.events.push(h)}}this.drawEvents()},drawEvents:function(){var d,c;$(".sfcalendar tbody td .events").html("");for(var b in this.events){d=this.events[b];c=$("#sfcal_"+d.date.join("-")+" .events");if(c.html()!==null&&c.html().length<3){c.append("&bull;")}$("#sfcal_"+d.date.join("-")).addClass("hasevent")}},prevMonth:function(){this.closeFlyout();this.current[1]--;if(this.current[1]<1){this.current[1]=12;this.current[0]--}var e=$(".cal_holder .sfcal tr .cm");var i=$(".cal_holder .sfcal tr .lm");e.removeClass("cm").addClass("nm");i.removeClass("lm").addClass("cm");var g=this.idToDate($(".cal_holder .sfcal tr:first td:first").attr("id"));g[0]=this.current[0];g[1]=this.current[1];var r=this.getMonthData(g[1]);var m=r[0];var b=r[1];g[2]=(g[2]>1)?g[2]-1:b;var f=[];for(var p in g){f.push(g[p])}$(".sfcal thead .monthname").html(m+" "+g[0]);var l=Math.ceil(g[2]/7);var j,k;for(var q=0;q<l;q++){j="";for(var n=0;n<7;n++){var o=(g[1]==this.current[1])?"cm":"lm";if(g[0]==this.today[0]&&g[1]==this.today[1]&&g[2]==this.today[2]){o+=" today"}j="<td class='"+o+"' id='sfcal_"+g.join("-")+"'><div class='date'>"+g[2]+"</div><div class='events'></div></td>"+j;if(n<6||q<(l-1)){g=this.prevDay(g)}}k=$("<tr class='nr'></tr>").html(j);k.children("td").click(SF.Cal.select);$(".cal_holder tbody").prepend(k);$(".cal_holder .sfcal").css("top",(q+1)*-SF.Cal.ch)}if(jQuery.browser.msie&&jQuery.browser.version<8){$(".cal_holder .sfcal").css("top",600);SF.Cal.cropBelow()}else{$(".cal_holder .sfcal").animate({top:0},600,function(){SF.Cal.cropBelow()})}if(f[0]<this.range[0][0]||(f[0]==this.range[0][0]&&f[1]<this.range[0][1])||(f[0]==this.range[0][0]&&f[1]==this.range[0][1]&&f[2]<this.range[0][2])){this.range[0]=g;$.getJSON("/modules/calendar/xmlData/generateJson.php",{startdate:g.join("-"),enddate:f.join("-"),com:"t",sessionid:sessionid},function(a){SF.Cal.popEvents(a.events)})}else{SF.Cal.drawEvents()}},nextMonth:function(){this.closeFlyout();this.current[1]++;if(this.current[1]>12){this.current[1]=1;this.current[0]++}var b=$(".cal_holder .sfcal tr .cm");var g=$(".cal_holder .sfcal tr .nm");b.removeClass("cm").addClass("lm");g.removeClass("nm").addClass("cm");var e=this.idToDate($(".cal_holder .sfcal tr:last td:last").attr("id"));e[0]=this.current[0];e[1]=this.current[1];e[2]=(e[2]>27)?1:e[2]+1;var o=[];for(var q in e){o.push(e[q])}var s=this.getMonthData(e[1]);var k=s[0];$(".sfcal thead .monthname").html(k+" "+e[0]);var l=(e[2]>=9)?4:5;var i,j;for(var r=0;r<l;r++){i="";for(var n=0;n<7;n++){var p=(e[1]==this.current[1])?"cm":"nm";if(e[0]==this.today[0]&&e[1]==this.today[1]&&e[2]==this.today[2]){p+=" today"}i+="<td class='"+p+"' id='sfcal_"+e.join("-")+"'><div class='date'>"+e[2]+"</div><div class='events'></div></td>";if(n<6||r<(l-1)){e=this.nextDay(e)}}j=$("<tr class='nr'></tr>").html(i);j.children("td").click(SF.Cal.select);$(".cal_holder tbody").append(j)}var f=parseInt($(".cal_holder .sfcal").css("top"),10);if(!f){f=0}var m=f-(SF.Cal.ch*l);if(jQuery.browser.msie&&jQuery.browser.version<8){$(".cal_holder .sfcal").css("top",m);SF.Cal.cropAbove()}else{$(".cal_holder .sfcal").animate({top:m},600,function(){SF.Cal.cropAbove()})}if(o[0]>this.range[1][0]||(o[0]==this.range[1][0]&&o[1]>this.range[1][1])||(o[0]==this.range[1][0]&&o[1]==this.range[1][1]&&o[2]>this.range[1][2])){this.range[1]=e;$.getJSON("/modules/calendar/xmlData/generateJson.php",{startdate:o.join("-"),enddate:e.join("-"),com:"t",sessionid:sessionid},function(a){SF.Cal.popEvents(a.events)})}else{SF.Cal.drawEvents()}},nextDay:function(a){var b=this.getMonthData(a[1])[1];a[2]++;if(a[2]>b){a[2]=1;a[1]++;if(a[1]>12){a[1]=1;a[0]++}}return a},prevDay:function(a){a[2]--;if(a[2]<1){a[1]--;if(a[1]<1){a[1]=12;a[0]--}a[2]=this.getMonthData(a[1])[1]}return a},cropAbove:function(){var a=$(".cal_holder .sfcal tr");var b=a.length-6;a.each(function(c){if(c<b){$(this).remove()}});$(".cal_holder .sfcal").css("top",0)},cropBelow:function(){$(".cal_holder .sfcal tr").each(function(a){if(a>=6){$(this).remove()}});$(".cal_holder .sfcal").css("top",0)}};$(document).ready(function(){if($(".sfcalendar").length){SF.Cal.init()}});
