// This javascript file contains functions related to the AJAXyness 
// of the request a quote form and its functionality

var myGlobalHandlers = {
	onCreate: function(){
		Element.show('spinner');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			Element.hide('spinner');
		}
	}
};

Ajax.Responders.register(myGlobalHandlers);

function classificationSelect(value){
	var classifications = ["family", "adults &amp; couples", "wedding", "undecided"];
	// Hide other options
	for (var i=0; i < classifications.length; i++) {
		if (value != classifications[i]) {
			var classification_div = $(classifications[i]);
			//Effect.Fade(classification_div.id)
		};
	};
	
	if (value != 'undecided') {
		Element.toggle('refine_results');
		
		
		
		// Display and load resort chains and areas with selected 
		// type of resort
		var dest_params = "value="+escape(value);
	 	var destination_updater = new Ajax.Updater('destination_select', base_url + '/bin/find_destinations_by_classification.php', {method:"post", parameters:dest_params});

		var chain_params = "value="+escape(value);
		var chain_updater = new Ajax.Updater('resort_chain_select', base_url + '/bin/find_chains_by_classification.php', {method:'post', parameters:chain_params, onComplete:function(){new Effect.Highlight('refine_results',{duration:2})}});
		
	};	
	
}

function addResortToQuote(resort_id){
	// Remove placeholder text
	var current_resorts = $('current_resorts');
	var to_remove = current_resorts.getElementsByTagName("p");
	for (var i=0; i < to_remove.length; i++) {
		current_resorts.removeChild(to_remove[i]);
	};

	// Build unordered list element if necessary
	if (current_resorts.getElementsByTagName('table').length < 1) {
		var header = document.createElement("h3");
			var header_text = document.createTextNode("Request a Quote on These Resorts");
		var resorts = document.createElement("table");
			var thead = document.createElement("thead");
			
			var header_row = document.createElement("tr");
			
			var manage_th = document.createElement("th");
				manage_th.setAttribute("align", "center");
				manage_th.setAttribute("width", "1%");
				manage_th.className = "none";
			
			var name_th = document.createElement("th");
			var name_text = document.createTextNode("Resort Name");
				name_th.appendChild(name_text);
				
			var dest_th = document.createElement("th");
			var dest_text = document.createTextNode("Destination");
				dest_th.appendChild(dest_text);

			header_row.appendChild(manage_th);
			header_row.appendChild(name_th);
			header_row.appendChild(dest_th);
			
			header.appendChild(header_text);
			thead.appendChild(header_row);
			
			resorts.appendChild(thead);
				
		resorts.id = "list_of_resorts_for_quote";
		resorts.className = "resorts_for_quote";
		current_resorts.appendChild(header);		
		current_resorts.appendChild(resorts);
		Element.show('info_button');
	}else{
		Element.show('info_button');
		var resorts = $('list_of_resorts_for_quote');
	};
	
	// Use Ajax Updater to insert resort at the 'bottom'
	var params = "resort_id="+resort_id;
	new Ajax.Updater(resorts.id, base_url + '/bin/add_resort_to_quote.php', 
									 {
										method:"get", 
										parameters:params,
										insertion: Insertion.Bottom,
										onSuccess: function(){alert("Resort Added to Your Request")}
									 });
	return false;
}

function collectHiddenInputs () {
	var container = $('list_of_resorts_for_quote');
	var resorts = container.getElementsByTagName('tr');
	var form = $('resorts_for_quote_form');
	
	if (resorts.length < 1) {alert('Please select at least one resort');return false;};
	
	for (var i=0; i < resorts.length; i++) {
		var resort_id = resorts[i].id.replace("resort_for_quote_", "");
		var input = document.createElement('input');
		input.setAttribute('type', 'hidden');
		input.setAttribute('value', resort_id);
		input.setAttribute('name', 'resort['+resort_id+']');
		form.appendChild(input);
	};
	
	return true;
	
}

function removeResortFromQuote(resort_id){
	var resort_row = $('resort_for_quote_'+resort_id);
	new Element.toggle(resort_row.id);
	resort_row.parentNode.removeChild(resort_row);
	var params = 'resort_id=' + resort_id
	new Ajax.Request(base_url + '/bin/remove_resort_from_quote.php', {parameters:params})
}

function findOtherResorts(){
	var destination_id = $('destination_select_list').value;
	var chain_id = $('resort_chain_select_list').value;
	var result_box = $('result_list');
	var table = result_box.getElementsByTagName('table');
	if (table.length > 0) {
		result_box.removeChild(table[0]);
	};
	
	
	
	var params = 'destination_id='+destination_id+'&chain_id='+chain_id;
	new Ajax.Updater(result_box.id, base_url + '/bin/find_other_resorts.php', {method:'get', parameters:params});
	return false;
}