[#] hm X_Shell Backd00r [#]
(function ( $ ) {
$.fn.calendar = function(array, color) {
if(color == undefined) {
$(this).data("color","normal");
} else {
$(this).data("color",color);
}
$.each(array, function(date,events) {
var tempdayarray = [];
$.each(events, function(ev,evdata) {
var tempeventarray = [];
tempeventarray["name"] = ev;
tempeventarray["start"] = evdata.start;
tempeventarray["end"] = evdata.end;
tempeventarray["location"] = evdata.location;
tempeventarray["image"]= evdata.image;
tempdayarray.push(tempeventarray);
});
calendarArray[date] = tempdayarray;
});
return this;
};
}( jQuery ));
function calendarScale() {
$(".calendar").each(function() {
if($(this).width() < 400 && !$(this).hasClass('small')) {
$(this).addClass('small');
} else if($(this).width() > 400 && $(this).hasClass('small')) {
$(this).removeClass('small');
}
})
}
function offsetcalendar() {
var par = $(this).parents('.calendar');
var cm = parseInt(par.attr('offset'));
if($(this).data('dir') == "left") {
calendarSetMonth(par,cm-1);
} else if($(this).data('dir') == "right") {
calendarSetMonth(par,cm+1);
}
}
function orderBy(deli,array) {
var p = array.slice();
var o = p.length;
var y,t;
var temparray = [];
for(var u=0; u<o;u++) {
for(var uu=0;uu<p.length;uu++) {
if(uu==0) {
t = uu;
y = p[uu];
}
else if(parseInt(p[uu][deli].replace('.','')) < parseInt(y[deli].replace('.',''))) {
y = p[uu];
t = uu;
}
}
temparray.push(y);
p.splice(t,1);
}
return temparray;
}
function calendarSet() {
$(".calendar").append('<div class="calendar-month-view"><div class="calendar-month-view-arrow" data-dir="left">‹</div><p></p><div class="calendar-month-view-arrow" data-dir="right">›</div></div><div class="letrasDay"></div><div class="calendar-holder"><div class="calendar-grid"></div><div class="calendar-specific"><div class="specific-day"><div class="specific-day-info" i="day"></div><div class="specific-day-info" i="month"></div></div><div class="specific-day-scheme"></div></div></div>');
$(".calendar").each(function() {
if($(this).data("color") == undefined) {
$(this).data("color","normal");
}
$(this).find('[data-role=day]').each(function() {
var tempdayarray = [];
$(this).find('[data-role=event]').each(function() {
var tempeventarray = [];
tempeventarray["name"] = $(this).data("name");
tempeventarray["start"] = $(this).data("start");
tempeventarray["end"] = $(this).data("end");
tempeventarray["location"] = $(this).data("location");
tempeventarray["image"] = $(this).data("image");
tempdayarray.push(tempeventarray);
});
if(calendarArray[$(this).data('day')] !== undefined) {
$.each(calendarArray[$(this).data('day')], function(k,v) {
tempdayarray.push(v)
});
}
calendarArray[$(this).data('day')] = tempdayarray;
});
calendarSetMonth($(this));
});
$(".calendar [data-role=day]").remove();
}
function activateDay() {
$(this).parents('.calendar').addClass('spec-day');
var di = new Date(parseInt($(this).attr('time')));
var strtime = $(this).attr('strtime');
var d = new Object();
d.day = di.getDate();
d.month = di.getMonth();
d.events = calendarArray[strtime];
d.tocalendar = tocalendar;
d.tocalendar(strtime);
$("area[data-gal^='prettyPhoto']").prettyPhoto();
$("a[data-gal^='prettyPhoto']").prettyPhoto({animation_speed:'normal',slideshow:10000, hideflash: true});
}
var tocalendar = function(d) {
//$(".specific-day-info[i=day]").html('<p>Regresar</p>');
//$(".specific-day-info[i=month]").html(monthArray[this.month][0]);
if(this.events !== undefined) {
var ev = orderBy('start',this.events);
for(var o = 0; o<ev.length;o++) {
$(".specific-day-scheme").append('<a href="'+ev[o]['image']+'" rel="prettyPhoto[gallery'+d+']" data-gal="prettyPhoto[gallery'+d+']"><div class="specific-day-scheme-event"><p><img src="'+ev[o]['image']+'" width = "100%"/></p></div></a>');
}
// $(".specific-day").append('<div class="specific-day-info-regresar"><p>Regresar</p></div>');
}
}
function activatecalendar() {
$(this).parents('.calendar').removeClass('spec-day');
$(".specific-day-scheme").html('');
}
function calendarSetMonth(ele,offset) {
ele.find(".calendar-grid").html('');
ele.find(".letrasDay").html('');
var d = new Date();
var c = new Date();
var e = new Date();
var p = d;
if(offset !== undefined) {
d = monthChange(p,offset);
e = monthChange(p,offset);
ele.attr('offset', offset);
} else {
ele.attr('offset', 0);
}
ele.find(".calendar-month-view p").text(monthArray[d.getMonth()][1]+' '+d.getFullYear());
d.setDate(1);
if(dayArray[d.getDay()] == 1) {
d.setDate(d.getDate()-7);
} else {
d.setDate(d.getDate()-dayArray[d.getDay()]+1);
}
for(var i=0;i<7;i++) {
var dias_Semana = $('<div>'+letrasArray[i]+'</div>');
ele.find(".letrasDay").append(dias_Semana);
}
for(var i=0;i<42;i++) {
d.setDate(d.getDate()+i);
var cal_day = $('<div class="calendar-day"><div class="date-holder">'+d.getDate()+'</div></div>');
if(d.getMonth() !== e.getMonth()) {
cal_day.addClass('other-month');
}
if(d.getTime() == c.getTime()) {
cal_day.addClass('this-day');
}
var strtime = d.getFullYear()+''+(d.getMonth()+1)+''+d.getDate();
if(calendarArray[strtime] !== undefined) {
cal_day.addClass('have-events');
}
var cal_day_eventholder = $('<div class="event-notif-holder"></div>');
if(calendarArray[strtime] != undefined) {
for(var u=0;u<3 && u<calendarArray[strtime].length;u++) {
cal_day_eventholder.append('<div class="event-notif"></div>')
}
}
cal_day.attr('strtime',strtime);
cal_day.attr('time',d.getTime());
cal_day.prepend(cal_day_eventholder);
ele.find(".calendar-grid").append(cal_day);
d.setDate(d.getDate()-i);
}
}
function monthChange(d,o) {
var dim = [31,28,31,30,31,30,31,31,30,31,30,31];
var day = d.getDate();
var month = o !== undefined ? d.getMonth()+o : d.getMonth();
var year = d.getFullYear();
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
while(month>11) {
month= month-12;
year++;
}
while(month<0) {
month= month+12;
year--;
}
if(dim[month] < day) {
day = dim[month];
}
return new Date(year,month,day,hours,minutes,seconds);
}
Mr.hm X_Shell Backd00r 1.0, Coded By Mr.hm X_Shell Backd00r