dojo.behavior.add({
	'#footer_to_top': {
		onclick: function(evt) {
			dojox.fx.smoothScroll({
				node		: dojo.body(),
				win			: window,
				duration	: 300,
				easing		: dojo.fx.easing.easeOut
			}).play();
		}
	},
	'input.text, input.password, textarea': {
		found: function(node) {
			node.agClass = node.className;
			node.agClassFocus = ['focus'];
			dojo.forEach(node.agClass.split(' '), function(agClass){
				node.agClassFocus.push(agClass, agClass+'_focus');
			});
			node.agClassFocus = node.agClassFocus.join(' ');
		},
		onfocus: function(evt) {
			this.className = this.agClassFocus;
			if (this.type != 'textarea')
				this.select();
		},
		onblur: function(evt) {
			this.className = this.agClass;
		}
	},
	'input[type="submit"], button': {
		found: function(node) {
			if (node.className) {
	    		node.agClass = node.className;
	    		node.agClassHover = [];
	    		dojo.forEach(node.agClass.split(' '), function(agClass){
	    			node.agClassHover.push(agClass, agClass+'_hover');
	    		});
	    		node.agClassHover = node.agClassHover.join(' ');
			}
		},
    	onmouseenter: function(evt) {
			if (this.agClassHover) {
				this.className = this.agClassHover;
			}
		},
    	onmouseleave: function(evt) {
			if (this.agClass) {
				this.className = this.agClass;
			}
		}
	},
    // User Menu
    '#header_user_menu .user_wrapper': {
    	found: function(node) {
    		node.userMenu = dojo.query('.user_menu', node)[0];
    		node.agAnimExpand = dojo.animateProperty({
				node: node.userMenu,
				properties: {width: node.userMenu.scrollWidth}
			});
    		node.agAnimCollapse = dojo.animateProperty({
				node: node.userMenu,
				properties: {width: 1}
			});
    	},
        onmouseenter: function(evt) {
        	this.agAnimCollapse.stop();
        	this.agAnimExpand.play();
        },
        onmouseleave: function(evt) {
        	this.agAnimExpand.stop();
        	this.agAnimCollapse.play(
        		(this.userMenu.scrollWidth != dojo.style(this.userMenu, 'width')) ? 0 : 1000
        	);
        }
    },
    // Training Theme Select
    '.panels_training_theme select': {
    	onchange: function(evt) {
    		if (this.value)
    			window.location = this.value;
    	}
    },
    // Login
    '#ag_user_login_mail': {
    	found: function(node) {
    		node.focus();
    	}
    },
    // Cart Currency Select
    '#sf_store_cart_currency': {
    	onchange: function(evt) {
    		this.form.submit();
    	}
    }
});

dojo.addOnLoad(function(){

	/* Focus on the first form error field */
	var agFieldErrors = dojo.query('form .error');
	if (agFieldErrors[0])
	{
		agFieldErrors[0].focus();
	}

	/* Menu */
	dojo.declare('ag.menu', null, {
		menu		: null,
		menuCoords	: null,
		menus		: null,
		subMenus	: null,
		constructor	: function() {
			this.menu		= dojo.byId('header_menu');
			this.menuCoords	= dojo.coords(this.menu);
			this.menus		= dojo.query('.items > li', this.menu);
			this.menusLinks	= dojo.query('.items > li > a', this.menu);
			this.subMenus	= dojo.query('> ul > li > ul', this.menu);

			this.menus.forEach(dojo.hitch(this, 'attachSubMenu'));
			dojo.connect(this.menu, 'onmouseleave', this, 'hideSubMenus');
		},
		attachSubMenu	: function(node) {
			node.agMenuLink = dojo.query('> a', node)[0];
			node.agSubMenu = dojo.query('> ul', node)[0];
			if (node.agSubMenu) {
				dojo.style(node.agSubMenu, 'paddingLeft', dojo.coords(node).l + 'px');
				node.agMenuLink.agSubMenu = node.agSubMenu;
				dojo.connect(node.agMenuLink, 'onmouseover', this, 'showSubMenu');
			} else
				dojo.connect(node.agMenuLink, 'onmouseover', this, 'hideSubMenus');
		},
		showSubMenu	: function(evt) {
			this.hideSubMenus();
			dojo.addClass(evt.currentTarget, 'hover');
			dojo.style(evt.currentTarget.agSubMenu, 'visibility', 'visible');
		},
		hideSubMenus	: function(evt) {
			this.menusLinks.removeClass('hover');
			this.subMenus.style('visibility', 'hidden');
		}
	});(new ag.menu)
});
