//Verification de la validité d'une date / format DD/MM/YYYY
//Colorisation du chp en cas d'erreur
function verifDates(id) {

	var eledateVerifier =  document.getElementById(id);
	var dateVerifier = eledateVerifier.value;
	
	if (isValidDate(dateVerifier)) {
		eledateVerifier.style.borderColor="#CCC";
		return false;
		} else {
		eledateVerifier.style.borderColor="#FF0000";
		$('#Err-dates').fadeIn('slow');
		return true;
		}
}

//Controle des dates
//Colorisation du chp en cas d'erreur
function verifDatesDepartDu() {
	

	var depart = $("#depart").val();
	var retour = $("#retour").val();
	var du = $("#du").val();
	var au = $("#au").val();
	var erreur = false;


	if (depart!=""  && du!="") { //On test les dates
		
		var dateAuj = new Date();
		dateAuj.setHours(0, 0, 0, 0)

		var arrDepart = depart.split('/');
		testDepart = new Date(parseInt(arrDepart[2], 10), parseInt(arrDepart[1], 10)-1, parseInt(arrDepart[0], 10));

		var arrDu = du.split('/');
		testDu = new Date(parseInt(arrDu[2], 10), parseInt(arrDu[1], 10)-1, parseInt(arrDu[0], 10));

			if (testDepart>testDu) {
				$("#Err-dateDepart").fadeIn('slow');
				$("#du").css("borderColor", "#FF0000");
				$("#depart").css("borderColor", "#FF0000");
				erreur=true;
				} else {
				$("#Err-dateDepart").fadeOut('slow');
				$("#du").css("borderColor", "#CCC");
				$("#depart").css("borderColor", "#CCC");
			}
			
	}
	
	if (retour!=""  && au!="") { //On test les dates

		
		var arrRetour = retour.split('/');
		testRetour = new Date(parseInt(arrRetour[2], 10), parseInt(arrRetour[1], 10)-1, parseInt(arrRetour[0], 10));

		var arrAu = au.split('/');
		testAu = new Date(parseInt(arrAu[2], 10), parseInt(arrAu[1], 10)-1, parseInt(arrAu[0], 10));

			if (testRetour<testAu) {
				$("#Err-dateRetour").fadeIn('slow');
				$("#au").css("borderColor", "#FF0000");
				$("#retour").css("borderColor", "#FF0000");
				erreur=true;
				} else {
				$("#Err-dateRetour").fadeOut('slow');
				$("#au").css("borderColor", "#CCC");
				$("#retour").css("borderColor", "#CCC");
			}
		
	}
	
	if (du!=""  && au!="") { //On test les dates


		var arrDu = du.split('/');
		testDu = new Date(parseInt(arrDu[2], 10), parseInt(arrDu[1], 10)-1, parseInt(arrDu[0], 10));

		var arrAu = au.split('/');
		testAu = new Date(parseInt(arrAu[2], 10), parseInt(arrAu[1], 10)-1, parseInt(arrAu[0], 10));
		
		
			if (testDu>=testAu) {
				$("#Err-dates").fadeIn('slow');
				$("#du").css("borderColor", "#FF0000");
				$("#au").css("borderColor", "#FF0000");
				erreur=true;
				} else {
				$("#Err-dates").fadeOut('slow');
				$("#du").css("borderColor", "#CCC");
				$("#au").css("borderColor", "#CCC");
			}

		
	}
	
	
	if ((depart!=""  && du!="") && document.getElementById("differenceDate")!=null) {
		//la personne est partie avant aujourd'hui, les dates sont donc différentes
		
		if (testDepart<dateAuj) {
			document.getElementById("differenceDate").checked=true;
			differenceDateCb(true);
			if (testDu<dateAuj) {
				$("#du").val("");
				// $("#Err-dates").fadeIn('slow');
				//$("#au").css("borderColor", "#FF0000");
				return true;
				} else {
				$("#Err-dates").fadeOut('slow');
				// $("#au").css("borderColor", "#CCC");
			}
		}
	
		
		//dates identiques
		if (testDepart>=dateAuj && ($("#depart").val()==$("#du").val()) && ($("#retour").val()==$("#au").val())) {
			document.getElementById("differenceDate").checked=false;
			differenceDateCb(false);
		}
	}
	
	

	//Probleme 
	if (erreur == true) {
		if (periode!="") ajaxdifferenceDates("vide"); //on vide l'info
		return true;
		} else {
		if (periode!="") ajaxdifferenceDates("calcul"); //on calcul la différence
		return false;
		
	}
}



//verifie si la date est > à aujourd'hui
function dateToday(s) {
	
	var arrS = s.split('/');
	testS = new Date(parseInt(arrS[2], 10), parseInt(arrS[1], 10)-1, parseInt(arrS[0], 10));
	testToday = new Date();
	
	if (testS > testToday) {
		return true;
		} else {
		return false;
	}
	
}

/*
 * Calcul la diff entre deux dates selon 3 parametres debut, fin et unite
 * AJAX
 */
function ajaxdifferenceDates(action) {

	var du = $("#du").val();
	var au = $("#au").val();
	
	//inner div
	var info = document.getElementById("periode-info");
	
	//periode definit dans le fichier appelant
		
		if (isValidDate(du) && isValidDate(au) && periode!="" && action=="calcul") {
			
			//on affiche le loader
			info.innerHTML = '<img src="'+baseUrl+'/css/public/layout/ajax-loader.gif" alt="loading"/>';
			
			//on lance la requette ajax

			$.ajax({
				  type: "POST", 
				  url: baseUrl+'/Souscriptions/ajax/ajaxdifferencedates/',
				  data: "du="+du+"&au="+au+"&periode="+periode,
				  success : function(resp) {
				
					if (resp!="") {

						info.innerHTML = resp;
						$(".periode-info-ligne").css("display", "");
				
					} else {
						info.innerHTML = ""; //on vide
						$(".periode-info-ligne").css("display", "none");
					}
					
			}

			});
			
			
			} else { //on vide dans tout les autres cas inclu "vide"
			info.innerHTML = "";
			$(".periode-info-ligne").css("display", "none");
		}
		
	
}



//Checks a string to see if it in a valid date format
//of (D)D/(M)M/(YY)YY and returns true/false
function isValidDate(s) {
	// format D(D)/M(M)/(YY)YY
	var dateFormat = /^\d{1,4}[\.|\/|-]\d{1,2}[\.|\/|-]\d{1,4}$/;
	if (dateFormat.test(s)) {
		// remove any leading zeros from date values
		s = s.replace(/0*(\d*)/gi,"$1");
		var dateArray = s.split(/[\.|\/|-]/);
		// correct month value
		dateArray[1] = dateArray[1]-1;
		// correct year value
		if (dateArray[2].length<4) {
			// correct year value
			dateArray[2] = (parseInt(dateArray[2]) < 50) ? 2000 + parseInt(dateArray[2]) : 1900 + parseInt(dateArray[2]);
		}
		var testDate = new Date(dateArray[2], dateArray[1], dateArray[0]);
		if (testDate.getDate()!=dateArray[0] || testDate.getMonth()!=dateArray[1] || testDate.getFullYear()!=dateArray[2]) {
			return false;
		} else {
			return true;
		}
	} else {
		return false;
	}
}