/**
 * @author ricardo
 */
var widget = {
	request: function(url, query, callback){
		var res=document.createElement("script");
		res.charset="utf-8";
		
		//alert(this._prepareUrl(url, query, callback));
		
		res.src=this._prepareUrl(url, query, callback);
		
		//$('#wsnNOL_palavra').attr('value',res.src);
		
		document.body.appendChild(res);
	},
	
	_prepareUrl: function(url, query, callback){
		return url+"?callback="+callback+"&"+query;
	},
		
	treate: function(what){
		return unescape(what.replace(/\+/g," "));
	},
	
	//TODO: USAR JQUERY!
	init: function (callback){
		if(typeof (window.addEventListener)!="undefined"){			
			window.addEventListener("load",callback,false);
		}else{
			var fOnLoad=window.onload;
			var fInit=callback;
			window.onload=function(){
				if(typeof fOnLoad=="function"){
					fOnLoad();
				}
				fInit();
			};
		}
	},
	
	load: function(query,acao,caller){
		this.request(host+caller+"/server.php","acao="+acao+"&"+query+"&caller="+caller,"widget.callback");
	},
	
	callback: function(data){
		//TODO: Não gosto! USAR JQUERY!
		eval(data.caller + '.callback(data)');
	},
	
	isIE: function(){
		return (navigator.userAgent.toLowerCase().indexOf("msie")>0);
	},
	
	getPosition: function (e){
		var left = 0;
		var top  = 0;
	
		while (e.offsetParent){
			left += e.offsetLeft;
			top  += e.offsetTop;
			e     = e.offsetParent;
		}
	
		left += e.offsetLeft;
		top  += e.offsetTop;
	
		return {x:left, y:top};
	},
	
	//COOKIES
	createCookie: function(name,value,minutes) {
		if (minutes) {
			var date = new Date();
			date.setTime(date.getTime()+(minutes*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	
	readCookie: function(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	
	renewCookie: function(name,minutes) {
		var value=this.readCookie(name);
		
		if (minutes) {
			var date = new Date();
			date.setTime(date.getTime()+(minutes*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},

	eraseCookie: function(name) {
		this.createCookie(name,"",-1);
	}
}