function EventsCalendar(controlID,regionType,regionTypeId,minDate,maxDate,events,data){Number.prototype.pad2=function(){return this<10&&this>=0?"0"+this:this<100?""+this:"00"};DotNetDateParse=function(date){var dd=date.match(/(\d+)/)[0];return dd*1};Date.prototype.shortFormat=function(){return this.getFullYear().toString()+(this.getMonth()+1).pad2().toString()+this.getDate().pad2().toString()};Date.prototype.shortFormatMonth=function(){return this.getFullYear().toString()+(this.getMonth()+1).pad2().toString()};var slideShowUpdatesCalendar=true,slideshowIndex=0,slideshowRunning=true,interval,store={},events=[],data={},throbbing=false;function updateSlideshowFromCalendar(date){if(store[date.shortFormat()]&&store[date.shortFormat()].length>0){pause();slideShowUpdatesCalendar=true;gotoSlide(store[date.shortFormat()][0].index)}}function buildStoreFromEvents(){store={};for(var i=0;i<events.length;i++){var dateIndex=(new Date(events[i].datefrom)).shortFormat();if(!store[dateIndex])store[dateIndex]=[];store[dateIndex].push(events[i]);events[i].index=i}}function buildEventsFromStore(){events=[];for(var key in store)for(var i=0;i<store[key].length;i++){store[key][i].index=events.length;events.push(store[key][i])}}function addData(newData,date){var dataIndex=date.shortFormatMonth();data[dataIndex]=true;if(!newData||!(newData instanceof Array)||newData.length==0){if(date>maxDate)return;var nextMonth=new Date(date.getFullYear(),date.getMonth()+2,0);requestData(nextMonth);return}for(var i=0;i<newData.length;i++){newData[i].datefrom=DotNetDateParse(newData[i].datefrom);newData[i].dateto=DotNetDateParse(newData[i].dateto);var date=new Date(newData[i].datefrom);if(date<minDate)continue;var dateIndex=date.shortFormat();if(!store[dateIndex])store[dateIndex]=[];store[dateIndex].push(newData[i])}buildEventsFromStore();if(throbbing){throbbing=false;gotoSlide(0);play();$("#"+controlID+" .next").attr("disabled",slideshowIndex+1>=events.length?"true":null)}}function requestData(date){var dataIndex=date.shortFormatMonth();if(data[dataIndex])return;data[dataIndex]="Pending";$.ajax({type:"POST",url:"/Services/EventsService.asmx/GetEventsForMonth",data:"{'identifier':'"+dataIndex+"', 'regionType':'"+regionType+"', 'regionTypeId':"+regionTypeId+"}",contentType:"application/json; charset=utf-8",dataType:"json",success:function(content){try{addData(content.d,date)}catch(e){alert(e)}}})}function gotoSlide(index){if(events.length==0)return;slideshowIndex=index;slideshowIndex=Math.min(slideshowIndex,events.length-1);slideshowIndex=Math.max(slideshowIndex,0);$("#"+controlID+" .previous").attr("disabled",slideshowIndex<=0?"true":null);$("#"+controlID+" .next").attr("disabled",slideshowIndex+1>=events.length?"true":null);$("#"+controlID+" .slideshow h4").html(events[slideshowIndex].name);$("#"+controlID+" .slideshow small").html(events[slideshowIndex].datetext);$("#"+controlID+" .slideshow p").html(events[slideshowIndex].text.substring(0,180));$("#"+controlID+" .slideshow a").attr("href",events[slideshowIndex].link);$("#"+controlID+" .slideshow a").html("Read More");$("#"+controlID+" .slideshow img").attr("src",events[slideshowIndex].image);if(!events[slideshowIndex].image)$("#"+controlID+" .slideshow img").hide();else $("#"+controlID+" .slideshow img").show();slideShowUpdatesCalendar&&$("#"+controlID+" .calendar").datepicker("setDate",new Date(events[slideshowIndex].datefrom));$("#"+controlID+" .calendar").datepicker("refresh")}function nextSlideshow(){if(!slideshowRunning)return;slideshowIndex++;if(slideshowIndex>=events.length)slideshowIndex=0;if(slideshowIndex>=events.length-5&&events[slideshowIndex]){var selectedDate=new Date(events[events.length-1].datefrom),nextMonth=new Date(selectedDate.getFullYear(),selectedDate.getMonth()+2,0);requestData(nextMonth)}gotoSlide(slideshowIndex)}function pause(){slideshowRunning=false;clearInterval(interval);$("#"+controlID+" .toggleplay").val("Play")}function play(){slideshowRunning=true;slideShowUpdatesCalendar=true;interval=setInterval(nextSlideshow,5e3);$("#"+controlID+" .toggleplay").val("Pause");$(".events-calendar-control").show()}function toggle(){if(slideshowRunning)pause();else play()}$(function(){buildStoreFromEvents();$("#"+controlID+" .calendar").datepicker({onSelect:function(date){slideShowUpdatesCalendar=false;updateSlideshowFromCalendar(new Date(date))},beforeShowDay:function(date){var classes=[];new Date==date&&classes.push("ui-datepicker-today");var dateIndex=date.shortFormat();if(store[dateIndex]&&store[dateIndex].length>0){classes.push("ui-datepicker-enabled");events[slideshowIndex]&&new Date(events[slideshowIndex].datefrom)==date&&classes.push("ui-datepicker-selected");return[true,classes.join(" ")]}return[false,classes.join(" ")]},onChangeMonthYear:function(year,month){requestData(new Date(year,month,0))},showOn:"both",dateFormat:"dd MM yy",hideIfNoPrevNext:true,minDate:minDate,maxDate:maxDate,changeMonth:false,changeYear:false,changeFirstDay:false,currentText:""});$("#"+controlID+" .previous").click(function(){slideShowUpdatesCalendar=true;pause();gotoSlide(slideshowIndex-1);return false});$("#"+controlID+" .toggleplay").click(function(){toggle();slideShowUpdatesCalendar=true;return false});$("#"+controlID+" .next").click(function(){slideShowUpdatesCalendar=true;pause();gotoSlide(slideshowIndex+1);return false});$("#"+controlID+" .calendar").click(function(){pause();return true});slideShowUpdatesCalendar=true;if(data[minDate.shortFormatMonth()]==true){gotoSlide(slideshowIndex);play()}else{throbbing=true;requestData(minDate)}})}
