function number_format (number, decimals, dec_point, thousands_sep) {

    var n = number, prec = decimals;
 
    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);        return (Math.round(n*k)/k).toString();
    };
 
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
 
    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
     var abs = toFixedFix(Math.abs(n), prec);
    var _, i;
 
    if (abs >= 1000) {
        _ = abs.split(/\D/);        i = _[0].length % 3 || 3;
 
        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);    } else {
        s = s.replace('.', dec);
    }
 
    var decPos = s.indexOf(dec);    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';    }
    return s;
}

function poundAmount(Num) {
dec = Num.indexOf(".");
end = ((dec > -1) ? "" + Num.substring(dec,Num.length) : ".00");
Num = "" + parseInt(Num);
var temp1 = "";
var temp2 = "";
//if (checkNum(Num) == 0) {
//alert("This does not appear to be a valid number.  Please try again.");
//}
//else { 
if (end.length == 2) end += "0";
if (end.length == 1) end += "00";
if (end == "") end += ".00";
var count = 0;
for (var k = Num.length-1; k >= 0; k--) {
var oneChar = Num.charAt(k);
if (count == 3) {
temp1 += ",";
temp1 += oneChar;
count = 1;
continue;
}
else {
temp1 += oneChar;
count ++;
}
}
for (var k = temp1.length-1; k >= 0; k--) {
var oneChar = temp1.charAt(k);
temp2 += oneChar;
}
temp2 = temp2 + end;
return temp2;
//}
}

function updateSearchGroups(id,maxGroupDepth) {
	
	var groupId = $("#"+id).val();
	var step = id.replace(/acms_travel_group_select_/,'');
	var depth = parseInt(step)+1;

	var results = $.ajax({
		  url: "/acms/modules/acms_cottage/client/ajax.php",
		  async: false,
		  data: "action=updateGroupSearchFields&id=" + groupId + "&depth=" + depth
	 }).responseText.split("|");
	
	step = parseInt(step)+1;

	var html = '';

	for(var i=step; i<=maxGroupDepth; i++) {
		
		$("#acms_travel_group_select_"+i+" option:not(:first)").each(function(){
			$(this).remove();
		});

	}

	if(results.length > 1) {
		for(var j=0; j<results.length; j+=2) {
			html += '<option value="' + results[j] + '">' + results[j+1] + '</option>';
		}
	}

	$("#acms_travel_group_select_"+step).append(html);
}

function validate(form_id,email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = document.forms[form_id].elements[email].value;
   if(reg.test(address) == false) {
      alert('Invalid Email Address');
      return false;
   }
}

function oc(a) { var o = {}; for(var i=0;i<a.length;i++) { o[a[i]]=''; } return o; }

function ieDisableSelectOptions() {
	$('select').each(function(){
		this.rejectDisabled = function(){
			if (this.options[this.selectedIndex].disabled){
				if (this.lastSelectedIndex) {
					this.selectedIndex = this.lastSelectedIndex;
				} else {
					var first_enabled = $(this).children('option:not(:disabled)').get(0);
					this.selectedIndex = first_enabled ? first_enabled.index : 0;
				}
			} else {
				this.lastSelectedIndex = this.selectedIndex;
			}
		};
		this.rejectDisabled();
		this.lastSelectedIndex = this.selectedIndex;
		$(this).children().each(function(){
			$(this).css('color', '#000');
		});
		$(this).children('option[disabled]').each(function(){
			$(this).css('color', '#ccc');
		});
		$(this).change(function() {
			this.rejectDisabled();
		});
	});
}

var submitConfirmed = true;

$(document).ready(function() {

	$("#acms_cottage_bookingForm").submit(function() {

		// check if pets selected (Powells)
		$(".extraSelector").each(function(i){
			var extraId = this.id.split("_");
			extraId = extraId[1];
			if(extraId == 2) {
				if(this.value == 0) {
					var answer = confirm("You have not selected to take any pets.\n\nPlease click 'OK' to continue to payment details\n\nPlease click 'Cancel' to select the number of pets you wish to take\n ");
					if(answer) { submitConfirmed = true; }
					else { submitConfirmed = false; }
				}
				else { submitConfirmed = true; }
			}
		});
		
		if(submitConfirmed) { return true; }
		else { return false; }
	});

    $("#searchRefinerForm").submit(function() {

		if($("#searchRefinerForm select[name='start_date']").val() != '0') {
			if($("#searchRefinerForm select[name='duration']").val() == '0') {
				$("#refiner_error_message").html('Please select a duration or deselect arrival date to refine your search.');
				$("#refiner_error_message").show();
				return false;
			}
			else {
				return true;
			}
		}
		else if($("#searchRefinerForm select[name='duration']").val() != '0') {
			if($("#searchRefinerForm select[name='start_date']").val() == '0') {
				$("#refiner_error_message").html('Please select an arrival date or deselect duration to refine your search.');
				$("#refiner_error_message").show();
				return false;
			}
			else {
				return true;
			}
		}
		else {
			return true;
		}
		
    });
	
	$("#bookingAvailabilityForm").submit(function() {

		if($("#bookingAvailabilityForm input[type='radio']:checked").length < 1) {
			alert('Please select an available date to continue.');
			return false;
		}
		else {
			return true;
		}
		
    });

	$(".unit_details_thumb_img_link").click(function(){

		var thumbSrc = $(this).children("img").attr("src");
		var largeSrc = thumbSrc.replace(/_small/,'_large');

		$("#large_img").attr("src",largeSrc);

	});
	
	$("#bookingFormTnC_close").click(function(){
		$("#bookingFormTnC_container").fadeOut("slow");
	});
	
	$("#bookingFormTnC").click(function(){
	
		var page = $(this).attr("class").replace(/bookingFormTnC_/,'');
		
		var results = $.ajax({
						type: "GET",
						url: "/acms/modules/acms_cottage/client/ajax.php",
						data: "action=fetchPageContent&page="+page,
						async: false
					}).responseText.split("|");

		var page_title = results[0];
		var page_body = results[1];
		
		$("#bookingFormTnC_pageHolder").html('<h2>'+page_title+'</h2>'+page_body);
		$("#bookingFormTnC_container").fadeIn("slow");
	});
	
	/* START: SEARCH FUNCTIONS */
		
	$("#acms_cottage_searchForm_error").hide();
				
	var results = $.ajax({
					type: "GET",
					url: "/acms/modules/acms_cottage/client/ajax.php",
					data: "action=initSearchField&field=start_date",
					async: false
				}).responseText.split("|");
	
	var vals = results;

	$("#acms_cottage_searchForm_start_date option").each(function(i){
		var val = $(this).val();
		if(val == '' || val == '0') {}
		else {
			if(val in oc(vals))
				$(this).removeAttr("disabled");
			else
				$(this).attr("disabled","disabled");
		}
	});
	
	$("#acms_cottage_searchForm_duration").each(function() {
		var field_id = $(this).attr("id").replace(/acms_cottage_searchForm_/,"");
		if(field_id != 'start_date')
			$(this).children("option").each(function() {
				if($(this).val() == '' || $(this).val() == '0') {}
				else { $(this).attr("disabled","disabled"); }
			});
	});

	$("#acms_cottage_search_form").submit(function() {
		if($("#acms_cottage_searchForm_start_date").val() != "0") {
			if($("#acms_cottage_searchForm_duration").val() == "0") {
				$("#acms_cottage_searchForm_error").text("Please choose the length of your stay").fadeIn("slow");
				$("#acms_cottage_searchForm_error").show();
				return false;
			}
		}
		return true;
	});

	$("select[id^='acms_cottage_searchForm_']").change(function() {

		var field_id = '';
		var vals = [];
		var args = '';

		$("select[id^='acms_cottage_searchForm_']").each(function() {
			field_id = $(this).attr("id").replace(/acms_cottage_searchForm_/,"");
			val = $(this).val();
			vals[field_id] = val;
		});

		for (i in vals) {
			args += "&" + i + "=" + vals[i];
		}

		var results = $.ajax({
						type: "GET",
						url: "/acms/modules/acms_cottage/client/ajax.php",
						data: "action=updateSearchFields"+args,
						async: false
					}).responseText.split("||");
		
		for(var k=0; k < results.length; k++) {
		
			var result = results[k].split("=");
			var field = result[0];
			var vals = result[1];

			vals = vals.split("|");

			$("#acms_cottage_searchForm_" + field + " option").each(function(i){
				var val = $(this).val();
				if(val == '' || val == '0') {}
				else {
					if(val in oc(vals))
						$(this).removeAttr("disabled");
					else
						$(this).attr("disabled","disabled");
				}
			});

		}

		ieDisableSelectOptions();
		
	});
	
	/* END: SEARCH FUNCTIONS */
	
	/* START: SEND TO FRIEND FUNCTIONS */
	
	$("#acms_travel_sendFriend_title").toggle(function() {
			
			var src = $("#acms_travel_sendFriend_title img").attr("src").replace(/\/images\//,"");
			var grpId = src.replace(/_send_to_a_friend.gif/,"");
			
			$("#acms_travel_sendFriend_title img").attr("src","/images/"+grpId+"_send_to_a_friend_tab.gif");
			$("#acms_travel_sendFriend_form").slideDown("slow");

		},function() {

			var src = $("#acms_travel_sendFriend_title img").attr("src").replace(/\/images\//,"");
			var grpId = src.replace(/_send_to_a_friend_tab.gif/,"");

			$("#acms_travel_sendFriend_form").slideUp("slow");
			$("#acms_travel_sendFriend_title img").attr("src","/images/"+grpId+"_send_to_a_friend.gif");

		}
	);
	
	$("#acms_travel_sendFriend_send").click(function() {

		$("#acms_travel_sendFriend_formError").hide();
		
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

		var url = $("#acms_travel_sendFriend_page_url").val();
		var unit_id = $("#acms_travel_sendFriend_unit_id").val();
		var sender_name = $("#acms_travel_sendFriend_sender_name").val();
		var sender_email = $("#acms_travel_sendFriend_sender_email").val();
		var recipient_name = $("#acms_travel_sendFriend_recipient_name").val();
		var recipient_email = $("#acms_travel_sendFriend_recipient_email").val();

		if(sender_name == "" || sender_email == "" || recipient_name == "" || recipient_email == "") {

			$("#acms_travel_sendFriend_form").attr("class","acms_travel_sendFriend_form_extended clearfix");
			$("#acms_travel_sendFriend_formError").html("Please complete all fields").fadeIn("slow");
		
		}
		else if(reg.test(sender_email) == false || reg.test(recipient_email) == false) {
		
			$("#acms_travel_sendFriend_form").attr("class","acms_travel_sendFriend_form_extended clearfix");
			$("#acms_travel_sendFriend_formError").html("Please enter valid email addresses").fadeIn("slow");
		
		}
		else {
			$("#acms_travel_sendFriend_form").attr("class","acms_travel_sendFriend_form_normal clearfix");
			$("#acms_travel_sendFriend_form form").hide();			
			$("#acms_travel_sendFriend_sending").show();
			
			$.ajax({
				type: "GET",
				url: "/acms/modules/acms_cottage/client/ajax.php",
				data: "action=sendToFriend&unit_id="+unit_id+"&url="+url+"&sender_name="+sender_name+"&sender_email="+sender_email+"&recipient_name="+recipient_name+"&recipient_email="+recipient_email,
				success: function(msg){
					$("#acms_travel_sendFriend_sending").hide();
					$("#acms_travel_sendFriend_form form").hide();
					$("#acms_travel_sendFriend_sent").show();
				}
			});

		}

	});
	
	$("#acms_travel_sendFriend_sent a").click(function() {
		$("#acms_travel_sendFriend_recipient_name").val("");
		$("#acms_travel_sendFriend_recipient_email").val("");
		$("#acms_travel_sendFriend_form form").show();
		$("#acms_travel_sendFriend_sent").hide();
	});

	/* END: SEND TO FRIEND FUNCTIONS */
	
	ieDisableSelectOptions();
});