/////////////////////////
// InArray Prototype
/////////////////////////
Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
	var i;
	for (i=0; i < this.length; i++) {
		// Matches identical (===), not just similar (==).
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};


/////////////////////////
// Script Cross-browse //
/////////////////////////
get_element = document.all ?
	function (s_id) { return document.all[s_id] } :
	function (s_id) { return document.getElementsByName(s_id) };

/////////////////////////
// carrega arquivo CSS //
/////////////////////////

document.write ('<link rel=\"stylesheet\" href=\"../admin/templates/css/estilo.css\">');

////////////////////////////////////////////
// Função utilizada em usuários por grupo //
////////////////////////////////////////////

function combo(grupo_id) {
	var opt1 = grupo_id.selectedIndex;
	grupo_id = grupo_id.options[opt1].value;
	parent.corpo.location.href = "../admin/GerenciaGrupos.php?comboPrincipal=1&grupo_id=" + grupo_id + "&letra=%{letra}";
}

///////////////////////////////////////
// Move Opcao para cima e para baixo //
///////////////////////////////////////

// http://www.mattkruse.com/javascript/selectbox/source.html

function selectUnselectMatchingOptions(obj,regex,which,only){if(window.RegExp){if(which == "select"){var selected1=true;var selected2=false;}else if(which == "unselect"){var selected1=false;var selected2=true;}else{return;}var re = new RegExp(regex,"i");for(var i=0;i<obj.options.length;i++){if(re.test(obj.options[i].text)){obj.options[i].selected = selected1;}else{if(only == true){obj.options[i].selected = selected2;}}}}}
function selectMatchingOptions(obj,regex){selectUnselectMatchingOptions(obj,regex,"select",false);}
function selectOnlyMatchingOptions(obj,regex){selectUnselectMatchingOptions(obj,regex,"select",true);}
function unSelectMatchingOptions(obj,regex){selectUnselectMatchingOptions(obj,regex,"unselect",false);}
function sortSelect(obj){var o = new Array();if(obj.options==null){return;}for(var i=0;i<obj.options.length;i++){o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;}if(o.length==0){return;}o = o.sort(
function(a,b){if((a.text+"") <(b.text+"")){return -1;}if((a.text+"") >(b.text+"")){return 1;}return 0;});for(var i=0;i<o.length;i++){obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);}}
function selectAllOptions(obj){for(var i=0;i<obj.options.length;i++){obj.options[i].selected = true;}}
function unselectAllOptions(obj){for(var i=0;i<obj.options.length;i++){obj.options[i].selected = false;}}
function moveSelectedOptions(from,to){if(arguments.length>3){var regex = arguments[3];if(regex != ""){unSelectMatchingOptions(from,regex);}}for(var i=0;i<from.options.length;i++){var o = from.options[i];if(o.selected){to.options[to.options.length] = new Option( o.text, o.value, false, false);}}for(var i=(from.options.length-1);i>=0;i--){var o = from.options[i];if(o.selected){from.options[i] = null;}}if((arguments.length<3) ||(arguments[2]==true)){sortSelect(from);sortSelect(to);}from.selectedIndex = -1;to.selectedIndex = -1;}
function copySelectedOptions(from,to){var options = new Object();for(var i=0;i<to.options.length;i++){options[to.options[i].value] = to.options[i].text;}for(var i=0;i<from.options.length;i++){var o = from.options[i];if(o.selected){if(options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text){to.options[to.options.length] = new Option( o.text, o.value, false, false);}}}if((arguments.length<3) ||(arguments[2]==true)){sortSelect(to);}from.selectedIndex = -1;to.selectedIndex = -1;}
function moveAllOptions(from,to){selectAllOptions(from);if(arguments.length==2){moveSelectedOptions(from,to);}else if(arguments.length==3){moveSelectedOptions(from,to,arguments[2]);}else if(arguments.length==4){moveSelectedOptions(from,to,arguments[2],arguments[3]);}}
function copyAllOptions(from,to){selectAllOptions(from);if(arguments.length==2){copySelectedOptions(from,to);}else if(arguments.length==3){copySelectedOptions(from,to,arguments[2]);}}
function swapOptions(obj,i,j){var o = obj.options;var i_selected = o[i].selected;var j_selected = o[j].selected;var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);o[i] = temp2;o[j] = temp;o[i].selected = j_selected;o[j].selected = i_selected;}
function removeSelectedOptions(from){for(var i=(from.options.length-1);i>=0;i--){var o=from.options[i];if(o.selected){from.options[i] = null;}}from.selectedIndex = -1;}
function removeAllOptions(from){for(var i=(from.options.length-1);i>=0;i--){from.options[i] = null;}from.selectedIndex = -1;}
function addOption(obj,text,value,selected){if(obj!=null && obj.options!=null){obj.options[obj.options.length] = new Option(text, value, false, selected);}}
function moveOptionUp(obj){for(i=0;i<obj.options.length;i++){if(obj.options[i].selected){if(i != 0 && !obj.options[i-1].selected){swapOptions(obj,i,i-1);obj.options[i-1].selected = true;}}}}
function moveOptionDown(obj){for(i=obj.options.length-1;i>=0;i--){if(obj.options[i].selected){if(i !=(obj.options.length-1) && ! obj.options[i+1].selected){swapOptions(obj,i,i+1);obj.options[i+1].selected = true;}}}}
function findOptions(obj,text){for(var i=0;i<obj.options.length;i++){ if( obj.options[i].text.toLowerCase() == text.toLowerCase() ){ return true }} return false; }
function OptionsSelectedQtd(obj){
	var num = 0; 
	for(var i=0;i<obj.options.length;i++){ 
		if( obj.options[i].selected ){ 
			num++;
		}
	} 
	return num; 
}
function OptionsSelectedValue(obj){ 
	var num = 0; 
	var str = ''; 
	for(var i=0;i<obj.options.length;i++){ 
		if( obj.options[i].selected ){ 
			num++; 
			str = obj.options[i].text; 
		}
	} 
	return (num>1)?'':str; 
}

function OptionsSelectedValue2(obj){ 
	var num = 0; 
	var str = ''; 
	for(var i=0;i<obj.options.length;i++){ 
		if( obj.options[i].selected ){ 
			num++; 
			str = obj.options[i].value; 
		}
	} 
	return (num>1)?'':str; 
}

function OptionsSelectedValues(obj){ 
	var arr = new Array(); 
	var str = '';
	var cnt = 0;
	for(var i=0;i<obj.options.length;i++){ 
		if( obj.options[i].selected ){ 
			arr[cnt] = obj.options[i].value; 
			cnt++;
		}
	} 
	str = arr.join(';');
	return str; 
}


////////////////////
// Excluir Imagem //
////////////////////

function ExcluirImagem(form, campo) {
	form1.excluirImg.value = campo;
	form1.editar.value = "1";
	form1.submit();
}


////////////////////////////////
// Atualiza o campo cidade_id //
////////////////////////////////
function jsdump2(obj,objName){
	var result = ""
	for (var i in obj) {
		result += objName + "." + i + " = " + obj[i] + "<br>"
	}
	teste = window.open();
	teste.document.writeln(result);
}
function jsdump(obj,objName,isret){
	var result = "<table border=1>";
	objName = '';
	for (var i in obj) {
		result += '<tr>';
		result += '<td>';
		result += objName + "." + i;
		result += '</td>';
		result += '<td>';
		//alert(objName+' '+typeof(obj[i]));
		if( typeof(obj[i]) == 'function' ){
			result += 'Function';
			result += "</td>";
			result += "<td>";
			result += '/* nao exibe */';
			result += "</td>";
		} else if( typeof(obj[i]) == 'object' ){
			result += jsdump(obj[i],'',true);
		} else {
			result += typeof(obj[i]);
			result += "</td>";
			result += "<td>";
			result += obj[i];
		}
		result += "</td>";
		result += '</tr>';
	}
	result += "</table>";
	if( isret ) {
		return result;
	} else {
		teste = window.open();
		teste.document.writeln(result);
	}
}
function execUpdateUF(){
	if( get_element('estado_id') ) {
		var my_cmp   = get_element('estado_id');
	} else if( get_element('estado') ){
		var my_cmp    = get_element('estado'   );
	} else if( get_element('estados') ){
		var my_cmp    = get_element('estados'  );
	}
	my_ind = my_cmp.selectedIndex;
	my_estado_id = my_cmp[my_ind].value;
	//UpdateUF = get_element('UpdateUF');

	UpdateUF.src='GerenciaUsuarios.php?UpdateUF='+my_estado_id;
}

function execUpdateUF2(campo_estado,campo_cidade){
	var my_cmp    = get_element(campo_estado);
	var my_cidade = get_element(campo_cidade);
	var lurl      = '';

	//jsdump(my_cmp,'my_cmp');
	//return;
	my_ind = my_cmp.selectedIndex;
	my_estado_id = my_cmp[my_ind].value;
	//alert( my_ind + ' ' + my_estado_id );

	if( !my_estado_id ) {
		my_estado_id = '0';
	}

	lurl += '../usuario/GerenciaEstados.php?UpdateUF='+my_estado_id;
	lurl += '&campo_estado='+campo_estado;
	lurl += '&campo_cidade='+campo_cidade;
	UpdateUF.src=lurl;
	if( my_estado_id > 0 ){
		my_cidade.disabled = false;
	} else {
		my_cidade.disabled = true;
	}
}
////////////////////////////////
// Atualiza o campo cidades[] //
////////////////////////////////


function execUpdateUFEmail(obj){
	get_element = document.all ?
		function (s_id) { 
return document.all[s_id] } :
		function (s_id) { 
return document.getElementsByName(s_id) };
	//my_cmp = get_element('estados');
	my_cmp = obj;
	my_ind = my_cmp.selectedIndex;
	my_estado_id = my_cmp[my_ind].value;

	UpdateUF.src='GerenciaEmail.php?UpdateUF='+my_estado_id;
}

//////////////////////////////////////////////////////////
// Altera o botao de submit do form para próxima pagina //
//////////////////////////////////////////////////////////

function execUpdateNivel(){
	selecionado = form1.nivelUsuario.selectedIndex;
	if ((selecionado == "1") || (selecionado == "2")) {
		form1.Pagina.value = "Proxima";
		form1.proxima.disabled = false;
	} else {
		form1.Pagina.value = "Cadastrar";
		form1.proxima.disabled = true;
	}
}

//////////////////////////////////////////////////////////////////
// Remove os espaços em branco no inicio e no fim de uma string //
//////////////////////////////////////////////////////////////////

function Trim(InString) {
	var Count;
	var Ret = "";
	for (Count=0; Count < InString.length; Count++) {
		if(InString.charAt(Count) != " ")
			Ret = Ret + InString.charAt(Count);
	}
	return Ret;
}

///////////////////
// função PARSER //
///////////////////

function parser (InString, Sep) {
	NumSeps = 1;
	for (Count=1; Count < InString.length; Count++) {
		if(InString.charAt(Count) == Sep)
			NumSeps++;
	}
	
	parse = new Object();
	Start=0; Count=1; ParseMark=0;
	LoopCtrl=1;
	while (LoopCtrl==1) {
		ParseMark = InString.indexOf(Sep, ParseMark);
		TestMark = parseInt(ParseMark)+0;
		if ((TestMark==0) || (TestMark==-1)) {
			parse[Count] = InString.substring (Start, InString.length);
			LoopCtrl = 0;
			break;
		}
		parse[Count] = InString.substring (Start, ParseMark);
		Start = ParseMark+1;
		ParseMark = Start;
		Count++;
	}
	parse[0]=Count;
	return (parse);
}

//////////////////////////
// Troca a cor do campo //
//////////////////////////

function cor(campo,cor) {
	campo.style.background = cor;
}

//////////////////////////////////////////////////////////////////////////////////////////
// função para habilitar e desabilitar Propriedades Avançadas em cadernos, textos, etc. //
//////////////////////////////////////////////////////////////////////////////////////////

var datas = new Array();

function verificaPropriedadesAvancadas() {
	var status;
	
	for( var i=0 ; i<=4 ; i++ ){
		if( form1.status[i] ) {
			if( form1.status[i].checked ) {
				status = form1.status[i].value;
			}
		}
	}

	if( status == 'P' || status == 'V' ){
		PropriedadesAvancadas('habilitar');
	} else {
		PropriedadesAvancadas('desabilitar');
		if( status == 'N' || status == 'X' ) {
			PropriedadesAvancadas('desabilitarNA');
		}
	}
}

function PropriedadesAvancadas(acao) {

	function PAdesabilita(campo1,campo2) {
		c1 = eval('form1.'+campo1);
		c2 = eval('form1.'+campo2);
		if (typeof(c1) != "undefined") {
			c1.checked = false;
			c1.disabled = true;
			if (typeof(c2) != "undefined") {
				PAverifica(campo1,campo2);
			}
		}
	}	
	
	function PAhabilita(campo1,campo2) {
		c1 = eval('form1.'+campo1);
		c2 = eval('form1.'+campo2);
		if (typeof(c1) != "undefined") {
			c1.disabled = false;
			if (typeof(c2) != "undefined") {
				PAverifica(campo1,campo2);
			}
		}
	}

	function PAverifica(campo1,campo2){
		c1 = eval('form1.'+campo1);
		c2 = eval('form1.'+campo2);
		if (c1.checked == true) {
			if (c2[1].checked != true) {
				c2[0].checked = true;
			}
			c2[0].disabled = false;
			c2[1].disabled = false;
		} else {
			c2[0].checked = false;
			c2[1].checked = false;
			c2[0].disabled = true;
			c2[1].disabled = true;
		}
	}	
	
	function verificaagenda() {

		if ((form1.agenda.checked == true) && (form1.agenda.disabled == false)) {
			
			function agendaHabilitaCampo(campo, variavel) {
				if (typeof(campo) != "undefined") {
					campo.disabled = false;
					if (typeof(datas[variavel]) != 'undefined') {
						campo.value = datas[variavel];
					}
					cor(campo,'white');
				}
			}

			agendaHabilitaCampo(form1.dataPublicar, 'dataPublicar');
			agendaHabilitaCampo(form1.dataExpirar, 'dataExpirar');
			agendaHabilitaCampo(form1.horaPublicar, 'horaPublicar');
			agendaHabilitaCampo(form1.horaExpirar, 'horaExpirar');

		} else if ((form1.agenda.checked == false) && (form1.agenda.disabled == false)) {			
			
			function agendaDesabilitaCampo(campo, variavel) {
				if (campo.disabled == false) {
					if (campo.value != "undefined") {
						datas[variavel] = campo.value;
					} else {			
						datas[variavel] = "";
					}
					cor(campo,'D4D0C8');
					campo.value = '';
					campo.disabled = true;
				}
			}

			agendaDesabilitaCampo(form1.dataPublicar, 'dataPublicar');
			agendaDesabilitaCampo(form1.dataExpirar, 'dataExpirar');
			agendaDesabilitaCampo(form1.horaPublicar, 'horaPublicar');
			agendaDesabilitaCampo(form1.horaExpirar, 'horaExpirar');

		}
	}

// executa a verificação

	if ((acao == 'desabilitar') || (acao == 'desabilitarNA')) {
	
		PAdesabilita('manchete','tipomanchete');
		PAdesabilita('oculto','tipooculto');
		   
		if (typeof(form1.agenda) != "undefined") {
			form1.agenda.checked = false;
			verificaagenda();
			form1.agenda.disabled = true;
		}

		if (typeof(form1.PropriedadesPesquisaSubCaderno) != "undefined") {
			form1.PropriedadesPesquisaSubCaderno.checked = false;
			form1.PropriedadesPesquisaSubCaderno.disabled = true;
		}
		if ( (typeof(form1.observacao) != "undefined")) {
			if( acao == 'desabilitarNA' ) {
				form1.observacao.disabled = false;
			} else {
				form1.observacao.disabled = true;
				form1.observacao.value = '';
			}
		}

	} else {

		if (typeof(form1.PropriedadesPesquisaSubCaderno) != "undefined") {
			form1.PropriedadesPesquisaSubCaderno.disabled = false;
		}

		if ((typeof(form1.observacao) != "undefined")) {
				form1.observacao.disabled = true;
		}
		PAhabilita('manchete','tipomanchete');
		PAhabilita('oculto','tipooculto');
	
		if (typeof(form1.agenda) != "undefined") {
			form1.agenda.disabled = false;
			verificaagenda();
		}
	}
}

///////////////////////////////////////////////////////////////////////////////////
// função que define quais campos serão habilitados dependendo do tipo de banner //
///////////////////////////////////////////////////////////////////////////////////

function tipoImagem(){
	tipo=form1.tipodeimagem[form1.tipodeimagem.selectedIndex].value;
	if (tipo == "swf") {
		form1.url.value = '';
		form1.novaJanela.checked = false;
		
		form1.arqLargura.disabled = false;
		cor(form1.arqLargura, 'white');
		form1.arqAltura.disabled = false;
		cor(form1.arqAltura, 'white');
		form1.url.disabled = true;
		cor(form1.url, 'D4D0C8');
		form1.novaJanela.disabled = true;

	} else if (tipo == "img") {
		form1.arqLargura.value = '';
		form1.arqAltura.value = '';
	
		form1.arqLargura.disabled = true;
		cor(form1.arqLargura,'D4D0C8');
		form1.arqAltura.disabled = true;
		cor(form1.arqAltura,'D4D0C8');
		form1.novaJanela.disabled = false;
		form1.url.disabled = false;
		cor(form1.url,'white');
	}
}

/////////////////////////////////////////
// Selecionar todos checkbox da arvore //
/////////////////////////////////////////

function ToggleAll(checked,inicio,fim,referencia) {
	if(checked == true) {
		for (i=inicio; i <= fim; i++) {
			document.arvore.elements[i-1].checked=checked;
		}
	} else if(checked == false) {
		var ret = parser (referencia, ":");
		for (i=1; i <= ret[0]; i++) {
			document.arvore.elements[ret[i]-1].checked=checked;
		}
	}
}

/////////////////////////////////////////
// Deselecionar todos checkbox da arvore //
/////////////////////////////////////////

function ToggleAllOff(inicio,fim) {
	for (i=inicio; i <= fim; i++) {
		document.arvore.elements[i].checked=false;
	}
}

function ListObj (obj, str) { // dump objects and contents
	var s = new Array ();
	var i;
	var j = 0;
	var strings = "";
	for (i in obj) {   // get all objects, and contents
		s[j] = i + ": " + obj[i];
		j = j + 1;
	}
	s.sort ();         // sort them data down
	for (i=0; i<j; i++) {
		strings += s[i]+"\n";
	}
	alert( strings );
}

////////////////////////////////////////
//Adicionar data                      //
////////////////////////////////////////

function dateAdd( start, interval, number ) {
	
	// Create 3 error messages, 1 for each argument. 
	var startMsg  = "Sorry the start parameter of the dateAdd function\n"
		startMsg += "must be a valid date format.\n\n"
		startMsg += "Please try again." ;
	
	var intervalMsg  = "Sorry the dateAdd function only accepts\n"
		intervalMsg += "d, h, m OR s intervals.\n\n"
		intervalMsg += "Please try again." ;

	var numberMsg  = "Sorry the number parameter of the dateAdd function\n"
		numberMsg += "must be numeric.\n\n"
		numberMsg += "Please try again." ;
		
		// get the milliseconds for this Date object. 
	var buffer = Date.parse( start ) ;
	
	// check that the start parameter is a valid Date. 
	if ( isNaN (buffer) ) {
		alert( startMsg ) ;
		return null ;
	}
	
	// check that an interval parameter was not numeric. 
	if ( interval.charAt == 'undefined' ) {
		// the user specified an incorrect interval, handle the error. 
		alert( intervalMsg ) ;
		return null ;
	}

	// check that the number parameter is numeric. 
	if ( isNaN ( number ) )	{
		alert( numberMsg ) ;
		return null ;
	}

	// so far, so good...
	//
	// what kind of add to do? 
	switch (interval.charAt(0)){
		case 'd': case 'D': 
			number *= 24 ; // days to hours
			// fall through! 
		case 'h': case 'H':
			number *= 60 ; // hours to minutes
			// fall through! 
		case 'm': case 'M':
			number *= 60 ; // minutes to seconds
			// fall through! 
		case 's': case 'S':
			number *= 1000 ; // seconds to milliseconds
			break ;
		default:
		// If we get to here then the interval parameter
		// didn't meet the d,h,m,s criteria.  Handle
		// the error. 		
		alert(intervalMsg) ;
		return null ;
	}
	return new Date( buffer + number ) ;
}



function RegExpQuote(str){
	re = /[\.\\\*\?\[\]\$\(\)\{\}\=\!\<\>\|\:]/g
	ta = "\$1";
	return str.replace(re,ta);
}

function loadEditor(name, content, height, width, toolbarSet) {
	// Armazena o valor do diretório base do FCKeditor
	var sBasePath = '../admin/templates/editor/' ;
			
	var oFCKeditor = new FCKeditor( name ) ;
	oFCKeditor.BasePath	  = sBasePath ;
	oFCKeditor.Value	  = content;
	oFCKeditor.Height     = height; 
	oFCKeditor.Width      = width || '100%';
	oFCKeditor.ToolbarSet = toolbarSet	|| 'Default' ;
	oFCKeditor.Create() ;
}

function replaceTextArea(name, content, height, width, toolbarSet) {
	// Armazena o valor do diretório base do FCKeditor
	var sBasePath = '../admin/templates/editor/' ;
			
	var oFCKeditor = new FCKeditor( name ) ;
	oFCKeditor.BasePath	  = sBasePath ;
	oFCKeditor.Value	  = content;
	oFCKeditor.Height     = height; 
	oFCKeditor.Width      = width || '100%';
	oFCKeditor.ToolbarSet = toolbarSet	|| 'Default' ;
	oFCKeditor.ReplaceTextarea() ;
}

/************************/
/* Funções para Cookies */
/************************/

function Get_Cookie(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 Set_Cookie(name,value,expires,path,domain,secure) {

    var cookieString = name + "=" +escape(value) +
       ( (expires) ? ";expires=" + expires.toGMTString() : "") +
       ( (path) ? ";path=" + path : "") +
       ( (domain) ? ";domain=" + domain : "") +
       ( (secure) ? ";secure" : "");
    document.cookie = cookieString;
}
	
function Delete_Cookie(name,path,domain) {

   if (Get_Cookie(name)) document.cookie = name + "=" +
      ( (path) ? ";path=" + path : "") +
      ( (domain) ? ";domain=" + domain : "") +
      ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}

//initiates the XMLHttpRequest object
//as found here: http://www.webpasties.com/xmlHttpRequest
function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp ) {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

