(function(){
	
var frmId = 'avl-frm',
	addFrmId = 'exc-add-frm',
	avlAct = "avl-search",
	avlBox = "avl-results",
	excAdd = "exc-add",
	bkAct = "exc-cart";

function avlHnd() {
	if ( !ajax.checkXMLResult(avlAct, true) ) {
		ajax.checkResult(avlAct);
		return;
	}
	var xmlDoc = ajax.getXML(avlAct);

	Event.purgeElement($(avlBox));
	$(avlBox).innerHTML = dom.xmlText(xmlDoc);
	Behavior.apply($(avlBox));
	dom.fadeInOut('step-2','step-1');
}

function addServiceHnd() {
	if ( ajax.checkXMLResult(bkAct, true ) ) {
		nav("cart.cfm");
	} else {
		ajax.checkXMLResult(bkAct);
	}
}

function selHnd(exc_name, status, sp_code, total) {
	var frm = document.forms[addFrmId];
	$('exc-name').innerHTML = exc_name;
	frm.sp_code.value = sp_code;
	frm.status.value = status;
	frm.price.value = total;
}

page = {

	init: function() {
		if ( isset(app.uri.queryKey.quick) ) {
			page.avl(document.forms[frmId]);
		}
	},

	avl: function(frm) {
		if ( !hasValue(frm.exc_date) ) {
			return form.error("Please type or select excursion date.", frm.exc_date);
		} else if ( app.today.dayDiff(getValue(frm.exc_date).toDate()) < 1 ) {
			return form.error("Please select a date after " + app.today.format(), frm.exc_date);
		}
		if ( !hasValue(frm.zone_id) ) {
			return form.error("Please select departure location.", frm.zone_id);
		}
		if ( parseInt(getValue(frm.adults), 10) + parseInt(getValue(frm.children), 10) + parseInt(getValue(frm.infants), 10) === 0 ) {
			return form.error("At least one passenger must be specified.", frm.adults);
		}

		ajax.queue(avlHnd, avlAct);
		ajax.post(frm);
		ajax.loadXML(frm.action, avlAct, "Searching for available excursion.");
		return false;
	},
	
	back: function() {
		dom.fadeInOut('step-1','step-2');
	},

	sel: function(exc_code, exc_name, status, sp_code, total) {
		ajax.post(document.forms[frmId]);
		ajax.queue(selHnd.callback(exc_name, status, sp_code, total), excAdd);
		ajax.load('exc/exc_avl.cfm?action=add&exc_code='+exc_code, excAdd, "Loading excursion pickup selection form.");
	},

	addService: function(frm) {
		ajax.post(frm);
		ajax.queue(addServiceHnd, bkAct);
		ajax.loadXML("bookings/add_service.cfm", bkAct, "Adding excursion to shopping cart.");
		return false;
	},
	
	showDetails: function(exc_code) {
		ajax.load("exc/exc_avl.cfm?action=showDetails&exc_code=" + exc_code, "null_action", "loading desciption");
		return false;
	},
	
	showPhotos: function(exc_code) {
		ajax.load("exc/exc_avl.cfm?action=showPhotos&exc_code=" + exc_code, "null_action", "loading photos");
		return false;
	},
	
	showSchedule: function(exc_code) {
		ajax.load("exc/exc_avl.cfm?action=showSchedule&exc_code=" + exc_code, "null_action", "loading Schedule");
		return false;
	}

};

})();

function showDetailedPricing(caller,id) {
	dom[$(id).style.display == 'none' ? "show" : "hide"](id);
	caller.innerHTML = $(id).style.display == 'block' ? "Hide Detailed pricing" : "Show Detailed pricing";
}