// Closure to set up our convenience variables and methods
(function(){

	var $Y = YAHOO, $U = $Y.util, $A = $U.Anim, $E = $U.Event, $D = $U.Dom;
	// Dollar function to use selector API and then create Element objects from a collection of DOM nodes
	var $ = function(el, root, firstOnly){
		if ( $Y.lang.isUndefined(el) ) {
		} else if ( $Y.lang.isString(el) ) {
			var retEls = [],els = $U.Selector.query(el, root, firstOnly);
			if($Y.lang.isArray(els)) {
				for(var i=0;i<els.length;i++) { retEls[i] = new $U.Element(els[i]);}
				return retEls;				
			} else {
				return new $U.Element(els);
			}
        } else {
            return new $U.Element(el);
        }
	}
	
	// Create our namespace if it doesn't yet exist
	UVALIB = window.UVALIB || {};
	
	UVALIB.UserEd = {
		init : function() {
			this.makeTutorialLinks($('.tutorialList li'));	
		},
		makeTutorialLinks: function(items) {
			for(var i=0;i<items.length;i++) {
				this.makeLink(items[i]);
				this.emulateHover(items[i]);
			}
		},
		makeLink: function(item){
			// for each, get the href attr of the first 'a' child element and add a click event handler that goes to that url
			var aEl = $('a', item.get('element'), true);
			item.setStyle('cursor','pointer');
			item.on('click',function(){
				window.location = aEl.get('href');
			});
		},
		emulateHover: function(items) {
			var cls = clsO = 'hover';
			if(!$Y.lang.isArray(items)) { var item = items; items = [item]; }
			for(var i=0;i<items.length;i++) { 				
				if(items[i].hasClass('first')) { cls = 'hoverFirst';}
				if(items[i].hasClass('last')) { cls = cls == 'hoverFirst' ? 'hoverFirstLast' : 'hoverLast'; }
				(function(iCls){
					items[i].on('mouseover',function(){ this.addClass(iCls); });
					items[i].on('mouseout',function(){ this.removeClass(iCls); });					
				})(cls);
				cls = clsO;
			}
		}
	}

	$E.onDOMReady(function(){ UVALIB.UserEd.init(); });
	
})();

