// THIS FILE CONTAINS JS FUNCTIONALITY FOR THE /TRAVEL_BROCHURES SECTION OF THE SITE

// REGISTER ONCLICK EVENTS FOR THE REQUEST BROCHURE LINKS IF WE ARE ON THE BROCHURE LISTING PAGE
function onload_travel_brochures(){
	// SET UP THE LINKS FOR THE REQUEST BROCHURE LINKS
	$$('a.brochure_order_link').each(function(item,index){
		item.addEvent('click',function(event){
			event.preventDefault();
			// IF THE REQUEST BROCHURE LINK HAS A CLASS OF DISABLED, DO NOTHING
			if(!this.hasClass("disabled")) {
				// MAKE SURE THE REQUEST BROCHURE CHECK BOX NEXT TO THE LINK THAT WAS CLICKED IS CHECKED
				this.getParent("li").getChildren("input")[0].set("checked",true); 
				// SUBMIT THE FORM
				submit_brochure_order();
			}
		});
	});
	
	// SET UP THE ONCLICK FOR THE REQUEST BROCHURE COMMAND BUTTON
	var brochure_request_submit_button = $('brochure_request_submit_button');
	if($chk(brochure_request_submit_button)){
		brochure_request_submit_button.addEvent('click',function(event){
			event.preventDefault();
			submit_brochure_order();
		});
	}
	
	// SET UP AN ONCLICK EVENT FOR THE BROCHURES THAT ARE LIMITED TO 3
	$$('input[name=brid_list]').each(function(item,index){
		item.addEvent("click",function(){
			limit_to_three_brochures();
		});
	});
	// THIS HAS BEEN ADDED TO THE DOMREADY SO THAT WHEN THE USER CLICKS THE BACK BUTTON
	// THE CHECKBOXES AND REQUEST BROCHURE LINKS WILL HAVE AN ACCURATE STATE
	limit_to_three_brochures();
}

function limit_to_three_brochures(){
	// FIRST DETERMINE IF THIS IS A CLIENT OR AN AGENT
	var isAgent = ($('isAgent')) ? $('isAgent').get('value') : 0;
	
	if(isAgent != 1){
		// GET THE CHECKBOXES FOR THE BROCHURES THAT ARE LIMITED TO 3
		var limited_brochures = $$('input[name=brid_list]');
		
		// WE HAVE 2 DIFFERENT FIELDS NAMED BRID_LIST: THE CHECKBOXES ON THE LIST PAGE AND A HIDDEN FIELD ON THE 
		// BROCHURE ORDER FORM. WE DON'T NEED TO WORRY ABOUT A MAX OF 3 ON THE BROCHURE ORDER FORM.
		if(limited_brochures.get('type') == 'hidden'){
			return false;
		}
		
		// GET AN ARRAY OF BROCHURES THAT HAVE BEEN CHECKED
		var brochureList = limited_brochures.filter(function(item,index){
			return item.get('checked');
		});
		
		// IF THERE ARE MORE THAN 2 BROCHRES SELECTED, DISABLE THE OTHERS
		if(brochureList.length > 2){
			// FIRST DISABLE EVERYTHING
			limited_brochures.each(function(item,index){
				item.set('disabled',true);
				item.getParent("li").getChildren("a")[0].addClass("disabled");
			});
			// THEN ENABLE THE CHECKED ONES SO YOU CAN UNCHECK THEM IF YOU WANT
			brochureList.each(function(item,index){
				item.set('disabled',false);
				item.getParent("li").getChildren("a")[0].removeClass("disabled");
			});
		} else {
			// IF LESS THAN 2 ARE CHECKED MAKE SURE EVERYTHING IS AVAILABLE. THIS COULD BE BECAUSE
			// THEY HAD 3 CHECKED AND THEN THEN UNCHECKED ONE, SO THIS IS IMPORTANT
			limited_brochures.each(function(item,index){
				item.set('disabled',false);
				item.getParent("li").getChildren("a")[0].removeClass("disabled");
			});
		}
	}
}

function submit_brochure_order(){
	var valid = true;
	var orderForm = $('dsp_brochure_order') || null;
	var isAgent = ($('isAgent')) ? $('isAgent').get('value') : 0;
	
	// GET AN ARRAY OF BROCHURES THAT HAVE BEEN CHECKED
	var brochureList = $$('input[name=brid_list]').filter(function(item,index){
		return item.get('checked');
	});
	
	// GET AN ARRAY OF BROCHURES THAT HAVE BEEN CHECKED, BUT DON'T COUNT TOWARDS THE MAX OF 3
	var brochureOverrideList = $$('input[name=brid_list_override]').filter(function(item,index){
		return item.get('checked');
	});
	
	// IF THE FORM EXISTS AND WE ARE NOT DEALING WITH AN AGENT, ONLY ALLOW 3 BROCHURES TO BE REQUESTED
	if($defined(orderForm) && isAgent != 1){
		if(brochureList.length > 3){
			valid = false;
			alert('You may select up to 3 brochures.');
		} else if(brochureList.length == 0 && brochureOverrideList.length == 0){
			valid = false;
			alert('Please select up to 3 brochures.')
		}
	} else if(brochureList.length == 0 && brochureOverrideList.length == 0){
		valid = false;
		alert('Please select at least 1 brochure.')
	}
	
	// SUBMIT THE FORM IF A VALID NUMBER OF BROCHURES HAS BEEN SELECTED
	if(valid){
		orderForm.submit();
	}
}