// onload.js - attachment of event listeners at page load (window.onload())

var countrySwitch = {	
		
		toggleCountry: function(element,focusBOOL) {
			var focusBOOL = (focusBOOL == null) ? false : focusBOOL;

			var div_id = element.name + "_text";
			var input_id = element.name + "_input"
			
			if(element.value == "Other" && div_id != "") {			
				//show text box										
				Element.show(div_id);	
				
				//focus on other country text box
				if(focusBOOL == true) {									
					document.getElementById(input_id).focus();
					document.getElementById(input_id).value = "";
				}
					
			} else if(div_id != "") {			
				//hide text box										
				Element.hide(div_id);	
			}
		},
		
		init: function() {	
			
			
			if(!document.getElementsByTagName)		
				return;	
	
			var all_selects = document.getElementsByTagName('select');			
			
			//alert('Selects found => ' + all_selects.length);
			
			for(var i = 0; i < all_selects.length; i++) 
			{				
				var current_select = all_selects[i];	
				
				
				if(current_select.name.search(/Country/) != -1)		
				{					
					//toggle country
					countrySwitch.toggleCountry(current_select);

					//add event handler
					addEvent(current_select,'change',countrySwitch.changeCountry,false);
					addEvent(current_select,'change',subTotal.changeTotal,false);
				}
			}	
		},

		changeCountry: function(e) {			
			//alert('Changing country');
			var focusBOOL = true;
			var local_target = findTarget(e);	
			
			countrySwitch.toggleCountry(local_target, focusBOOL);			
		}	
		
			
}

var altShipping = {
			
	init: function() {		
		
		if(!document.getElementsByTagName)		
			return;	

		var all_inputs = document.getElementsByTagName('input');			
		
		for(var i = 0; i < all_inputs.length; i++) 
		{				
			var current_input = all_inputs[i];			
			
			if(current_input.type == 'checkbox' && current_input.name.search(/shipping_alt/) != -1)					
			{				
				
				//toggle country
				if(!current_input.checked) {
					//alert(current_input.checked);
					var div_id = current_input.id + "F";					
					Element.hide(div_id);
				}
				
				//add event handler
				addEvent(current_input,'click',altShipping.toggleAltShipping,false);		
			}
		}	
	},

	toggleAltShipping: function(e) {
		
		//alert('Changing country');
		var focusBOOL = true;
		var local_target = findTarget(e);	
		
		if(local_target.checked) {
			Element.show(local_target.id + "F");			
		} else {
			Element.hide(local_target.id + "F");			
		}		
	}	
}

var subTotal = {
	
	publicationREGEX: /Publication/,
	domesticString: 'DomesticCost',
	intlString: 'IntlCost',
	intlBOOL: false,
	
	stateSelectID: 'State',
	countrySelectID: 'Country',
	
	totalCostID: 'totalCost',
	cPubInputOBJ: '',
	
	init: function() {
		if(!document.getElementsByTagName || !document.getElementsByTagName || !document.getElementById(subTotal.totalCostID)) {return;}		
		
		var all_inputs = document.getElementsByTagName('input');
		
		for(var i = 0; i < all_inputs.length; i++) 
		{				
			var current_input = all_inputs[i];			
			
			if(current_input.type == 'radio' && current_input.id.match(subTotal.publicationREGEX))					
			{				
							
				if(current_input.checked) {						
					subTotal.changeTotal();
				}
								
				//add event handler
				addEvent(current_input,'click',subTotal.changeTotal,false);		
			}
		}
	},	
	
	setIntlBOOL: function() {		
		//get selected country value
		countryText = $(subTotal.countrySelectID).options[$(subTotal.countrySelectID).selectedIndex].text;
		
		//set intlBOOL
		if(countryText.match(/Other/))
			subTotal.intlBOOL = true;
		else
			subTotal.intlBOOL = false;
	},
	
	changeTotal: function(e) {
		/*local_target = findTarget(e);
		
		if(!local_target || local_target.type != 'radio') {return;}*/
		
		//set intlBOOL
		subTotal.setIntlBOOL();
		
		//find selected publication and set object var
		var all_inputs = document.getElementsByTagName('input');
		
		for(var i = 0; i < all_inputs.length; i++) 
		{				
			var current_input = all_inputs[i];			
			
			if(current_input.type == 'radio' && current_input.id.match(subTotal.publicationREGEX))					
			{							
				if(current_input.checked) {	
					subTotal.cPubInputOBJ = current_input;					
					break;					
				}					
			}
		}		
		
		subTotal.updateTotal();
	},
	
	updateTotal: function() {
		var totalCost = 0.00;		
		
		//intl? grab intl cost
		if(subTotal.intlBOOL) {
			totalCost = $(subTotal.cPubInputOBJ.id + subTotal.intlString).value;
		} else {
			//grab domestic cost
			totalCost = $(subTotal.cPubInputOBJ.id + subTotal.domesticString).value;
		}
		
		//update span w/total cost
		$(subTotal.totalCostID).firstChild.nodeValue = totalCost;
		
	}
}

var subscriptionPromotions = {
	
	promotion_formID: "Publication_IWPromo",
	promotion_regex: /Publication_IWPromo/,
			
	init: function() {	
			
		if(!document.getElementsByTagName)		
			return;		

		var all_inputs = document.getElementsByTagName('input');			
		
		for(var i = 0; i < all_inputs.length; i++) 
		{				
			var current_input = all_inputs[i];			
			
			if(current_input.type == 'radio' && current_input.id.search(/Publication/) != -1)					
			{				
				if(current_input.id.search(subscriptionPromotions.promotion_regex) != -1) {					
					if(!current_input.checked) {						
						var div_id = current_input.id + "F";					
						Element.hide(div_id);
					}
				}				
				//add event handler
				addEvent(current_input,'click',subscriptionPromotions.togglePromotions,false);		
			}
		}	
	},	
	
	togglePromotions: function(e) {
		
		var focusBOOL = true;
		var local_target = findTarget(e);	
		
		//alert(local_target.id);
		
		if(local_target.id.search(subscriptionPromotions.promotion_regex) == -1)	{			
			Element.hide(subscriptionPromotions.promotion_formID + "F");
		} else {			
			Element.show(local_target.id + "F");	
		}		
	}
	
}

/*
if(window.location.href.search(/subscribe_new.cfm/) != -1) {
	addEvent(window,'load',subscriptionPromotions.init, false);	
}
*/

addEvent(window,'load',subscriptionPromotions.init, false);	
addEvent(window,'load',countrySwitch.init, false);
addEvent(window,'load',altShipping.init, false);
addEvent(window,'load',subTotal.init, false);
