var waiterOptions = {
	baseHref: '/',
	img: {
		src: 'loadinfo.net.large.gif',
		styles: {
			width: 49,
			height: 49
		}
	}
}; 

/* EVENTS */
$$("#months li").each( function(li){
	li.addEvent("click", function(event){
		var month = event.target.get("month");
		var day = event.target.get("day");
		updateMonthsTable(month);
		updateCalendar(month, propertyId);
		updateRates(day, propertyId);
	});
});

$$("#currency img[id]").addEvent("click", function(event){
	convertRates(event);
});

/*    END EVENTS    */
/********************/
/* GLOBAL FUNCTIONS */
function setEvents(){
  $$("#ratesTable .available", "#ratesTable .lastminute").addEvent("click", function(event){
    submitBooking(event);
  });
}
/* END GLOBAL FUNCTIONS */
/************************/
/*  BOOKING FUNCTIONS   */
function submitBooking(event){
  var event = new Event(event);
  var parent = event.target.parentNode;
  while(parent.tagName != "TR")
    parent = parent.parentNode;
  var rateStart = parent.getAttribute("startDay");
  var rateEnd = parent.getAttribute("endDay");
  var maxEnd = parent.getAttribute("maxEnd");
  window.location = $("form-target").value + "?ratestart=" + rateStart + "&rateend=" + rateEnd + "&maxend=" + maxEnd + "&prop_id=" + propertyId;
}
/* END BOOKING FUNCTIONS */
/*************************/
/*   UPDATE FUNCTIONS    */
function updateCalendar(selectedMonth, id){
  new Request.HTML({
		url: "/page.includes/calendar.inc.php", 
    update: "calendar",
    method: "post",
    data: "month=" + selectedMonth + "&id=" + id + "&pre=1",
    onComplete: function(){
      setEvents();
    },
		useWaiter: true,
		waiterOptions: waiterOptions
  }).send();
	//updateRates(firstDay, id);
}

function updateRates(day, id){
  new Request.HTML({
		url: "/page.includes/rates.inc.php",
		update: "rates",
		method: "post",
		data: "day=" + day + "&id=" + id + "&pre=1",
		onComplete: function(){
		 setEvents();
		},
		useWaiter: true,
		waiterOptions: waiterOptions
  }).send();
}

function updateMonthsTable(x_month){
  $$("#months li").each( function(x){
    if(x.hasClass("selected")) x.removeClass("selected");
    if(x.getAttribute("month") == x_month) x.addClass("selected");
  });
}
/*  END UPDATE FUNCTIONS   */
/***************************/
/* EXCHANGE RATE FUNCTIONS */
function convertRates(event){
  var event = new Event(event);
  var element = event.target;
  var currency = element.id;
  var symbol = currencyRates[currency]["symbol"];
  var xrate = currencyRates[currency]["rate"];
  alert("Please Note: These currency conversion rates are only a guide.");
  var cells = $("ratesTable").getElementsByTagName("td");
  for(i = 0 ;i < cells.length; i++){
    if(cells[i].getAttribute("rate")){
      cells[i].innerHTML = symbol + " " + floatFix(parseFloat(cells[i].getAttribute("rate")) * parseFloat(xrate), 2);
    }
  }
}

function Convert(target, symbol, rate){
  target.innerHTML = symbol + floatFix(rate, 2);
}

function floatFix (Val, Places) {
	var Res = "" + Math.round(Val * Math.pow(10, Places));
	var Dec = Res.length - Places;
	if (Places != 0){
		var x = Res.substring(0, Dec);
		if (x.length > 0)
			OutString =  x + "." + Res.substring(Dec, Res.length);
		else
			OutString = "0." + Res.substring(Dec, Res.length);
	}
	else
		OutString = Res;
	return (OutString);
}
/* END EXCHANGE RATE FUNCTIONS */