window.onload = function(){
	traduzURL();
	getInput();
}

String.prototype.text2url = function(){
	var chars = new Array ('&','à','á','â','ã','ä','å','æ','ç','è','é',
						 'ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô',
						 'õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ','À',
						 'Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë',
						 'Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö',
						 'Ø','Ù','Ú','Û','Ü','Ý','Þ','€','\"','ß','<',
						 '>','¢','£','¤','¥','¦','§','¨','©','ª','«',
						 '¬','­','®','¯','°','±','²','³','´','µ','¶',
						 '·','¸','¹','º','»','¼','½','¾', ' ', ':',
						 '!','@','#','$','%','¨','&','*','(',')','_','+',
						 "[",'{','}', "'");
	
	var entities = new Array ('e','a','a','a','a','a','a',
							'ae','c','e','e','e','e','i',
							'i','i','i','o','n','o','o',
							'o','o','o','o','u','u','u',
							'u','y','','y','a','a','a',
							'a','a','a','ae','c','e','e',
							'e','e','e','e','e','e','e','n',
							'o','o','o','o','o','o','u',
							'u','u','u','y','-','e','-','b',
							'-','-','c','f','x','y','-','s','-',
							'c','a','-','-','-','r','-','-','-',
							'2','3','-','u','-','-','2','1',
							'-','-','-','-','-', '-', '-',
							'-','-','-','-','-','-','-','-','-','-','-','-',
							'-','-','-', '');

	newString = this.toLowerCase();
	for (var i = 0; i < chars.length; i++){
		myRegExp = new RegExp();
		myRegExp.compile('['+chars[i]+']','g');
		newString = newString.replace (myRegExp, entities[i]);
	}
	myRegExp2 = new RegExp();
	myRegExp2.compile("([^a-z0-9]+)",'g');
	newString = newString.replace (myRegExp2, "-");
	return newString;
}

function traduzURL(){
	var x = document.getElementById("pURL");
	if(x){
		var label = x.getElementsByTagName("label")[0];
		var arrField = label.childNodes[0].nodeValue.replace("URL (", "").replace(")","").split(",");
		var field = document.getElementById(arrField[0]);
		label.childNodes[0].nodeValue = "URL"
		field.onkeyup = new Function("toURL(this);");
		field.onblur = new Function("urlTest('"+arrField[1]+"', '"+arrField[2]+"');");
		
		var input = x.getElementsByTagName("input")[0];
		if(input.value != ""){
			URL_SETADA = input.value;
			VLR_PADRAO = field.value;
		} else {
			URL_SETADA = "";
			VLR_PADRAO = "";
		}
		input.onblur = new Function("toURL2urlTest(this.value.text2url(), '"+arrField[1]+"', '"+arrField[2]+"');");
	}
}

function urlTest(tab, cam){
	var x = document.getElementById("pURL").getElementsByTagName("input")[0].value;
	if(x != "" && URL_SETADA != x){
		x_urlTest(x, tab, cam, showTestURL);
	}
}

function showTestURL(r){
	var r = r.split("|");
	var x = document.getElementById("pURL");
	var span = x.getElementsByTagName("span")[0];
	var url = x.getElementsByTagName("input")[0];
	url.value = r[1];
	
	
	if(VLR_PADRAO.text2url() == r[1] || r[0] == "A"){ //Alterado
		span.className = "no";
		span.title = "URL já cadastrada. Foi acrescentado ao final do identificador um contador.";
	} else { //Mantido
		span.className = "";
	}
}

function toURL2urlTest(e, tab, cam){
	var x = document.getElementById("pURL");
	var url = x.getElementsByTagName("input")[0];
	URL_SETADA = url.value = e;
	if(e != URL_SETADA){
		urlTest(tab, cam);
	}
}

function toURL(e){
	var x = document.getElementById("pURL");
	var span = x.getElementsByTagName("span")[0];
	var url = x.getElementsByTagName("input")[0];
	span.className = "";
	url.value = e.value.text2url();
}

function GetCookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function SetCookie(name,value,expires) {
    document.cookie = name + "=" +escape(value) + ((expires) ? ";expires=" + expires.toGMTString() : "");
}

function hideMenu() {
	var menu, conteudo, submenu;
	menu = document.getElementById("menu");
	conteudo = document.getElementById("conteudo");
	submenu = menu.childNodes;

	if (!document.getElementById) return;

	for (var i = 0; i < submenu.length; i++) {
		if (submenu[i].className == "boxcontent") {
			v = submenu[i].style.display;
			if ((v == null) || (v == "none")) {
				document.getElementById("menu_size").className = "menu_max";
				submenu[i].style.display = "block";
				conteudo.style.borderLeftWidth = "165px";
				menu.style.width = "150px";
				menu.style.marginLeft = "-165px";
				SetCookie('menu_size','max');
			} else {
				document.getElementById("menu_size").className = "menu_min";
				submenu[i].style.display = "none";
				conteudo.style.borderLeftWidth = "65px";
				menu.style.width = "50px";
				menu.style.marginLeft = "-65px";
				SetCookie('menu_size','min');
			}
		}
	}
}

function mark(a) {
		var x = document.forms[a.form.name].elements[a.name];
		
		if (a.id.substr(-1) == 'c') {
				if (a.checked == false) {
						for(i=1; i<x.length; i++) x[i].checked = false;
				}
		} else {
				for(i=0; i<x.length; i++) x[i].checked = (x[i].value == 'c') ? true : x[i].checked;
		}
}

function markAll(form, name) {
		var test, es, i;
		form = document.getElementById(form);
		tmp = form.getElementsByTagName('input');
		es = new Array();
		test = true;
		
		for(i = 0; i< tmp.length; i++){
			if(tmp[i].type == "checkbox" && !tmp[i].disabled && tmp[i].name == name)
				es.push(tmp[i]);
		}
		
		for(i=0; i<es.length; i++) {
			if (es[i].checked == true) test = false;
		}
		for(i=0; i<es.length; i++) es[i].checked = test;
}

// changeSelection(this, 'nome do select que vai alterar(mesmo que o do objeto)', 'frase padrão no primeiro option');
// EXEMPLO: changeSelection(this, 'setor', 'Selecione um Setor:');
function changeSelection(a, b, c) {
    var chooser = a.form.elements[b];
    chooser.options.length = 0;
    var choice = a.options[a.selectedIndex].value;
    var db = eval(b+"[choice]");
    chooser.options[0] = new Option(c, "", true, false);
    if (choice != "") {
        for (var i = 0; i < db.length; i++) chooser.options[i + 1] = new Option(db[i].text, db[i].value);
    }
}

// selectOption("nome do formulario", ("b,c,d" correspondem "a,b,c" da função "changeSelection"), "valor da opção para selecionar");
// EXEMPLO selectOption('formFuncionario', 'empresa', 'setor', 'Selecione um Setor:', '2');
function selectOption(a, b, c, d, e) {
	var form = eval("document."+a);
	var element = form.elements[c];
	changeSelection(form.elements[b], c, d);
	for(i=0; i<element.length; i++){
		if (element[i].value == e) element[i].selected = true;
	}
}

function openWindow(url, propriedades) {
  window.open(url,'_blank',"toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no," + propriedades);
}

function goUrl(url) {
  parent.location = url;
}
var tags = new Array();
tags['b'] = new Array("[n]","[/n]");
tags['i'] = new Array("[i]","[/i]");
tags['s'] = new Array("[s]","[/s]");
tags['t'] = new Array("[titulo]","[/titulo]");
function formattext(z,k){
	var x = document.getElementById(z);
	var text;
	c = tags[k][0];
	f = tags[k][1];
	if(document.selection){
		x.focus();
		sel = document.selection.createRange();
		if(sel.text.indexOf(c) != -1){
			var text = sel.text;
			text = text.replace(c,'');
			text = text.replace(f,'');
			sel.text = text;
		} else {
			sel.text = c + sel.text + f;
		}
		//x.focus();
	} else {
		var start = x.selectionStart;
		var end = x.selectionEnd;
		var cursor = end;
		var scrollTop = x.scrollTop;
		var aux = c+f;
		var text = x.value.substr(start, end - start);
		
		if(text.indexOf(c) != -1){
			text = text.replace(c,'');
			text = text.replace(f,'');
			aux = start+text.length;
			text = x.value.substr(0,start)+text+x.value.substr(end);
			end = aux;
		} else {
			text = x.value.substr(0,start)+c+text+f+x.value.substr(end);
			end += aux.length;
		}
		x.focus();
		x.value = text;
		x.selectionStart = start;
		x.selectionEnd = end;
		x.scrollTop = scrollTop;
	}
}
function addLink(z){
	var y = document.getElementById(z);
	var text = (document.selection) ? document.selection.createRange().text : y.value.substr(y.selectionStart, y.selectionEnd - y.selectionStart);
	if(text.indexOf("[link=") != -1){
		c = text.substr(0,text.indexOf("]")+1);
		tags['a'] = new Array(c,"[/link]")
		formattext(z,'a');
	} else {
		var url = prompt("URL do link:","http://");
		if(url){
			var lnk = (text == "") ? prompt("Descrição do link:") : "";
			
			tags['a'] = new Array("[link="+url+"]"+lnk,"[/link]")
			formattext(z,'a');
		}
	}
}
function addList(z){
	var y = document.getElementById(z);
	var x = y.value.split("");
	x = x[getSelectionEnd(y)-1];
	var text = (document.selection) ? document.selection.createRange().text : y.value.substr(y.selectionStart, y.selectionEnd - y.selectionStart);
	tags['ul'] = new Array();
	tags['ul'][0] = ((x == null || x == 0) ? "" : "\r\n")+"[lista]\r\n\t[*]"+((text != "") ? "" : "Exemplo linha 1");
	tags['ul'][1] = "\r\n\t[*]Exemplo linha 2\r\n\t[*]Exemplo linha 3\r\n[/lista]\r\n";
	formattext(z,'ul');
	if(text == ""){
		if(document.selection){
			y.select();
			var aux = document.selection.createRange();
			setSelectionRange(y,aux.text.indexOf("Exemplo linha 1")-1,aux.text.indexOf("Exemplo linha 1")+14);
		} else {
			text = y.value.substr(y.selectionStart, y.selectionEnd - y.selectionStart);
			if(text.indexOf("Exemplo linha 1") != -1){
				var start, end, aux;
				aux = "Exemplo linha 1"
				start = y.value.indexOf(aux);
				end = start + aux.length;
				y.setSelectionRange(start, end);
			}
		}
	}
}

function setSelectionRange(input, start, end) {
	if (document.selection) {
		var range = input.createTextRange();
		range.collapse(true);
		range.moveStart("character", start);
		range.moveEnd("character", end - start);
		range.select();
	} else {
		input.setSelectionRange(start, end);
	}
}

function getSelectionStart(input) {
	if (document.selection){
		var range = document.selection.createRange();
		var isCollapsed = range.compareEndPoints("StartToEnd", range) == 0;
		if (!isCollapsed)
			range.collapse(true);
		var b = range.getBookmark();
		return b.charCodeAt(2) - 2;
	} else {
		return input.selectionStart;
	}
}

function getSelectionEnd(input) {
	if (document.selection){
		var range = document.selection.createRange();
		var isCollapsed = range.compareEndPoints("StartToEnd", range) == 0;
		if (!isCollapsed)
			range.collapse(false);
		var b = range.getBookmark();
		return b.charCodeAt(2) - 2;
	} else {
		return input.selectionEnd;
	}
}

function exibirFormatado(x){
	var z = document.getElementById("viewer-"+EL_FORMATED);
	var y = document.getElementById(EL_FORMATED);
	z.innerHTML = x;
	z.style.display = "block";
	y.style.display = "none";
}

function editar(e, z){
	var funcao;
	var p = e.parentNode;
	var as = p.getElementsByTagName("a");
	as[0].className = "this";
	as[1].className = "";
	
	var textarea = p.parentNode.parentNode.getElementsByTagName("textarea")[0];
	p = p.parentNode.getElementsByTagName("p")[0];
	as = p.getElementsByTagName("a");
	for(var i = 0; i < as.length; i++){
		as[i].style.color = "#000000";
		as[i].style.cursor = "pointer";
	}
	as[0].onclick = new Function("formattext('"+textarea.id+"','b'); return false;");
	as[1].onclick = new Function("formattext('"+textarea.id+"','i'); return false;");
	as[2].onclick = new Function("formattext('"+textarea.id+"','s'); return false;");
	as[3].onclick = new Function("formattext('"+textarea.id+"','t'); return false;");
	as[4].onclick = new Function("addList('"+textarea.id+"'); return false;");
	as[5].onclick = new Function("addLink('"+textarea.id+"'); return false;");
	
	var z = document.getElementById("viewer-"+EL_FORMATED);
	var y = document.getElementById(EL_FORMATED);
	z.style.display = "none";
	y.style.display = "block";
}

function exibir(e, z){
	var p = e.parentNode;
	var as = p.getElementsByTagName("a");
	as[0].className = "";
	as[1].className = "this";
	
	p = p.parentNode.getElementsByTagName("p")[0];
	as = p.getElementsByTagName("a");
	for(var i = 0; i < as.length; i++){
		as[i].onclick = new Function("return false;");
		as[i].style.color = "#666666";
		as[i].style.cursor = "default";
	}
	
	var x = document.getElementById(z);
	EL_FORMATED = z;
	x_exibir(x.value, z, exibirFormatado);
}

function clearIt(e) { if(e) { while (e.hasChildNodes()) e.removeChild(e.childNodes[0]); } }


function expand(id){
	var elExpand, idExpand;
	
	idExpand = "ctrl_" + id;
	elId = document.getElementById(id);
	elExpand = document.getElementById(idExpand);
	cook = "ctrl_" + id;
	
	//alert(elExpand.style.display);
	
	if(elExpand.style.display == 'none'){
		elExpand.style.display = "block";
		elId.innerHTML = "<span>[-]</span>";
		elId.setAttribute("title", "Recolher links desta área.");
		elId.className = "off";
		SetCookie(cook, "block");
	} else {
		elExpand.style.display = "none";
		elId.innerHTML = "<span>[+]</span>";
		elId.setAttribute("title", "Mostrar links para conteúdo desta área.");
		elId.className = "on";
		SetCookie(cook, "none");
	}
}


function getInput(){
	var els, unidade;
	
	els = document.getElementsByTagName("input");
	unidade = document.getElementById("unidades");
	
	for(i=0; i < els.length; i++){
		els[i].onclick = new Function("disableUnidade(this.id)");
	}
}

function disableUnidade(id){
	var unidade;
	
	if(unidade = document.getElementById("unidades")){
		if((id == "tipo") || (id == "data") || (id == "bool")){
			unidade.disabled = "disabled";
		} else if((id == "num") || (id == "moeda")){
			unidade.disabled = false;
		}
	}
}


function hide(){
	var el, loading;
	
	el = document.getElementById("imagem");
	el.style.visibility = "hidden";
	
	loading = document.getElementsByTagName("body");
	loading[0].style.background = "url('../imagens/ajax-loader.gif') no-repeat 20px 28px;";
}


function mostra(){
	var el;
	
	el = document.getElementById("imagem");
	el.style.visibility = "visible";
}


function initResize() {
		var i = (navigator.appName == 'Netscape') ? 20 : 0;
		if (document.images[0]) window.resizeTo(document.images[0].width+44, document.images[0].height+(118+i));

		setTimeout("mostra()", 10);
}
