(function()
{
	var updateCycleTime = 20000, // milliseconds
		$E = YAHOO.util.Event,
		$D = YAHOO.util.Dom,
		$C = YAHOO.util.Connect,
		tId, btnImgArr = [], icodePanel,

		buttonMouseover = function(e)
		{
			var el = $E.getTarget(e);
			el.src = btnImgArr[getImgId(el.src)][1].src;
		},

		buttonMouseout = function(e)
		{
			var el = $E.getTarget(e);
			el.src = btnImgArr[getImgId(el.src)][0].src;
		},

		buttonMousedown = function(e)
		{
			var el = $E.getTarget(e);
			el.src = btnImgArr[getImgId(el.src)][2].src;
		},

		getImgId = function(s)
		{
			return s.replace(/(\-hover|-active)?\.gif$/, '');
		},

		updateInfoCallback = {
			success: function(o)
			{
				var j = eval(o.responseText), listEl = $D.get('signups-list'), listArr, i, buffer ='';

				if(j)
				{
					if( $D.get('signups-count-1') ) $D.get('signups-count-1').innerHTML = j[2];
					if( $D.get('signups-count-2') ) $D.get('signups-count-2').innerHTML = j[1];

					if( listEl && j[3] && window.signupsCount < j[0] && window.signupsCount > 0 )
					{
						listArr = j[3];
						for(i=0; i<listArr.length; i++)
						{
							buffer += listArr[i][1];
							window.signupsCount++;
							if( window.signupsCount == j[0] ) break;
						}
						listEl.innerHTML = buffer + listEl.innerHTML;
					}
				}
				tId = setTimeout(updateInfo, updateCycleTime);
			}
		},

		updateInfo = function()
		{
			var pos = window.signupsCount;
			$C.asyncRequest('GET', '/service/update-' + window.lang + '.json', updateInfoCallback);
		};

	$E.onDOMReady(function()
	{

		$D.getElementsByClassName('button', 'img', null, function(el)
		{
			var imgId;

			$E.on(el, 'mouseover', buttonMouseover);
			$E.on(el, 'mouseout', buttonMouseout);
			$E.on(el, 'mousedown', buttonMousedown);

			imgId = getImgId(el.src);
			btnImgArr[imgId] = [new Image(), new Image(), new Image()];
			btnImgArr[imgId][0].src = el.src;
			btnImgArr[imgId][1].src = imgId + '-hover.gif';
			btnImgArr[imgId][2].src = imgId + '-active.gif';
		});

		if( $D.get('signups-count-1') || $D.get('signups-count-2') || $D.get('signups-list') ) tId = setTimeout(updateInfo, updateCycleTime);;

		$E.on('icode-button', 'click', function(e)
		{
			if( !icodePanel )
			{
				icodePanel = new YAHOO.widget.Panel('icode-panel', {
					fixedcenter:true,
					draggable:false,
					zindex:400,
					modal:true,
					visible:false
				});
				icodePanel.render(document.body);
			}
			$D.setStyle('icode-panel', 'display', '');
			icodePanel.show();
		});
	});

})();
