(function($) {
$.fn.jCal = function (opt) {
$.jCal(this, opt);
}
$.jCal = function (target, opt) {
opt = $.extend({
day: new Date(), // date to drive first cal
days: 1, // default number of days user can select
showMonths: 1, // how many side-by-side months to show
dCheck: function (day) { return true; }, // handler for checking if single date is valid or not
callback: function (day, days) { return true; }, // callback function for click on date
selectedBG: 'rgb(0, 143, 214)', // default bgcolor for selected date cell
defaultBG: 'rgb(255, 255, 255)', // default bgcolor for unselected date cell
dayOffset: 0, // 0=week start with sunday, 1=week starts with monday
forceWeek: false, // true=force selection at start of week, false=select days out from selected day
dow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'], // days of week - change this to reflect your dayOffset
ml: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
ms: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
_target: target // target DOM element - no need to set extend this variable
}, opt);
opt.day = new Date(opt.day.getFullYear(), opt.day.getMonth(), opt.day.getDate());
$(target).stop().empty();
for (var sm=0; sm < opt.showMonths; sm++)
$(target).append('
');
opt.cID = 'c' + $('.jCalMo').length;
$('.jCalMo', target).each(
function (ind) {
drawCalControl($(this), $.extend( {}, opt, { 'ind':ind,
'day':new Date( new Date( opt.day.getTime() ).setMonth( new Date( opt.day.getTime() ).getMonth() + ind ) ) }
));
drawCal($(this), $.extend( {}, opt, { 'ind':ind,
'day':new Date( new Date( opt.day.getTime() ).setMonth( new Date( opt.day.getTime() ).getMonth() + ind ) ) }
));
});
$('.jCal', target).each(
function () {
$('.month', this).css('width', $(this).parent().width() - ( $('.left', this).width() || 0 ) - ( $('.right', this).width() || 0 ) + 'px')
});
}
function drawCalControl (target, opt) {
$(target).append(
'' +
( (opt.ind == 0) ? '

' : '' ) +
'
' + opt.ml[opt.day.getMonth()] + ' ' + opt.day.getFullYear() + '' +
( (opt.ind == ( opt.showMonths - 1 )) ? '

' : '' ) +
'
');
$(target).find('.jCal .left').bind('click',
function (e) {
document.getElementById('calTwoResult').innerHTML = '';
if ($('.jCalMask', opt._target).length > 0) return false;
var mD = { w:0, h:0 };
$('.jCalMo', opt._target).each( function () {
mD.w += $(this).width() + parseInt($(this).css('padding-left')) + parseInt($(this).css('padding-right'));
var cH = $(this).height() + parseInt($(this).css('padding-top')) + parseInt($(this).css('padding-bottom'));
mD.h = ((cH > mD.h) ? cH : mD.h);
} );
$(opt._target).prepend('');
opt.day = new Date( $('div[id*=' + opt.cID + 'd_]:first', opt._target).attr('id').replace(opt.cID + 'd_', '').replace(/_/g, '/') );
opt.day.setDate(1);
opt.day.setMonth( opt.day.getMonth() - 1 );
drawCalControl($('.jCalMo:first', opt._target), opt);
drawCal($('.jCalMo:first', opt._target), opt);
if (opt.showMonths > 1) {
$('.right', opt._target).clone(true).appendTo( $('.jCalMo:eq(1) .jCal', opt._target) );
$('.left:last, .right:last', opt._target).remove();
}
$(opt._target).append('');
$('.jCalMo', opt._target).wrapAll(
'');
$('.jCalMove', opt._target).css('margin-left', ( ( mD.w / opt.showMonths ) * -1 ) + 'px').css('opacity', 0.5).animate({ marginLeft:'0px' }, 'veryfast',
function () {
$(this).children('.jCalMo:not(:last)').appendTo( $(opt._target) );
$('.jCalSpace, .jCalMask', opt._target).empty().remove();
if ( typeof $(opt._target).data('day') == 'object' )
reSelectDates(opt._target, $(opt._target).data('day'), $(opt._target).data('days'), opt);
});
});
$(target).find('.jCal .right').bind('click',
function (e) {
document.getElementById('calTwoResult').innerHTML = '';
if ($('.jCalMask', opt._target).length > 0) return false;
var mD = { w:0, h:0 };
$('.jCalMo', opt._target).each( function () {
mD.w += $(this).width() + parseInt($(this).css('padding-left')) + parseInt($(this).css('padding-right'));
var cH = $(this).height() + parseInt($(this).css('padding-top')) + parseInt($(this).css('padding-bottom'));
mD.h = ((cH > mD.h) ? cH : mD.h);
} );
$(opt._target).append('');
opt.day = new Date( $('div[id^=' + opt.cID + 'd_]:last', opt._target).attr('id').replace(opt.cID + 'd_', '').replace(/_/g, '/') );
opt.day.setDate(1);
opt.day.setMonth( opt.day.getMonth() + 1 );
drawCalControl($('.jCalMo:last', opt._target), opt);
drawCal($('.jCalMo:last', opt._target), opt);
if (opt.showMonths > 1) {
$('.left', opt._target).clone(true).prependTo( $('.jCalMo:eq(1) .jCal', opt._target) );
$('.left:first, .right:first', opt._target).remove();
}
$(opt._target).append('');
$('.jCalMo', opt._target).wrapAll(
'');
$('.jCalMove', opt._target).css('opacity', 0.5).animate({ marginLeft:( ( mD.w / opt.showMonths ) * -1 ) + 'px' }, 'veryfast',
function () {
$(this).children('.jCalMo:not(:first)').appendTo( $(opt._target) );
$('.jCalSpace, .jCalMask', opt._target).empty().remove();
if ( typeof $(opt._target).data('day') == 'object' )
reSelectDates(opt._target, $(opt._target).data('day'), $(opt._target).data('days'), opt);
});
});
}
function reSelectDates (target, day, days, opt) {
var fDay = new Date(day.getTime());
var sDay = new Date(day.getTime());
for (var fC = false, di = 0, dC = days; di < dC; di++) {
var dF = $(target).find('div[id*=d_' + (sDay.getMonth() + 1) + '_' + sDay.getDate() + '_' + sDay.getFullYear() + ']');
if ( dF.length > 0 ) {
dF.stop().addClass('selectedDay');
fC = true;
}
sDay.setDate( sDay.getDate() + 1 );
}
if ( fC && typeof opt.callback == 'function' ) opt.callback( day, days );
}
function drawCal (target, opt) {
var events = new Array();
events[1] = new Object(); events[1]['title'] = '10K Season Opener 2010';events[1]['date'] = '2010-10-15';events[1]['url'] = 'http://www.premiermarathons.com/event/10K_Season_Opener_2010';events[2] = new Object(); events[2]['title'] = 'ABRaS Mina 10K Series Race 1 / 1-3';events[2]['date'] = '2010-10-22';events[2]['url'] = 'http://www.premiermarathons.com/event/ABRaS_Mina_10K_Series_Race_1_1011';events[3] = new Object(); events[3]['title'] = 'ABRaS Mina 10K Series Race 2 - 10/11';events[3]['date'] = '2011-2-4';events[3]['url'] = 'http://www.premiermarathons.com/event/ABRaS_Mina_10K_Series_Race_2_1011';events[4] = new Object(); events[4]['title'] = 'ABRaS Mina 10K Series Race 3 - 10/11';events[4]['date'] = '2011-4-1';events[4]['url'] = 'http://www.premiermarathons.com/event/ABRaS_Mina_10K_Series_Race_3_1011';events[5] = new Object(); events[5]['title'] = 'ABRaS X-Country 2010';events[5]['date'] = '2010-11-26';events[5]['url'] = 'http://www.premiermarathons.com/event/ABRaS_XCountry_2010';events[6] = new Object(); events[6]['title'] = 'Abu Dhabi International Triathlon 2011';events[6]['date'] = '2011-3-12';events[6]['url'] = 'http://www.premiermarathons.com/event/Abu_Dhabi_International_Triathlon_2011';events[7] = new Object(); events[7]['title'] = 'Abu Dhabi Striders Half Marathon & 10K 2010';events[7]['date'] = '2010-11-5';events[7]['url'] = 'http://www.premiermarathons.com/event/Abu_Dhabi_Striders_Half_Marathon_10K_2010';events[8] = new Object(); events[8]['title'] = 'Abu Dhabi Striders Mystery 10K';events[8]['date'] = '2011-3-4';events[8]['url'] = 'http://www.premiermarathons.com/event/Abu_Dhabi_Striders_Mystery_10K';events[9] = new Object(); events[9]['title'] = 'Al Jazira Golden Tulip Triathlon Race 1';events[9]['date'] = '2010-10-1';events[9]['url'] = 'http://www.premiermarathons.com/event/Al_Jazira_Golden_Tulip_Triathlon_Race_1';events[10] = new Object(); events[10]['title'] = 'Al Jazira Golden Tulip Triathlon Race 2';events[10]['date'] = '2010-10-29';events[10]['url'] = 'http://www.premiermarathons.com/event/Al_Jazira_Golden_Tulip_Triathlon_Race_2';events[11] = new Object(); events[11]['title'] = 'Al Jazira Golden Tulip Triathlon Race 3';events[11]['date'] = '2010-11-19';events[11]['url'] = 'http://www.premiermarathons.com/event/Al_Jazira_Golden_Tulip_Triathlon_November_2010';events[12] = new Object(); events[12]['title'] = 'Al Jazira Golden Tulip Triathlon Race 4';events[12]['date'] = '2011-1-14';events[12]['url'] = 'http://www.premiermarathons.com/event/Al_Jazira_Golden_Tulip_Triathlon_December_2010';events[13] = new Object(); events[13]['title'] = 'Al Jazira Golden Tulip Triathlon Race 5';events[13]['date'] = '2011-2-11';events[13]['url'] = 'http://www.premiermarathons.com/event/Al_Jazira_Golden_Tulip_Triathlon_Race_5';events[14] = new Object(); events[14]['title'] = 'Al Jazira Golden Tulip Triathlon Race 6';events[14]['date'] = '2011-3-25';events[14]['url'] = 'http://www.premiermarathons.com/event/Al_Jazira_Golden_Tulip_Triathlon_Race_6';events[15] = new Object(); events[15]['title'] = 'Aloft Runs For Children @ ADNEC';events[15]['date'] = '2010-9-17';events[15]['url'] = 'http://www.premiermarathons.com/event/Aloft_Runs_For_Children_ADNEC';events[16] = new Object(); events[16]['title'] = 'Beat Beethoven 2010 - Childrens Walk';events[16]['date'] = '2010-10-1';events[16]['url'] = 'http://www.premiermarathons.com/event/Abu_Dhabi_Classics_Run_Beat_Beethoven_2010_Childrens_Walk';events[17] = new Object(); events[17]['title'] = 'Beat Beethoven 2010 - Elite Run';events[17]['date'] = '2010-10-1';events[17]['url'] = 'http://www.premiermarathons.com/event/Abu_Dhabi_Classics_Run_Beat_Beethoven_2010_Elite_Run';events[18] = new Object(); events[18]['title'] = 'Beat Beethoven 2010 - Family Walk';events[18]['date'] = '2010-9-30';events[18]['url'] = 'http://www.premiermarathons.com/event/Abu_Dhabi_Classics_Run_Beat_Beethoven_2010_Family_Walk';events[19] = new Object(); events[19]['title'] = 'Christmas Pursuit Race 2010';events[19]['date'] = '2010-12-11';events[19]['url'] = 'http://www.premiermarathons.com/event/Christmas_Pursuit_Race_2010';events[20] = new Object(); events[20]['title'] = 'Coast to Coast Group Ride';events[20]['date'] = '2010-11-26';events[20]['url'] = 'http://www.premiermarathons.com/event/Coast_to_Coast_Ride';events[21] = new Object(); events[21]['title'] = 'Coast to Coast Group Ride';events[21]['date'] = '2011-2-25';events[21]['url'] = 'http://www.premiermarathons.com/event/Coast_to_Coast';events[22] = new Object(); events[22]['title'] = 'Craig Alexander World Ironman Camp';events[22]['date'] = '2010-11-5';events[22]['url'] = 'http://www.premiermarathons.com/event/Craig_Alexander_World_Ironman_Camp';events[23] = new Object(); events[23]['title'] = 'Donut 2010';events[23]['date'] = '2010-11-19';events[23]['url'] = 'http://www.premiermarathons.com/event/Donut_2010';events[24] = new Object(); events[24]['title'] = 'Duathlon - April 2011';events[24]['date'] = '2011-4-15';events[24]['url'] = 'http://www.premiermarathons.com/event/Duathlon';events[25] = new Object(); events[25]['title'] = 'Dubai Autodrome 10K 2011';events[25]['date'] = '2011-3-18';events[25]['url'] = 'http://www.premiermarathons.com/event/Dubai_Autodrome_10K_2011';events[26] = new Object(); events[26]['title'] = 'Fry in a Tri Race 2 - August 2010';events[26]['date'] = '2010-8-6';events[26]['url'] = 'http://www.premiermarathons.com/event/Fry_in_a_Tri_Race_2_August_2010';events[27] = new Object(); events[27]['title'] = 'Iftar Challenge 2010';events[27]['date'] = '2010-9-15';events[27]['url'] = 'http://www.premiermarathons.com/event/Iftar_Challenge_2010';events[28] = new Object(); events[28]['title'] = 'Interclub Track Meet May 2011';events[28]['date'] = '2011-5-13';events[28]['url'] = 'http://www.premiermarathons.com/event/Interclub_Track_Meet_May_2011';events[29] = new Object(); events[29]['title'] = 'Johnson Arabia Dubai Creek Striders Half Marathon 2010';events[29]['date'] = '2010-12-10';events[29]['url'] = 'http://www.premiermarathons.com/event/Johnson_Arabia_Dubai_Creek_Striders_Half_Marathon_2010';events[30] = new Object(); events[30]['title'] = 'Lycian Challenge 2010, Turkey';events[30]['date'] = '2010-10-26';events[30]['url'] = 'http://www.premiermarathons.com/event/Lycian_Challenge_2010_Turkey';events[31] = new Object(); events[31]['title'] = 'Mountain Bike & Run 2011';events[31]['date'] = '2011-1-7';events[31]['url'] = 'http://www.premiermarathons.com/event/Mountain_Bike_Run_2011';events[32] = new Object(); events[32]['title'] = 'MSF Swim around the Burj Al Arab 2010';events[32]['date'] = '2010-11-12';events[32]['url'] = 'http://www.premiermarathons.com/event/MSF_Swim_around_the_Burj_Al_Arab_2010';events[33] = new Object(); events[33]['title'] = 'MSF Vertical Marathon - 2010';events[33]['date'] = '2010-5-28';events[33]['url'] = 'http://www.premiermarathons.com/event/MSF_Vertical_Marathon_2010';events[34] = new Object(); events[34]['title'] = 'Musandam Adventure Race 2011';events[34]['date'] = '2011-3-11';events[34]['url'] = 'http://www.premiermarathons.com/event/Musandam_Adventure_Race_2011';events[35] = new Object(); events[35]['title'] = 'Musandam Mountain Bike Race 2010';events[35]['date'] = '2010-12-17';events[35]['url'] = 'http://www.premiermarathons.com/event/Musandam_Mountain_Bike_Race_2010';events[36] = new Object(); events[36]['title'] = 'Muscat Asian Beach Games 2010 Triathlon';events[36]['date'] = '2010-12-16';events[36]['url'] = 'http://www.premiermarathons.com/event/Muscat_Asian_Beach_Games_2010_Triathlon';events[37] = new Object(); events[37]['title'] = 'RAK Half Marathon 2011';events[37]['date'] = '2011-2-18';events[37]['url'] = 'http://www.premiermarathons.com/event/RAK_Half_Marathon_2011';events[38] = new Object(); events[38]['title'] = 'RAK Half Marathon 2012';events[38]['date'] = '2012-2-17';events[38]['url'] = 'http://www.premiermarathons.com/event/RAK_Half_Marathon_2012';events[39] = new Object(); events[39]['title'] = 'RAK Terry Fox Run 2011';events[39]['date'] = '2011-3-4';events[39]['url'] = 'http://www.premiermarathons.com/event/RAK_Terry_Fox_Run_2011';events[40] = new Object(); events[40]['title'] = 'Spinneys Buildup Ride 2 (45km)';events[40]['date'] = '2010-9-24';events[40]['url'] = 'http://www.premiermarathons.com/event/Spinneys_Buildup_Ride_2_45km';events[41] = new Object(); events[41]['title'] = 'Spinneys Buildup Ride 3 (65km)';events[41]['date'] = '2010-10-29';events[41]['url'] = 'http://www.premiermarathons.com/event/Spinneys_Buildup_Ride_3_65km';events[42] = new Object(); events[42]['title'] = 'Spinneys Buildup Ride 4 (80km)';events[42]['date'] = '2010-11-26';events[42]['url'] = 'http://www.premiermarathons.com/event/Spinneys_Buildup_Ride_4_80km';events[43] = new Object(); events[43]['title'] = 'Standard Chartered Dubai Marathon 2011';events[43]['date'] = '2011-1-21';events[43]['url'] = 'http://www.premiermarathons.com/event/Standard_Chartered_Dubai_Marathon_2011';events[44] = new Object(); events[44]['title'] = 'Super Sports 4 & 8km - January 2011';events[44]['date'] = '2011-1-7';events[44]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_4_8km_January_2011';events[45] = new Object(); events[45]['title'] = 'Super Sports 4 & 8km - May 2011';events[45]['date'] = '2011-5-6';events[45]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_4_8km_May_2011';events[46] = new Object(); events[46]['title'] = 'Super Sports 4 & 8km - October 2010';events[46]['date'] = '2010-10-1';events[46]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_4_8km_October_2010';events[47] = new Object(); events[47]['title'] = 'Super Sports Aquathlon Series - April 2011';events[47]['date'] = '2011-4-22';events[47]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_Aquathlon_Series_April_2011';events[48] = new Object(); events[48]['title'] = 'Super Sports Aquathlon Series - February 2011';events[48]['date'] = '2011-2-25';events[48]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_Aquathlon_Series_February_2011';events[49] = new Object(); events[49]['title'] = 'Super Sports Aquathlon Series - November 2010';events[49]['date'] = '2010-11-5';events[49]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_Aquathlon_Series_20102011';events[50] = new Object(); events[50]['title'] = 'Super Sports Duathlon Series - April 2011';events[50]['date'] = '2011-4-29';events[50]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_Duathlon_Series_April_2011';events[51] = new Object(); events[51]['title'] = 'Super Sports Duathlon Series - March 2011';events[51]['date'] = '2011-3-4';events[51]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_Duathlon_Series_March_2011';events[52] = new Object(); events[52]['title'] = 'Super Sports Duathlon Series - November 2010';events[52]['date'] = '2010-11-12';events[52]['url'] = 'http://www.premiermarathons.com/event/Super_Sports_Duathlon_Series_20102011';events[53] = new Object(); events[53]['title'] = 'The 17th Creek Relay';events[53]['date'] = '2011-1-28';events[53]['url'] = 'http://www.premiermarathons.com/event/The_17th_Creek_Relay';events[54] = new Object(); events[54]['title'] = 'The Abu Dhabi Swimming Festival 2010';events[54]['date'] = '2010-10-16';events[54]['url'] = 'http://www.premiermarathons.com/event/The_Abu_Dhabi_Swimming_Festival_2010';events[55] = new Object(); events[55]['title'] = 'The Cheeky 2011';events[55]['date'] = '2011-4-8';events[55]['url'] = 'http://www.premiermarathons.com/event/The_Cheeky_2010';events[56] = new Object(); events[56]['title'] = 'The Dubai 92 km Cycle Challenge';events[56]['date'] = '2010-12-10';events[56]['url'] = 'http://www.premiermarathons.com/event/The_Dubai_92_km_Cycle_Challenge';events[57] = new Object(); events[57]['title'] = 'The Mafraq Cross Country 2011';events[57]['date'] = '2011-3-26';events[57]['url'] = 'http://www.premiermarathons.com/event/The_Mafraq_Cross_Country_';events[58] = new Object(); events[58]['title'] = 'UIPM Biathle World Championship Dubai 2010';events[58]['date'] = '2010-10-30';events[58]['url'] = 'http://www.premiermarathons.com/event/UIPM_Biathle_World_Championship_Dubai_2010';events[59] = new Object(); events[59]['title'] = 'Wadi Bih Run 2011';events[59]['date'] = '2011-2-11';events[59]['url'] = 'http://www.premiermarathons.com/event/Wadi_Bih_Run_2011';events[60] = new Object(); events[60]['title'] = 'Zoggs Mina Mile Series - March 2011';events[60]['date'] = '2011-3-18';events[60]['url'] = 'http://www.premiermarathons.com/event/Zoggs_Mina_Mile_Series_March_2011';events[61] = new Object(); events[61]['title'] = 'Zoggs Mina Mile Series - November 2010';events[61]['date'] = '2010-11-19';events[61]['url'] = 'http://www.premiermarathons.com/event/Zoggs_Mina_Mile_Series_20102011';
for (var ds in opt.dow)
$(target).append('' + opt.dow[ds] + '
');
var fd = new Date( new Date( opt.day.getTime() ).setDate(1) );
var ldlm = new Date( new Date( fd.getTime() ).setDate(0) );
var ld = new Date( new Date( new Date( fd.getTime() ).setMonth( fd.getMonth() + 1 ) ).setDate(0) );
var copt = {fd:fd.getDay(), lld:ldlm.getDate(), ld:ld.getDate()};
var offsetDayStart = ( ( copt.fd < opt.dayOffset ) ? ( opt.dayOffset - 7 ) : 1 );
var offsetDayEnd = ( ( ld.getDay() < opt.dayOffset ) ? ( 7 - ld.getDay() ) : ld.getDay() );
var i = 1;
var css_class = 'day';
var current_day = 0;
for ( var d = offsetDayStart, dE = ( copt.fd + copt.ld + ( 7 - offsetDayEnd ) ); d < dE; d++) {
if(d <= ( copt.fd - opt.dayOffset)) {
current_day = (copt.lld - ( ( copt.fd - opt.dayOffset ) - d )); current_month = fd.getMonth();}
else if(d > ( ( copt.fd - opt.dayOffset ) + copt.ld)) {
current_day = (d - ( ( copt.fd - opt.dayOffset ) + copt.ld)); current_month = fd.getMonth() + 2;}
else
{
current_day = ( d - ( copt.fd - opt.dayOffset)); current_month = fd.getMonth() + 1;}
current_year = fd.getFullYear();
current_date = current_year + '-' + current_month + '-' + current_day;
for (var j in events) {
if(typeof(events[j]) != 'undefined') {
if(current_date == events[j]['date']) {
css_class = 'dayevent'; break;
} else { css_class = 'day'; }
}
}
$(target).append(
(( d <= ( copt.fd - opt.dayOffset ) ) ?
'' + ( copt.lld - ( ( copt.fd - opt.dayOffset ) - d ) ) + '
'
: ( ( d > ( ( copt.fd - opt.dayOffset ) + copt.ld ) ) ?
'' + ( d - ( ( copt.fd - opt.dayOffset ) + copt.ld ) ) + '
'
: '' + ( d - ( copt.fd - opt.dayOffset ) ) + '
'
)
)
);
i++;
}
$(target).find('div[id^=' + opt.cID + 'd]:first, div[id^=' + opt.cID + 'd]:nth-child(7n+2)').before( '
' );
$(target).find('div[id^=' + opt.cID + 'd_]:not(.invday)').bind("mouseover mouseout click", function(e){
if ($('.jCalMask', opt._target).length > 0) return false;
var osDate = new Date ( $(this).attr('id').replace(/c[0-9]{1,}d_([0-9]{1,2})_([0-9]{1,2})_([0-9]{4})/, '$1/$2/$3') );
if (opt.forceWeek) osDate.setDate( osDate.getDate() + (opt.dayOffset - osDate.getDay()) );
var sDate = new Date ( osDate.getTime() );
if (e.type == 'click')
$('div[id*=d_]', opt._target).stop().removeClass('selectedDay').removeClass('overDay').css('backgroundColor', '');
for (var di = 0, ds = opt.days; di < ds; di++) {
var currDay = $(opt._target).find('#' + opt.cID + 'd_' + ( sDate.getMonth() + 1 ) + '_' + sDate.getDate() + '_' + sDate.getFullYear());
if ( currDay.length == 0 || $(currDay).hasClass('invday') ) break;
if ( e.type == 'mouseover' ) $(currDay).addClass('overDay');
else if ( e.type == 'mouseout' ) $(currDay).stop().removeClass('overDay').css('backgroundColor', '');
else if ( e.type == 'click' ) $(currDay).stop().addClass('selectedDay');
sDate.setDate( sDate.getDate() + 1 );
}
if (e.type == 'mouseover') {
opt.callback( osDate, di );
}
if (e.type == 'click') {
opt.day = osDate;
opt.callback( osDate, di );
$(opt._target).data('day', opt.day).data('days', di);
}
});
}
})(jQuery);