if ("jQuery" in window) jQuery.noConflict();

(function(d) {
	
	d.require('dijit.Tooltip');
	
	/*******************************************************************************************************************
	 	-- Page Unload
	 ******************************************************************************************************************/
	/*
	(function() {
		d.addOnUnload(function() {
			d.query('#content').addClass('loading');
			setInterval(function() {
				console.log(document.location);
			}, 100);
		});
	})();
	// */
	
	/*******************************************************************************************************************
	 	-- Lightbox
	 ******************************************************************************************************************/
	d.require("dojox.image.Lightbox");
	d.addOnLoad(function() {
		d.query('a[rel~="lightbox"]').forEach(function(link) {
			var options = {
					href: d.attr(link, 'href')
				},
				thumbnails = d.query('> img', link);
			if (thumbnails.length && d.attr(thumbnails[0], 'title')) options.title = d.attr(thumbnails[0], 'title');
			var lightbox = new dojox.image.Lightbox(options);
			lightbox.startup();
			d.connect(link, 'click', function(e) {
				d.stopEvent(e);
				lightbox.show();
			});
		});
	});
	
	/*******************************************************************************************************************
	 	-- Loginbox
	 ******************************************************************************************************************/
	d.require('dijit.form.Form');
	d.require('dijit.form.Button');
	d.require('dijit.form.ValidationTextBox');
	d.require('dijit.form.CheckBox');
	d.addOnLoad(function() {
		var loginbox = d.query('#mainNavigation .loginbox'),
			inner = d.query('#mainNavigation .loginbox-inner');
		
		if (!loginbox.length) return;
		loginbox = loginbox[0];
		inner = inner[0];
		
		var loginLink = d.query('#mainNavigation .login a')[0];
		
		if (d.attr(loginLink, 'rel') === 'logout') return;
		
		d.connect(loginLink, 'click', function(e) {
			d.stopEvent(e);
			d.anim(inner, {opacity: 1});
			d.style(loginbox, 'display', 'block');
			var windowClickConnect = d.connect(dojo.body(), 'click', function (e) {
				if (e.target == loginbox || d.query('*', loginbox).indexOf(e.target) > -1) return;
				var fadeOutAnimation = d.anim(inner, {opacity: 0});
				d.connect(fadeOutAnimation, 'onEnd', function() {
					d.style(loginbox, 'display', 'none');
				});
				d.disconnect(windowClickConnect);
			});
		});
		
		d.style(inner, {
			opacity: 0
		});
		
		/*
		d.style(loginbox, {
			display: 'block',
			opacity: 0
		});
		*/
		
		function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

		
		var form = d.query('form', loginbox)[0],
			inputs = d.query('input', form);
		
		var dijitForm = new dijit.form.Form({
			action: d.attr(form, 'action'),
			target: d.attr(form, 'target'),
			post: d.attr(form, 'post'),
			method: 'POST',
			onSubmit: function(e){
				//return false;
				var callback = d.attr(form, 'onsubmit');
				callback.call(this.domNode, e);
				
				sleep(1000);
				
				//debugger;
				//tx_rsaauth_feencrypt(this.domNode);
				//console.log(this.get('value'));
				//return false;
			}
		}, form);
		dijitForm.startup();
		
		d.forEach(inputs, function(input) {
			var type = input.type,//d.attr(input, 'type'),
				widget;
			switch (type.toLowerCase()) {
				case 'password':
				case 'text':
					widget = new dijit.form.ValidationTextBox({
						required: true,
						placeHolder: d.attr(input, 'alt'),
						type: type,
						name: d.attr(input, 'name')
					}, input);
					d.connect(widget, 'onKeyPress', function(e) {
						if (e.keyCode !== dojo.keys.ENTER) return;
						if (dijitForm.validate()) dijitForm.submit();
					});
					break;
				case 'checkbox':
					widget = new dijit.form.CheckBox({
						name: d.attr(input, 'name')
					}, input);
					break;
				case 'submit':
					widget = new dijit.form.Button({
						label: d.attr(input, 'value'),
						name: d.attr(input, 'name')
					}, input);
					d.connect(widget, 'onClick', function() {
						if (dijitForm.validate()) dijitForm.submit();
					});
					break;
			}
			widget && widget.startup();
		});
	});
})(dojo);
