$(document).ready(function() {
	// new & edit
	setupSelectBox();
	
	// home
	setupFlavorSelector();
	
	// regulamento
	setupDoubts();
	
	inputFocus();
	
	 HomePage.start();
	 Modal.start();
	 Login.start();
	
	if (notifyWinner) {
		Modal.winnerShow.start();
	}
	
	$('#captcha .questions a').bind('click', ccq);
	$('#captcha .close').bind('click', function(){
		$('#captcha').hide();
	});
	
	Game.preLoad();
});

function srcq() {
	var i = parseInt((Math.random() * 5));
	$('#captcha .questions > li').hide();
	$('#c-question-' + i).show();
}

function icc(t) {
	var a = [3, 1, 3, 1, 2];
	var li = $(t).parent();
	var ul = li.parent();
	var question = ul.parent();
	var num = question[0].id.split('-')[2];
	var answer = ul.find('li:nth-child(' + a[num] + ')');

	return li[0] == answer[0];
}

function ccq() {
	Game.aC(icc(this));
}

function toggleCheck(el) {
	var fakeEl = $(el);
	var checkEl = fakeEl.parent().find('input:checkbox');
	if (checkEl.is(':checked')) {
		checkEl.attr('checked', false);
		fakeEl.removeClass('active');
	}
	else {
		checkEl.attr('checked', true);
		fakeEl.addClass('active');
	}
}

function toggleGender(el) {
	var fakeEl = $(el);
	var radioEl = fakeEl.parent().find('input:radio[value="'+ fakeEl.find('span').html() +'"]');
	
	if (!radioEl.is(':checked')) {
		radioEl.attr('checked', true);
		fakeEl.parent().find('a.select-gender.active').removeClass('active');
		fakeEl.addClass('active');
		Modal.events.genderChanged(radioEl.val());
	}
}

function setupSelectBox() {
	var element = $('.select-flavor');
	var first = element.find('li:first');

	first.bind('click', function() {
		if (element.hasClass('active')) {
			element.removeClass('active');
		}
		else {
			element.addClass('active');
		}
	});
	
	element.find('li:not(:first)').bind('click', function() {
		var selected = $(this);
		
		element.find('li').removeClass('active');
		selected.addClass('active');
		first.attr('class', 'ss ' + selected.attr('class').replace('active', ''));
		first.find('a span:first').html(selected.find('a span:first').html());

		$('#selected_flavor').val(selected.find('a span:first').html());
		
		Modal.events.flavorSelected(this.className.replace(' ', '').replace('active', ''));
		
		element.removeClass('active');
	});
}

function setupFlavorSelector() {
	var element = $('#flavors-select');
	var first = element.find('li:first');

	first.bind('click', function() {
		if (element.hasClass('active')) {
			element.removeClass('active');
		}
		else {
			element.addClass('active');
		}
	});
	
	element.find('li:not(:first)').bind('click', function() {
		var selected = $(this);
		
		var firstClass = first.attr('class');
		var currClass = selected.attr('class');
		
		first.attr('class', currClass);
		first.find('a span:first').html(selected.find('a span:first').html());
		
		var elToShow = element.find('.' + firstClass + ':first');
		elToShow.show();
		
		var elToHide = element.find('.' + currClass).not(':first');
		elToHide.hide();
		
		$('#selected_flavor').val(selected.find('a span:first').html());
		
		HomePage.events.flavorSelected(this.className);
		
		element.removeClass('active');
		
		var flavorValue;
		
		switch (this.className) {
			case 'mt':
				flavorValue = 'melancia-tangerina';
				break;
			case 'am':
				flavorValue = 'abacaxi-macav';
				break;
			case 'mb':
				flavorValue = 'morango-banana';
				break;
			case 'ul':
				flavorValue = 'uva-laranja';
				break;
			default:break;
		}
		
		GA.trackEvent('home', 'clique', 'produto-' + flavorValue);
	});
}

function setupDoubts() {
	var el = $('.doubts-list');
	el.find('dt').each(function() {
		var dt = $(this);
		
		dt.find('a.closed-doubt').bind('click', function() {
			var dd = $('#' + dt.attr('id') + '-a');
			dd.show();
			dd.find('.close-pnk').click(function() {
				dd.hide();
			});	
			dd.find('.scroll-pane-doubts').jScrollPane();
		});
	})
}

function inputFocus() {
	$('input[type="text"], input[type="password"]').focus(function() {
		$(this).parent().addClass('whitebg');
	});
	
	$('input[type="text"], input[type="password"]').blur(function() {
		$(this).parent().removeClass('whitebg');
	});
}


function cl(arg) {
	console.log(arg);
}


var Modal = {
	
	current: null,
	
	start: function() {
		Modal.current = $('#game-content');
		Modal.bindButtons();
		Modal.howTo.start();
		Modal.avatar.start();
	},
	
	bindButtons: function() {
		$(document).bind('keyup', function(ev) {
			if (ev.keyCode == 27) {
				window.location.hash = '';
			}
		});
		
	},
	
	show: function(selector, action) {
		if (selector && selector.search('=') != -1) {
			var param = selector.split('=')[1];
			selector = selector.split('=')[0];
		}
		
		if ($(selector).length) {
			Modal.current.hide();
			Modal.current = $(selector);
			
			if (action) {
				selector += '-'+ action;
			}

			switch (selector) {
				case '#regulamento' :
					Modal.rules.showPage(selector);
					GA.track('site/regulamento');
				break;
				
				case '#termos-de-uso' :
					Modal.rules.showPage(selector);
					GA.track('site/termos-de-uso');
				break;
				
				case '#duvidas' :
					Modal.rules.showPage(selector);
					GA.track('site/duvida');
				break;
				
				case '#cadastro-editar' :
					Modal.current.show();
					Modal.avatar.edit();
				break;
				
				case '#cadastro' :
					Modal.current.show();
					GA.track('site/crie-seu-avatar');
				break;
				
				case '#token' :
					Modal.current.show();
					Login.populateToken(param);
				break;
				
				case '#como-jogar' :
					Modal.current.show();
					GA.track('site/como-jogar');
				break
				
				default :
					Modal.current.show();
				break; 
			}
			
		}
	},
	
	hide: function() {
		Modal.current.hide();
		Modal.current = $('#game-content');
		Modal.current.show();
	},
	
	showMessage: function(message) {
		_alert('ALERTA', message);
	},
	
	showErrorMessage: function(obj) {
		var message = '';
		var i = 1;
		
		if (typeof(obj) != 'string') {		
			for (var k in obj) {
				message += (i++) +'. '+ obj[k] +'<br />';
			}
		} else {
			message = obj;
		}
		
		_alert('ERRO DE PREENCHIMENTO', message);
	},
	
	stripTags: function(str) {
		return str.replace(/(<([^>]+)>)/ig,"");
	}
};

Modal.events = {
	
	flavorSelected: function(value) {
		if (value == 'mt' || value == 'am' || value == 'mb' || value == 'ul') {
			var flavorValue;
			
			switch (value) {
				case 'mt':
					flavorValue = 'melancia-e-tangerina';
					break;
				case 'am':
					flavorValue = 'abacaxi-e-maca-verde';
					break;
				case 'mb':
					flavorValue = 'morango-e-banana';
					break;
				case 'ul':
					flavorValue = 'uva-e-laranja';
					break;
				default:break;
			}
			
			if (AU) {
				GA.trackEvent('editar-avatar', 'clique', flavorValue);
			} else {
				GA.trackEvent('crie-seu-avatar', 'clique', flavorValue);
			}
			
			Modal.avatar.flavor = value;
			Modal.avatar.showAvatar();
		}
		else {
			Modal.avatar.flavor = null;
			Modal.avatar.hideAvatar();
		}
	},
	
	genderChanged: function(value) {
		value = (value == 'feminino') ? 'female' : 'male';
		Modal.avatar.setGender(value);
	}
};

Modal.howTo = {
	
	ready: false,
	
	start: function() {
		if (!Modal.howTo.ready) {
			Modal.howTo.bindButtons();
			Modal.howTo.ready = true;
		}
	},
	
	bindButtons: function() {
		var ul = $('ul.list-numbers', '#como-jogar');
		ul.children().bind('click', function() {
			ul.children().removeClass('active');
			$(this).addClass('active');
			$('#tab-content > div', '#como-jogar').hide();
			$('#tab-content > div:eq('+ $(this).index() +')', '#como-jogar').show();
		});
	}
};


Modal.rules = {
	
	ready: false,
	
	start: function() {
		Modal.rules.clearDoubdt();
		$('#modal-regulamento').show();
		Modal.current = $('#modal-regulamento');
		if (!Modal.rules.ready) {
			Modal.rules.bindButtons();
			Modal.rules.ready = true;
		}
	},
	
	bindButtons: function() {
		$('a.enviar-duvida', '#modal-regulamento').bind('click', function() {
			Modal.rules.sendDoubt();
		});
		
		$('a.limpar', '#modal-regulamento').bind('click', function() {
			Modal.rules.clearDoubdt();
			GA.trackEvent('duvida', 'clique', 'duvida-limpar');
		});
		
	},
	
	showPage: function(name) {
		name = name.replace('#', '');
		Modal.rules.start();
		$('.menu-tabs li', '#modal-regulamento').removeClass('active');
		$('.menu-tabs li', '#modal-regulamento').removeClass('active');
		$('a.'+ name, '.menu-tabs').parent().addClass('active');
		$('.general-info li', '#modal-regulamento').hide();
		$('#'+ name, '#modal-regulamento').show();

		$('.scroll-pane, .scroll-pane-doubts').jScrollPane();
	},
	
	sendDoubt: function() {
		var data = {
			'data[Faq][name]': Modal.stripTags($('#faqName').val()),
			'data[Faq][email]': Modal.stripTags($('#faqEmail').val()),
			'data[Faq][question]': Modal.stripTags($('#faqQuestion').val())
		};
		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: 'faq/send.json',
			data: data,
			success: function(result) {
				if (result.success) {
					Modal.showMessage(result.message);
					Modal.rules.clearDoubdt();
				}
				else {
					Modal.showErrorMessage(result.message);
				}
			}
		});
		
		GA.trackEvent('duvida', 'clique', 'duvida-enviar');
	},
	
	clearDoubdt: function() {
		$('#faqName').val('');
		$('#faqEmail').val('');
		$('#faqQuestion').val('');
	}
};


Modal.timeOut = {
	
	ready: false,
	
	start: function() {
		Modal.show('#timeOut');
		if (!Modal.timeOut.ready) {
			Modal.timeOut.bindButtons();
			Modal.timeOut.ready = true;
		}
		GA.track('site/game/gostou');
	},
	
	bindButtons: function() {
		$('a.close', '#timeOut').bind('click', function() {
			Modal.show('#game-content');
		});
	}
	
	
};

Modal.sorter = {
	
	ready: false,
	
	start: function() {
		Modal.show('#sorter');
		if (!Modal.sorter.ready) {
			Modal.sorter.bindButtons();
			Modal.sorter.ready = true;
		}
	},
	
	bindButtons: function() {
		$('a.close', '#sorter').bind('click', function() {
			Modal.show('#game-content');
		});
		
		$('a.voltar-ao-jogo', '#sorter').bind('click', function() {
			Modal.show('#game-content');
		});
	}
	
};

Modal.winnerShow = {
	
	ready: false,
	
	start: function() {
		Modal.show('#winner-show');
		if (!Modal.winnerShow.ready) {
			Modal.winnerShow.bindButtons();
			Modal.winnerShow.ready = true;
		}
	},
	
	bindButtons: function() {
		$('a.close', '#winner-show').bind('click', function() {
			Modal.show('#game-content');
		});
		
		$('a.encontrar-o-bc', '#winner-show').bind('click', function() {
			Modal.show('#game-content');
		});
	}
	
};

Modal.winnerWait = {
	
	ready: false,
	
	start: function() {
		Modal.show('#winner-wait');
		if (!Modal.winnerWait.ready) {
			Modal.winnerWait.bindButtons();
			Modal.winnerWait.ready = true;
		}
	},
	
	bindButtons: function() {
		$('a.close', '#winner-wait').bind('click', function() {
			Modal.show('#game-content');
		});
	}
	
};

Modal.avatar = {
	
	ready: false,
	flavor: null,
	gender: 'male',
	nickName: null,
	className: [],
	url: null,
	avatar: null,
	
	rule: {
		male: {
			mt: ['m4', 'm2'],
			am: ['m8', 'm5'],
			mb: ['m3', 'm7'],
			ul: ['m1', 'm6']
		},
		female: {
			mt: ['f7', 'f6'],
			am: ['f1', 'f3'],
			mb: ['f4', 'f2'],
			ul: ['f5', 'f8']
		}
	},
	
	start: function() {
		if (!Modal.avatar.ready) {
			Modal.avatar.hideAvatar();
			Modal.avatar.bindButtons();
			Modal.avatar.ready = true;
		}
	},
	
	edit: function() {
		$('h2', '#cadastro').html('Edite seu avatar');
		$('#cadastro-nickname-label').html('DÊ UM NOME AO SEU AVATAR')
		$('a.proximo', '#cadastro').hide();
		$('a.salvar-modificacoes', '#cadastro').show();
		
		if (!Modal.avatar.ready) {
			Modal.avatar.bindButtons();
			Modal.avatar.ready = true;
		}
		
		Modal.avatar.populateFirstStep();
		
		GA.track('site/editar-avatar');
	},
	
	bindButtons: function() {
		$('#createAvatarWidget a').bind('click', function() {
			var bodyPart = this.className.replace('arrow-', '');
			var className = ($(this).parent().hasClass('navlft')) ? Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0] : Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][1];
			$('.b'+ bodyPart + ' li', '#createAvatarWidget').removeClass().addClass(className);
			Modal.avatar.className[$(this).index()] = className;
		});
		
		$('a.proximo', '#cadastro').bind('click', function() {
			var nickName = $('#nickName', '#cadastro').val().replace(/"/g, '').replace(/'/g, '');			
			Modal.avatar.nickName = Modal.stripTags(nickName);
			if (Modal.avatar.nickName && Modal.avatar.flavor) {
				Modal.show('#createAvatar02');
				GA.track('site/dados');
			}
			
			GA.trackEvent('crie-seu-avatar', 'clique', 'proximo');
		});
		
		$('a.finalizar', '#createAvatar02').bind('click', function() {
			Modal.avatar.postCreate();
			GA.trackEvent('dados', 'clique', 'finalizar');
		});
		
		$('a.salvar-modificacoes', '#cadastro').bind('click', function() {
			Modal.avatar.postEdit();
			GA.trackEvent('editar-avatar', 'clique', 'salvar');
		});
		
		$('a.jogar', '#createAvatar03').bind('click', function() {
			window.location = Modal.avatar.url;
			GA.trackEvent('pronto-jogar', 'clique', 'jogar');
		});
		
	},
	
	hideAvatar: function() {
		$('#createAvatarWidget').css('visibility', 'hidden');
	},
	
	setGender: function(value) {
		$('.mount-persona', '#cadastro').removeClass('female');
		if (value == 'female') {
			$('.mount-persona', '#cadastro').addClass('female');
			if (AU) {
				GA.trackEvent('editar-avatar', 'clique', 'feminino');
			} else {
				GA.trackEvent('crie-seu-avatar', 'clique', 'feminino');
			}
		} else {
			if (AU) {
				GA.trackEvent('editar-avatar', 'clique', 'masculino');
			} else {
				GA.trackEvent('crie-seu-avatar', 'clique', 'masculino');
			}
		}
		
		Modal.avatar.gender = value;
		if (Modal.avatar.flavor) {
			Modal.avatar.showAvatar();
		}
	},
	
	setFlavor: function(flavor) {
		Modal.avatar.flavor = flavor;
		$('.select-flavor li:first', '#cadastro').removeClass().addClass('ss '+ flavor);
	},
	
	showAvatar: function() {
		Modal.avatar.className[0] = Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0];
		Modal.avatar.className[1] = Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0];
		Modal.avatar.className[2] = Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0];
		$('.bhead li', '#createAvatarWidget').removeClass().addClass(Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0]);
		$('.bbody li', '#createAvatarWidget').removeClass().addClass(Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0]);
		$('.blegs li', '#createAvatarWidget').removeClass().addClass(Modal.avatar.rule[Modal.avatar.gender][Modal.avatar.flavor][0]);
		$('#createAvatarWidget').css('visibility', 'visible');
	},
	
	populateFirstStep: function() {
		if (Game && Game.logged) {
			var avatar = eval('(' + Game.logged.avatar + ')');
			
			Modal.avatar.gender = (avatar[2].search('f') == 0) ? 'female' : 'male';
			Modal.avatar.setFlavor(avatar[1]);
			Modal.avatar.className = avatar[2].split('-');
			Modal.avatar.nickName = avatar[0];
			
			var fakeEl = $('.select-gender.' + Modal.avatar.gender, '#cadastro');
			var radioEl = fakeEl.parent().find('input:radio[value="'+ fakeEl.find('span').html() +'"]');
			if (!radioEl.is(':checked')) {
				radioEl.attr('checked', true);
				fakeEl.parent().find('a.select-gender.active').removeClass('active');
				fakeEl.addClass('active');
			}
			
			$('.mount-persona', '#createAvatarWidget').addClass(Modal.avatar.gender);
			$('.bhead li', '#createAvatarWidget').attr('class', Modal.avatar.className[0]);
			$('.bbody li', '#createAvatarWidget').attr('class', Modal.avatar.className[1]);
			$('.blegs li', '#createAvatarWidget').attr('class', Modal.avatar.className[2]);
			$('#nickName', '#cadastro').val(Modal.avatar.nickName);
			
			$('#createAvatarWidget').css('visibility', 'visible');
		}
		else {
			window.location.hash = '';
		}
	},
	
	populateFinalStep: function() {
		Modal.show('#createAvatar03');
		$('#newUserLogin', '#createAvatar03').html(Modal.avatar.login);
		$('#newUserPass', '#createAvatar03').html(Modal.avatar.pass);
		$('.mount-persona', '#createAvatar03').removeClass('female');
		if (Modal.avatar.gender == 'female') {
			$('.mount-persona', '#createAvatar03').addClass('female');
		}
		var persona = $('.mount-persona li', '#createAvatar03');
		persona[0].className = Modal.avatar.className[0];
		persona[1].className = Modal.avatar.className[1];
		persona[2].className = Modal.avatar.className[2];
		
		GA.track('site/pronto-jogar');
	},
	
	serialize: function() {
		var fields = $(':input', '#createAvatar02');
		
		Modal.avatar.login = fields[3].value;
		Modal.avatar.pass = fields[1].value;
		
		var birthdate = fields[4].value;
		var bdSplited = birthdate.split('/');
		
		if (bdSplited.length == 3) {
			if (bdSplited[2].length == 2) {
				bdSplited[2] = '19' + bdSplited[2];
			}
			
			birthdate = bdSplited[2] + '-' + bdSplited[1] + '-' + bdSplited[0];
		}
		
		var data = {
			'data[User][avatar]': Modal.avatar.getJson(),
			'data[User][name]': Modal.stripTags(fields[0].value),
			'data[User][email]': fields[3].value,
			'data[User][password]': fields[1].value,
			'data[User][repeat_password]': fields[2].value,
			'data[User][birthdate]': birthdate,
			'data[User][responsable_email]': fields[5].value,
			'data[User][responsable_phone]': fields[6].value,
			'data[User][term]': (fields[7].checked) ? 1 : 0,
			'data[User][news]': (fields[8].checked) ? 1 : 0
		}
		
		return data;
	},
	
	getJson: function() {
		var nickName = $('#nickName', '#cadastro').val().replace(/"/g, '').replace(/'/g, '');
		Modal.avatar.nickName = Modal.stripTags(nickName);
		return '["'+ Modal.avatar.nickName +'", "'+ Modal.avatar.flavor +'", "'+ Modal.avatar.className.join('-') +'"]';
	},
	
	postCreate: function() {
		var data = Modal.avatar.serialize();
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: 'users/add.json',
			data: data,
			success: function(result) {
				if (result.success) {
					Modal.avatar.url = result.data.url;
					Modal.avatar.populateFinalStep();
				}
				else {
					Modal.showErrorMessage(result.message);
				}
			}
		});
	},
	
	postEdit: function() {
		var data = {'data[User][avatar]': Modal.avatar.getJson()};
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: 'users/edit.json',
			data: data,
			success: function(result) {
				if (result.success) {
					window.location = result.data.url;
				}
				else {
					Modal.showErrorMessage(result.message);
				}
			}
		});
	}
};

var Login = {
	start: function() {
		Login.bindButtons();
	},
	
	bindButtons: function() {
		$('a#logar').bind('click', function(ev) {
			ev.stopPropagation();
			if ($(this).hasClass('active')) {
				Login.hide($(this));
			}
			else {
				Login.show($(this));
			}
			
		});
		
		$(':input', '#loginBox').bind('focus', function() {
			if (this.value == 'Login' || this.value == 'Digite seu e-mail') {
				this.value = '';
			}
		}).bind('blur', function() {
			if (this.value == '') {
				if (this.id == 'userConfirm') {
					this.value = 'Digite seu e-mail';
				}
				else {
					this.value = 'Login';
				}
			}
		});
		
		$('#sendLogin').bind('click', function() {
			Login.post();
			GA.trackEvent('logar', 'clique', 'confirmar');
		});
		
		$('#confirmEmail').bind('click', function() {
			Login.forgot();
			GA.trackEvent('logar', 'clique', 'esqueceu-enviar');
		});
		
		$('#forgotPassword').bind('click', function() {
			$('#loginForm').hide();
			$('#forgotPasswordForm').show();
			GA.trackEvent('logar', 'clique', 'esqueceu');
		});
		
		$('.finalizar', '#token').bind('click', function() {
			Login.changePass();
		});
		
	},
	
	show: function(elem) {
		$(elem).addClass('active');
		$('#loginForm').show();
		$('#forgotPasswordForm').hide();
		$('#loginBox').show();
	},
	
	hide: function(elem) {
		$(elem).removeClass('active');
		$('#loginForm').hide();
		$('#forgotPasswordForm').show();
		$('#loginBox').hide();
	},
	
	post: function() {
		var data = {
			'data[User][email]': $('#userEmail').val(),
			'data[User][password]': $('#userPassword').val()
		};
		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: 'users/login.json',
			data: data,
			success: function(result) {
				if (result.success) {
					window.location = result.data.url;
				}
				else {
					Modal.showErrorMessage(result.message);
				}
			}
		});
	},
	
	forgot: function() {
		var data = {
			'data[User][email]': $('#userConfirm').val()
		};
		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: 'users/forgot.json',
			data: data,
			success: function(result) {
				if (result.success) {
					Modal.showMessage(result.message);
				}
				else {
					Modal.showErrorMessage(result.message);
				}
			}
		});
	},
	
	changePass: function() {
		var data = {
			'data[User][email]': $('#userEmail', '#token').val(),
			'data[User][token]': $('#userToken', '#token').val(),
			'data[User][password]': $('#userPassword', '#token').val(),
			'data[User][repeat_password]': $('#userRepeatPassword', '#token').val()
		};
		
		$.ajax({
			type: 'POST',
			dataType: 'json',
			url: 'users/change_password.json',
			data: data,
			success: function(result) {
				if (result.success) {
					Modal.showMessage(result.message);
				}
				else {
					Modal.showErrorMessage(result.message);
				}
			}
		});
	},
	
	populateToken: function(token) {
		$('#userToken').val(token);
	}
};


var HomePage = {
	start: function() {
		HomePage.bindButtons();
	},
	
	bindButtons: function() {
		$('a', '#weekNavigation').bind('click', function() {
			Modal.hide();
			
			if ($(this).parent().hasClass('unpublished')) {
				Modal.winnerWait.start();
			}
			
			HomePage.showRankPage($(this).parent().index());
		});
		
		$('.flavors-list > a').bind('click', function() {
			if (this.className == 'arrow-right') {
				HomePage.flavor.next();
			}
			else {
				HomePage.flavor.prev();
			}
		});
		
		
		$.address.change(function(ev) {
			if (!notifyWinner) {
				var id = (ev.pathNames[0]) ? '#'+ ev.pathNames[0] : '#game-content';
				Modal.show(id, ev.pathNames[1]);
				window.scrollTo(0,0);
			} else {
				Modal.winnerShow.start();
			}
		});
/*		
		$('#week-ranking ul li').live('mouseenter', function() {
			$('.user-tooltip', this.parentNode).hide();
			$('.user-tooltip', this).show();
			
			GA.trackEvent('home', 'mouse over', $(this).attr('i') + 'lugar');
		}).live('mouseleave', function() {
			$('.user-tooltip', this.parentNode).hide();
		});
*/		
		$('.white-button').bind('mouseenter', function() {
			$(this).addClass('active');
		}).bind('mouseleave', function() {
			$(this).removeClass('active');
		});

	},
	
	showRankPage: function(i) {
		$('#weekDescription').html('Semana '+ (i + 1));
		$('a', '#weekNavigation').removeClass('hover');
		$('a:eq(' + i + ')', '#weekNavigation').addClass('hover');
		$('.week-rank-page').hide();
		$('.week-rank-page:eq('+ i +')').show();
		
		GA.trackEvent('home', 'clique', 'semana ' + (i + 1));
	}
};

HomePage.events = {
	flavorSelected: function(className) {
		HomePage.flavor.goToFlavor(className);
	}
};

HomePage.flavor = {
	current: 0,
	flavors: ['ul', 'mt', 'am', 'mb'],
	
	next: function() {
		if (HomePage.flavor.current < 3) {
			HomePage.flavor.current++;
			$('#flavors-slider').animate({left: '-=266'}, 1000, function() {
				HomePage.flavor.setFlavor(HomePage.flavor.flavors[HomePage.flavor.current]);
			});
		}
		
		GA.trackEvent('home', 'clique', 'produto-interacao');
	},
	
	prev: function() {
		if (HomePage.flavor.current > 0) {
			HomePage.flavor.current--;
			$('#flavors-slider').animate({left: '+=266'}, 1000, function() {
				HomePage.flavor.setFlavor(HomePage.flavor.flavors[HomePage.flavor.current]);
			});
		}
		
		GA.trackEvent('home', 'clique', 'produto-interacao');
	},
	
	goToFlavor: function(flavor) {
		var i = $.inArray(flavor, HomePage.flavor.flavors);
		var left = (i * 266 * -1);
		HomePage.flavor.current = i;
		$('#flavors-slider').animate({left: left}, 1000);
	},
	
	setFlavor: function(flavor) {
		var sel = $('#flavors-select');
		var past = sel.find('li:first').attr('class');
		sel.find('li:first').removeClass().addClass(flavor);
		
		sel.find('.' + past).show();
		sel.find('.' + flavor).not(':first').hide();
	}
}

Player = {
	enabled: true,
	
	getSwf: function() {
		return window.player ? window.document["player"] : document.player;
	},
	
	play: function(a) {
		if (Player.enabled) {
			Player.getSwf().play_fx(a);
		}
	},
	
	playTrilha: function(a) {
		Player.enabled = true;
		Player.getSwf().play_trilha();
	},
	
	stopTrilha: function(a) {
		Player.enabled = false;
		Player.getSwf().stop_trilha();
	}
}


function _alert(title, text) {
	$('#alert-modal .alert-modal-title').html(title);
	$('#alert-modal .alert-modal-text').html(text);
	$.openPopupLayer({
		name: "alert",
		target: "alert-modal"
	});
}

function hidePreLoader() {
	$('#intro .bar').addClass('hide');
	$('#intro .play-button').removeClass('hide');
}

$(document).ready(function() {
	$('#user-total-time').parents('a').bind('mouseenter', function() {
		if (AU) {
			$('#user-total-time').html('calculando');
			$.ajax({
				type: 'POST',
				dataType: 'json',
				url: 'users/score.json',
				success: function(result) {
					var totalTime = Game.milisToTime(parseInt(result.User.score)*1000);
					$('#user-total-time').html(totalTime);
				}
			});	
		}
	});
	
	$('#user-sound').parents('a').bind('click', function() {
		var soundStatus = $('#user-sound');
		
		if (soundStatus.html() == 'LIGADO') {
			Player.stopTrilha();
			soundStatus.html('DESLIGADO');
		} else {
			Player.playTrilha();
			soundStatus.html('LIGADO');
		}
	});
	
	$('#intro .play-button').bind('click', function() {
		Game.start();
	});
})
/*******************
 * GoogleAnalytics *
 ******************/
function GoogleAnalytics (UA) {
  GAnalytics = _gat._getTracker(UA);
  GAnalytics._setDomainName('none');
  GAnalytics._setAllowLinker(true);
  GAnalytics._initData();
}

GoogleAnalytics.prototype.track = function (action) {
  return (action) ? GAnalytics._trackPageview(action) : GAnalytics._trackPageview();
}

GoogleAnalytics.prototype.trackEvent = function (category, action, opt_label, opt_value) {
	return GAnalytics._trackEvent(category, action, opt_label, opt_value);
}

GoogleAnalytics.prototype.trackRedirect = function (action, url) {
  this.track(action);
  setTimeout(function () {
	location.href = url;
  }, 1000);
}

swfobject.embedSWF("swf/como_jogar.swf", "como-jogar-swf", "570", "232", "10.0.0", "expressInstall.swf", {}, {wmode:'transparent'});
swfobject.embedSWF("swf/como_jogar.swf", "como-jogar-swf2", "570", "232", "10.0.0", "expressInstall.swf", {}, {wmode:'transparent'});
swfobject.embedSWF("swf/player.swf", "player", "1", "1", "10.0.0", "expressInstall.swf", {}, {wmode:'transparent'});

$(function(){
	$('input:text').setMask();
});
