var utilities = new Object();

//-------------------------------
//function to start the counter
//-------------------------------
utilities.startCounter = function(){
	if($('#countdownTimeDays').get(0)!=null){
		setInterval("utilities.updateCounter()", 1000);
	} 
}

utilities.updateCounter = function(){
	//get the different values
	var days = parseInt($('#countdownTimeDays').get(0).innerHTML, 10);
	var hours = parseInt($('#countdownTimeHours').get(0).innerHTML, 10);
	var minutes = parseInt($('#countdownTimeMinutes').get(0).innerHTML, 10);
	var seconds = parseInt($('#countdownTimeSeconds').get(0).innerHTML, 10);
	
	//get the new values
	seconds --;
	if(seconds==-1){
		minutes --;
		seconds = 59;
	}
	if(minutes==-1){
		hours --;
		minutes = 59;
	}
	
	if(hours==-1){
		days --;
		hours = 23;
	}
	
	//update
	$('#countdownTimeDays').get(0).innerHTML 		= (days<10)?'0'+days:days;
	$('#countdownTimeHours').get(0).innerHTML		= (hours<10)?'0'+hours:hours;
	$('#countdownTimeMinutes').get(0).innerHTML		= (minutes<10)?'0'+minutes:minutes;
	$('#countdownTimeSeconds').get(0).innerHTML		= (seconds<10)?'0'+seconds:seconds;	
	
}


// ---------------------------
// configure calendar events
// ---------------------------
utilities.handleCalendar = function(){
    //load calendar
    utilities.loadCalendar();
    //init the calendar status
}

// ---------------------------
// load the current calendar 
// ---------------------------
utilities.loadCalendar = function(){
	var today = URLParamDate?URLParamDate:searchToday;
	var initDate = new Date(today.substr(0,4), today.substr(4,2)-1, today.substr(6,2));
	Calendar.setup(
	  {
	  	date		 	: initDate,
		dateStatusFunc 	: dateStatusHandler,
	    weekNumbers  	: false,	
	    electric     	: false,
	    showOthers   	: false,
	    firstDay 	 	: 0, 
	    flat         	: "calendarWrapper", // ID of the parent element
	    flatCallback 	: dateChanged
	  }
	);
}




// ----------------------------------------------
// move content from one source to one target
// ----------------------------------------------
function moveContent(from, to, del){
	//move the results
	var source = $(from);
	var target = $(to);
	if(source!=null && target!=null){
	    target.innerHTML = source.innerHTML;
	}
	
	if(del!=null && del==1){
	   source.innerHTML = '';
	}
}



// ----------------------------------------------
// calendar functions
// ----------------------------------------------

function callDateURL(date){
    document.location=document.location 
        + '&dateFrom='+date;
}

function dateChanged(calendar) {
  if (calendar.dateClicked) {
    // OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
    var y = calendar.date.getFullYear();
    var m = calendar.date.getMonth()+1;     // integer, 0..11
    var d = calendar.date.getDate();      // integer, 1..31
	
	callDateURL(''+y+(m<10?'0'+m:m)+(d<10?'0'+d:d)+'0000');
  }
};

function dateStatusHandler(date){
    var y = date.getFullYear();
    var m = date.getMonth()+1;     // integer, 0..11
    var d = date.getDate();      // integer, 1..31

	var currDate = ''+y+(m<10?'0'+m:m)+(d<10?'0'+d:d)+'0000';

	//today is allways active
	if(searchToday == currDate){
		return false;
	}else if(availableDates!=null && availableDates[currDate]!=null){
		return 'hasData';
	}
	
	return true;
}


// -------------------------------------


//set needed events
//start the counter
$(document).ready(utilities.startCounter);
$(document).ready(Slddm.init);
$(document).ready(utilities.handleCalendar);


