/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function addRow(id,td)
{
    html = "<table cellpadding='0' cellspacing='0' class='list'>";
    html +="<tbody><tr><th>Name</th><th>Surname</th><th>Age</th><th>Passport Id No</th><th>Include</th></tr>";
    html +="<tr><td></tr>";
    html +="</tbody></table>";
    new Insertion.Bottom(td, "<div id='rooms'></div>");
    new Insertion.Bottom('rooms',html);
}

function check_booked_members()
{
  members     = $$(".members_included");
  total       = members.length;
  count       = 0;
  for(i=0;i<total;i++)
  {
    if(members[i].checked)
    {
      count++;
    }
  }
  if(count==0)
  {
     alert("No members included in the booking.");
     !check_mandatory_fields();
     return false;
  }
  else
  {
    return !check_mandatory_fields();
  }
  
} 

function set_members()
{
//  try{
    $('members_included').value = "";
    var value   = [];
    
    var members     = $$(".members_included");
    
    var rooms       = $$(".room_count");
    
    var rooms_total = rooms.length;
    var total       = members.length;
    var count       = 0;
    var room_count  = 0;
    
    for(i=0;i<total;i++)
    {
      if(members[i].checked)
      {
        value[count] =members[i].value;
        count++;
      }
    }
    for(i=0;i<rooms_total;i++)
    {
      if(rooms[i].value!="")
      {
        room_count+=rooms[i].value
      }
    }
    
    if(value.length==0 || room_count==0)
    {
      
      messages = $A();
      error_count = 0
      if(value.length==0 )
      {
        messages.push("members");
        error_count++;
      }
      if(room_count==0)
      {
         messages.push("rooms");
      }
      
      alert("No "+messages.join(" and ")+" included in the booking");
      return false;
    }
    else
    {
      $('members_included').value = value.toString();
      return true;  
    }
    if(room_count==0)
    {
      alert("No Rooms included in the bookings");
      return false;
    }
    else
    {
      return true;  
    }
  //}
  //catch(e)
  //{
  //  return false;    
  //}
}

function check_room_config(checkbox)
{
   others = $$("."+checkbox.className);
   total = others.length
   for(i=0;i< total;i++)
   {
     if(others[i].checked && others[i]!=checkbox)
     {
       checkbox.checked=false;
       alert("Member already added to another room.")
       return false;
     }
   }
}



function remove(id)
{
    $(id).remove();

}

function check_mandatory_fields()
{
  var mandatory_fields = $$(".mandatory");
  var mandatory_fields_length = mandatory_fields.length
  var messages = $A();
  var date_messages = $A();
  var start_date_fields = $$(".booking_start_date");
  var end_date_fields   = $$(".booking_end_date");
  
  for(i=0;i<mandatory_fields_length;i++)
  {
    if(mandatory_fields[i].value.strip()=="")
    {
      messages.push(mandatory_fields[i].id.sub("booking_","").sub("_"," "))
      mandatory_fields[i].addClassName("errorField")
    }
    else
    {
       mandatory_fields[i].removeClassName("errorField")
    }
  }
  
  if(end_date_fields.length>0)
	{
		if($F(start_date_fields[0])!="" && $F(end_date_fields[0])!="")
		{
			var start_date =  string_to_date($F(start_date_fields[0]));
			var end_date   =  string_to_date($F(end_date_fields[0]));
			if(start_date > end_date)
			{
				date_messages.push("Start date can't be after end date. ")
				start_date_fields[0].addClassName("errorField");
				end_date_fields[0].addClassName("errorField");	
			}
			else
			{
				start_date_fields[0].removeClassName("errorField");
				end_date_fields[0].removeClassName("errorField");	
			}	
		}
	}
  
  
  if(messages.length==0 && date_messages.length==0 )
  {
    return false;
  }
  else{
  	var empty_field_msg = messages.length!=0 ? ("Please fill in "+messages.join(" and ")) : "";
    var date_fields_msg = date_messages.length!=0 ? "\n"+(date_messages.join(" and ")) : "";	 
    alert(empty_field_msg+date_fields_msg);
    return true;
  }
}

function check_max_adults(id,max_adult)
{
//setting variables for max number of adults, and adult ranges from api
var max_num_adults = max_adult[0];
var max_adult_from = max_adult[1];

var ancestors = $A($(id).ancestors());

    for(var i = 0;i< ancestors.length;i++)
    {
        if (ancestors[i].hasClassName("list_table"))
        {
            var checkboxes  = $A(ancestors[i].getElementsByTagName('input'));
            var countAdults = 0

            for (var j = 0;j<checkboxes.length;j++)
            {
                if(checkboxes[j].checked && checkboxes[j].type == 'checkbox')
                {
                     countAdults++;
                     var class_name = checkboxes[j].parentNode.parentNode.className;
                     var index = class_name.replace("members_age_","");

                     //check if adult age greater than 13 and max is not met
                     if (parseInt(index) > max_adult_from && countAdults > max_num_adults)
                     {
                         //reset the checked box 
                          id.checked = false;
                          alert("You have exceeded the max adult(s) allowed for this room.");
                          return true;
                     }

                 }

             }

         }

     }
}



  function checkAges(member,service_type)
  {
    if(service_type == "Car Rental")
    {
        var age = parseInt($(member).id.replace("booking_member_age_",""));
        if(age < 18)
        {
            alert("Designated driver should be 18 or older.");
            $(member).checked = false;
        }
    
		    var members     = $$(".members_included");
		    var total       = members.length;
		    var count       = 0;
		    for(i=0;i<total;i++)
		    {
		      if(members[i].checked)
		      {
		        count++;
		      }
		      if(count>1)
		      {
		     	 	members[i].checked = false;
		      }
		      
		    }
		    if(count>1)
		    {
		    	alert("Only one designated driver allowed");
		    }
	  }
  }
