/*
#######################################################################################
#Script com funções necessárias para execução das páginas em geral
#
#Desenvolvido pela Head Trust
#Criado em: 20/08/2008
#Modificado em: 24/08/2008 - 27/01/2009 - 09/07/2009
#######################################################################################
*/

//Direciona para a página especificada
function source(source){
	window.location.href = source;
}

//Aliase para document.getElementById();
function $(idName){
	return document.getElementById(idName);
}

//Gera uma caixa de alerta de confirmação e segue o link
function confirmLocation(text,url){
	if(confirm(text)){
		source(url);
	}
}

//Variavel do ID
var counter = 0;
//Copia o HTML apartir de um ID
function copyField(copied, destiny){
	var local = $(destiny);
	var id = "AutoGerate$" + counter;
	var div = document.createElement('div');
	div.setAttribute("id", id);
	var field = $(copied).innerHTML;
	field += " <input type=\"button\" onclick=\"javascript:copyField('" + copied + "','" + destiny + "')\" value=\"Adicionar mais um\" />";
	field += "<input type=\"button\" onclick=\"javascript:removeField('" + destiny + "','" + id + "')\" value=\"X\" />";
	div.innerHTML = field;
	local.appendChild(div);
	counter++;
}

//Remove um campo adiciona dinamicamente
function removeField(local, id){
	var div = $(local);
	var field = $(id);
	div.removeChild(field);
}

//Simula um click no ID especificado
function clicking(id){
	$(id).click();
}

//Gera o efeito de desaparecer o texto com OnFocus
function onFocus(obj, text){
	if(obj.value == text){
		obj.value = '';
		obj.hasFocus = true;
	}
}

//Gera o efeito de reaparecer o texto com OnBlur
function onBlur(obj, text){
	if(obj.value == ''){
		obj.value = text;
		obj.hasFocus = false;
	}
}

//Adiciona um elemento de verificação de foco nos campos
var objectFields = new Array();
var total = 1;
var actual = 1;
function hasFocus(){
	for(var i = 0, df = document.forms, len = df.length; i < len; i++){
		for(j = 0, els = df[i].elements; j < els.length; j++){
			if( /^text|select|textarea/.test( els[j].type )){
				els[j].hasFocus = false;
				els[j].onfocus = (els[j].onfocus == null) ? function(){this.hasFocus = true;} : els[j].onfocus;
				els[j].onblur = (els[j].onblur == null) ? function(){this.hasFocus = false;} : els[j].onblur;
				objectFields[total] = els[j];
				total++;
			}
		}
	}
}

//Pula para o próximo campo da página
function nextField(){
	actual = (++actual > total) ? 1 : actual
	objectFields[actual].focus();
}

//Pula para o campo anterior da página
function prevField(){
	actual = (--actual < 1) ? total : actual
	objectFields[actual].focus();
}