/*
Top Banner Widget Class
@elemId  :	Drawing Target Element ID
*/
var widgetBannerTop = function (elemId) {
	
	var baseElem = document.getElementById(elemId);
	var moveElem = document.createElement('div');
	var w = 570;
	var h = 200;
	var pat = 1;
	var isMSIE = /*@cc_on!@*/false; 
	var timerID = 0;
	var ret = '';
	
	// Initialize Class
	this.init = function() {
		baseElem.innerHTML = '';
		
		baseElem.style.cssText = 'width:'+w+'px;height:'+h+'px;min-height:'+h+'px;margin-bottom:10px;';
		baseElem.style.backgroundImage = '';
		
		moveElem.style.cssText = 'width:'+w+'px;height:'+h+'px;min-height:'+h+'px;margin:0;padding:0;';
		moveElem.url = '';
		moveElem.target = '';
		
		if (moveElem.addEventListener) {
			moveElem.addEventListener('click', jumpUrl, false);
		}else{
			moveElem.attachEvent('onclick', jumpUrl, false);
		}
		baseElem.appendChild(moveElem);
		
		getBanner();
	};
	
	function jumpUrl() {
		if (moveElem.url) {
			window.open(moveElem.url, moveElem.target);
		}
	}
	
	// Get Banner Data
	function getBanner() {
		if (timerID) {
			clearInterval(timerID);
		}

		new Ajax.Request(location.protocol+'//'+location.host+'/get_data.php', {
			method:		'post',
			parameters:	'_action=banner&area=TOP&limit=1',
			onSuccess:	recieveResult
		});
	};
	
	// Recieve Request Data Handler
	function recieveResult(httpObj) {
		
		ret = httpObj.responseText;

		createDoc();

	}
	
	// Create Document DOM from Result Data (JSON)
	function createDoc() {
		
		var dat = eval("(" + ret + ")");
		ret = '';
		
		if (dat.count) {
			var val = dat.data[0];
			
			if (baseElem.style.backgroundImage == 'url('+val.img+')') {
				getBanner();
				return;
			}
			
			pat = Math.floor(Math.random() * 4) + 1;

			baseElem.posx = 0;
			baseElem.posy = 0;
			
			switch (pat) {	
				case 1:
					moveElem.posx = w;
					moveElem.posy = 0;
					break;
				case 2:
					moveElem.posx = -1 * w;
					moveElem.posy = 0;
					break;
				case 3:
					moveElem.posx = 0;
					moveElem.posy = h;
					break;
				default:
					moveElem.posx = 0;
					moveElem.posy = -1 * h;
					break;
			}
			
			moveElem.style.backgroundPosition = moveElem.posx+'px '+moveElem.posy+'px';
			moveElem.style.backgroundRepeat = 'no-repeat';
			
			var img = new Image();
			img.src = val.img;
			
			moveElem.style.backgroundImage = 'url('+val.img+')';
			
			//baseElem.style.height = h+'px';
			//baseElem.style.marginBottom = '10px';
			
			if (val.url) {
				moveElem.style.cursor = 'pointer';
			}else{
				moveElem.style.cursor = 'default';
			}
			moveElem.url = decodeURIComponent(val.url);
			moveElem.target = val.target;
			
			timerID = setInterval(move, 0.01 * 1000);
		}
		
	}
	
	function move() {
		
		var sw = false;
		
		switch (pat) {	
			case 1:
				baseElem.posx -= 15;
				moveElem.posx -= 15;
				if (moveElem.posx < 0) { sw = true; }
				break;
			case 2:
				baseElem.posx += 15;
				moveElem.posx += 15;
				if (moveElem.posx > 0) { sw = true; }
				break;
			case 3:
				baseElem.posy -= 10;
				moveElem.posy -= 10;
				if (moveElem.posy < 0) { sw = true; }
				break;
			default:
				baseElem.posy += 10;
				moveElem.posy += 10;
				if (moveElem.posy > 0) { sw = true; }
				break;
		}
		
		if (sw) {
			
			baseElem.style.backgroundPosition = '0px 0px';
			baseElem.style.backgroundRepeat = 'no-repeat';
			baseElem.style.backgroundImage = moveElem.style.backgroundImage;
			
			moveElem.style.backgroundPosition = w+'px 0px';
			moveElem.style.backgroundImage = '';
			
			clearInterval(timerID);
			timerID = setInterval(getBanner, 30 * 1000);
		}else{
		
			if (baseElem.style.backgroundImage) {
				baseElem.style.backgroundPosition = baseElem.posx+'px '+baseElem.posy+'px';
			}
			moveElem.style.backgroundPosition = moveElem.posx+'px '+moveElem.posy+'px';
			
		}
		
		
	}
	
};
