global.goToTop = function () {
	window.scroll(0,0);
}

var user = new Object();
user = {
	id: global.cookie.Read("bbuserid"),
	folder: global.cookie.Read("bbuserfold"),
	name: global.utf8.decode(decodeURIComponent(global.cookie.Read("bbusername"))),
	getId: function(){
		return user.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 (user.folder.indexOf(folder)==-1){
					global.cookie.Write("bbuserfold",folder,24*30,"/",".gamevicio.com",false);
					user.folder = folder;
				}
			}
		}

		if (user.folder.length<1){
			user.folder = user.getId();
		}

		return user.folder;
	},
	getName: function(){
		return user.name;
	},
	isLogged: function(){
		var s = global.cookie.Read('bbpassword');
		return (user.getId()>0 && s.length>0);
	},
	showTopMenu: function(){
		var s = user.isLogged() ? 'Logado como <b>'+user.getName()+'</b>  <a href="javascript:void(0)" onclick="user.logoff.Do()">Sair</a>' : 'Não logado <a href="http://club.gamevicio.com">Entrar</a>';
		global.div.Write('div_user_top_menu',s);
	},
	updateUrlMyClub: function(id){
		if (document.getElementById(id)){
			var u = user.isLogged() ? 'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/index.html' : 'http://club.gamevicio.com';
		}
		document.getElementById(id).href = u;
	},
	updateUrlPM: function(id,to){
		if (document.getElementById(id)){
			var u = user.isLogged() ? 'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/pm/index.html?mode=new&to='+to : 'http://club.gamevicio.com';
		}
		document.getElementById(id).href = u;
	},
	updateUrlComm: function(id){
		if (document.getElementById(id)){
			var u = user.isLogged() ? 'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/mycomm/index.html' : 'http://club.gamevicio.com';
			document.getElementById(id).href = u;
		}
	},
	updateUrlTop: function(){
		var ul = new Array();
		if (user.isLogged()){
			u1 = new Array('http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/index.html','http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/scrap/index.html',
				'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/pm/index.html','http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/friend/index.html',
				'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/mycomm/index.html','http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/album/index.html',
				'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/album-video/index.html', 'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/game/index.html','http://club.gamevicio.com/index2.php?pag=myconfig&userid='+user.getId()
				)
		}else{
			u1 = new Array('','','','','','','','','');
		}
		for(var n=0;n!=u1.length;n++){
			//var s = ;
			document.getElementById('a_top_'+n).href = user.isLogged() ? u1[n] : 'http://club.gamevicio.com';
		}
	},
	goto: function (s,s2){
		if (!user.isLogged()){
			window.location = 'http://club.gamevicio.com/index2.php?';
			return false;
		}
		var u = '';
		var l = 'http://club.gamevicio.com/index2.php?';
		switch (s){
			case "start":
				u = 'pag=profileuser&userid='+user.getId();
				break;
			case "scrap":
				u = 'pag=scrap&userid='+user.getId();
				break;
			case "pm":
				u = 'pag=pm&userid='+user.getId();
				break;
			case "friend":
				u = 'pag=friendlist&userid='+user.getId();
				break;
			case "album":
				u = 'pag=albumlist&userid='+user.getId();
				break;
			case "mypc":
				u = 'pag=mypc&userid='+user.getId();
				break;
			case "gamertag":
				u = 'pag=gamertag&userid='+user.getId();
				break;
			case "sendmpto":
				u = 'pag=pm&userid='+user.getId()+'&mode=new&to='+s2;
				break;
			case "myconfig":
				u = 'pag=myconfig&userid='+user.getId();
				break;
		}
		window.location = l+u;
	},
	logoff : {
		ajax: null,
		Do: function(){
			var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=user_logoff');
			ajax.addEvent(4,'user.logoff.parseDo()');
			user.logoff.ajax = ajax;
			ajax.send();
		},
		parseDo: function(){
			//apenas redireciona
			window.location = 'http://club.gamevicio.com';
		}
	},
	login : {
		ajax: null,
		Do: function(){
			var f = document.forms['form_login'];
			if (f.name.value.length<1){
				user.login.showStatus('Erro: Campo <b>Usuário</b> não preenchido');
				return false;
			}
			if (f.pass.value.length<1){
				user.login.showStatus('Erro: Campo <b>Senha</b> não preenchido');
				return false;
			}
			user.login.showStatus('Efetuando login...');
			var ajax = new gAjax('post',global.RelativeRoot() + 'misc/ajax/main.php?mode=user_login');
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			ajax.setVars(global.form.CreateQuery('form_login'));
			ajax.addEvent(4,'user.login.parseDo()');
			user.login.ajax = ajax;
			ajax.send();
		},
		parseDo: function(){
			var ajax = user.login.ajax;
			if (!ajax.isResponseXML()){
				user.login.showStatus('Erro desconhecido');
				return false;
			}
			ajax = ajax.getQueryXML();
			if (ajax.getValue('attributes()->status')=="ok"){
				user.login.showStatus('Login efetuado');
				//window.location = 'http://club.gamevicio.com/i/userindex2.php';
				window.location = 'http://redirect.gamevicio.com/user?'+global.cookie.Read("bbuserid");
				return true;
			}else{
				user.login.showStatus('Erro: '+ajax.getValue('error->description'));
				return false;
			}
		},
		showStatus: function(s){
			global.div.Write('div_status',s);
		},
		enableEvent: function(){
			var f = document.forms['form_login'];
			f.onsubmit = function(){
				user.login.Do();
				return false;
			}
		}
	}
}

shouter = {
	currentText:'',
	id:null,
	start: function(currentText){
		if (userTo.isMe()){
			with (shouter){
				form.draw();
				changeLabel();
				setCurrentText(currentText);
			}
		}
	},
	changeLabel: function(){
		global.div.Write('div_label_pt','mais recente:');
	},
	setCurrentText: function(s){
		shouter.currentText = s;
	},
	getCurrentText: function(){
		return shouter.currentText;
	},
	setId: function(n){
		shouter.id = n;
	},
	getId: function(){
		return shouter.id;
	},
	showNewText: function(){
		var s = shouter.getCurrentText();
		var divId = 'div_last_pt';
		if (s.length<1){
			global.div.Shrink(divId,2);
			return;
		}
		global.div.Shrink(divId,1);
		global.div.Write('div_text_pt',s);
	},
	form: {
		obj: null,
		defaultText: 'Conte algo para seus amigos!',
		maxChar:140,//-1 to unlimit
		setObj: function(s){
			var s1 = document.forms[s] ? document.forms[s] : s;
			if (s1){
				shouter.form.obj = s1;
			}
		},
		getObj: function(){
			return shouter.form.obj;
		},
		draw: function(){
			var s = '';
			s+='<form id="form_pt">';
			s+='<input type="text" name="content" class="input_text off" value="'+shouter.form.defaultText+'" '+(shouter.form.maxChar>-1 ? 'maxlength="'+shouter.form.maxChar+'"': '')+' />';
			s+='&nbsp;&nbsp;&nbsp;';
			s+='<input type="submit" value="postar" />';
			s+='</form>';
			global.div.Write('div_form_shout',s);
			shouter.form.setObj('form_pt');
			shouter.form.enableEvent();
		},
		enableEvent: function(){
			var f = shouter.form.getObj();
			f.onsubmit = function(){
				shouter.update.Do();
				return false;
			}
			f.content.value = shouter.form.defaultText;

			f.content.onfocus = function(){
				if (f.content.value==shouter.form.defaultText){
					f.content.value = '';
				}
				f.content.className = 'input_text on';
			}

			f.content.onblur = function(){
				if (f.content.value.length<1){
					f.content.value = shouter.form.defaultText;
					f.content.className = 'input_text off';
				}
				if (f.content.value == shouter.form.defaultText){
					f.content.className = 'input_text off';
				}
			}
		}
	},
	update: {
		ajax: null,
		Do: function(){
			var text = shouter.form.getObj().content.value;

			if (text==shouter.form.defaultText){
				text = '';
			}

			shouter.setCurrentText(text);

			var ajax = gAjax('post',global.RelativeRoot() + 'misc/ajax/main.php?mode=user_change_personal_text');
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			ajax.setVars('content='+encodeURIComponent(text));
			ajax.addEvent(1,'gLoader.show("Postando shout","progress")');
			ajax.addEvent(4,'shouter.update.parseDo()');
			shouter.update.ajax = ajax;
			ajax.send();
		},
		parseDo: function(){
			var ajax = shouter.update.ajax;

			if (!ajax.isResponseXML()){
				gLoader.show('Erro: '+ajax.getResponseText(),'info',7);
				return;
			}
			ajax = ajax.getQueryXML();
			if (ajax.getValue('attributes()->status')=='fail'){
				gLoader.show('Erro: '+ajax.getValue('error->description'),'info',7);
				return;
			}
			gLoader.show('Shout postado','info',7);
			//atualiza visual
			shouter.showNewText();
			//limpa form
			with(shouter.form.getObj()){
				reset();
				content.blur();
			}

		}
	},
	comment: {
		start: function(id){
			shouter.setId(id);
			with (shouter.comment){
				clear();
				show();
			}

		},
		show: function(){
			var s = '';
			s+='<div id="div_comment_form_3_'+shouter.getId()+'" class="form"></div>';
			s+='<div id="div_comment_new_3_'+shouter.getId()+'"></div>';
			s+='<div id="div_comment_list_3_'+shouter.getId()+'"></div>';
			s+='<div id="div_comment_more_3_'+shouter.getId()+'" class="comment_more"></div>';

			global.div.Write('div_shout_comment_'+shouter.getId(),s);
			//chamar comentários
			comment.start(3,shouter.getId());
			comment.form.draw();
			comment.list.Do();
		},
		//verifica se nao consta nas atualizações, se sim, apaga por ter mesmo nome
		clear: function(){
			var a = new Array(
				'div_comment_form_3_'+shouter.getId(),
				'div_comment_new_3_'+shouter.getId(),
				'div_comment_list_3_'+shouter.getId(),
				'div_comment_more_3_'+shouter.getId()
			);
			var d;
			for(var n=0;n!=a.length;n++){
				d = document.getElementById(a[n]);
				if (d){
					d.parentNode.removeChild(d);
				}
			}
		}
	}
}

shouter.remove = {
	ajax: null,
	Do: function(id){
		if (!confirm("Quer mesmo remover este shout da sua lista?")){
			return;
		}
		shouter.setId(id);
		var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=shouter_remove&id='+shouter.getId());
		ajax.addEvent(1,'gLoader.show("Removendo shout da lista","progress")');
		ajax.addEvent(4,'shouter.remove.parseDo()');
		shouter.remove.ajax = ajax;
		ajax.send();
	},
	parseDo: function(){
		var ajax = shouter.remove.ajax;
		if (!ajax.isResponseXML()){
			gLoader.show('Erro: '+ajax.getResponseText(),'info',7);
			return;
		}
		ajax = ajax.getQueryXML();
		if (ajax.getValue('attributes()->status')=='fail'){
			gLoader.show('Error: '+ajax.getValue('error->description'),'info',7);
			return;
		}
		//oculta a linha
		global.div.Shrink('shouter_line_'+shouter.getId(),2);
		gLoader.show('Shout removido com sucesso','info',7);
	}
}

shouter.more = {
	ajax: null,
	page:1,
	hideLink: false,
	setPage: function(n){
		shouter.more.page = n;
	},
	getPage: function(){
		return shouter.more.page;
	},
	setHideLink: function(b){
		shouter.more.hideLink = b;
	},
	isHideLink: function(){
		return shouter.more.hideLink;
	},
	Do: function(){
		shouter.more.setPage(shouter.more.getPage()+1);
		var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=shouter_more&userid='+userTo.getId()+'&page='+shouter.more.getPage());
		ajax.addEvent(1,'gLoader.show("Listando mais shouts","progress")');
		ajax.addEvent(4,'shouter.more.parseDo()');
		shouter.more.ajax = ajax;
		ajax.send();
	},
	parseDo: function(){
		gLoader.close();
		var ajax = shouter.more.ajax;
		var s = ajax.getResponseText();
		if (s.length<10){
			return;
		}
		global.div.WriteAdd('div_shouter',s);
		global.evalScripts(s);
		if (shouter.more.isHideLink()){
			global.div.Write('shouter_more_link','')
		}
	}
}



//
userTo = new Object();
userTo = {
	id: null,
	name: null,
	setId: function(n){
		userTo.id = n;
	},
	getId: function(){
		return userTo.id;
	},
	setName: function(s){
		userTo.name = s;
	},
	getName: function(){
		return userTo.name;
	},
	isMe: function(){
		return user.getId()==userTo.getId();
	},
	online: {
		ajax: null,
		check: function(){
			if (keepAlive.DISABLED){
				userTo.online.systemDisabled();
				return;
			}
			var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=user_is_online&userid='+userTo.getId());
			ajax.addEvent(4,'userTo.online.parseCheck()');
			userTo.online.ajax = ajax;
			ajax.send();
		},
		systemDisabled: function(){
			global.div.Write('div_user_status','Sistema de status desativado');
		},
		parseCheck: function(){
			var ajax = userTo.online.ajax;
			if (!ajax.isResponseXML()){
				return false;
			}
			ajax = ajax.getQueryXML();
			if (ajax.getValue("is_online")=="true"){
				global.div.Write('div_user_status','Status: <font color="green">Online</font>');
			}else{
				if (ajax.getValue("last_seen_rfc->attributes()->used")=="true"){
					global.div.WriteAdd('div_user_status',', Visto pela última vez: '+(new gDate(ajax.getValue("last_seen_rfc")).getText("shortRight")));
				}
			}
		}
	},
	//caixa de interação
	box: {
		start: function(){
			if (userTo.isMe()){
				return;
			}

			if (!document.getElementById('div_user_interation')){
				if (!document.getElementById('div_user_in')){
					return;
				}
			}
			userTo.box.friend.Do();
			userTo.box.ignore.Do();
		},
		//checar se já são amigos
		friend:{
			ajax:null,
			Do: function(){
				var ajax = new gAjax('get', global.RelativeRoot() + 'misc/ajax/main.php?mode=invitation_are_friend&useridfrom='+user.getId()+'&useridto='+userTo.getId());
				ajax.addEvent(4,'userTo.box.friend.parseDo()');
				userTo.box.friend.ajax = ajax;
				ajax.send();
			},
			parseDo: function(){
				var ajax = userTo.box.friend.ajax;
				if (!ajax.isResponseXML()){
					return;
				}
				ajax = ajax.getQueryXML();
				if (ajax.getValue('attributes()->status')=='ok'){
					global.div.Write('div_user_interation_1','&nbsp;');
				}else{
					global.div.Write('div_user_interation_2','&nbsp;');
				}
			}
		},
		//checar se são ignorados
		ignore:{
			ajax:null,
			Do: function(){
				var ajax = new gAjax('get', global.RelativeRoot() + 'misc/ajax/main.php?mode=friend_are_ignore&useridfrom='+user.getId()+'&useridto='+userTo.getId());
				ajax.addEvent(4,'userTo.box.ignore.parseDo()');
				userTo.box.ignore.ajax = ajax;
				ajax.send();
			},
			parseDo: function(){
				var ajax = userTo.box.ignore.ajax;
				if (!ajax.isResponseXML()){
					return;
				}
				ajax = ajax.getQueryXML();
				if (ajax.getValue('attributes()->status')=='ok'){
					global.div.Write('div_user_interation_3','&nbsp;');
				}else{
					global.div.Write('div_user_interation_4','&nbsp;');
				}
			}
		}
	},
	twitter: {
		screenName:null,
		ajax:null,
		setScreenName: function(s){
			userTo.screenName = s;
		},
		getScreenName: function(){
			return userTo.screenName;
		},
		start: function(screenName){
			userTo.twitter.setScreenName(screenName);
			userTo.twitter.Do();
		},
		Do: function(){
			var ajax = new gAjax('get', global.RelativeRoot() + 'misc/ajax/main.php?mode=twitter_get&screen_name='+userTo.twitter.getScreenName());
			ajax.addEvent(4,'userTo.twitter.parseDo()');
			userTo.twitter.ajax = ajax;
			ajax.send();
		},
		parseDo: function(){
			var ajax = userTo.twitter.ajax;
			var s = ajax.getResponseText();
			if (s.lenght<10){
				return;
			}
			global.div.Write('div_twitter',s);
			global.evalScripts(s);
			//dispara timer para atualizar
			userTo.twitter.timer.start();
		},
		timer:{
			id:null,
			interval: 20,//minutes
			start: function(){
				userTo.twitter.timer.id = self.setTimeout('userTo.twitter.Do()',userTo.twitter.timer.interval * 60 * 1000);
			}
		}
	}
}

function loadScreen(div){
	global.div.Write(div,'<div align="center"><img src="http://images.gamevicio.com/progress.gif">&nbsp;Aguarde...</div>');
}

begin = new Object();
begin = {
	Start: function(){
		if (user.isLogged()){
			begin.Redirect();
		}
	},
	Redirect: function(){
		window.location = 'http://club.gamevicio.com/i/user/'+Math.floor(user.getId()/1000)+'/'+user.getFolder()+'/index.html';
	}
}

search = new Object();
search = {
	textD: 'Pesquisa do Club',
	form: null,
	getTextD: function(){
		return search.textD;
	},
	updateForm: function(){
		search.form = document.forms['form_global'];
	},
	event : {
		enable: function() {
			search.updateForm();
			var f = search.form;
			var e = search.getTextD();
			f.q.style.color = '#BBBBBB';
			if (f){
				f.q.value = e;
				f.q.onclick = function () {
					if (f.q.value == e) {
						f.q.value = '';
						f.q.style.color = '#000000';
					}
				}
				f.q.onblur = function () {
					if (f.q.value == '') {
						f.q.value = e;
						f.q.style.color = '#BBBBBB';
					}
				}
				f.onsubmit = function(){
					String.prototype.trim = function () {
    					return this.replace(/^\s*/, "").replace(/\s*$/, "");
					}
					var g = new String(f.q.value);
					g = g.trim();
					if (g.length<1){
						return false;
					}
				}
			}
		}
	},
	full: {
		start: function(){
			var v = global.getUrlVars();
			var s = v["q"];
			if (v["a"]){
				search.full.paginate.setArea(v["a"]);
			}
			if (v["q"]){
				if (s.length>0){
					search.full.paginate.setQ(v["q"]);
					search.full.paginate.Do(1);
				}
			}
		},
		restart: function(area){
			search.full.paginate.setArea(area);
			search.full.paginate.Do(1);
		},
		paginate: {
			ajax: null,
			page: 1,
			q: '',
			area: 'user',
			setQ: function(s){
				search.full.paginate.q = s;
			},
			getQ: function(){
				return search.full.paginate.q;
			},
			setArea: function(s){
				search.full.paginate.area = s;
			},
			getArea: function(){
				return search.full.paginate.area;
			},
			setPage: function(n){
				search.full.paginate.page = n;
			},
			getPage: function(){
				return search.full.paginate.page;
			},
			filter: function(){
				with (search.full.paginate){
					setQ(document.forms['form_search2'].q.value);
					Do(1);
				}
			},
			enableEvent: function(){
				var f = document.forms['form_search2'];
				f.onsubmit = function(){
					search.full.paginate.filter();
					return false;
				}
			},
			Do: function(page){
				var q = search.full.paginate.getQ();
				if (q.length<1){
					global.div.Write('div_search','Preencha o campo de busca');
					return false;
				}
				search.full.paginate.setPage(page);
				var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=search&area='+search.full.paginate.getArea()+'&page='+search.full.paginate.getPage()+'&q='+search.full.paginate.getQ());
				ajax.addEvent(1,'loadScreen("div_search")');
				ajax.addEvent(4,'search.full.paginate.read()');
				search.full.paginate.ajax = ajax;
				ajax.send();
			},
			read: function(){
				var s = search.full.paginate.ajax.getResponseText();
				global.div.Write('div_search',s);
				global.evalScripts(s);
			}
		}
	}
}
//funcao inútil q funciona
function gambiS(n){
	search.full.paginate.Do(n);
}

function gambiS2(area){
	search.full.restart(area);
}

var player = new Object();
player = {
	idTimerProgress:null,
	currentIndex:-1,
	lastIndex:-1,
	lastIndexHtml:'',
	muted:false,
	volume:51,//0-100
	sliderProgress:null,
	sliderVolume:null,
	obj: null,
	timerMode:1,
	randomized:false,
	autoplay:true,
	COOKIE_LAYER:true,
	start: function(){
		if (player.COOKIE_LAYER){
			player._loadCookie();
		}
		player.draw();
		if (player.isAutoplay()){
			player.playClick();
		}
	},
	_loadCookie: function(){
		var s = '';
		s = global.cookie.Read('cv_pl_autoplay');
		if (s.length>0){
			player.setAutoplay(s==1);
		}
		s = global.cookie.Read('cv_pl_volume');
		if (s.length>0){
			player.setVolume(s);
		}
		s = global.cookie.Read('cv_pl_random');
		if (s.length>0){
			player.setRandomized(s==1);
		}
		s = global.cookie.Read('cv_pl_timer');
		if (s.length>0){
			player.setTimerMode(parseInt(s));
		}
	},
	_writeCookie: function(name,value){
		if (player.COOKIE_LAYER){
			global.cookie.Write(name,value,24*24,'/','club.gamevicio.com',false);
		}
	},
	setObj: function(o){
		player.obj = o;
	},
	getObj: function(){
		return player.obj;
	},
	setRandomized: function(b){
		player.randomized = b;
		player._writeCookie('cv_pl_random',(b ? 1 : 0));
	},
	isRandomized: function(){
		return player.randomized;
	},
	setCurrentIndex: function(n){
		player.currentIndex = n;
	},
	getCurrentIndex: function(){
		return player.currentIndex;
	},
	setLastIndex: function(n){
		player.lastIndex = n;
	},
	getLastIndex: function(){
		return player.lastIndex;
	},
	setLastIndexHtml: function(s){
		player.lastIndexHtml = s;
	},
	getLastIndexHtml: function(){
		return player.lastIndexHtml;
	},
	setMuted: function(b){
		player.muted = b;
	},
	isMuted: function(){
		return player.muted;
	},
	setVolume: function(n){
		player.volume = n;
		player._writeCookie('cv_pl_volume',n);
	},
	getVolume: function(){
		return player.volume;
	},
	setTimerMode: function(n){
		player.timerMode = n;
		player._writeCookie('cv_pl_timer',n);
	},
	getTimerMode: function(){
		return player.timerMode;
	},
	setAutoplay: function(b){
		player.autoplay = b;
		player._writeCookie('cv_pl_autoplay',(b ? 1 : 0));
	},
	isAutoplay: function(){
		return player.autoplay;
	},
	draw: function(){
		var s = '';
		s+='<div class="main">';
		s+='<div id="div_player_title" class="title">&nbsp;</div>';
		s+='<div id="div_player_visual" class="visual">';
		s+='</div>';//div_player_visual
		s+='<div id="div_player_playlist" class="playlist">';
		var a = new Array();
		var t = '';
		for(var n=0;n!=player.playlist.getTotal();n++){
			var item = player.playlist.getItem(n);
			t = '<div id="div_player_playlist_item_'+n+'"><a id="div_player_playlist_item_link'+n+'" href="javascript:void(0)" onclick="player.play('+n+')">'+item[4]+'</a></div>';
			a.push(t);
		}
		s+=a.join('');
		s+='</div>';//div_player_playlist;
		s+='</div>';//main
		s+='<div class="bottom">';
		s+='<div id="div_player_progress" class="bar"></div>';
		s+='<div id="div_player_button" class="panel">';
		s+='<div class="inner">';
		s+='<div id="div_player_autoplay" class="autoplay" onclick="player.autoplayClick()" ><input type="checkbox" name="checkbox_autoplay" id="checkbox_autoplay" onclick="player.autoplayClick();" />Autoplay</div>';
		s+='<div id="div_player_random" class="random" onclick="player.randomClick()">)(</div>';
		s+='<div class="buttons">';
		s+='<div id="div_player_button_previous" class="button" onclick="player.previous()" title="faixa anterior"><a id="div_player_button_previous_link" href="javascript:void(0)">|&lt;&lt;</a></div>';
		s+='<div id="div_player_button_play" class="button play" onclick="player.playClick()" title="reproduzir"><a id="div_player_button_play_link" href="javascript:void(0)">&gt;</a></div>';
		s+='<div id="div_player_button_next" class="button" onclick="player.next()" title="faixa seguinte"><a id="div_player_button_next_link" href="javascript:void(0)">&gt;&gt;|</a></div>';
		s+='</div>';//buttons
		s+='<div id="div_player_volume" class="volume">';
		s+='<div id="div_player_volume_icon" class="icon" title="sem som" onclick="player.muteClick()"></div>';
		s+='<div id="div_player_volume_control" class="control"></div>';
		s+='</div>';//volume
		s+='<div id="div_player_timer" class="timer" onclick="player.timerClick()">0:00</div>';
		s+='</div>';//inner
		s+='</div>';//div_player_button
		s+='</div>';//bottom
		global.div.Write('div_player',s);
		//austar link
		for(var n=0;n!=player.playlist.getTotal();n++){
			player.utils.adjustTitleUrl(document.getElementById('div_player_playlist_item_link'+n));
		}
		//ajustar autoplay
		if (player.isAutoplay()){
			document.getElementById('checkbox_autoplay').checked = true;
		}
	},
	autoplayClick: function(){
		var d = document.getElementById('checkbox_autoplay');
		if (d){
			d.checked = !d.checked;
		}
		player.setAutoplay(d.checked);
		d.blur();
	},
	playClick: function(){
		var d = document.getElementById('div_player_button_play');
		var d1 = document.getElementById('div_player_button_play_link');
		if (d){
			if (d.title=='pausar'){
				player.getObj().pause();
				d1.innerHTML = '&gt;';
				d.title='reproduzir';
			}else{
				if (player.getCurrentIndex()==-1){
					player.next();
				}else{
					player.getObj().play();
					d.title = 'pausar';
					d1.innerHTML = '||';
				}
			}

			d1.blur();
		}
	},
	randomClick: function(){
		player.setRandomized(!player.isRandomized());
		player._randomChange();
	},
	muteClick: function(){
		if (player.getObj().isMuted()){
			player.getObj().unMute();
		}else{
			player.getObj().mute();
		}
		player._muteChange();
	},
	timerClick: function(){
		var n = player.getTimerMode() + 1;
		if (n>3){
			n = 1;
		}
		player.setTimerMode(n);
		player._updateTimer();
	},
	_randomChange: function(){
		var d = document.getElementById('div_player_random');
		if (d){
			if (player.isRandomized()){
				d.title = 'desativar ordem aleatória';
				d.className = 'random';
			}else{
				d.title = 'ativar ordem aleatória';
				d.className = 'random disable';
			}
			d.blur();
		}
	},
	_muteChange: function(){
		var d = document.getElementById('div_player_volume_icon');
		if (d){
			if (player.getObj().isMuted()){
				d.title = 'som';
				d.className = 'icon disable';
			}else{
				d.title = 'sem som';
				d.className = 'icon';
			}
			d.blur();
		}
		player.setMuted(player.getObj().isMuted());

		//
		player.sliderVolume.pointer.getObj().title = player.sliderVolume.value.percent.get(true)+ '%';
	},
	play: function(index){
		player.setCurrentIndex(index);
		var item = player.playlist.getItem(index);
		//instancia a api e exibe o player
		var yplayer = new gYoutubePlayer("myytplayer");
		yplayer.write('div_player_visual',item[1],230,165,true);
		player.setObj(yplayer);
		//atualiza título
		global.div.Write('div_player_title',item[4]);
		//preparar barra de progresso
		global.div.Write('div_player_progress','');
		player.sliderProgress = new gSlider('div_player_progress');
		with (player.sliderProgress){
			bar.setWidth(475);
			bar.setHeight(5);
			progressive.setIncluded(true);
			pointer.setWidth(30);
			pointer.setHeight(5);
			draw();
			bar.setClass('barExternal');
			progressive.setClass('progressive');
			pointer.setClass('pointer');
			value.percent.set(0);
		}
		//anexar progresso do vídeo à barra
		player.getObj().event.onPlaying = function(){setTimeout('player._updateProgressBar()',1000);}
		//anexar mudança via mouse
		player.sliderProgress.pointer.onStartDrag = function(){
			clearTimeout(player.idTimerProgress);
			player.getObj().pause();
		}
		player.sliderProgress.pointer.onStopDrag = function(){
			var x = Math.round((player.sliderProgress.value.percent.get()/100 *  player.getObj().getDuration()));
			player.getObj().seekTo(x,true);
			player.getObj().play();
		}
		var d = document.getElementById('div_player_button_play');
		if (d){
			d.title = 'pausar';
			global.div.Write('div_player_button_play_link','||');

		}
		//adicionar evento para continuar a playlist
		if (player.playlist.getTotal()>1){
			player.getObj().event.onEnded = player.next;
			player.getObj().event.onError = player.next;
		}
		//verificar se deve continuar mudo
		if (player.isMuted()){
			player.getObj().mute();
		}
		//acertar ordem aleatória
		player._randomChange();

		//preparar a barra de volume
		global.div.Write('div_player_volume_control','');
		player.sliderVolume = new gSlider('div_player_volume_control');
		//anexa método ao slider
		player.sliderVolume.updateIcon = function(){
			var n = player.sliderVolume.value.percent.get(true);
			var b = Math.floor(player.sliderVolume.value.percent.get(true)/20);
			var s = '&lt;';
			for(var n=0;n!=b;n++){
				s+=')';
			}
			global.div.Write('div_player_volume_icon',s);
			player.sliderVolume.pointer.getObj().title = player.sliderVolume.value.percent.get(true)+ '%';
		}

		with(player.sliderVolume){
			bar.setWidth(80);
			bar.setHeight(5);
			pointer.setWidth(15);
			pointer.setHeight(5);
			progressive.setIncluded(true);
			draw();
			bar.setClass('barExternal');
			progressive.setClass('progressive');
			pointer.setClass('pointer');
			value.percent.set(player.getVolume());
			pointer.onChange = function(){
				player.getObj().setVolume(player.sliderVolume.value.percent.get(true));
				player.setVolume(player.getObj().getVolume());
				player.sliderVolume.updateIcon();
				player._muteChange();
			}
			//inicializa ícone de som
			player.sliderVolume.updateIcon();
		}



		if (player.getLastIndex()>-1){
			//restaura
			global.div.Write('div_player_playlist_item_'+player.getLastIndex(),player.getLastIndexHtml());
		}
		//armazena
		player.setLastIndex(player.getCurrentIndex());
		player.setLastIndexHtml(global.div.Read('div_player_playlist_item_'+player.getCurrentIndex()));

		//sobrescreve sem link
		global.div.Write('div_player_playlist_item_'+player.getCurrentIndex(),player.utils.adjustTitle(item[4]));
	},
	next: function(){
		var d = document.getElementById('div_player_button_next_link');
		if (d){
			d.blur();
		}
		player.play(player.getNextIndex());
	},
	previous: function(){
		var d = document.getElementById('div_player_button_previous_link');
		if (d){
			d.blur();
		}
		player.play(player.getPreviousIndex());
	},
	_updateTimer: function(){
		try{
			var current = Math.round(player.getObj().getCurrentTime());
			var total = Math.round(player.getObj().getDuration());

			var s = '';
			switch(player.getTimerMode()){
				//ambos
				case 1:
					s = player.utils.secondsToMinutes(current) + ' / ' + player.utils.secondsToMinutes(total);
					break;
				case 2:
					s = player.utils.secondsToMinutes(total - current);
					break;
				case 3:
					s = player.utils.secondsToMinutes(current);
					break;
			}

			global.div.Write('div_player_timer',s);
		}catch(e){}
	},
	_updateProgressBar: function(){
		try{
			if (player.idTimerProgress){
				clearTimeout(player.idTimerProgress);
			}
			if (player.getObj().getCurrentTime()>0){
				var x = (player.getObj().getCurrentTime()*100)/player.getObj().getDuration();
				//x = Math.round(x);
				player.sliderProgress.value.percent.set(x);
			}
			player.idTimerProgress = setTimeout('player._updateProgressBar()',500);
		}catch(e){}
		player._updateTimer();
	},
	getIndexRandomized: function(){
		return Math.floor(Math.random()*player.playlist.getTotal());
	},
	getNextIndex: function(){
		if (player.isRandomized()){
			return player.getIndexRandomized();
		}
		if (player.getCurrentIndex()==-1){
			return 0;
		}

		var index = player.getCurrentIndex() + 1;
		if (index>=player.playlist.getTotal()-1){
			index = 0
		}
		return index;
	},
	getPreviousIndex: function(){
		if (player.isRandomized()){
			return player.getIndexRandomized();
		}
		if (player.getCurrentIndex()==0){
			return player.playlist.getTotal()-1
		}
		var index = player.getCurrentIndex() -1;
		if (index<0){
			index = player.playlist.getTotal()-1;
		}
		return index;
	}
}

player.playlist = {
	aId: new Array(),
	aIdExternal: new Array(),
	aSeconds: new Array(),
	aSecondsFriendly: new Array(),
	aTitle: new Array(),
	aUrl: new Array(),
	aThumbUrl: new Array(),
	aThumbWidth: new Array(),
	aThumbHeight: new Array(),
	add: function(id,idExternal,seconds,secondsFriendly,title,url,thumbUrl,thumbWidth,thumbHeight){
		with (player.playlist){
			aId.push(id);
			aIdExternal.push(idExternal);
			aSeconds.push(seconds);
			aSecondsFriendly.push(secondsFriendly);
			aTitle.push(title);
			aUrl.push(url);
			aThumbUrl.push(thumbUrl);
			aThumbWidth.push(thumbWidth);
			aThumbHeight.push(thumbHeight);
		}
	},
	getTotal: function(){
		return player.playlist.aId.length;
	},
	getItem: function(index){
		var a = new Array();
		a.push(player.playlist.aId[index]);
		a.push(player.playlist.aIdExternal[index]);
		a.push(player.playlist.aSeconds[index]);
		a.push(player.playlist.aSecondsFriendly[index]);
		a.push(player.playlist.aTitle[index]);
		a.push(player.playlist.aUrl[index]);
		a.push(player.playlist.aThumbUrl[index]);
		a.push(player.playlist.aThumbWidth[index]);
		a.push(player.playlist.aThumbHeight[index]);

		return a;
	}
}

player.utils = {
	adjustTitle: function(s){
		var limit = 40;
		if (s.length>limit){
			s = s.substring(0,limit) + '...';
		}
		return s;
	},
	adjustTitleUrl: function(o){
		var limit = 40;
		if (o.innerHTML.length>limit){
			o.title = o.innerHTML;
			o.innerHTML = o.innerHTML.substring(0,limit) + '...';
		}
	},
	secondsToMinutes: function(n){
		var minutes = 0;
		var seconds = 0;
		var s = '';
		if (n<60){
			seconds = n;
		}else{
			minutes = Math.floor(n/60);
			seconds = n - (minutes*60);
		}

		//zero na frente
		if (seconds<10){
			seconds = '0' + seconds;
		}

		s = minutes+':'+seconds;
		return s;
	}
}

var game = new Object();
game = {
	id: null,
	setId: function(n){
		game.id = n;
	},
	getId: function(){
		return game.id;
	}
}
game.card = {
	dark:{
		obj: null,
		setObj: function(o){
			game.card.dark.obj = o;
		},
		getObj: function(){
			return game.card.dark.obj;
		},
		show: function(){
			var d1= new gDarkness();
			d1.show();
			game.card.dark.setObj(d1);
		}
	},
	show: function(){
		if (!user.isLogged()){
			return;
		}
		game.card.dark.show();
		//
		var d = document.createElement('div');
		with (d.style){
			width = '640px';
			height = '350px';
			backgroundColor = 'white';
			color = 'black';
			border = '1px solid black';
			borderBottom = '2px solid black';
			borderRight = '2px solid black';
			padding = '15px';
		}
		game.card.dark.getObj().appendDiv(d);
		var path = 'http://s1.gamevicio.com/images/flow/gamercard/default/'+Math.floor(user.getId()/1000)+'/'+user.getId()+'.png';

		var s = '<h1 style="color:#B90000">Gamercard do Flow</h1>';
		s+='<div style="margin-bottom:15px">Agora vocë pode compartilhar em fóruns e redes sociais o que você tem jogado</div>';
		s+='<h2>Imagem</h2>';
		s+='<img src="'+path+'" alt="Gamertag" />';
		s+='<h2>Links para compartilhar a imagem</h2>';
		var html = '<a href="http://redirect.gamevicio.com/user/?'+user.getId()+'" target="_blank" title="Flowtag" /><img src="'+path+'" border="0" /></a>';
		s+='<div><b>HTML:</b></div>'
		s+='<input type="text" value="" id="html_code" readonly="readonly" onclick="this.select();" size="50" /></div>';
		s+='<div><b>Fórum (bb code):</b></div>';
		s+='<div><input type="text" value="[url=http://redirect.gamevicio.com/user/?'+user.getId()+'][img]'+path+'[/img][/url]" readonly="readonly" onclick="this.select();" size="50" /></div>';

		d.innerHTML = s;
		document.getElementById('html_code').value=html;
	}
}
game.more = {
	ajax: null,
	page:1,
	hideLink: false,
	setPage: function(n){
		game.more.page = n;
	},
	getPage: function(){
		return game.more.page;
	},
	setHideLink: function(b){
		game.more.hideLink = b;
	},
	isHideLink: function(){
		return game.more.hideLink;
	},
	Do: function(){
		game.more.setPage(game.more.getPage()+1);
		var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=game_more&userid='+userTo.getId()+'&page='+game.more.getPage());
		ajax.addEvent(1,'gLoader.show("Listando mais jogos","progress")');
		ajax.addEvent(4,'game.more.parseDo()');
		game.more.ajax = ajax;
		ajax.send();
	},
	parseDo: function(){
		gLoader.close();
		var ajax = game.more.ajax;
		var s = ajax.getResponseText();
		if (s.length<10){
			return;
		}
		global.div.WriteAdd('div_game',s);
		global.evalScripts(s);
		if (game.more.isHideLink()){
			global.div.Write('game_more_link','')
		}
	}
}

game.remove = {
	ajax: null,
	Do: function(id){
		if (!confirm("Quer mesmo remover este jogo da sua lista?")){
			return;
		}
		game.setId(id);
		var ajax = new gAjax('get',global.RelativeRoot() + 'misc/ajax/main.php?mode=game_remove&id='+game.getId());
		ajax.addEvent(1,'gLoader.show("Removendo jogo da lista","progress")');
		ajax.addEvent(4,'game.remove.parseDo()');
		game.remove.ajax = ajax;
		ajax.send();
	},
	parseDo: function(){
		var ajax = game.remove.ajax;
		if (!ajax.isResponseXML()){
			gLoader.show('Erro: '+ajax.getResponseText(),'info',7);
			return;
		}
		ajax = ajax.getQueryXML();
		if (ajax.getValue('attributes()->status')=='fail'){
			gLoader.show('Error: '+ajax.getValue('error->description'),'info',7);
			return;
		}
		//oculta a linha
		global.div.Shrink('line_'+game.getId(),2);
		gLoader.show('Jogo removido com sucesso','info',7);
	}
}
