//var onExit = new YAHOO.util.CustomEvent("onExit");
//declare CMW namespace
var CMW = window.CMW || {};

CMW.Client = function(){
	var my = {
		LOADING_MSG : ' Loading...',
		CLOSE_BTN : 'Close',
		NEXT_LBL : 'Next',
		PREV_LBL : 'Prev',
		SKINPATH : ''
	};
	return my;
}();

CMW.util = function() {
	//private
	var YuD = YAHOO.util.Dom;
	//public
	var my = {
		createNode : function (element, className, text) {
			var el = document.createElement(element);
			if(className !=undefined && className != '') {
				el.className = className;
			}
			if(text != undefined && text != '') {
				el.appendChild(document.createTextNode(text));
			}
			return el;
		},
				
		getParam : function(url, name){
		  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
		  var regexS = "[\\?&]"+name+"=([^&#]*)";
		  var regex = new RegExp(regexS);
		  var results = regex.exec(url);
		  if (results == null) {
		  	return "";
		  }
		  else 
		  	{return decodeURIComponent(results[1]);}
		},
		
		/* parseUri JS v0.1.1, by Steven Levithan <http://stevenlevithan.com>*/
		parseUri : function(sourceUri){
		 	var uriPartNames = ["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"], 
		 	uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri), 
		 	uri = {}; 
		 	for(var i = 0; i < 10; i++){ 
		 		uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
		 	} 
		 	if(uri.directoryPath.length > 0){ 
		 		uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/"); 
		 	} 
		 	return uri;
		},
		
		addCommas : function (nStr){
			nStr += '';
			//x = nStr.split('.');
			//x1 = x[0];
			//x2 = x.length > 1 ? '.' + x[1] : '';
			var rgx = /(\d+)(\d{3})/;
			while (rgx.test(nStr)) {
				nStr = nStr.replace(rgx, '$1' + ',' + '$2');
			}
			return nStr;
		},
		
		removeAll : function(s, t){
			var i = s.indexOf(t);
			var r = "";
			if (i == -1) {
				return s;
			}
			r += s.substring(0,i) + my.removeAll(s.substring(i + t.length), t);
			return r;
		},
		
		moveObj : function(){
			var o = YuD.get("relLinks");
			var o2 = YuD.get("listing");
			YuD.insertAfter(o,o2);
		},
		
		stringFilter: function(input, filteredValues){
			var i;
			var returnString = "";
			for (i = 0; i < input.length; i++) { // Search through string and append to unfiltered values to returnString.
				var c = input.charAt(i);
				if (filteredValues.indexOf(c) == -1) {
					returnString += c;
				}
			}
			return returnString;
		}
	};
	return my;
}();

CMW.ui = function () {
	//private
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	var YwP = YAHOO.widget.Panel;
	
	var dlgOverlay;
	
	var _createMenu = function(){
			var mainMenuBar = YuD.get("mainNav");
			//fix IE hover issue
			var mainMenu = YuD.getFirstChildBy(mainMenuBar, function(child){
					return (child.tagName == "UL");
				});
			//find selected item and make it the label
			var selectedItem = mainMenu.getElementsByTagName("strong")[0];
			//the first classname is the identifier
			if (selectedItem !== undefined) {
				var itemClass = selectedItem.parentNode.className;
				itemClass = itemClass.split(" ")[0];
				var selectedItemText = "";
				selectedItemText = selectedItem.innerHTML;
			} else {
				selectedItemText = "Select";//FIXME
			}
			var newNav = CMW.util.createNode('div', 'bd ' + itemClass);
			//YuD.addClass(newNav, "bd " + itemClass);
			var newNavLabel = document.createElement('div');
			var newNavLabelBox = CMW.util.createNode('strong', '', selectedItemText);
			newNavLabel.appendChild(newNavLabelBox);
			newNav.appendChild(newNavLabel);
			newNav.appendChild(mainMenu);
			mainMenuBar.appendChild(newNav);
			
			//subNav
			var subMenu = YuD.get("navCol");
			if(subMenu != undefined){
				mainMenuBar.appendChild(subMenu);
				YuD.addClass(mainMenuBar, "subnav");
			}
			//fix IE 6 hover
			if (document.all && document.getElementById) {
				YuE.on(newNav, 'mouseover', function() {YuD.addClass(this, 'over');});
				YuE.on(newNav, 'mouseout', function() {YuD.removeClass(this, 'over');});
			}
	};
	
	var _createMsgOverlay = function() {
		//set message box
		//FIXME: this assumes only one themeoverlay is used - potential for multiples?
		YuD.getElementsByClassName("themeoverlay", "div", "", function() {
			var obj = YuD.getFirstChildBy(this, function(child){
						return YuD.hasClass(child, "portlet");
					});
			obj.id = "dlg";
			YuE.on(this, 'click', function(ev) {
				var tar = YuE.getTarget(ev);
				if(YuD.hasClass(tar,'i-close')) {
					CMW.ui.hideMsg();
				}
			});		
		});
		my.dlgOverlay = new YwP("dlg", 
			{ 
				width:"500px",
				fixedcenter: true,
				constraintoviewport: true,
				underlay:"none",
				close:false,
				visible:true,
				modal:true,
				effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.5},
				draggable:false,
				zIndex:1000
			} 
		); 
		//var kl = new YAHOO.util.KeyListener(document, { keys:27 }, { fn:hide, scope:my.dlgOverlay, correctScope:true } );
		//my.dlgOverlay.cfg.queueProperty("keylisteners", kl);
		
		var closeBtn = CMW.util.createNode('button','i-close default',CMW.Client.CLOSE_BTN);
		my.dlgOverlay.setFooter(closeBtn);
		//only show the first time
		if(showOverlay == false){return;}
		my.dlgOverlay.render();			
	};
	
	var _setPortletURLs = function() {
		var links = YuD.getElementsByClassName('infoBoxLk', 'a', '', function(){
			if(this.getAttribute('urn') != null) {
				YuE.on(this, 'click', function(ev) {
					CMW.Portlet.Callout.cfg.setProperty('width',"500px");
					CMW.Portlet.Callout.cfg.setProperty('context',[this,'tl','br']);
					CMW.Portlet.Callout.setBody('<img src="'+CMW.Client.SKINPATH+'images/loading.gif" alt=""/>'+CMW.Client.LOADING_MSG);
					//ajaxcall
					var sUrl = this.getAttribute('urn') + "&_link=" + this.href;
					
					CMW.Portlet.Callout.show();
					var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, {success: CMW.Portlet.Help.getHelp, failure: CMW.Portlet.Help.asyncError});
					YuE.preventDefault(ev);
				});
			}
		});
		var test;
	};
	
	//public
	var my = {
		init : function () {
			//_createMenu();
			//_createMsgOverlay();
			//_setPortletURLs();
		},
		
		hideMsg : function() {
			this.dlgOverlay.hide();
		}
	};
	return my;
}();

	CMW.ui.Effect = function(el) {
		this.oEl = YAHOO.util.Dom.get(el);
		this.height = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'height'));
		this.width = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'width'));
	};
	CMW.ui.Effect.prototype.BlindUp = function(iTimer, onComplete) {
		var timer = iTimer || 0.25;
		this.oEl.style.overflow = 'hidden';
		var blind = new YAHOO.util.Anim(this.oEl, { height: { to:0} }, timer, YAHOO.util.Easing.easeOut);
		if ( onComplete ) {
			blind.onComplete.subscribe(onComplete);
		}
		blind.animate();
	};
	CMW.ui.Effect.prototype.BlindDown = function(iTimer, onComplete) {
		this.oEl.style.visibility = 'hidden';
		this.oEl.style.overflow = 'hidden';
		this.oEl.style.height = '';
		var height = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'height'));
		this.oEl.style.height = '0';
		this.oEl.style.visibility = 'visible';
		var timer = iTimer || 0.25;
		var blind = new YAHOO.util.Anim(this.oEl, { height: { to:height, from:0} }, timer, YAHOO.util.Easing.easeOut);
		if ( onComplete ) {
			blind.onComplete.subscribe(onComplete);
		}
		blind.animate();
	};
	CMW.ui.Effect.prototype.SwipeLeftOut = function(iTimer, onComplete) {
		var timer = iTimer || 0.25;
		this.oEl.style.overflow = 'hidden';
		var width = parseInt(YAHOO.util.Dom.getStyle(this.oEl,'width'));
		var swipe = new YAHOO.util.Anim(this.oEl, { width: { to:0, from:width} }, timer, YAHOO.util.Easing.easeOut);
		if ( onComplete ) {
			swipe.onComplete.subscribe(onComplete);
		}
		swipe.animate();
	};
	
CMW.ui.Nav = function(){
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	//public
	var my = {
		set : function (id) {
			YuD.addClass(YuD.get(id), 'on');
		}
	};
	return my;
}();

//create CMWportlet namespace
CMW.Portlet = function() {
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	var YwP = YAHOO.widget.Panel;
			
	var _createCallout = function(){
		//set Callout as a public object
		my.Callout = new YAHOO.widget.Panel("i-callout", 
			{ 
				width:"200px",
				close:true,  
				visible:false,
				draggable:true,
				underlay:"shadow",
				zIndex:110,
				constraintoviewport:true,
				effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.5}
			}
		);
		my.Callout.setHeader("");
		my.Callout.setBody('');
		my.Callout.render(document.body); //attach somewhere
	};

	var my = {
		init : function () {
			_createCallout();
		},
		
		getHelp : function(o){
			if(o.responseText !== undefined){
				CMW.Portlet.Callout.setBody(o.responseText);				
			}
		},
		
		asyncError : function(o){
			if(o.responseText !== undefined){
				alert(o.statusText);
			}
		}
	};
	return my;
}();

CMW.Portlet.Feature = function() {
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	var my = {
		init : function () {
			var widgets = YuD.getElementsByClassName("features", "div", "", function() {
				YuE.on(this, 'click', function(ev) {
					var stopAction = false;
					var tar = YuE.getTarget(ev);
					if (YuD.hasClass(tar, 'item')) {
						if(YuD.hasClass(tar, 'open')){
							//YuD.removeClass(tar, 'open');
						} else {
							//remove existing open
							var o = tar.parentNode;
							for (i=0;i<o.childNodes.length;i++){
								var child = o.childNodes[i];
								if(child.nodeType != 3 && YuD.hasClass(child, 'open')){
									YuD.removeClass(child, 'open');
									break;
								}
							}
							//add open
							YuD.addClass(tar, 'open');
						}
						stopAction = true;
					}
					if (stopAction == true){
						YuE.preventDefault(ev);
					}
				});
			});
		}
	};
	return my;
}();

CMW.Portlet.Carousel = function(obj, anim) {
	var YuD = YAHOO.util.Dom,
		YuE = YAHOO.util.Event,
		YuA = YAHOO.util.Anim,
		YuM = YAHOO.util.Motion;
	this.setPager = function(current){
		var len = pager.childNodes.length;
		for(i=0;i<len;i++){
			if (i == current-1){
				YuD.addClass(pager.childNodes[i],"on");
			} else {
				YuD.removeClass(pager.childNodes[i],"on");
			}
		}
	};
	if (obj) {
		var node = obj;
		var that = this;
		var x = 1;
		var currGroup = 1;
		var loadedGroup = 1;
		var max = Math.ceil(node.getElementsByTagName('LI').length / 4);
		var ctnt = YuD.getElementsByClassName("items", "ul", node)[0];
		var imgOffset = 6;
		var animate = anim;
		var pager;
		pager = CMW.util.createNode("div", "pager");
		for (var i = 1; i <= max; i++) {
			pager.appendChild(CMW.util.createNode("span", "num-"+i, "-"));
		}
		YuD.insertAfter(pager,node);
		
		YuD.getElementsByClassName("nav", "a", node, function(){
			YuD.setStyle(this, 'zindex',100);
			YuE.on(this, 'click', function(ev){
				var stopAction = false;
				var tar = this;//YuE.getTarget(ev);
				if (YuD.hasClass(tar, 'nav')) {
					that.move(tar);
					stopAction = true;
				}
				if (stopAction == true) {
					YuE.preventDefault(ev);
				}
			});
		});
		YuE.on(node, 'mouseover', function(ev){
			var tar = YuE.getTarget(ev);
			if (tar.nodeName == "IMG" && tar.parentNode.className == "") {
				var h = parseInt(YuD.getStyle(tar, 'width'));
				var w = parseInt(YuD.getStyle(tar, 'height'));
				var loc = YuD.getXY(tar);
				loc = [loc[0] - imgOffset, loc[1] - imgOffset];
				YuD.setStyle(tar, 'width', (h + imgOffset * 2) + 'px');
				YuD.setStyle(tar, 'height', (w + imgOffset * 2) + 'px');
				YuD.setXY(tar, loc);
			}
		});
		YuE.on(node, 'mouseout', function(ev){
			var tar = YuE.getTarget(ev);
			if (tar.nodeName == "IMG" && tar.parentNode.className == "") {
				YuD.setStyle(tar, 'width', (tar.width - imgOffset * 2) + 'px');
				YuD.setStyle(tar, 'height', (tar.height - imgOffset * 2) + 'px');
				var loc = YuD.getXY(tar);
				var y = loc[1];
				if(YAHOO.env.ua.webkit > 1){
					y = y+15;
				}
				loc = [loc[0] + imgOffset, y + imgOffset];
				YuD.setXY(tar, loc);
				if(YuD.hasClass(tar.parentNode,'nextLk')){
					YuD.setStyle(tar,'left',0);
				}
			}
		});
	}
	this.load = function(){
		if(loadedGroup == currGroup && loadedGroup <= max) {
			//fire load event
			loadedGroup ++;
		}
	};
	this.move = function(el, init) {
		if(!init){init = false;}
		if(YuD.hasClass(el, 'prevLk')){
				if ( currGroup === 1 ) {
					return;
				}
				var attributes = {
					points : {
						by : [280, 0] //FIXME: width based on setup?
					}
				};
				currGroup--;
		} else if(YuD.hasClass(el, 'nextLk') || init == true) {
				if ( currGroup === max ) {
					return;
				}
				that.load();
				var attributes = {
					points : {
						by : [-280, 0]
					}
				};
				currGroup++;
		} else {
			return;
		}
		var anim = new YuM(ctnt, attributes, 1.5, YAHOO.util.Easing.easeOut);
		anim.animate();
		that.setPager(currGroup);
	};
	if (animate === true) {
		that.move(null, true);
	} else {
		that.setPager(currGroup);
	}
};//no closure -- so it can be instanciated multiple times

CMW.Portlet.News = function(obj) {
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	var YuA = YAHOO.util.Anim;
	var YuM = YAHOO.util.Motion;
	var node = obj;
	var that = this;
	var items = YuD.getElementsByClassName("item", "div", node);
	var itemCount = items.length;
	var timer;
	if (itemCount > 1) {
		var pager = CMW.util.createNode("div", "pager");
		pager.appendChild(CMW.util.createNode("a", "prevLk", "\u00AB"));
		pager.appendChild(CMW.util.createNode("a", "first i-sel", "1"));
		for (i = 2; i <= itemCount; i++) {
			pager.appendChild(CMW.util.createNode("a", "", i));
		}
		pager.appendChild(CMW.util.createNode("a", "nextLk", "\u00BB"));
		YuD.insertBefore(pager,items[0]);
		YuE.on(pager, "click", function (ev) {
			var tar = YuE.getTarget(ev);
			if (!YuD.hasClass(tar, "i-sel")) {
				that.find(tar);
			}
		}, node);
		timer = setInterval("CMW.Portlet.News.next()", 6000);
	}
	this.find = function(el) {
		var clickedItem = 0;
		var newItem = 0;
		var selItem = 0;
		var parent = el.parentNode;
		var linkCount = parent.childNodes.length;
		for (i = 0; i < linkCount; i++) {
			if (YuD.hasClass(parent.childNodes[i], "i-sel")) {
				selItem = i;
			}
			if (el === parent.childNodes[i]) {
				clickedItem = i;
			}
			YuD.removeClass(parent.childNodes[i], "i-sel");
		}
		if (clickedItem == 0) {
			newItem = selItem - 1;
			if (newItem < 1) {
				newItem = itemCount;
			}
		} else if (clickedItem == linkCount - 1) {
			newItem = selItem + 1;
			if (newItem > itemCount) {
				newItem = 1;
			}
		} else {
			newItem = clickedItem;
		}
		YuD.addClass(parent.childNodes[newItem], "i-sel");
		that.move(items[newItem - 1], items[selItem - 1]);
	};
			
	this.move = function(newEl,oldEl){
	  var fadeOut = new YuA(oldEl, { opacity: { from: 1, to: 0 }}, 0.5);
	  fadeOut.onComplete.subscribe(function (){
	  	var o = this.getEl();
	  	YuD.addClass(this.getEl(), "i-closed");
		  var fadeIn = new YuA(newEl, { opacity: { from: 0, to: 1 }}, 0.5);
		  fadeIn.onStart.subscribe(function (el){
			YuD.removeClass(newEl, "i-closed");
			});
		  fadeIn.animate();
	  	});
	  fadeOut.animate();
	};
};//no closure -- so it can be instanciated multiple times
CMW.Portlet.News.next = function(){
	var nextEl = YAHOO.util.Dom.getElementsByClassName("nextLk", "a", 'features');
	news[0].find(nextEl[0]);
};


CMW.Portlet.Panel = function(obj) {
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	var YuA = YAHOO.util.Anim;
	var YuM = YAHOO.util.Motion;
	var node = obj;
	var that = this;
	var items = YuD.getElementsByClassName("panel", "div", node);
	var itemCount = items.length;
	if (itemCount > 1) {
		var pager = YuD.getFirstChildBy(node, function(child){
					return (child.tagName == "UL");
				});
		YuE.on(pager, "click", function (ev) {
			var tar = YuE.getTarget(ev);
			if (!YuD.hasClass(tar, "i-sel")) {
				that.find(tar.parentNode);
			}
		}, node);
	}

	this.response = function(o){
		if(o.responseText !== undefined){
			o.argument.innerHTML = o.responseText;
		}
	};
	
	this.asyncError = function(o){
		if(o.responseText !== undefined){
			alert(o.statusText);
		}
	};
		
	this.find = function(el) {
		var clickedItem = that.select(el);
		var selItem;
		var parent = el.parentNode;
		var linkCount = 0;
		for (i = 0; i < parent.childNodes.length; i++) {
			var item = parent.childNodes[i];
			if(item.tagName == "LI"){
				if (YuD.hasClass(item, "i-sel")) {
					selItem = that.select(item);
				}
				YuD.removeClass(item, "i-sel");
				linkCount = linkCount + 1;
			}
		}
		if (clickedItem == undefined || selItem == undefined) {
			return;
		}
		YuD.addClass(el, "i-sel");
		that.move(clickedItem, selItem);
		if(document.body.id == "Home" && el.id == "p2"){
			that.collect(clickedItem);
		}
	};
	
	this.select = function(item){
		
		var loc = item.childNodes[0].href;
		loc = loc.substr(loc.indexOf('#')+1);
		if (loc > "") {
			return YuD.get(loc);
		} else { //old way
			return YuD.get("panel" + item.id.substr(1));
		}
	};
	
	this.collect = function(el){
		var sUrl = "account/recentTransactions.cfm" + "?_max=3";
		el.innerHTML = '<span id="Loader"><img src="'+CMW.Client.SKINPATH+'images/loading.gif" alt=""/>'+CMW.Client.LOADING_MSG +'</span>';
		var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, {success: that.response, failure: that.asyncError, argument: el});
	};
			
	this.move = function(newEl,oldEl){
	  var fadeOut = new YuA(oldEl, { opacity: { from: 1, to: 0 }}, 0.5);
	  fadeOut.onComplete.subscribe(function (){
	  	var o = this.getEl();
	  	YuD.addClass(this.getEl(), "i-closed");
		  var fadeIn = new YuA(newEl, { opacity: { from: 0, to: 1 }}, 0.5);
		  fadeIn.onStart.subscribe(function (el){
			YuD.removeClass(newEl, "i-closed");
			});
		  fadeIn.animate();
	  	});
	  fadeOut.animate();
	};
};//no closure -- so it can be instanciated multiple times

CMW.Portlet.Help = function() {
	var YuD = YAHOO.util.Dom;
	var YuE = YAHOO.util.Event;
	var YwP = YAHOO.widget.Panel;
	var my = {
		inited : false,
		init : function () {
			if(!this.inited){
				var widgets = YuD.getElementsByClassName("helpWrap", "div", "", function() {
					if(YuD.hasClass(this.parentNode, 'bd')){
						my.inited = true;
						YuE.on(this.parentNode, 'click', function(ev) {
							var stopAction = false;
							var tar = YuE.getTarget(ev);
							if (tar.tagName != "A") {
								return;
							}
							var link = CMW.util.parseUri(tar.href);
							var intLink = CMW.util.getParam(tar.href, "item");
							if (intLink != '') {
								//ajax call to reload
								stopAction = true;
								CMW.Portlet.Callout.setBody('<img src="'+CMW.Client.SKINPATH+'images/loading.gif"/>'+CMW.Client.LOADING_MSG);
								var request = YAHOO.util.Connect.asyncRequest('GET', tar.href, {success: my.getHelp, failure: my.asyncError});
							} else {
								//test if the link is inside the site
								if(CMW.Client.DOMAINS.indexOf(link.domain) >= 0){
									//replace the host name of the url with the portalUrl					 
									tar.href = link.source.replace(link.path, CMW.util.getParam(tar.href, "_portlet.portalUrl"));
								}
							}
							if (stopAction == true){
								YuE.preventDefault(ev);
							}
						});
					}
				});
			}
		},
		getHelp : function(o){
			if(o.responseText !== undefined){
				CMW.Portlet.Callout.setBody(o.responseText);
				if(!my.inited){my.init();}
			}
		},
					
		asyncError : function(o){
			if(o.responseText !== undefined){
				CMW.Portlet.Callout.setBody(o.statusText);
			}
		}
		
	};
	return my;
}();

CMW.Portlet.FareFinder = function(){
	var YuD = YAHOO.util.Dom,
		YuE = YAHOO.util.Event;
	var ff;

	//public
	var my = {
		init : function () {
			ff = YuD.get('msgFarefinder');
			YuE.on(ff, "click", function (ev) {
				var tar = YuE.getTarget(ev);
				if (tar.tagName == "A" || tar.parentNode.tagName == "A") {
					var ctnt = YuD.get('farefinderCtnt');
					CMW.Portlet.Callout.cfg.setProperty('width',"355px");
					CMW.Portlet.Callout.cfg.setProperty('fixedcenter',true);
					//CMW.Portlet.Callout.cfg.setProperty('modal',true);
					CMW.Portlet.Callout.setBody(ctnt.innerHTML);
					CMW.Portlet.Callout.setHeader('&nbsp;');
					CMW.Portlet.Callout.show();
				}
			});
		}
	};
	return my;
}();
	

YAHOO.util.Event.onDOMReady(CMW.Portlet.init, CMW.Portlet);
YAHOO.util.Event.onDOMReady(CMW.util.moveObj, CMW.util);
YAHOO.util.Event.onDOMReady(CMW.Portlet.FareFinder.init, CMW.Portlet.FareFinder);
var pnl = new CMW.Portlet.Panel(YAHOO.util.Dom.get("panels"));
var opt = new CMW.Portlet.Panel(YAHOO.util.Dom.get("options"));
var trigger = 0;
var cars = YAHOO.util.Dom.getElementsByClassName("carousel", "div", "");
var i = cars.length;
var anim = false;
while(i--){
	if(i === 0){
		anim = true;//first one only
	}
	new CMW.Portlet.Carousel(cars[i], anim);
}
var news = [];
YAHOO.util.Dom.getElementsByClassName("collection", "div", "", function(el) {
	news.push(new CMW.Portlet.News(el));	
});

