// require datarequestor

var calday_mark1 = '';
var calday_mark2 = '';

var cache_element = new Array();

var month_table = Array();
month_table[1] = 'Jan';
month_table[2] = 'Feb';
month_table[3] = 'Mar';
month_table[4] = 'Apr';
month_table[5] = 'May';
month_table[6] = 'Jun';
month_table[7] = 'Jul';
month_table[8] = 'Aug';
month_table[9] = 'Sep';
month_table[10] = 'Oct';
month_table[11] = 'Nov';
month_table[12] = 'Dec';

function change_tab(step) {
        document.cal.step_next.value = step;
        document.cal.submit();
        return false;
}


function daystamp_to_user(daystamp) {
	daystamp = String(daystamp);
	var m = Number(daystamp.substring(4,6));
	return daystamp.substring(6,8) + '-' + month_table[m] + '-' + daystamp.substring(0,4);
}

function cache_getelement_by_id(key) {
	if (typeof(cache_element[key]) != 'undefined') {
		return cache_element[key];
	}

	var obj = document.getElementById(key);
	if (obj) {
		cache_element[key] = obj;
	}
	return obj;
}

function calday_mark(stamp, t) {
	var obj = document.getElementById('daycal_circle_' + stamp);
	obj.className = 'calday_cell_' + t;
}

function calday_run_from_day_to_day(day_from, day_to, action) {
	var today = Number(day_from);
	day_to = Number(day_to);
	var last_ok = '';
	var days = '';

	for (i = 0; i < 1000 && today <= day_to; i++) {
		var y = Number(String(today).substring(0,4));
		var m = Number(String(today).substring(4,6));
		var d = Number(String(today).substring(6,8));

		var o = cache_getelement_by_id('calday_cell_' + today);
		var valid = o ? 1 : 0;
		var blocked = 0;
		if (o && o.getAttribute('blocked') > 0) blocked = 1;

		if (valid) {
			//alert('' + y + '-' + m + '-' + d + ' valid: ' + val);
			if (!blocked) {
				calday_mark(today, action);
				last_ok = today;
			} else {
				//return last_ok;
			}
		}
		// next
		today = today + 1;
		if (d == 32) { today = today - 32 + 100; }
		if (m == 13) { today = today - 1201 + 10000; }
	}
	//return last_ok;
	return day_to;
}

function calday_day_click(obj) {
	//if (!is_page_loaded) return;
	var daystamp = obj.getAttribute('daystamp');

	//calday_run_from_day_to_day('20060829', '20060908');
	//calday_run_from_day_to_day('20061229', '20070108');
	//return 0;

	//alert('a: ' + calday_mark1 + ' b:' + calday_mark2 + ' d: ' + daystamp);

	var f_from = document.getElementById('calday_select_from');
	var f_to   = document.getElementById('calday_select_to');
	var f_from_ = document.getElementById('_calday_select_from');
	var f_to_   = document.getElementById('_calday_select_to');

	if (calday_mark1 != '' && calday_mark2 != '') {
		// remove all selected days
		calday_run_from_day_to_day(calday_mark1, calday_mark2, 'none');
		calday_mark1 = '';
		calday_mark2 = '';

		if (f_from ) f_from .value = '';	
		if (f_to   ) f_to   .value = '';	
		if (f_from_) f_from_.value = '';	
		if (f_to_  ) f_to_  .value = '';	
	} 
	if (calday_mark1 != '' && calday_mark2 == '' && Number(daystamp) < Number(calday_mark1)) {
		// treat as first click
		calday_run_from_day_to_day(calday_mark1, calday_mark1, 'none');
		calday_mark1 = '';

		if (f_from ) f_from .value = '';	
		if (f_from_) f_from_.value = '';	
	}

	if (calday_mark1 == '' && calday_mark2 == '') {
		var last_ok = calday_run_from_day_to_day(daystamp, daystamp, 'circle');
		if (last_ok != '') {
			calday_mark1 = daystamp;
			if (f_from ) f_from .value = daystamp;	
			if (f_from_) f_from_.value = daystamp_to_user(daystamp);	
		}
	}
	else if (calday_mark1 != '' && calday_mark2 == '') {
		if (Number(daystamp) == Number(calday_mark1)) {
			calday_run_from_day_to_day(calday_mark1, calday_mark1, 'none');
			calday_mark1 = '';
			if (f_from ) f_from .value = '';	
			if (f_from_) f_from_.value = '';
		} else {
			var last_ok = calday_run_from_day_to_day(calday_mark1, daystamp, 'circle');
			if (last_ok != '') {
				calday_mark2 = last_ok;
				if (f_to ) f_to .value = last_ok;
				if (f_to_) f_to_.value = daystamp_to_user(last_ok);
			}
		}
	}
	//alert(daystamp);
}

var calday_popup = null;
var calday_popup_req = new DataRequestor();
var calday_popup_x = 0;
var calday_popup_y = 0;

function calday_day_popup(obj, e) {
	if (!obj) return false;
	if (!e) e = window.event;
	if (calday_popup != null) return false;

	calday_popup = 1;

	var blocked = obj.getAttribute('blocked');
	var daystamp = obj.getAttribute('daystamp');

	if (blocked > 0) {
		if (document.all) { // IE
			calday_popup_x = e.clientX + document.body.scrollLeft;
			calday_popup_y = e.clientY + document.body.scrollTop;
		}
		else {
			calday_popup_x = e.pageX;
			calday_popup_y = e.pageY;
		}

		//alert('x y ' + calday_popup_x + ' ' + calday_popup_y);

		if (calday_popup_req == null) {
			calday_popup_req = new DataRequestor();
		}
		calday_popup_req.setObjToReplace('popup_div');
		calday_popup_req.onreplace = calday_popup_onreplace;
		calday_popup_req.addArg(_POST, 'caltype', 'daily');
		calday_popup_req.addArg(_POST, "day", daystamp);
		calday_popup_req.addArg(_POST, 'property_id', document.cal.calday_property_id.value);
		calday_popup_req.getURL('/vnetBoffice/rental-booking/CalendarPopup.html');

	}
	return false;
}

function calgeneral_popup(property_id, caltype, obj, e) {
	if (!obj) return false;
	if (!e) e = window.event;
	if (calday_popup != null) return false;


	calday_popup = 1;

	var blocked = obj.getAttribute('blocked');
	var daystamp = obj.getAttribute('daystamp');

	if (blocked > 0) {
		if (document.all) { // IE
			calday_popup_x = e.clientX + document.body.scrollLeft;
			calday_popup_y = e.clientY + document.body.scrollTop;
		}
		else {
			calday_popup_x = e.pageX;
			calday_popup_y = e.pageY;
		}


		//alert('x y ' + calday_popup_x + ' ' + calday_popup_y);

		if (calday_popup_req == null) {
			calday_popup_req = new DataRequestor();
		}
		calday_popup_req.setObjToReplace('popup_div');
		calday_popup_req.onreplace = calday_popup_onreplace;
		calday_popup_req.addArg(_POST, 'caltype', caltype);
		calday_popup_req.addArg(_POST, "day", daystamp);
		calday_popup_req.addArg(_POST, 'property_id', property_id);
		calday_popup_req.addArg(_POST, 'calgeneral', 1);
		calday_popup_req.addArg(_POST, 'testmode', 1);

		calday_popup_req.getURL('/vnetBoffice/rental-booking/CalendarPopup.html');

	}
	return false;
}

function calday_day_unblock(property_id,id) {
	var req = new DataRequestor();
	req.addArg(_POST, 'property_id', property_id);
	req.addArg(_POST, 'id', id);
	req.getURL('/vnetBoffice/rental-booking/UnBlock.html');

	req.onload = function (data, obj) {
		document.cal.submit();
	}

}

function calday_goto_res(id) {
	var url = '/vnetBoffice/rental-booking/booking/reservation' + id + '.html';

	tt = window.open(url, 'res', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=800,height=600');
}

function calday_popup_onreplace(data, obj) {
	setTimeout('calday_popup_onreplace_real()', 600);
}

function calday_popup_onreplace_real() {
	var d1 = document.getElementById('popup_div');
	var d = document.getElementById('popup_div_content');

	if (!d1 ) { alert('not d1'); }
	if (!d) { alert('not d'); }
	if (!d1 || !d) { alert('not'); }

	d1.style.display = '';

	var x = calday_popup_x - 15;
	var y = calday_popup_y - d.clientHeight;

	//alert('x: ' + x + ', y: ' + y  + ', clientHeight: ' + d.clientHeight);

	d1.style.left = '' + x + 'px';
	d1.style.top  = '' + y + 'px';

}


function calday_popup_close() {
	var d1 = document.getElementById('popup_div');
	d1.innerHTML = '';
	d1.style.display = 'none';
	//d1.style.left = 0;
	//d1.style.top = 0;
	//d1.style.width = 0;
	//d1.style.height = 0;
	//d1.innerHTML = '';

	calday_popup = null;
	//calday_popup_req = null;
	calday_popup_x = 0;
	calday_popup_y = 0;

	//alert('closed');
}


function calday_action_add() {
	var f_from = document.getElementById('calday_select_from');
	var f_to   = document.getElementById('calday_select_to');

	if (!f_from) return false;
	if (!f_to) return false;

	if (f_from.value != '' && f_to.value == '') {
		f_to.value = f_from.value;
	}

	if (f_from.value == '' || f_to.value == '') {
		return false;
	}

	if (document.cal) {
		document.cal.calday_action.value = 'add2';
		document.cal.submit();
		return false;
	}
	if (document.searchFormCal) {
		document.searchFormCal.calday_action.value = 'add2';
		document.searchFormCal.submit();
		return false;
	}

	return false;
}

function calday_change_year(year) {
	document.cal.calday_year.value = year;
	document.cal.calday_to_year.value = year;
	document.cal.calday_month.value = 1;
	document.cal.calday_to_month.value = 12;

	document.cal.submit();

	return false;
}

function calday_change_year_book(year) {
	var f = document.searchForm;
	if (!f || !f.calday_year) f = document.searchFormCal;
	if (!f) return false;

	f.calday_year.value = year;
	f.calday_to_year.value = year;
	f.calday_month.value = 1;
	f.calday_to_month.value = 12;

	if (f.searchFormSubmit) {
		f.searchFormSubmit.click();
	} else {
		f.submit();
	}
	return false;
}

function calday_onload() {
	var el = document.getElementById('calday_table');
	el.onselectstart = function () { return false; } // ie
	el.onmousedown = function () { return false; } // mozilla
}

var is_page_loaded = 0;


function calday_check_submit(obj, msg) {
	var o = document.getElementById('calday_select_to');
	if (!o) {
		return true;
	}

	if (o.value != '') {
		alert(msg);
		return false;
	}
	return true;
}
