var behavior = {

	init : function() {
		if (navigator.userAgent.match(/Netscape6/)) return;
		var subsectionHeaderImages = YAHOO.util.Dom.getElementsByClassName('ys_subSectionHeaderImg','a',document);
		YAHOO.util.Event.addListener(subsectionHeaderImages, 'click', this.toggle.subsectionChanger);
		YAHOO.util.Event.on(['ys_expand_all_link'], 'click', this.toggle.expandAllSections);

		if (hideBillingAddressEnabled) {
			YAHOO.util.Event.on(['useShippingRadio', 'useBillingRadio'], 'click', this.toggle.sameAsShipDisplay);
			this.toggle.sameAsShipDisplay();
		}

		/** MIGHT DO SOMETHING WITH THIS EVENTUALLY **/
		//var subsectionHeaders = YAHOO.util.Dom.getElementsByClassName('ys_subSectionHeader','h4',document);
		//var topsectionHeaderImages = YAHOO.util.Dom.getElementsByClassName('ys_sectionHeaderImg','img',document);
		//YAHOO.util.Event.addListener(topsectionHeaderImages, 'click', this.toggle.topsectionChanger);
		//YAHOO.util.Event.addListener(subsectionHeaders, 'mouseover', this.toggle.showContentPopup);
		//YAHOO.util.Event.addListener(subsectionHeaders, 'mouseout', this.toggle.hideContentPopup);
		//var $D = YAHOO.util.Dom;
		//var $ = $D.get;
		//$('popupContent').style.display = 'none';
		//$('popupContent').style.visibility = 'visible';
	},
	findCollapsibleContainer : function(imgClicked) {

			var parent = imgClicked.parentNode;			
			while (
                               !YAHOO.util.Dom.hasClass(parent, 'ys_subSectionHeader') 
                               || (!parent.tagName)
                               || (parent.tagName != 'H4')) {

				if (parent == undefined) {
					return;
                                }
				parent = parent.parentNode;
			}

                        if (parent == undefined) {
				return;
			}

			var elt = parent.nextSibling;

			while(   elt.nodeType != 1 
                              || elt.tagName != 'DIV'
                              || !YAHOO.util.Dom.hasClass(elt, 'ys_subSection')
			     ) {
				elt = elt.nextSibling;
			}

			return [elt, parent];
	},
	toggle: {
 		toggleSubsections : function(triggerList, forceOpen) {

			for (var i = 0; i < triggerList.length; i++) {
				var target = triggerList[i];
                        	var nodes = behavior.findCollapsibleContainer(target);
                        	if (   nodes == undefined
 			    	    || nodes[0] == undefined
	                            || nodes[1] == undefined) {
					continue;
				}
				else {
					var elt = nodes[0];
					var parent = nodes[1];

                	        	if ((forceOpen != undefined) && forceOpen) {
						elt.style.display = '';
					}
					else {
						elt.style.display = (elt.style.display != 'none' ? 'none' : '' );
					}

					var toRemove = (elt.style.display != 'none' ? 'ys_showIcon' : 'ys_hideIcon');
					var toAdd = (elt.style.display != 'none' ? 'ys_hideIcon' : 'ys_showIcon');
					YAHOO.util.Dom.removeClass(target, toRemove);
					YAHOO.util.Dom.addClass(target, toAdd);

					var linkText = (elt.style.display != 'none' ? hideIconAlt : showIconAlt);

					//target.src = (elt.style.display != 'none' ? hideUrl : showUrl );
					target.innerHTML = linkText;
					parent.setAttribute('state', (elt.style.display != 'none' ? '1' : '0'));
				}
			}
		},

		subsectionChanger : function(e, els) {

			var target = YAHOO.util.Event.getTarget(e);

			YAHOO.util.Event.stopEvent(e);

			var targetArr = new Array(target);

			behavior.toggle.toggleSubsections(targetArr, false);
		},

		sameAsShipDisplay : function(e, els) {
			var sameAsShipRadio = YAHOO.util.Dom.get('useShippingRadio');
			if (sameAsShipRadio != undefined) {
				var billInputs = YAHOO.util.Dom.get('ys_billingInputs');
				if (sameAsShipRadio.checked) {
                           		billInputs.style.display = 'none';
                        	}
				else {
			   		billInputs.style.display = '';
				}
			}
		},

		expandAllSections : function(e, els) {

			var subsectionHeaderImages = YAHOO.util.Dom.getElementsByClassName('ys_subSectionHeaderImg','a',document);

			behavior.toggle.toggleSubsections(subsectionHeaderImages, true);
		}
	}
};
YAHOO.util.Event.on(window,'load', behavior.init, behavior, true);
