/**
 * @author jonas
 * @revision 2
 * @date 2009/07/11
 */

// VARIAVEIS DE CONFIGURACAO:
var domain = "http://www.meuscrap.com.br";
var cgiPath = "/cgi-bin";
var directory = "";

// VARIAVEIS DE USO INTERNO:
var xmlCategories = null;
var xmlTumbsLayouts = null;
var categorieSelected = null;
var layoutSelected = null;
var categoryLayoutSelected = null;

var scrapName = null;
var categories = null;
var layouts = null;

var isIE = false;
var isPublic = true;
var isImageLoaded = false;


function initMainScreen()
{
	updateNewScraps();
	updateNewLayouts();
}


function initScreen1()
{
	if (document.getElementById('imageReceived').innerHTML.length > 10) {
		rmImage(document.getElementById('imageReceived').innerHTML);
	}
}

/**
 * Solicita o html referente a tela do passo atual.
 * @param {Object} stepNumber
 */
 function getScreen(screenIdIn)
 {
 	var url = directory + "/criarScrap/screen" + screenIdIn + ".html";
	var httpReq = httpRequisition();
	
	// Funcao que trata a resposta da requisicao:
	httpReq.onreadystatechange = function () {
		if((httpReq.readyState == 4) && (httpReq.status == 200)) {
			content = document.getElementById("conteudo");

			pai = content.parentNode;
			pai.removeChild(content);

	 		pai.innerHTML = httpReq.responseText;
			
			if (screenIdIn == 1) {
				
			} else if (screenIdIn == 2) {
				
				showLoading(true);

				if (isIE) {
					document.getElementById('slider').src = "../images/blank.gif";
					document.getElementById('slider').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'../images/images-zoom/zoom-mover.png\');";

					document.getElementById('framet').src = "../images/blank.gif";
					document.getElementById('framet').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'../images/molduraDefault.png\');";
				}
				
				document.getElementById('anuncioCriar300x250a').style.visibility = "hidden";
				document.getElementById('anuncioCriar300x250a').style.display = "none";

				document.getElementById('anuncioCriar728x90').style.visibility = "hidden";
				document.getElementById('anuncioCriar728x90').style.display = "none";

				getImage(document.getElementById('imageReceived').innerHTML, 'image', 0);
				getCategories();

			} else if (screenIdIn == 3) {
				document.getElementById('anuncioCriar300x250a').style.visibility = "visible";
				document.getElementById('anuncioCriar300x250a').style.display = "block";

				document.getElementById('anuncioCriar300x250a').style.left = "5px";
				document.getElementById('anuncioCriar300x250a').style.top = "145px";

				document.getElementById('anuncioCriar728x90').style.visibility = "hidden";
				document.getElementById('anuncioCriar728x90').style.display = "none";

				doScrap();
			}
		}
	}
		
	httpReq.open("GET", url, true);
	httpReq.send(null);
 }
 
 
function pushImageWeb(urlIn)
{
	var url = domain + cgiPath + "/pushImageWeb.cgi?url=" + urlIn;
	var httpReq = httpRequisition();
	
	// Funcao que trata a resposta da requisicao:
	httpReq.onreadystatechange = function () {
		if((httpReq.readyState == 4) && (httpReq.status == 200)) {
	 		document.getElementById('imageReceived').innerHTML = httpReq.responseText;
			
			// Trata lixo no fim da string.
			if(document.getElementById('imageReceived').innerHTML.indexOf("\r") != -1) {
				document.getElementById('imageReceived').innerHTML = document.getElementById('imageReceived').innerHTML.substring(0, document.getElementById('imageReceived').innerHTML.indexOf("\r"));
			} else if (document.getElementById('imageReceived').innerHTML.indexOf("\n") != -1) {
				document.getElementById('imageReceived').innerHTML = document.getElementById('imageReceived').innerHTML.substring(0, document.getElementById('imageReceived').innerHTML.indexOf("\n"));
			} else if (document.getElementById('imageReceived').innerHTML.indexOf(" ") != -1) {
				document.getElementById('imageReceived').innerHTML = document.getElementById('imageReceived').innerHTML.substring(0, document.getElementById('imageReceived').innerHTML.indexOf(" "));
			}

			getScreen(2);
		}
	}
		
	httpReq.open("GET", url, true);
	httpReq.send(null);
}
 
 
 function getImage(imageIdIn, imageDestIdIn, sizeIn)
 {
	document.getElementById(imageDestIdIn).src = cgiPath + "/getImage.cgi?imageId=" + imageIdIn + "&size=" + sizeIn;
 }
 
 
 function rmImage(imageIdIn)
 {
 	var url = cgiPath + "/rmImage.cgi?imageId=" + imageIdIn;
	var httpReq = httpRequisition();
	
	// Funcao que trata a resposta da requisicao:
	httpReq.onreadystatechange = function () {
		if((httpReq.readyState == 4) && (httpReq.status == 200)) {
			// Resposta.
		}
	}
		
	httpReq.open("GET", url, true);
	httpReq.send(null);
 }
 
 
 function getCategories()
 {
 	var url = cgiPath + "/getCategories.cgi";
	var httpReq = httpRequisition();
	
	// Funcao que trata a resposta da requisicao:
	httpReq.onreadystatechange = function () {
		if((httpReq.readyState == 4) && (httpReq.status == 200)) {
			xmlCategories = httpReq.responseXML;
			updateCategories(xmlCategories);
		}
	}
		
	httpReq.open("GET", url, true);
	httpReq.send(null);
 }
 
 
 function updateCategories(xmlIn)
 {
	categories = new Array(xmlIn.getElementsByTagName('categorie').length);
	inner = "";

	for (var i = 0; i < xmlIn.getElementsByTagName('categorie').length; i++) {

		categories[i] = new Array(3); // nome; diretório; descricao.

		categories[i][0] = xmlIn.getElementsByTagName('categorie')[i].getAttribute('name');
		categories[i][1] = xmlIn.getElementsByTagName('categorie')[i].getAttribute('directory');
		categories[i][2] = xmlIn.getElementsByTagName('categorie')[i].getAttribute('desc');
		
		addOption(document.getElementById('selectCategory'), String(i), categories[i][0]);
	}
	selectCategorie(0);
 }
 
 
 function selectCategorie(categorieIdx)
 {
 	categorieSelected = categories[categorieIdx];
	
	getInfoLayouts(categorieSelected[1]);
 }
 
 
 function getInfoLayouts(categorieIn)
 {
 	var url = cgiPath + "/getInfoLayouts.cgi?categorieName=" + categorieIn;
	var httpReq = httpRequisition();

	httpReq.onreadystatechange = function () {
		if ((httpReq.readyState == 4) && (httpReq.status == 200)) {
			xmlTumbsLayouts = httpReq.responseXML;
			getTumbsLayouts(xmlTumbsLayouts);
		}
	}
	
	httpReq.open("GET", url, true);
	httpReq.send(null);
 }

 
 function getTumbsLayouts(xmlIn)
 {
	layouts = new Array(xmlIn.getElementsByTagName('layout').length);
	imageList = new Array(xmlIn.getElementsByTagName('layout').length);

	document.getElementById("ulHoverbox").innerHTML = "";
	
	for (var i = 0; i < xmlIn.getElementsByTagName('layout').length; i++) {

		layouts[i] = new Array(5); //
		
		layouts[i][0] = xmlIn.getElementsByTagName('layout')[i].getAttribute('name');
		layouts[i][1] = xmlIn.getElementsByTagName('layout')[i].getAttribute('filename');
		layouts[i][2] = xmlIn.getElementsByTagName('layout')[i].getAttribute('author');
		layouts[i][3] = xmlIn.getElementsByTagName('layout')[i].getAttribute('date');
		layouts[i][4] = xmlIn.getElementsByTagName('layout')[i].getAttribute('desc');

		var urlImage = directory + "/layouts/" + categorieSelected[1] + "/thumb" + layouts[i][1];

		document.getElementById("ulHoverbox").innerHTML += '<li><a href="javascript:selectLayout(' + String(i) + ');"><img src="' + urlImage + '" alt="Moldura" /><img src="' + urlImage + '" alt="Moldura" class="preview" /></a></li>';
	}
 }
 
 function updateTumbsLayouts(xmlIn)
 {
 	alert(xmlIn);
 }


 function selectLayout(layoutIdx)
 {
 	layoutSelected = layouts[layoutIdx];
	categoryLayoutSelected = categorieSelected;
	
	if (isIE) {
		document.getElementById('framet').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + cgiPath + "/getLayout.cgi?categoriePath=" + categorieSelected[1] + "&layoutFile=" + layoutSelected[1] + "&thumb=false" + "\');";
	} else {
		showLoading(true);
		document.getElementById('framet').src = cgiPath + '/getLayout.cgi?categoriePath=' + categorieSelected[1] + '&layoutFile=' + layoutSelected[1] + '&thumb=false';
	}
 }
 
 
 function showLoading(state)
 {
 	if (state) {
		document.getElementById('frame').src = "../images/loading.gif";

	} else {
		if (isIE) {
			document.getElementById('frame').src = "../images/blank.gif";
			document.getElementById('frame').style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'../images/mask.png\');";
		} else {
			document.getElementById('frame').src = "../images/mask.png";
		}
	}
 }
 
 
function doScrap()
{
 	var url = cgiPath + "/doScrap.cgi";
	url += "?photoName=" + document.getElementById('imageReceived').innerHTML;
	url += "&categorieDir=" + categoryLayoutSelected[1];
	url += "&layoutName=" + layoutSelected[1];
	
	url += "&scale=" + String(scale);
	url += "&x=" + String(x);
	url += "&y=" + String(y);
	url += "&isPublic=" + String(isPublic);
	
	var httpReq = httpRequisition();

	httpReq.onreadystatechange = function () {
		if ((httpReq.readyState == 4) && (httpReq.status == 200)) {
			scrapName = httpReq.responseText;
			
			var url2 = domain + directory + "/scraps/" + scrapName;
			
			document.getElementById("imgScrap").src = url2;
			
			if (isIE) {
				document.getElementById("textAreaLinkFoto").innerText = url2;
				document.getElementById("textAreaLinkOrkut").innerText = '<a href="' + domain + '"><img src="' + url2 + '" border="0" alt="MeuScrap. Dando vida em suas fotos"/></a>\r\n<h2>D&ecirc; vida as suas fotos! Acesse <a href="http://www.meuscrap.com.br">www.meuscrap.com.br</a> - <a href="http://www.meuscrap.com.br">Montagem de Fotos</a></h2></a>';
			} else {
				document.getElementById("textAreaLinkFoto").innerHTML = url2;
				document.getElementById("textAreaLinkOrkut").innerHTML = '<a href="' + domain + '"><img src="' + url2 + '" border="0" alt="MeuScrap. Dando vida em suas fotos"/></a>\r\n<h2>D&ecirc; vida as suas fotos! Acesse <a href="http://www.meuscrap.com.br">www.meuscrap.com.br</a> - <a href="http://www.meuscrap.com.br">Montagem de Fotos</a></h2></a>';
			}
			
			document.getElementById("salvar-scrap").innerHTML = '<a href="' + domain + cgiPath + "/downloadScrap.cgi?scrapName=" + scrapName + '"><img src="../images/icon-salvar2.gif" width="30" height="26" border="0" align="absmiddle" /> Salvar Scrap no seu computador </a>';
			
			rmImage(document.getElementById('imageReceived').innerHTML);
		}
	}
	
	httpReq.open("GET", url, true);
	httpReq.send(null);
	
}


function saveScrap()
{
	if (layoutSelected != null) {
		updateScaleXY();
		isPublic = document.getElementById('checkIsPublic').checked;
		getScreen(3);	
	} else {
		alert('Selecione uma moldura ao lado!');
	}
}


function updateNewLayouts()
{
	// Pega o xml com os dados dos novos layouts:
	
	// Atribui o nome dos thumbs nos respectivos images:
	for (var i = 0; i < 8; i++) {
		var urlImage = directory + "/layouts/new/thumbcomposicao";
		if (i < 10)
			urlImage += '0'; 
		urlImage += String(i + 1) + ".png";
		document.getElementById("ulHoverboxMuralLayouts").innerHTML += '<li><a href="' + 'javascript:alert(\'Crie um scrap enviando uma foto. Utilize um dos campos acima!\')' + '"><img style="width: 100px; height: 100px;" src="' + urlImage + '" alt="Layout - Montagem" /><img src="' + urlImage + '" alt="Layout - Montagem" class="preview" /></a></li>';
	}
}

function updateNewScraps()
{
 	var url = cgiPath + "/getNewScrap.cgi?num=8";
	var httpReq = httpRequisition();

	httpReq.onreadystatechange = function () {
		if ((httpReq.readyState == 4) && (httpReq.status == 200)) {
			var names = httpReq.responseText.split(',');
			for (var i = 7; i >= 0; i--) {
				var urlImage = directory + "/scraps/" + names[i];
				document.getElementById("ulHoverboxMuralScraps").innerHTML += '<li><a href="' + 'javascript:alert(\'Crie um scrap enviando uma foto. Utilize um dos campos acima!\')' + '"><img style="width: 100px; height: 100px;" src="' + urlImage + '" alt="Mural - Montagem" /><img src="' + urlImage + '" alt="Mural - Montagem" class="preview" /></a></li>';
			}
		}
	}
	
	httpReq.open("GET", url, true);
	httpReq.send(null);
}


function downloadScrap()
{
	if (scrapName == null) {
		alert("Erro: Nome do scrap desconhecido!");
		return;
	}
	
 	var url = cgiPath + "/downloadScrap.cgi?scrapName=" + scrapName;
	var httpReq = httpRequisition();

	httpReq.onreadystatechange = function () {
		if ((httpReq.readyState == 4) && (httpReq.status == 200)) {
			alert(httpReq.responseText);
		}
	}
	
	httpReq.open("GET", url, true);
	httpReq.send(null);
}


function sendMail()
{
	if (scrapName == null) {
		alert("Erro: Nome do scrap desconhecido!");
		return;
	}
	
 	var url = cgiPath + "/sendMail.cgi?scrapName=" + scrapName;
	url += "&fromName=" + document.getElementById("inputSeuNome").value;
	url += "&fromMail=" + document.getElementById("inputSeuEmail").value;
	url += "&toName=" + document.getElementById("inputNomeAmigo").value;
	url += "&toMail=" + document.getElementById("inputEmailAmigo").value;

	var httpReq = httpRequisition();

	httpReq.onreadystatechange = function () {
		if ((httpReq.readyState == 4) && (httpReq.status == 200)) {
			alert(httpReq.responseText);
		}
	}
	
	httpReq.open("GET", url, true);
	httpReq.send(null);
}


function addOption(selec, val, tex)
{
	var opt = document.createElement('option');
	
	opt.value = val;
	opt.text = tex;
	
	try {
		selec.add(opt, null);	// NS FF
	} catch(e) {
		selec.add(opt); 		// IE
	}
}

