﻿// JavaScript Document

//================================================================================
// Nombre: 
// Autor:  Luigi Nori - MA-NO.org
// Descripción: Funciones de calendar - dependencias de Jquery e JqueryUI
//================================================================================

// Search Form Script
// Powered by MA_NO

$(function() {
	$('#tabs').tabs();

	var jsMinDate;
	var jsMaxDate;
	
	//minimum days of difference between start and end
	var minDaysOfDiff=1;
	var minRangeOfDays=2;
	
	var dayIn;
	var monthIn;
	var yearIn;
	
	var dayOut;
	var monthOut;
	var yearOut;
	
	var numDays;

	dias = new Array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");
	dura = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

  var confNameDayIn;
  var confNameDayOut;


	$("#datepickerOne").datepicker({
		buttonImage: '/images/calendar.gif',
		defaultDate: +1, 
		minDate: +1,
		//maxDate: '+1M +10D',
		maxDate: '+1Y',
		dateFormat: 'dd/mm/yy', 
		showOn: 'both',
		buttonImage: '/images/calendar.gif',
		buttonImageOnly: true,
		numberOfMonths: 2,
		showButtonPanel: true,
       beforeShowDay: nationalDays,
	onClose: function(){


	}
	});
	
	$("#datepickerIn").datepicker({
		defaultDate: +1, 
		minDate: +1,
		//maxDate: '+1M +10D',
		maxDate: '+1Y',
		dateFormat: 'dd/mm/yy', 
		showOn: 'both',
		buttonImage: '/images/calendar.gif',
		buttonImageOnly: true,
		numberOfMonths: 2,
		showButtonPanel: true,
		
		//hide weekends
		//beforeShowDay: $.datepicker.noWeekends,
		
		//hide some days
		beforeShowDay: nationalDays,
		
		onClose: function(){
			//$('#datepickerOut').datepicker('option', 'minDate', Date($(this).val()));
			//alert ($(this).val());
			
			jsMinDate = WriteToMaxDate ($(this).val(),minDaysOfDiff);
			
			$('#datepickerOut').datepicker('option', 'minDate', jsMinDate); 
			
			
			//alert ($('#datepickerOut').attr("value"));
			
			var txtDateTo = $('#datepickerOut').attr("value").split('/', 3);
			document.search_form.dateOut.value = txtDateTo[0] +"-"+txtDateTo[1]+"-"+txtDateTo[2];
			//alert (document.search_form.dateOut.value);
			//alert(document.search_form.dateOut.value);
			//jsMinDate = new Date($('#datepickerIn').val());
	     //alert (jsMinDate + ' ---> ' + Date($('#datepickerIn').val()));
		}
		 
	});
		
	$("#datepickerOut").datepicker({
		defaultDate: +1, 
		maxDate: '+1Y',
		dateFormat: 'dd/mm/yy', 
		showOn: 'both',
		buttonImage: '/images/calendar.gif',
		buttonImageOnly: true,
		numberOfMonths: 2,
		showButtonPanel: true,
		
		//hide weekends
		//beforeShowDay: $.datepicker.noWeekends,
		
		//hide some days
		beforeShowDay: nationalDays,
		onClose: function(){
			//here we must put the control		
			analyzeEndDate($(this).val(),minDaysOfDiff);
		},
		minDate: +1
	});
		
		
        //jsMaxDate = new Date($('#datepickerOut').val());
		
});
	
function WriteToMaxDate (convDate,minDaysOfDiff){
	// Create array from txtDateFrom
	var txtDateFrom = convDate.split('/', 3);
	

	if ((txtDateFrom.length == 3) && (txtDateFrom[0].length <= 2) && (txtDateFrom[1].length <= 2) && (txtDateFrom[2].length <= 4)){
		if ($('#datepickerOut').attr("value") == ''){
			$('#datepickerOut').attr("value", ( parseInt(txtDateFrom[0]) + minDaysOfDiff ) +"/"+txtDateFrom[1]+"/"+txtDateFrom[2]); 
			document.search_form.dateOut.value = ( parseInt(txtDateFrom[0]) + minDaysOfDiff ) +"-"+txtDateFrom[1]+"-"+txtDateFrom[2];
			//alert(document.search_form.dateOut.value);
		}
		
		var dateDateFrom = new Date(txtDateFrom[2], txtDateFrom[1] - 1, parseInt(txtDateFrom[0]) + minDaysOfDiff );
		
		dayIn = txtDateFrom[0];
		monthIn = txtDateFrom[1];
		yearIn = txtDateFrom[2];
		//alert (dayIn+'-'+monthIn+'-'+yearIn);
		document.search_form.dateIn.value = dayIn+'-'+monthIn+'-'+yearIn;
		//alert(document.search_form.dateIn.value);
		nameDiaIn = dateDateFrom.getDay();
		
		//alert (dias[nameDiaIn]);
		//alert(calculeDaySem(yearIn, monthIn, dayIn));

		return dateDateFrom;
	
	} 
}


function analyzeEndDate (convEndDate,minDaysOfDiff){
	// Create array from txtDateFrom
	var txtDateTo = convEndDate.split('/', 3);
	//alert (txtDateFrom);
	if ((txtDateTo.length == 3) && (txtDateTo[0].length <= 2) && (txtDateTo[1].length <= 2) && (txtDateTo[2].length <= 4)){
		
		var dateDateTo = new Date(txtDateTo[2], txtDateTo[1] - 1, parseInt(txtDateTo[0]) + minDaysOfDiff );
		
		dayOut = txtDateTo[0];
		monthOut = txtDateTo[1];
		yearOut = txtDateTo[2];
		//alert (dayOut+'-'+monthOut+'-'+yearOut);
		document.search_form.dateOut.value = dayOut+'-'+monthOut+'-'+yearOut;
	  numDays =  dayOut - dayIn;
		
		if (numDays > minDaysOfDiff){ 
		//alert ("Has selecciondo mas dis que la promocion");
		}
		//return dateDateTo;
	} 
}
	
/*************************************************************************************/
/*
* Functions to deselect days in Search Form
* runs with - beforeShowDay: nationalDays, - in datepicker
*/


var noDays = [
/*			  [7, 4, 'id'],
			   [7, 5, 'id'],
			   [7, 6, 'id'],
			   [7, 7, 'id'],
			   [7, 8, 'id'],
			   [7, 14, 'id'],
			   [7, 15, 'id'],
			   [7, 16, 'id'],
			   [7, 17, 'id'],
			   [7, 18, 'id'],
			   [8, 7, 'arr'],
			   [8, 12, 'arr']*/
			   ];   


function nationalDays(date) {   
    for (i = 0; i < noDays.length; i++) {   
        if (date.getMonth() == noDays[i][0] - 1 && date.getDate() == noDays[i][1]) {   
            //return [false, noDays[i][2] + '_day']; 
				return [false, '']; 
        }   
    }   
    return [true, ''];   
}
	
/*************************************************************************************/
