
if (window.bb) {
	bb.command.hasClass = function(oElm,sClass) {
		if(oElm.viewNode) { oElm = oElm.viewNode; }
		if(oElm.className.indexOf(" ") > 0)
			return (oElm.className.indexOf(' ' + sClass) >= 0) || (oElm.className.indexOf(sClass + ' ') >= 0)
		else
			return (oElm.className == sClass)
	}
}

if (!window.gloz) {
	var gloz = {
		NSResolver: function(sPrefix) {
		    switch (sPrefix) {
		        case "b":
		            return "http://www.backbase.com/2006/btl";
		        case "bf":
		        	return "http://www.backbase.com/2007/forms";
		        default:
		            return "http://www.w3.org/1999/xhtml";
		    }
		},

		load: function(sURI,oElm,sMode) {
			if(!sMode) { sMode = 'replaceChildren'; }
			var uri = bb.uri.resolveUri(sURI,bb.document.getProperty('baseURI'));
			bb.command.load(uri,'GET',null,null,oElm,sMode);
		},
		
		fireEvent: function(oElm,sEvent,bBubbles,bCancelable,oDetail) {
			var event = bb.document.createEvent('CustomEvent');
			event.initCustomEventNS(null, sEvent, bBubbles, bCancelable, oDetail);
			oElm.dispatchEvent(event);
			return true;
		},
		
		startAnalytics: function(sTracker) {
			try {
				var pageTracker = _gat._getTracker(sTracker);
				pageTracker._trackPageview();
			} catch(err) { }
		}
	}
};

gloz.console = {
	show: function(oEvent) {
		if(oEvent.ctrlKey) {
			if(oEvent.keyCode == '67') {
				var oWindow = bb.document.getElementById('ctlConsole');
				bb.command.load('lib/common/fragments/console.php','GET',null,null,oWindow,'replaceChildren');
				oWindow.open();
			}
		}
	}
}

gloz.page = {
		
	selectedStep: null,
	currentStep: 0,
	totalSteps: 0,

	showCurrent: function(oElm) {
		if(gloz.page.selectedStep)
			gloz.fireEvent(gloz.page.selectedStep,'gloz-step-blur', false, false);

		var oParent = bb.selector.queryAncestor(oElm.viewNode,'.gloz-page-root');
		var oContainers = bb.selector.queryAll(oParent,'div[class="gloz-step-container"]');
		for(var i=0;i<oContainers.length;i++) {
			var oContainer = bb.getControllerFromView(oContainers[i]);
			if(oContainer)
				if(oContainer.hasAttribute('url'))
					bb.command.load(oContainer.getAttribute('url'),'GET',null,null,oContainer,'replace',null,null,null,false);
		}

		var count = 0;
		var oNodes = bb.selector.queryAll(oParent,'div[class^="gloz-step"]');
		for(var i=0;i<oNodes.length;i++) {
			var oNode = bb.getControllerFromView(oNodes[i]);
			if(oNode) {
				if(bb.command.hasClass(oNode,'gloz-step-container')) {
					if(!oNode.hasChildNodes())
						count++;
				} else {
					bb.command.addClass(oNode,'hidden');
					if(bb.command.hasClass(oNode,'gloz-step-' + gloz.page.currentStep)) {
						gloz.page.selectedStep = oNode;
						gloz.page.selectedStep.viewNode.style.opacity = "0.0";
						bb.html.removeClass(gloz.page.selectedStep.viewNode,"hidden");
						oAnimationInfo = {fill: 'freeze',attributeName: "opacity",dur: "0.5s",values: "0.0;1.0"};
						bb.smil.animate(gloz.page.selectedStep,oAnimationInfo,function() {
							bb.command.fireEvent(gloz.page.selectedStep,'gloz-step-selected', false, false);
						});
					}
					count++;
				}
			}
		}

		gloz.page.totalSteps = count;
		var btnNext = bb.selector.query(oParent,'.gloz-page-btnNext');
		var btnPrevious = bb.selector.query(oParent,'.gloz-page-btnPrevious');

		if(gloz.page.currentStep == 0) { bb.command.addClass(btnPrevious,'hidden'); }
		else { bb.command.removeClass(btnPrevious,'hidden'); }

		if(gloz.page.currentStep >= gloz.page.totalSteps - 1) { bb.command.addClass(btnNext,'hidden'); }
		else { bb.command.removeClass(btnNext,'hidden'); }
	},

	showInit: function(oElm) {
		gloz.page.currentStep = 0;
		gloz.page.showCurrent(oElm);
	},

	showNext: function(oElm) {
		gloz.page.currentStep += 1;
		gloz.page.showCurrent(oElm);
	},

	showPrevious: function(oElm) {
		gloz.page.currentStep -= 1;
		gloz.page.showCurrent(oElm);
	}
}

gloz.page.navigation = {
		getContainer: function() {
			return bb.document.getElementById('ctlViews');
		},
		
		show: function() {
			oContainer = gloz.page.navigation.getContainer();
			bb.command.load('modules/navigation/fragments/choose.php','GET',null,null,oContainer,'replaceChildren');
			bb.html.removeClass(oContainer.viewNode,'hidden');
		},

		hide: function() {
			oContainer = gloz.page.navigation.getContainer();
			bb.html.addClass(oContainer.viewNode,'hidden');
		}
}
