YAHOO.namespace("index.container");

var Index = {

	base: null,
	jackpot: null,
	winners: null,
	timer: null,
	interval: 15000,

	//----	
	form_login: null,
	tooltips: {
	},

	getFormElements: function(form_name) {
		var tmp = YAHOO.util.Dom.getElementsBy(
			function(obj) {
				if (obj && obj.nodeName && (
					obj.nodeName.toLowerCase() == 'input' ||
					obj.nodeName.toLowerCase() == 'select' ||
					obj.nodeName.toLowerCase() == 'textarea'
				)) {
					return true;
				}
				return false;
			},
			null,
			document.forms[form_name]
		);
		var result = {};
		for (var i in tmp) {

			if (!tmp[i].name) {
				continue;
			}
			result[tmp[i].name] = tmp[i];
		}

		return result;
	},

	doChangeFormState: function(form, state) {
		var self = YAHOO.index.container.handler;
		var inputs = self.getFormElements(form);

		for (var i in inputs) {
			inputs[i].disabled = !state;
		}
	},

	searchAndFocus: function(form_name) {
		var self = YAHOO.index.container.handler;
		var tmp = self.getFormElements(form_name);

		if (tmp) {
			for (var i in tmp) {
				if ((tmp[i].type != 'hidden') && !tmp[i].disabled && tmp[i].focus) {
					tmp[i].focus();
					break;
				}
			}
		}
	},

	createTooltips: function() {
		var self = YAHOO.index.container.handler;
		for (var name in self.tooltips) {
			var elm = self.getFormElements(name);

			if (!elm) {
				continue;
			}

			for (var i in elm) {

				var field = elm[i]['name'];

				if (!field) {
					continue;
				}

				self.tooltips[name][field] = new YAHOO.widget.Tooltip(
					name + '_' + field, {
						context: elm[i],
						text: '',
						disabled: true
					}
				);
			}
		}
	},

	onLoginResponse: function(obj) {
		var self = YAHOO.index.container.handler;
		try {
			var f = obj.argument.form;
			self.doChangeFormState(f, true);
			var data = YAHOO.lang.JSON.parse(obj.responseText);
			if (data['error'] && data['field'])
			{
				alert(data['error']);
				var field = data['field'];
				var elm = self.getFormElements(f);
				if (!elm || !elm[field]) {
					return;
				}

				if (elm[field].focus) {
					elm[field].focus();
				}
				/*var r = YAHOO.util.Dom.getRegion(elm[field]);
				self.tooltips[f][field].pageX = r.right - 10;
				self.tooltips[f][field].pageY = r.top - 12;
				self.tooltips[f][field].cfg.setProperty(
				'text', data['error'], true
				);*/
				//self.tooltips[f][field].doShow(null, elm[field]);
				return;
			}
			if (data['redirect']) {
				document.location.href = self.base + data['redirect'];
			}
			if (data['show']) {
				if (data['usrid']) {
					var isrc = 'http://zijn.samenresultaat.nl/registersale.asp?site=6019&mode=ppl&ltype=1&order=' + data['usrid'];
					var b = "<IMG SRC='" + isrc + "' WIDTH='1' HEIGHT='1'>";
					var dd = document.getElementById('tracktrade');
					dd.innerHTML = b;
					setTimeout(self.onRegClick(data['show']), 2000);
				} else {
					self.onRegClick(data['show']);
				}


			}
			/*else {
			self.form4real.hide();
			}*/
		}
		catch (x) {
			alert('Exception: ' + x + "\n" + obj.responseText);
		}
	},

	doLogin: function(type) {
		var self = YAHOO.index.container.handler;
		var f = null;
		if (type == 'fun') {
			f = 'form4fun';
		}
		else if (type == 'real') {
			f = 'lg';
		}

		if (!f) {
			return;
		}
		var callback = {
			success: self.onLoginResponse,
			failure: self.onRequestFailed,
			argument: { form: f }
		};
		var url = self.base + 'login/login/';
		YAHOO.util.Connect.setForm(f);
		YAHOO.util.Connect.asyncRequest('POST', url, callback);
		self.doChangeFormState(f, false);
	},
	//---

	onRequestFailed: function() {

	},

	onJAWSuccess: function(obj) {

		var self = YAHOO.index.container.handler;

		try {
			var data = YAHOO.lang.JSON.parse(obj.responseText);

			if (self.jackpot && data['jackpot']) {
				self.jackpot.innerHTML = '$ '+data['jackpot'];
			}

			if (self.winners && data['winners'] && data['winners'].length) {
				var html = '';
				for (var i = 0; i < data['winners'].length; i++) {
					if (data['winners'][i]['image'] != null) {
						html += '<img src="' + data['winners'][i]['image'] + '" ' +
							'alt="' + data['winners'][i]['country'] + '" ' +
							'align="absmiddle" />';
					}
					else {
						html += '<span style="width:27px"></span>';
					}
					html += ' ' + data['winners'][i]['name'] + '<br />';
				}
				self.winners.innerHTML = html;
			}
		}
		catch (x) {
			alert('Exception: ' + x + "\n" + obj.responseText);
		}
	},

	onCronRequest: function() {

		var self = YAHOO.index.container.handler;

		if (!self.jackpot && !self.winners) {
			return;
		}

		var callback = {
			success: self.onJAWSuccess,
			failure: self.onRequestFailed
		};
		var url = self.base + 'jackpot-and-winners/';
		YAHOO.util.Connect.asyncRequest('GET', url, callback);
		self.timer = setTimeout('Index.onCronRequest()', self.interval);
	},

	init: function() {

		if (YAHOO.index.container.handler) {
			return;
		}
		YAHOO.index.container.handler = Index;
		var self = YAHOO.index.container.handler;

		try {
			var result = YAHOO.util.Dom.getElementsBy(
				function(elm) { return true; }, 'base'
			);
			if (result && result.length) {
				result = result[0].href;
				if (result.substr(result.length - 1, 1) != '/') {
					result += '/';
				}
				self.base = result;
			}
		} catch (x) { self.base = ''; }

		self.jackpot = YAHOO.util.Dom.get('current_jackpot');
		self.winners = YAHOO.util.Dom.get('recent_winners');

		/*self.form_login = new YAHOO.widget.Module(
			'logon_form', {
				constraintoviewport: false,
				visible: true,
				zIndex: 3
			}
		);*/
		//self.form_login.render();
		//self.createTooltips();

		self.onCronRequest();
	}
}


YAHOO.util.Event.addListener(window, "load", Index.init);
