// JavaScript Document


// Formata campos de data, CPF e CNPJ
// nextSrc é um parâmetro opcional de objeto texto 
// que será focado após alcançar o tamanho fixo na digitação
function Formatar(src, mask, bloqueado, tamanhoFixo, nextSrc) {	
	if(bloqueado == undefined) bloqueado=false;
	var ehCorreto = true;

	var i = src.value.length;	
	var saida = mask.substring(0, 1);
	var texto = mask.substring(i);
	
	var digito = src.value.substring(i-1,i);
	var digitoMask = texto.substring(0,1);
	
	// verificacao se é numérico
	ehNumero=!isNaN(parseInt(digito));
	//alert((parseInt(digito))+"\n"+!isNaN(parseInt(digito)));
		
	// verificar se o digito é sinal de formatação
	ehFormatacao = (mask.indexOf(digitoMask)>-1 && digitoMask!="#" && digitoMask!="");	
	
	// verificar se a digitacao corresponde ao tipo de mascara
	if(!ehFormatacao){
		if(saida=="#") ehCorreto = ehNumero; 
		if(saida=="@") ehCorreto = !ehNumero;
	}
				
	if(bloqueado==false && texto.substring(0, 1) != saida){
		src.value += texto.substring(0, 1);
	} else if(bloqueado==true && ehCorreto==false && ehFormatacao==false) {
		src.value = src.value.substring(0,i-1);
	} else if(bloqueado==true && ehCorreto==false && ehFormatacao==true) {
		src.value = src.value.substring(0,i-1);
	} else if(bloqueado==true && ehCorreto==true && ehFormatacao==true) {
		src.value += texto.substring(0, 1);
	}
	
	// pequena correção
	if(src.value == "@") src.value="";
	
	
	//determinar o tamanho fixo
	if(tamanhoFixo != undefined){
		if(i>tamanhoFixo){
			src.value=src.value.substring(0,tamanhoFixo);			
		} else if(i==tamanhoFixo) {
			if(nextSrc != undefined) { nextSrc.focus(); }
		}
	}
	
}

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_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_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.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];}
}

function limpaInput(obj, frase){
	if(obj.value == frase){
		obj.value = "";
	}
}
function escreveInput(obj, frase){
	if(obj.value == ""){
		obj.value = frase;
	}
}

function construirArray(qtdElementos){
	this.length = qtdElementos
}

    var	arrayDia = new construirArray(7);
	arrayDia[0] = "Domingo";
	arrayDia[1] = "Segunda-Feira";
	arrayDia[2] = "Ter&ccedil;a-Feira";
	arrayDia[3] = "Quarta-Feira";
	arrayDia[4] = "Quinta-Feira";
	arrayDia[5] = "Sexta-Feira";
	arrayDia[6] = "S&aacute;bado";

	var arrayMes = new construirArray(12);
	arrayMes[0] = "Janeiro";
	arrayMes[1] = "Fevereiro";
	arrayMes[2] = "Mar&ccedil;o";		
	arrayMes[3] = "Abril";
	arrayMes[4] = "Maio";
	arrayMes[5] = "Junho";
	arrayMes[6] = "Julho";
	arrayMes[7] = "Agosto";
	arrayMes[8] = "Setembro";
	arrayMes[9] = "Outubro";
	arrayMes[10] = "Novembro";
	arrayMes[11] = "Dezembro";

function mostrarDataHora(diaSemana, dia, mes, ano){
	//retorno  = "&nbsp; "+hora+" ";
	retorno = "<b>"+diaSemana+"</b>, "+dia+" de "+mes+" de "+ano;
    document.getElementById("textData").innerHTML = retorno;
}

function getMesExtenso(mes){
	return this.arrayMes[mes];
}


function getDiaExtenso(dia){
	return this.arrayDia[dia];
}

function atualizarDataHora(){ 
    dataAtual = new Date();
	dia = dataAtual.getDate();
	diaSemana = getDiaExtenso(dataAtual.getDay());
	mes = getMesExtenso(dataAtual.getMonth());
	//ano = dataAtual.getYear();
        ano = dataAtual.getFullYear(); 
	mostrarDataHora(diaSemana, dia, mes, ano);

} 
var isNav4 = false, isNav5 = false, isIE4 = false;
var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;

var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/"; 
var vDateType = 3; //                1 = mm/dd/yyyy  2 = yyyy/dd/mm     3 = dd/mm/yyyy
var vYearType = 4; 
var vYearLength = 2; 
var err = 0; 
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
      vDateType = dateType;
      if (vDateValue == "~") {
            alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
            vDateName.focus();
            return true;
      }
      var whichCode = (window.Event) ? e.which : e.keyCode;
      if (vDateValue.length > 8 && isNav4) {if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))      return true;}
      var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
      //alert(event.keyCode);
      if(whichCode != 37 && whichCode != 38 && whichCode != 39 && whichCode != 40 && whichCode != 13 && whichCode != 9 && whichCode != 16 && whichCode != 17 && whichCode != 18 && whichCode != 20  && whichCode != 91)
      {
          if (alphaCheck.indexOf(vDateValue) >= 1) {
                if (isNav4) {
                      vDateName.focus();
                      vDateName.select();
                      return false;
                }
                else {
                      vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
                      return false;
                }
          }
      }
      else
      {
        return false;
      }
      if (whichCode == 8) return false;
      else {
            var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
            if (strCheck.indexOf(whichCode) != -1) {
                  if (isNav4) {
                        if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
                              alert("Data em formato incorreto!\nDigite-a novamente no formato 'mm/dd/aaaa'.");
                              vDateName.focus();
                              vDateName.select();
                              return false;
                        }
                  if (vDateValue.length == 6 && dateCheck) {
                        var mDay = vDateName.value.substr(2,2);
                        var mMonth = vDateName.value.substr(0,2);
                        var mYear = vDateName.value.substr(4,4)
                        if (mYear.length == 2 && vYearType == 4) {
                              var mToday = new Date();
                              var checkYear = mToday.getFullYear() + 30; 
                              var mCheckYear = '20' + mYear;
                              if (mCheckYear >= checkYear) mYear = '19' + mYear;
                              else mYear = '20' + mYear;
                        }
                        var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
                        if (!dateValid(vDateValueCheck)) {
                              alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
                              vDateName.focus();
                              vDateName.select();
                              return false;
                        }
                        return true;
                  }
                  else {
                        if (vDateValue.length >= 8  && dateCheck) {
                              if (vDateType == 1){
                                    var mDay = vDateName.value.substr(2,2);
                                    var mMonth = vDateName.value.substr(0,2);
                                    var mYear = vDateName.value.substr(4,4)
                                    vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
                              }
                              if (vDateType == 2){
                                    var mYear = vDateName.value.substr(0,4)
                                    var mMonth = vDateName.value.substr(4,2);
                                    var mDay = vDateName.value.substr(6,2);
                                    vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
                              }
                              if (vDateType == 3){
                                    var mMonth = vDateName.value.substr(2,2);
                                    var mDay = vDateName.value.substr(0,2);
                                    var mYear = vDateName.value.substr(4,4)
                                    vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
                              }
                              var vDateTypeTemp = vDateType;
                              vDateType = 1;
                              var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
                              if (!dateValid(vDateValueCheck)) {
                                    alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
                                    vDateType = vDateTypeTemp;
                                    vDateName.focus();
                                    vDateName.select();
                                    return false;
                              }
                              vDateType = vDateTypeTemp;
                              return true;
                        }
                  else {
                        if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
                              alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
                              vDateName.focus();
                              vDateName.select();
                              return false;
                        }
                  }
            }
      }
      else {
            if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
                  alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
                  vDateName.focus();
                  return true;
            }
            if (vDateValue.length >= 8 && dateCheck) {
                  if (vDateType == 1){
                        var mMonth = vDateName.value.substr(0,2);
                        var mDay = vDateName.value.substr(3,2);
                        var mYear = vDateName.value.substr(6,4)
                  }
                  if (vDateType == 2){
                        var mYear = vDateName.value.substr(0,4)
                        var mMonth = vDateName.value.substr(5,2);
                        var mDay = vDateName.value.substr(8,2);
                  }
            if (vDateType == 3){
                  var mDay = vDateName.value.substr(0,2);
                  var mMonth = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
            }
            if (vYearLength == 4) {
                  if (mYear.length < 4) {
                        alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
                        vDateName.focus();
                        return true;
                  }
            }
            var vDateTypeTemp = vDateType;
            vDateType = 1;
            var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
            if (mYear.length == 2 && vYearType == 4 && dateCheck) {
                  var mToday = new Date();
                  var checkYear = mToday.getFullYear() + 30; 
                  var mCheckYear = '20' + mYear;
                  if (mCheckYear >= checkYear)
                        mYear = '19' + mYear;
                  else
                        mYear = '20' + mYear;
            vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
            if (vDateTypeTemp == 1)      vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
            if (vDateTypeTemp == 3)      vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
      } 
      if (!dateValid(vDateValueCheck)) {
            alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
            vDateType = vDateTypeTemp;
            vDateName.focus();
            vDateName.select();
            return true;
      }
      vDateType = vDateTypeTemp;
      return true;
}
else {
      if (vDateType == 1){
            if (vDateValue.length == 2) {vDateName.value = vDateValue+strSeperator;}
            if (vDateValue.length == 5) {vDateName.value = vDateValue+strSeperator;}
      }
      if (vDateType == 2){
            if (vDateValue.length == 4) {vDateName.value = vDateValue+strSeperator;}
            if (vDateValue.length == 7) {vDateName.value = vDateValue+strSeperator;}
      } 
      if (vDateType == 3){
            if (vDateValue.length == 2) {vDateName.value = vDateValue+strSeperator;}
            if (vDateValue.length == 5) {vDateName.value = vDateValue+strSeperator;}
      }
      return true;
   }
}
if (vDateValue.length == 10&& dateCheck){
      if (!dateValid(vDateName)) {
            alert("Data em formato incorreto!\nDigite-a novamente no formato 'dd/mm/aaaa'.");
            vDateName.focus();
                  vDateName.select();
      }
}
return false;
}
else {
      if (isNav4) {
            vDateName.focus();
            vDateName.select();
            return false;
      }
      else{
            vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
            return false;
      }
      }      
   }
}

function LeapYear(a){
    if ((a % 4) == 0){return true;}
    else return false;
}

function dateValid(objName) {
var strDate; var strDateArray; var strDay; var strMonth; var strYear; var intday; var intMonth;
var intYear; var booFound = false; var datefield = objName; var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr; var strMonthArray = new Array(12); strMonthArray = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
strDate = objName;
if (strDate.length < 1) {return true;}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
      if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
            strDateArray = strDate.split(strSeparatorArray[intElementNr]);
            if (strDateArray.length != 3) {
                  err = 1;
                  return false;
            }
            else {
                  strDay = strDateArray[0];
                  strMonth = strDateArray[1];
                  strYear = strDateArray[2];
            }
            booFound = true;
         }
}
if (booFound == false) {
      if (strDate.length>5) {
            strDay = strDate.substr(0, 2);
            strMonth = strDate.substr(2, 2);
            strYear = strDate.substr(4);
         }
}
if (strYear.length == 2) {strYear = '20' + strYear;}
strTemp = strDay; strDay = strMonth; strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
      err = 2;
      return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
      for (i = 0;i<12;i++) {
            if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
                  intMonth = i+1;
                  strMonth = strMonthArray[i];
                  i = 12;
               }
      }
      if (isNaN(intMonth)){err = 3;return false;}
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {err = 4; return false;}
if (intMonth>12 || intMonth<1) {err = 5; return false;}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {err = 6; return false;}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {err = 7;      return false;}
if (intMonth == 2) {
      if (intday < 1) {
            err = 8;
            return false;
}
if (LeapYear(intYear) == true) {if (intday > 29) {err = 9;return false;}}
else {if (intday > 28) {err = 10;return false;}}
}
return true;
}

function validarCampoEmail(nomeCampo) {	
	valor = nomeCampo.value
	if	(valor == "") {
		alert('Email Invalido!');
		nomeCampo.focus();
		return false;
	}
	if (validaEmail(valor) == false) {
		alert('Email Invalido!');
		nomeCampo.focus();
		return false;
	}
	return true;
}

function validaEmail( campoEmail ) {
    var padraoEmail = /^[\w!#$%&amp;'*+\/=?^`{|}~-]+(\.[\w!#$%&amp;'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
    return padraoEmail.test( campoEmail );
}


function validarData(obj, blur){
    if(event.keyCode != 8)
    {
        date=obj.value
        if (/[^\d/]|(\/\/)/g.test(date))  
        {
            obj.value=obj.value.replace(/[^\d/]/g,'');
            obj.value=obj.value.replace(/\/{2}/g,'/'); 
            return; 
        }
        if (/^\d{2}$/.test(date))
        {
            obj.value=obj.value+'/'; 
            return; 
        }
        if (/^\d{2}\/\d{2}$/.test(date))
        {
            obj.value=obj.value+'/'; 
            return; 
        }
        if (!/^\d{1,2}\/\d{1,2}\/\d{4}$/.test(date)) 
            return;

        test1=(/^\d{1,2}\/?\d{1,2}\/\d{4}$/.test(date));
        date=date.split('/');
        d=new Date(date[2],date[1]-1,date[0]);
        test2=(1*date[0]==d.getDate() && 1*date[1]==(d.getMonth()+1) && 1*date[2]==d.getFullYear());
        if (test1 && test2) return true;
        if(blur)
        {
            alert("O formato da data deve ser dd/mm/aaaa!");
            obj.select();
        }
        
        obj.focus();
        return false
    }
}



function exibirMensagemPopupBloqueado()
{
//   var message =    'O seu browser est\xE1 configurado para n\xE3o permitir a abertura de novas janelas. '+
//		            'Por favor, desabilite o seu bloqueador de pop-ups.\n';
//		
//   if (window.navigator.userAgent.indexOf("SV1") != -1)
//   {
//		message +=  'Foi detectada a instala\xE7\xE3o do ServicePack2 do WindowsXP na sua m\xE1quina, '+
//			        'pode ser que ele esteja impedindo a abertura da nova janela. Para liberar a '+
//			        'abertura de pop-ups apenas para o site da Odonto System siga os seguintes passos: \n'+
//			        '1 - V\xE1 at\xE9 o menu Ferramentas | Opções da Internet do seu Internet Explorer.\n'+
//			        '2 - Na tela de configura\xE7\xF5es que ser\xE1 aberta, v\xE1 at\E9 a aba Privacidade.\n'+
//			        '3 - Abra as configura\xE7\xF5es do Bloqueador de Pop-ups\n'+
//			        '4 - Adicione o site da Odonto System na lista de sites permitidos';
//   }
//   else
//   {
//		message += 'Para maiores informações, procure o fabricante do seu bloqueador de Pop-ups.';
//   }
   
   var message =    'O seu navegador est\xE1 configurado para n\xE3o permitir a abertura de novas janelas. '+
		            'Por favor, desabilite o seu bloqueador de pop-ups.\n';

   alert(message);
}

function abrirPopup(url, largura, altura)
{
    var janelaAberta = window.open(url, 'popup', 'left=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=' + largura +',height=' + altura);

	if (janelaAberta == null)
	    exibirMensagemPopupBloqueado();
}

bExibirMenuCascata = false;
function exibirMenuCascata(menu)
{
    bExibirMenuCascata = true;
    $(menu).style.display='inline';
}

function ocultarMenuCascata(menu, ocultar)
{
    if(!ocultar)
    {
        bExibirMenuCascata = false;
        setTimeout("ocultarMenuCascata('"+ menu + "', true);", 1000);
    }
    else if(!bExibirMenuCascata)
    {
        $(menu).style.display='none';    
    }
}


bExibirMenuCascataOnline = false;
function exibirMenuCascataOnline(menu)
{
    bExibirMenuCascataOnline = true;
    $(menu).style.display='inline';
}

function ocultarMenuCascataOnline(menu, ocultar)
{
    if(!ocultar)
    {
        bExibirMenuCascataOnline = false;
        setTimeout("ocultarMenuCascataOnline('"+ menu + "', true);", 1000);
    }
    else if(!bExibirMenuCascataOnline)
    {
        $(menu).style.display='none';    
    }
}

function $(id)
{
    return document.getElementById(id);
}
function carregarHorariosAtendimento(exibir)
{
    if(exibir)
    {
        $('divPnlHorariosAtendimentoClone').innerHTML = $('divPnlHorariosAtendimento').innerHTML;
        $('divPnlHorariosAtendimentoClone').style.display='inline';        
        arrSelects = document.getElementsByTagName("select");
        for(var i =0; i < arrSelects.length; i++)
        {
            arrSelects[i].style.display = 'none';
        }
    }
    else
    {
        $('divPnlHorariosAtendimentoClone').style.display='none';
        arrSelects = document.getElementsByTagName("select");
        for(var i =0; i < arrSelects.length; i++)
        {
            arrSelects[i].style.display = 'inline';
        }
    }
}

function renderizarVideo(video)
{
    html =  "" +
				"<object classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6' id='WindowsMediaPlayer1' >" +
				"	<param name='URL' ref value='" + video + "'>" +			
				"	<param name='rate' value='1'>" +
				"	<param name='balance' value='0'>" +
				"	<param name='currentPosition' value='0'>" +
				"	<param name='defaultFrame' value>" +
				"	<param name='playCount' value='-1'>" +
				"	<param name='autoStart' value='1'>" +
				"	<param name='currentMarker' value='0'>" +
				"	<param name='invokeURLs' value='-1'>" +
				"	<param name='baseURL' value>" +
				"	<param name='volume' value='60'>" +
				"	<param name='mute' value='0'>" +
				"	<param name='uiMode' value='full'>" +
				"	<param name='stretchToFit' value='true'>" +
				"	<param name='windowlessVideo' value='1'>" +
				"	<param name='enabled' value='-1'>" +
				"	<param name='enableContextMenu' value='-1'>" +
				"	<param name='fullScreen' value='0'>" +
				"	<param name='SAMIStyle' value>" +
				"	<param name='SAMILang' value>" +
				"	<param name='SAMIFilename' value>" +
				"	<param name='captioningID' value>" +
				"	<param name='enableErrorDialogs' value='0'>" +
				"	<param name='_cx' value='6482'>" +
				"	<param name='_cy' value='6350'>" +
            "</object>";
            
     document.write(html);
}


function renderizarVideo(video, width)
{
    html =  "" +
				"<object width='"+width+"'	classid='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6' id='WindowsMediaPlayer1' >" +
				"	<param name='URL' ref value='" + video + "'>" +		
				"	<param name='rate' value='1'>" +
				"	<param name='autoStart' value='1'>" +
				"	<param name='invokeURLs' value='-1'>" +
				"	<param name='baseURL' value>" +
				"	<param name='volume' value='60'>" +
				"	<param name='mute' value='0'>" +
				"	<param name='uiMode' value='full'>" +
				"	<param name='stretchToFit' value='true'>" +
				"	<param name='fullScreen' value='0'>" +
				"	<param name='enableErrorDialogs' value='0'>" +
            "</object>";
            
     document.write(html);
}
