// JavaScript Document


function CheckDate(ChkDate)
{
   var Year=parseInt(ChkDate.substring(6,10), 10);
   var Month=parseInt(ChkDate.substring(3,5), 10);
   var Day=parseInt(ChkDate.substring(0,2), 10);

   if ((ChkDate.charAt(2)==".") && (ChkDate.charAt(5)=="."))
   {
       if ((Day<=31) && (Day>=1) && (Month>=1) && (Month<=12))
       {
         if((Month==1) || (Month==3) || (Month==5) || (Month==7) || (Month==8) || (Month==10) || (Month==12)) { return true; }
         else
         {
            if ((Day<=30) && (Day>=1))
            {
                if((Month==4) || (Month==6) || (Month==9) || (Month==11)) { return true; }
               else
               {
                  if ((Day<=28) && (Day>=1)) { return true; }
                  else
                  {
                      if(Day==29)
                      {
                           if ((Year%4)==0)
                           {
                               if ((Year%100)!=0) { return true; }
                               else
                               {
                                     if ((Year%400)==0) { return true; }
                                     else { return false; }
                               }
                           }
                          else { return false; }
                      }
                      else { return false; }
                  }
            }
         }
        else { return false; }
       }
    }
    else { return false; }
  }
  else { return false; }
}


function check_form() {
	var error = 0;
	var errortext = new Array();
	var errorfield = new Array();
	
	// Ist das Feld Datum > Heute
	var jetzt = new Date();
	var startdatum = $('#txtStartDate').attr("value");
	var enddatum = $('#txtEndDate').attr("value");
	if (CheckDate(startdatum)){
		
		Tag = startdatum.substr(0,2);
		Monat = startdatum.substr(3,2);
		Jahr = startdatum.substr(6,4);
		USStartDatum = Monat + "/" + Tag + "/" + Jahr;
		
		if (Date.parse(USStartDatum) < (jetzt.getTime()+86400)){
			error = 1;
//			alert("Eingabe - nogo");
			errortext.push('Das Aboldatum kann frühestens ab dem morgigen Tag gewählt werden.');
		}
		else{
//			alert("Eingabe - yogo");
			if (CheckDate(enddatum)){
				Tag = enddatum.substr(0,2);
				Monat = enddatum.substr(3,2);
				Jahr = enddatum.substr(6,4);
				USEndDatum = Monat + "/" + Tag + "/" + Jahr;
				if (USEndDatum<USStartDatum){
//					alert ("Enddatum - nogo");
					errortext.push('Das Abgabedatum darf nicht vor dem Anmietdatum liegen');
					error = 1;					
				}
				else {
//					alert ("Enddatum - yogo");
				}
			}
			else {
//				alert ("Enddatum - falsches format");
				errortext.push('Das Abgabedatum muss im Format (tt.mm.jjjj) angegeben werden.');
				error = 1;
			}
		}
	}
	else{
//		alert ("Startdatum - falsches Format");
		errortext.push('Das Abholdatum muss im Format (tt.mm.jjjj) angegeben werden.');
		error =1;
	}

	// Ist das Feld IATA belegt?

	if ($('#iata_code').attr("value")=="") {
		error = 1;	
		if ($('inputString').attr("value")==""){
			errortext.push('Es muss ein Ort zur Anmiete angegeben werden');
		}
		else{
			errortext.push('Bitte wählen Sie einen Ort zur Anmiete aus der Liste.');
		}
	}

	// WENN IATA nicht belegt, dann prüfe per JSON, ob das Feld INUPUT STRING = einer Location in der Datenbank ist mit Ziellocations

	// Wenn mehrere, dann muss die Location (Flüghafen gewählt werden können)


	if (error == 1){
		var errormessage = '';
		for(i=0;i<errortext.length;i++){
			errormessage +='<li>'+errortext[i]+'</li>';
		}
		errormessage= '<ul>'+errormessage+'</ul>';
		 $("#errormsg").empty();
		 $("#errormsg").append(errormessage);
		 
		 // Fehlerfelder mit anderer Klasse belegen
		 
		return false;	
	}
	else{
		return true;
	}

}



	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$('#suggestions').hide();
		} else {
			$.post("/json/rpc.php", {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$('#suggestions').show();
					$('#autoSuggestionsList').html(data);
				}
			});
		}
	} // lookup
	
	function fill(thisValue, thatValue) {
		$('#inputString').val(thisValue);
		$('#iata_code').val(thatValue);
		$('#locationstring').val(thisValue);
		setTimeout("$('#suggestions').hide();", 200);
		
	}
	

	jQuery(function($){
	$.datepicker.regional['de'] = {
		closeText: 'schließen',
		prevText: '&#x3c;zurück',
		nextText: 'Vor&#x3e;',
		currentText: 'heute',
		monthNames: ['Januar','Februar','März','April','Mai','Juni',
		'Juli','August','September','Oktober','November','Dezember'],
		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
		'Jul','Aug','Sep','Okt','Nov','Dez'],
		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
		dateFormat: 'dd.mm.yy', 
		firstDay: 1,
		isRTL: false};
	$.datepicker.setDefaults($.datepicker.regional['de']);
});

$(function () 
{

    $('#txtStartDate, #txtEndDate').datepicker(
    {

        beforeShow: customRange,
        dateFormat: "dd.mm.yy",
		minDate: +1,
		maxDate: '+1Y',
		showButtonPanel: true
    });

});


function customRange(input) 
{ 
	var today = new Date();
	var min = new Date(today.getTime() + 24 * 60 * 60 * 1000);
	var dateMin = min;
    var dateMax = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);
    var dayRange = 365; 


        if (input.id == "txtStartDate") 
        {
            if ($("#txtEndDate").datepicker("getDate") != null)
            {
                dateMax = $("#txtEndDate").datepicker("getDate");
                dateMin = $("#txtEndDate").datepicker("getDate");
                dateMin.setDate(dateMin.getDate() - dayRange);
                if (dateMin < min)
                {
                        dateMin = min;
                }
             }
             else
             {
//                dateMax = new Date(2010, 4, 1); //Set this to your absolute maximum date
			//	dateMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + 7);
				$("#txtEndDate").defaultDate = $("txtStartDate")+7;

             }                      
        }
        else if (input.id == "txtEndDate")
        {
//                dateMax = new Date(2010, 4, 1); //Set this to your absolute maximum date
				dateMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + 365);
                if ($("#txtStartDate").datepicker("getDate") != null)
                {
                        dateMin = $("#txtStartDate").datepicker("getDate");
                      var rangeMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + dayRange);

                        if(rangeMax < dateMax)
                        {
                            dateMax = rangeMax; 
                        }
                }
        }
    return {
                minDate: dateMin, 
                maxDate: dateMax
            }; 

}


