var hasFocus = false;

$(document).ready(function() {
	document.domain='bookcottages.com';

	initialize();

	var lastThumbnailDone = "";

	$("#join select#businessPersonal").change(function(){
		displayVatCheck();
	});

	$("#join select#countryCode").change(function(){
		displayVatCheck();
	});

	if ($("#join select#businessPersonal").length > 0 ) {
		displayVatCheck();
	}


	//display shortlist
	if ($("#short_list").length > 0 ) {
		displayShortList();
	}

	//display shortlist when displaying min property from map
	if ($("#canvas_propertymin").length > 0 ) {
		justHighlightShortListProperties();
	}


	if ($("#runningSearch").length > 0 ) {
		startAvailablitySearch();
	}

	if ( $("#flash_map").length > 0 ) {
		var fileName = "/maps/flash/" + $("#flash_map").attr("title") + ".swf";
		var width=$("#flash_map").css("width");
		var height=$("#flash_map").css("height");

		$("#flash_map").flash(
			{ src: fileName,
			  width: width.replace("px", ""),
			  height: height.replace("px", ""),
			  flashvars: { domain: location.host, jslf: "flashMapLink", jsrf: "" }
			},
			{ version: 8 }
		);
	}




	$("#countryLinks a").click(function(){
		recordCountryClick($(this).attr("href"),"a")
	});

	$(".thumbnail").click(function(){
		var params = $(this).attr("rel").split(":");
		var innerHtml = "<img src=\""+$(this).attr("src")+"\" width=\""+params[0]+"\" height=\""+params[1]+"\" alt=\""+$(this).attr("alt")+"\"/>";
		$("#main-photo").css("background-color","#fff");
		$("#main-photo").html(innerHtml);
		$("#picture-title").html($(this).attr("alt"));
		lastThumbnailDone = $(this).attr("src");
		$(".thumbnail").animate({opacity: 0.5}, 1);
		$(this).animate({opacity: 1.0}, 1);
	});

	$(".thumbnail").mouseover(function(){
		$(this).animate({opacity: 1.0}, 200);
	});

	$(".thumbnail").mouseout(function(){
		if (lastThumbnailDone != $(this).attr("src"))
		{
			$(this).animate({opacity: 0.5}, 200);
		}
	});

	$("#property_map").click(function(){
		displayPropertyMap();
	});

	//if no geo code hide the map link
	if ( $("#property_map_link").length > 0 ) {
		if ( $("meta[name=geo.position]").length < 1 ) {
			$("#property_map_link").css("display","none");		
		}
	}

	$("#checkavailability-button").mouseover(function(){
		$(this).attr("src","/cottageimages/checkavailability_over.gif");
	});

	$("#checkavailability-button").mouseout(function(){
		$(this).attr("src","/cottageimages/checkavailability.gif");
	});

	$("#visitwebsite-button").mouseover(function(){
		$(this).attr("src","/cottageimages/visitwebsite_over.gif");
	});

	$("#visitwebsite-button").mouseout(function(){
		$(this).attr("src","/cottageimages/visitwebsite.gif");
	});

	$("#emailowner-button").mouseover(function(){
		$(this).attr("src","/cottageimages/emailowner_over.gif");
	});

	$("#emailowner-button").mouseout(function(){
		$(this).attr("src","/cottageimages/emailowner.gif");
	});

	$(".thumbnail").animate({opacity: 0.5}, 1);
	$(".first").animate({opacity: 1.0}, 1);
	lastThumbnailDone = $(".first").attr("src");


	if ($("#country_map").length > 0 ) {
		$("#country_map").flash(
			{	src: "/cottageimages/ukmap.swf",
				width: 250,
				height: 373,
				flashvars: { jsf: "flashMapAvail"}
			},
			{ version: 8 }
		);
	}

	if($.browser.msie){
		//no corners for ie at the moment
	} else {
		$(".info_area").corner("keep 6px");
		$("#select_bedrooms").corner("keep 3px");
		$("#shortlist_avail_search").corner("keep 3px");
		$("#join_navigation li a").corner("keep top 4px");
		$("#join_help").corner("keep 6px");
		$("#main_search_area #select_search_type ul li a").corner("keep top 4px");
		$("#main_search_area #search_background").corner("keep bottom 4px");
		$("#map_area #select_map_type ul li a").corner("keep top 4px");
		$("#map_area #loading_area").corner("keep 6px");
		$("#map_area #possible_locations").corner("keep 6px");
		$("#map_area #message_area").corner("keep 6px");
		$("#map_area #property_area").corner("keep 6px");

	}

	$("hr").each(function(){
		$(this).replaceWith("<p class=\"hr\">&nbsp;<\/p>");
	});

	$(".emailaddress").focus(function(){
		if($(".emailaddress").val()=="enter email address") $(".emailaddress").val("");
	});

	$(".iframe_autosize").load(function() {
			this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
		}
	);


	$("#products input[name*='item']").change(function(){
		$(".product").css("background-color","#fff");
		$(".product .selected").html("");
		$(".p"+$(this).val()).css("background-color","#F7F6F1");
		$(".p"+$(this).val()+" .selected").html("<img src=\"/cottageimages/yes-tick.gif\" width=\"16\" height=\"12\" alt=\"yes\"/>");
	});

	$(".product").click(function(){
//		$(this).children("input[name*='item']").attr("checked", "checked");
	});

	$("#save_button_amend").click(function(){
		$("#action").val("amenddetails");
	});

	$("#save_button_amend").click(function(){
		$("#action").val("amenddetails");
	});

	if ($("#datePicker").length > 0 ) {
		$("#datePicker").datepicker({
			dateFormat: 'yy-m-d',
			showOn: "button",
			buttonImage: "/cottageimages/mapsearch/calendar-button.png",
			buttonImageOnly: true,
			minDate: 0, 
			maxDate: "+17M",
			onSelect: function(dateText, inst) {
				updateDateDropDowns(dateText);
			}
		});
	}

	$("#date_area #checkInMonthYear").change(function(){
		updateDatePicker();
		updateCheckInDay();
	});

	$("#checkInDay").change(function(){
		updateDatePicker();
	});



/* Search Code START */
	$("#search_area #searchTerm").click(function() {
		if(hasFocus == false)
		{
			$(this).focus();
			$(this).select();
			hasFocus = true;
		}
	});

	$("#search_area #searchTerm").change(function() {
		hasFocus = false;
	});

	$("#search_area #searchTerm").blur(function() {
		hasFocus = false;
	});

	$("#main_search_area").mouseover(function() {
		closeInfoWindow();
	});
	

	if ( $("#search_area #searchTerm").length > 0 ) {
		var currentSearch = "";
		var lastSearch = "";
		var searchCount;
		$("#search_area #searchTerm").autocomplete({
			source: function(request, response) {
				hideMapOverlay();
				currentSearch = request.term;
				if (!(currentSearch.length>2 && (currentSearch.length>lastSearch.length)&& searchCount<1) || (currentSearch.substring(0,lastSearch.length)!=lastSearch))
				{
					$("#locationId").val("");
					$("#latitude").val("");
					$("#longitude").val("");
					$.ajax({
						url: "/mapsearch/searchmanager.php",
						dataType: "jsonp",
						data: {
							action: "findlocation",
							q: currentSearch,
							countryId: $("#countryId").val()
						},
						success: function(data) {
							lastSearch = currentSearch;
							searchCount = data.length;
							var replace = "<b>" + currentSearch + "</b>";
							response($.map(data, function(item) {
								var str = item.name;
								var regex = new RegExp(currentSearch,"gi");
								str = str.replace(regex, replace)
								return {
									label: str,
									value: item.name,
									locationId: item.locationId,
									latitude: item.latitude,
									longitude: item.longitude
								}
							}))
						}
					});
				}
				else {
					$("#searchTerm").removeClass("ui-autocomplete-loading");
				}
			},
			minLength: 2,
			select: function(event, ui) {
				$("#locationId").val(ui.item.locationId);
				$("#latitude").val(ui.item.latitude);
				$("#longitude").val(ui.item.longitude);
			}
		});
	}

	$("#browse_area #countrycode").change(function(){
		updateLocationsSelect();
		mapCottageLocationToLocation();
	});

	$("#main_search_area #countryId").change(function(){
		mapLocationToCottageLocation();
	});

	if ($("#main_map").length > 0 ) {
		loadMap();
	}

	$("#main_search_area #select_browse").click(function(){
		updateSearchType("browse");
	});

	$("#main_search_area #select_search").click(function(){
		updateSearchType("search");
	});

	//update the list of locations when the page loads
	if ( $("#browse_area #countrycode").length > 0 ) {
		updateLocationsSelect()
	}

	if ($("#main_search_area #action").length > 0 ) {
		if($("#main_search_area #action").val()=="browse") checkLocation();
	}

	$("#select_map_type #select_search_map").click(function(){
		updateMapType("search");
	});

	$("#select_map_type #select_shortlisted_map").click(function(){
		updateMapType("shortlist");
	});

	$("#select_map_type #select_search_list").click(function(){
		updateMapType("list");
	});

	if ($("#doAvailablitySearch").length > 0 ) {
		disableDateSearch();
	}

	$("#doAvailablitySearch").click(function(){
		disableDateSearch();
	});


/* Search Code END */


});
