// Author: Mr. Jean @ Wax! Interactive
// Location: www.wax.be
// License: Internal usage only, ask for permission!
//
// v 1.0    - Friday, September 4, 2009
//          - First version
//
// v 1.1	- Thursday, January 21, 2010
//			- Added ability to assign different classes to each day
//
// Description:
// ============
// Extends the jQuery datepicker with the jTip.
//
//
//	Example:
//  ========
//	WAX.fuseJTipDatepicker({
//		arrEvents		:	eval($('#events').html()),
//		classIsEvent	:	null,
//		idEventPrefix	:	null,
//		jTipWidth		:	null
//	});

if (!WAX) { var WAX = new Object() }

WAX = {
    arrEvents                       :   Array(),
	classIsEvent					:	'event',
	idEventPrefix					:	'event',
	jTipWidth						:	'250',
	minDateVal						:	'-3Y',
	maxDateVal						:	'+10Y',
	monthNamesVal					:	['Januari','Februari','Maart','April','Mei','Juni','Juli','Augustus','September','Oktober','November','December'],
	monthNamesShortVal				:	['Jan','Feb','Mrt','Apr','Mei','Jun','Jul','Aug','Sep','Okt','Nov','Dec'],
	dayNamesVal						:	['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'],
	dayNamesShortVal				:	['Zo','Ma','Di','Woe','Do','Vr','Za'],
	dayNamesMinVal					:	['Zo','Ma','Di','Wo','Do','Vr','Za'],
	fuseJTipDatepicker              :   function(objData) {
        WAX.arrEvents = objData.arrEvents;
		if(objData.classIsEvent!=null) 			WAX.classIsEvent = objData.classIsEvent;
		if(objData.idEventPrefix!=null)			WAX.idEventPrefix = objData.idEventPrefix;
		if(objData.jTipWidth!=null)				WAX.jTipWidth = objData.jTipWidth;
		if(objData.minDateVal!=null)			WAX.minDateVal = objData.minDateVal;
		if(objData.maxDateVal!=null)			WAX.maxDateVal = objData.maxDateVal;
		if(objData.monthNamesVal!=null)			WAX.monthNamesVal = objData.monthNamesVal;
		if(objData.monthNamesShortVal!=null)	WAX.monthNamesShortVal = objData.monthNamesShortVal;
		if(objData.dayNamesVal!=null)			WAX.dayNamesVal = objData.dayNamesVal;
		if(objData.dayNamesShortVal!=null)		WAX.dayNamesShortVal = objData.dayNamesShortVal;
		if(objData.dayNamesMinVal!=null)		WAX.dayNamesMinVal = objData.dayNamesMinVal;
		WAX.executeDatepicker();
    },
	loadLinkage						:	function() {
		$("td."+WAX.classIsEvent+" a").bind('click',function(){
			window.location=this.href;
		});
	},
	extendFunctions					:	function() {
		$("td."+WAX.classIsEvent+" a").attr("rel", function (arr) {
			var id = this.parentNode.id.split(" ");
			var shortId = id[0].toString().replace("event","");
			$(this).addClass('jTip');
			$(this).attr({id:'jtip'+id[0]});
			$(this).attr({href:$('#link_'+id[0]).text()});
			$.each(WAX.arrEvents, function(arrIndex,arrItem) {
				if(arrItem[3] == shortId) {
					if(arrItem[4]) {
						$('#jtip'+id[0]).addClass(arrItem[4]);
					}
				}
			});
			return '#overlay_'+WAX.idEventPrefix+id[0];
		});
		JT_init(WAX.jTipWidth);
	},
	executeDatepicker				:	function() {
		var childrenDatepicker = $($('#events_calendar').parent().get(0)).children();
		var originalEventContent = $(childrenDatepicker[0]).text();
		$('#events_calendar').datepicker({
			minDate: WAX.minDateVal,
			maxDate: WAX.maxDateVal,
			monthNames: WAX.monthNamesVal,
			monthNamesShort: WAX.monthNamesShortVal,
			dayNames: WAX.dayNamesVal,
			dayNamesShort: WAX.dayNamesShortVal,
			dayNamesMin: WAX.dayNamesMinVal,
			dayStatus: 'DD',
			dateStatus: 'D, M d',
			dateFormat: 'dd.mm.yy',
			firstDay: 1,
			beforeShowDay: function(date) {
				for (i = 0; i < WAX.arrEvents.length; i++) {
				  if (date.getMonth() == WAX.arrEvents[i][0] - 1 && date.getDate() == WAX.arrEvents[i][1] && date.getFullYear() == WAX.arrEvents[i][2]) {
					return [true, WAX.classIsEvent +'" id="'+WAX.idEventPrefix+WAX.arrEvents[i][3]];
				  }
				}
			  return [false, ''];
			},
			onChangeMonthYear: function(date,month) {
				$(childrenDatepicker[0]).html(originalEventContent+'<span class="red">'+WAX.monthNamesVal[month-1]+'<\/span>');
				Cufon.replace($(childrenDatepicker[0]));
				setTimeout(function(){
					WAX.loadLinkage();
					WAX.extendFunctions();
				},200);
			}
		});	
	},
	
		
	province_selected	:	'',

	highLightProvince	:	function(province) {
				
				switch (province) {
					case 'westvlaanderen':
					$('#Map').css({'background-position':'-297px 0px'});
					break;
					case 'oostvlaanderen':
					$('#Map').css({'background-position':'-594px 0px'});
					break;
					case 'antwerpen':
					$('#Map').css({'background-position':'0px -250px'});
					break;
					case 'limburg':
					$('#Map').css({'background-position':'-297px -250px'});
					break;
					case 'vlaamsbrabant':
					$('#Map').css({'background-position':'-594px -250px'});
					break;
					case 'brussel':
					$('#Map').css({'background-position':'0px -500px'});
					break;
					case 'waalsbrabant':
					$('#Map').css({'background-position':'-297px -500px'});
					break;
					case 'henegouwen':
					$('#Map').css({'background-position':'-594px -500px'});
					break;
					case 'namen':
					$('#Map').css({'background-position':'0px -750px'});
					break;
					case 'luxemburg':
					$('#Map').css({'background-position':'-297px -750px'});
					break;
					case 'luik':
					$('#Map').css({'background-position':'-594px -750px'});
					break;
					default:
					$('#Map').css({'background-position':'0px 0px'});
				}
	},
			
	goBelgium : function(objData) {
	
		if(objData.province_selected!=null)	WAX.province_selected = objData.province_selected;
		
		// set map and box via php var
		WAX.highLightProvince(WAX.province_selected);
		$("#event_province").val(WAX.province_selected);
		
		// animate map
		$("#Map area").bind('click',function(){
			WAX.province_selected = $(this).attr("id");
			$("#event_province").val(WAX.province_selected);
			WAX.highLightProvince(WAX.province_selected);
		});
		
		$("#event_province").bind('change',function (){
			WAX.province_selected = $("#event_province").val();
			WAX.highLightProvince(WAX.province_selected);
		});
		
		$("#Map area").bind('mouseover',function(){
			WAX.highLightProvince($(this).attr("id"));
		});
			
		$("#Map area").bind('mouseout',function(){
			WAX.highLightProvince(WAX.province_selected);	
		});
	}
}
