 /* author: joao@rockassetes.mus.br */
/* Creation date: 01/08/2006 */

          /////////////
          // FUNÇÕES //
          /////////////

// Mostra e oculta paineis (divs)

function showHide(panelID) {
  var panel = document.getElementById(panelID);
  if (panel != null)
  {
    if (panel.style.visibility == "hidden")
    {
      panel.style.display = "block";
      panel.style.visibility = "visible";
    } else {
      panel.style.display = "none";
      panel.style.visibility = "hidden";               
    }
  }
}

// Função para validação de data
var dtCh = "/";
var minAno = 0001;
var maxAno = 9999;

function isInteger(s){
	var i;
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) 
			return false;
	}
	return true;
}

function stripCharsInBag(s, bag){
	var i;
  var returnString = "";
  // Search through string's characters one by one.
  // If character is not in bag, append to returnString.
  for (i = 0; i < s.length; i++){   
    var c = s.charAt(i);
    if (bag.indexOf(c) == -1) returnString += c;
  }
  return returnString;
}

function diasFevereiro(ano){
	// February has 29 days in any year evenly divisible by four,
  // EXCEPT for centurial years which are not also divisible by 400.
  result = (((ano % 4 == 0) && ( (!(ano % 100 == 0)) || (ano % 400 == 0))) ? 29 : 28 );
	return (result)
}

function diasMes(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {
			this[i] = 30
		}
		if (i==2) {
			this[i] = 29
		}
  } 
  return this
}

function validarData(data){
	var result = true;
	var diasNoMes = diasMes(12)
	var pos1 = data.indexOf(dtCh)
	var pos2 = data.indexOf(dtCh, pos1 + 1)
	var diaStr = data.substring(0, pos1)
	var mesStr = data.substring(pos1 + 1, pos2)
	var anoStr = data.substring(pos2 + 1)
	anoStrAux = anoStr

	if (diaStr.charAt(0) == "0" && diaStr.length > 1) 
		diaStr = diaStr.substring(1)
	if (mesStr.charAt(0) == "0" && mesStr.length > 1) 
		mesStr = mesStr.substring(1)

	for (var i = 1; i <= 3; i++) {
		if (anoStrAux.charAt(0) == "0" && anoStrAux.length > 1) anoStrAux = anoStrAux.substring(1)
	}
	
	dia = parseInt(diaStr)
	mes = parseInt(mesStr)
	ano = parseInt(anoStrAux)
	
	if (pos1 == -1 || pos2 == -1)
		result = false
	if (mesStr.length < 1 || mes < 1 || mes > 12)
		result = false
	if (diaStr.length < 1 || dia < 1 || dia > 31 || (mes == 2 && dia > diasFevereiro(ano)) || dia > diasNoMes[mes])
		result = false
	if (anoStr.length != 4 || ano == 0 || ano < minAno || ano > maxAno)
		result = false
	if (data.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(data, dtCh)) == false)
		result = false
		
	return (result)
}

function validarHora(hora) {
	var	result = true
	var filter = /^(([01]?[0-9]|2[0-3]):[0-5]?[0-9])$/i
	if (!filter.test(hora)) {
		result = false
	}
	return (result)
}


function validaDados(input) {
	var result = true
  lixo = new Array("select", "insert", "update", "delete", "drop", "--", "'");
  for (var i = 0; i <= lixo.length; i++) {
    if (input.indexOf(lixo[i]) > -1)
      result = false
  }
  return (result)
}


// Função para validação de e-mail

function validarEmail(email) {
	var	result = true
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!filter.test(email)) {
		result = false
	}
	return (result)
}


function validarCPF(campo) {
	var i, j;
	var cpf;
	var erro;
	cpf = freplace(campo, ".", "");
	cpf = freplace(cpf, "-", "");
	erro = false;
	
	if (cpf.length != 11 && cpf != "") 
		erro += "O CPF deve ter 14 números! \n"; 

		var nonNumbers = /\D/;
		if (nonNumbers.test(cpf)) 
			erro = true; 
		if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") {
			erro = true; 
	}
	
	var a = [];
	var b = new Number;
	var c = 11;
	for (i=0; i<11; i++) {
		a[i] = cpf.charAt(i);
		if (i < 9) 
			b += (a[i] * --c);
	}
	
	if ((x = b % 11) < 2) {
		a[9] = 0;
	} else {
		a[9] = 11 - x;
	}
	b = 0;
	c = 11;
	for (y=0; y<10; y++)
		b += (a[y] * c--);

	if ((x = b % 11) < 2) {
		a[10] = 0;
	} else {
		a[10] = 11 - x;
	}
	
	if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10])) {
		erro = true;
	}

	if (erro) {
		campo.value=""
		return false;
	}

	return true;
}

function freplace(obj,str1,str2)
{
    var str="";
    var val;
    if((obj.length>0)&&(str1.length>0))
    {
        val = obj.split(str1);
        for(var i=0;i<val.length;i++)
        {
            if (i>0) {str = str + str2}
                str = str + val[i]
        }
        obj = str;
    }
    return obj
}



////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/*** 
* 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 Mascara(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 mascara(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 = document.getElementById(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( ")", "" )
	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) == ":") || (sMask.charAt(i) == " "))
	
		if (bolMask) {
			sCod += sMask.charAt(i)
			mskLen++
		}
		else {
			sCod += sValue.charAt(nCount)
			nCount++
		}

		i++
	}
	
	document.getElementById(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
	}
}

function createHidden(sName, sValue, oForm)
{
	oRet = document.createElement("<TEXTAREA name='" + sName + "'></TEXTAREA>")
	
	oRet.innerText = sValue;
	oRet.style.display = "none";
	if(oForm)
	{
		if(oForm.toString()=="[object]")
		{
			if(oForm.tagName=="FORM")
			{
				oForm.appendChild(oRet)
			}
		}
	}
	return oRet
}

function fEnviaPost(pagina, sTarget)
{
	//** replace
	var obj = pagina; var str1 = "%20"; var str2 = " ";
	var str="";
	var val;
	if((obj.length>0)&&(str1.length>0))
	{
		val = obj.split(str1);
		for(var i=0;i<val.length;i++)
		{
			if (i>0) {str = str + str2}
				str = str + val[i]
		}
		obj = str;
	}
	pagina = obj
	// fim replace
	
	var oFrm;
		oFrm = document.createElement("<FORM name='frmSubmitPop'></form>");
		document.body.appendChild(oFrm);

	var sUrl = pagina.substring(0,pagina.indexOf("?"))
	if(sUrl==""){sUrl=pagina}
	var nLen = pagina.length
	var star = nLen-(pagina.length-1-pagina.indexOf("?"))
	if( star < 1 ){ star=0 }
	var sParam = pagina.substring(star,nLen)
	//** replace
	var obj = sParam; var str1 = "&amp;"; var str2 = "&";
	var str="";
	var val;
	if((obj.length>0)&&(str1.length>0))
	{
		val = obj.split(str1);
		for(var i=0;i<val.length;i++)
		{
			if (i>0) {str = str + str2}
				str = str + val[i]
		}
		obj = str;
	}
	sParam = obj
	// fim replace

	if(sParam)
	{
		mTmp = sParam.split("&");
		for(var i=0; i<mTmp.length; i++)
		{
			var mTmp2 = mTmp[i].split("=");
			var oCampo = createHidden(mTmp2[0], mTmp2[1], oFrm);
			mTmp2 = null;
		}
	}
	
	if(!sTarget){sTarget="_self"}
	if(sTarget==""){sTarget="_self"}
	
	oFrm.action = sUrl;
	oFrm.target = sTarget;
	oFrm.method = "post";
	oFrm.submit();
	
	document.body.removeChild(oFrm);
	
	mTmp = null;
}

function fVerifica(form, variavel) {
	var i;
	var ii;
	var msgReq = "";
	var submete = "0";

	for (i = 0; i < document.forms[form].elements.length; i++) {
		submete = "0";

		var OBJ_Campo = document.forms[form].elements[i].value;
		var OBJ_Tipo = document.forms[form].elements[i].type;
		if (document.forms[form].elements[i].msgReq)
			msgReq = document.forms[form].elements[i].msgReq;
		else
			msgReq = document.forms[form].elements[i].msgreq;

		if (typeof(msgReq) == "undefined") {
			msgReq = "";
		}

		//rotina para checar se foi preenchido apenas espaços no campo
		for (ii = 0; ii < OBJ_Campo.length; ii++) {	
			if (OBJ_Campo.substring(ii,ii+1) != " ") {
				submete = "1";
			}
		}

		if(submete == "0") {
			document.forms[form].elements[i].value = "";
			OBJ_Campo = document.forms[form].elements[i].value;
		}
		//------------------------------------------


		if ((OBJ_Tipo == "text" || OBJ_Tipo == "password" || OBJ_Tipo == "textarea" || OBJ_Tipo == "select-one" || OBJ_Tipo == "select-multiple") && OBJ_Campo.length == 0 && msgReq != "" && document.forms[form].elements[i].disabled == false) {
			alert(msgReq);
			document.forms[form].elements[i].className = "campoTextoErro";
			document.forms[form].elements[i].focus();
			return false;
		} else {
			if (OBJ_Tipo != "button" && msgReq)
				document.forms[form].elements[i].className = "campoTexto";
		}
	}
	
	submete = "0";

	if (variavel == "1") {
		fLocalVerifica()
		if(retorno=="1") {
			submete = "1"
		}
	}

	if (submete == "0") {
		document.forms[form].submit();
	}
}

function fOrdenar(form, nomeCampoOrdem, nomeCampoDirecaoOrdem, campoOrdem) {
	document.getElementById(nomeCampoOrdem).value = campoOrdem;

	var direcaoOrdem = document.getElementById(nomeCampoDirecaoOrdem).value;
	if (direcaoOrdem == "")
		direcaoOrdem = "DESC";
	else
		direcaoOrdem = "";

	document.getElementById(nomeCampoDirecaoOrdem).value = direcaoOrdem;
	form.submit();
}

function fLeft(sStr, nQtd) {
	return sStr.substring(0,nQtd)
}

function xmlhttp(pagina, obj) {
	pagina = freplace(pagina, "%20", " ");

	var con = new ActiveXObject("Microsoft.XMLHTTP");
	var sUrl = fLeft(pagina,pagina.indexOf("?")) 

	if (sUrl == "") {
		sUrl = pagina;
	}

	if (pagina.indexOf("?") > -1) {
		var variaveis = fRight(pagina,pagina.length-1-pagina.indexOf("?"))
		variaveis = freplace(variaveis, "&amp;", "&");
	} else {
		variaveis = "";
	}
	con.Open('Post',sUrl, false);
	
	var variaveis2 = "";
	if (variaveis != "") {
		var mTmp = variaveis.split("&");
		for (var i = 0; i < mTmp.length; i++) {
			mT = mTmp[i].split("=");
			mT[1] = decodeURIComponent(mT[1]);
			mT[1] = escape(mT[1]);
			mT[1] = freplace(mT[1], " ", "%20");
			variaveis2 += mT[0] + "=" + mT[1] + "&";
		}
	}
	
	con.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	con.setRequestHeader("Method", "POST " + sUrl + " HTTP/1.1");
	con.setRequestHeader("Content-length", variaveis2.length);

	con.Send(variaveis2);
	var resposta
	resposta = con.responseText
	
	document.all[obj].innerHTML=resposta
}




String.prototype.trim = function() {
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
}



////////////////////
// Função que simula uma barra de progresso na tela, de acordo com a digitação dentro de um textarea
function progresso_tecla(obj, max, divBarraProgresso, msgCaractExc, imgBarra) {
	var progresso = document.getElementById(divBarraProgresso);  
	if (obj.value.length < max) {
		progresso.style.backgroundColor = "#FFFFFF";
		progresso.style.backgroundImage = "url(" + imgBarra + ")";    
		progresso.style.color = "#000000";
		var pos = 300-parseInt((300*parseInt(obj.value.length))/max);
		progresso.style.backgroundPosition = "-"+pos+"px 0px";

		var msg = document.getElementById(msgCaractExc);
		if (msg) {
			msg.style.display = 'none';
		}
	} else {
		progresso.style.backgroundColor = "#CC0000";    
		progresso.style.backgroundImage = "url()";    
		progresso.style.color = "#FFFFFF";
		
		var msg = document.getElementById(msgCaractExc);
		if (msg) {
			msg.style.display = 'block';	
		}
	} 
	progresso.innerHTML = "("+obj.value.length+" / "+max+")";
}




// querystring to POST JavaScript
// copyright 15th October 2007 by Stephen Chapman
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration
function toPost(getString, target) {
	// parametro target ainda não utilizado (todas as vezes estou usando o toPost com _self)
	// Ass.: João Melo (18/10/2008)
	var parms = getString.split('?');
	var newF = document.createElement("form");
	newF.action = parms[0];
	newF.method = 'POST';
	var parms = parms[1].split('&');
	for (var i=0; i<parms.length; i++) {
		var pos = parms[i].indexOf('='); 
		if (pos > 0) {
			var key = parms[i].substring(0,pos); 
			var val = parms[i].substring(pos+1);  
			/*@cc_on @if (@_jscript)  var newH = document.createElement("<input name='"+key+"'>");  @else */  
			var newH = document.createElement("input"); 
			newH.name = key; 
			/* @end @*/ 
			newH.type = 'hidden'; 
			newH.value = val; 
			newF.appendChild(newH);
		}
	} 
	document.getElementsByTagName('body')[0].appendChild(newF); 
	newF.submit();
}



function isNumeric(sText)
{
	if (sText != "") {
		var ValidChars = "0123456789.";
		var IsNumber=true;
		var Char;
		
		for (i = 0; i < sText.length && IsNumber == true; i++) { 
			Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber = false;
			}
		}
		return IsNumber;
	} else return false;
}


/////////////////////////////
// Funções utilizadas para mover valores entre drop-downs multiSelect

function addOption(theSel, theText, theValue)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  theSel.options[selLength] = newOpt;
}

function deleteOption(theSel, theIndex)
{ 
  var selLength = theSel.length;
  if(selLength > 0)
  {
    theSel.options[theIndex] = null;
  }
}

function moveOptions(theSelFrom, theSelTo) {
	var selLength = theSelFrom.length;
	var selectedText = new Array();
	var selectedValues = new Array();
	var selectedCount = 0;
	
	var i;
	
	// Find the selected Options in reverse order
	// and delete them from the 'from' Select.
	for(i=selLength-1; i>=0; i--) {
		if(theSelFrom.options[i].selected) {
			selectedText[selectedCount] = theSelFrom.options[i].text;
			selectedValues[selectedCount] = theSelFrom.options[i].value;
			deleteOption(theSelFrom, i);
			selectedCount++;
		}
	}
	
	// Add the selected text/values in reverse order.
	// This will add the Options to the 'to' Select
	// in the same order as they were in the 'from' Select.
	for(i=selectedCount-1; i>=0; i--) {
		addOption(theSelTo, selectedText[i], selectedValues[i]);
	}
}

function drop2CSV(drop, somenteSelecionados) {
	var d = document.getElementById(drop);
	var str = "";

	if (d.length) {
		for (var i = 0; i < d.length; i++) {
			if (str != "") str += ",";
			if (somenteSelecionados == true) {
				if (d[i].selected == true)
					str += d[i].value;
			} else {
				str += d[i].value;
			}
		}
	} else {
		if (somenteSelecionados == true)
			if (d.selected == true)
				str = d.value;
	}
	
	return str;
}


function MM_jumpMenu(targ, selObj, restore) {
	eval(targ + ".location = '" + selObj.options[selObj.selectedIndex].value + "'");

	if (restore)
		selObj.selectedIndex = 0;
}

function adiciona_bookmark(){
	var url_site = "http://www.cdof.com.br/" 
	var titulo_site = "Cooperativa do Fitness" 
	if (document.all)window.external.AddFavorite(url_site, titulo_site)
}


