	function popPickupCityList(){
		window.open("CityList.php?type=pickupLocation&countryCode=US","cities" ,"width=300,height=320,left=500,top=50,scrollbars=1");
	}

	function popDropoffCityList(){
		window.open("CityList.php?type=dropoffLocation&countryCode=US","cities" ,"width=300,height=320,left=500,top=50,scrollbars=1");
	}
	function displayPackageInfo(height){

		window.open("PackageInfo.php","Information" ,"width=450 height="+height+" top=50 left=200 scrollbars=1");
	}

//		function validateLocations(){
//
//		var pickLoc=document.form1.pickupLocation.value;
//		var dropLoc=document.form1.dropoffLocation.value;
//
//			if(pickLoc.length >0){
//
//				if(dropLoc.length >0){
//					return true;
//				}
//				else{
//					alert("please specify drop off location");
//					document.form1.dropoffLocation.focus();
//					return false;
//				}
//			}
//			else{
//				alert("please specify pickup location");
//				document.form1.pickupLocation.focus();
//				return false;
//
//			}
//	}

function validateLocations(){

		var pickCity=document.form1.Region.value;
		var dropCity=document.form1.RetRegion.value;

			if(pickCity.length >0){

				if(dropCity.length >0){
					return true;
				}
				else{
					alert("please specify drop off city");
					document.form1.RetRegion.focus();
					return false;
				}
			}
			else{
				alert("please specify pickup city");
				document.form1.Region.focus();
				return false;

			}
	}
  function checkNum( field ) {
  var valid = "0123456789"
  var ok = "yes";
  var temp;

  for (var i=0; i< field.length; i++)
  {
    temp = "" + field.substring(i, i+1);

	if( i == 0 )
	{
      if( temp == "-" )
				ok = "no";
	  }
		  else
		  {
				if(valid.indexOf(temp) == "-1") ok = "no";
		  }

	   }

	   if (ok == "no") {
		 return false;
	   }
       else{
		return true;
       }

	}
function checkDateFormat(str)
{
  if(str.length !=10)
  {
    //alert("Invalid length :" + str.length );

  }
  else
  {
      if(str.substring(2,3)== "/")
      {
		   if(str.substring(5,6)== "/")
		   {

				var dd = str.split("/")[0];
				var mm = str.split("/")[1];
				var yy = str.split("/")[2];

				if (checkNum(dd))
				{
				    if( (dd > 0	) && (dd <= 31))
					{
						if (checkNum(mm))
						{
						   if( (mm > 0	) && (mm <= 12))
							{

								if (checkNum(yy))
								{
									if ( yy > 0 )
									{
									    return true;
									}
									else
									{
										alert ("Input a valid year.");
									}
								}
								else
								{
									//alert("invalid yyyy part :" + yy);
								}
							}
							else
							{
								alert("Month should be between 1 and 12.");
							}

						}
						else
						{
							//alert("invalid mm part :" + mm);
						}
					}
					else
					{
						alert("Date should be between 1 and 31.");
					}

				}
				else
				{
					//alert("invalid dd part :" + dd);
				}


		   }
		   else
		   {
			alert("no second slash " + str.substring(5,6));
		   }
	}
	else
	{
	   alert("no first slash " + str.substring(2,3));
	}
 }


}

function valid_pick_up_date(pick_up_date)
{ 
	var ideal_pick_up_date = new Date(); // Me inicializa la variable ideal_pick_up_date en la fecha actual.
	
	// Obtengo la fecha ideal de pick-up. fecha ideal = fecha actual + 3 días
	ideal_pick_up_date.setTime(ideal_pick_up_date.getTime() + 3 * 24 * 60 * 60 * 1000);

    // Obtengo la fecha real de pick-up introducida por el usuario
	var yyyy = pick_up_date.split("/")[2];
	var mm = pick_up_date.split("/")[1];
	var dd = pick_up_date.split("/")[0];
	if (mm.charAt(0) == 0) // Se debe quitar el 0 que tiene el edit en el mes.
	{
		mm = mm.charAt(1);
	}
	if (dd.charAt(0) == 0) // Se debe quitar el 0 que tiene el edit en el día.
	{
		dd = dd.charAt(1);
	}
	var real_pick_up_date = new Date(mm + '/' + dd + '/' + yyyy);
    // Se deben igualar la hora, porque sino da error al comparar, en caso de que ideal_pick_up_date sea el mismo día de real_pick_up_date. 
	real_pick_up_date.setHours(ideal_pick_up_date.getHours(),ideal_pick_up_date.getMinutes(),ideal_pick_up_date.getSeconds(),ideal_pick_up_date.getMilliseconds());

    // Comparo las dos fechas. Si real_pick_up_date >= ideal_pick_up_date, la fecha introducida es válida
	if (real_pick_up_date >= ideal_pick_up_date)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function valid_drop_off_date(pick_up_date, drop_off_date)
{
	// Obtengo la fecha de pick-up introducida por el usuario.
	var pu_yyyy = pick_up_date.split("/")[2];
	var pu_mm = pick_up_date.split("/")[1];
	var pu_dd = pick_up_date.split("/")[0];
	if (pu_mm.charAt(0) == 0) // Se debe quitar el 0 que tiene el edit en el mes.
	{
		pu_mm = pu_mm.charAt(1);
	}
	if (pu_dd.charAt(0) == 0) // Se debe quitar el 0 que tiene el edit en el día.
	{
		pu_dd = pu_dd.charAt(1);
	}

    // Obtengo la fecha de drop-off introducida por el usuario.
	var do_yyyy = drop_off_date.split("/")[2];
	var do_mm = drop_off_date.split("/")[1];
	var do_dd =drop_off_date.split("/")[0];
	if (do_mm.charAt(0) == 0) // Se debe quitar el 0 que tiene el edit en el mes.
	{
		do_mm = do_mm.charAt(1);
	}
	if (do_dd.charAt(0) == 0) // Se debe quitar el 0 que tiene el edit en el día.
	{
		do_dd = do_dd.charAt(1);
	}

    // Obtengo la fecha de drop-off introducida por el usuario en un formato válido para poder comparar.
	var real_drop_off_date = new Date(do_mm + '/' + do_dd + '/' + do_yyyy);

    // Obtengo la fecha ideal de drop-off. fecha ideal drop-off = fecha real pick-up + 1 días.
	var real_pick_up_date = new Date(pu_mm + '/' + pu_dd + '/' + pu_yyyy);
    var ideal_drop_off_date = new Date();
	ideal_drop_off_date.setTime(real_pick_up_date.getTime() + 1 * 24 * 60 * 60 * 1000);
	// Igualo las horas del real_drop_off_date y del ideal_drop_off_date
	real_drop_off_date.setHours(ideal_drop_off_date.getHours(),ideal_drop_off_date.getMinutes(),ideal_drop_off_date.getSeconds(),ideal_drop_off_date.getMilliseconds());

    // Comparo las fechas
    if (real_drop_off_date >= ideal_drop_off_date)
	{
		return true;
	}
	else
	{
		return false;
	}
}


function checkDateAndLocations()
{
// Esta función ha sido modificada por Cirelda, para ganarizar que el intervalo de fechas sea válido.
    var error = false;
	
    var pickUpDate = document.form1.pickupDate.value;
	var dropOffDate = document.form1.dropoffDate.value;
	var pickUpTime = document.form1.pickuptime.value;
	var dropOffTime = document.form1.dropofftime.value;
	//var driverCoutry = document.form1.ResCountry.value;
	var driverAge = document.form1.Age.value;

	if(!checkDateFormat(pickUpDate))
    {
		alert("Please select a pick-up date.");
		document.form1.pickupDate.focus();
		error = true;
	}

    if((!error) && (!valid_pick_up_date(pickUpDate)))
    {
		alert("Please select a valid pick-up date. At least 3 days after today.");
		document.form1.pickupDate.focus();
		error = true;
	}
	
	if((!error) && (!checkDateFormat(dropOffDate)))
    {
	    alert("Please select a drop-off date.");
		document.form1.dropoffDate.focus();
		error = true;
    }
	if((!error) && (!valid_drop_off_date(pickUpDate, dropOffDate)))
    {
		alert("Please select a valid drop-off date. At least 7 days after pick-up date.");
		document.form1.dropoffDate.focus();
		error = true;
	}
	
	if((!error) && (pickUpTime==""))
	{
		alert("Please select a pick-up time.");
		document.form1.pickuptime.focus();
		error = true;
	}
	if((!error) && (dropOffTime==""))
	{
		alert("Please select a drop-off time.");
		document.form1.dropofftime.focus();
		error = true;
	}
				
	//if(!error)
	//{
		//pDate=pickUpDate.substr(0,2);
		//pMonth=pickUpDate.substr(3,2);
		//pYear=pickUpDate.substr(8,2);

		//pHours=pickUpTime.substr(0,2);
		//pMin=pickUpTime.substr(3,2);
		//pSec="00";

		//dDate=dropOffDate.substr(0,2);
		//dMonth=dropOffDate.substr(3,2);
		//dYear=dropOffDate.substr(8,2);

		//dHours=dropOffTime.substr(0,2);
		//dMin=dropOffTime.substr(3,2);
		//dSec="00";

		//objPickupDate= new Date(pYear,pMonth,pDate,pHours,pMin,pSec);
		//objDropoffDate= new Date(dYear,dMonth,dDate,dHours,dMin,dSec);
	//}
		
		//if(validateLocations())

	if((!error) && (driverAge < 21))
	{
		alert("Driver's age should be at least 21 years.");
		document.form1.Age.focus();
		error = true;
	}
	
	if(!error)
    {
		document.form1.SearchedBefore.value = "yes";
		document.form1.selectedPickupRegion.value = document.form1.Region.selectedIndex;
		document.form1.selectedDropoffRegion.value = document.form1.RetRegion.selectedIndex;	
								
		document.form1.submit();
	}
}


function reset(){
	//form1.pickupLocation.value="";
	//form1.dropoffLocation.value="";
	form1.pickupDate.value="";
	form1.dropoffDate.value="";

	form1.pickuptime.selectedIndex=0;
	form1.dropofftime.selectedIndex=0;

	form1.cars.selectedIndex=0;
	form1.packages.selectedIndex=0;
}

function SetTextPackage(){
	form1.packageIndex.value=form1.packages.selectedIndex;
	form1.selectedPackage.value=form1.packages.options[form1.packages.selectedIndex].text;
}
function SetTextCarType(){

	form1.selectedCarType.value=form1.cars.options[form1.cars.selectedIndex].text +"-"+form1.categories.options[form1.categories.selectedIndex].text;
	form1.carTypeIndex.value=form1.cars.selectedIndex;
	if(form1.cars.selectedIndex==0){
		form1.selectedCarType.value="All-All";
	}


	populateCategoryCombo();
}

function setCategory(){
	form1.selectedCarType.value=form1.cars.options[form1.cars.selectedIndex].text +"-"+form1.categories.options[form1.categories.selectedIndex].text;
	form1.selectedCarCategoryIndex.value=form1.categories.selectedIndex;
}

function setTimeIndexes(target , field){
	target.value=field.selectedIndex;
}

function populateCategoryCombo(){

	var rem_index=1;
//alert(form1.categories.length );
	var length=form1.categories.length ;

	for( rem_index=1; rem_index < length ; rem_index ++){
		//alert(length);
		form1.categories.options[ length - rem_index]=null;
		//length = length -1;
	}
	//form1.categories.options[ 1]=null;

	var _categories=form1.categoryString.value;
	var selected = form1.cars.selectedIndex;


	if( selected == 0){
		//alert(selected);
		form1.categories.selectedIndex=0;

	}
	else{

		var subList=_categories.substring(0,_categories.length);

		var i=0;
		//alert(selected);
		for( i=0; i < selected; i++){
			var tempIndex=subList.indexOf("(")+1;
			//var tempIndex=parseInt(tempIndex) ;
			subList = subList.substring(tempIndex,form1.categoryString.value.length);
			//alert(subList );
		}

		subList = subList.substring( 0, subList.indexOf(")"));

		var catIndex= subList.indexOf(",");

		if( subList.length > 0){
			//alert(subList);
			if( catIndex == -1 ){
				form1.categories.options[form1.categories.length]=new Option(subList," ");

			}
			else{
				var noOfcates=0;
				var index=0;
				//var tempString="";

				while (index != -1){
					index = subList.indexOf(",");
					if(index != -1){
						form1.categories.options[form1.categories.length]=new Option(subList.substring(0,index)," ");
						subList = subList.substring(index+1,subList.length);
						noOfcates = noOfcates +1 ;

                                	}
					else{
						form1.categories.options[form1.categories.length]=new Option(subList," ");
					}
                        	}
				//alert(noOfcates);


			}



                    }
	}
	}

function setInitialChInDate()
{
	if( document.form1.SearchedBefore.value != "yes")
	{
		 var dd = new Date();
         dd.setDate(dd.getDate()+3);
		 var sDate = "";
		 if( dd.getDate() < 10 )
		 	sDate ="0"+dd.getDate();
		 else
		    sDate = dd.getDate();
		 if( dd.getMonth() < 10 )
		 	sMonth ="0"+(dd.getMonth()+1);					
		 else 
		 	sMonth =""+(dd.getMonth()+1);
        document.form1.pickupDate.value =  sDate+"/"+sMonth+"/"+dd.getFullYear();   
		setDropOffDate();
	 }else
	 {
	 	document.form1.Region.selectedIndex    = document.form1.selectedPickupRegion.value;
	    document.form1.RetRegion.selectedIndex = document.form1.selectedDropoffRegion.value;
	 }
}  
