/**
 * PREAMBLE
 *  Copyright (c) 2010 - 2011, Oliver Rosevelt Lawrence.
 *
 *  @Author: Oliver Rosevelt Lawrence
 *  @Application: ezjBox Library
 *  @Version: 0.0.1
 *  @Revision: 0097
 *  @Date: Aug 9, 2011 12:52:49 PM
 *  @FileName: ezBox.js
 *  @Required: ezBox.css
 *  @Dependency: jQuery 1.4.2
 */
 
(function($){
	var userAgent;
	var initialized = false;
	var boxCodes = {
			headless:"hdls",
			btnBar:"btnBr",
			title:"ttl",
			tab:"tb",
			input:"ipt",
			bar:"br",
			actionBar:"actnBr",
			list:"lst",
			command:"cmd",
			accordion:"acrdn"
		};
	var basicBoxTypes = {
			headlessBox: boxCodes.headless + "Bx",
			btnBarBox: boxCodes.btnBar + "Bx",
			titleBox: boxCodes.title + "Bx",
			tabBox: boxCodes.tab + "Bx",
			inputBox: boxCodes.input + "Bx",		
			unknown:"unkwn"		
		};
	var boxVariants = {
			bar: boxCodes.bar + "Bx",
			actionBar: boxCodes.actionBar + "Bx",
			list: boxCodes.list + "Bx",
			command: boxCodes.command + "Bx",
			accordion: boxCodes.accordion + "Bx"
		};
	var constants = {
			sides: {
				TOP:8,
				LEFT:4,
				RIGHT:2,
				BOTTOM:1,
				VERTICALS:6,
				HORIZONTALS:9,
				NOT_TOP:7,
				NOT_LEFT:11,
				NOT_RIGHT:13,
				NOT_BOTTOM:14,
				ALL:15
			}
		};
	var activeUserClasses;
	var proxyClasses;
	var defaultUserClasses = {
			box:"box",
			interlockTabs:"interlockTabs",
			extendLastTab:"extendLastTab",
			adjacentTabs:"adjacentTabs",
			separateTabs:"separateTabs",
			minHeader:"minHeader",
			maxHeader:"maxHeader",
			title:"title",
			tab:"tab",
			bar:"bar",
			accordion:"accordion",
			list:"list",
			actionBar:"actionBar",
			actionCommand:"actionCommand",
			buttonGroup:"buttonGroup",
			imageButton:"imageButton",
			textButton:"textButton",
			inputButton:"inputButton",
			groupLabel:"groupLabel",
			noDefaultButton:"noDefaultButton",
			noCollapseButton:"noCollapseButton",
			noCollapseAll:"noCollapseAll",
			noInfoButton:"noInfoButton",
			noCustomButton:"noCustomButton",
			noButton:"noButton",
			collapseButton:"collapseButton",
			allowCollapseAll:"allowCollapseAll",
			infoButton:"infoButton",
			bodyTopOn:"bodyTopOn",
			bodyTopLeftOn:"bodyTopLeftOn",
			bodyTopRightOn:"bodyTopRightOn",
			noContentBorder:"noContentBorder",
			content:"content",
			defaultContent:"default",
			uncollapse:"uncollapse",
			collapse:"collapse",
			invisible:"invisible",
			hidden:"hidden",
			boxItem:"boxItem",

			flushHeader:"flushHeader",
			flushHeaderTight:"flushHeaderTight",
			flushContentTop:"flushContentTop",
			flushContentLeft:"flushContentLeft",
			flushContentRight:"flushContentRight",
			flushContentBottom:"flushContentBottom",
			flushContentVertical:"flushContentVertical",
			flushContentHorizontal:"flushContentHorizontal",
			flushContentNotTop:"flushContentNotTop",
			flushContentNotLeft:"flushContentNotLeft",
			flushContentNotRight:"flushContentNotRight",
			flushContentNotBottom:"flushContentNotBottom",
			flushContent:"flushContent",
			flushContentTopTight:"flushContentTopTight",
			flushContentLeftTight:"flushContentLeftTight",
			flushContentRightTight:"flushContentRightTight",
			flushContentBottomTight:"flushContentBottomTight",
			flushContentVerticalTight:"flushContentVerticalTight",
			flushContentHorizontalTight:"flushContentHorizontalTight",
			flushContentTightNotTop:"flushContentTightNotTop",
			flushContentTightNotLeft:"flushContentTightNotLeft",
			flushContentTightNotRight:"flushContentTightNotRight",
			flushContentTightNotBottom:"flushContentTightNotBottom",
			flushContentTight:"flushContentTight",


			noSpaceAround:"noSpaceAround",
			spaceCenter:"spaceCenter",
			spaceAbove:"spaceAbove",
			spaceLeft:"spaceLeft",
			spaceRight:"spaceRight",
			spaceBelow:"spaceBelow",
			spaceVertical:"spaceVertical",
			spaceHorizontal:"spaceHorizontal",
			spaceNotAbove:"spaceNotAbove",
			spaceNotLeft:"spaceNotLeft",
			spaceNotRight:"spaceNotRight",
			spaceNotBelow:"spaceNotBelow",
			spaceAround:"spaceAround",
			autoSpaceAbove:"autoSpaceAbove",
			autoSpaceLeft:"autoSpaceLeft",
			autoSpaceRight:"autoSpaceRight",
			autoSpaceBelow:"autoSpaceBelow",
			autoSpaceVertical:"autoSpaceVertical",
			autoSpaceHorizontal:"autoSpaceHorizontal",
			autoSpaceNotAbove:"autoSpaceNotAbove",
			autoSpaceNotLeft:"autoSpaceNotLeft",
			autoSpaceNotRight:"autoSpaceNotRight",
			autoSpaceNotBelow:"autoSpaceNotBelow",
			autoSpaceAround:"spaceAround",
			smallSpaceAbove:"smallSpaceAbove",
			smallSpaceLeft:"smallSpaceLeft",
			smallSpaceRight:"smallSpaceRight",
			smallSpaceBelow:"smallSpaceBelow",
			smallSpaceVertical:"smallSpaceVertical",
			smallSpaceHorizontal:"smallSpaceHorizontal",
			smallSpaceNotAbove:"smallSpaceNotAbove",
			smallSpaceNotLeft:"smallSpaceNotLeft",
			smallSpaceNotRight:"smallSpaceNotRight",
			smallSpaceNotBelow:"smallSpaceNotBelow",
			smallSpaceAround:"smallSpaceAround",
			mediumSpaceAbove:"mediumSpaceAbove",
			mediumSpaceLeft:"mediumSpaceLeft",
			mediumSpaceRight:"mediumSpaceRight",
			mediumSpaceBelow:"mediumSpaceBelow",
			mediumSpaceVertical:"mediumSpaceVertical",
			mediumSpaceHorizontal:"mediumSpaceHorizontal",
			mediumSpaceNotAbove:"mediumSpaceNotAbove",
			mediumSpaceNotLeft:"mediumSpaceNotLeft",
			mediumSpaceNotRight:"mediumSpaceNotRight",
			mediumSpaceNotBelow:"mediumSpaceNotBelow",
			mediumSpaceAround:"mediumSpaceAround",
			largeSpaceAbove:"largeSpaceAbove",
			largeSpaceLeft:"largeSpaceLeft",
			largeSpaceRight:"largeSpaceRight",
			largeSpaceBelow:"largeSpaceBelow",
			largeSpaceVertical:"largeSpaceVertical",
			largeSpaceHorizontal:"largeSpaceHorizontal",
			largeSpaceNotAbove:"largeSpaceNotAbove",
			largeSpaceNotLeft:"largeSpaceNotLeft",
			largeSpaceNotRight:"largeSpaceNotRight",
			largeSpaceNotBelow:"largeSpaceNotBelow",
			largeSpaceAround:"largeSpaceAround",


			borderTop:"borderTop",
			borderLeft:"borderLeft",
			borderRight:"borderRight",
			borderBottom:"borderBottom",
			borderVertical:"borderVertical",
			borderHorizontal:"borderHorizontal",
			borderNotTop:"borderNotTop",
			borderNotLeft:"borderNotLeft",
			borderNotRight:"borderNotRight",
			borderNotBottom:"borderNotBottom",
			border:"border",
			borderTopOnCollapse:"borderTopOnCollapse",
			borderLeftOnCollapse:"borderLeftOnCollapse",
			borderRightOnCollapse:"borderRightOnCollapse",
			borderBottomOnCollapse:"borderBottomOnCollapse",
			borderVerticalOnCollapse:"borderVerticalOnCollapse",
			borderHorizontalOnCollapse:"borderHorizontalOnCollapse",
			borderNotTopOnCollapse:"borderNotTopOnCollapse",
			borderNotLeftOnCollapse:"borderNotLeftOnCollapse",
			borderNotRightOnCollapse:"borderNotRightOnCollapse",
			borderNotBottomOnCollapse:"borderNotBottomOnCollapse",
			borderOnCollapse:"borderOnCollapse",
			borderTopUnCollapse:"borderTopUnCollapse",
			borderLeftUnCollapse:"borderLeftUnCollapse",
			borderRightUnCollapse:"borderRightUnCollapse",
			borderBottomUnCollapse:"borderBottomUnCollapse",
			borderVerticalUnCollapse:"borderVerticalUnCollapse",
			borderHorizontalUnCollapse:"borderHorizontalUnCollapse",
			borderNotTopUnCollapse:"borderNotTopUnCollapse",
			borderNotLeftUnCollapse:"borderNotLeftUnCollapse",
			borderNotRightUnCollapse:"borderNotRightUnCollapse",
			borderNotBottomUnCollapse:"borderNotBottomUnCollapse",
			borderUnCollapse:"borderUnCollapse"


		};

		var internalClasses = {


			box:"ezBox",
			interlockTabs:"intrlckTbs",
			extendLastTab:"xtndLstTb",
			adjacentTabs:"ajcntTbs",
			separateTabs:"sprtTbs",
			minHeader:"hdrMin",
			maxHeader:"hdrMax",
			title:"titleText",
			tab:"tabText",
			buttonGroup:"custBtnGrp",
			imageButton:"custImgBtn",
			textButton:"custTxtBtn",
			inputButton:"htmlInptBtn",
			groupLabel:"custBtnGrpLbl",
			noDefaultButton:"defBtnGrpNone",
			noCollapseButton:"clpsBtnNone",
			noCollapseAll:"clpsAllNone",
			noInfoButton:"infBtnNone",
			noCustomButton:"custBtnGrpNone",
			noButton:"btnNone",
			collapseButton:"clpsBtnOn",
			allowCollapseAll:"clpsAllOn",
			infoButton:"infBtnOn",
			bodyTopOn:"bdyTpOn",
			bodyTopLeftOn:"bdyTpLftOn",
			bodyTopRightOn:"bdyTpRitOn",
			noContentBorder:"noBrdr",
			content:"bxCntnt",
			uncollapse:"initUnclps",
			collapse:"initClps",
			invisible:"initVsblOff",
			hidden:"initDsplOff",
			boxItem:"bxItm",
			
			flushHeader:"hdrflsh",
			flushHeaderTight:"hdrflshTt",
			
			flushContentTop:"flshCntTp",
			flushContentLeft:"flshCntLt",
			flushContentRight:"flshCntRt",
			flushContentBottom:"flshCntBtm",



			contentTopNoFlush:"cntTpNoFlsh",
			contentLeftNoFlush:"cntLtNoFlsh",
			contentRightNoFlush:"cntRtNoFlsh",
			contentBottomNoFlush:"cntBtmNoFlsh",
			
			spaceAbove:"spAbv",
			spaceLeft:"spLft",
			spaceRight:"spRit",
			spaceBelow:"spBlw",
			
			borderTop:"brdrTp",
			borderLeft:"brdrLt",
			borderRight:"brdrRt",
			borderBottom:"brdrBtm",
			

			initialized:"ezbInit",
			boxHeader:"bxHdr",
			boxBody:"bxBdy",
			
			headlessBox: basicBoxTypes.headlessBox,
			headlessBody: boxCodes.headless + "Bdy",
			actionBox: boxVariants.actionBar,
			actionBody: boxCodes.actionBar + "Bdy",
			listBox: boxVariants.list,
			listBody: boxCodes.list + "Bdy",
			barBox: boxVariants.bar,
			barHeader: boxCodes.bar + "Hdr",
			barBody: boxCodes.bar + "Bdy",
			btnBarBox: basicBoxTypes.btnBarBox,
			btnBarHeader: boxCodes.btnBar + "Hdr",
			btnBarBody: boxCodes.btnBar + "Bdy",
			titleBox: basicBoxTypes.titleBox,
			titleHeader: boxCodes.title + "Hdr",
			titleBody: boxCodes.title + "Bdy",
			commandBox: boxVariants.command,
			commandHeader: boxCodes.command + "Hdr",
			commandBody: boxCodes.command + "Bdy",
			accordionBox: boxVariants.accordion,
			accordionHeader: boxCodes.accordion + "Hdr",
			accordionBody: boxCodes.accordion + "Bdy",
			tabBox: basicBoxTypes.tabBox,
			tabHeader: boxCodes.tab + "Hdr",
			tabBody: boxCodes.tab + "Bdy",
			inputBox: basicBoxTypes.inputBox,
			inputHeader: boxCodes.input + "Hdr",
			inputBody: boxCodes.input + "Bdy",
			
			tabContainer:"tbCntnr",
			buttonContainer:"btnContainer",
			button:"boxBtn",
			singltonImageButton:"custImgBtnSgltn",
			singltonTextButton:"custTxtBtnSgltn",
			defaultButtonGroup:"defBtnGrp",
			defaultImageButton:"defImgBtn",
			defaultTextButton:"defTxtBtn",
			defaultButtonEach:"defBtnEach",
			infoBtn:"infBtn",
			collapseBtn:"clpsBtn",
			collapseAcrdn:"acrdnClpsBtn",
			collapseAll:"clpsAll",
			collapseAllEnabled:"clpsAllEnbl",
			collapseAllDisabled:"clpsAllDsbl",
			collapsing:"clpsing",
			collapsed:"clpsed",
			uncollapsing:"unclpsing",
			uncollapsed:"unclpsed",
			clicked:"clckd",

			unknown:"unknown",
			buttonBar:"btnBr",
			decorBar:"dcrtvBr",
			allowFlush:"allowFlush",
			contentFlushed:"cntFlsh",
			boxList:"bxLst",
			fixedBorder:"Fx",
			noSpace:"Non",
			autoSpace:"Aut",
			smallSpace:"Sml",
			standardSpace:"Std",
			mediumSpace:"Mdm",
			largeSpace:"Lrg",
			flushTight:"Tt",
			mouseOverUncollapse:"msOvrUnclps",
			mouseOverCollapse:"msOvrClps",
			
			headerBg:"hdrBg",
			headerBg_context:"hdrBg_cntxt",
			headerBg_fill:"hdrBg_fill",
			headerBg_flush:"hdrBg_flsh",
			headerBg_t:"hdrBg_t",
			headerBg_t_ent:"hdrBg_t_ent",
			headerBg_t_sel:"hdrBg_t_sel",
			headerBg_l:"hdrBg_l",
			headerBg_l_ent:"hdrBg_l_ent",
			headerBg_l_sel:"hdrBg_l_sel",
			headerBg_r:"hdrBg_r",
			headerBg_r_ent:"hdrBg_r_ent",
			headerBg_r_sel:"hdrBg_r_sel",
			headerBg_t_l:"hdrBg_t_l",
			headerBg_t_l_ent:"hdrBg_t_l_ent",
			headerBg_t_l_sel:"hdrBg_t_l_sel",
			headerBg_t_r:"hdrBg_t_r",
			headerBg_t_r_ent:"hdrBg_t_r_ent",
			headerBg_t_r_sel:"hdrBg_t_r_sel",

			tabBg:"tbBg",
			tabBg_t:"tbBg_t",
			tabBg_l_otr:"tbBg_l_otr",








			tabBg_l_inr:"tbBg_l_inr",
			tabBg_r_otr:"tbBg_r_otr",
			tabBg_t_l_otr:"tbBg_t_l_otr",








			tabBg_t_l_inr:"tbBg_t_l_inr",
			tabBg_t_r_otr:"tbBg_t_r_otr",

			tabBg_t_ent:"tbBg_t_ent",
			tabBg_l_otr_ent:"tbBg_l_otr_ent",
			tabBg_l_inr_ent:"tbBg_l_inr_ent",
			tabBg_r_otr_ent:"tbBg_r_otr_ent",
			tabBg_t_l_otr_ent:"tbBg_t_l_otr_ent",
			tabBg_t_l_inr_ent:"tbBg_t_l_inr_ent",
			tabBg_t_r_otr_ent:"tbBg_t_r_otr_ent",

			tabBg_t_sel:"tbBg_t_sel",
			tabBg_l_otr_sel:"tbBg_l_otr_sel",
			tabBg_l_inr_sel:"tbBg_l_inr_sel",
			tabBg_r_otr_sel:"tbBg_r_otr_sel",
			tabBg_t_l_otr_sel:"tbBg_t_l_otr_sel",
			tabBg_t_l_inr_sel:"tbBg_t_l_inr_sel",
			tabBg_t_r_otr_sel:"tbBg_t_r_otr_sel",

			tabBg_l_inr_entL:"tbBg_l_inr_entL",
			tabBg_t_l_inr_entL:"tbBg_t_l_inr_entL",

			tabBg_l_inr_selL:"tbBg_l_inr_selL",
			tabBg_t_l_inr_selL:"tbBg_t_l_inr_selL",

			tabBg_l_inr_sel_entL:"tbBg_l_inr_sel_entL",
			tabBg_t_l_inr_sel_entL:"tbBg_t_l_inr_sel_entL",

			tabBg_l_inr_selL_ent:"tbBg_l_inr_selL_ent",
			tabBg_t_l_inr_selL_ent:"tbBg_t_l_inr_selL_ent",
			
			bodyBg:"bdyBg",
			bodyBg_context:"bdyBg_cntxt",
			bodyBg_fill:"bdyBg_fill",
			bodyBg_t:"bdyBg_t",
			bodyBg_l:"bdyBg_l",
			bodyBg_r:"bdyBg_r",
			bodyBg_b:"bdyBg_b",
			bodyBg_t_l:"bdyBg_t_l",
			bodyBg_t_r:"bdyBg_t_r",
			bodyBg_b_l:"bdyBg_b_l",
			bodyBg_b_r:"bdyBg_b_r"
			
		};
	var activeUserThemes;
	var proxyThemes;
	var defBxThmSfx = "_bx";
	var defHdrThmSfx = "_hdr";
	var defBdyThmSfx = "_bdy";
	var defaultUserThemes = {
			theme00:"hdlsDefThm",
			theme01:"theme01",
			theme02:"theme02",
			theme03:"theme03",
			theme04:"theme04",
			theme05:"theme05",
			theme06:"theme06",
			theme07:"theme07",
			theme08:"theme08",
			theme09:"theme09",
			theme10:"brDefThm",
			theme11:"theme11",
			theme12:"theme12",
			theme13:"theme13",
			theme14:"theme14",
			theme15:"theme15",
			theme16:"theme16",
			theme17:"theme17",
			theme18:"theme18",
			theme19:"theme19",
			theme20:"btnBrDefThm",
			theme21:"theme21",
			theme22:"theme22",
			theme23:"theme23",
			theme24:"theme24",
			theme25:"theme25",
			theme26:"theme26",
			theme27:"theme27",
			theme28:"theme28",
			theme29:"theme29",
			theme30:"ttlDefThm",
			theme31:"theme31",
			theme32:"theme32",
			theme33:"theme33",
			theme34:"theme34",
			theme35:"theme35",
			theme36:"theme36",
			theme37:"theme37",
			theme38:"theme38",
			theme39:"theme39",
			theme40:"tbDefThm",
			theme41:"theme41",
			theme42:"theme42",
			theme43:"theme43",
			theme44:"theme44",
			theme45:"theme45",
			theme46:"theme46",
			theme47:"theme47",
			theme48:"theme48",
			theme49:"theme49",
			theme50:"actnBrDefThm",
			theme51:"theme51",
			theme52:"theme52",
			theme53:"theme53",
			theme54:"theme54",
			theme55:"theme55",
			theme56:"theme56",
			theme57:"theme57",
			theme58:"theme58",
			theme59:"theme59",
			theme60:"actnCmdDefThm",
			theme61:"theme61",
			theme62:"theme62",
			theme63:"theme63",
			theme64:"theme64",
			theme65:"theme65",
			theme66:"theme66",
			theme67:"theme67",
			theme68:"theme68",
			theme69:"theme69",
			theme70:"acrdnDefThm",
			theme71:"theme71",
			theme72:"theme72",
			theme73:"theme73",
			theme74:"theme74",
			theme75:"theme75",
			theme76:"theme76",
			theme77:"theme77",
			theme78:"theme78",
			theme79:"theme79",
			theme80:"inptDefThm",
			theme81:"theme81",
			theme82:"theme82",
			theme83:"theme83",
			theme84:"theme84",
			theme85:"theme85",
			theme86:"theme86",
			theme87:"theme87",
			theme88:"theme88",
			theme89:"theme89",

			boxThemeSuffix:defBxThmSfx,

			headerThemeSuffix:defHdrThmSfx,

			bodyThemeSuffix:defBdyThmSfx
		};

	var defBasicTheme = defaultUserThemes.theme00;
	var defBarTheme = defaultUserThemes.theme10;
	var defBtnBarTheme = defaultUserThemes.theme20;
	var defTitleTheme = defaultUserThemes.theme30;
	var defTabTheme = defaultUserThemes.theme40;
	var defActionBarTheme = defaultUserThemes.theme50;
	var defListTheme = defaultUserThemes.theme50;
	var defActionCmdTheme = defaultUserThemes.theme60;
	var defAccordionTheme = defaultUserThemes.theme70;
	var defInputTheme = "defaultUserThemes.theme80";
	var defaultTheme = "defTheme";

	var customEvents = {
			headerEnter:"headerEnter",
			headerLeave:"headerLeave",
			headerClick:"headerClick",
			tabEnter:"tabEnter",
			tabLeave:"tabLeave",
			tabClick:"tabClick"
		};
	var classChangeTypes = {
			substitute:"substitute",
			add:"add"
		};
	var cleanupAction;
	var cleanupArgs;
	var cleanupObject;
	
	var changeSets;
	var tabStsCodes = {

			OL_RmSel:1,

			OL_RtSel:2,

			IN_RmSel:3,

			IN_RtSel:4,

			IN_LtSel:5,

			OR_RmSel:6,

			OR_LtSel:7,

			SGL:8
	};
	var postInit;
	var marshalsCreated = 0;
	var marshalCount = 0;

		








	ezBox = {};
	ezBox.ez = {
		getBoxCode: function(boxType) {
			switch (boxType) {
				case basicBoxTypes.headlessBox:
					return boxCodes.headless;
				case basicBoxTypes.btnBarBox:
					return boxCodes.btnBar;
				case basicBoxTypes.titleBox:
					return boxCodes.title;
				case basicBoxTypes.tabBox:
					return boxCodes.tab;
				case basicBoxTypes.inputBox:
					return boxCodes.input;
				case boxVariants.bar:
					return boxCodes.bar;
				case boxVariants.actionBar:
					return boxCodes.actionBar;
				case boxVariants.list:
					return boxCodes.list;
				case boxVariants.command:
					return boxCodes.command;
				case boxVariants.accordion:
					return boxCodes.accordion;
				default: return "";
			}
		}
	};
	ezBox.classes = {
		getActiveUserClasses: function(){return activeUserClasses;},
		getProxyClasses: function(){return proxyClasses;},
		getDefaultUserClasses: function(){return defaultUserClasses;},
		getInternalClasses: function(){return internalClasses;},
		getCustomEvents: function(){return customEvents;}
	};
	
	ezBox.themes = {
		getProxyThemes: function() { return proxyThemes; },
		setProxyThemes: function(prxThmMap) {

			loadActiveThemes(prxThmMap);
			return this;
			function loadActiveThemes(prxThms) {
				if ((prxThmMap) && (typeof prxThms === "object")) {
					var resolvedThemes = {
						theme00:(prxThms.theme00 ? prxThms.theme00 : defaultUserThemes.theme00),
						theme01:(prxThms.theme01 ? prxThms.theme01 : defaultUserThemes.theme01),
						theme02:(prxThms.theme02 ? prxThms.theme02 : defaultUserThemes.theme02),
						theme03:(prxThms.theme03 ? prxThms.theme03 : defaultUserThemes.theme03),
						theme04:(prxThms.theme04 ? prxThms.theme04 : defaultUserThemes.theme04),
						theme05:(prxThms.theme05 ? prxThms.theme05 : defaultUserThemes.theme05),
						theme06:(prxThms.theme06 ? prxThms.theme06 : defaultUserThemes.theme06),
						theme07:(prxThms.theme07 ? prxThms.theme07 : defaultUserThemes.theme07),
						theme08:(prxThms.theme08 ? prxThms.theme08 : defaultUserThemes.theme08),
						theme09:(prxThms.theme09 ? prxThms.theme09 : defaultUserThemes.theme09),
						theme10:(prxThms.theme10 ? prxThms.theme10 : defaultUserThemes.theme10),
						theme11:(prxThms.theme11 ? prxThms.theme11 : defaultUserThemes.theme11),
						theme12:(prxThms.theme12 ? prxThms.theme12 : defaultUserThemes.theme12),
						theme13:(prxThms.theme13 ? prxThms.theme13 : defaultUserThemes.theme13),
						theme14:(prxThms.theme14 ? prxThms.theme14 : defaultUserThemes.theme14),
						theme15:(prxThms.theme15 ? prxThms.theme15 : defaultUserThemes.theme15),
						theme16:(prxThms.theme16 ? prxThms.theme16 : defaultUserThemes.theme16),
						theme17:(prxThms.theme17 ? prxThms.theme17 : defaultUserThemes.theme17),
						theme18:(prxThms.theme18 ? prxThms.theme18 : defaultUserThemes.theme18),
						theme19:(prxThms.theme19 ? prxThms.theme19 : defaultUserThemes.theme19),
						theme20:(prxThms.theme20 ? prxThms.theme20 : defaultUserThemes.theme20),
						theme21:(prxThms.theme21 ? prxThms.theme21 : defaultUserThemes.theme21),
						theme22:(prxThms.theme22 ? prxThms.theme22 : defaultUserThemes.theme22),
						theme23:(prxThms.theme23 ? prxThms.theme23 : defaultUserThemes.theme23),
						theme24:(prxThms.theme24 ? prxThms.theme24 : defaultUserThemes.theme24),
						theme25:(prxThms.theme25 ? prxThms.theme25 : defaultUserThemes.theme25),
						theme26:(prxThms.theme26 ? prxThms.theme26 : defaultUserThemes.theme26),
						theme27:(prxThms.theme27 ? prxThms.theme27 : defaultUserThemes.theme27),
						theme28:(prxThms.theme28 ? prxThms.theme28 : defaultUserThemes.theme28),
						theme29:(prxThms.theme29 ? prxThms.theme29 : defaultUserThemes.theme29),
						theme30:(prxThms.theme30 ? prxThms.theme30 : defaultUserThemes.theme30),
						theme31:(prxThms.theme31 ? prxThms.theme31 : defaultUserThemes.theme31),
						theme32:(prxThms.theme32 ? prxThms.theme32 : defaultUserThemes.theme32),
						theme33:(prxThms.theme33 ? prxThms.theme33 : defaultUserThemes.theme33),
						theme34:(prxThms.theme34 ? prxThms.theme34 : defaultUserThemes.theme34),
						theme35:(prxThms.theme35 ? prxThms.theme35 : defaultUserThemes.theme35),
						theme36:(prxThms.theme36 ? prxThms.theme36 : defaultUserThemes.theme36),
						theme37:(prxThms.theme37 ? prxThms.theme37 : defaultUserThemes.theme37),
						theme38:(prxThms.theme38 ? prxThms.theme38 : defaultUserThemes.theme38),
						theme39:(prxThms.theme39 ? prxThms.theme39 : defaultUserThemes.theme39),
						theme40:(prxThms.theme40 ? prxThms.theme40 : defaultUserThemes.theme40),
						theme41:(prxThms.theme41 ? prxThms.theme41 : defaultUserThemes.theme41),
						theme42:(prxThms.theme42 ? prxThms.theme42 : defaultUserThemes.theme42),
						theme43:(prxThms.theme43 ? prxThms.theme43 : defaultUserThemes.theme43),
						theme44:(prxThms.theme44 ? prxThms.theme44 : defaultUserThemes.theme44),
						theme45:(prxThms.theme45 ? prxThms.theme45 : defaultUserThemes.theme45),
						theme46:(prxThms.theme46 ? prxThms.theme46 : defaultUserThemes.theme46),
						theme47:(prxThms.theme47 ? prxThms.theme47 : defaultUserThemes.theme47),
						theme48:(prxThms.theme48 ? prxThms.theme48 : defaultUserThemes.theme48),
						theme49:(prxThms.theme49 ? prxThms.theme49 : defaultUserThemes.theme49),
						theme50:(prxThms.theme50 ? prxThms.theme50 : defaultUserThemes.theme50),
						theme51:(prxThms.theme51 ? prxThms.theme51 : defaultUserThemes.theme51),
						theme52:(prxThms.theme52 ? prxThms.theme52 : defaultUserThemes.theme52),
						theme53:(prxThms.theme53 ? prxThms.theme53 : defaultUserThemes.theme53),
						theme54:(prxThms.theme54 ? prxThms.theme54 : defaultUserThemes.theme54),
						theme55:(prxThms.theme55 ? prxThms.theme55 : defaultUserThemes.theme55),
						theme56:(prxThms.theme56 ? prxThms.theme56 : defaultUserThemes.theme56),
						theme57:(prxThms.theme57 ? prxThms.theme57 : defaultUserThemes.theme57),
						theme58:(prxThms.theme58 ? prxThms.theme58 : defaultUserThemes.theme58),
						theme59:(prxThms.theme59 ? prxThms.theme59 : defaultUserThemes.theme59),
						theme60:(prxThms.theme60 ? prxThms.theme60 : defaultUserThemes.theme60),
						theme61:(prxThms.theme61 ? prxThms.theme61 : defaultUserThemes.theme61),
						theme62:(prxThms.theme62 ? prxThms.theme62 : defaultUserThemes.theme62),
						theme63:(prxThms.theme63 ? prxThms.theme63 : defaultUserThemes.theme63),
						theme64:(prxThms.theme64 ? prxThms.theme64 : defaultUserThemes.theme64),
						theme65:(prxThms.theme65 ? prxThms.theme65 : defaultUserThemes.theme65),
						theme66:(prxThms.theme66 ? prxThms.theme66 : defaultUserThemes.theme66),
						theme67:(prxThms.theme67 ? prxThms.theme67 : defaultUserThemes.theme67),
						theme68:(prxThms.theme68 ? prxThms.theme68 : defaultUserThemes.theme68),
						theme69:(prxThms.theme69 ? prxThms.theme69 : defaultUserThemes.theme69),
						theme70:(prxThms.theme70 ? prxThms.theme70 : defaultUserThemes.theme70),
						theme71:(prxThms.theme71 ? prxThms.theme71 : defaultUserThemes.theme71),
						theme72:(prxThms.theme72 ? prxThms.theme72 : defaultUserThemes.theme72),
						theme73:(prxThms.theme73 ? prxThms.theme73 : defaultUserThemes.theme73),
						theme74:(prxThms.theme74 ? prxThms.theme74 : defaultUserThemes.theme74),
						theme75:(prxThms.theme75 ? prxThms.theme75 : defaultUserThemes.theme75),
						theme76:(prxThms.theme76 ? prxThms.theme76 : defaultUserThemes.theme76),
						theme77:(prxThms.theme77 ? prxThms.theme77 : defaultUserThemes.theme77),
						theme78:(prxThms.theme78 ? prxThms.theme78 : defaultUserThemes.theme78),
						theme79:(prxThms.theme79 ? prxThms.theme79 : defaultUserThemes.theme79),
						theme80:(prxThms.theme80 ? prxThms.theme80 : defaultUserThemes.theme80),
						theme81:(prxThms.theme81 ? prxThms.theme81 : defaultUserThemes.theme81),
						theme82:(prxThms.theme82 ? prxThms.theme82 : defaultUserThemes.theme82),
						theme83:(prxThms.theme83 ? prxThms.theme83 : defaultUserThemes.theme83),
						theme84:(prxThms.theme84 ? prxThms.theme84 : defaultUserThemes.theme84),
						theme85:(prxThms.theme85 ? prxThms.theme85 : defaultUserThemes.theme85),
						theme86:(prxThms.theme86 ? prxThms.theme86 : defaultUserThemes.theme86),
						theme87:(prxThms.theme87 ? prxThms.theme87 : defaultUserThemes.theme87),
						theme88:(prxThms.theme88 ? prxThms.theme88 : defaultUserThemes.theme88),
						theme89:(prxThms.theme89 ? prxThms.theme89 : defaultUserThemes.theme89),
						boxThemeSuffix:(prxThms.boxThemeSuffix ? prxThms.boxThemeSuffix : defaultUserThemes.boxThemeSuffix),
						headerThemeSuffix:(prxThms.headerThemeSuffix ? prxThms.headerThemeSuffix : defaultUserThemes.headerThemeSuffix),
						bodyThemeSuffix:(prxThms.bodyThemeSuffix ? prxThms.bodyThemeSuffix : defaultUserThemes.bodyThemeSuffix)
					};
					activeUserThemes = resolvedThemes;
					proxyThemes = prxThms;
					return;
				} else {
					activeUserThemes = defaultUserThemes;
					return;
				}
			}
		},

		getActiveThemes: function() { return activeUserThemes; },
		getDefaultThemes: function() { return defaultUserThemes; },
		
		getDefBasicTheme: function() { return defBasicTheme; },
		setDefBasicTheme: function(theme) {

			defBasicTheme = theme;
			return this;
		},
		
		getDefBarTheme: function() { return defBarTheme; },
		setDefBarTheme: function(theme) {

			defBarTheme = theme;
			return this;
		},
		
		getDefTitleTheme: function() { return defTitleTheme; },
		setDefTitleTheme: function(theme) {

			defTitleTheme = theme;
			return this;
		},
		
		getDefTabTheme: function() { return defTabTheme; },
		setDefTabTheme: function(theme) {

			defTabTheme = theme;
			return this;
		},
		
		getDefActionBarTheme: function() { return defActionBarTheme; },
		setDefActionBarTheme: function(theme) {

			defActionBarTheme = theme;
			return this;
		},
		
		getDefListTheme: function() { return defListTheme; },
		setDefListTheme: function(theme) {

			defListTheme = theme;
			return this;
		},
		
		getDefActionCmdTheme: function() { return defActionCmdTheme; },
		setDefActionCmdTheme: function(theme) {

			defActionCmdTheme = theme;
			return this;
		},
		
		getDefAccordTheme: function() { return defAccordionTheme; },
		setDefAccordTheme: function(theme) {

			defAccordionTheme = theme;
			return this;
		},
		
		getDefInputTheme: function() { return defInputTheme; },
		setDefInputTheme: function(theme) {

			defInputTheme = theme;
			return this;
		},
		
		getBoxThemeSuffix: function() {
			if ((activeUserThemes) && (typeof activeUserThemes.boxThemeSuffix !== "undefined")) {
				return activeUserThemes.boxThemeSuffix;
			} else {
				return defaultUserThemes.boxThemeSuffix;
			}
		},
		setBoxThemeSuffix: function(suffix) {

			if ((activeUserThemes) && (typeof activeUserThemes.boxThemeSuffix !== "undefined")) {
				activeUserThemes.boxThemeSuffix = suffix;
				return this;
			} else {
				defaultUserThemes.boxThemeSuffix = suffix;
				return this;
			}
		},
		resetBoxThemeSuffix: function() {
			if ((activeUserThemes) && (typeof activeUserThemes.boxThemeSuffix !== "undefined")) {
				activeUserThemes.boxThemeSuffix = defHdrThmSfx;
				return this;
			} else {
				defaultUserThemes.boxThemeSuffix = defHdrThmSfx;
				return this;
			}
		},
		
		getHeaderThemeSuffix: function() {
			if ((activeUserThemes) && (typeof activeUserThemes.headerThemeSuffix !== "undefined")) {
				return activeUserThemes.headerThemeSuffix;
			} else {
				return defaultUserThemes.headerThemeSuffix;
			}
		},
		setHeaderThemeSuffix: function(suffix) {

			if ((activeUserThemes) && (typeof activeUserThemes.headerThemeSuffix !== "undefined")) {
				activeUserThemes.headerThemeSuffix = suffix;
				return this;
			} else {
				defaultUserThemes.headerThemeSuffix = suffix;
				return this;
			}
		},
		resetHeaderThemeSuffix: function() {
			if ((activeUserThemes) && (typeof activeUserThemes.headerThemeSuffix !== "undefined")) {
				activeUserThemes.headerThemeSuffix = defHdrThmSfx;
				return this;
			} else {
				defaultUserThemes.headerThemeSuffix = defHdrThmSfx;
				return this;
			}
		},
		
		getBodyThemeSuffix: function() {
			if ((activeUserThemes) && (typeof activeUserThemes.bodyThemeSuffix !== "undefined")) {
				return activeUserThemes.bodyThemeSuffix;
			} else {
				return defaultUserThemes.bodyThemeSuffix;
			}
		},
		setBodyThemeSuffix: function(suffix) {

			if ((activeUserThemes) && (typeof activeUserThemes.bodyThemeSuffix !== "undefined")) {
				activeUserThemes.bodyThemeSuffix = suffix;
				return this;
			} else {
				defaultUserThemes.bodyThemeSuffix = suffix;
				return this;
			}
		},
		resetBodyThemeSuffix: function() {
			if ((activeUserThemes) && (typeof activeUserThemes.bodyThemeSuffix !== "undefined")) {
				activeUserThemes.bodyThemeSuffix = defBdyThmSfx;
				return this;
			} else {
				defaultUserThemes.bodyThemeSuffix = defBdyThmSfx;
				return this;
			}
		},
		
		refreshDefBoxThemes: function() {
			defBasicTheme = activeUserThemes.theme00 || defaultUserThemes.theme00;
			defBarTheme = activeUserThemes.theme10 || defaultUserThemes.theme10;
			defBtnBarTheme = activeUserThemes.theme20 || defaultUserThemes.theme20;
			defTitleTheme = activeUserThemes.theme30 || defaultUserThemes.theme30;
			defTabTheme = activeUserThemes.theme40 || defaultUserThemes.theme40;
			defActionBarTheme = activeUserThemes.theme50 || defaultUserThemes.theme50;
			defListTheme = activeUserThemes.theme50 || defaultUserThemes.theme50;
			defActionCmdTheme = activeUserThemes.theme60 || defaultUserThemes.theme60;
			defAccordionTheme = activeUserThemes.theme70 || defaultUserThemes.theme70;
			defInputTheme = "activeUserThemes.theme80 || defaultUserThemes.theme80";
			return this;
		},
		
		getTheme: function(box, boxType) {


			var intlClasses = internalClasses;
			var themeKey;
			var defaultAlternate;
			
			switch (boxType) {
				case basicBoxTypes.headlessBox:
					themeKey = "theme0";
					defaultAlternate = defBasicTheme;
					break;
				case boxVariants.bar:
					themeKey = "theme1";
					defaultAlternate = defBarTheme;
					break;
				case basicBoxTypes.btnBarBox:
					themeKey = "theme2";
					defaultAlternate = defBtnBarTheme;
					break;
				case basicBoxTypes.titleBox:
					themeKey = "theme3";
					defaultAlternate = defTitleTheme;
					break;
				case basicBoxTypes.tabBox:
					themeKey = "theme4";
					defaultAlternate = defTabTheme;
					break;
				case boxVariants.actionBar:
					themeKey = "theme5";
					defaultAlternate = defActionBarTheme;
					break;
				case boxVariants.list:
					themeKey = "theme5";
					defaultAlternate = defListTheme;
					break;
				case boxVariants.command:
					themeKey = "theme6";
					defaultAlternate = defActionCmdTheme;
					break;
				case boxVariants.accordion:
					themeKey = "theme7";
					defaultAlternate = defAccordionTheme;
					break;
				case basicBoxTypes.inputBox:
					themeKey = "theme8";
					defaultAlternate = defInputTheme;
					break;
				default:
					themeKey = defaultTheme;
			}
			
			if (themeKey === defaultTheme) { return defaultTheme; }
			
			for (var i = 0; i < 10; i++) {
				if ($(box).hasClass(activeUserThemes[themeKey + i])) {

					return activeUserThemes[themeKey + i];
				}
			}
			return defaultAlternate;
		}
	};

	ezBox.validator = {

		validateActiveClasses: function(){
			if (typeof activeUserClasses !== "object") return false;



			for (var defClass in defaultUserClasses) {
				if (defClass in activeUserClasses) {
					continue;
				} else {
					alert("Missing default class key \"" + defClass);
					return false;
				}
			}


			for (var actClass in activeUserClasses) {
				if (actClass in defaultUserClasses) {
					continue;
				} else {
					alert("Unknown key for active user class  \"" + actClass);
					return false;
				}
			}


			for (var actClass in activeUserClasses) {
				if (!(this.isWord(activeUserClasses[actClass]))) {
					alert("Invalid class name \"" + activeUserClasses[actClass] + "\" in key \"" + actClass + "\"");
					return false;
				}
			}
			return true;
		},
		validateActiveThemes: function(){
			if (typeof activeUserThemes !== "object") return false;



			for (var defTheme in defaultUserThemes) {
				if (defTheme in activeUserThemes) {
					continue;
				} else {
					alert("Missing default theme key \"" + defTheme);
					return false;
				}
			}


			for (var actTheme in activeUserThemes) {
				if (actTheme in defaultUserThemes) {
					continue;
				} else {
					alert("Unknown key active user theme \"" + actTheme);
					return false;
				}
			}


			for (var actTheme in activeUserThemes) {
				if (!(this.isWord(activeUserThemes[actTheme]))) {
					alert("Invalid theme name \"" + activeUserThemes[actTheme] +
							"\" associated with key \"" + actTheme + "\"");
					return false;
				}
			}

			return true;
		},

  		validateProxies: function(proxies, ctrlMap) {

			var objMsg = "Found unsupported argument instead of proxy classes object.";
			var keyMsg = "Found unsupported substitute class key";
			var valueMsg = "Found invalid substitute class value";
			
			if (typeof proxies === "object") {

				for (var key in proxies) {
					if (this.isValidProxyKey(key, ctrlMap)) {


						if (!(this.isWord(proxies[key]))) {
							alert(valueMsg + " - (" + key + ":" + proxies[key] + ")");
							return false;
						} else {
							continue;
						}
					} else {
						alert(keyMsg + " - (" + key + ":" + proxies[key] + ")");
						return false;
					}
				}
				return true;
			} else {
				alert(objMsg);
				return false;
			}
		},

		isValidProxyKey: function(key, ctrlMap) {
			if ((key) && (typeof key === "string")) {

				return (key in ctrlMap);
			} else {
				return false;
			}
		},

		validateHeaders: function(headerMap) {

			var objMsg = "Found unsupported argument instead of map object.";
			var keyMsg = "Found unsupported header key";
			var valueMsg = "Found invalid value for header key";
			var strValMsg = "Found invalid type of value for header key. String expected";
			var objValMsg = "Found invalid type of value for header key. Map object expected";
			if (typeof headerMap === "object") {


				keyCheck: for (var key in headerMap) {
					if (this.isValidHeaderKey(key)) {
						if ((key === "tabs") || (key === "text") || (key === "image")) {
							if (typeof headerMap[key] === "object") {
								subKeyCheck: for (var subKey in headerMap[key]) {
									if (this.isValidHeaderKey(subKey)) {
										if (typeof headerMap[key][subKey] !== "string") {
											alert(strValMsg + " - (" + subKey + ": type is \"" + (typeof headerMap[key][subKey]) + "\")");
											return false;
										} else if (!(this.isWord(headerMap[key][subKey]))) {
											alert(valueMsg + " - (" + subKey + ":" + headerMap[key][subKey] + ")");
											return false;
										}
									} else {
										alert(keyMsg + " - (" + subKey + ":" + headerMap[key][subKey] + ")");
										return false;
									}
								}
							} else {
								alert(objValMsg + " - (" + key + ":\"" + (typeof headerMap[key]) + "\")");
								return false;
							}
						} else if (typeof headerMap[key] !== "string") {
							alert(strValMsg + " - (" + key + ": type is \"" + (typeof headerMap[key]) + "\")");
							return false;
						} else if (!(this.isWord(headerMap[key]))) {
							alert(valueMsg + " - (" + key + ":" + headerMap[key] + ")");
							return false;
						}
					} else {
						alert(keyMsg + " - (" + key + ":" + headerMap[key] + ")");
						return false;
					}
				}
				return true;
			} else {
				alert(objMsg);
				return false;
			}
		},
		isValidHeaderKey: function(key) {
			if ((key) && (typeof key === "string")) {

				switch (key) {
					case "title": return true;
					case "tabs": return true;
					case "text": return true;
					case "image": return true;
					default: return false;
				}
			}else {
				return false;
			}
		},
		isBoxHtml: function(box) {


			if (typeof activeUserClasses !== "object") return false;
			if (typeof activeUserClasses.box === "undefined") return false;
			if (!((box) && (typeof box.tagName !== "undefined"))) return false;
			if (box.tagName !== "DIV") return false;
			if ($(box).hasClass(activeUserClasses.box)) return true;
			return false;


		},
		isBoxQuery: function(box) {


			if (typeof activeUserClasses !== "object") return false;
			if (typeof activeUserClasses.box === "undefined") return false;
			if (!((box) && (typeof box === "object"))) return false;
			if (!(box instanceof jQuery)) return false;
			if (box.length !== 1) return false;
			if ($(box).hasClass(activeUserClasses.box)) return true;
			return false;


		},
		isBoxType: function(type) {
			if ((type) && (typeof type === "string")) {

				switch (type) {
					case basicBoxTypes.headlessBox: return true;
					case basicBoxTypes.btnBarBox: return true;
					case basicBoxTypes.titleBox: return true;
					case basicBoxTypes.tabBox: return true;
					case basicBoxTypes.inputBox: return true;
					default: return false;
				}
			}else {
				return false;
			}
		},

		isCustomEvent: function(event) {
			if ((event) && (typeof event === "string")) {

				for (var e in customEvents) {
					if (event === customEvents[e]) {
						return true;
					}
				}
				return false;
			} else {
				return false;
			}
		},
		isTabStsCode: function(num) {
			if ((num) && (typeof num === "number")) {

				for (var n in tabStsCodes) {
					if (num === tabStsCodes[n]) {
						return true;
					}
				}
				return false;
			} else {
				return false;
			}
		},

		isTag: function(tag, elementName) {
			if (arguments.length < 1) {
				return false;
			} else if (!((tag) && (typeof tag.tagName !== "undefined"))) {
				return false;
			}
			
			if (arguments.length > 1) {
				if (!(this.isWord(elementName))) {
					return false;
				} else if (tag.tagName === elementName){
					return true;
				} else {
					return false;
				}
			} else {
				return true;
			}
		},
		isCharString: function(value) {
			if ((typeof value === "string") && (value !== "") && (value !== " ")) return true; return false;
		},
		isEmptyString: function(value) {
			if ((typeof value === "string") && (value === "")) return true; return false;
		},

		isWord: function(value) {
			if ((typeof value === "string") 
					&& (value !== "") 
					&& (value.indexOf(" ") === -1 )) return true; return false;
		}
	};
	ezBox.instance = {




























		getType: function(boxObj) {
			var userClasses = activeUserClasses;
			var intlClasses = internalClasses;
			var box;
			
			if (ezBox.validator.isBoxHtml(boxObj)) {
				if ($(boxObj).hasClass(intlClasses.initialized)) {
					return getPostInitType(boxObj);
				} else {
					box = boxObj;
				}
			} else if (ezBox.validator.isBoxQuery(boxObj)) {
				if (boxObj.hasClass(intlClasses.initialized)) {
					var initBox;
					boxObj.each(function(){initBox = this;});
					return getPostInitType(initBox);
				} else {
					boxObj.each(function(){box = this;});
				}
			} else {
				return "unknown";
			}
			
			var tabs = $(box).children("div." + userClasses.tab);
			var title = $(box).children("div." + userClasses.title);
			var singletonImageButtons = $(box).children("div." + userClasses.imageButton);
			var singletonTextButtons = $(box).children("div." + userClasses.textButton);
			var singletonInputButtons = $(box).children("input." + userClasses.inputButton);
			var singletonButtons = $().add(singletonImageButtons).add(singletonTextButtons).add(singletonInputButtons);
			var btnGroups = $(box).children("div." + userClasses.buttonGroup);
			var contents = $(box).children("div." + userClasses.content);
			var groupedButtons = $()
					.add(btnGroups.children("div." + userClasses.imageButton))
					.add(btnGroups.children("div." + userClasses.textButton))
					.add(btnGroups.children("input." + userClasses.inputButton));
					
			if ((tabs.length > 0) && (title.length > 0)) {
				return intlClasses.unknown;
			} else if ((tabs.length === 0) && (title.length === 0)) {






				if ((singletonButtons.length > 0) || (groupedButtons.length > 0)) { 
					return basicBoxTypes.btnBarBox;
				} else if (($(box).hasClass(userClasses.bar)) 
						&& ($(box).hasClass(userClasses.noButton))) {

					return boxVariants.bar;
				} else if ($(box).hasClass(userClasses.bar)) {
					return basicBoxTypes.btnBarBox;
				} else if (contents.length === 0) {

					return basicBoxTypes.unknown;
				} else {
					if ($(box).hasClass(userClasses.actionBar)) {
						return boxVariants.actionBar;
					} else if ($(box).hasClass(userClasses.list)) {
						return boxVariants.list;
					} else {
						return basicBoxTypes.headlessBox;
					}
				}
			} else if (title.length === 1) {
				if ($(box).hasClass(userClasses.actionCommand)) {
					return boxVariants.command;
				} else if ($(box).hasClass(userClasses.accordion)) {
					return boxVariants.accordion;
				} else {
					return basicBoxTypes.titleBox;
				}
			} else if (tabs.length > 0) {
				return basicBoxTypes.tabBox;
			} else {
				return basicBoxTypes.unknown;
			}

			function getPostInitType(initBx) {
				if ($(initBx).hasClass(intlClasses.barBox)) {
					return boxVariants.bar;
				} else if ($(initBx).hasClass(intlClasses.actionBox)) {
					return boxVariants.actionBar;
				} else if ($(initBx).hasClass(intlClasses.listBox)) {
					return boxVariants.list;
				} else if ($(initBx).hasClass(intlClasses.commandBox)) {
					return boxVariants.command;
				} else if ($(initBx).hasClass(intlClasses.accordionBox)) {
					return boxVariants.accordion;
				} else if ($(initBx).hasClass(intlClasses.headlessBox)) {
					return basicBoxTypes.headlessBox;
				} else if ($(initBx).hasClass(intlClasses.btnBarBox)) {
					return basicBoxTypes.btnBarBox;
				} else if ($(initBx).hasClass(intlClasses.titleBox)) {
					return basicBoxTypes.titleBox;
				} else if ($(initBx).hasClass(intlClasses.tabBox)) {
					return basicBoxTypes.tabBox;
				} else if ($(initBx).hasClass(intlClasses.inputBox)) {
					return basicBoxTypes.inputBox;
				} else {
					return "unknown";
				}
			}
		},







		doStyle: function (boxElem) {
			var boxType = this.getType(boxElem);

			if (boxType === basicBoxTypes.unknown) {return this;}
			
			var ok = true;
			var currentBox = boxElem; 
			var userClasses = activeUserClasses;
			var intlClasses = internalClasses;
			var boxTheme = ezBox.themes.getTheme(currentBox, boxType);

			setVisibilityOff(currentBox);
			setDisplayOff(currentBox);
			addBoxMargins(currentBox);

			switch (boxType) {
				case basicBoxTypes.headlessBox:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.headlessBox);
					break;
				case basicBoxTypes.btnBarBox:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.btnBarBox);
					formatBtnBarHeader(currentBox);
					break;
				case basicBoxTypes.titleBox:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.titleBox);
					formatTitleHeader(currentBox);
					break;
				case basicBoxTypes.tabBox:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.tabBox);
					formatTabHeader(currentBox);
					break;
				case basicBoxTypes.inputBox:





					return this;
				case boxVariants.bar:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.headlessBox);
					$(currentBox).addClass(intlClasses.barBox);
					formatBarHeader(currentBox);
					break;
				case boxVariants.actionBar:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.headlessBox);
					$(currentBox).addClass(intlClasses.actionBox);
					break;
				case boxVariants.list:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.headlessBox);
					$(currentBox).addClass(intlClasses.listBox);
					break;
				case boxVariants.command:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.titleBox);
					$(currentBox).addClass(intlClasses.commandBox);
					formatTitleHeader(currentBox);
					break;
				case boxVariants.accordion:
					if(!ok){return this;}
					$(currentBox).addClass(intlClasses.box);
					$(currentBox).addClass(intlClasses.titleBox);
					$(currentBox).addClass(intlClasses.accordionBox);
					formatTitleHeader(currentBox);
					break;
				default: return this;
			}
			
			formatBoxBody(currentBox);
			addClasses(currentBox);

			function formatTabHeader(box) {

				var header = $().add($(box).children("div." + userClasses.tab))
								.add($(box).children("div." + userClasses.imageButton))
								.add($(box).children("div." + userClasses.textButton))
								.add($(box).children("div." + userClasses.buttonGroup));
				var tabs = $(box).children("div." + userClasses.tab);
				var tabFirst = $(box).children("div." + userClasses.tab + ":first");
				var tabLast = $(box).children("div." + userClasses.tab + ":last");
				var buttons = $().add($(box).children("div." + userClasses.imageButton))
								.add($(box).children("div." + userClasses.textButton))
								.add($(box).children("div." + userClasses.buttonGroup));






				
				if ((header.length > 0) && (tabs.length > 0)) {
					if ($(box).hasClass(userClasses.flushHeader)) {
						$(header).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.tabHeader + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>");
					} else if ($(box).hasClass(userClasses.flushHeaderTight)) {
						$(header).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.tabHeader + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>");
					} else {
						$(header).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.tabHeader + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_l + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_r + "'>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>");
					}
					$(tabs).wrapAll("<div class='" + intlClasses.tabContainer + "'>" +
										"</div>");
										
					if (($(box).hasClass(userClasses.adjacentTabs)) || (tabs.length === 1)) {
						$(tabs).wrap("<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t + "'>" +
									"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_l_otr + "'>" +
									"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_r_otr + "'>" +
									"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t_l_otr + "'>" +
									"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t_r_otr + "'>" +
									"</div>" +
									"</div>" +
									"</div>" +
									"</div>");
					} else {
						if (tabs.length > 1) {
							$(tabs).not(tabFirst).not(tabLast)
									.wrap("<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_l_inr + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t_l_inr + "'>" +
										"</div>" +
										"</div>" +
										"</div>");
							$(tabFirst).wrap("<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_l_otr + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t_l_otr + "'>" +
										"</div>" +
										"</div>" +
										"</div>");
							$(tabLast).wrap("<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_l_inr + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_r_otr + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t_l_inr + "'>" +
										"<div class='" + intlClasses.tabBg + " " + intlClasses.tabBg_t_r_otr + "'>" +
										"</div>" +
										"</div>" +
										"</div>" +
										"</div>" +
										"</div>");

						}
					}
					if (buttons.length > 0) {
						$(buttons).wrapAll("<div class='" + intlClasses.buttonContainer + "'></div>");
					
						$("<div class='" + intlClasses.defaultButtonGroup + "'>" +
								"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
									"' title='box description, help, info, etc.'>&nbsp;</div>" +
								"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
									"' title='Click to collapse'>&nbsp;</div>" +
							"</div>")
							.prependTo($(box).children("div." + intlClasses.tabHeader + ":first").find("div." + intlClasses.buttonContainer + ":first"));
						return;
					} else {
						$(box).children("div." + intlClasses.tabHeader + ":first").find("div." + intlClasses.tabContainer + ":first").after(
							"<div class='" + intlClasses.buttonContainer + "'>" +
								"<div class='" + intlClasses.defaultButtonGroup + "'>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
										"' title='box description, help, info, etc.'>&nbsp;</div>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
										"' title='Click to collapse'>&nbsp;</div>" +
								"</div>" +
							"</div>");
						return;
					}
				} else {
					return;
				} 
			}

			
			
			function formatTitleHeader(box) {

				
				var header = $().add($(box).children("div." + userClasses.title))
								.add($(box).children("div." + userClasses.imageButton))
								.add($(box).children("div." + userClasses.textButton))
								.add($(box).children("div." + userClasses.buttonGroup));
				var title = $(box).children("div." + userClasses.title);
				var buttons = $().add($(box).children("div." + userClasses.imageButton))
								.add($(box).children("div." + userClasses.textButton))
								.add($(box).children("div." + userClasses.buttonGroup));




				
				if ((header.length > 0) && (title.length === 1)) {
					if ($(box).hasClass(userClasses.flushHeader)) {
						$(header).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.titleHeader + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>");
					} else if ($(box).hasClass(userClasses.flushHeaderTight)) {
						$(header).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.titleHeader + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>");
					} else {
						$(header).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.titleHeader + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_l + "'>" +
											"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_r + "'>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>" +
											"</div>");
					}
					if ($(box).hasClass(userClasses.actionCommand)){
						$(box).children("div." + intlClasses.titleHeader + ":first")
								.addClass(intlClasses.commandHeader);
						return;
					}
					
					if ($(box).hasClass(userClasses.accordion)) {
						$(box).children("div." + intlClasses.titleHeader + ":first")
								.addClass(intlClasses.accordionHeader);
						
						if (buttons.length > 0) {
							$(buttons).wrapAll("<div class='" + intlClasses.buttonContainer + "'></div>");
						
							$("<div class='" + intlClasses.defaultButtonGroup + "'>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn + 
										"' title='box description, help, info, etc.'>&nbsp;</div>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseAll + " " + intlClasses.collapseAllDisabled + 
										"' title='Collapse All'>&nbsp;</div>" +
								"</div>")
								.prependTo($(box).children("div." + intlClasses.titleHeader + ":first").find("div." + intlClasses.buttonContainer + ":first"));
							
							$(box).children("div." + intlClasses.titleHeader + ":first").find("div." + userClasses.title + ":first").before(
								"<div class='" + intlClasses.collapseAcrdn + " " + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
									"' title='Click to collapse'>&nbsp;</div>");
							return;
						} else {
							$(box).children("div." + intlClasses.titleHeader + ":first").find("div." + userClasses.title + ":first").after(
								"<div class='" + intlClasses.buttonContainer + "'>" +
									"<div class='" + intlClasses.defaultButtonGroup + "'>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
											"' title='box description, help, info, etc.'>&nbsp;</div>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseAll + " " + intlClasses.collapseAllDisabled + 
										"' title='Collapse All'>&nbsp;</div>" +
									"</div>" +
								"</div>");
							$(box).children("div." + intlClasses.titleHeader + ":first").find("div." + userClasses.title + ":first").before(
								"<div class='" + intlClasses.collapseAcrdn + " " + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
									"' title='Click to collapse'>&nbsp;</div>");
							return;
						} 
					} else {
						if (buttons.length > 0) {
							$(buttons).wrapAll("<div class='" + intlClasses.buttonContainer + "'></div>");
						
							$("<div class='" + intlClasses.defaultButtonGroup + "'>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn + 
										"' title='box description, help, info, etc.'>&nbsp;</div>" +
									"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
										"' title='Click to collapse'>&nbsp;</div>" +
								"</div>")
								.prependTo($(box).children("div." + intlClasses.titleHeader + ":first").find("div." + intlClasses.buttonContainer + ":first"));
							return;
						} else {
							$(box).children("div." + intlClasses.titleHeader + ":first").find("div." + userClasses.title + ":first").after(
								"<div class='" + intlClasses.buttonContainer + "'>" +
									"<div class='" + intlClasses.defaultButtonGroup + "'>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
											"' title='box description, help, info, etc.'>&nbsp;</div>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
											"' title='Click to collapse'>&nbsp;</div>" +
									"</div>" +
								"</div>");
							return;
						}
					}
				} else {
					return;
				}
			}
			

			function formatBtnBarHeader(box) {

				
				var buttons = $().add($(box).children("div." + userClasses.imageButton))
								.add($(box).children("div." + userClasses.textButton))
								.add($(box).children("div." + userClasses.buttonGroup));


				
				if (buttons.length > 0) {
					if ($(box).hasClass(userClasses.flushHeader)) {
							$(buttons).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.btnBarHeader + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + 
										" " + intlClasses.buttonBar + "'>" +
									"<div class='" + intlClasses.buttonContainer + "'></div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>");
					} else if ($(box).hasClass(userClasses.flushHeaderTight)) {
							$(buttons).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.btnBarHeader + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t +
										" " + intlClasses.buttonBar + "'>" +
									"<div class='" + intlClasses.buttonContainer + "'></div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>");
					} else {
							$(buttons).wrapAll("<div class='" + intlClasses.boxHeader + " " + intlClasses.btnBarHeader + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_l + "'>" +
								"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_r +
										" " + intlClasses.buttonBar + "'>" +
									"<div class='" + intlClasses.buttonContainer + "'></div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>" +
								"</div>");
					}
					
					$("<div class='" + intlClasses.defaultButtonGroup + "'>" +
							"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
								"' title='box description, help, info, etc.'>&nbsp;</div>" +
							"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
								"' title='Click to collapse'>&nbsp;</div>" +
						"</div>")
						.prependTo($(box).children("div." + intlClasses.btnBarHeader + ":first").find("div." + intlClasses.buttonContainer + ":first"));
					return;
				} else {
					if ($(box).hasClass(userClasses.flushHeader)) {
						$("<div class='" + intlClasses.boxHeader + " " + intlClasses.btnBarHeader + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r +
									" " + intlClasses.buttonBar + "'>" +
								"<div class='" + intlClasses.buttonContainer + "'>" +
									"<div class='" + intlClasses.defaultButtonGroup + "'>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
											"' title='box description, help, info, etc.'>&nbsp;</div>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
											"' title='Click to collapse'>&nbsp;</div>" +
									"</div>" +
								"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>")
							.prependTo(box);
						return;
					} else if ($(box).hasClass(userClasses.flushHeaderTight)) {
						$("<div class='" + intlClasses.boxHeader + " " + intlClasses.btnBarHeader + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t +
									" " + intlClasses.buttonBar + "'>" +
								"<div class='" + intlClasses.buttonContainer + "'>" +
									"<div class='" + intlClasses.defaultButtonGroup + "'>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
											"' title='box description, help, info, etc.'>&nbsp;</div>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn +
											"' title='Click to collapse'>&nbsp;</div>" +
									"</div>" +
								"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>")
							.prependTo(box);
						return;
					} else {
						$("<div class='" + intlClasses.boxHeader + " " + intlClasses.btnBarHeader + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_l + "'>" +
							"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_r + 
									" " + intlClasses.buttonBar + "'>" +
								"<div class='" + intlClasses.buttonContainer + "'>" +
									"<div class='" + intlClasses.defaultButtonGroup + "'>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.infoBtn +
											"' title='box description, help, info, etc.'>&nbsp;</div>" +
										"<div class='" + intlClasses.defaultImageButton + " " + intlClasses.collapseBtn + 
											"' title='Click to collapse'>&nbsp;</div>" +
									"</div>" +
								"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>" +
							"</div>")
							.prependTo(box);
						return;
					}
					
				}
			}

			

			function formatBarHeader(box) {


				if ($(box).hasClass(userClasses.flushHeader)) {
					$("<div class='" + intlClasses.boxHeader + " " + intlClasses.barHeader + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r +
								" " + intlClasses.decorBar + "'>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>").prependTo(box);
					return;
				} else if ($(box).hasClass(userClasses.flushHeaderTight)) {
					$("<div class='" + intlClasses.boxHeader + " " + intlClasses.barHeader + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t +
								" " + intlClasses.decorBar + "'>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>").prependTo(box);
					return;
				} else {
					$("<div class='" + intlClasses.boxHeader + " " + intlClasses.barHeader + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_context + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_fill + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_l + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_r + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_l + "'>" +
						"<div class='" + intlClasses.headerBg + " " + intlClasses.headerBg_t_r + 
								" " + intlClasses.decorBar + "'>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>" +
						"</div>").prependTo(box);
					return;
				}
			}


			function formatTextHeader(box) {
				
			}


			function formatBoxBody(box) {

				var contents = $(box).children("div." + userClasses.content);

				
				
				if (contents.length > 0) {
					if (boxType !== basicBoxTypes.headlessBox) {
						$(box).children("div." + userClasses.content + ":first").before(
										"<div class='clear_both'>" +
											"<!-- This is just for clearance of floats. Do not delete -->" +
										"</div>");
					}
					if (boxType === basicBoxTypes.tabBox){
						if ($(box).hasClass(userClasses.noContentBorder)) {
							$(contents).wrapAll("<div class='" + intlClasses.boxBody + " " + intlClasses.noContentBorder + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_context + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_fill + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"</div>" +
												"</div>" +
												"</div>");
						} else {
							$(contents).wrapAll("<div class='" + intlClasses.boxBody + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_context + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_fill + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>");
						}
						$(box).children("div." + intlClasses.boxBody + ":first")
								.addClass(intlClasses.tabBody);
						return;

					} else if ((boxType === basicBoxTypes.titleBox) 
							|| (boxType === boxVariants.command) 
							|| (boxType === boxVariants.accordion) 
							|| (boxType === basicBoxTypes.btnBarBox) 
							|| (boxType === boxVariants.bar)) {
						if ($(box).hasClass(userClasses.noContentBorder)) {
							$(contents).wrapAll("<div class='" + intlClasses.boxBody + " " + intlClasses.noContentBorder + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_context + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_fill + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"</div>" +
												"</div>" +
												"</div>");
						} else {
							$(contents).wrapAll("<div class='" + intlClasses.boxBody + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_context + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_fill + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>");
						}
						switch (boxType) {
							case basicBoxTypes.titleBox:
								$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.titleBody);
								break;
							case boxVariants.command:
								$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.commandBody);
								break;
							case boxVariants.accordion:
								$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.accordionBody);
								break;
							case basicBoxTypes.btnBarBox:
								$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.btnBarBody);
								break;
							case boxVariants.bar:
								$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.barBody);
								break;
						}
						return;
					} else if ((boxType === basicBoxTypes.headlessBox)
							|| (boxType === boxVariants.actionBar)
							|| (boxType === boxVariants.list)) {
						
						if ($(box).hasClass(userClasses.noContentBorder)) {
							$(contents).wrapAll("<div class='" + intlClasses.boxBody + " " + intlClasses.headlessBody + 
												" " + intlClasses.noContentBorder + "'>" +
											"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_context + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
											"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_fill + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
											"</div>" +
											"</div>" +
											"</div>");
						} else {
							$(contents).wrapAll("<div class='" + intlClasses.boxBody + " " + intlClasses.headlessBody + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_context + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_fill + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_t_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b_l + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"<div class='" + intlClasses.bodyBg + " " + intlClasses.bodyBg_b_r + "_" + ezBox.ez.getBoxCode(boxType) + "'>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>" +
												"</div>");
						}
						if ($(box).hasClass(userClasses.actionBar)) {
							$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.actionBody);
						} else if ($(box).hasClass(userClasses.list)) {
							$(box).children("div." + intlClasses.boxBody + ":first")
										.addClass(intlClasses.listBody);							
						}
						if ((boxType !== basicBoxTypes.headlessBox)
							&& (boxType !== boxVariants.list)) {
							$("<div class='clear_both'>" +
										"<!-- This is just for clearance of floats. Do not delete -->" +
									"</div>").appendTo($(box)
											.children("div." + intlClasses.boxBody + ":first")
											.find("div." + userClasses.content + ":first"));
							return;
						}
					}
					return;
				} else if (boxType !== basicBoxTypes.headlessBox) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.after("<div class='clear_both'>" + 
										"<!-- This is just for clearance of floats. Do not delete -->" +
								  "</div>");
					return;
				}
				return;
			}
			
			
			
			function addClasses(box) {



				var firstBoxBody;
				var nstdBoxBodies;
				var boxBody = $();
				var allContents;
				var nestedBoxContents;
				var boxContent = $();
				

				$(box).addClass(boxTheme + activeUserThemes.boxThemeSuffix);
				
				firstBoxBody = $(box).children("div." + intlClasses.boxBody + ":first");
				if (firstBoxBody.length > 0) {
					nstdBoxBodies = $(box).find("div." + userClasses.box).find("div." + intlClasses.boxBody);	
					boxBody = firstBoxBody.not(nstdBoxBodies);
				}
				
				if (boxBody.length > 0) {
					allContents = boxBody.find("div." + userClasses.content);
					if (allContents.length > 0) {
						nestedBoxContents = boxBody.find("div." + userClasses.box).find("div." + userClasses.content);
						boxContent = allContents.not(nestedBoxContents);

						if (boxContent.length > 0) {
							addContentClasses(box, boxContent);
						}
					}

					boxBody.addClass(boxTheme + activeUserThemes.bodyThemeSuffix);
				}
				
				if ((boxType !== basicBoxTypes.headlessBox) 
						&& (boxType !== boxVariants.actionBar)
						&& (boxType !== boxVariants.list)) {

					$(box).children("div." + intlClasses.boxHeader + ":first")
							.addClass(boxTheme + activeUserThemes.headerThemeSuffix);
					

					if ((boxBody.length > 0) 
							&& (!($(box).hasClass(userClasses.noContentBorder)))) {
						if ($(box).hasClass(userClasses.bodyTopOn)) {
							boxBody.addClass(intlClasses.bodyTopOn);
						}
						if ($(box).hasClass(userClasses.bodyTopLeftOn)) {
							boxBody.addClass(intlClasses.bodyTopLeftOn);
						}
						if ($(box).hasClass(userClasses.bodyTopRightOn)) {
							boxBody.addClass(intlClasses.bodyTopRightOn);
						}
					}
					
					setCollapse(box, boxBody);
					setHeaderHeight(box);
					flushHeader(box);
					addHdrBdr(box);

					if ((boxType !== boxVariants.bar)){
						$(box).children("div." + intlClasses.boxHeader + ":first")
								.find("div." + intlClasses.headerBg_context + ":first")
								.addClass(intlClasses.uncollapsed);
						addButtonClasses(box);
					}
				}
				
				if (boxType === basicBoxTypes.headlessBox) {
					clsfyHeadlessBx(box, boxBody);
				} else if (boxType === boxVariants.list) {
					formatLists(box);
				} else if (boxType === boxVariants.bar) {
					clsfyBarBx(box, boxBody);
				} else if (boxType === basicBoxTypes.btnBarBox) {
					clsfyButtonBarBx(box, boxBody) ;
				} else if ((boxType === basicBoxTypes.titleBox) 
						|| (boxType === boxVariants.command)
						|| (boxType === boxVariants.accordion)) {
					clsfyTitleBx(box);
				} else if (boxType === basicBoxTypes.tabBox) {
					clsfyTabBx(box);
				}
				return;
			}
			

			function setHeaderHeight(box) {

				if ($(box).hasClass(userClasses.minHeader)) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first")
						.addClass(intlClasses.minHeader);
				} else if ($(box).hasClass(userClasses.maxHeader)) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first")
						.addClass(intlClasses.maxHeader);
				} else {
					$(box).addClass(userClasses.maxHeader);
					$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first")
						.addClass(intlClasses.maxHeader);
				}
				return;
			}
			


			function flushHeader(box) {
				if ($(box).hasClass(userClasses.flushHeader)) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.headerBg_context + ":first")
							.addClass(intlClasses.flushHeader);
				} else if ($(box).hasClass(userClasses.flushHeaderTight)) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.headerBg_context + ":first")
							.addClass(intlClasses.flushHeaderTight);			
				}
				return;
			}
			

			function addHdrBdr(box) {
				var hdrContext = $(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return;}
						



				var borders  = 0;
				var bits;
				var sides = constants.sides;
				
				if ($(box).hasClass(userClasses.borderTop)){addUpperBits(sides.TOP);}
				if ($(box).hasClass(userClasses.borderLeft)){addUpperBits(sides.LEFT);}
				if ($(box).hasClass(userClasses.borderRight)){addUpperBits(sides.RIGHT);}
				if ($(box).hasClass(userClasses.borderBottom)){addUpperBits(sides.BOTTOM);}
				if ($(box).hasClass(userClasses.borderVertical)){addUpperBits(sides.VERTICALS);}
				if ($(box).hasClass(userClasses.borderHorizontal)){addUpperBits(sides.HORIZONTALS);}
				if ($(box).hasClass(userClasses.borderNotTop)){addUpperBits(sides.NOT_TOP);}
				if ($(box).hasClass(userClasses.borderNotLeft)){addUpperBits(sides.NOT_LEFT);}
				if ($(box).hasClass(userClasses.borderNotRight)){addUpperBits(sides.NOT_RIGHT);}
				if ($(box).hasClass(userClasses.borderNotBottom)){addUpperBits(sides.NOT_BOTTOM);}
				if ($(box).hasClass(userClasses.border)){addUpperBits(sides.ALL);}
				
				addClasses();
				
				function addUpperBits(side) {
					bits = side << 4;
					borders |= bits;
					return;
				}
				
				function addClasses() {

					if ((borders >> 7) === 1){
						hdrContext.addClass(intlClasses.borderTop + intlClasses.fixedBorder);
					}
					
					if ((((borders >> 6) | 2) ^ 2) === 1) {
						hdrContext.addClass(intlClasses.borderLeft + intlClasses.fixedBorder);
					}
					
					if ((((borders >> 5) | 6) ^ 6) === 1) {
						hdrContext.addClass(intlClasses.borderRight + intlClasses.fixedBorder);
					}
					
					if ((((borders >> 4) | 14) ^ 14) === 1) {
						hdrContext.addClass(intlClasses.borderBottom + intlClasses.fixedBorder);
					}
					return;
				}
				return;
			}
			


			function addButtonClasses(box) {
				var hdrContext = $(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return;}

				var buttonGroups = $(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.buttonContainer + ":first")
						.find("div." + userClasses.buttonGroup);
				var groupedImageButtons = buttonGroups
						.find("div." + userClasses.imageButton)
						.addClass(intlClasses.imageButton);
				var groupedTextButtons = buttonGroups
						.find("div." + userClasses.textButton)
						.addClass(intlClasses.textButton);
				var groupedButtons = $()
						.add(groupedImageButtons)
						.add(groupedTextButtons);
				
				$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.buttonContainer + ":first")
						.find("div." + userClasses.imageButton)
						.not(groupedImageButtons)
						.addClass(intlClasses.singltonImageButton);
					
				$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.buttonContainer + ":first")
						.find("div." + userClasses.textButton)
						.not(groupedTextButtons)
						.addClass(intlClasses.singltonTextButton);
					
				$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.buttonContainer + ":first")
						.find("div." + userClasses.buttonGroup)
						.addClass(intlClasses.buttonGroup);
					
				$(box).children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.buttonContainer + ":first")
						.find("div." + userClasses.groupLabel)
						.addClass(intlClasses.groupLabel);
			


				




				if ($(box).hasClass(userClasses.noDefaultButton)) {
					if (($(box).hasClass(userClasses.collapseButton)) 
							|| ($(box).hasClass(userClasses.infoButton))
							|| ($(box).hasClass(userClasses.allowCollapseAll))) {
						
						hdrContext.addClass(intlClasses.defaultButtonEach);
						
						if ($(box).hasClass(userClasses.collapseButton)) {
							hdrContext.addClass(intlClasses.collapseButton);	
						}
						if ($(box).hasClass(userClasses.infoButton)) {
							hdrContext.addClass(intlClasses.infoButton);	
						}
						if ($(box).hasClass(userClasses.allowCollapseAll)) {
							hdrContext.addClass(intlClasses.allowCollapseAll);	
						}
					} else {
						hdrContext.addClass(intlClasses.noDefaultButton);
					}
				}

				if ($(box).hasClass(userClasses.noCollapseButton)) {
					hdrContext.addClass(intlClasses.noCollapseButton);
				}
				if ($(box).hasClass(userClasses.noInfoButton)) {
					hdrContext.addClass(intlClasses.noInfoButton);
				}
				if ($(box).hasClass(userClasses.noCollapseAll)) {
					hdrContext.addClass(intlClasses.noCollapseAll);
				}
				if ($(box).hasClass(userClasses.noCustomButton)) {
					hdrContext.addClass(intlClasses.noCustomButton);
				}
				if ($(box).hasClass(userClasses.noButton)) {
					hdrContext.addClass(intlClasses.noButton);
				}
				return;
			}
			

			function addContentClasses(box, boxContent) {
				boxContent.addClass(intlClasses.content);
				addContFlsh(box, boxContent);
				return;
			}

			function addContFlsh(box, boxContent) {









				var flush  = 0;
				var bits;
				var sides = constants.sides;
				
				



				if ($(box).hasClass(userClasses.flushContentTop)){addUpperBits(sides.TOP);}
				if ($(box).hasClass(userClasses.flushContentLeft)){addUpperBits(sides.LEFT);}
				if ($(box).hasClass(userClasses.flushContentRight)){addUpperBits(sides.RIGHT);}
				if ($(box).hasClass(userClasses.flushContentBottom)){addUpperBits(sides.BOTTOM);}
				if ($(box).hasClass(userClasses.flushContentVertical)){addUpperBits(sides.HORIZONTALS);}
				if ($(box).hasClass(userClasses.flushContentHorizontal)){addUpperBits(sides.VERTICALS);}
				if ($(box).hasClass(userClasses.flushContentNotTop)){addUpperBits(sides.NOT_TOP);}
				if ($(box).hasClass(userClasses.flushContentNotLeft)){addUpperBits(sides.NOT_LEFT);}
				if ($(box).hasClass(userClasses.flushContentNotRight)){addUpperBits(sides.NOT_RIGHT);}
				if ($(box).hasClass(userClasses.flushContentNotBottom)){addUpperBits(sides.NOT_BOTTOM);}
				if ($(box).hasClass(userClasses.flushContent)){addUpperBits(sides.ALL);}
				
				if ($(box).hasClass(userClasses.flushContentTopTight)){addLowerBits(sides.TOP);}
				if ($(box).hasClass(userClasses.flushContentLeftTight)){addLowerBits(sides.LEFT);}
				if ($(box).hasClass(userClasses.flushContentRightTight)){addLowerBits(sides.RIGHT);}
				if ($(box).hasClass(userClasses.flushContentBottomTight)){addLowerBits(sides.BOTTOM);}
				if ($(box).hasClass(userClasses.flushContentVerticalTight)){addLowerBits(sides.HORIZONTALS);}
				if ($(box).hasClass(userClasses.flushContentHorizontalTight)){addLowerBits(sides.VERTICALS);}
				if ($(box).hasClass(userClasses.flushContentTightNotTop)){addLowerBits(sides.NOT_TOP);}
				if ($(box).hasClass(userClasses.flushContentTightNotLeft)){addLowerBits(sides.NOT_LEFT);}
				if ($(box).hasClass(userClasses.flushContentTightNotRight)){addLowerBits(sides.NOT_RIGHT);}
				if ($(box).hasClass(userClasses.flushContentTightNotBottom)){addLowerBits(sides.NOT_BOTTOM);}
				if ($(box).hasClass(userClasses.flushContentTight)){addLowerBits(sides.ALL);}
				
				addClasses();
				
				function addUpperBits(side) {
					bits = side << 4;
					flush |= bits;
					flush |= side;
					flush ^= side;
					return;
				}
				
				function addLowerBits(side) {
					flush |= side;
					bits = side << 4;
					flush |= bits;
					flush ^= bits;
					return;
				}
				
				function addClasses() {

					if ((flush >> 7) === 1){
						boxContent.addClass(intlClasses.flushContentTop);
					} else if ((((flush >> 3) | 30) ^ 30) === 1) {
						boxContent.addClass(intlClasses.flushContentTop + intlClasses.flushTight);
					} else {
						boxContent.addClass(intlClasses.contentTopNoFlush);
					}
					
					if ((((flush >> 6) | 2) ^ 2) === 1) {
						boxContent.addClass(intlClasses.flushContentLeft);
					} else if ((((flush >> 2) | 62) ^ 62) === 1) {
						boxContent.addClass(intlClasses.flushContentLeft + intlClasses.flushTight);
					} else {
						boxContent.addClass(intlClasses.contentLeftNoFlush);
					}
					
					if ((((flush >> 5) | 6) ^ 6) === 1) {
						boxContent.addClass(intlClasses.flushContentRight);
					} else if ((((flush >> 1) | 126) ^ 126) === 1) {
						boxContent.addClass(intlClasses.flushContentRight + intlClasses.flushTight);
					} else {
						boxContent.addClass(intlClasses.contentRightNoFlush);
					}
					
					if ((((flush >> 4) | 14) ^ 14) === 1) {
						boxContent.addClass(intlClasses.flushContentBottom);
					} else if (((flush | 254) ^ 254) === 1) {
						boxContent.addClass(intlClasses.flushContentBottom + intlClasses.flushTight);
					} else {
						boxContent.addClass(intlClasses.contentBottomNoFlush);
					}
					return;
				}
				return;
			}

			

			function clsfyHeadlessBx(box, boxBody) {
				if ($(box).hasClass(userClasses.accordion))  {
					if (boxBody.length > 0) {
						$(box).addClass(intlClasses.accordionBox);
						boxBody.addClass(intlClasses.accordionBody);
					}
				}
				return;
			}
			

			function clsfyBarBx(box, boxBody) {
				if ($(box).hasClass(userClasses.accordion)) {
					if (boxBody.length > 0) {
						$(box).addClass(intlClasses.accordionBox);
						$(box).children("div." + intlClasses.boxHeader + ":first")
								.addClass(intlClasses.accordionHeader);
						boxBody.addClass(intlClasses.accordionBody);
					}
				}
				return;
			}
			

			function clsfyButtonBarBx(box, boxBody) {
				if ($(box).hasClass(userClasses.accordion)) {
					if (boxBody.length > 0) {
						$(box).addClass(intlClasses.accordionBox);
						$(box).children("div." + intlClasses.boxHeader + ":first")
								.addClass(intlClasses.accordionHeader);
						boxBody.addClass(intlClasses.accordionBody);
					}
				}
				return;
			}
			

			function clsfyTitleBx(box) {

				$(box).children("div." + intlClasses.boxHeader + ":first")
					.find("div." + userClasses.title + ":first")
					.addClass(intlClasses.title);
				return;
			}
			

			function clsfyTabBx(box) {
				if ($(box).hasClass(userClasses.interlockTabs)) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.tabContainer + ":first")
							.addClass(intlClasses.interlockTabs);
					if ($(box).hasClass(userClasses.extendLastTab)) {
						$(box).children("div." + intlClasses.boxHeader + ":first")
								.find("div." + intlClasses.tabContainer + ":first")
								.addClass(intlClasses.extendLastTab);
					}
				} else if ($(box).hasClass(userClasses.adjacentTabs)) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.tabContainer + ":first")
							.addClass(intlClasses.adjacentTabs);
					if ($(box).hasClass(userClasses.separateTabs)) {
						$(box).children("div." + intlClasses.boxHeader + ":first")
								.find("div." + intlClasses.tabContainer + ":first")
								.addClass(intlClasses.separateTabs);
						
					}
				} else {
					$(box).addClass(userClasses.interlockTabs);
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.tabContainer + ":first")
							.addClass(intlClasses.interlockTabs);
					if ($(box).hasClass(userClasses.extendLastTab)) {
						$(box).children("div." + intlClasses.boxHeader + ":first")
								.find("div." + intlClasses.tabContainer + ":first")
								.addClass(intlClasses.extendLastTab);
					}
				}

				if (($(box).hasClass(userClasses.flushHeader)) || ($(box).hasClass(userClasses.flushHeaderTight))) {
					$(box).children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.tabContainer + ":first")
							.addClass(intlClasses.allowFlush)
							.find("div." + intlClasses.tabBg_t + ":first")
							.css("margin-left","5px");
				}

				$(box).children("div." + intlClasses.boxHeader + ":first")
					.find("div." + userClasses.tab)
					.addClass(intlClasses.tab);
					
				return;
			}
			

			function formatLists(box) {
				
				var allMenuLists;
				var nestedMenuLists;
				var crntMenuLists;
				var allMenuItems;
				var nestedMenuItems;
				var crntMenuItems;
				
				allMenuLists = $(box)
						.children("div." + intlClasses.boxBody + ":first")
						.find("ul:has(li." + userClasses.boxItem + ")");
				
				if (allMenuLists.length > 0) {
					nestedMenuLists = $(box)
							.children("div." + intlClasses.boxBody + ":first")
							.find("div." + userClasses.box)
							.find("ul:has(li." + userClasses.boxItem + ")");	
					crntMenuLists = allMenuLists.not(nestedMenuLists);
					
					crntMenuLists.addClass(intlClasses.boxList);
				}
				
				allMenuItems = $(box)
						.children("div." + intlClasses.boxBody + ":first")
						.find("." + userClasses.boxItem);
				
				if (allMenuItems.length > 0) {
					nestedMenuItems = $(box)
							.children("div." + intlClasses.boxBody + ":first")
							.find("div." + userClasses.box)
							.find("." + userClasses.boxItem);	
					crntMenuItems = allMenuItems.not(nestedMenuItems);
					
					crntMenuItems.addClass(intlClasses.boxItem);
				}
			}
			
			

			function addBoxMargins(box) {
				var stdSpacers = new Array();
				var otherSpacers = new Array();
				var prefix = new Array();
				var topMargin;
				var leftMargin;
				var rightMargin;
				var bottomMargin;

				if ($(box).hasClass(userClasses.noSpaceAround)) {
					topMargin = "none";
					leftMargin = "none";
					rightMargin = "none";
					bottomMargin = "none";
				}
				if ($(box).hasClass(userClasses.spaceCenter)) {
					topMargin = "none";
					leftMargin = "auto";
					rightMargin = "auto";
					bottomMargin = "none";
				}


				stdSpacers[0] = "spaceAround";
				stdSpacers[1] = "spaceNotAbove";
				stdSpacers[2] = "spaceNotLeft";
				stdSpacers[3] = "spaceNotRight";
				stdSpacers[4] = "spaceNotBelow";
				stdSpacers[5] = "spaceHorizontal";
				stdSpacers[6] = "spaceVertical";
				stdSpacers[7] = "spaceAbove";
				stdSpacers[8] = "spaceLeft";
				stdSpacers[9] = "spaceRight";
				stdSpacers[10] = "spaceBelow";

				otherSpacers[0] = "SpaceAround";
				otherSpacers[1] = "SpaceNotAbove";
				otherSpacers[2] = "SpaceNotLeft";
				otherSpacers[3] = "SpaceNotRight";
				otherSpacers[4] = "SpaceNotBelow";
				otherSpacers[5] = "SpaceHorizontal";
				otherSpacers[6] = "SpaceVertical";
				otherSpacers[7] = "SpaceAbove";
				otherSpacers[8] = "SpaceLeft";
				otherSpacers[9] = "SpaceRight";
				otherSpacers[10] = "SpaceBelow";

				prefix[0] = "auto";
				prefix[1] = "small";
				prefix[2] = "standard";
				prefix[3] = "medium";
				prefix[4] = "large";

				for (var i = 0; i < stdSpacers.length; i++) {
					for (var j = 0; j < prefix.length; j++) {
						if (prefix[j] === "standard") {
							if ($(box).hasClass(userClasses[stdSpacers[i]])) {
								resolveMargin(i, prefix[j]);
							}
						} else {
							if ($(box).hasClass(userClasses[prefix[j] + otherSpacers[i]])) {
								resolveMargin(i, prefix[j]);
							}
						}

							
					}
				}
				putMargins();
				
				function resolveMargin(spcrIndex, spcrPrefix) {
						switch (spcrIndex) {
						case 0:
							topMargin = spcrPrefix;
							leftMargin = spcrPrefix;
							rightMargin = spcrPrefix;
							bottomMargin = spcrPrefix;
							break;
						
						case 1:
							leftMargin = spcrPrefix;
							rightMargin = spcrPrefix;
							bottomMargin = spcrPrefix;
							break;
						
						case 2:
							topMargin = spcrPrefix;
							rightMargin = spcrPrefix;
							bottomMargin = spcrPrefix;
							break;
						
						case 3:
							topMargin = spcrPrefix;
							leftMargin = spcrPrefix;
							bottomMargin = spcrPrefix;
							break;
						
						case 4:
							topMargin = spcrPrefix;
							leftMargin = spcrPrefix;
							rightMargin = spcrPrefix;
							break;
						
						case 5:
							leftMargin = spcrPrefix;
							rightMargin = spcrPrefix;
							break;
						
						case 6:
							topMargin = spcrPrefix;
							bottomMargin = spcrPrefix;
							break;
						
						case 7:
							topMargin = spcrPrefix;
							break;
						
						case 8:
							leftMargin = spcrPrefix;
							break;
						
						case 9:
							rightMargin = spcrPrefix;
							break;
						
						case 10:
							bottomMargin = spcrPrefix;
							break;
					}
					return;

				}

				function putMargins() {
					if ((topMargin) && (typeof topMargin === "string")) {
						$(box).addClass(intlClasses.spaceAbove + getMarginSuffix(topMargin));

					}
					if ((leftMargin) && (typeof leftMargin === "string")) {
						$(box).addClass(intlClasses.spaceLeft + getMarginSuffix(leftMargin));

					}
					if ((rightMargin) && (typeof rightMargin === "string")) {
						$(box).addClass(intlClasses.spaceRight + getMarginSuffix(rightMargin));

					}
					if ((bottomMargin) && (typeof bottomMargin === "string")) {
						$(box).addClass(intlClasses.spaceBelow + getMarginSuffix(bottomMargin));

					}
					return;
				}

				function getMarginSuffix(tag) {
					switch (tag) {
						case "none":
							return intlClasses.noSpace;
						case "auto":
							return intlClasses.autoSpace;
						case "small":
							return intlClasses.smallSpace;
						case "standard":
							return intlClasses.standardSpace;
						case "medium":
							return intlClasses.mediumSpace;
						case "large":
							return intlClasses.largeSpace;
						default:
							return "";
					}
				}
				return;
			}
			

			function setCollapse(box, boxBody) {
				if (boxBody.length > 0) {
					if ($(box).hasClass(userClasses.uncollapse)) {
						$(box).addClass(intlClasses.uncollapse);
					} else if ($(box).hasClass(userClasses.collapse)) {
						$(box).addClass(intlClasses.collapse);
					}
				}
				return;
			}
			

			function setDisplayOff(box) {
				if ($(box).hasClass(userClasses.hidden)) {
					$(box).addClass(intlClasses.hidden);
				}
				return;
			}
			

			function setVisibilityOff(box) {
				if ($(box).hasClass(userClasses.invisible)) {
					$(box).addClass(intlClasses.invisible);
				}
				return;
			}
			$(currentBox).addClass(intlClasses.initialized);
			return this;
		}
	};

	ezBox.events = {

		getClassChanges: function(customEvent) {
			if (ezBox.validator.isCustomEvent(customEvent)) {

				if ((changeSets) 
						&& (typeof changeSets === "object") 
						&& (changeSets instanceof Array)) {
					if (!(changeSets.length > 0)) {
						return null;
					}
				}else {
					return null;
				}
			} else {
				return null;
			}
			
			var classChanges = new Array();
			
			for (var i = 0; i < changeSets.length; i++) {
				if (changeSets[i].event === customEvent) {
					classChanges[classChanges.length] = changeSets[i];

				}
			}
			return classChanges;
		},
			

		resetClasses: function(classChanges, contextEl, excludeEl) {
			var hasContext = false;
			var hasExclude = false;
			var context = new Array();
			var exclude = new Array();
			var ctxElements;
			

			if (arguments.length < 1) {
				return this;
			} else if (!classChanges) {
				return this;
			} else if ((typeof classChanges === "object") && (classChanges instanceof Array)) {
				if (classChanges.length < 1) {
					return this;
				}

				if ((contextEl)
						&& (typeof contextEl === "object")
						&&  (ezBox.validator.isTag(contextEl))) {
					context[1] = contextEl;
					hasContext = true;
				} else if ((contextEl) && (contextEl instanceof jQuery)) {
					if (contextEl.length > 0) {
						contextEl.each(function(i){context[i] = this; return;});
						hasContext = true;
					}
				}

				if ((excludeEl)
						&& (typeof excludeEl === "object")
						&&  (ezBox.validator.isTag(excludeEl))) {
					exclude[1] = excludeEl;
					hasExclude = true;
				} else if ((excludeEl) && (excludeEl instanceof jQuery)) {
					if (excludeEl.length > 0) {
						excludeEl.each(function(i){exclude[i] = this; return;});
						hasExclude = true;
					}
				}
			} else {
				return this;
			}

			if ((hasContext) && (hasExclude)) {
				for (var i = 0; i < classChanges.length; i++) {
					for (var j = 0; j < context.length; j++) {	
						ctxElements = $(context[j]).find("." + classChanges[i].eventClass);
						if (ctxElements.length > 0) {
							ctxElements.each(function() {
								var isExcluded = false;
								for (var k = 0; k < exclude.length; k++) {
									if (this === exclude[k]) {
										isExcluded = true;
										break;
									}
								}
								if (!isExcluded) {
									if (classChanges[i].changeType === classChangeTypes.substitute) {
										$(this).removeClass(classChanges[i].eventClass)
												.addClass(classChanges[i].originalClass);
												
									} else if (classChanges[i].changeType === classChangeTypes.add) {
										$(this).removeClass(classChanges[i].eventClass);
									}
								}
								return;
							});
						}
					}
				}
			} else if (hasContext) {
				for (var i = 0; i < classChanges.length; i++) {
					for (var j = 0; j < context.length; j++) {	
						ctxElements = $(context[j]).find("." + classChanges[i].eventClass);
						if (ctxElements.length > 0) {
							ctxElements.each(function() {
								if (classChanges[i].changeType === classChangeTypes.substitute) {
									$(this).removeClass(classChanges[i].eventClass)
											.addClass(classChanges[i].originalClass);
											
								} else if (classChanges[i].changeType === classChangeTypes.add) {
									$(this).removeClass(classChanges[i].eventClass);
								}
								return;
							});
						}
					}
				}
				
			} else if (hasExclude) {
				for (var i = 0; i < classChanges.length; i++) {
					ctxElements = $("." + classChanges[i].eventClass);
					if (ctxElements.length > 0) {
						ctxElements.each(function() {
							var isExcluded = false;
							for (var k = 0; k < exclude.length; k++) {
								if (this === exclude[k]) {
									isExcluded = true;
									break;
								}
							}
							if (!isExcluded) {
								if (classChanges[i].changeType === classChangeTypes.substitute) {
									$(this).removeClass(classChanges[i].eventClass)
											.addClass(classChanges[i].originalClass);
											
								} else if (classChanges[i].changeType === classChangeTypes.add) {
									$(this).removeClass(classChanges[i].eventClass);
								}
							}
							return;
						});
					}
				}
				
			} else {
				for (var i = 0; i < classChanges.length; i++) {
					ctxElements = $("." + classChanges[i].eventClass);
					if (ctxElements.length > 0) {
						ctxElements.each(function() {
							if (classChanges[i].changeType === classChangeTypes.substitute) {
								$(this).removeClass(classChanges[i].eventClass)
										.addClass(classChanges[i].originalClass);
										
							} else if (classChanges[i].changeType === classChangeTypes.add) {
								$(this).removeClass(classChanges[i].eventClass);
							}
							return;
						});
					}
				}
				
			}
			return this;
		},

		procTabClick: function(tabEl) {
			var intlClasses = internalClasses;
			var header;
			var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
				if (tab.length < 1){return this;}




			tab.removeClass(intlClasses.tabBg_t_ent)
					.addClass(intlClasses.tabBg_t_sel);
			header = tab.closest("div." + intlClasses.tabHeader);
			if (header.length > 0) {

				this.resetClasses(this.getClassChanges(customEvents.tabEnter), header)
					.resetClasses(this.getClassChanges(customEvents.tabClick), header, tab)
					.resetClasses(this.getClassChanges(customEvents.headerEnter), header)
					.resetClasses(this.getClassChanges(customEvents.headerClick), header)
					.selectTab(tab)
					.showHideContent(tab);


				
			}
			return this;
		},



		selectTab: function(obj) {
			var intlClasses = internalClasses;
			var tab;
			
			if ((obj) && (typeof obj === "object")) {
				if (ezBox.validator.isTag(obj, "DIV")) {
					tab = obj;
				} else if (obj instanceof jQuery) {
					if (obj.length === 1) {
						obj.each(function(){tab = this; return;});
					}
				} else {
					return this;
				}
			} else {
				return this;
			}
			
			if ($(tab).hasClass(intlClasses.tabBg_t)) {

				if ($(tab).closest("div." + intlClasses.tabHeader)
						.find("div." + intlClasses.tabBg_t_sel).length < 1) {
					$(tab).removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_sel);
				} else {
					return this;
				}
			} else if (!($(tab).hasClass(intlClasses.tabBg_t_sel))) {
				return this;
			}

			if($(tab).closest("div." + intlClasses.tabContainer).hasClass(intlClasses.adjacentTabs)) {

				this.buttonHelper.doTab(tab, tabStsCodes.SGL, customEvents.tabClick);
			} else if($(tab).closest("div." + intlClasses.tabContainer).hasClass(intlClasses.interlockTabs)) {
				var firstTabTopLeft = $(tab).find("div." + intlClasses.tabBg_t_l_otr);
				var lastTabTopRight = $(tab).find("div." + intlClasses.tabBg_t_r_otr);
				
				if (firstTabTopLeft.length > 0) {
					if (lastTabTopRight.length > 0) {

						this.buttonHelper.doTab(tab, tabStsCodes.SGL, customEvents.tabClick);
						if ($(tab).closest("div." + intlClasses.tabContainer)
								.hasClass(intlClasses.extendLastTab)) {
							this.buttonHelper.doHeader(tab, customEvents.headerClick);
						}
					} else {

						this.buttonHelper.doTab(tab, tabStsCodes.OL_RmSel, customEvents.tabClick);
					}
				} else if (lastTabTopRight.length > 0) {

					this.buttonHelper.doTab(tab, tabStsCodes.OR_RmSel, customEvents.tabClick);
					if ($(tab).closest("div." + intlClasses.tabContainer)
							.hasClass(intlClasses.extendLastTab)) {
						this.buttonHelper.doHeader(tab, customEvents.headerClick);
					}
				} else {
					var innerTopLeft = $(tab).find("div." + intlClasses.tabBg_t_l_inr);
					if (innerTopLeft.length > 0) {

						this.buttonHelper.doTab(tab, tabStsCodes.IN_RmSel, customEvents.tabClick);
					} 
				}
			}
			return this;		
		},
			






















		showHideContent: function(selector) {
			var intlClasses = internalClasses;
			var box;
			if ((selector) && (typeof selector === "object")) {
				if (ezBox.validator.isTag(selector)) {
					if ($(selector).closest("div." + intlClasses.box).length < 1) { 
						return this;
					} else {
						box = $(selector).closest("div." + intlClasses.box);
					}
				} else if (selector instanceof jQuery) {
					if (selector.closest("div." + intlClasses.box).length < 1) {
						return this;
					} else {
						box = selector.closest("div." + intlClasses.box);
					}
				}
			} else if ((selector) && (typeof selector === "string")) {
				if (selector.indexOf("#") === 0) {
					box = $(selector).closest("div." + intlClasses.box);
					if (box.length < 1) {
						return this;
					}
				} else if (selector.indexOf("#") === -1) {
					box = $("#" + selector).closest("div." + intlClasses.box);
					if (box.length < 1) {
						return this;
					}
				} else {
					return this;
				}
			} else {
				return this;
			}
			
			var boxContents;
			var nestedContents;
			var activeContent;
			

			if (box.children("div." + intlClasses.boxBody).length < 1) {

				return this;
			} else {


				boxContents = box.find("div." + intlClasses.content);
			}



			if (boxContents.length > 0) {

				boxContents = boxContents.filter(function(index) {
						if (($(this)
								.closest("div." + intlClasses.box)
								.find("div." + intlClasses.tabHeader))
								.length > 0) {
							return true;
						} else {
							return false;
						}
					});
			} else {
				return this;
			}

			

			if (boxContents.length > 0) {
				nestedContents = $();

				boxContents.each(function(index, content){
					nestedContents = nestedContents.add($(content).find("div." + intlClasses.content));
				});

				boxContents = boxContents.not(nestedContents);
			} else {
				return this;
			}
			

			if (boxContents.length > 0) {
				if (typeof selector === "object") {
					activeContent = boxContents.filter("div" + $(selector).find("a").attr("href") + ":first");


				} else if (typeof selector === "string") {
					activeContent = $("div" + selector + ":first");

				} else {
					return this;
				}
			} else {
				return this;
			}
			
			if (activeContent.length < 1) {
				alert("Target content not found!");
				return this;
			}
			
			boxContents.hide();
			activeContent.show();
			
			if (activeContent.closest("div." + intlClasses.boxBody).css("display") === "none") {
				activeContent.closest("div." + intlClasses.box)
						.children("div." + intlClasses.tabHeader + ":first")
						.find("div." + intlClasses.collapseBtn + ":first")
						.click();
			}
			return this;
		},
		cleanup: {

			setCleanupArgs: function() {
				if (arguments.length > 0) {
					if ((cleanupAction) && (typeof cleanupAction === "function")) {
						$("body").click();
						cleanupArgs = arguments;
						return this;
					} else {
						cleanupArgs = arguments;
						return this;
					}			
				} else {
					cleanupArgs = undefined;
					return this;
				}
			},

			setRefObject: function(custObj) {
				if ((custObj) && (typeof custObj === "object")) {
					if ((cleanupAction) && (typeof cleanupAction === "function")) {
						$("body").click();
						cleanupObject = custObj;
						return this;
					} else {
						cleanupObject = custObj;
						return this;
					}			
				} else {
					cleanupObject = undefined;
					return this;
				}
			},

			doAfter: function(cleanupFn) {
				if ((cleanupFn) && (typeof cleanupFn === "function")) {
					if ((cleanupAction) && (typeof cleanupAction === "function")) {
						$("body").click();
						cleanupAction = cleanupFn;
						return this;
					} else {
						cleanupAction = cleanupFn;
						return this;
					}			
				} else {
					cleanupAction = undefined;
					return this;
				}
			}
			
		},
		
		buttonHelper: {
			doHeader: function(obj, custEvent) {
				if (arguments.length < 2){return this;}
				
				var intlClasses = internalClasses;
				var el;
				var hdrContext;
				var boxType;
				var hasFlush;
				var hasFlushTight;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				hdrContext = $(el).closest("div." + intlClasses.box)
						.children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return this;}
				
				if ((custEvent) && (typeof custEvent === "string")) {
					if (!(ezBox.validator.isCustomEvent(custEvent))){return this;}
				} else {
					return this;
				}
				
				if (custEvent === customEvents.headerEnter) {
					toggleHdrEnter(hdrContext);
				} else if (custEvent === customEvents.headerLeave) {
					toggleHdrLeave(hdrContext);
				} else if (custEvent === customEvents.headerClick) {
					toggleHdrClick(hdrContext);
				} else {
					return this;
				}

				var box = $(el).closest("div." + intlClasses.box);
				boxType = ezBox.instance.getType(box);
				
				hasFlush = hdrContext.hasClass(intlClasses.flushHeader);
				hasFlushTight = hdrContext.hasClass(intlClasses.flushHeaderTight);
 			
		 		function toggleHdrEnter(contextEl) {
					if (contextEl
							.find("div." + intlClasses.headerBg_t + ":first")
							.length < 1){return;}
					
					if (hasFlushTight) {
						entHdr_withFT(contextEl);
					} else if (hasFlush) {
						entHdr_withF(contextEl);
					} else {
						entHdr_noF(contextEl);
					}
					return;
				}
				
		 		function toggleHdrLeave(contextEl) {
					if (contextEl
							.find("div." + intlClasses.headerBg_t_ent + ":first")
							.length < 1){return;}
					
					if (hasFlushTight) {
						leavHdr_withFT(contextEl);
					} else if (hasFlush) {
						leavHdr_withF(contextEl);
					} else {
						leavHdr_noF(contextEl);
					}
					return;
				}
				
		 		function toggleHdrClick(contextEl) {
					if (contextEl
							.find("div." + intlClasses.headerBg_t + ":first")
							.length < 1){return;}
					
					if (hasFlushTight) {
						selHdr_withFT(contextEl);
					} else if (hasFlush) {
						selHdr_withF(contextEl);
					} else {
						selHdr_noF(contextEl);
					}
					return;
				}
				

				function entHdr_withFT(contextEl) {
					if (boxType === basicBoxTypes.tabBox) {
						contextEl.find("div." + intlClasses.headerBg_fill + ":first")
								.addClass(intlClasses.headerBg_flush);
					}

					contextEl.find("div." + intlClasses.headerBg_t + ":first")
							.removeClass(intlClasses.headerBg_t)
							.addClass(intlClasses.headerBg_t_ent);
					
					return;		
				}
				

				function entHdr_withF(contextEl) {
					if (boxType === basicBoxTypes.tabBox) {
						contextEl.find("div." + intlClasses.headerBg_fill + ":first")
								.addClass(intlClasses.headerBg_flush);
					}

					contextEl.find("div." + intlClasses.headerBg_t + ":first")
							.removeClass(intlClasses.headerBg_t)
							.addClass(intlClasses.headerBg_t_ent);
					
					contextEl.find("div." + intlClasses.headerBg_l + ":first")
							.removeClass(intlClasses.headerBg_l)
							.addClass(intlClasses.headerBg_l_ent);
					
					contextEl.find("div." + intlClasses.headerBg_r + ":first")
							.removeClass(intlClasses.headerBg_r)
							.addClass(intlClasses.headerBg_r_ent);
					
					return;		
				}
				

				function entHdr_noF(contextEl) {
					contextEl.find("div." + intlClasses.headerBg_t + ":first")
							.removeClass(intlClasses.headerBg_t)
							.addClass(intlClasses.headerBg_t_ent);
					
					contextEl.find("div." + intlClasses.headerBg_l + ":first")
							.removeClass(intlClasses.headerBg_l)
							.addClass(intlClasses.headerBg_l_ent);
					
					contextEl.find("div." + intlClasses.headerBg_r + ":first")
							.removeClass(intlClasses.headerBg_r)
							.addClass(intlClasses.headerBg_r_ent);
					
					contextEl.find("div." + intlClasses.headerBg_t_l + ":first")
							.removeClass(intlClasses.headerBg_t_l)
							.addClass(intlClasses.headerBg_t_l_ent);
					
					contextEl.find("div." + intlClasses.headerBg_t_r + ":first")
							.removeClass(intlClasses.headerBg_t_r)
							.addClass(intlClasses.headerBg_t_r_ent);
					
					return;		
				}
				

				function leavHdr_withFT(contextEl) {
					if (boxType === basicBoxTypes.tabBox) {
						contextEl.find("div." + intlClasses.headerBg_fill + ":first")
								.removeClass(intlClasses.headerBg_flush);
					}

					contextEl.find("div." + intlClasses.headerBg_t_ent + ":first")
							.removeClass(intlClasses.headerBg_t_ent)
							.addClass(intlClasses.headerBg_t);
					return;	
				}
				

				function leavHdr_withF(contextEl) {
					if (boxType === basicBoxTypes.tabBox) {
						contextEl.find("div." + intlClasses.headerBg_fill + ":first")
								.removeClass(intlClasses.headerBg_flush);
					}

					contextEl.find("div." + intlClasses.headerBg_t_ent + ":first")
							.removeClass(intlClasses.headerBg_t_ent)
							.addClass(intlClasses.headerBg_t);
					
					contextEl.find("div." + intlClasses.headerBg_l_ent + ":first")
							.removeClass(intlClasses.headerBg_l_ent)
							.addClass(intlClasses.headerBg_l);
					
					contextEl.find("div." + intlClasses.headerBg_r_ent + ":first")
							.removeClass(intlClasses.headerBg_r_ent)
							.addClass(intlClasses.headerBg_r);
					
					return;	
				}
				

				function leavHdr_noF(contextEl) {
					contextEl.find("div." + intlClasses.headerBg_t_ent + ":first")
							.removeClass(intlClasses.headerBg_t_ent)
							.addClass(intlClasses.headerBg_t);
					
					contextEl.find("div." + intlClasses.headerBg_l_ent + ":first")
							.removeClass(intlClasses.headerBg_l_ent)
							.addClass(intlClasses.headerBg_l);
					
					contextEl.find("div." + intlClasses.headerBg_r_ent + ":first")
							.removeClass(intlClasses.headerBg_r_ent)
							.addClass(intlClasses.headerBg_r);
					
					contextEl.find("div." + intlClasses.headerBg_t_l_ent + ":first")
							.removeClass(intlClasses.headerBg_t_l_ent)
							.addClass(intlClasses.headerBg_t_l);
					
					contextEl.find("div." + intlClasses.headerBg_t_r_ent + ":first")
							.removeClass(intlClasses.headerBg_t_r_ent)
							.addClass(intlClasses.headerBg_t_r);
					return;	
				}
				

				function selHdr_withFT(contextEl) {
					if (boxType === basicBoxTypes.tabBox) {
						contextEl.find("div." + intlClasses.headerBg_fill + ":first")
								.addClass(intlClasses.headerBg_flush);
					}

					contextEl.find("div." + intlClasses.headerBg_t + ":first")
							.removeClass(intlClasses.headerBg_t)
							.addClass(intlClasses.headerBg_t_sel);

					return;	
				}
				

				function selHdr_withF(contextEl) {
					if (boxType === basicBoxTypes.tabBox) {
						contextEl.find("div." + intlClasses.headerBg_fill + ":first")
								.addClass(intlClasses.headerBg_flush);
					}

					contextEl.find("div." + intlClasses.headerBg_t + ":first")
							.removeClass(intlClasses.headerBg_t)
							.addClass(intlClasses.headerBg_t_sel);
					
					contextEl.find("div." + intlClasses.headerBg_l + ":first")
							.removeClass(intlClasses.headerBg_l)
							.addClass(intlClasses.headerBg_l_sel);
					
					contextEl.find("div." + intlClasses.headerBg_r + ":first")
							.removeClass(intlClasses.headerBg_r)
							.addClass(intlClasses.headerBg_r_sel);

					return;	
				}
				

				function selHdr_noF(contextEl) {
					contextEl.find("div." + intlClasses.headerBg_t + ":first")
							.removeClass(intlClasses.headerBg_t)
							.addClass(intlClasses.headerBg_t_sel);
					
					contextEl.find("div." + intlClasses.headerBg_l + ":first")
							.removeClass(intlClasses.headerBg_l)
							.addClass(intlClasses.headerBg_l_sel);
					
					contextEl.find("div." + intlClasses.headerBg_r + ":first")
							.removeClass(intlClasses.headerBg_r)
							.addClass(intlClasses.headerBg_r_sel);
					
					contextEl.find("div." + intlClasses.headerBg_t_l + ":first")
							.removeClass(intlClasses.headerBg_t_l)
							.addClass(intlClasses.headerBg_t_l_sel);
					
					contextEl.find("div." + intlClasses.headerBg_t_r + ":first")
							.removeClass(intlClasses.headerBg_t_r)
							.addClass(intlClasses.headerBg_t_r_sel);
					return;	
				}
			},
			
			doTab: function(obj, stsCode, custEvent) {

				if (arguments.length < 3){return this;}
				
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!(($(el).hasClass(intlClasses.tabBg_t)) 
						||($(el).hasClass(intlClasses.tabBg_t_ent)) 
						||($(el).hasClass(intlClasses.tabBg_t_sel)))) {
					return this;
				}
				if ((stsCode) && (typeof stsCode === "number")){
					if (!(ezBox.validator.isTabStsCode(stsCode))){return this;}
				} else {
					return this;
				}
				if ((custEvent) && (typeof custEvent === "string")) {
					if (!(ezBox.validator.isCustomEvent(custEvent))){return this;}
				} else {
					return this;
				}
				
				if ((custEvent === customEvents.tabEnter)
						&& ($(el).hasClass(intlClasses.tabBg_t))) {
					toggleTabEnter(el, stsCode);
				} else if ((custEvent === customEvents.tabLeave)
						&& ($(el).hasClass(intlClasses.tabBg_t_ent))) {
					toggleTabLeave(el, stsCode);
				} else if ((custEvent === customEvents.tabClick)
						&& ($(el).hasClass(intlClasses.tabBg_t_sel))) {
					toggleTabClick(el, stsCode);
				} else {
					return this;
				}
				


				function toggleTabEnter(tabEl, status) {


					switch (status) {
						case 1:

							entOtrLftTb_RemSel(tabEl);
							break;
						case 2:

							entOtrLftTb_RtSel(tabEl);
							break;
						case 3:


							entInrTb_RemSel(tabEl);
							break;
						case 4:

							entInrTb_RtSel(tabEl);
							break;
						case 5:

							entInrTb_LftSel(tabEl);
							break;
						case 6:

							entOtrRtTb_RemSel(tabEl);
							break;
						case 7:

							entOtrRtTb_LftSel(tabEl);
							break;
						case 8:

							entSglTb(tabEl);
							break;
					}
					return;
				}
				 

				function toggleTabLeave(tabEl, status) {

					switch (status) {
						case 1:

							lvOtrLftTb_RemSel(tabEl);
							break;
						case 2:

							lvOtrLftTb_RtSel(tabEl);
							break;
						case 3:

							lvInrTb_RemSel(tabEl);
							break;
						case 4:

							lvInrTb_RtSel(tabEl);
							break;
						case 5:

							lvInrTb_LftSel(tabEl);
							break;
						case 6:

							lvOtrRtTb_RemSel(tabEl);
							break;
						case 7:

							lvOtrRtTb_LftSel(tabEl);
							break;
						case 8:

							lvSglTb(tabEl);
							break;
					}
					return;
				}

				function toggleTabClick(tabEl, status) {
					switch (status) {
						case 1:
						case 2:

							selOtrLftTb(tabEl);
							break;
						case 3:
						case 4:
						case 5:

							selInrTb(tabEl);
							break;
						case 6:
						case 7:

							selOtrRtTb(tabEl);
							break;
						case 8:

							selSglTb(tabEl);
							break;
					}
					return;
				}


				function entOtrLftTb_RemSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_otr)
							.removeClass(intlClasses.tabBg_l_otr)
							.addClass(intlClasses.tabBg_l_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr)
							.removeClass(intlClasses.tabBg_t_l_otr)
							.addClass(intlClasses.tabBg_t_l_otr_ent);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_entL);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_entL);
					return;
				}


				function entOtrLftTb_RtSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_otr)
							.removeClass(intlClasses.tabBg_l_otr)
							.addClass(intlClasses.tabBg_l_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr)
							.removeClass(intlClasses.tabBg_t_l_otr)
							.addClass(intlClasses.tabBg_t_l_otr_ent);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_l_inr_sel)
							.removeClass(intlClasses.tabBg_l_inr_sel)
							.addClass(intlClasses.tabBg_l_inr_sel_entL);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_t_l_inr_sel)
							.removeClass(intlClasses.tabBg_t_l_inr_sel)
							.addClass(intlClasses.tabBg_t_l_inr_sel_entL);
					return;
				}


				function selOtrLftTb(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_sel);
						if (tab.length < 1){return;}
					tab.find("div." + intlClasses.tabBg_l_otr)
							.removeClass(intlClasses.tabBg_l_otr)
							.addClass(intlClasses.tabBg_l_otr_sel);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr)
							.removeClass(intlClasses.tabBg_t_l_otr)
							.addClass(intlClasses.tabBg_t_l_otr_sel);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_selL);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_selL);
					return;
				}
						

				function entInrTb_RemSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							




							
					tab.find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_ent);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_entL);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_entL);
					return;
				}


				function entInrTb_RtSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_ent);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_l_inr_sel)
							.removeClass(intlClasses.tabBg_l_inr_sel)
							.addClass(intlClasses.tabBg_l_inr_sel_entL);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_t_l_inr_sel)
							.removeClass(intlClasses.tabBg_t_l_inr_sel)
							.addClass(intlClasses.tabBg_t_l_inr_sel_entL);
							



					return;
				}


				function entInrTb_LftSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_inr_selL)
							.removeClass(intlClasses.tabBg_l_inr_selL)
							.addClass(intlClasses.tabBg_l_inr_selL_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_selL)
							.removeClass(intlClasses.tabBg_t_l_inr_selL)
							.addClass(intlClasses.tabBg_t_l_inr_selL_ent);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_entL);

					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_entL);
					return;
				}
						

				function selInrTb(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_sel);
						if (tab.length < 1){return;}
					tab.find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_sel);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_sel);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_selL);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_selL);
					return;
				}
							

				function entOtrRtTb_RemSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_ent);
							
					tab.find("div." + intlClasses.tabBg_r_otr)
							.removeClass(intlClasses.tabBg_r_otr)
							.addClass(intlClasses.tabBg_r_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr)
							.removeClass(intlClasses.tabBg_t_r_otr)
							.addClass(intlClasses.tabBg_t_r_otr_ent);
					return;
				}



				function entOtrRtTb_LftSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_inr_selL)
							.removeClass(intlClasses.tabBg_l_inr_selL)
							.addClass(intlClasses.tabBg_l_inr_selL_ent);
							
					tab.find("div." + intlClasses.tabBg_r_otr)
							.removeClass(intlClasses.tabBg_r_otr)
							.addClass(intlClasses.tabBg_r_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_selL)
							.removeClass(intlClasses.tabBg_t_l_inr_selL)
							.addClass(intlClasses.tabBg_t_l_inr_selL_ent);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr)
							.removeClass(intlClasses.tabBg_t_r_otr)
							.addClass(intlClasses.tabBg_t_r_otr_ent);
					return;
				}
						
						

				function selOtrRtTb(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_sel);
						if (tab.length < 1){return;}
					tab.find("div." + intlClasses.tabBg_l_inr)
							.removeClass(intlClasses.tabBg_l_inr)
							.addClass(intlClasses.tabBg_l_inr_sel);
							
					tab.find("div." + intlClasses.tabBg_r_otr)
							.removeClass(intlClasses.tabBg_r_otr)
							.addClass(intlClasses.tabBg_r_otr_sel);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr)
							.removeClass(intlClasses.tabBg_t_l_inr)
							.addClass(intlClasses.tabBg_t_l_inr_sel);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr)
							.removeClass(intlClasses.tabBg_t_r_otr)
							.addClass(intlClasses.tabBg_t_r_otr_sel);
					return;
				}


				function entSglTb(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t)
							.addClass(intlClasses.tabBg_t_ent);
							
					tab.find("div." + intlClasses.tabBg_l_otr)
							.removeClass(intlClasses.tabBg_l_otr)
							.addClass(intlClasses.tabBg_l_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_r_otr)
							.removeClass(intlClasses.tabBg_r_otr)
							.addClass(intlClasses.tabBg_r_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr)
							.removeClass(intlClasses.tabBg_t_l_otr)
							.addClass(intlClasses.tabBg_t_l_otr_ent);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr)
							.removeClass(intlClasses.tabBg_t_r_otr)
							.addClass(intlClasses.tabBg_t_r_otr_ent);
					return;
				}


				function selSglTb(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_sel);
						if (tab.length < 1){return;}
					tab.find("div." + intlClasses.tabBg_l_otr)
							.removeClass(intlClasses.tabBg_l_otr)
							.addClass(intlClasses.tabBg_l_otr_sel);
							
					tab.find("div." + intlClasses.tabBg_r_otr)
							.removeClass(intlClasses.tabBg_r_otr)
							.addClass(intlClasses.tabBg_r_otr_sel);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr)
							.removeClass(intlClasses.tabBg_t_l_otr)
							.addClass(intlClasses.tabBg_t_l_otr_sel);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr)
							.removeClass(intlClasses.tabBg_t_r_otr)
							.addClass(intlClasses.tabBg_t_r_otr_sel);
					return;
				}



				function lvOtrLftTb_RemSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_otr_ent)
							.removeClass(intlClasses.tabBg_l_otr_ent)
							.addClass(intlClasses.tabBg_l_otr);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr_ent)
							.removeClass(intlClasses.tabBg_t_l_otr_ent)
							.addClass(intlClasses.tabBg_t_l_otr);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr_entL)
							.removeClass(intlClasses.tabBg_l_inr_entL)
							.addClass(intlClasses.tabBg_l_inr);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr_entL)
							.removeClass(intlClasses.tabBg_t_l_inr_entL)
							.addClass(intlClasses.tabBg_t_l_inr);
					return;
				}


				function lvOtrLftTb_RtSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_otr_ent)
							.removeClass(intlClasses.tabBg_l_otr_ent)
							.addClass(intlClasses.tabBg_l_otr);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr_ent)
							.removeClass(intlClasses.tabBg_t_l_otr_ent)
							.addClass(intlClasses.tabBg_t_l_otr);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_l_inr_sel_entL)
							.removeClass(intlClasses.tabBg_l_inr_sel_entL)
							.addClass(intlClasses.tabBg_l_inr_sel);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_t_l_inr_sel_entL)
							.removeClass(intlClasses.tabBg_t_l_inr_sel_entL)
							.addClass(intlClasses.tabBg_t_l_inr_sel);
					return;
				}


				function lvInrTb_RemSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_inr_ent)
							.removeClass(intlClasses.tabBg_l_inr_ent)
							.addClass(intlClasses.tabBg_l_inr);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_ent)
							.removeClass(intlClasses.tabBg_t_l_inr_ent)
							.addClass(intlClasses.tabBg_t_l_inr);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr_entL)
							.removeClass(intlClasses.tabBg_l_inr_entL)
							.addClass(intlClasses.tabBg_l_inr);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr_entL)
							.removeClass(intlClasses.tabBg_t_l_inr_entL)
							.addClass(intlClasses.tabBg_t_l_inr);
					return;
				}


				function lvInrTb_RtSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_inr_ent)
							.removeClass(intlClasses.tabBg_l_inr_ent)
							.addClass(intlClasses.tabBg_l_inr);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_ent)
							.removeClass(intlClasses.tabBg_t_l_inr_ent)
							.addClass(intlClasses.tabBg_t_l_inr);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_l_inr_sel_entL)
							.removeClass(intlClasses.tabBg_l_inr_sel_entL)
							.addClass(intlClasses.tabBg_l_inr_sel);
							
					tab.next("div." + intlClasses.tabBg_t_sel).find("div." + intlClasses.tabBg_t_l_inr_sel_entL)
							.removeClass(intlClasses.tabBg_t_l_inr_sel_entL)
							.addClass(intlClasses.tabBg_t_l_inr_sel);
					return;
				}


				function lvInrTb_LftSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_inr_selL_ent)
							.removeClass(intlClasses.tabBg_l_inr_selL_ent)
							.addClass(intlClasses.tabBg_l_inr_selL);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_selL_ent)
							.removeClass(intlClasses.tabBg_t_l_inr_selL_ent)
							.addClass(intlClasses.tabBg_t_l_inr_selL);
							
					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_l_inr_entL)
							.removeClass(intlClasses.tabBg_l_inr_entL)
							.addClass(intlClasses.tabBg_l_inr);

					tab.next("div." + intlClasses.tabBg_t).find("div." + intlClasses.tabBg_t_l_inr_entL)
							.removeClass(intlClasses.tabBg_t_l_inr_entL)
							.addClass(intlClasses.tabBg_t_l_inr);
					return;
				}
						

				function lvOtrRtTb_RemSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_inr_ent)
							.removeClass(intlClasses.tabBg_l_inr_ent)
							.addClass(intlClasses.tabBg_l_inr);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_ent)
							.removeClass(intlClasses.tabBg_t_l_inr_ent)
							.addClass(intlClasses.tabBg_t_l_inr);
							
					tab.find("div." + intlClasses.tabBg_r_otr_ent)
							.removeClass(intlClasses.tabBg_r_otr_ent)
							.addClass(intlClasses.tabBg_r_otr);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr_ent)
							.removeClass(intlClasses.tabBg_t_r_otr_ent)
							.addClass(intlClasses.tabBg_t_r_otr);
					return;
				}



				function lvOtrRtTb_LftSel(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_inr_selL_ent)
							.removeClass(intlClasses.tabBg_l_inr_selL_ent)
							.addClass(intlClasses.tabBg_l_inr_selL);
							
					tab.find("div." + intlClasses.tabBg_r_otr_ent)
							.removeClass(intlClasses.tabBg_r_otr_ent)
							.addClass(intlClasses.tabBg_r_otr);
							
					tab.find("div." + intlClasses.tabBg_t_l_inr_selL_ent)
							.removeClass(intlClasses.tabBg_t_l_inr_selL_ent)
							.addClass(intlClasses.tabBg_t_l_inr_selL);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr_ent)
							.removeClass(intlClasses.tabBg_t_r_otr_ent)
							.addClass(intlClasses.tabBg_t_r_otr);
					return;
				}
						

				function lvSglTb(tabEl) {
					var tab = $(tabEl).closest("div." + intlClasses.tabBg_t_ent);
						if (tab.length < 1){return;}
					tab.removeClass(intlClasses.tabBg_t_ent)
							.addClass(intlClasses.tabBg_t);
							
					tab.find("div." + intlClasses.tabBg_l_otr_ent)
							.removeClass(intlClasses.tabBg_l_otr_ent)
							.addClass(intlClasses.tabBg_l_otr);
							
					tab.find("div." + intlClasses.tabBg_r_otr_ent)
							.removeClass(intlClasses.tabBg_r_otr_ent)
							.addClass(intlClasses.tabBg_r_otr);
							
					tab.find("div." + intlClasses.tabBg_t_l_otr_ent)
							.removeClass(intlClasses.tabBg_t_l_otr_ent)
							.addClass(intlClasses.tabBg_t_l_otr);
							
					tab.find("div." + intlClasses.tabBg_t_r_otr_ent)
							.removeClass(intlClasses.tabBg_t_r_otr_ent)
							.addClass(intlClasses.tabBg_t_r_otr);
					return;
				}
			},
			


			doButton: function(obj, fn) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if ($(el).hasClass(intlClasses.collapseBtn)) {
					if ((fn) && (typeof fn === "function")) {
						this.toggleBody(el, fn);
					} else {
						this.toggleBody(el);
					}
					return this;
				} else if ($(el).hasClass(intlClasses.collapseAll)) {
					this.clpsAllAcrdn(el);
					return this;
				}else {
					return this;
				}
			},
			













			setBtnTitle: function(btnEl, title) {
				if (arguments.length === 0){return this;}
				
				var intlClasses = internalClasses;
				var button;

				if ((btnEl) && (ezBox.validator.isTag(btnEl))){
					button = btnEl;
				} else if ((btnEl) && (btnEl instanceof jQuery)) {
					if (btnEl.length === 1) {

						btnEl.each(function(){button = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}









					

				if (arguments.length < 2) {
					if ($(button).hasClass(intlClasses.collapseBtn)) {
						setClpsBtnTitle(button);
						return this;
					} else {
						return this;
					}
				} else if ((title) && (typeof title === "string")) {

					$(button).attr("title", title);
					return this;
				}
				

				function setClpsBtnTitle(btn) {
					var boxBody = $(btn).closest("div." + intlClasses.box)
							.children("div." + intlClasses.boxBody + ":first");
							if (boxBody.length < 1) {return;}
					
					if (ezBox.events.buttonHelper.getClpsState(boxBody) === intlClasses.uncollapsed) {
						$(btn).attr("title", "Collapse");
						return;
					} else if (ezBox.events.buttonHelper.getClpsState(boxBody) === intlClasses.collapsed) {
						$(btn).attr("title", "Uncollapse");
						return;
					}
					return;
				}
				

				function setInfoBtnTitle(btn) {
					
				}
				

				function setABtnTitle(btnEl) {
					
				}
				

				function setBBtnTitle(btnEl) {
					
				}
				

				function setCBtnTitle(btnEl) {
					
				}
			},
			












			setClpsStatus: function(obj) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}
				
				var box;
				var boxHeader;
				var hdrContext;
				var boxBody;
				
				box = $(el).closest("div." + intlClasses.box);
				boxHeader = box.children("div." + intlClasses.boxHeader + ":first");
				
				if (boxHeader.length > 0) {
					hdrContext = boxHeader.find("div." + intlClasses.headerBg_context + ":first");
					boxBody = box.children("div." + intlClasses.boxBody + ":first");
						if (boxBody.length < 1) {return this;}
					
					if (boxBody.css("display") === "block") {
						hdrContext.removeClass(intlClasses.collapsed).addClass(intlClasses.uncollapsed);

					} else if (boxBody.css("display") === "none") {
						hdrContext.removeClass(intlClasses.uncollapsed).addClass(intlClasses.collapsed);

					} else {
						return this;
					}
				} else {
					return this;
				}
				this.setBtnTitle(this.getClpsBtn(box));
				return this;
			},
		












			setBorder: function(obj) { 
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
 				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}

				var boxBody = $(el).closest("div." + intlClasses.box)
						.find("div." + intlClasses.boxBody + ":first");
				if (boxBody.length < 1) {return this;}
				
				if (boxBody.css("display") === "block") {
					this.addUnclpsBorder(el);
					return this;
				} else if (boxBody.css("display") === "none") {
					this.addClpsBorder(el);
					return this;
				}
				return this;
			},
		












			setClpsAllBtnStatus: function(obj) { 
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
							&& ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box)
							.hasClass(intlClasses.accordionBox)))) {return this;}

				var boxBody = $(el).closest("div." + intlClasses.accordionBox)
						.find("div." + intlClasses.accordionBody + ":first");
				if (boxBody.length < 1) {return this;}
				
				if (boxBody.css("display") === "block") {
					this.enableClpsAll(el);
					return this;
				} else if (boxBody.css("display") === "none") {
					this.disableClpsAll(el);
					return this;
				}
				return this;
			},
				






















			getActionBar: function(obj) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return $();
					}
				} else {
					return $();
				}
				
				if (!(($(el).hasClass(intlClasses.box))
						|| ($(el).closest("div." + intlClasses.box).length > 0))){return $();}



				var actionBar = $();
				var currentBox = $(el).closest("div." + intlClasses.box);
				
				if (currentBox.hasClass(intlClasses.actionBox)){return currentBox;}
				
				var goAgain;
				
				do {
					currentBox = currentBox.parents("div." + intlClasses.box + ":first");



					if (currentBox.length > 0){
						if (currentBox.hasClass(intlClasses.actionBox)) {
							actionBar = currentBox;
							goAgain = false;
						} else {
							goAgain = true;
						}
					} else {
						goAgain = false;
					}
				} while (goAgain);
				
				return actionBar;
			},
				






















			getLastAcrdnPntBx: function(obj) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return $();
					}
				} else {
					return $();
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
							&& ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box)
							.hasClass(intlClasses.accordionBox)))) {return $();}



				var lastAcrdnPntBx = $(el).closest("div." + intlClasses.accordionBox);
				if (lastAcrdnPntBx < 1){return $();}
				
				var goAgain;
				do {
					if (lastAcrdnPntBx.parents("div." + intlClasses.box + ":first")
							.hasClass(intlClasses.accordionBox)) {
						lastAcrdnPntBx = lastAcrdnPntBx.parents("div." + intlClasses.accordionBox + ":first");
						goAgain = true;
					} else {
						goAgain = false;
					}
				} while (goAgain);
				
				if (lastAcrdnPntBx.length > 0) {
					return lastAcrdnPntBx;
				} else {
					return $();
				}
			},
				






















			getLastCmdPntBx: function(obj) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return $();
					}
				} else {
					return $();
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
							&& ($(el).hasClass(intlClasses.commandBox)))
							|| ($(el).closest("div." + intlClasses.box)
							.hasClass(intlClasses.commandBox)))) {return $();}



				var lastCmdPntBx = $(el).closest("div." + intlClasses.commandBox);
				if (lastCmdPntBx < 1){return $();}
				
				var goAgain;
				do {
					if (lastCmdPntBx.parents("div." + intlClasses.box + ":first")
							.hasClass(intlClasses.commandBox)) {
						lastCmdPntBx = lastCmdPntBx.parents("div." + intlClasses.commandBox + ":first");
						goAgain = true;
					} else {
						goAgain = false;
					}
				} while (goAgain);
				
				if (lastCmdPntBx.length > 0) {
					return lastCmdPntBx;
				} else {
					return $();
				}
			},
				

















			getAcrdnPntBxs: function(obj) { 
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return $();
					}
				} else {
					return $();
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
							&& ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box)
							.hasClass(intlClasses.accordionBox)))) {return $();}

				var acrdnParentBoxes = $();
				


				var lastAcrdnPntBx = $(el).closest("div." + intlClasses.accordionBox);
				if (lastAcrdnPntBx.length < 1){return $();}
				
				var goAgain;
				
				do {



					if (lastAcrdnPntBx.parents("div." + intlClasses.box + ":first")
							.hasClass(intlClasses.accordionBox)) {
						lastAcrdnPntBx = lastAcrdnPntBx.parents("div." + intlClasses.accordionBox + ":first");
						acrdnParentBoxes = acrdnParentBoxes.add(lastAcrdnPntBx);
						goAgain = true;
					} else {
						goAgain = false;
					}
				} while (goAgain);
				
				if (acrdnParentBoxes.length > 0) {	
					return acrdnParentBoxes;
				} else {
					return $();
				}
			},
				

















			getClpsBtn: function(obj) { 
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return $();
					}
				} else {
					return $();
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
						&& ($(el).children("div." + intlClasses.boxHeader + ":first").length > 0))
						|| ($(el).closest("div." + intlClasses.box)
						.children("div." + intlClasses.boxHeader + ":first").length > 0))) {return $();}

				return $(el).closest("div." + intlClasses.box)
						.children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.collapseBtn);
			},
				

















			getClpsState: function(obj) { 
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return intlClasses.unknown;
					}
				} else {
					return intlClasses.unknown;
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
						&& ($(el).children("div." + intlClasses.boxHeader + ":first").length > 0))
						|| ($(el).closest("div." + intlClasses.box)
						.children("div." + intlClasses.boxHeader + ":first").length > 0))) {return intlClasses.unknown;}

				var box = $(el).closest("div." + intlClasses.box);
				var hdrContext = box
						.children("div." + intlClasses.boxHeader + ":first")
						.find("div." + intlClasses.headerBg_context + ":first");
				
				if (hdrContext.hasClass(intlClasses.collapsed)) {
					return intlClasses.collapsed;
				} else if (hdrContext.hasClass(intlClasses.uncollapsed)) {
					return intlClasses.uncollapsed;
				} else if (hdrContext.hasClass(intlClasses.collapsing)) {
					return intlClasses.collapsing;
				} else if (hdrContext.hasClass(intlClasses.uncollapsing)) {
					return intlClasses.uncollapsing;
				} else {
					return intlClasses.unknown;
				}
			},
			
			



















 			getCmds: function(obj) {
				var intlClasses = internalClasses;
				var el;


				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return $();
					}
				} else {
					return $();
				}
				
				if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.actionBox)))
						|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.actionBox)))) {
					return $();
				}
				
				var allCmdBxs;
				var crntBarCmdBxs;
				var nstdActionBars;
				var crntActionBar = $(el).closest("div." + intlClasses.actionBox);
				
				allCmdBxs = crntActionBar
						.children("div." + intlClasses.actionBody + ":first")
						.find("div." + intlClasses.commandBox);
					if (allCmdBxs.length < 1){ return $(); }
				


				nstdActionBars = crntActionBar
						.children("div." + intlClasses.actionBody + ":first")
						.find("div." + intlClasses.actionBox);

				crntBarCmdBxs = allCmdBxs.not(nstdActionBars
						.find("div." + intlClasses.commandBox));
				if (crntBarCmdBxs.length > 0) {
					return crntBarCmdBxs;
				} else {
					return $();
				}
			},
			


















 			getUnclpsdCmds: function(obj){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.actionBox)))
						|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.actionBox)))) {
					return $();
				}

				var allBarCmds = this.getCmds(el);
						if (allBarCmds.length < 1){return $();}
				var dspldCmds = allBarCmds.filter(
						function(){return ($(this)
							.children("div." + intlClasses.commandBody + ":first")
							.css("display") === "block");});
				return dspldCmds;
			},
			


















 			getClpsdCmds: function(obj){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.actionBox)))
						|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.actionBox)))) {
					return $();
				}

				var allBarCmds = this.getCmds(el);
						if (allBarCmds.length < 1){return $();}
				var clpsdCmds = allBarCmds.filter(
						function(){return ($(this)
							.children("div." + intlClasses.commandBody + ":first")
							.css("display") === "none");});
				return clpsdCmds;
			},
			















			enableClpsAll: function(obj) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
							&& ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box)
							.hasClass(intlClasses.accordionBox)))) {return this;}

				var acrdnParentBoxes = this.getAcrdnPntBxs(el);
				if (acrdnParentBoxes.length < 1){return this;}
				
				acrdnParentBoxes.each(function(index){
						var collapseAll = $(this)
								.children("div." + intlClasses.accordionHeader + ":first")
								.find("div." + intlClasses.collapseAll);
						collapseAll.removeClass(intlClasses.collapseAllDisabled)
								.addClass(intlClasses.collapseAllEnabled);
					});
				return this;
			},

			

















			addClpsBorder: function(obj) {
				var userClasses = activeUserClasses;
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}
 
				var box = $(el).closest("div." + intlClasses.box);
						if (box.length < 1){return this;}
						
				var hdrContext = box.children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return this;}
						



				var borders  = 0;
				var bits;
				var sides = constants.sides;
				
				this.removeUnclpsBorder(el);
				
				if (($(box).hasClass(userClasses.borderTopOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderTopUnCollapse)))) {
					addUpperBits(sides.TOP);
				}
				if (($(box).hasClass(userClasses.borderLeftOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderLeftUnCollapse)))) {
					addUpperBits(sides.LEFT);
				}
				if (($(box).hasClass(userClasses.borderRightOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderRightUnCollapse)))) {
					addUpperBits(sides.RIGHT);
				}
				if (($(box).hasClass(userClasses.borderBottomOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderBottomUnCollapse)))) {
					addUpperBits(sides.BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderVerticalOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderVerticalUnCollapse)))) {
					addUpperBits(sides.VERTICALS);
				}
				if (($(box).hasClass(userClasses.borderHorizontalOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderHorizontalUnCollapse)))) {
					addUpperBits(sides.HORIZONTALS);
				}
				if (($(box).hasClass(userClasses.borderNotTopOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotTopUnCollapse)))) {
					addUpperBits(sides.NOT_TOP);
				}
				if (($(box).hasClass(userClasses.borderNotLeftOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotLeftUnCollapse)))) {
					addUpperBits(sides.NOT_LEFT);
				}
				if (($(box).hasClass(userClasses.borderNotRightOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotRightUnCollapse)))) {
					addUpperBits(sides.NOT_RIGHT);
				}
				if (($(box).hasClass(userClasses.borderNotBottomOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotBottomUnCollapse)))) {
					addUpperBits(sides.NOT_BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderUnCollapse)))) {
					addUpperBits(sides.ALL);
				}
				
				addClasses();
				
				function addUpperBits(side) {
					bits = side << 4;
					borders |= bits;
					return;
				}
				
				function addClasses() {
					if ((borders >> 7) === 1){
						hdrContext.addClass(intlClasses.borderTop);
					}
					
					if ((((borders >> 6) | 2) ^ 2) === 1) {
						hdrContext.addClass(intlClasses.borderLeft);
					}
					
					if ((((borders >> 5) | 6) ^ 6) === 1) {
						hdrContext.addClass(intlClasses.borderRight);
					}
					
					if ((((borders >> 4) | 14) ^ 14) === 1) {
						hdrContext.addClass(intlClasses.borderBottom);
					}
					return;
				}
				return this;
			},

			

















			addUnclpsBorder: function(obj) {
				var userClasses = activeUserClasses;
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}
 
				var box = $(el).closest("div." + intlClasses.box);
						if (box.length < 1){return this;}
						
				var hdrContext = box.children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return this;}
						



				var borders  = 0;
				var bits;
				var sides = constants.sides;
				
				this.removeClpsBorder(el);
				
				if (($(box).hasClass(userClasses.borderTopUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderTopOnCollapse)))) {
					addUpperBits(sides.TOP);
				}
				if (($(box).hasClass(userClasses.borderLeftUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderLeftOnCollapse)))) {
					addUpperBits(sides.LEFT);
				}
				if (($(box).hasClass(userClasses.borderRightUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderRightOnCollapse)))) {
					addUpperBits(sides.RIGHT);
				}
				if (($(box).hasClass(userClasses.borderBottomUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderBottomOnCollapse)))) {
					addUpperBits(sides.BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderVerticalUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderVerticalOnCollapse)))) {
					addUpperBits(sides.VERTICALS);
				}
				if (($(box).hasClass(userClasses.borderHorizontalUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderHorizontalOnCollapse)))) {
					addUpperBits(sides.HORIZONTALS);
				}
				if (($(box).hasClass(userClasses.borderNotTopUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotTopOnCollapse)))) {
					addUpperBits(sides.NOT_TOP);
				}
				if (($(box).hasClass(userClasses.borderNotLeftUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotLeftOnCollapse)))) {
					addUpperBits(sides.NOT_LEFT);
				}
				if (($(box).hasClass(userClasses.borderNotRightUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotRightOnCollapse)))) {
					addUpperBits(sides.NOT_RIGHT);
				}
				if (($(box).hasClass(userClasses.borderNotBottomUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotBottomOnCollapse)))) {
					addUpperBits(sides.NOT_BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderOnCollapse)))) {
					addUpperBits(sides.ALL);
				}
				
 				addClasses();
				
				function addUpperBits(side) {
					bits = side << 4;
					borders |= bits;
					return;
				}
				
				function addClasses() {
					if ((borders >> 7) === 1){
						hdrContext.addClass(intlClasses.borderTop);
					}
					
					if ((((borders >> 6) | 2) ^ 2) === 1) {
						hdrContext.addClass(intlClasses.borderLeft);
					}
					
					if ((((borders >> 5) | 6) ^ 6) === 1) {
						hdrContext.addClass(intlClasses.borderRight);
					}
					
					if ((((borders >> 4) | 14) ^ 14) === 1) {
						hdrContext.addClass(intlClasses.borderBottom);
					}
					return;
				}
				return this;
			},

			

















			removeClpsBorder: function(obj) {
				var userClasses = activeUserClasses;
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}
 
				var box = $(el).closest("div." + intlClasses.box);
						if (box.length < 1){return this;}
						
				var hdrContext = box.children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return this;}				
						



				var borders  = 0;
				var bits;
				var sides = constants.sides;
				
				if (($(box).hasClass(userClasses.borderTopOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderTopUnCollapse)))) {
					addUpperBits(sides.TOP);
				}
				if (($(box).hasClass(userClasses.borderLeftOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderLeftUnCollapse)))) {
					addUpperBits(sides.LEFT);
				}
				if (($(box).hasClass(userClasses.borderRightOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderRightUnCollapse)))) {
					addUpperBits(sides.RIGHT);
				}
				if (($(box).hasClass(userClasses.borderBottomOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderBottomUnCollapse)))) {
					addUpperBits(sides.BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderVerticalOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderVerticalUnCollapse)))) {
					addUpperBits(sides.VERTICALS);
				}
				if (($(box).hasClass(userClasses.borderHorizontalOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderHorizontalUnCollapse)))) {
					addUpperBits(sides.HORIZONTALS);
				}
				if (($(box).hasClass(userClasses.borderNotTopOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotTopUnCollapse)))) {
					addUpperBits(sides.NOT_TOP);
				}
				if (($(box).hasClass(userClasses.borderNotLeftOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotLeftUnCollapse)))) {
					addUpperBits(sides.NOT_LEFT);
				}
				if (($(box).hasClass(userClasses.borderNotRightOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotRightUnCollapse)))) {
					addUpperBits(sides.NOT_RIGHT);
				}
				if (($(box).hasClass(userClasses.borderNotBottomOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotBottomUnCollapse)))) {
					addUpperBits(sides.NOT_BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderOnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderUnCollapse)))) {
					addUpperBits(sides.ALL);
				}
				
 				addClasses();
				
				function addUpperBits(side) {
					bits = side << 4;
					borders |= bits;
					return;
				}
				
				function addClasses() {
					if ((borders >> 7) === 1){
						hdrContext.removeClass(intlClasses.borderTop);
					}
					
					if ((((borders >> 6) | 2) ^ 2) === 1) {
						hdrContext.removeClass(intlClasses.borderLeft);
					}
					
					if ((((borders >> 5) | 6) ^ 6) === 1) {
						hdrContext.removeClass(intlClasses.borderRight);
					}
					
					if ((((borders >> 4) | 14) ^ 14) === 1) {
						hdrContext.removeClass(intlClasses.borderBottom);
					}
					return;
				}
				return this;
			},

			

















			removeUnclpsBorder: function(obj) {
				var userClasses = activeUserClasses;
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}
 
				var box = $(el).closest("div." + intlClasses.box);
						if (box.length < 1){return this;}
						
				var hdrContext = box.children("div." + intlClasses.boxHeader + ":first")
							.find("div." + intlClasses.headerBg_context + ":first");
						if (hdrContext.length < 1){return this;}
						



				var borders  = 0;
				var bits;
				var sides = constants.sides;
				
				if (($(box).hasClass(userClasses.borderTopUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderTopOnCollapse)))) {
					addUpperBits(sides.TOP);
				}
				if (($(box).hasClass(userClasses.borderLeftUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderLeftOnCollapse)))) {
					addUpperBits(sides.LEFT);
				}
				if (($(box).hasClass(userClasses.borderRightUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderRightOnCollapse)))) {
					addUpperBits(sides.RIGHT);
				}
				if (($(box).hasClass(userClasses.borderBottomUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderBottomOnCollapse)))) {
					addUpperBits(sides.BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderVerticalUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderVerticalOnCollapse)))) {
					addUpperBits(sides.VERTICALS);
				}
				if (($(box).hasClass(userClasses.borderHorizontalUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderHorizontalOnCollapse)))) {
					addUpperBits(sides.HORIZONTALS);
				}
				if (($(box).hasClass(userClasses.borderNotTopUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotTopOnCollapse)))) {
					addUpperBits(sides.NOT_TOP);
				}
				if (($(box).hasClass(userClasses.borderNotLeftUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotLeftOnCollapse)))) {
					addUpperBits(sides.NOT_LEFT);
				}
				if (($(box).hasClass(userClasses.borderNotRightUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotRightOnCollapse)))) {
					addUpperBits(sides.NOT_RIGHT);
				}
				if (($(box).hasClass(userClasses.borderNotBottomUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderNotBottomOnCollapse)))) {
					addUpperBits(sides.NOT_BOTTOM);
				}
				if (($(box).hasClass(userClasses.borderUnCollapse)) 
						&& (!($(box).hasClass(userClasses.borderOnCollapse)))) {
					addUpperBits(sides.ALL);
				}
				
 				addClasses();
				
				function addUpperBits(side) {
					bits = side << 4;
					borders |= bits;
					return;
				}
				
				function addClasses() {
					if ((borders >> 7) === 1){
						hdrContext.removeClass(intlClasses.borderTop);
					}
					
					if ((((borders >> 6) | 2) ^ 2) === 1) {
						hdrContext.removeClass(intlClasses.borderLeft);
					}
					
					if ((((borders >> 5) | 6) ^ 6) === 1) {
						hdrContext.removeClass(intlClasses.borderRight);
					}
					
					if ((((borders >> 4) | 14) ^ 14) === 1) {
						hdrContext.removeClass(intlClasses.borderBottom);
					}
					return;
				}
				return this;
			},
			
			

















			disableClpsAll: function(obj) {
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!((($(el).hasClass(intlClasses.box)) 
							&& ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box)
							.hasClass(intlClasses.accordionBox)))) {return this;}
				
				if (!this.hasAcrdnParent(el)) {return this;}

				var acrdnParentBody = $(el)
						.closest("div." + intlClasses.accordionBox)
						.parents("div." + intlClasses.accordionBody + ":first");
				if (acrdnParentBody.length < 1) {return this;}











				var allAcrdnBxBdies;
				var nonAcrdnBxBdies;
				var nstdAcrdnBxBdies;
				var crntBxBdies;
				var boxBodyArray;
				var prevBxBodies = $();
				var collapseAllBtn;
				var bodyElement;
				var goAgain;
				
				gettingBoxBodies: do {
					allAcrdnBxBdies = acrdnParentBody.find("div." + intlClasses.accordionBody);
					nonAcrdnBxBdies = acrdnParentBody.find("div." + intlClasses.boxBody).filter(
							function(){
								if (($(this).hasClass(intlClasses.boxBody)) 
										&& (!($(this).hasClass(intlClasses.accordionBody)))) {
									return true;
								} else {
									return false;
								}
							});
					nstdAcrdnBxBdies = nonAcrdnBxBdies.find("div." + intlClasses.accordionBody);

					crntBxBdies = allAcrdnBxBdies.not(nstdAcrdnBxBdies).not(prevBxBodies);
					







					if (crntBxBdies.length > 0) {
						boxBodyArray = new Array();
						crntBxBdies.each(function(index){boxBodyArray[index] = this; return;});
						
						examiningBoxBodies: for (var i = 0; i < boxBodyArray.length; i++) {
							if ($(boxBodyArray[i]).css("display") === "none") {
								continue examiningBoxBodies;
							} else if ($(boxBodyArray[i]).css("display") === "block") {

								break gettingBoxBodies;
							}
						}
					}
					collapseAllBtn = acrdnParentBody
							.closest("div." + intlClasses.accordionBox)
							.children("div." + intlClasses.accordionHeader + ":first")
							.find("div." + intlClasses.collapseAll);
					collapseAllBtn.removeClass(intlClasses.collapseAllEnabled)
							.addClass(intlClasses.collapseAllDisabled);
					prevBxBodies = prevBxBodies.add(crntBxBdies);
					
					if (this.hasAcrdnParent(acrdnParentBody.closest("div." + intlClasses.accordionBox))) {
						acrdnParentBody = acrdnParentBody
								.closest("div." + intlClasses.accordionBox)
								.parents("div." + intlClasses.accordionBody + ":first");
						goAgain = (acrdnParentBody.length > 0)?true:false;
					} 
					 else {
						goAgain = false;
					}







				} while (goAgain);
				return this;
			},























 			hasActionBarParent: function(obj){
				var intlClasses = internalClasses;
				var element;
				var query;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					element = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){element = this;});
					} else {
						return false;
					}
				} else {
					return false;
				}
				

				if (($(element).hasClass(intlClasses.box)) && ($(element).hasClass(intlClasses.actionBox))) {
					query = $(element).parents("div." + intlClasses.box + ":first");
					if (query.length < 1){ return false; }
				} else if (($(element).hasClass(intlClasses.box)) && ($(element).hasClass(intlClasses.accordionBox))) {
					query = $(element).closest("div." + intlClasses.accordionBox);
				} else if ($(element).closest("div." + intlClasses.box).hasClass(intlClasses.accordionBox)) {
					query = $(element).closest("div." + intlClasses.accordionBox);
				} else if ($(element).hasClass(intlClasses.box)) {
					query = $(element).closest("div." + intlClasses.box);
				} else if ($(element).closest("div." + intlClasses.box).length > 0) {
					query = $(element).closest("div." + intlClasses.box);
				} else {
					query = $(element);
				}
				
				var actionBar = this.getActionBar(query);
				
				if (actionBar.length > 0) {
					if (actionBar.hasClass(intlClasses.actionBox)) {
						return true;
					} else {
						return false;
					}
				} else {
					return false;
				}
			},























 			hasAcrdnParent: function(obj){
				var intlClasses = internalClasses;
				var element;
				var query;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					element = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){element = this;});
					} else {
						return false;
					}
				} else {
					return false;
				}
				

				if (($(element).hasClass(intlClasses.box)) && ($(element).hasClass(intlClasses.accordionBox))) {
					query = $(element).closest("div." + intlClasses.accordionBox);
				} else if ($(element).closest("div." + intlClasses.box).hasClass(intlClasses.accordionBox)) {
					query = $(element).closest("div." + intlClasses.accordionBox);
				} else if ($(element).hasClass(intlClasses.box)) {
					query = $(element).closest("div." + intlClasses.box);
				} else if ($(element).closest("div." + intlClasses.box).length > 0) {
					query = $(element).closest("div." + intlClasses.box);
				} else {
					query = $(element);
				}
				
				var goAgain;
				do {
					if ((query.parent().hasClass(intlClasses.content))
							|| (query.parent().hasClass(intlClasses.bodyBg))) {
						query = query.parent();
						goAgain = true;
					} else if (query.parent().hasClass(intlClasses.accordionBody)) {
						return true;
					} else {
						goAgain = false;
					}
				} while (goAgain);
				
				return false;
			},
			


















 			hasClick: function(obj){
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return false;
					}
				} else {
					return false;
				}

				if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.commandBox)))
						|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.commandBox)))) {
					return false;
				}
				
				var box = $(el).closest("div." + intlClasses.commandBox);
				
				if (box.hasClass(intlClasses.clicked)) {
					return true;
				} else {
					return false;
				}
			},
			


















 			hasBody: function(obj){
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return false;
					}
				} else {
					return false;
				}

				if (!(($(el).hasClass(intlClasses.box))
						|| ($(el).closest("div." + intlClasses.box).length > 0))){return false;}
				
				var box = $(el).closest("div." + intlClasses.box);
				var boxBody = box.children("div." + intlClasses.boxBody + ":first");
				
				if (boxBody.length < 1) return false; return true;
			},
			


















 			hasDisplay: function(obj){
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return false;
					}
				} else {
					return false;
				}

				if (!(($(el).hasClass(intlClasses.box))
						|| ($(el).closest("div." + intlClasses.box).length > 0))){return false;}
				
				var box = $(el).closest("div." + intlClasses.box);
				var boxBody = box.children("div." + intlClasses.boxBody + ":first");
						if (boxBody.length < 1){return false;}
				
				if (boxBody.css("display") === "block") {
					return true;
				} else {
					return false;
				}
			},
			


















 			isCollapsed: function(obj){
				var intlClasses = internalClasses;
				if (this.getClpsState(obj) === intlClasses.collapsed){return true;}
				return false;
			},
			


















 			isUncollapsed: function(obj){
				var intlClasses = internalClasses;
				if (this.getClpsState(obj) === intlClasses.uncollapsed){return true;}
				return false;
			},
			


















 			isCollapsing: function(obj){
				var intlClasses = internalClasses;
				if (this.getClpsState(obj) === intlClasses.collapsing){return true;}
				return false;
			},
			


















 			isUncollapsing: function(obj){
				var intlClasses = internalClasses;
				if (this.getClpsState(obj) === intlClasses.uncollapsing){return true;}
				return false;
			},
			


















 			isStoppable: function(obj){
				var intlClasses = internalClasses;
				if ((this.getClpsState(obj) === intlClasses.uncollapsing)
						&& (!(this.hasClick(obj)))
						&& (this.hasDisplay(obj))){return true;}
				return false;
			},
			

















 			toggleBody: function(obj, fn){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}

				var box = $(el).closest("div." + intlClasses.box);
 				var boxHeader = box.children("div." + intlClasses.boxHeader + ":first");
						if (boxHeader.length < 1) {return this;}
				var hdrContext = boxHeader
						.find("div." + intlClasses.headerBg_context + ":first");
				var boxBody = box.children("div." + intlClasses.boxBody + ":first");
						if (boxBody.length < 1){return this;}
				
				if ((this.isCollapsing(box)) || (this.isUncollapsing(box))) {
					return this;
				} else if (this.isCollapsed(box)) {
					hdrContext.removeClass(intlClasses.collapsed).addClass(intlClasses.uncollapsing);
				} else if (this.isUncollapsed(box)) {
					hdrContext.removeClass(intlClasses.uncollapsed).addClass(intlClasses.collapsing);
				} else {
					return this;
				}
				if ($(box).hasClass(intlClasses.clicked)) {
					$(box).removeClass(intlClasses.clicked);
				}
				if ((fn) && (typeof fn === "function")) {
					boxBody.toggle("fast", function(){
						rmvTglCls();
						fn();
					});
				} else {
					boxBody.toggle("fast", function(){rmvTglCls();});
				}
				return this;
				
				function rmvTglCls() {
					if (hdrContext.hasClass(intlClasses.uncollapsing)){
						hdrContext.removeClass(intlClasses.uncollapsing);
						ezBox.events.buttonHelper.setClpsStatus(box);
					} else if (hdrContext.hasClass(intlClasses.collapsing)) {
						hdrContext.removeClass(intlClasses.collapsing);
						ezBox.events.buttonHelper.setClpsStatus(box);
					}
				}

			},
			

















 			stopBodyToggle: function(obj, clearQueue, gotoEnd){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (($(el).hasClass(intlClasses.box)) || ($(el).closest("div." + intlClasses.box).length > 0)) {
					if ((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.headlessBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.headlessBox))) {

						return this;
					}
				} else {
					return this;
				}
				

				var box = $(el).closest("div." + intlClasses.box);
				var boxBody = box.children("div." + intlClasses.boxBody + ":first");
						if (boxBody.length < 1){return this;}
				var dequeue = clearQueue || false;
				var doEnd = gotoEnd || false;
				
				if ((this.isCollapsing(box)) || (this.isUncollapsing(box))) {
					boxBody.stop(dequeue, doEnd);
				} else {
					return this;
				}
			},
			
			



















 			clpsActionCmd: function(obj, exclude){
				var intlClasses = internalClasses;
				var el;
				var excludeBody;


				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				

					if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.commandBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.commandBox)))) {

						return this;
					}

				if ((exclude) && (ezBox.validator.isTag(exclude))){
					excludeBody = $(exclude).children("div." + intlClasses.commandBody + ":first");
					if (excludeBody.length < 1) {
						excludeBody = undefined;
					}
				} else if ((exclude) && (exclude instanceof jQuery)) {
					if (exclude.length === 1) {
						excludeBody = $(exclude).children("div." + intlClasses.commandBody + ":first");
						if (excludeBody.length < 1) {
							excludeBody = undefined;
						}
					}
				}
				
				var allCmdBodies;
				var crntBarCmdBodies;
				var dspldCmdBodies;
				var nstdActionBars;
				var crntActionBar = this.getActionBar(el);
				
				if (crntActionBar.length < 1){ return this; }


				
				allCmdBodies = crntActionBar
						.children("div." + intlClasses.actionBody + ":first")
						.find("div." + intlClasses.commandBody);
					if (allCmdBodies.length < 1){ return this; }
				


				nstdActionBars = crntActionBar
						.children("div." + intlClasses.actionBody + ":first")
						.find("div." + intlClasses.actionBox);

				crntBarCmdBodies = allCmdBodies.not(nstdActionBars
						.find("div." + intlClasses.commandBody));
				dspldCmdBodies = crntBarCmdBodies.filter(
						function(){




							
						return ($(this).css("display") === "block");});
				
				if (typeof excludeBody !== "undefined") {
					dspldCmdBodies = dspldCmdBodies.not(excludeBody);
				}

				if (dspldCmdBodies.length > 0) {


					dspldCmdBodies.each(function() {
								$(this).css("display", "none");
								ezBox.events.buttonHelper.setClpsStatus(this).setBorder(this);
							});
							

					
					return this;
				} else {
					return this;
				}
			},
			



















 			unclpsActionCmd: function(obj){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				

					if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.commandBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.commandBox)))) {

						return this;
					}

				
 				var boxHeader = $(el).closest("div." + intlClasses.commandBox)
						.children("div." + intlClasses.boxHeader + ":first");

						if (boxHeader.length < 1) {return this;}
				var hdrContext = boxHeader
						.find("div." + intlClasses.headerBg_context + ":first");
				if (hdrContext.hasClass(intlClasses.mouseOverCollapse)) {
					hdrContext.removeClass(intlClasses.mouseOverCollapse);
				}
				
				var boxBody = $(el).closest("div." + intlClasses.commandBox)
						.children("div." + intlClasses.commandBody + ":first");
				
				if (boxBody.length > 0){
					boxBody.css("display", "block");
					ezBox.events.buttonHelper.setClpsStatus(el).setBorder(el);
				} else {
					return this;
				}
			},
			


















 			doCommand: function(obj){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				

					if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.commandBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.commandBox)))) {

						return this;
					}
				var eventBox;
					$(el).closest("div." + intlClasses.box).each(function(){eventBox = this;});
				var wasCollapsed = true;
				var allCmdBodies;
				var crntBarCmdBodies;
				var dspldCmdBodies;
				var nstdActionBars;
				var crntActionBar = this.getActionBar(el);
				
				if (crntActionBar.length < 1){ return this; }


				
				allCmdBodies = crntActionBar
						.children("div." + intlClasses.actionBody + ":first")
						.find("div." + intlClasses.boxBody);
					if (allCmdBodies.length < 1){ return this; }
				


				nstdActionBars = crntActionBar
						.children("div." + intlClasses.actionBody + ":first")
						.find("div." + intlClasses.actionBox);

				crntBarCmdBodies = allCmdBodies.not(nstdActionBars
						.children("div." + intlClasses.actionBody)
						.find("div." + intlClasses.boxBody));

				dspldCmdBodies = crntBarCmdBodies.filter(
						function(){return ($(this).css("display") === "block");});

				if (dspldCmdBodies.length > 0) {


					dspldCmdBodies.each(
							function(){
								var bxBdy = this;

								

								
								ezBox.events.buttonHelper.toggleBody(bxBdy, function() {

										ezBox.events.buttonHelper.setBorder(bxBdy);
										

										
									});
								var dispBox;
									$(bxBdy).closest("div." + intlClasses.box).each(function(){dispBox = this;});
								if (eventBox === dispBox) {
									wasCollapsed = false;
								}
								return;
							});



					if (wasCollapsed) {
						this.toggleBody(eventBox, function() {

								var hdrContext = $(eventBox).closest("div." + intlClasses.commandBox)
										.children("div." + intlClasses.boxHeader + ":first")
										.find("div." + intlClasses.headerBg_context + ":first");
										if (hdrContext.length < 1) {return ezBox.events.buttonHelper;}
								if (hdrContext.hasClass(intlClasses.mouseOverCollapse)) {
									hdrContext.removeClass(intlClasses.mouseOverCollapse);
								}
								ezBox.events.buttonHelper.setBorder(this);
							});
					}
					return this;
				} else {

					


					if (wasCollapsed) {
						this.toggleBody(eventBox, function() {






							
							var hdrContext = $(eventBox).closest("div." + intlClasses.commandBox)
									.children("div." + intlClasses.boxHeader + ":first")
									.find("div." + intlClasses.headerBg_context + ":first");
									if (hdrContext.length < 1) {return ezBox.events.buttonHelper;}
							if (hdrContext.hasClass(intlClasses.mouseOverCollapse)) {
								hdrContext.removeClass(intlClasses.mouseOverCollapse);
							}
							ezBox.events.buttonHelper.setBorder(eventBox);
						});
					}
					return this;
				}
			},
			


















 			clpsAllActnCmd: function(obj){
				var intlClasses = internalClasses;
				var el;
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				

					if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.commandBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.commandBox)))) {

						return this;
					}
				var allCmdBxBodies;
				var nonCmdBxBodies;
				var rmtCmdBxBodies;
				var nearCmdBxBodies;
				var unclpsdCmdBodies;
				
				allCmdBxBodies = $(el).closest("div." + intlClasses.commandBox)
						.find("div." + intlClasses.commandBody);
					if (allCmdBxBodies.length < 1){ return this; }
				








				nonCmdBxBodies = $(el).closest("div." + intlClasses.commandBox)
						.find("div." + intlClasses.commandBody + ":first")
						.find("div." + intlClasses.boxBody).filter(
						function(){
							if (($(this).hasClass(intlClasses.boxBody)) 
									&& (!($(this).hasClass(intlClasses.commandBody)))) {
								return true;
							} else {
								return false;
							}
						});







				rmtCmdBxBodies = nonCmdBxBodies.find("div." + intlClasses.commandBody);








				nearCmdBxBodies = allCmdBxBodies.not(rmtCmdBxBodies);







				unclpsdCmdBodies = nearCmdBxBodies.filter(
						function(){return ($(this).css("display") === "block");});







				if (unclpsdCmdBodies.length < 1) {return this;}
				unclpsdCmdBodies.each(
						function(){
							$(this).css("display", "none");
							ezBox.events.buttonHelper.setClpsStatus(this).setBorder(this);
							return;
						});
				return this;
			},
			


















 			clpsAcrdn: function(obj){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				

					if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.accordionBox)))) {

						return this;
					}
				var hdrContext = $(el).closest("div." + intlClasses.accordionBox)
						.find("div." + intlClasses.headerBg_context + ":first");
				var clpsBtn = this.getClpsBtn(el);
				
				if (ezBox.events.buttonHelper.isCollapsed(el)) {
					hdrContext.addClass(intlClasses.mouseOverUncollapse);
					ezBox.events.buttonHelper.doButton(clpsBtn, function(){
							hdrContext.removeClass(intlClasses.mouseOverCollapse);
							ezBox.events.buttonHelper
									.setBorder(el)
									.setClpsAllBtnStatus(el);
						});
				} else {
					hdrContext.addClass(intlClasses.mouseOverCollapse);
					ezBox.events.buttonHelper.doButton(clpsBtn, function(){
							hdrContext.removeClass(intlClasses.mouseOverUncollapse);
							ezBox.events.buttonHelper
									.setBorder(el)
									.setClpsAllBtnStatus(el);
						});
				}
				return this;
			},
			


















 			clpsAllAcrdn: function(obj){
				var intlClasses = internalClasses;
				var el;
				
				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				

					if (!((($(el).hasClass(intlClasses.box)) && ($(el).hasClass(intlClasses.accordionBox)))
							|| ($(el).closest("div." + intlClasses.box).hasClass(intlClasses.accordionBox)))) {

						return this;
					}
				var allAcrdnBxBodies;
				var nonAcrdnBxBodies;
				var rmtAcrdnBxBodies;
				var nearAcrdnBxBodies;
				var displayedBxBodies;
				
				allAcrdnBxBodies = $(el).closest("div." + intlClasses.accordionBox)
						.find("div." + intlClasses.accordionBody + ":first")
						.find("div." + intlClasses.accordionBody);
					if (allAcrdnBxBodies.length < 1){ return this; }
				








				nonAcrdnBxBodies = $(el).closest("div." + intlClasses.accordionBox)
						.find("div." + intlClasses.accordionBody + ":first")
						.find("div." + intlClasses.boxBody).filter(
						function(){
							if (($(this).hasClass(intlClasses.boxBody)) 
									&& (!($(this).hasClass(intlClasses.accordionBody)))) {
								return true;
							} else {
								return false;
							}
						});







				rmtAcrdnBxBodies = nonAcrdnBxBodies.find("div." + intlClasses.accordionBody);








				nearAcrdnBxBodies = allAcrdnBxBodies.not(rmtAcrdnBxBodies);







				displayedBxBodies = nearAcrdnBxBodies.filter(
						function(){return ($(this).css("display") === "block");});







				if (displayedBxBodies.length < 1) {return this;}
				displayedBxBodies.each(
						function(){
							$(this).css("display", "none");
							ezBox.events.buttonHelper
									.setClpsStatus(this)
									.setBorder(this)
									.setClpsAllBtnStatus(this);
							return;
						});
				return this;
			},
		
			












			collapse: function(obj){
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!(($(el).hasClass(intlClasses.box))
						|| ($(el).closest("div." + intlClasses.box).length > 0))){return this;}

				var boxBody = $(el).closest("div." + intlClasses.box)
						.find("div." + intlClasses.boxBody + ":first");
				if (boxBody.length < 1) {return this;}
				
				if (boxBody.css("display") === "block") {
					doClps(el);
					return this;
				} else {
					return this;
				}
				
				function doClps(elem) {
					var btn = this.getClpsBtn(elem);
				
					if (btn.length === 1) {



						ezBox.events.buttonHelper.toggleBody(btn, function() {
								ezBox.events.buttonHelper.setBorder(elem);
							});
						return;
					} else {
						return;
					}
				}
			},
		
			












			uncollapse: function(obj){
				var intlClasses = internalClasses;
				var el;

				if ((obj) && (ezBox.validator.isTag(obj))){
					el = obj;
				} else if ((obj) && (obj instanceof jQuery)) {
					if (obj.length === 1) {
						obj.each(function(){el = this;});
					} else {
						return this;
					}
				} else {
					return this;
				}
				
				if (!(($(el).hasClass(intlClasses.box))
						|| ($(el).closest("div." + intlClasses.box).length > 0))){return this;}

				var boxBody = $(el).closest("div." + intlClasses.box)
						.find("div." + intlClasses.boxBody + ":first");
						if (boxBody.length < 1) {return this;}
				
				if (boxBody.css("display") === "none") {
					undoClps(el);
					return this;
				} else {
					return this;
				}
				
				function undoClps(elem) {
					var btn = this.getClpsBtn(elem);

					if (btn.length === 1) {



						ezBox.events.buttonHelper.toggleBody(btn, function() {
								ezBox.events.buttonHelper.setBorder(elem);
							});
						return;
					} else {
						return;
					}
				}
			}
		}
	};

	ezBox.init = {
		boxSet:$(),
		isInitialized: function(){ return initialized;},
		loadHtml: function(destEl, targetEl, srcURL){ return initialized;},
		go: function(classProxies, themeProxies) {
			function init() {
				if (initialized) {


					return;
				} else {

					setUserAgent();

					if ((classProxies) && (typeof classProxies === "object")) {
						var keyCount = 0;
						for (var key in classProxies){keyCount++;}

						if (keyCount > 0) { 
							if (ezBox.validator.validateProxies(classProxies, defaultUserClasses)) {
								loadActiveClasses(classProxies);
							} else {

								return;
							}
						} else {
							loadActiveClasses();
						}
					} else {
						loadActiveClasses();
					}
					if (!(ezBox.validator.validateActiveClasses())){
						return;
					}
					

					if ((themeProxies) && (typeof themeProxies === "object")) {
						var keyCount = 0;
						for (var key in themeProxies){keyCount++;}

						if (keyCount > 0) { 
							if (ezBox.validator.validateProxies(themeProxies, defaultUserThemes)) {
								ezBox.themes.setProxyThemes(themeProxies);
							} else {
								ezBox.themes.setProxyThemes();
							}
						} else {
							ezBox.themes.setProxyThemes();
						}
					} else {
						ezBox.themes.setProxyThemes();
					}
					if (ezBox.validator.validateActiveThemes()) {
						ezBox.themes.refreshDefBoxThemes();
					} else {

						return;
					}
				}

				var userClasses = activeUserClasses;
				


				

				ezBox.init.boxSet = $("div." + userClasses.box);


				if (ezBox.init.boxSet.length < 1) {return;}

				ezBox.init.boxSet.each(function(){ezBox.instance.doStyle(this);});
				loadEventClassChanges();
				setHandlers();
				selectTabsByDefault();
				initializeBoxClps();
				setInitialized();
				
				if ((postInit) && (postInit instanceof Array)) {
					if (postInit.length > 0) {
						for (var i = 0; i < postInit.length; i++) {
							if ((postInit[i]) && (typeof postInit[i] === "function")) {
								postInit[i]();
							}
						}
					}
					postInit = undefined;
				}

				return;
			}
			
			function setUserAgent() {
				userAgent = true;
			}
			

			function loadActiveClasses(proxyClasses) {
				if ((proxyClasses) && (typeof proxyClasses === "object")) {
					var userClasses = {
						box:(proxyClasses.box ? proxyClasses.box : defaultUserClasses.box),
						interlockTabs:(proxyClasses.interlockTabs ? proxyClasses.interlockTabs : defaultUserClasses.interlockTabs),
						extendLastTab:(proxyClasses.extendLastTab ? proxyClasses.extendLastTab : defaultUserClasses.extendLastTab),
						adjacentTabs:(proxyClasses.adjacentTabs ? proxyClasses.adjacentTabs : defaultUserClasses.adjacentTabs),
						separateTabs:(proxyClasses.separateTabs ? proxyClasses.separateTabs : defaultUserClasses.separateTabs),
						minHeader:(proxyClasses.minHeader ? proxyClasses.minHeader : defaultUserClasses.minHeader),
						maxHeader:(proxyClasses.maxHeader ? proxyClasses.maxHeader : defaultUserClasses.maxHeader),
						title:(proxyClasses.title ? proxyClasses.title : defaultUserClasses.title),
						tab:(proxyClasses.tab ? proxyClasses.tab : defaultUserClasses.tab),
						bar:(proxyClasses.bar ? proxyClasses.bar : defaultUserClasses.bar),
						accordion:(proxyClasses.accordion ? proxyClasses.accordion : defaultUserClasses.accordion),
						list:(proxyClasses.list ? proxyClasses.list : defaultUserClasses.list),
						actionBar:(proxyClasses.actionBar ? proxyClasses.actionBar : defaultUserClasses.actionBar),
						actionCommand:(proxyClasses.actionCommand ? proxyClasses.actionCommand : defaultUserClasses.actionCommand),
						buttonGroup:(proxyClasses.buttonGroup ? proxyClasses.buttonGroup : defaultUserClasses.buttonGroup),
						imageButton:(proxyClasses.imageButton ? proxyClasses.imageButton : defaultUserClasses.imageButton),
						textButton:(proxyClasses.textButton ? proxyClasses.textButton : defaultUserClasses.textButton),
						inputButton:(proxyClasses.inputButton ? proxyClasses.inputButton : defaultUserClasses.inputButton),
						groupLabel:(proxyClasses.groupLabel ? proxyClasses.groupLabel : defaultUserClasses.groupLabel),
						noDefaultButton:(proxyClasses.noDefaultButton ? proxyClasses.noDefaultButton : defaultUserClasses.noDefaultButton),
						noCollapseButton:(proxyClasses.noCollapseButton ? proxyClasses.noCollapseButton : defaultUserClasses.noCollapseButton),
						noCollapseAll:(proxyClasses.noCollapseAll ? proxyClasses.noCollapseAll : defaultUserClasses.noCollapseAll),
						noInfoButton:(proxyClasses.noInfoButton ? proxyClasses.noInfoButton : defaultUserClasses.noInfoButton),
						noCustomButton:(proxyClasses.noCustomButton ? proxyClasses.noCustomButton : defaultUserClasses.noCustomButton),
						noButton:(proxyClasses.noButton ? proxyClasses.noButton : defaultUserClasses.noButton),
						collapseButton:(proxyClasses.collapseButton ? proxyClasses.collapseButton : defaultUserClasses.collapseButton),
						allowCollapseAll:(proxyClasses.allowCollapseAll ? proxyClasses.allowCollapseAll : defaultUserClasses.allowCollapseAll),
						infoButton:(proxyClasses.infoButton ? proxyClasses.infoButton : defaultUserClasses.infoButton),
						bodyTopOn:(proxyClasses.bodyTopOn ? proxyClasses.bodyTopOn : defaultUserClasses.bodyTopOn),
						bodyTopLeftOn:(proxyClasses.bodyTopLeftOn ? proxyClasses.bodyTopLeftOn : defaultUserClasses.bodyTopLeftOn),
						bodyTopRightOn:(proxyClasses.bodyTopRightOn ? proxyClasses.bodyTopRightOn : defaultUserClasses.bodyTopRightOn),
						noContentBorder:(proxyClasses.noContentBorder? proxyClasses.noContentBorder : defaultUserClasses.noContentBorder),
						content:(proxyClasses.content? proxyClasses.content : defaultUserClasses.content),
						defaultContent:(proxyClasses.defaultContent? proxyClasses.defaultContent : defaultUserClasses.defaultContent),
						uncollapse:(proxyClasses.uncollapse ? proxyClasses.uncollapse : defaultUserClasses.uncollapse),
						collapse:(proxyClasses.collapse ? proxyClasses.collapse : defaultUserClasses.collapse),
						invisible:(proxyClasses.invisible ? proxyClasses.invisible : defaultUserClasses.invisible),
						hidden:(proxyClasses.hidden ? proxyClasses.hidden : defaultUserClasses.hidden),
						boxItem:(proxyClasses.boxItem ? proxyClasses.boxItem : defaultUserClasses.boxItem),
						flushHeader:(proxyClasses.flushHeader ? proxyClasses.flushHeader : defaultUserClasses.flushHeader),
						flushHeaderTight:(proxyClasses.flushHeaderTight ? proxyClasses.flushHeaderTight : defaultUserClasses.flushHeaderTight),
						flushContentTop:(proxyClasses.flushContentTop ? proxyClasses.flushContentTop : defaultUserClasses.flushContentTop),
						flushContentLeft:(proxyClasses.flushContentLeft ? proxyClasses.flushContentLeft : defaultUserClasses.flushContentLeft),
						flushContentRight:(proxyClasses.flushContentRight ? proxyClasses.flushContentRight : defaultUserClasses.flushContentRight),
						flushContentBottom:(proxyClasses.flushContentBottom ? proxyClasses.flushContentBottom : defaultUserClasses.flushContentBottom),
						flushContentVertical:(proxyClasses.flushContentVertical ? proxyClasses.flushContentVertical : defaultUserClasses.flushContentVertical),
						flushContentHorizontal:(proxyClasses.flushContentHorizontal ? proxyClasses.flushContentHorizontal : defaultUserClasses.flushContentHorizontal),
						flushContentNotTop:(proxyClasses.flushContentNotTop ? proxyClasses.flushContentNotTop : defaultUserClasses.flushContentNotTop),
						flushContentNotLeft:(proxyClasses.flushContentNotLeft ? proxyClasses.flushContentNotLeft : defaultUserClasses.flushContentNotLeft),
						flushContentNotRight:(proxyClasses.flushContentNotRight ? proxyClasses.flushContentNotRight : defaultUserClasses.flushContentNotRight),
						flushContentNotBottom:(proxyClasses.flushContentNotBottom ? proxyClasses.flushContentNotBottom : defaultUserClasses.flushContentNotBottom),
						flushContent:(proxyClasses.flushContent ? proxyClasses.flushContent : defaultUserClasses.flushContent),
						flushContentTopTight:(proxyClasses.flushContentTopTight ? proxyClasses.flushContentTopTight : defaultUserClasses.flushContentTopTight),
						flushContentLeftTight:(proxyClasses.flushContentLeftTight ? proxyClasses.flushContentLeftTight : defaultUserClasses.flushContentLeftTight),
						flushContentRightTight:(proxyClasses.flushContentRightTight ? proxyClasses.flushContentRightTight : defaultUserClasses.flushContentRightTight),
						flushContentBottomTight:(proxyClasses.flushContentBottomTight ? proxyClasses.flushContentBottomTight : defaultUserClasses.flushContentBottomTight),
						flushContentVerticalTight:(proxyClasses.flushContentVerticalTight ? proxyClasses.flushContentVerticalTight : defaultUserClasses.flushContentVerticalTight),
						flushContentHorizontalTight:(proxyClasses.flushContentHorizontalTight ? proxyClasses.flushContentHorizontalTight : defaultUserClasses.flushContentHorizontalTight),
						flushContentTightNotTop:(proxyClasses.flushContentTightNotTop ? proxyClasses.flushContentTightNotTop : defaultUserClasses.flushContentTightNotTop),
						flushContentTightNotLeft:(proxyClasses.flushContentTightNotLeft ? proxyClasses.flushContentTightNotLeft : defaultUserClasses.flushContentTightNotLeft),
						flushContentTightNotRight:(proxyClasses.flushContentTightNotRight ? proxyClasses.flushContentTightNotRight : defaultUserClasses.flushContentTightNotRight),
						flushContentTightNotBottom:(proxyClasses.flushContentTightNotBottom ? proxyClasses.flushContentTightNotBottom : defaultUserClasses.flushContentTightNotBottom),
						flushContentTight:(proxyClasses.flushContentTight ? proxyClasses.flushContentTight : defaultUserClasses.flushContentTight),
						noSpaceAround:(proxyClasses.noSpaceAround ? proxyClasses.noSpaceAround : defaultUserClasses.noSpaceAround),
						autoSpaceAround:(proxyClasses.autoSpaceAround ? proxyClasses.autoSpaceAround : defaultUserClasses.autoSpaceAround),
						spaceCenter:(proxyClasses.spaceCenter ? proxyClasses.spaceCenter : defaultUserClasses.spaceCenter),
						spaceAbove:(proxyClasses.spaceAbove ? proxyClasses.spaceAbove : defaultUserClasses.spaceAbove),
						spaceLeft:(proxyClasses.spaceLeft ? proxyClasses.spaceLeft : defaultUserClasses.spaceLeft),
						spaceRight:(proxyClasses.spaceRight ? proxyClasses.spaceRight : defaultUserClasses.spaceRight),
						spaceBelow:(proxyClasses.spaceBelow ? proxyClasses.spaceBelow : defaultUserClasses.spaceBelow),
						spaceVertical:(proxyClasses.spaceVertical ? proxyClasses.spaceVertical : defaultUserClasses.spaceVertical),
						spaceHorizontal:(proxyClasses.spaceHorizontal ? proxyClasses.spaceHorizontal : defaultUserClasses.spaceHorizontal),
						spaceNotAbove:(proxyClasses.spaceNotAbove ? proxyClasses.spaceNotAbove : defaultUserClasses.spaceNotAbove),
						spaceNotLeft:(proxyClasses.spaceNotLeft ? proxyClasses.spaceNotLeft : defaultUserClasses.spaceNotLeft),
						spaceNotRight:(proxyClasses.spaceNotRight ? proxyClasses.spaceNotRight : defaultUserClasses.spaceNotRight),
						spaceNotBelow:(proxyClasses.spaceNotBelow ? proxyClasses.spaceNotBelow : defaultUserClasses.spaceNotBelow),
						spaceAround:(proxyClasses.spaceAround ? proxyClasses.spaceAround : defaultUserClasses.spaceAround),
						autoSpaceAbove:(proxyClasses.autoSpaceAbove ? proxyClasses.autoSpaceAbove : defaultUserClasses.autoSpaceAbove),
						autoSpaceLeft:(proxyClasses.autoSpaceLeft ? proxyClasses.autoSpaceLeft : defaultUserClasses.autoSpaceLeft),
						autoSpaceRight:(proxyClasses.autoSpaceRight ? proxyClasses.autoSpaceRight : defaultUserClasses.autoSpaceRight),
						autoSpaceBelow:(proxyClasses.autoSpaceBelow ? proxyClasses.autoSpaceBelow : defaultUserClasses.autoSpaceBelow),
						autoSpaceVertical:(proxyClasses.autoSpaceVertical ? proxyClasses.autoSpaceVertical : defaultUserClasses.autoSpaceVertical),
						autoSpaceHorizontal:(proxyClasses.autoSpaceHorizontal ? proxyClasses.autoSpaceHorizontal : defaultUserClasses.autoSpaceHorizontal),
						autoSpaceNotAbove:(proxyClasses.autoSpaceNotAbove ? proxyClasses.autoSpaceNotAbove : defaultUserClasses.autoSpaceNotAbove),
						autoSpaceNotLeft:(proxyClasses.autoSpaceNotLeft ? proxyClasses.autoSpaceNotLeft : defaultUserClasses.autoSpaceNotLeft),
						autoSpaceNotRight:(proxyClasses.autoSpaceNotRight ? proxyClasses.autoSpaceNotRight : defaultUserClasses.autoSpaceNotRight),
						autoSpaceNotBelow:(proxyClasses.autoSpaceNotBelow ? proxyClasses.autoSpaceNotBelow : defaultUserClasses.autoSpaceNotBelow),
						smallSpaceAbove:(proxyClasses.smallSpaceAbove ? proxyClasses.smallSpaceAbove : defaultUserClasses.smallSpaceAbove),
						smallSpaceLeft:(proxyClasses.smallSpaceLeft ? proxyClasses.smallSpaceLeft : defaultUserClasses.smallSpaceLeft),
						smallSpaceRight:(proxyClasses.smallSpaceRight ? proxyClasses.smallSpaceRight : defaultUserClasses.smallSpaceRight),
						smallSpaceBelow:(proxyClasses.smallSpaceBelow ? proxyClasses.smallSpaceBelow : defaultUserClasses.smallSpaceBelow),
						smallSpaceVertical:(proxyClasses.smallSpaceVertical ? proxyClasses.smallSpaceVertical : defaultUserClasses.smallSpaceVertical),
						smallSpaceHorizontal:(proxyClasses.smallSpaceHorizontal ? proxyClasses.smallSpaceHorizontal : defaultUserClasses.smallSpaceHorizontal),
						smallSpaceNotAbove:(proxyClasses.smallSpaceNotAbove ? proxyClasses.smallSpaceNotAbove : defaultUserClasses.smallSpaceNotAbove),
						smallSpaceNotLeft:(proxyClasses.smallSpaceNotLeft ? proxyClasses.smallSpaceNotLeft : defaultUserClasses.smallSpaceNotLeft),
						smallSpaceNotRight:(proxyClasses.smallSpaceNotRight ? proxyClasses.smallSpaceNotRight : defaultUserClasses.smallSpaceNotRight),
						smallSpaceNotBelow:(proxyClasses.smallSpaceNotBelow ? proxyClasses.smallSpaceNotBelow : defaultUserClasses.smallSpaceNotBelow),
						smallSpaceAround:(proxyClasses.smallSpaceAround ? proxyClasses.smallSpaceAround : defaultUserClasses.smallSpaceAround),
						mediumSpaceAbove:(proxyClasses.mediumSpaceAbove ? proxyClasses.mediumSpaceAbove : defaultUserClasses.mediumSpaceAbove),
						mediumSpaceLeft:(proxyClasses.mediumSpaceLeft ? proxyClasses.mediumSpaceLeft : defaultUserClasses.mediumSpaceLeft),
						mediumSpaceRight:(proxyClasses.mediumSpaceRight ? proxyClasses.mediumSpaceRight : defaultUserClasses.mediumSpaceRight),
						mediumSpaceBelow:(proxyClasses.mediumSpaceBelow ? proxyClasses.mediumSpaceBelow : defaultUserClasses.mediumSpaceBelow),
						mediumSpaceVertical:(proxyClasses.mediumSpaceVertical ? proxyClasses.mediumSpaceVertical : defaultUserClasses.mediumSpaceVertical),
						mediumSpaceHorizontal:(proxyClasses.mediumSpaceHorizontal ? proxyClasses.mediumSpaceHorizontal : defaultUserClasses.mediumSpaceHorizontal),
						mediumSpaceNotAbove:(proxyClasses.mediumSpaceNotAbove ? proxyClasses.mediumSpaceNotAbove : defaultUserClasses.mediumSpaceNotAbove),
						mediumSpaceNotLeft:(proxyClasses.mediumSpaceNotLeft ? proxyClasses.mediumSpaceNotLeft : defaultUserClasses.mediumSpaceNotLeft),
						mediumSpaceNotRight:(proxyClasses.mediumSpaceNotRight ? proxyClasses.mediumSpaceNotRight : defaultUserClasses.mediumSpaceNotRight),
						mediumSpaceNotBelow:(proxyClasses.mediumSpaceNotBelow ? proxyClasses.mediumSpaceNotBelow : defaultUserClasses.mediumSpaceNotBelow),
						mediumSpaceAround:(proxyClasses.mediumSpaceAround ? proxyClasses.mediumSpaceAround : defaultUserClasses.mediumSpaceAround),
						largeSpaceAbove:(proxyClasses.largeSpaceAbove ? proxyClasses.largeSpaceAbove : defaultUserClasses.largeSpaceAbove),
						largeSpaceLeft:(proxyClasses.largeSpaceLeft ? proxyClasses.largeSpaceLeft : defaultUserClasses.largeSpaceLeft),
						largeSpaceRight:(proxyClasses.largeSpaceRight ? proxyClasses.largeSpaceRight : defaultUserClasses.largeSpaceRight),
						largeSpaceBelow:(proxyClasses.largeSpaceBelow ? proxyClasses.largeSpaceBelow : defaultUserClasses.largeSpaceBelow),
						largeSpaceVertical:(proxyClasses.largeSpaceVertical ? proxyClasses.largeSpaceVertical : defaultUserClasses.largeSpaceVertical),
						largeSpaceHorizontal:(proxyClasses.largeSpaceHorizontal ? proxyClasses.largeSpaceHorizontal : defaultUserClasses.largeSpaceHorizontal),
						largeSpaceNotAbove:(proxyClasses.largeSpaceNotAbove ? proxyClasses.largeSpaceNotAbove : defaultUserClasses.largeSpaceNotAbove),
						largeSpaceNotLeft:(proxyClasses.largeSpaceNotLeft ? proxyClasses.largeSpaceNotLeft : defaultUserClasses.largeSpaceNotLeft),
						largeSpaceNotRight:(proxyClasses.largeSpaceNotRight ? proxyClasses.largeSpaceNotRight : defaultUserClasses.largeSpaceNotRight),
						largeSpaceNotBelow:(proxyClasses.largeSpaceNotBelow ? proxyClasses.largeSpaceNotBelow : defaultUserClasses.largeSpaceNotBelow),
						largeSpaceAround:(proxyClasses.largeSpaceAround ? proxyClasses.largeSpaceAround : defaultUserClasses.largeSpaceAround),
						borderTop:(proxyClasses.borderTop ? proxyClasses.borderTop : defaultUserClasses.borderTop),
						borderLeft:(proxyClasses.borderLeft ? proxyClasses.borderLeft : defaultUserClasses.borderLeft),
						borderRight:(proxyClasses.borderRight ? proxyClasses.borderRight : defaultUserClasses.borderRight),
						borderBottom:(proxyClasses.borderBottom ? proxyClasses.borderBottom : defaultUserClasses.borderBottom),
						borderVertical:(proxyClasses.borderVertical ? proxyClasses.borderVertical : defaultUserClasses.borderVertical),
						borderHorizontal:(proxyClasses.borderHorizontal ? proxyClasses.borderHorizontal : defaultUserClasses.borderHorizontal),
						borderNotTop:(proxyClasses.borderNotTop ? proxyClasses.borderNotTop : defaultUserClasses.borderNotTop),
						borderNotLeft:(proxyClasses.borderNotLeft ? proxyClasses.borderNotLeft : defaultUserClasses.borderNotLeft),
						borderNotRight:(proxyClasses.borderNotRight ? proxyClasses.borderNotRight : defaultUserClasses.borderNotRight),
						borderNotBottom:(proxyClasses.borderNotBottom ? proxyClasses.borderNotBottom : defaultUserClasses.borderNotBottom),
						border:(proxyClasses.border ? proxyClasses.border : defaultUserClasses.border),
						borderTopOnCollapse:(proxyClasses.borderTopOnCollapse ? proxyClasses.borderTopOnCollapse : defaultUserClasses.borderTopOnCollapse),
						borderLeftOnCollapse:(proxyClasses.borderLeftOnCollapse ? proxyClasses.borderLeftOnCollapse : defaultUserClasses.borderLeftOnCollapse),
						borderRightOnCollapse:(proxyClasses.borderRightOnCollapse ? proxyClasses.borderRightOnCollapse : defaultUserClasses.borderRightOnCollapse),
						borderBottomOnCollapse:(proxyClasses.borderBottomOnCollapse ? proxyClasses.borderBottomOnCollapse : defaultUserClasses.borderBottomOnCollapse),
						borderVerticalOnCollapse:(proxyClasses.borderVerticalOnCollapse ? proxyClasses.borderVerticalOnCollapse : defaultUserClasses.borderVerticalOnCollapse),
						borderHorizontalOnCollapse:(proxyClasses.borderHorizontalOnCollapse ? proxyClasses.borderHorizontalOnCollapse : defaultUserClasses.borderHorizontalOnCollapse),
						borderNotTopOnCollapse:(proxyClasses.borderNotTopOnCollapse ? proxyClasses.borderNotTopOnCollapse : defaultUserClasses.borderNotTopOnCollapse),
						borderNotLeftOnCollapse:(proxyClasses.borderNotLeftOnCollapse ? proxyClasses.borderNotLeftOnCollapse : defaultUserClasses.borderNotLeftOnCollapse),
						borderNotRightOnCollapse:(proxyClasses.borderNotRightOnCollapse ? proxyClasses.borderNotRightOnCollapse : defaultUserClasses.borderNotRightOnCollapse),
						borderNotBottomOnCollapse:(proxyClasses.borderNotBottomOnCollapse ? proxyClasses.borderNotBottomOnCollapse : defaultUserClasses.borderNotBottomOnCollapse),
						borderOnCollapse:(proxyClasses.borderOnCollapse ? proxyClasses.borderOnCollapse : defaultUserClasses.borderOnCollapse),
						borderTopUnCollapse:(proxyClasses.borderTopUnCollapse ? proxyClasses.borderTopUnCollapse : defaultUserClasses.borderTopUnCollapse),
						borderLeftUnCollapse:(proxyClasses.borderLeftUnCollapse ? proxyClasses.borderLeftUnCollapse : defaultUserClasses.borderLeftUnCollapse),
						borderRightUnCollapse:(proxyClasses.borderRightUnCollapse ? proxyClasses.borderRightUnCollapse : defaultUserClasses.borderRightUnCollapse),
						borderBottomUnCollapse:(proxyClasses.borderBottomUnCollapse ? proxyClasses.borderBottomUnCollapse : defaultUserClasses.borderBottomUnCollapse),
						borderVerticalUnCollapse:(proxyClasses.borderVerticalUnCollapse ? proxyClasses.borderVerticalUnCollapse : defaultUserClasses.borderVerticalUnCollapse),
						borderHorizontalUnCollapse:(proxyClasses.borderHorizontalUnCollapse ? proxyClasses.borderHorizontalUnCollapse : defaultUserClasses.borderHorizontalUnCollapse),
						borderNotTopUnCollapse:(proxyClasses.borderNotTopUnCollapse ? proxyClasses.borderNotTopUnCollapse : defaultUserClasses.borderNotTopUnCollapse),
						borderNotLeftUnCollapse:(proxyClasses.borderNotLeftUnCollapse ? proxyClasses.borderNotLeftUnCollapse : defaultUserClasses.borderNotLeftUnCollapse),
						borderNotRightUnCollapse:(proxyClasses.borderNotRightUnCollapse ? proxyClasses.borderNotRightUnCollapse : defaultUserClasses.borderNotRightUnCollapse),
						borderNotBottomUnCollapse:(proxyClasses.borderNotBottomUnCollapse ? proxyClasses.borderNotBottomUnCollapse : defaultUserClasses.borderNotBottomUnCollapse),
						borderUnCollapse:(proxyClasses.borderUnCollapse ? proxyClasses.borderUnCollapse : defaultUserClasses.borderUnCollapse)
					};
					activeUserClasses = userClasses;
					proxyClasses = proxyClasses;

					return;
				} else {
					activeUserClasses = defaultUserClasses;
					return;
				}
			}


			function loadEventClassChanges(){
				changeSets = new Array();
				var intl = internalClasses;
				var cust = customEvents;
				var change = classChangeTypes;

				function classChange(event, originalClass, eventClass, changeType ) {
					this.event = event;
					this.originalClass = originalClass;
					this.eventClass = eventClass;
					this.changeType = changeType;
				}
				
				changeSets[0] = new classChange(cust.tabEnter, intl.headerBg_t, intl.headerBg_t_ent, change.substitute);
				changeSets[1] = new classChange(cust.tabEnter, intl.headerBg_t_r, intl.headerBg_t_r_ent, change.substitute);
				changeSets[2] = new classChange(cust.tabEnter, intl.tabBg_t, intl.tabBg_t_ent, change.substitute);
				changeSets[3] = new classChange(cust.tabEnter, intl.tabBg_l_otr, intl.tabBg_l_otr_ent, change.substitute);
				changeSets[4] = new classChange(cust.tabEnter, intl.tabBg_l_inr, intl.tabBg_l_inr_ent, change.substitute);
				changeSets[5] = new classChange(cust.tabEnter, intl.tabBg_l_inr, intl.tabBg_l_inr_entL, change.substitute);
				changeSets[6] = new classChange(cust.tabEnter, intl.tabBg_l_inr, intl.tabBg_l_inr_sel_entL, change.substitute);
				changeSets[7] = new classChange(cust.tabEnter, intl.tabBg_l_inr, intl.tabBg_l_inr_selL_ent, change.substitute);
				changeSets[8] = new classChange(cust.tabEnter, intl.tabBg_r_otr, intl.tabBg_r_otr_ent, change.substitute);
				changeSets[9] = new classChange(cust.tabEnter, intl.tabBg_t_l_otr, intl.tabBg_t_l_otr_ent, change.substitute);
				changeSets[10] = new classChange(cust.tabEnter, intl.tabBg_t_l_inr, intl.tabBg_t_l_inr_ent, change.substitute);
				changeSets[11] = new classChange(cust.tabEnter, intl.tabBg_t_l_inr, intl.tabBg_t_l_inr_sel_entL, change.substitute);
				changeSets[12] = new classChange(cust.tabEnter, intl.tabBg_t_l_inr, intl.tabBg_t_l_inr_selL_ent, change.substitute);
				changeSets[13] = new classChange(cust.tabEnter, intl.tabBg_t_l_inr, intl.tabBg_t_l_inr_entL, change.substitute);
				changeSets[14] = new classChange(cust.tabEnter, intl.tabBg_t_r_otr, intl.tabBg_t_r_otr_ent, change.substitute);
				changeSets[15] = new classChange(cust.tabClick, intl.headerBg_t, intl.headerBg_t_sel, change.substitute);
				changeSets[16] = new classChange(cust.tabClick, intl.headerBg_t_r, intl.headerBg_t_r_sel, change.substitute);
				changeSets[17] = new classChange(cust.tabClick, intl.tabBg_t, intl.tabBg_t_sel, change.substitute);
				changeSets[18] = new classChange(cust.tabClick, intl.tabBg_l_otr, intl.tabBg_l_otr_sel, change.substitute);
				changeSets[19] = new classChange(cust.tabClick, intl.tabBg_l_inr, intl.tabBg_l_inr_selL, change.substitute);
				changeSets[20] = new classChange(cust.tabClick, intl.tabBg_l_inr, intl.tabBg_l_inr_sel, change.substitute);
				changeSets[21] = new classChange(cust.tabClick, intl.tabBg_r_otr, intl.tabBg_r_otr_sel, change.substitute);
				changeSets[22] = new classChange(cust.tabClick, intl.tabBg_t_l_otr, intl.tabBg_t_l_otr_sel, change.substitute);
				changeSets[23] = new classChange(cust.tabClick, intl.tabBg_t_l_inr, intl.tabBg_t_l_inr_sel, change.substitute);
				changeSets[24] = new classChange(cust.tabClick, intl.tabBg_t_l_inr, intl.tabBg_t_l_inr_selL, change.substitute);
				changeSets[25] = new classChange(cust.tabClick, intl.tabBg_t_r_otr, intl.tabBg_t_r_otr_sel, change.substitute);
				changeSets[26] = new classChange(cust.headerEnter, intl.headerBg_fill, intl.headerBg_flush, change.add);
				changeSets[27] = new classChange(cust.headerEnter, intl.headerBg_t, intl.headerBg_t_ent, change.substitute);
				changeSets[28] = new classChange(cust.headerEnter, intl.headerBg_l, intl.headerBg_l_ent, change.substitute);
				changeSets[29] = new classChange(cust.headerEnter, intl.headerBg_r, intl.headerBg_r_ent, change.substitute);
				changeSets[30] = new classChange(cust.headerEnter, intl.headerBg_t_l, intl.headerBg_t_l_ent, change.substitute);
				changeSets[31] = new classChange(cust.headerEnter, intl.headerBg_t_r, intl.headerBg_t_r_ent, change.substitute);
				changeSets[32] = new classChange(cust.headerClick, intl.headerBg_t, intl.headerBg_t_sel, change.substitute);
				changeSets[33] = new classChange(cust.headerClick, intl.headerBg_l, intl.headerBg_l_sel, change.substitute);
				changeSets[34] = new classChange(cust.headerClick, intl.headerBg_r, intl.headerBg_r_sel, change.substitute);
				changeSets[35] = new classChange(cust.headerClick, intl.headerBg_t_l, intl.headerBg_t_l_sel, change.substitute);
				changeSets[36] = new classChange(cust.headerClick, intl.headerBg_t_r, intl.headerBg_t_r_sel, change.substitute);
			
				return;
			}
			











			function handleEventCleanup() {
				var intlClasses = internalClasses;
				
				$("body")
					.live("click", function(){
						if ((cleanupAction) && (typeof cleanupAction === "function")) {
							if ((cleanupArgs) && (cleanupArgs instanceof Array)) {
								if ((cleanupObject) && (typeof cleanupObject === "object")) {
									alert("running cleanupAction.apply(cleanupObject, cleanupArgs)");
									cleanupAction.apply(cleanupObject, cleanupArgs);
									cleanupObject = undefined;
								} else {
									alert("running cleanupAction.apply(this, cleanupArgs)");
									cleanupAction.apply(this, cleanupArgs);
								}
								cleanupArgs = undefined;
							} else if ((cleanupObject) && (typeof cleanupObject === "object")) {
								alert("running cleanupAction.apply(cleanupObject)");
								cleanupAction.apply(cleanupObject);
								cleanupObject = undefined;
							} else {
								alert("running cleanupAction.apply(this)");
								cleanupAction.apply(this);
							}
							cleanupAction = undefined;
						}
						alert("No cleanup");
						return false;
					});
			}
			
			function handleActionBar() {
				var intlClasses = internalClasses;
				
				var clpseState;


				var tmrId_waitB4Tgl;
				var tmrId_waitB4Click;

				var acceptClick = true;
				var instDisplay = false;
				var actvBar;
				var actvCmd;
				var prevBar;
				var prevCmd;

				var barCmds;
				var actnBar = $("div." + intlClasses.actionBox);
				var cmd = $("div." + intlClasses.actionBox + " div." + intlClasses.commandBox);
				var cmdBdy = $("div." + intlClasses.actionBox + " div." + intlClasses.commandBox)
						.find("div." + intlClasses.commandBody);


				$(actnBar)
					.live("mouseenter", function(){
						var cmdsQuery = ezBox.events.buttonHelper.getCmds(this);
						if (cmdsQuery.length > 0) {
							barCmds = new Array();
							cmdsQuery.each(function(){barCmds[barCmds.length] = this; return;});
						}

						return false;
					});
				

				$(actnBar)
					.live("mouseleave", function(){


						instDisplay = false;
						barCmds = undefined;
						return false;
					});
				

				$(cmd)
					.live("mouseenter", function(){


						actvCmd = this;
						clpseState = ezBox.events.buttonHelper.isCollapsed(this);
						ezBox.events.buttonHelper.getActionBar(this).each(function(){actvBar = this; return;});
						if ((prevBar) && (prevBar !== actvBar)) {
							clpsAllCmds(prevBar);
							prevBar = undefined;
						}





						if (typeof tmrId_waitB4Tgl !== "undefined") { 
							clearTimeout(tmrId_waitB4Tgl);
							tmrId_waitB4Tgl = undefined;
							

							if ((prevCmd) && (prevCmd !== this)) {

								clpsAllCmds(actvBar);
							}
							

							instDisplay = instDisplay || true;
						}
						
						if (instDisplay) {









							acceptClick = false;
							tmrId_waitB4Click = setTimeout(function(){acceptClick = true;}, 300);
							
							if (!(ezBox.events.buttonHelper.hasBody(actvCmd))) {
								$(this).children("div." + intlClasses.boxHeader + ":first")
										.find("div." + intlClasses.headerBg_context + ":first")
										.addClass(intlClasses.mouseOverCollapse);
							} else if (ezBox.events.buttonHelper.isCollapsed(this)) {

								ezBox.events.buttonHelper.unclpsActionCmd(this);
								clpseState = ezBox.events.buttonHelper.isCollapsed(this);
							}
						} else {
							if (!(ezBox.events.buttonHelper.hasBody(actvCmd))) {
								$(this).children("div." + intlClasses.boxHeader + ":first")
										.find("div." + intlClasses.headerBg_context + ":first")
										.addClass(intlClasses.mouseOverCollapse);
								instDisplay = true;
							} else if (ezBox.events.buttonHelper.isCollapsed(actvCmd)) {

								$(this).children("div." + intlClasses.boxHeader + ":first")
										.find("div." + intlClasses.headerBg_context + ":first")
										.addClass(intlClasses.mouseOverCollapse);



								instDisplay = true;
								tmrId_waitB4Tgl = setTimeout(function(){

											clpseState = !(ezBox.events.buttonHelper.isCollapsed(actvCmd));

											ezBox.events.buttonHelper.doCommand(actvCmd);
											tmrId_waitB4Tgl = undefined;
										}, 300);
							} else if (ezBox.events.buttonHelper.isUncollapsed(actvCmd)) {
								instDisplay = true;
							}
							return true;
						}
					});


				$(cmd)
					.live("mouseleave", function(){
						prevCmd = this;


						if(instDisplay) {
							var hdrContext = $(this).children("div." + intlClasses.boxHeader + ":first")
									.find("div." + intlClasses.headerBg_context + ":first");
							if (hdrContext.hasClass(intlClasses.mouseOverCollapse)) {
								hdrContext.removeClass(intlClasses.mouseOverCollapse);
							}
							if (!(ezBox.events.buttonHelper.hasBody(actvCmd))) {
								ezBox.events.buttonHelper.getActionBar(this).each(function(){prevBar = this; return;});
								return true;
							}
							if (typeof tmrId_waitB4Tgl !== "undefined") {
								clearTimeout(tmrId_waitB4Tgl);
								tmrId_waitB4Tgl = undefined;
							} else if (!clpseState) {

								tmrId_waitB4Tgl = setTimeout(function(){

											ezBox.events.buttonHelper.doCommand(prevCmd);
											tmrId_waitB4Tgl = undefined;
										}, 300);
							}

							ezBox.events.buttonHelper.getActionBar(this).each(function(){prevBar = this; return;});
							return true;
						}
						return false;
					});


				$(cmd)
					.live("click", function(){
						//if (!(ezBox.events.buttonHelper.hasBody(actvCmd))) return false;
						if (!acceptClick){return false;}
						var cmdBxBdy = $(this).find("div." + intlClasses.commandBody);
						if (cmdBxBdy.length < 1) {
							var anchor = $(this).find("a:first");
							if (anchor.length > 0) {
									var href = $(anchor).attr("href");
									

									
									if ((typeof href !== "string") || (href === "") || (href === "undefined")){

										return;
									}

									window.location.href = href;
									return;
							}
						}
						$(this).addClass(intlClasses.clicked);

						if (typeof tmrId_waitB4Tgl !== "undefined") {
							clearTimeout(tmrId_waitB4Tgl);
							tmrId_waitB4Tgl = undefined;
						}

						if (ezBox.events.buttonHelper.isCollapsed(this)) {

							clpseState = false;
						} else {

							$(this).children("div." + intlClasses.boxHeader + ":first")
									.find("div." + intlClasses.headerBg_context + ":first")
									.addClass(intlClasses.mouseOverCollapse);
							clpseState = true;
						}
						instDisplay = true;
						ezBox.events.buttonHelper.doCommand(this);
						return false;
					});


				$(cmdBdy)
					.live("click", function(){
						var lastCmdBx = ezBox.events.buttonHelper.getLastCmdPntBx(this);

						ezBox.events.buttonHelper.clpsAllActnCmd(lastCmdBx);
						instDisplay = false;
						return;
					});

				$(cmdBdy).find("a")
					.live("click", function(e){
						var href = $(this).attr("href");
						

						
						if ((typeof href !== "string") || (href === "") || (href === "undefined")){

							return;
						}
						window.location.href = href;
						return false;
					}); 

		
				function clpsAllCmds(bar) {
					var allCmdsOk = true;
					var ok = 0;
					var cmds;
					var skip = new Array();
					
					var cmdsQuery = ezBox.events.buttonHelper.getCmds(bar);
					if (cmdsQuery.length > 0) {
						cmds = new Array();
						cmdsQuery.each(function(){cmds[cmds.length] = this; return;});
					} else {
						return;
					}

					firstLoop:
					do {
						secondLoop:
						for (var i = 0; i < cmds.length; i++) {
							if (cmds[i] === prevCmd) {
								prevCmd = undefined;
							}
							if (skip.length > 0) {
								thirdLoop:
								for (var j = 0; j < skip.length; j++) {
									if (i === skip[j]){continue secondLoop;}
								}
							}
							if ((ezBox.events.buttonHelper.isUncollapsing(cmds[i]))
									|| (ezBox.events.buttonHelper.isCollapsing(cmds[i]))) {
								ezBox.events.buttonHelper.stopBodyToggle(cmds[i], true, true);
								allCmdsOk = false;
							} else if (ezBox.events.buttonHelper.isUncollapsed(cmds[i])) {
								ezBox.events.buttonHelper.clpsActionCmd(cmds[i]);
								skip[skip.length] = i;
								ok++;
							} else if (ezBox.events.buttonHelper.isCollapsed(cmds[i])) {
								skip[skip.length] = i;
								ok++;
							}
						}
						if (ok === cmds.length) {
							allCmdsOk = true;
						}
					} while(!allCmdsOk);
					return;
				}
			}
			
			function handleTabs() {
				var userClasses = activeUserClasses;
				var intlClasses = internalClasses;

				var tabStatus;
				var tabCntnr;
				var tab = $("div." + intlClasses.box + " div." + intlClasses.tabBg_t);
				var tabEnt = $("div." + intlClasses.box + " div." + intlClasses.tabBg_t_ent);
				var selectedTab = $("div." + intlClasses.box + " div." + intlClasses.tabBg_t_sel);


				$(tab)
					.live("mouseenter",
						function(){

							tabCntnr = $(this).closest("div." + intlClasses.tabContainer);
							
							if (tabCntnr.hasClass(intlClasses.adjacentTabs)) {
							
								tabStatus = tabStsCodes.SGL;

								ezBox.events.buttonHelper
										.doTab(this, tabStsCodes.SGL, customEvents.tabEnter);
							
							} else if (tabCntnr.hasClass(intlClasses.interlockTabs)) {
								
								var firstTabTopLeft = $(this).find("div." + intlClasses.tabBg_t_l_otr);
								var lastTabTopRight = $(this).find("div." + intlClasses.tabBg_t_r_otr);
								
								if (firstTabTopLeft.length > 0) {
									if (lastTabTopRight.length > 0) {
										tabStatus = tabStsCodes.SGL;

										ezBox.events.buttonHelper
												.doTab(this, tabStsCodes.SGL, customEvents.tabEnter);
										if (tabCntnr.hasClass(intlClasses.extendLastTab)) {
											ezBox.events.buttonHelper.doHeader(this, customEvents.headerEnter);
										}
									} else if ($(this).next("div." + intlClasses.tabBg_t_sel).length > 0) {
										tabStatus = tabStsCodes.OL_RtSel;

										ezBox.events.buttonHelper
												.doTab(this, tabStsCodes.OL_RtSel, customEvents.tabEnter);
									} else {
										tabStatus = tabStsCodes.OL_RmSel;

										ezBox.events.buttonHelper
												.doTab(this, tabStsCodes.OL_RmSel, customEvents.tabEnter);
									}
								} else if (lastTabTopRight.length > 0) {
									if ($(this).prev("div." + intlClasses.tabBg_t_sel).length > 0) {
										tabStatus = tabStsCodes.OR_LtSel;

										ezBox.events.buttonHelper
												.doTab(this, tabStsCodes.OR_LtSel, customEvents.tabEnter);
									} else {
										tabStatus = tabStsCodes.OR_RmSel;

										ezBox.events.buttonHelper
												.doTab(this, tabStsCodes.OR_RmSel, customEvents.tabEnter);
									}

									if (tabCntnr.hasClass(intlClasses.extendLastTab)) {
										ezBox.events.buttonHelper.doHeader(this, customEvents.headerEnter);
									}
								} else if ($(this).prev("div." + intlClasses.tabBg_t_sel).length > 0) {
									tabStatus = tabStsCodes.IN_LtSel;

									ezBox.events.buttonHelper
											.doTab(this, tabStsCodes.IN_LtSel, customEvents.tabEnter);
								} else if ($(this).next("div." + intlClasses.tabBg_t_sel).length > 0) {
									tabStatus = tabStsCodes. IN_RtSel;

									ezBox.events.buttonHelper
											.doTab(this, tabStsCodes.IN_RtSel, customEvents.tabEnter);
								} else {
									tabStatus = tabStsCodes.IN_RmSel;

									ezBox.events.buttonHelper
											.doTab(this, tabStsCodes.IN_RmSel, customEvents.tabEnter);
								}
							}
						return false;
						}
					);
					

				$(tabEnt)
					.live("mouseleave",
						function(){
							var lastStatus = tabStatus;

							
							ezBox.events.buttonHelper.doTab(this, lastStatus, customEvents.tabLeave);
							
							if ((tabCntnr.hasClass(intlClasses.interlockTabs)) 
									&& (tabCntnr.hasClass(intlClasses.extendLastTab))
									&& ((lastStatus === tabStsCodes.OR_RmSel) 
									|| (lastStatus === tabStsCodes.OR_LtSel))) {
								ezBox.events.buttonHelper.doHeader(this, customEvents.headerLeave);
							}
							tabStatus = undefined;
							tabCntnr = undefined;
							return false;
						}
					);


				$(tabEnt)
					.live("click", function(){
							tabStatus = undefined;
							tabCntnr = undefined;
							ezBox.events.procTabClick(this);
							return false;
					}); 


				$(tab).find("a")
					.live("click", function(e){
						var href = $(this).attr("href");
						

						
						if ((typeof href !== "string") || (href === "") || (href === "undefined")){

							return;
						}

						var content = $(this).closest("div." + intlClasses.box).find("div" + $(this).attr("href"));
						
						if (content.length < 1) {

							return;
						}











						if (content.css("display") === "block") {

							content.hide();
							window.location.hash = $(this).attr("href");
							return;
						} else {
							window.location.hash = $(this).attr("href");
							return;
						}
					}); 


				$(selectedTab).find("a")
					.live("click", function(){

						var activeContent = $(this)
								.closest("div." + intlClasses.box)
								.find("div." + intlClasses.boxBody + ":first")
								.find("div" + $(this).attr("href") + ":first");
								
						if (activeContent.length < 1){return false;}
						
						if (activeContent.closest("div." + intlClasses.boxBody).css("display") === "none") {
							activeContent.closest("div." + intlClasses.box)
									.children("div." + intlClasses.tabHeader + ":first")
									.find("div." + intlClasses.collapseBtn + ":first")
									.click();
						}
						return false;
					});
				return;
			}
			
			
			function handleAcrdns() {
				var intlClasses = internalClasses;
				var clpseState;


				var acrdnBxHdr = $("div." + intlClasses.accordionBox + " div." + intlClasses.accordionHeader);


				$(acrdnBxHdr)
					.live("mouseenter", function(){
						var hdrContext = $(this).find("div." + intlClasses.headerBg_context + ":first");
						if (ezBox.events.buttonHelper.isCollapsed(this)) {
							clpseState = true;
							hdrContext.addClass(intlClasses.mouseOverCollapse);
						} else {
							clpseState = false;
							hdrContext.addClass(intlClasses.mouseOverUncollapse);							
						}
						return false;
					});


				$(acrdnBxHdr)
					.live("mouseleave", function(){
						var hdrContext = $(this).find("div." + intlClasses.headerBg_context + ":first");
						if (clpseState) {
							hdrContext.removeClass(intlClasses.mouseOverCollapse);
						} else {
							hdrContext.removeClass(intlClasses.mouseOverUncollapse);
						}
						return false;
					});


				$(acrdnBxHdr)
					.live("click", function(){
						clpseState = !clpseState;
						ezBox.events.buttonHelper.clpsAcrdn(this);
						return false;
					});

			}


			function handleClpsBtn() {
				var intlClasses = internalClasses;

				var collapseBtn = $("div." + intlClasses.box + " div." + intlClasses.collapseBtn);
				var collapseAllBtn = $("div." + intlClasses.accordionBox + " div." + intlClasses.collapseAllEnabled);
				var collapseAllDsbld = $("div." + intlClasses.accordionBox + " div." + intlClasses.collapseAllDisabled);

				
				$(collapseBtn)
					.live("click", function(){
						var clpsBtn = this;
						if ($(this).closest("div." + intlClasses.box).hasClass(intlClasses.accordionBox)) {
							ezBox.events.buttonHelper.clpsAcrdn(this);
						} else {
 							ezBox.events.buttonHelper.doButton(this, function() {
								ezBox.events.buttonHelper.setBorder(clpsBtn);
							});
						}
						return false;
					});


 				$(collapseAllBtn)
					.live("click", function(){
						ezBox.events.buttonHelper.doButton(this);
						return false;
					});


 				$(collapseAllDsbld)
					.live("click", function(){
						return false;
					});
			}
			
			
			function setHandlers() {
				handleActionBar();
				handleTabs();
				handleAcrdns();
				handleClpsBtn();

				return;
			}
			

			function initializeBoxClps() {
				var intlClasses = internalClasses;
		
				if (ezBox.init.boxSet.length < 1){return;}
				
				ezBox.init.boxSet.each(function(){
						var boxBody = $(this).closest("div." + intlClasses.box)
								.find("div." + intlClasses.boxBody + ":first");
							if (boxBody.length < 1) {return;}
						
						if ($(this).hasClass(intlClasses.accordionBox)) {
							if (ezBox.events.buttonHelper.hasAcrdnParent(this)) {
								if ($(this).hasClass(intlClasses.uncollapse)) {
									if (boxBody.css("display") === "none") {
										boxBody.css("display", "block");
									}
								} else {
									if (boxBody.css("display") === "block") {
										boxBody.css("display", "none");
									}
								}
							} else if ($(this).hasClass(intlClasses.collapse)) {
								if (boxBody.css("display") === "block") {
									boxBody.css("display", "none");
								}
							}
							ezBox.events.buttonHelper
									.setClpsStatus(this)
									.setBorder(this)
									.setClpsAllBtnStatus(this);
						
						} else if (!(($(this).hasClass(intlClasses.headlessBox)) 
								&& (!($(this).hasClass(intlClasses.barBox))))) {
							if ($(this).hasClass(intlClasses.uncollapse)) {
								if (boxBody.css("display") === "none") {
									boxBody.css("display", "block");
								}
							} else if (($(this).hasClass(intlClasses.collapse))) {

								if (boxBody.css("display") === "block") {
									boxBody.css("display", "none");
								}
							}
							ezBox.events.buttonHelper
									.setClpsStatus(this)
									.setBorder(this);
						}
						return;
						
					});
				return;
			}
			

			





			function selectTabsByDefault() {

				var userClasses = activeUserClasses;
				var intlClasses = internalClasses; 
				var tabBoxes = $("div." + intlClasses.box).has("div." + intlClasses.tabHeader);
				var hash = window.location.hash;
				var hasHash = false;
				var hashBox;
				var bxsNoHash;
				var bxsDefCont;
				var frstDefContEch;
				var bxsNoDefCont;
				
				if ((tabBoxes.length > 0) && (!initialized)) {
					if ((typeof hash !== "undefined") && (hash !== "")) {
						hasHash = true;
						hashBox = tabBoxes.find("div" + window.location.hash).closest("div." + intlClasses.box);
						if (hashBox.length > 0) {
							bxsNoHash = tabBoxes.not(hashBox);
						} else {
							bxsNoHash = tabBoxes;
						}
					} else {
						hashBox = $();
						bxsNoHash = tabBoxes;
					}
					bxsDefCont = bxsNoHash.has("div." + userClasses.defaultContent);
					bxsNoDefCont = bxsNoHash.not(bxsDefCont);
					






					if (bxsDefCont.length > 0) {

						frstDefContEch = $();

						bxsDefCont.each(function(i, defContBox){
								var allDefCont = $(defContBox)
										.children("div." + intlClasses.boxBody + ":first")
										.find("div." + userClasses.defaultContent);
								var nstdBxDefCont = $(defContBox)
										.children("div." + intlClasses.boxBody + ":first")
										.find("div." + intlClasses.box)
										.find("div." + userClasses.defaultContent);
								var crntBxDefCont = allDefCont.not(nstdBxDefCont);
								
								if (crntBxDefCont.length > 0) {

									frstDefContEch = frstDefContEch
											.add(crntBxDefCont.filter("div." + userClasses.defaultContent + ":first"));
								}
							});

						if (frstDefContEch.length > 0) { 

							frstDefContEch.each(function(i, defCont){
								var defConId = $(defCont).attr("id");
								var defTab = $(defCont)
									.closest("div." + intlClasses.box)
									.find("a[href=#" + defConId + "]")
									.closest("div." + intlClasses.tabBg_t);
								if (defTab.length !== 0) {

									ezBox.events.selectTab(defTab).showHideContent(defTab);
								} else {
									alert("No tab associated with default content: id = " + $(defCont).attr("id"));
								}
							});
						}
					}
			
					if (bxsNoDefCont.length > 0) {
						bxsNoDefCont
							.find("div." + intlClasses.tabBg_t + ":first")
							.each(function (i, tab){

								ezBox.events.selectTab(tab).showHideContent(tab);
							});
					}

					if (hashBox.length > 0) {
						hashBox

							.find("a[href=" + window.location.hash + "]:first")
							.closest("div." + intlClasses.tabBg_t);

							ezBox.events.selectTab(hashBox).showHideContent(hashBox);
					} if ((typeof window.location.hash !== "undefined") && (window.location.hash !== "")) {


					}
				}
			}
			
			function setInitialized() {

				initialized = true;
				return initialized;
			}

			$(document).ready(init); 
		},
		after: {

			add: function(fn) {
				if (ezBox.init.isInitialized()){return this;}
				if ((fn) && (typeof fn === "function")) {
					if ((postInit) && (postInit instanceof Array)) {
						postInit[postInit.length] = fn;
						return this;
					} else {
						postInit = new Array();
						postInit[postInit.length] = fn;
						return this;
					}
				} else {
					return this;
				}
			},
			


			remove: function(arrSubscr) {

			}
		}
	};
	
	ezBox.util = {















		pauseExec: function(milsec) {
			var mil;
			var max = 100;
			
			if (((milsec) && (typeof milsec === "number")) || ((milsec) && (typeof milsec === "string"))) {
				if (typeof milsec === "number") {
					if ((milsec > 0) && (milsec <= max)) {
						mil = milsec;
					} else if (milsec > max) {
						mil = max;
					}else {
						return;
					}
				} else if (typeof milsec === "string") {
					if (milsec === "max") {
						mil = max;
					} else {
						return;
					}
				}
			} else if (typeof milsec === "undefined") {
				mil = max;
			} else {
				return;
			}
			
			var date = new Date();
			var curDate;
			

			
			do {
				curDate = new Date();

			} while((curDate - date) < mil);
		},


		eqHeight: function(arg1, arg2, argN, max_min) {
			if (arguments.length < 2){return this;}
			if ((arguments[arguments.length - 1] !== "max")
					&& (arguments[arguments.length - 1] !== "min")) {
				return this;
			}
			
			var el = new Array();
			var targetHt = 0;
			var baseNum = 0;
			var useBaseNum = false;
			
			for (var i = 0; i < arguments.length; i++) {
				if (i === (arguments.length - 1)){break;}
				if ((i === 0) && (typeof arguments[i] === "number")) {
					if (arguments.length === 2) {
						return this;
					} else {
						baseNum = arguments[i];
						useBaseNum = true;
						continue;
					}
				}
				if ((arguments[i]) && (ezBox.validator.isTag(arguments[i]))){

					el[el.length] = arguments[i];
				} else if ((arguments[i]) && (arguments[i] instanceof jQuery)) {

					if (arguments[i].length > 0) {
						arguments[i].each(function(){el[el.length] = this;

							});
					} else {
						continue;
					}
				} else {
					continue;
				}

			}
			


			if (el.length < 2) {
				if (el.length === 0){return this;}
				if (!useBaseNum){return this;}
			}
			
			if (arguments[arguments.length - 1] === "max"){
				for (var i = 0; i < el.length; i++) {
					if ($(el[i]).height() > targetHt) {
						targetHt = $(el[i]).height();
					}
				}
				if (useBaseNum){targetHt = (baseNum > targetHt)?baseNum:targetHt;}
				
			} else if (arguments[arguments.length - 1] === "min"){
				for (var i = 0; i < el.length; i++) {
					if (i === 0) {
						targetHt = $(el[i]).height();
					} else if (($(el[i]).height()) < ($(el[i-1]).height())) {
						targetHt = $(el[i]).height();
					}

				}
				if (useBaseNum){targetHt = (baseNum < targetHt)?baseNum:targetHt;}

			}

			for (var i = 0; i < el.length; i++) {
				$(el[i]).height(targetHt);
			}
			return this;
		},
		
		maxHeight: function(obj, max) {
			if (arguments.length < 2){return this;}
			
			var el;
			
			if ((obj) && (ezBox.validator.isTag(obj))){
				el = obj;
			} else if ((obj) && (obj instanceof jQuery)) {
				if (obj.length === 1) {
					obj.each(function(){el = this;});
				} else {
					return this;
				}
			} else {
				return this;
			}
			if (typeof max === "number") {
				if (max < 0){return this;}
			} else {
				return this;
			}
			

			if ($(el).height() > max) {
				$(el).height(max);
			}
			return this;
		},
		
		minHeight: function(obj, min) {



					
			if (arguments.length < 2){return this;}
			
			var el;
			
			if ((obj) && (ezBox.validator.isTag(obj))){
				el = obj;
			} else if ((obj) && (obj instanceof jQuery)) {
				if (obj.length === 1) {
					obj.each(function(){el = this;});
				} else {
					return this;
				}
			} else {
				return this;
			}
			if (typeof min === "number") {
				if (min < 0){return this;}
			} else {
				return this;
			}
			

			if ($(el).height() < min) {
				$(el).height(min);
			}
			return this;
		}
	};
})(jQuery);
