// JavaScript Document

var ns6=document.getElementById&&!document.all
var ie4=document.all
var HojePodeEntregar=false;
var Skip_prev=true;
var Selected_Month;
var Selected_Year;
var Current_Month = null;
var horaAtual = null;
var Days_in_Month = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var Month_Label = new Array('Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro');
var Month_Label_truncate = new Array('Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez');

var Current_Year = null;
if (Current_Year < 1000)
Current_Year+=1900

var Localidade = null;
var Today = null;
var nbbbb = null;
var DiaEntrega = null;
var periodoValido = new Array();

var Prox_Data_Entrega = null;
var Current_Date = null;
var libera = false;

var radioManha;
var radioTarde;
var radioNoite;

function Header(Year, Month) {

   if ( Month == 1 ) {
   		Days_in_Month[1] = ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 !=0))) ? 29 : 28;
   }
   
   var Header_String = Month_Label[Month] + ' ' + Year;
   return Header_String;
}


function Make_Calendar(Year, Month) {
		
   imgPrev=  "<img hspace='2' src='imagens/bt_prev.gif'/>";
   imgProx = "<img hspace='2' src='imagens/bt_prox.gif'>";
   
   
   Month_prox=Month+1
   
   document.getElementById('prox').innerHTML = Month_prox!=12?Month_Label_truncate[Month_prox]+imgProx:Month_Label_truncate[0]+imgProx;
   Month_prev = Month-1;
   document.getElementById('prev').innerHTML = Month_prev!=-1?Month_Label_truncate[Month_prev]:Month_Label_truncate[11];
   
   if( Month  > Current_Month || Year > Current_Year ){
		document.getElementById('prev').innerHTML = imgPrev+document.getElementById('prev').innerHTML		
		Skip_prev = true;
   }else{
   		Skip_prev = false;
   }
   
   
   var First_Date = new Date(Year, Month, 1);
   var Heading = Header(Year, Month);
   var First_Day = First_Date.getDay() + 1;
   
   
   if (((Days_in_Month[Month] == 31) && (First_Day >= 6)) ||
       ((Days_in_Month[Month] == 30) && (First_Day == 7))) {
      var Rows = 6;
   }
   else if ((Days_in_Month[Month] == 28) && (First_Day == 1)) {
      var Rows = 4;
   }
   else {
      var Rows = 5;
   }
   
    
   var HTML_String = '<table class="calendario" CELLSPACING=0 cellpadding=2 >';


   HTML_String += '<tr><td class="semana" ALIGN="CENTER">Dom</td><td ALIGN="CENTER" class="semana">Seg</td><td ALIGN="CENTER" class="semana">Ter</td><td ALIGN="CENTER" class="semana">Qua</td>';

   HTML_String += '<td ALIGN="CENTER" class="semana">Qui</td><td ALIGN="CENTER" class="semana">Sex</td><td ALIGN="CENTER" class="semana">Sab</td></tr>';

   var Day_Counter = 1;
   var Loop_Counter = 1;
   var First_domingo = true;
   var Domingo_pode = null;
   

   for (var j = 1; j <= Rows; j++)
   {
      HTML_String += '<tr ALIGN="left" VALIGN="top">';
      for (var i = 1; i < 8; i++)
	  {
         if ((Loop_Counter >= First_Day) && (Day_Counter <= Days_in_Month[Month])) 
		 {
			
			//reseta variavel
			bloquearData = false;
			
			for(indice_datas in datasBloquear){
				
				dataBloqueio = new Date(datasBloquear[indice_datas]);
				dataAtual = new Date( Year , Month , Day_Counter ,0,0,0,0);
				
				if( dataBloqueio.toGMTString() == dataAtual.toGMTString()){
					
					//alert(dataBloqueio.toGMTString() +" - "+ dataAtual.toGMTString())
					
					bloquearData = true;
					break;
				}
			} 
			
			if(bloquearData){
				HTML_String += '<td  class="dias" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
			}else
			 //Se for domingo
			if(new Date( Year , Month , Day_Counter ,0,0,0,0).getDay() == 0 ){ 
			 
            	Domingo_pode = getDomingoEntrega( new Date( Year , Month , Day_Counter ,0,0,0,0) );
		 		dataLoop = new Date( Year , Month , Day_Counter ,0,0,0,0);
				
				if(Localidade != 3){
					
					if ((Day_Counter == Today) && (Year == Current_Year) && (Month == Current_Month))
					{
					   HTML_String += '<td '+( Domingo_pode ? 'onclick="trocaData( \''+ Day_Counter+'/'+(Month+1)+'/'+Year+'\' )"; style="cursor:pointer"': '' )+' class="'+( Domingo_pode ?'dias_entrega':'hoje')+'" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
					}
					else {
					   bool = (((Day_Counter > Today) || (Year != Current_Year) || (Month != Current_Month))?true:false);
																			   
					   HTML_String += '<td '+( Domingo_pode ? 'onclick="trocaData( \''+ Day_Counter+'/'+(Month+1)+'/'+Year+'\' )"; style="cursor:pointer"': '' )+' class="'+( Domingo_pode ?'dias_entrega':'dias') +'" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
					}
				}else{
					HTML_String += '<td  class="dias" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
				}
			}
			else if ((Day_Counter == Today) && (Year == Current_Year) && (Month == Current_Month))
			{
               HTML_String += '<td '+( HojePodeEntregar=='true' || Domingo_pode ? 'onclick="trocaData( \''+ Day_Counter+'/'+(Month+1)+'/'+Year+'\' )"; style="cursor:pointer"': '' )+' class="'+(HojePodeEntregar=='true' || Domingo_pode ?'dias_entrega':'hoje')+'" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
			}
            else {
				
			   dataLoop = new Date( Year , Month , Day_Counter ,0,0,0,0);
			   DayConter = dataLoop.getDay();
			   Day = Current_Date.getDay();
			   MesAtual = Current_Date.getMonth();
			
	
				/**
				*	0 	- dom
					1	- seg
					2	- ter
					3	- quar	
					4	- qui
					5 	- sex
					6 	- sab	
				*
				**/
				
				
				if(Localidade == 3 ){
					Dia_de_Inicio = 0;
					libera = false;
					
					
					
					// Domingo, Segunda e Sabado não tem entrega
					if(dataLoop.getDay() == 6 || dataLoop.getDay() == 0 || dataLoop.getDay() == 1)
					{
						HTML_String += '<td  class="dias" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
					}
					else
					{
						if(Prox_Data_Entrega.getMonth() == dataLoop.getMonth())
						{
							if(Prox_Data_Entrega.getDate() == dataLoop.getDate())
							{
								libera = true;

							}
							//SE A DATA EM LOOP FOR MAIOR QUE A DATA DE ENTREGA
							//LEVANDO EM CONSIDERAÇÃO QUE AQUI SO ENTRE SE FOR TERÇA, QUARTA, QUINTA OU SEXTA
							//E A DIFERENCIÇA DE 1 OU 2 DIAS ESTA TRATADA NA LINHA 173
							//PODEMOS LIBERRAR PARA CLIQUE
							//else if( dataLoop.getDate() > Prox_Data_Entrega.getDate() )
							//{
								//libera = true;
							//}
						}
						else{
							libera = true;
						}
						
						if(DiaEntrega == 2 && dataLoop.getDay() == 2){
							HTML_String += '<td  class="dias" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
						}
						else if(libera == true)
						{
							bool = (((Day_Counter > Today) || (Year != Current_Year) || (Month != Current_Month))?true:false);
							HTML_String += '<td '+( bool || Domingo_pode ? 'onclick="trocaData( \''+ Day_Counter+'/'+(Month+1)+'/'+Year+'\' )"; style="cursor:pointer"': '' )+' class="'+(bool || Domingo_pode ?'dias_entrega':'dias') +'" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
						}else{
							
							HTML_String += '<td  class="dias" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';	
						}
					}
					
					
					
					// Entrega em 1 dia
					/*
					else if(DiaEntrega == 1)
					{
						// Entrega antes das 17
						if(Current_Date.getHours() < 17)
						{
														
						}else
						{
							
						}						
					}else if(DiaEntrega == 2)
					{
						// Entrega antes das 17
						if(Current_Date.getHours() < 17)
						{
							switch(Day){
								case 1:
								if(Prox_Data_Entrega.getDate() == dataLoop.getDate())
								{
									alert('Entrou');
								}
								break;
							}
							
							
						}else
						{
							
						}						
					}
					/*
					
					bool = (((Day_Counter > Today) || (Year != Current_Year) || (Month != Current_Month))?true:false);
					HTML_String += '<td '+( bool || Domingo_pode ? 'onclick="trocaData( \''+ Day_Counter+'/'+(Month+1)+'/'+Year+'\' )"; style="cursor:pointer"': '' )+' class="'+(bool || Domingo_pode ?'dias_entrega':'dias') +'" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
					*/
						
				}else{
					
					bool = (( ((Day_Counter > Today) || (Year != Current_Year) || (Month != Current_Month) ) && !bloquearData)?true:false);
					HTML_String += '<td '+( bool || Domingo_pode ? 'onclick="trocaData( \''+ Day_Counter+'/'+(Month+1)+'/'+Year+'\' )"; style="cursor:pointer"': '' )+' class="'+(bool || Domingo_pode ?'dias_entrega':'dias') +'" ALIGN="CENTER" valign="middle">' + Day_Counter + '</td>';
					
					
							
				}		
				
			}
            Day_Counter++;
         }
         else {
            HTML_String += '<td class="vazio">&nbsp;</td>';
         }
         Loop_Counter++;
      }
      HTML_String += '</tr>';
   }
   HTML_String += '</table>';
   cross_el=ns6? document.getElementById("Calendar") : document.all.Calendar
   cross_el.innerHTML = HTML_String;
   
   libera = false;


   if( Current_Date.getDay() == 6 && Current_Date.getMonth() == Month )  
   {
		document.getElementById('noite').disabled = true;
   }

}

function trocaData( values ){
	
	dateSelected = new Date( values.split('/')[1]+"/"+values.split('/')[0]+"/"+values.split('/')[2] );
	
	cross_Data=ns6? document.getElementById("DataEntrega") : document.all.DataEntrega
	cross_Data.innerHTML = values;
	
	cross_DataCampo=ns6? document.getElementById("dataEntregaCampo") : document.all.dataEntregaCampo
	cross_DataCampo.value = values;
	
	//Não alterar a ordem dos if
	//Se não da um problema

	if(!document.getElementById('hora_marcada')){
			
		if( dateSelected.getDay() == 0 ) 
		{	
		
			
			if(Current_Date.getDay() == 6 && Current_Date.getHours() > 11){
				document.getElementById('manha').disabled = true;
				document.getElementById('tarde').disabled = true;
				document.getElementById('noite').disabled = true;
			}else{
				LiberaPeriodoManha();
			}
			
		}
		else if( dateSelected.getDay() == 6 || Current_Date.getDate() == 6  && dateSelected.getDate() <= Current_Date.getDate())  
		{
			
			
			/*
			POR ALGUM MOTIVO DO ALEM ESTÁ PEGANDO INVERTIDO O DISABLE NOS OPTIONS
			if(dateSelected.getDay() == 6 && Current_Date.getDate() != 6)
			{
				
				document.getElementById('manha').disabled = false;
				document.getElementById('tarde').disabled = false;
				document.getElementById('noite').disabled = true;
			}
			else if(Current_Date.getHours() >= 10)
			{
				document.getElementById('manha').disabled = true;
				document.getElementById('tarde').disabled = false;
				document.getElementById('noite').disabled = true;
			}else{
				document.getElementById('manha').disabled = false;
				document.getElementById('tarde').disabled = false;
				document.getElementById('noite').disabled = true;
			}
			*/
			if(dateSelected.getDay() == 6 && dateSelected.getDay() != 6)
			{
				document.getElementById('manha').disabled = true;
				document.getElementById('tarde').disabled = true;
				document.getElementById('noite').disabled = false;
			} else if(Current_Date.getHours() >= 10 && Current_Date.getHours() <= 15 &&  dateSelected.getDay() != 6){

				document.getElementById('manha').disabled = true;
				document.getElementById('tarde').disabled = false;
				document.getElementById('noite').disabled = false;
				
			} else if(Current_Date.getHours() > 16 &&  dateSelected.getDay() != 6){

				document.getElementById('manha').disabled = true;
				document.getElementById('tarde').disabled = true;
				document.getElementById('noite').disabled = false;
				
			}else if(dateSelected.getDay() == 6){
				document.getElementById('manha').disabled = false;
				document.getElementById('tarde').disabled = false;
				document.getElementById('noite').disabled = true;
			}
		}
		else if( dateSelected.getDate() > Current_Date.getDate() || (dateSelected.getMonth() +1) > ( Current_Date.getMonth()+1 ) || dateSelected.getFullYear() > Current_Date.getFullYear() ) 
		{

			LiberaTodosPeriodos();			
		}
		else
			voltarRadioBox();
	}
		
	try{
		oRadioBoxPeriodoEntrega = document.getElementById('hora_marcada');
		if( oRadioBoxPeriodoEntrega ){ modificaComboHoraMarcada( dateSelected.getDate() , dateSelected.getMonth() , dateSelected.getFullYear() ); }
	}catch(e){ }
}

function Check_Nums( ){
   if ((event.keyCode < 48) || (event.keyCode > 57)) {
      return false;
   }
}



function On_Year() {
   var Year = document.when.year.value;
   if (Year.length == 4) {
      Selected_Month = document.when.month.selectedIndex;
      Selected_Year = Year;
      Make_Calendar(Selected_Year, Selected_Month);
   }
}

function On_Month() {
   var Year = document.when.year.value;
   if (Year.length == 4) {
      Selected_Month = document.when.month.selectedIndex;
      Selected_Year = Year;
      Make_Calendar(Selected_Year, Selected_Month);
   }
   else {
      alert('Please enter a valid year.');
      document.when.year.focus();
   }
}


function Defaults( dataAtual , entrega , horaAtualServidor , Local , Dia, ProxDataEntrega ) {
	
	radioManha = document.getElementById("manha");
	radioTarde = document.getElementById("tarde");
	radioNoite = document.getElementById("noite");
	
	Localidade = Local;
	DiaEntrega = Dia;
	
	Current_Date = new Date(dataAtual);
	Prox_Data_Entrega = new Date(ProxDataEntrega);
	
	//Javascript Trabalha com meses de 0 ate 11
	Current_Month = Current_Date.getMonth();
	Current_Year = Current_Date.getFullYear();
	Today = Current_Date.getDate();
	
	HojePodeEntregar = entrega;
	
	horaAtual = horaAtualServidor.split(':');
	horaAtual = new Date( 0 , 0 , 0 , horaAtual[0] , horaAtual[1] , 0 , 0  );
	
   if (!ie4&&!ns6)
   return
   var Mid_Screen = Math.round(document.body.clientWidth / 2);
   document.when.month.selectedIndex = Current_Month;
   document.when.year.value = Current_Year;
   Selected_Month = Current_Month;
   Selected_Year = Current_Year;
   
   document.getElementById("mes_ano").innerHTML = Month_Label[Current_Month]+" "+Current_Year;
   
   Make_Calendar(Current_Year, Current_Month);
}


function Skip(Direction) {
   if (Direction == '+') {
      if (Selected_Month == 11) {
         Selected_Month = 0;
         Selected_Year++;
      }
      else {
         Selected_Month++;
      }
   }
   else {
	  
	  if(Skip_prev){
	   
		  if (Selected_Month == 0) {
			 Selected_Month = 11;
			 Selected_Year--;
		  }
		  else {
			 Selected_Month--;
		  }
	  }
   }
   
   Make_Calendar(Selected_Year, Selected_Month);
   
   document.when.month.selectedIndex = Selected_Month;
   document.when.year.value = Selected_Year;
   
   document.getElementById("mes_ano").innerHTML = Month_Label[Selected_Month]+" "+Selected_Year;
}

function LiberaTodosPeriodos(){
	try{
	document.getElementById('manha').disabled = false;
	document.getElementById('tarde').disabled = false;
	document.getElementById('noite').disabled = false;
	}catch(e){}
}


	//Variaveis global
	var OLDHTML=null;
	var HORA_ATUAL_SERVIDOR = null;
	var HORA = null;


	function  modificaComboHoraMarcada( DiaSelecionadoCalendario , MesSelecionadoCalendario , AnoSelecionadoCalendario  ){
		
		try{
			oRadioBoxPeriodoEntrega = document.getElementById('radioBoxPeriodoEntrega');
		}catch(e){ return false; }
		
		HMTL_Hora_marcada = "<table><tr><td width='200' class='fonte_principal'> Horário de entrega: <select name='hora_marcada' id='hora_marcada' class='formulario'>"+getSelectHora( DiaSelecionadoCalendario , MesSelecionadoCalendario , AnoSelecionadoCalendario  )+"</select></td><td class='fonte_principal'>Para voltar a entrega normal, <a href='javascript: voltarRadioBox()'><b> clique aqui</b></a></td></tr></table>";
		oRadioBoxPeriodoEntrega.innerHTML = HMTL_Hora_marcada;
		
	}

	getSelectHora = function( DiaSelecionadoCalendario , MesSelecionadoCalendario , AnoSelecionadoCalendario ){
		
		DataSelecionada = new Date( AnoSelecionadoCalendario , MesSelecionadoCalendario , DiaSelecionadoCalendario  );
		
		
		
		var OPTION_HORA=null;
		for( hora=00; hora < 24 ;  hora++ ){
			for( minute=00; minute < 61 ;  minute = minute+30 ){
				
				//Domingo ou sabado
				if( DataSelecionada.getDay() == 0 || DataSelecionada.getDay() == 6 ){
					
					OPTION_HORA = "<option>Indisponivel</option>";
					/*
					if( hora > 7 && hora < 14 && minute != 60 )
						if( hora != 13 || ( hora == 13 && minute != 30 ) )
							if( hora != 8 || ( hora == 8 && minute != 00 ) ){
								//OPTION_HORA += "<option value='"+ hora +'h'+ minute +"'>  "+ hora +'h'+ minute +" </option>";
							}*/
				}
				else if( DataSelecionada.getDay() == 1 ){
					
					
					
					if( minute != 60 && hora > 10 && hora < 20 || ( hora == 10 && minute == 30 || hora == 20 && minute == 00 )){
						//só pode ser marcado com 3 horas de antecendencia, isso se for no mesmo dia
						if(((hora - 2 > HORA[0]) || ((DiaSelecionadoCalendario > Current_Date.getDate()) || (MesSelecionadoCalendario > Current_Date.getMonth()) || ( AnoSelecionadoCalendario > Current_Date.getFullYear())))){
							OPTION_HORA += "<option value='"+ hora +'h'+ minute +"'> "+ hora +'h'+ minute +" </option>";
						}
					}
				}
				else
					//não pode ser 60 minutos, pode ser horas entre 7:30 e 20:00 que são horarios disponiveis para entrega
					if( minute != 60 && 
						hora > 7 && hora < 20 || 
						( hora == 7 && minute == 30 || hora == 20 && minute == 00 ))
					{
						
						
						dataServidor = dataAtualServidor.split('/');
						/*
						
						if(DiaSelecionadoCalendario == dataServidor[0] && horaAtualServidor < 8){
							mostraHora = 8;
							alert('aki');
						} else {
							mostraHora = hora -3;
						}
						*/
						
												
						//só pode ser marcado com 3 horas de antecendencia, isso se for no mesmo dia
						if( ((hora -3 > HORA[0]) || 
							((DiaSelecionadoCalendario > Current_Date.getDate()) || 
							(MesSelecionadoCalendario > Current_Date.getMonth()) || 
							(AnoSelecionadoCalendario > Current_Date.getFullYear())
							 )))
						{
							
							if( Current_Date.getHours() > 17 && DataSelecionada.getDate() == Current_Date.getDate()+1)
							{
								
								
								if( hora < 10 ){
									libera_hora = false;	
								}
								else{
									if( hora == 10 && minute ==  0 ){
										libera_hora = false;
									}else{
										libera_hora = true;
									}
								}
							}else{
								libera_hora = true;
							}
							
							if(DataSelecionada.getDate() == dataServidor[0]){
								
								
								if(horaAtualServidor < 10 && hora < 10){
									libera_hora = false;
								} else {
									libera_hora = true;
								}
							}
							
							
							if(libera_hora){
								
								OPTION_HORA += "<option value='"+ hora +'h'+ minute +"'> "+ hora +'h'+ minute +" </option>";

							}else{
								
							}
						}
					}
			}
		}
		return OPTION_HORA;
	}
	
	function voltarRadioBox(){
		location.href = location.href;
	}
	
	function setHora( HORA_SERVIDOR ){
		HORA_ATUAL_SERVIDOR = HORA_SERVIDOR;
		HORA = HORA_SERVIDOR.split(':');
		oRadioBoxPeriodoEntrega = document.getElementById('radioBoxPeriodoEntrega');
		try{ OLDHTML = oRadioBoxPeriodoEntrega.innerHTML;}catch(e){}
	}
	
	LiberaPeriodoManha = function(){
			try{
				document.getElementById('manha').disabled = false;
				document.getElementById('tarde').disabled = true;
				document.getElementById('noite').disabled = true;
			}catch(e){}
	}
	
	function getDomingoEntrega( date ){
		
		if( date.getMonth() > Current_Date.getMonth() || date.getFullYear() > Current_Date.getFullYear() ){
			return true;
		}
		else
		if( date.getDate() > Current_Date.getDate() ){
		
			if( ( Current_Date.getDay() > 0 && Current_Date.getDay() < 6 ) || Current_Date.getDay() == 6 && horaAtual.getHours( ) < 16 && horaAtual.getMinutes( ) < 59 ){
				return true;
			}
			else{
			
				if( Current_Date.getDay() == 6 && horaAtual.getHours() > 12 && (Current_Date.getDate()+1) == date.getDate() ){
					return false;
				}
				else
				if( Current_Date.getDay() == 0 ){
					return false;
				}
				else{
					return true; 
				}
			}
		}else{
			return false;	
		}
	}
