dojo.require('dojo.cookie');
dojo.require('dijit.Dialog');
dojo.require('dijit.form.ValidationTextBox');
dojo.require('dijit.form.Button');
dojo.addOnLoad(function() {
	var tooltipTemplate = '<div>'
		+ '<div>Please enter your e-mail address to continue&hellip;</div>' 
		+ '<label for="email%INDEX%">E-mail:</label>'
		+ '<input dojoType="dijit.form.TextBox" style="display: none;" type="hidden" name="redirect" id="redirect%INDEX%" value="%REDIRECT%" />'
		+ '<input dojoType="dijit.form.ValidationTextBox" required="true" regExp="\\w+@\\w+\\.\\w+" invalidMessage="Please enter your valid e-mail address" type="text" name="email" id="email%INDEX%">'
		+ '<button dojoType="dijit.form.Button" type="submit">Submit</button>'
		+ '</div>';
	var index = 0;
	
	dojo.query("a.protected").forEach(function(n) {
		n.onmouseover = function(e) {
			if (!dojo.cookie("sentemail")) {
				window.status = 'please enter your e-mail address to contine...';
				return true;
			}
			return false;
		};
		var ttContent = tooltipTemplate.replace(/%INDEX%/g, index).replace(/%REDIRECT%/g, n.href);
		var tt = new dijit.TooltipDialog({
			title: "Enter E-mail Address",
			content: ttContent
		});
		tt.execute = function() {
			if (!arguments[0].email.match(/\w+@\w+\.\w+/)) {
				alert("Please enter a valid e-mail address");
				return;
			}
			dojo.global.location = '/sendmail.asp?' + dojo.objectToQuery(arguments[0]); 
			dijit.popup.close(tt);
		};

		// connect to onblur to close dialog onblur
		dojo.connect(tt, "_onBlur", this, function() {
			dijit.popup.close(tt);
		});

		dojo.connect(n, 'onclick', function(e) {
			if (!dojo.cookie("sentemail")) {
				e.preventDefault();
				dijit.popup.open({
					parent: e.target,
					popup: tt,
					around: e.target,
					orient:
						// TODO: add user-defined positioning option, like in Tooltip.js
						tt.isLeftToRight() ? {'BL':'TL', 'BR':'TR', 'TL':'BL', 'TR':'BR'} : {'BR':'TR', 'BL':'TL', 'TR':'BR', 'TL':'BL'},
					onCancel: function(){
						dijit.popup.close(tt);
					}
				});	
			}
		});
		index++;			
	});
	dojo.query("body").addClass("soria");
	dojo.parser.parse();
});