function gNotifier(data){	var nf = new Object();	nf = {	};	nf.data = data;	nf.start = function(){		if (!nf.data){			nf.load();			return;		}		if (!nf.visit.isNewContent()){			return;		}		//checar se tah na url de conteúdo		if (nf.url.isCurrent()){			nf.visit.update();			return;		}		nf.div.show();	}	nf.div = {		obj: null,		id: null,		setId: function(n){			nf.div.id = n;		},		getId: function(){			return nf.div.id;		},		setObj: function(o){			nf.div.obj = o;		},		getObj: function(){			return nf.div.obj;		},		setTotal: function(n){			window.notifierTotal = n;		},		getTotal: function(){			return window.notifierTotal ? window.notifierTotal : 0;		},		show: function(){			if (!document.body){				return;			}			nf.div.create();			nf.div.prepare();			nf.div.fill();			//		},		prepare: function(){			var o = nf.div.getObj();			//acertar a posição			o.style.right = (nf.div.getTotal()>0 ? nf.div.getTotal()*225 : 15)+'px';			//atualiza o total de janelas			nf.div.setTotal(nf.div.getTotal()+1);			//falta criar os eventos		},		fill: function(){			var s = '';			//tittle			s+='<div class="icon '+nf.data.type+'" title="'+(nf.data.type == 'scrap' ? 'Recado' : 'Mensagem privada')+'"></div>';			s+= '<div class="text">'+nf.data.user.from.name+'</div>';			s+= '<div class="close" id="notifier_close_'+nf.div.getId()+'"><a href="javascript:void(0)" title="Fecha a janela de notificação">X</a></div>';			global.div.Write('notifier_title_'+nf.div.getId(),s);			//conteúdo			s = '';			s+='<div class="line">';			s+='<div class="left">';			s+='<img src="'+nf.data.user.from.avatar.path+'" width="'+(nf.data.user.from.avatar.width/2)+'" height="'+(nf.data.user.from.avatar.height/2)+'" alt="'+nf.data.user.from.name+'" />';			s+='</div>';			s+='<div class="right">'+nf.data.content+'</div>';			s+='</div>';//line			s+='<div class="bottom">';			s+='<a href="'+nf.data.url+'"/>';			switch (nf.data.type){				case 'scrap':					s+='Meus recados';					break;				case 'pm':					s+='Minhas mensagens';					break;			}			s+='</a>';			s+='</div>';			global.div.Write('notifier_content_'+nf.div.getId(),s);			//EVENTOS			//clique no titulo			var o = document.getElementById('notifier_title_'+nf.div.getId());			if (o){				o.onclick = nf.event.click;			}			//clique no fechar			o = document.getElementById('notifier_close_'+nf.div.getId());			if (o){				o.onclick = nf.state.close;			}			//mouse afastar			o = document.getElementById('notifier_window_'+nf.div.getId());			if (o){				o.onmouseout = nf.event.mouseout;				o.onmouseover = nf.event.mouseover;			}		},		create: function(){			nf.div.setId(nf.div.getTotal());			//cria o objeto e seta sua id			var o = document.createElement("div");			o.setAttribute('id','notifier_window_'+nf.div.getTotal());			o.className = 'notifier';			document.body.appendChild(o);			nf.div.setObj(o);			//cria titulo			var o1 = document.createElement('div');			o1.setAttribute('id','notifier_title_'+nf.div.getTotal());			o1.className = 'title';			o.appendChild(o1);			//cria conteúdo			var o2 = document.createElement('div');			o2.setAttribute('id','notifier_content_'+nf.div.getTotal());			o2.className = 'content minimized';			o.appendChild(o2);			//			nf.div.setId(nf.div.getTotal());		}	}	//estado da janela e métodos	nf.state = {		close: function(){			var o = nf.div.getObj();			if (!o){				return;			}			o.style.display = "none";			//			nf.visit.update();		},		isMinimized: function(){			var o = document.getElementById('notifier_content_'+nf.div.getId());			if (!o){				return false;			}			return o.className == 'content minimized';		},		minimize: function(){			var o = document.getElementById('notifier_content_'+nf.div.getId());			if (!o){				return;			}			o.className = 'content minimized';		},		restore: function(){			var o = document.getElementById('notifier_content_'+nf.div.getId());			if (!o){				return;			}			o.className = 'content';		},		alternate: function(){			if (nf.state.isMinimized()){				nf.state.restore();				return;			}			nf.state.minimize();		}	}	//eventos	nf.event = {		timerId:null,		setTimerId: function (o){			nf.event.timerId = o;		},		getTimerId: function(){			return nf.event.timerId;		},		click: function(){			nf.state.alternate();		},		mouseout: function(){			var id = self.setTimeout('document.getElementById("notifier_content_'+nf.div.getId()+'").className="content minimized"',5000);			nf.event.setTimerId(id);		},		mouseover: function(){			try{				clearTimeout(nf.event.getTimerId());			}catch(e){}		}	}	//checarlanding	nf.url = {		isCurrent: function(){			var h = ''+window.location;			if (h.indexOf('#')>0){				h = h.substring(0,h.indexOf('#'));			}			//remover barra do final			var l = h.length - 1;			if(h.lastIndexOf('/') === l) {			    h = h.substring(0, l);			}			return h == nf.data.url;		}	}	//cookie	nf.cookie = {		read: function(){			var s = global.cookie.Read(nf.data.type+'_last_visit');			return s>1 ? s : 0;		},		write: function(){			global.cookie.Write(nf.data.type+'_last_visit',nf.data.time,24*30,"/",".gamevicio.com.br",false);		}	}	//visita	nf.visit = {		getTime: function(){			var cookie = nf.cookie.read();			var js = nf.data.timeLastVisit;			js = js>1 ? js : 0;			if (cookie>js){				return cookie;			}			return js;		},		isNewContent: function(){			return nf.data.time>nf.visit.getTime();		},		update: function(){			//atualiza cookie			nf.cookie.write();			//dispara atualizacao			var d = document.createElement("div");			d.setAttribute('display','none');			if (document.body){				document.body.appendChild(d);			}			d.innerHTML = '<img src="http://s9.gamevicio.com.br/cv/notifier/view/'+nf.data.type+'/'+nf.data.user.to.id+'/'+Math.random()+'"/>';		}	}	//invocar carregamento de dados	nf.load = function(){		if (!user.isLogged()){			return;		}		var d = document.createElement('script');		d.setAttribute('language','javascript');		d.setAttribute('type','text/javascript');		d.setAttribute('src','http://s9.gamevicio.com.br/cv/notifier/load/'+user.getId()+'/'+Math.random());		var head = document.getElementsByTagName('head')[0];		head.appendChild(d);	}	nf.start();}/*data.id*//*nf = new Object();nf = {	id: global.cookie.Read("bbuserid"),	folder: global.cookie.Read("bbuserfold"),	pm:1,	scrap:1,	start: function(){		if (!nf.isLogged()){			return false;		}		var u = window.location.href;		if (u.indexOf('mypc')>-1){			return false;		}		if (document.getElementsByTagName('div').length>0){			nf.div.create();			if (nf.scrap>0){				nf.request.scrap.start();			}			if (nf.pm>0){				nf.request.pm.start();			}		}else{			self.setTimeout('nf.start()',2000);		}	},	getId: function(){		return nf.id;	},	getFolder: function(){		var path = window.location.pathname;		if (path.indexOf('/user/')!=-1){			var p = path.split('/');			var folder = p[4];			var e = folder.split('-');			//está na própria página			if (e[0]==user.getId()){				//pasta desatualizada				if (nf.folder.indexOf(folder)==-1){					global.cookie.Write("bbuserfold",folder,24*30,"/",".gamevicio.com.br",false);					user.folder = folder;				}			}		}		if (nf.folder.length<1){			nf.folder = nf.getId();		}		return nf.folder;	},	isLogged: function(){		var i = global.cookie.Read("bbuserid");		return (i>0);	},	div: {		mode: null,		inuse: 0,		wind: new Array(),		setMode: function(s){			nf.div.mode = s;		},		getMode: function(){			return nf.div.mode;		},		setInuse: function(n){			nf.div.inuse=n;		},		getInuse: function(){			return nf.div.inuse;		},		iebody: function (){    		return (document.compatMode != "BackCompat"? document.documentElement : document.body);		},		close: function(id){			global.div.Shrink('notifier_'+id,2);			var mode = nf.div.wind[id];			var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode='+mode+'_update_last_visit');			ajax.send();		},		create: function(){			for(var n=1;n!=3;n++){				var d = document.createElement("div");				d.setAttribute('id','notifier_'+n);				if (document.body){					document.body.appendChild(d);				}			}		},		prepare: function(mode){			nf.div.setMode(mode);			nf.div.setInuse(parseInt(nf.div.getInuse())+1);			nf.div.wind[nf.div.getInuse()] = mode;			var obj = document.getElementById('notifier_'+nf.div.getInuse());			var n = nf.div.getInuse();			//default opt			with (obj.style){				color = '#000000';				width = '200px';				position = 'fixed';				background = '#FFFFFF';				border = '1px solid #0000ff';				//borderColor = '#0000ff';			}			obj.className = 'notifier';			obj.onmouseover = function(){nf.div.event.mouseover(n)}			obj.onmouseout = function(){nf.div.event.mouseout(n)}			var s = '<table width="200"><tr onselectstart="return false;" onclick="nf.div.event.click('+n+')" style="cursor:pointer"><td width="20"><div id="not_ico_'+nf.div.getInuse()+'"></div></td><td width="160"><div id="not_title_'+nf.div.getInuse()+'"></div></td><td width="20" align="center"><a href="javascript:void(0)" onclick="javascript:nf.div.close('+nf.div.getInuse()+')">X</a></td></tr></table>';			s+='<div id="not_content_'+nf.div.getInuse()+'" style="display:none"></div>';			global.div.Write('notifier_'+nf.div.getInuse(),s);			nf.div.scroll(obj);			nf.div.fill(nf.div.getInuse());			//window.onscroll = nf.div.scroll;			//global.event.addScroll(nf.div.scroll);		},		scroll: function(){			for(var n=1;n!=3;n++){				if (n > nf.div.getInuse()){					break;				}				var obj = document.getElementById('notifier_'+n);				if (obj){					with (obj.style){						right = (n==1 ? 15 : 225) +'px';						//bottom = (0 - nf.div.iebody().scrollTop) + 'px';						bottom = '0px';					}				}			}		},		shrink: function(id){			global.div.Shrink('not_content_'+id,0);		},		isMinimized: function(id){			return (document.getElementById('not_content_'+id).style.display=="none");		},		fill: function(id){			var title = ico = img_p = img_w = img_h = content = url ='';			switch(nf.div.getMode()){				case "pm":					var ajax = nf.request.pm.content.ajax.getQueryXML();					title = ajax.getValue('item_details->user->from->name');					content = ajax.getValue('item_details->content');					img_p = ajax.getValue('item_details->user->from->avatar->path');					img_w = ajax.getValue('item_details->user->from->avatar->width');					img_h = ajax.getValue('item_details->user->from->avatar->height');					url = '<a href="http://redirect.gamevicio.com.br/user?'+nf.getId()+'&pm">Minhas Mensagens</a>';					break;				case "scrap":					var ajax = nf.request.scrap.content.ajax.getQueryXML();					title = ajax.getValue('item_details->user->from->name');					content = ajax.getValue('item_details->content');					img_p = ajax.getValue('item_details->user->from->avatar->path');					img_w = ajax.getValue('item_details->user->from->avatar->width');					img_h = ajax.getValue('item_details->user->from->avatar->height');					url = '<a href="http://redirect.gamevicio.com.br/user?'+nf.getId()+'&scrap">Meus recados</a>';			}			ico = '<img height="15" src="http://club.gamevicio.com.br/files/images/icons/'+nf.div.getMode()+'.gif"/>';			if (content.length>250){				content = content.substring(0,250) + '...';			}			content = '<img src="'+img_p+'" align="left" width="'+(img_w/2)+'" height="'+(img_h/2)+'" vspace="3" hspace="3"/>' + content;			content+='<br /><br /><b>'+url+'</b>';			global.div.Write('not_ico_'+id,ico);			global.div.Write('not_title_'+id,title);			global.div.Write('not_content_'+id,content);		},		event: {			idTimer: new Array(),			click: function(id){				nf.div.shrink(id);			},			mouseover: function(id){				try{					clearTimeout(nf.div.event.idTimer[id]);				}catch(e){}			},			mouseout: function(id){				if (!nf.div.isMinimized(id)){					nf.div.event.idTimer[id] = self.setTimeout('nf.div.shrink('+id+')',5000);				}			}		}	},	request: {		pm: {			ajax: null,			lastTime: 0,			setLastTime: function(n){				nf.request.pm.lastTime = n;			},			getLastTime: function(){				return nf.request.pm.lastTime;			},			start: function(){				nf.request.pm.check();			},			check: function(){				var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode=pm_last_time');				ajax.addEvent(4,'nf.request.pm.parseCheck()');				nf.request.pm.ajax = ajax;				ajax.send();			},			parseCheck: function(){				var ajax = nf.request.pm.ajax;				if (ajax.getResponseText()=='no'){					return;				}				if (ajax.isResponseXML()){					nf.request.pm.setLastTime(ajax.getQueryXML().getValue("item_details->time"));					nf.request.pm.lastVisit.start();				}			},			has: function(){				return (nf.request.pm.lastVisit.getValue()<nf.request.pm.getLastTime());			},			loadContent: function(){				if (nf.request.pm.has()){					nf.request.pm.content.load();				}			},			lastVisit: {				value: 0,				setValue: function(n){					nf.request.pm.lastVisit.value = n;				},				getValue: function(){					return nf.request.pm.lastVisit.value;				},				start: function(){					nf.request.pm.lastVisit.cookie.read();				},				cookie: {					read: function(){						var s = global.cookie.Read("pm_last_visit");						var c = (s>1 ? s : 0);						nf.request.pm.lastVisit.setValue(c);						//se o cookie estiver vazio, puxar do db						if (s>1){							nf.request.pm.loadContent();						}else{							nf.request.pm.lastVisit.external.load();						}					},					write: function(){						global.cookie.Write("pm_last_visit",nf.request.pm.lastVisit.getValue(),24*30,"/",".gamevicio.com.br",false);					}				},				external: {					ajax: null,					load: function(){						var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode=pm_last_visit');						ajax.addEvent(4,'nf.request.pm.lastVisit.external.parseLoad()');						nf.request.pm.lastVisit.external.ajax = ajax;						ajax.send();					},					parseLoad: function(){						var ajax = nf.request.pm.lastVisit.external.ajax;						if (ajax.isResponseXML()){							nf.request.pm.lastVisit.setValue(ajax.getQueryXML().getValue("item_details->time"));							nf.request.pm.lastVisit.cookie.write();						}						nf.request.pm.loadContent();					}				}			},			content:{				ajax: null,				load: function(){					try{						var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode=pm_last_details');						ajax.addEvent(4,'nf.request.pm.content.parseLoad()');						nf.request.pm.content.ajax = ajax;						ajax.send();					}catch(e){}				},				parseLoad: function(){					var ajax = nf.request.pm.content.ajax;					if (!ajax.isResponseXML()){						return false;					}					nf.div.prepare('pm');				}			}		},		scrap: {			ajax: null,			lastTime: 0,			setLastTime: function(n){				nf.request.scrap.lastTime = n;			},			getLastTime: function(){				return nf.request.scrap.lastTime;			},			start: function(){				nf.request.scrap.check();			},			check: function(){				var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode=scrap_last_time');				ajax.addEvent(4,'nf.request.scrap.parseCheck()');				nf.request.scrap.ajax = ajax;				ajax.send();			},			parseCheck: function(){				var ajax = nf.request.scrap.ajax;				if (ajax.getResponseText()=='no'){					return;				}				if (ajax.isResponseXML()){					nf.request.scrap.setLastTime(ajax.getQueryXML().getValue("item_details->time"));					nf.request.scrap.lastVisit.start();				}			},			has: function(){				return (nf.request.scrap.lastVisit.getValue()<nf.request.scrap.getLastTime());			},			loadContent: function(){				if (nf.request.scrap.has()){					nf.request.scrap.content.load();				}			},			isMine: function(){				var ajax = nf.request.scrap.content.ajax.getQueryXML();				return (ajax.getValue("item_details->user->from->id")==ajax.getValue("item_details->user->to"));			},			lastVisit: {				value: 0,				setValue: function(n){					nf.request.scrap.lastVisit.value = n;				},				getValue: function(){					return nf.request.scrap.lastVisit.value;				},				start: function(){					nf.request.scrap.lastVisit.cookie.read();				},				cookie: {					read: function(){						var s = global.cookie.Read("scrap_last_visit");						var c = (s>1 ? s : 0);						nf.request.scrap.lastVisit.setValue(c);						//se o cookie estiver vazio, puxar do db						if (s>1){							nf.request.scrap.loadContent();						}else{							nf.request.scrap.lastVisit.external.load();						}					},					write: function(){						global.cookie.Write("scrap_last_visit",nf.request.scrap.lastVisit.getValue(),24*30,"/",".gamevicio.com.br",false);					}				},				external: {					ajax: null,					load: function(){						var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode=scrap_last_visit');						ajax.addEvent(4,'nf.request.scrap.lastVisit.external.parseLoad()');						nf.request.scrap.lastVisit.external.ajax = ajax;						ajax.send();					},					parseLoad: function(){						var ajax = nf.request.scrap.lastVisit.external.ajax;						if (ajax.isResponseXML()){							nf.request.scrap.lastVisit.setValue(ajax.getQueryXML().getValue("time"));							nf.request.scrap.lastVisit.cookie.write();						}						nf.request.scrap.loadContent();					}				}			},			content:{				ajax: null,				load: function(){					try{						var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/notifier.php?mode=scrap_last_details');						ajax.addEvent(4,'nf.request.scrap.content.parseLoad()');						nf.request.scrap.content.ajax = ajax;						ajax.send();					}catch(e){}				},				parseLoad: function(){					var ajax = nf.request.scrap.content.ajax;					if (!ajax.isResponseXML()){						return false;					}					if (nf.request.scrap.isMine()){						return false;					}					nf.div.prepare('scrap');				}			}		}	}}*/function notifierInvoke(){	/*if (user.getId()==1){		var o = new Object();		o = {			id: 123,			type: 'pm',			content:'Um, dois, três, testando...',			user:{				from:{					id:771381,					name:'Arys',					avatar:{						width:80,						height:80,						path:'http://s3.gamevicio.com.br/images/user/avatar/771/771381'					}				}			},			url:'http://redirect.gamevicio.com.br/user/?1'		}		new gNotifier(o);		new gNotifier(o);	}*/	new gNotifier();}global.event.addLoad(notifierInvoke);
