<!--
/***************************************************************************************************************************
  Selecionador de estilos
***************************************************************************************************************************/

function selecionarCSS(){
	estiloCerto=(document.getElementById)?'ie.css':((document.all)?'ie.css':'ns.css');
	correcaoPath=((document.location+'-').indexOf('/content')!=-1)?'../../':'';
	document.write('<link rel="stylesheet" href="'+correcaoPath+'styles/'+estiloCerto+'" type="text/css">')
}
selecionarCSS();


/***************************************************************************************************************************
  Troca/Carrega imagens
***************************************************************************************************************************/

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
 	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  	if(!x && document.getElementById) x=document.getElementById(n); return x;
}


function MM_swapImage() { //v3.0
  	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/***************************************************************************************************************************
  Carrega
***************************************************************************************************************************/

function preload() {
  if (!document.images) return;
  var ar = new Array();
  var arguments = preload.arguments;
  for (var i = 0; i < arguments.length; i++) {
    ar[i] = new Image();
    ar[i].src = arguments[i];
  }
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);


/***************************************************************************************************************************
  Janelas / Browsers
***************************************************************************************************************************/
function openWin(url,name, w, h) {
  popupWin = window.open(url, name, "'menubar=no,toolbar=no,location=no,status=no,resizable=no,scrollbars=yes,scrolling=yes,width="+w+",height="+h+"'");
} 

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

/********************************************************************
Funções de formatação / máscara
*********************************************************************/

/*** 
* Descrição.: formata um campo do formulário de 
* acordo com a máscara informada... 
* Parâmetros: - objForm (o Objeto Form) 
* - strField (string contendo o nome 
* do textbox) 
* - sMask (mascara que define o 
* formato que o dado será apresentado, 
* usando o algarismo "9" para 
* definir números e o símbolo "!" para 
* qualquer caracter... 
* - evtKeyPress (evento) 
* Uso.......: <input type="textbox" 
* name="xxx"..... 
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);"> 
* Observação: As máscaras podem ser representadas como os exemplos abaixo: 
* CEP -> 99.999-999 
* CPF -> 999.999.999-99 
* CNPJ -> 99.999.999/9999-99 
* Data -> 99/99/9999 
* Tel Resid -> (99) 999-9999 
* Tel Cel -> (99) 9999-9999 
* Processo -> 99.999999999/999-99 
* C/C -> 999999-! 
* E por aí vai... 
***/

function formatInput(objForm, strField, sMask, evtKeyPress) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

if(document.all) { // Internet Explorer
nTecla = evtKeyPress.keyCode; }
else if(document.layers) { // Nestcape
nTecla = evtKeyPress.which;
}

sValue = objForm[strField].value;

// Limpa todos os caracteres de formatação que
// já estiverem no campo.
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( " ", "" );
fldLen = sValue.length;
mskLen = sMask.length;

i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;

while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

if (bolMask) {
sCod += sMask.charAt(i);
mskLen++; }
else {
sCod += sValue.charAt(nCount);
nCount++;
}

i++;
}

objForm[strField].value = sCod;

if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
else { // qualquer caracter...
return true;
} }
else {
return true;
}
}
//Fim da Função Máscaras Gerais

/********************************************************************
Funções de validação de formulário
*********************************************************************/

String.prototype.trim = function() {
	for (var i = 0; this.charCodeAt(i)<33; i++) {}
	for (var j = this.length-1; this.charCodeAt(j)<33; j--) {}
	return this.substring(i, j+1);
};

String.prototype.isEmpty = function() {
	return (this.length == 0);
};
String.prototype.isNumber = function(){
	return (!isNaN(parseInt(this)));
}
var FormValidator = function () {
	this._form = '';
	this._intro = "Os campos listados abaixo não foram\npreenchidos corretamente: \n\n";
	this.functions = {};
	this._fieldsToValidate = [];
	this._errors = [];
};
FormValidator.prototype.setForm = function(path) {
	this._form = path;
};
FormValidator.prototype.findElement = function(n){
	var p, i, x, d = document;
	if (!(x=d[n]) && d.all) x = d.all[n];
	for (i=0; !x && i<d.forms.length; i++) x = d.forms[i][n];
	if (!x && document.getElementById)  x = document.getElementById(n);
	return x;
}
FormValidator.prototype.registerFunction = function(fName, fnc) {
	if (this.functions[fName] == null) {
		this.functions[fName] = fnc;
	} else {
		alert("A função "+fName+" já existe. Use outro nome");
	}
};
FormValidator.prototype.addValidation = function(field, fnc, message) {
	var tmp = {field:field, fnc:fnc, message:message};
	this._fieldsToValidate.push(tmp);
	delete tmp;
};
FormValidator.prototype.addErrorMessage = function(obj) {
	this._errors.push(obj);
};
FormValidator.prototype.showErrors = function() {
	var out = this._intro;
	for (var c = 0; c<this._errors.length; c++) {
		out += this._errors[c]["message"]+"\n";
	}
	this._errors = [];
	alert(out);
};
FormValidator.prototype.validate = function() {
	var num = this._fieldsToValidate.length;		
	
	for (var c = 0; c<num; c++) {		
		var p = this._fieldsToValidate[c];		
		this.functions[p.fnc](p.field, p.message, this);
	}
	if (this._errors.length>0) {
		this.showErrors();
	} else {
		eval(this._form).submit();
	}
};


// ############################################ FUNÇÔES DE VALIDAÇÂO ##################################################### //

// RADIO e CHECKBOX //
function isChecked(field, message, objRef) {
	var e = objRef.findElement(field);
	for (var i = 0; i<e.length; i++) {
		if (e[i].checked) {
			return true;
			break;
		}
	}
	objRef.addErrorMessage({message:message, element:field});
}
// TEXT - TEXTAREA - HIDDEN
function isBlank(field, message, objRef) {
	var e = objRef.findElement(field);	
	var _v = e.value.trim().isEmpty();
	if (_v) {
		objRef.addErrorMessage({message:message, element:field});
		return;
	}
}
// SELECT
function isSelected(field, message, objRef) {
	var e = objRef.findElement(field);
	if (e.value != 'null') return;
	//for(var c=0; c<e.options.length; c++){		
		//if(e.options[c].selected == true) return;
	//}
	objRef.addErrorMessage({message:message, element:field});
}
// NUMERIC
function isNumeric(field, message, objRef) {
	if(!((objRef.findElement(field)).value).isNumber()) objRef.addErrorMessage({message:message, element:field});
}

function isEmail (field, message, objRef) {
	var s = (objRef.findElement(field)).value;
	if (s.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){
		return true ;
	}
	objRef.addErrorMessage({message:message, element:field});
}

var validator = new FormValidator();
validator.registerFunction("isChecked", isChecked);
validator.registerFunction("isBlank", isBlank);
validator.registerFunction("isSelected", isSelected);
validator.registerFunction("isNumeric", isNumeric);
validator.registerFunction("isEmail", isEmail);

// ############################################ FUNÇÔES PARA PEGAR VALUE DO RADIO SELECIONADO ##################################################### //


function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} 

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} 

// ############################################ FUNÇÔES DE SIMULAÇAO DE OBJETOS ##################################################### //


marcados = {};
marcados[1] = 0;
marcados[2] = 0;
function swap(m,h){
	var path = '../../images/';
	var on = 'check_on.gif';
	var off = 'check_off.gif';
	var d = document.form;	
	var e = document.getElementById('bt'+m);
	if(e.src.indexOf(on) != -1){
	    marcados[m]=0;
		e.src = path + off;				
	} else {
	marcados[m] = 1;
		e.src = path + on;				
	}
	var v = new Array();
	for (i in marcados) {
	    if(marcados[i]){
		   v.push(document.getElementById('bt'+i).texto) 
		}
	}
	d[h].value = v.join('|');	
}

marcados2 = {};
marcados2[1] = 0;
marcados2[2] = 0;
marcados2[3] = 0;
marcados2[4] = 0;
marcados2[5] = 0;
marcados2[6] = 0;
function swap2(m,h){
	var path = '../../images/';
	var on = 'check_on.gif';
	var off = 'check_off.gif';
	var d = document.form;	
	var e = document.getElementById('bt'+m);
	if(e.src.indexOf(on) != -1){
	    marcados2[m]=0;
		e.src = path + off;				
	} else {
	marcados2[m] = 1;
		e.src = path + on;				
	}
	var v = new Array();
	for (i in marcados2) {
	    if(marcados2[i]){
		   v.push(document.getElementById('bt'+i).texto) 
		}
	}
	d[h].value = v.join('|');	
}



// ############################################ FUNÇÔES DO OVER ##################################################### //

function showLayer() {
	document.getElementById('layer_ovr').style.visibility="visible";
}
function hideLayer() {	
	document.getElementById('layer_ovr').style.visibility="hidden";
}



// ############################################ GERAL ##################################################### //

function verificaBuscaOndemand() {
	var d = document.buscaOndemand;
    // semana, data
	if (d.b_programa.value == 'null' && d.b_palavra.value == '') { 
		alert("Você deve especificar ao menos um campo para a busca.");
	} else {
        d.submit();
    }
}

function verificaBusca() {
	var d = document.frmBusca;
	var flag = true;
    if (calendar) {
        var mv = calendar.getValue();    
    } else {
        var mv = "null";
    }
	if (d.b_programa.value != 'null' || d.b_palavra.value != '' || d.b_apresentador.value != 'null' || d.b_data.value != '' || mv != 'null') {
        if (mv != "null") {
            // -- ////\\\\
            if (mv.length > 1) {
                d.b_data.value = mv;
            } else {
                d.b_semana.value = mv;
            }
        }
		d.submit();		
	} else {
		alert("Você deve selecionar ao menos um item para a busca.");
	}
}
//-->
