var foto_atual = 0;
var array_fotos = new Array();
var pagina_atual = 1;
var ajax = new Ajax();
function $id(id){
	return document.getElementById(id);
}

function pageNav(page, numRows, viewMax){
	var return_pages = new Array();
	var iVal = Math.ceil(numRows/viewMax);
	var indice = 0;
	if(numRows > 0 && iVal > 0 && numRows != viewMax){
		var end = iVal - 1;
		var start = 0;
		if(page < 9 && end > 9){
			end = 9;
		}else if(page >= 8 && end > 8){
			start = Math.floor(page / 8) * 8 - 1;
			end = start + 8;
			if(end > iVal)
				end = iVal - 1;
			//return_pages[indice] = 1;
			return_pages[indice] = '...';
			indice++;
		}
		for(i = start; i <= end; i++){
			return_pages[indice] = i+1;
			indice++;
		}
		if(iVal > 8 && start < iVal - 8){
			if (iVal > 16 && i < iVal) {
				return_pages[indice] = '...';
				indice++;
			}
		}
	}else
		return_pages[indice] = 1;
	
	return return_pages;
}
//faz a paginação das fotos
function paginacao_fotos(pagina, site, dns){
	var params = 'pagina=' + pagina+'&site='+site+'&dns='+dns+'&num_fotos='+num_fotos;
	pagina_atual = pagina;
	ajax.chamadaDiv('/fotos_paginacao.php', params, 'lista_thumbs');
}
//troca o src da foto grande para exibir a foto escolhida pelo usuário
function troca_src(id_elem, id_foto, ancora, div_ancora, foto){
	var pai = $id('all-fotos');
	var nodes = pai.childNodes;
	var total = nodes.length;
	for(var i = 0;i < total;i++){
		troca_classe(pai.childNodes[i], id_foto);
	}	
	var a_ancora = '<a href="#" name="'+ancora+'" id="lnk_ancora"></a>';
	$id(div_ancora).innerHTML = a_ancora;
	$id(id_elem).src = foto;
	foto_atual = id_foto;
	
	var links_navegacao = get_links_navegacao();
	for(var i = 0; i < links_navegacao.length; i++){
		if(foto_atual == 1)
			links_navegacao[i].innerHTML = '<span rel="anterior">&laquo; anterior</span> <a href="#" onclick="proximo(); return false;" rel="proximo">próxima &raquo;</a>';
		else if(foto_atual == num_fotos)
			links_navegacao[i].innerHTML = '<a href="#" onclick="anterior(); return false;" rel="anterior">&laquo; anterior</a> <span rel="proximo">próxima &raquo;</span>';
		else
			links_navegacao[i].innerHTML = '<a href="#" onclick="anterior(); return false;" rel="anterior">&laquo; anterior</a> <a href="#" onclick="proximo(); return false;" rel="proximo">próxima &raquo;</a>';
	}
	//window.location = '#'+ancora;
}
//deixa apenas a foto clicada com a class on
function troca_classe(elm, elm_ativar){
	if(elm.hasChildNodes()){
		for(var i = 0; i < elm.childNodes.length; i++)
			troca_classe(elm.childNodes[i], elm_ativar);
	}
	if(elm.className == 'box-thumb-on')
		elm.className = 'box-thumb';
	if(elm.id == 'f'+elm_ativar)
		elm.className = 'box-thumb-on';
}
//chama a função que exibe a foto grande
function vai_volta(id_foto, foto){
	id_foto = parseInt(id_foto);
	troca_src('foto_grande', id_foto, 'foto' + id_foto, 'div_ancora', foto);
}
//exibe uma foto grande
function troca_foto(id_foto, foto){
	var url_foto = foto.replace('tb_', '');
	var loader = new ImageLoader(url_foto);
	$id('foto_grande').src = 'http://cifraclub.terra.com.br/cifraclubnews/ajax-loader.gif';
	loader.loadEvent = function(url, image){
		vai_volta(id_foto, url_foto);
	}
	loader.load();
}
//exibe a foto anterior
function anterior(){
	if(foto_atual - 1 == -1)
		return false;
	try{
		troca_foto(foto_atual - 1, $id('thumb' + parseInt(foto_atual - 1)).src);
	}
	catch(e){
		paginacao_fotos(pagina_atual - 1, site, dns);
		troca_foto_delayed(foto_atual - 1);
	}
}
//exibe a próxima foto
function proximo(){
	if(foto_atual + 1 == num_fotos)
		return false;
	try{
		troca_foto(foto_atual + 1, $id('thumb' + parseInt(foto_atual + 1)).src);
	}
	catch(e){
		paginacao_fotos(pagina_atual + 1, site, dns);
		troca_foto_delayed(foto_atual + 1);
	}
}
//exibe a foto, mas espera o retorno do ajax
var controle = 0;
function troca_foto_delayed(foto){
	try{
		troca_foto(foto, $id('thumb' + parseInt(foto)).src);
		clearTimeout(controle);
	}
	catch(e){
		controle = setTimeout('troca_foto_delayed('+foto+')', 100);
	}
}
function set_foto(url){
	var pos = url.indexOf("#");
	if(pos === -1)
		return false;
	else 
		var ancora = url.substring(pos + 5, url.length);
	var num_pagina = 1;
	if(ancora > 30)
		num_pagina = Math.ceil(parseInt(ancora) / 30);
	paginacao_fotos(num_pagina, site, dns);
	troca_foto_delayed(ancora);
}
//retorna os divs com os links de navegação das fotos: anterior e próximo
function get_links_navegacao(){
	var box_foto = $id('box-foto');
	var links_navegacao = new Array();
	var k = 0;
	for(var i = 0; i < box_foto.childNodes.length; i++){
		if(box_foto.childNodes[i].className == 'nav-fotos'){
			links_navegacao[k] = box_foto.childNodes[i];
			k++;
		}
	}
	return links_navegacao;
}
//completa o strong com a url de acordo com o que o usuário digitar input
function completa_url(valor){
	$id('login_usuario').innerHTML = valor;
}
//valida o formulario de login
function valida_login(frm){
	$id('msg_login').style.display = 'none';
	if(frm.login.value.length < 2){
		$id('msg_login').innerHTML = 'Por favor, digite um login válido';
		$id('msg_login').style.display = 'block';
		return false;
	}
	if(frm.senha.value.length < 2){
		$id('msg_login').innerHTML = 'Por favor, digite uma senha válida';
		$id('msg_login').style.display = 'block';
		return false;
	}
	return true;
}
//valida o formulario de esqueceu_senha
function valida_esqueceu_senha(frm){
	$id('msg_esqueceu_senha').style.display = 'none';
	if(!valida_email(frm.email.value)){
		$id('msg_esqueceu_senha').innerHTML = 'Por favor, digite um email válido';
		$id('msg_esqueceu_senha').style.display = 'block';
		return false;
	}
	return true;
}
//valida o formulario de novo login
function valida_novo_login(frm){
	$id('msg_indisponivel').style.display = 'none';
	if(frm.login_novo.value.length < 2){
		$id('msg_indisponivel').innerHTML = 'Por favor, digite um login válido';
		$id('msg_indisponivel').style.display = 'block';
		return false;
	}
	return true;
}
//valida um email
function valida_email(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string"){
		if(er.test(mail))
		return true;
	}
	else if(typeof(mail) == "object"){
		if(er.test(mail.value))
		return true;
	}
	else
		return false;
}
/***************************************************************************
 * A simple JavaScript image loaderimage loader
 * @author Cuong Tham
 * @url http://thecodecentral.com/2008/02/21/a-useful-javascript-image-loader
 * @usage
 * var loader = new ImageLoader('IMAGE_URL');
 * //set event handler
 * loader.loadEvent = function(url, image){
 *   //action to perform when the image is loaded
 *   document.body.appendChild(image);
 * }
 * loader.load();
 */
function addListener(element, type, expression, bubbling){
	bubbling = bubbling || false;
	if(window.addEventListener){ // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	}else if(window.attachEvent){ // IE
		element.attachEvent('on' + type, expression);
		return true;
	}else
		return false;
}

var ImageLoader = function(url){
	this.url = url;
	this.image = null;
	this.loadEvent = null;
};

ImageLoader.prototype = {
	load:function(){
		this.image = document.createElement('img');
		var url = this.url;
		var image = this.image;
		var loadEvent = this.loadEvent;
		addListener(
			this.image,
			'load',
			function(e){
				if(loadEvent != null)
					loadEvent(url, image);
			},
			false
		);
		this.image.src = this.url;
	},
	getImage:function(){
		return this.image;
	}
};