function $ (element) 
{
	return document.getElementById(element);
}
function seed () {
	return Math.floor(Math.random()*10000000000);
}

var last_field;
var loading = '<img src="/images/action/loading.gif" alt="Loading..." />';

/*

	times are out by 1 day when editing a current event
	
	times are NaN in IE
	
*/

function ShowCalendarOnclick(sender, day, fieldName)
{
	// remember what the last field was so we can use it later
	last_field = fieldName;
	// check for finish button, if so, set invalid_before_date to the day of start date
	
	var invalid_before = 0;
	invalid_before = $('valid_date').value;
	
	//alert(sender.offsetHeight);
	
	new Ajax.Request('/inc/ajax/calendar_ajax.php', {
		method: 'get',
		parameters: {
			action: 'get_cal_popup',
			date: $(fieldName).value,
			field: fieldName,
			invalid_before: invalid_before
		},
		onSuccess: function (r) {
			
			var cal = $("div_cal");
			cal.innerHTML = r.responseText;
			//cal.innerHTML = "hello";
			cal.style.display = "block";
			var pos = xy(sender);
			cal.style.top = pos[1] + sender.offsetHeight +"px";
			cal.style.left = pos[0]+"px";
		}
	});
}
function update_calendar (sender)
{
	//alert(pad(parseInt($('cal_month').value)+1, 2)+"-"+$('cal_year').value);
	var month = pad(parseInt($('cal_month').value)+1, 2);
	var year = $('cal_year').value;
	// check for finish button, if so, set invalid_before_date to the day of start date
	var invalid_before = 0;
	if (last_field == "end_date") {
		invalid_before = $('start_date').value;
	}
	
	new Ajax.Request('/inc/ajax/calendar_ajax.php', {
		method: 'get',
		parameters: {
			action: 'get_cal_popup',
			date: '01-'+month+'-'+year,
			seeding: seed(),
			field: last_field,
			invalid_before: invalid_before
		},
		onSuccess: function (r) {
			var cal = $("div_cal");
			cal.innerHTML = r.responseText;
		}
	});	
}
function SelectDate(sender, day, fieldName)
{
	//alert(sender+"\nd-"+day+"\nf-"+fieldName);
	//return false;
	
	var date = day.split('-');
	var d = date[0];
	var m = date[1];
	var y = date[2];
	//$(fieldName).value = pad(d)+"-"+pad(m)+"-"+y;
	//display_date_from_hidden("display_"+fieldName, fieldName);
	$("div_cal").style.display = "none";
	
	// todo update_day_count();
	
	new Ajax.Request('/inc/ajax/calendar_ajax.php', {
		method: 'get',
		parameters: {
			action: 'updateCalendarInfo',
			date: day
		},
		onSuccess: function (r) {
			//var cal = $("div_cal");
			$("availablilty_list").innerHTML = r.responseText;
		}
	});	

}
function display_date_from_hidden (display, hidden) {
	if ($(hidden).value == "") {
		$(display).innerHTML = "";
		return;
	}
	
	var days = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
	var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")

	var date = $(hidden).value.split('-');
	
	var d = date[0];
	var m = parseInt(date[1], 10)-1;
	var y = date[2];
	
	var date = new Date(); //months[m]+" "+d+", "+y);
	date.setFullYear(y);
	date.setMonth(m, d);
	//$(display).innerHTML = days[(date.getDay()+11)%7]+" "+date.getDate()+" "+months[(date.getMonth()+11)%12]+", "+date.getFullYear();
	$(display).innerHTML = days[date.getDay()]+" "+date.getDate()+" "+months[date.getMonth()]+" "+date.getFullYear();
}
function count_days_between (start, end) {
	start = $(start).value;
	end = $(end).value;
	
	return date_2_days(end) - date_2_days(start);	
}
function date_2_days (date) {
	var ONE_DAY = 1000 * 60 * 60 * 24;
	
	date = date.split('-');
	var d = date[0];
	var m = parseInt(date[1])-1;
	var y = date[2];
	
	var date = new Date(y, m, d);
	
	date = date.getTime();
	
	return Math.round(date / ONE_DAY);
}
function update_day_count () {
	
	var days = 1+count_days_between('start_date', 'end_date');
	if (days < 1) {
		$('end_date').value = $('start_date').value;
		display_date_from_hidden('display_end_date', 'end_date');
		days = 1;
	}
	$('number_of_days').value = days;
	$("display_number_of_days").innerHTML = days;
}

function close_calendar () {
	$("div_cal").style.display = "none";
}

function deleteCalendarOnclick(sender)
{
	var agree=confirm("Are you sure you want to delete this Event");
	if (agree)
		return true ;
	else
		return false ;
}

function btn_date_onclick (sender)
{	
	switch (sender.getAttribute("name"))
	{
		case "btn_date":
			var cal = new CalendarPopup("popup_calendar");
			var callback = "setDateDisplay";
			var date = $("start_date");
			break;
	}
	cal.showNavigationDropdowns();
	cal.setReturnFunction(callback);
	cal.select(date,'btn-date','dd-MM-YYYY'); 	
	return false;
	}
	function pad (number, length)
	{
		var n = ""+number;
		var len = (typeof(length) != "undefined") ? length : 2;
		
		return (n.length >= len) ? n : pad("0"+n, length);
	}
	function setDateDisplay (y, m, d) {	
		g("date").value = y+"-"+pad(m)+"-"+pad(d);
		//alert(y+"/"+m+"/"+d);
		var days = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
		var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
	
		var date = new Date(y, m, d, 0, 0, 0, 0);
		g("date_display").innerHTML = days[(date.getDay()+11)%7]+" "+date.getDate()+" "+months[(date.getMonth()+11)%12]+", "+date.getFullYear();
}
