/**
 * @author Hyatt
 */

/* EXPEND AND COLLAPSE SCRIPT
 * - Use: Terms & Conditions, Quick Book and Search Module.
 * - due to prototype library use, no conflict is initiated $j is used as defined on pages.
 * - Parameters: to hbExpendAndCollapse() following can be passed
 * 		- elementListenerIdOrClass (REQ): pass jQuery style selector for element's id or class, 
 * 					use "#idName" or ".className" to identify the element that is responsible 
 * 					for listening event that would expand the targeted container.  
 * 		- elementCollapseExpendIdOrClass (REQ): pass jQuery style selector for element's id or class, 
 * 					use "#idName" or ".className" to identify which element would be expanded 
 * 					or collapsed.
 * 		- classNameToToggle (REQ): pass class name (do not include dot as you would with type of 
 * 					jQuery selector), this class will be added or removed from element which 
 * 					you trying to collapse.
 * 		- iconClassNameToToggle (OPT for SO Style Pages): if collapse or expand link has icon, pass class name (with 
 * 					out dot) which will be added or removed on each click to change icon state.
 * 		- titleBarClass (REQ for GP): GP pages related parameter, pass jQuery style selector for element's class of 
 * 					the title bar which will listen for user input(click). 
 * 
 * START */
var hbExpendAndCollapse = function(elementListenerIdOrClass, elementCollapseExpendIdOrClass, tacClassNameToToggle, iconClassNameToToggle, titleBarClass) {
	if ($j(elementListenerIdOrClass).length && $j(elementCollapseExpendIdOrClass).length) {
		if ($j(elementListenerIdOrClass + ' ' + elementCollapseExpendIdOrClass).length) {
			$j(elementListenerIdOrClass).each(function() {
				$j(this).children(titleBarClass).click(function() {
					$j(this).parents(elementListenerIdOrClass).toggleClass(iconClassNameToToggle);
					$j(this).parents(elementListenerIdOrClass).children(elementCollapseExpendIdOrClass).toggleClass(tacClassNameToToggle);
				});
			});
		} else {
			$j(elementListenerIdOrClass).click(function() {
				$j(elementCollapseExpendIdOrClass).toggleClass(tacClassNameToToggle);
				if ($j(elementListenerIdOrClass + ' span').length) {
					$j(elementListenerIdOrClass + ' span').toggleClass(iconClassNameToToggle);
				}
			});
		}
	}
}
/* END */

/* EXECUTE ALL SPECIFIED WHEN DOC IS LOADED AND READY
 * START */
$(document).ready(function(){
	hbExpendAndCollapse('.hbTermsAndConditionExpandColapseLink', '.hbTermsAndConditionBody', 'hbTacExpanded', 'hbIconSwitch');
	hbExpendAndCollapse('.hbSearchModuleInterestsLink', '.hbSearchModuleInterestsList', 'hbCollapsed', 'hbIconSwitch');
	hbExpendAndCollapse('.hbSearchModuleBrandsLink', '.hbSearchModuleBrandsList', 'hbCollapsed', 'hbIconSwitch');
	hbExpendAndCollapse('.hbShowHiddenItemsInListClick', '.hbListItemToHideOrShow', 'hbItemNowHidden');
	hbExpendAndCollapse('.hbGpColapseExpandWrapper', '.hbGpCeItemToHideOrShow', 'hbGpCeItemNowShowen', 'hbGpIconSwitch', '.hbGpTitleBar');
	hbExpendAndCollapse('.hbGpColapseExpandWrapper1', '.hbGpCeItemToHideOrShow1', 'hbGpCeItemNowShowen1', 'hbGpIconSwitch1', '.hbGpTitleBar1');
});
/* END */
