/* 
 * Faz a chamada assincrona e, ao recarregar a página, habilita a submissão assíncrona dos forms contidos em "destiny"
 */
function loadPage(destiny, src) {
	$("#" + destiny)
			.html(
					'<div id="loading"><img id="iLoading" src="/admin/images/loading.gif" height="60" width="60" alt="Loading..."/></div>');

	$.ajax( {
		cache :false,
		url :src, /* pagina requisitada */

		success : function(ret) {
			$("#" + destiny).html(ret); /* preencimento no div desejado */

			enableAjaxForms(destiny);
		}
	});
}

// --------------------------------------------------------------------------------------------------
// ------- funcoes de leitura de arquivos XML do Clothing

// --- lê arquivos xml e retorna json
readXml = function(url) {
	var xml = new JKL.ParseXML(url);
	var json = xml.parse();

	return json;
}

// --- lê o xml de coleções
readXmlColections = function() {
	var url = "xml/colecoes.xml";
	return readXml(url);
}

// --- lê o xml de fotos
readXmlPhotos = function(folder, numFile) {
	// montando url do xml com as fotos
	var urlXml = "xml/" + folder + "/fotos_" + numFile + ".xml";

	return readXml(urlXml);
}

// --- lê o xml de videos
readXmlVideos = function(folder) {
	// montando url do xml com o video
	var urlXml = "xml/" + folder + "/videos.xml";

	return readXml(urlXml);
}

// --------------------------------------------------------------------------------------------------
// --------- funcoes de montagem de innerHtml

// --- constrói e retorna string com o conteúdo da div 'colecoes'
getColecoesInnerHtml = function(arrayColection) {
	var colecoesInnerHtml = '<h2>Cole&ccedil;&otilde;es</h2>'
			+ '<ul class="box-content">';

	// propriedades da tag <a>
	var aHref = '';
	var aTitle = '';
	
	// propriedades da tag <img>	
	var imgSrc = '';
	var imgBorder = '';
	var imgOnclick = '';
	
	var url = '';
	
	var i = 0;
	for (i = 0; i < arrayColection.length; i++) {
	
		if (arrayColection[i].folder != null && arrayColection[i].folder != '') {
			url = '#';
			
			// montando propriedades da tag <a>
	//		aHref = 'href="' + url + '" ';
			aTitle = 'title="' + arrayColection[i].title + '" ';
			
			// montando propriedades da tag <img>		
			imgSrc = 'src="' + arrayColection[i].imgTitle + '" ';
			imgBorder = 'border="0" ';
			imgOnclick = 'onclick="javascript:updateFotosEDesfilesInnerHtml(' +
					'\'' + 
					arrayColection[i].folder + 
					'\', \'' + 
					arrayColection[i].imgTitlePhotos + '\' , ' +
					'1 )" ';
			
			// concatenando tags <a> e <img>, para formar o innerHtml da div 'colecoes' 
			colecoesInnerHtml += '<li><a ' + aHref + aTitle + '>' + 
					'<img ' +  imgSrc + imgBorder + imgOnclick + '/>' +
					'</a></li>';
		}

	}
	
	colecoesInnerHtml += '</ul>' + '<div class="colecoes-base"></div>';
	
	return colecoesInnerHtml;
}

// --- constrói e retorna string com o conteúdo da div 'fotos'
getFotosInnerHtml = function(jsonPhotos, folder, imgTitlePhotos, selectedPage) {

	if (imgTitlePhotos == null || imgTitlePhotos == '') {
		imgTitlePhotos = document.getElementById("imgTitlePhotos").src;
	}
	
	var fotosInnerHtml = '<h2>Fotos</h2><img id="imgTitlePhotos" src="'
			+ imgTitlePhotos
			+ '" />'
//			+ '<div id="thumbs">'
			+ getThumbsInnerHtml(jsonPhotos.photos.photo)
//			+ '</div>'
			+ '<br class="clear" />'
//			+ '<div id="links-paginacao">'
			+ getLinksPaginacaoInnerHtml(jsonPhotos.photos.total, folder, selectedPage)
//			+ '</div>'
			;

	return fotosInnerHtml;
}

//--- constrói e atualiza o conteúdo da div 'fotos'
updateFotosInnerHtml = function(folder, imgTitlePhotos, selectedPage) {
	var jsonPhotos = readXmlPhotos(folder, selectedPage);
	
	document.getElementById("fotos").innerHTML = 
		getFotosInnerHtml(jsonPhotos, folder, imgTitlePhotos, selectedPage);
	
	initGallery();
}

// --- constrói e retorna string com o conteúdo da div 'linksPaginacao'
getLinksPaginacaoInnerHtml = function(totalPhotos, folder, selectedPage) {
	var maxPhotos = 40;
	
	var numPages = totalPhotos % maxPhotos == 0 ? parseInt(totalPhotos
			/ maxPhotos) : parseInt(totalPhotos / maxPhotos) + 1;

	var imgOnclickProximo = '';
	var imgOnclickAnterior = '';
	
	if (numPages != 1) {
		// se a página selecionada não for a última, habilita o link do botão próximo 
		if (selectedPage != numPages) {
			imgOnclickProximo = 'onclick="javascript:updateFotosInnerHtml(\'' 
				+ folder 
				+ '\', \'\', ' 
				+ (selectedPage+1) 
				+ ' )" ';
		}
		// se a página selecionada não for a primeira, habilita o link do botão anterior
		if (selectedPage != 1) {
			imgOnclickAnterior = 'onclick="javascript:updateFotosInnerHtml(\'' 
				+ folder 
				+ '\', \'\', ' 
				+ (selectedPage-1) 
				+ ' )" ';
		}
	}
	
	// definindo propriedades das tags <a> e <img> do botão próximo
//	var aHrefProximo = 'href="#"';
	var aHrefProximo = '';
	var aTitleProximo = 'title="Próximo" ';
	var imgProximo = '<img src="img/content/bt-proximo.gif" border="0" ' + imgOnclickProximo + '/>';
	
	// definindo propriedades das tags <a> e <img> do botão próximo
//	var aHrefAnterior = 'href="#"';
	var aHrefAnterior = '';
	var aTitleAnterior = 'title="Anterior" ';
	var imgAnterior = '<img src="img/content/bt-anterior.gif" border="0" ' + imgOnclickAnterior + '/>';

	// montando tag <li> dos botões próximo e anterior
	var liProximo = '<li class="proximo"><a ' + aHrefProximo + aTitleProximo + "> " + imgProximo + "</a></li>";
	var liAnterior = '<li class="anterior"><a ' + aHrefAnterior + aTitleAnterior + "> " + imgAnterior + "</a></li>";

	
	var linksPaginacaoInnerHtml = '<ul class="fotos-base">'
			+ liProximo
			+ liAnterior;
	
	var aHref = '';
	var aTitle = '';
	var aOnclick = '';
	
	var i = 0;
	for (i = numPages; i > 0; i--) {
		// definindo propriedades da tag dos botões de paginação
//		aHref = 'href="#" ';
		aTitle = 'title="' + i + '" ';
		
		// se i for igual à página selecionda, não habilita o link para atualização de fotos
		if (i == selectedPage) {
			aOnclick = '';
		} else {
			aOnclick = 'onclick="javascript:updateFotosInnerHtml(\'' + folder + '\', \'\',  ' + i + ' )" ';
		}

		// montando tag <li> do botão de paginação
		linksPaginacaoInnerHtml += '<li><a ' + aHref + aTitle + aOnclick + '>' + i + '</a></li>';
	}

	linksPaginacaoInnerHtml += '</ul>';
	
	return linksPaginacaoInnerHtml;
}


// --- constrói e retorna string com o conteúdo da div 'thumbs'
getThumbsInnerHtml = function(arrayPhoto) {
	var thumbsInnerHtml = "<ul class=\"box-content\">";
	
	var aHref = '';
	var aTitle = '';
	var imgSrc = '';
	var imgAlt = '';
	var img = '' ;

	var i = 0;
	for (i = 0; i < arrayPhoto.length; i++) {
	
		// definindo propriedades da tag <a>
		aHref = 'href="' + arrayPhoto[i].photoURL + '" ';
		aTitle = (arrayPhoto[i].title == null || arrayPhoto[i].title == '')
					? ''
					: '" title="' + arrayPhoto[i].title + '" ';
		
		// definindo propriedades da tag <img>
		imgSrc = 'src="' + arrayPhoto[i].thumbURL + '" ';
		imgAlt = 'alt="' + arrayPhoto[i].thumbAlt + '" ';

		// montando tag <img> 
		img = '<img ' +  imgSrc + imgAlt + '" border="0" />' ;
		
		// montando tags <li> e <a>
		thumbsInnerHtml += '<li><a ' + aHref + aTitle + '" class="thickbox" rel="gallery">' + img + '</a></li>';
	}

	thumbsInnerHtml += "</ul>";
	
	return thumbsInnerHtml;
}

//--- constrói e atualiza o conteúdo da div 'fotos'
updateThumbsInnerHtml = function(folderColection, numFile) {
	// lendo primeiro xml de photos
	var jsonPhotos = readXmlPhotos(folderColection, numFile);
	
	var arrayPhoto = jsonPhotos.photos.photo;
	
	document.getElementById("thumbs").innerHTML = getThumbsInnerHtml(arrayPhoto);
}

// --- constrói e retorna string com o conteúdo da div 'desfiles'
getDesfilesInnerHtml = function(video) {
	var urlQuickTime = video.urlQuickTime;
	var urlWMP = video.urlWMP;
	var urlSWF = video.urlSWF;
	var titleImg = video.titleImg;
	var defaultImg = video.defaultImg;
	
	// definindo tag <img>
	var img = '<img src="' + titleImg + '" />';
	
	var objectOrImg = '';
	
	if (urlSWF != null && urlSWF != '') {
		// definindo propriedades da tag <object> e a própria tag <object> 
		var objectData = 'data="' + urlSWF + '"';
		var objectParamValue = 'value="' + urlSWF + '"';
		objectOrImg = '<object type="application/x-shockwave-flash" width="320" height="300" ' + objectData +  '" />'
				+ '<param name="movie" ' + objectParamValue + '" />'
				+ '<param name="wmode" value="transparent" />'
				+ '<p>&nbsp;</p>'
				+ '	</object>';
	} else {
		var defaultImgSrc = 'src="' + defaultImg + '" ';
		objectOrImg = '<img ' + defaultImgSrc + ' width="320" height="300" border="0" />';
	}
	
	// definindo propriedades e tags <li> de Quicktime e Windows Media Player
	var aHrefQuickTime = 
		(urlQuickTime == null || urlQuickTime == '') 
				? '' 
				: aHrefQuickTime = 'href="' + urlQuickTime + '" ';
	
	var liQuickTime = '<li><a ' + aHrefQuickTime 
		+ 'title="Quicktime"><img src="img/content/lnk-quicktime.gif" border="0" /></a></li>';
	
	var aHrefWMP = 
		(urlWMP == null || urlWMP == '')
				? ''
				: 'href="' + urlWMP + '" ';
	
	
	var liWMP = '<li style="width:126px;"><a ' + aHrefWMP 
		+ 'title="Windows Media Player"><img src="img/content/lnk-mediaplayer.gif" border="0" /></a></li>';

	var desfilesInnerHtml = '<h2>Desfiles</h2>' 
		+ img
		+ '<div class="box-content">'
		+ objectOrImg
		+ '</div>'
		+ '<ul class="downloads">'
		+ liQuickTime
		+ liWMP
		+ '</ul>';
	
	return desfilesInnerHtml;
}

//--- constrói e atualiza o conteúdo da div 'desfiles'
updateDesfilesInnerHtml = function(folder) {
	// lendo xml de videos
	var jsonVideos = readXmlVideos(folder);
	
	var arrayVideo = jsonVideos.videos.video;
	
	document.getElementById("desfiles").innerHTML = getDesfilesInnerHtml(arrayVideo);
}

//--- constrói e atualiza o conteúdo das div 'fotos' e 'desfiles'
updateFotosEDesfilesInnerHtml = function(folder, imgTitlePhotos, selectedPage) {
	updateFotosInnerHtml(folder, imgTitlePhotos, selectedPage);
	updateDesfilesInnerHtml(folder);
}


// --- 
initGallery = function() {
	tb_init('#fotos a.thickbox, #fotos area.thickbox, #fotos input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;
}