
var villaSite = {

	cookieOptions: { 
		expires: 30, 
		path: '/'
	},

	init: function() {
		villaSite.setupSortbyForm();
		villaSite.setupFeatureImages();
		villaSite.setupDestinationsList();
		villaSite.setupVillaList();
		villaSite.setupMainSearch();
		villaSite.setupPageSize(); 
		villaSite.setupDebug();
		villaSite.setupVillaSelect();
		//villaSite.setupBodycopyListItems();
		if(!$.browser.msie) $(window).resize(villaSite.setupPageSize); 
	},

	setupSortbyForm: function() {
		var $f = $("#sortby_form"); 
		if($f.size() < 1) return; 
		$("input[type=submit]", $f).remove();
		$("#sortby", $f).change(function() { $f.submit(); }); 
	},

	setupFeatureImages: function() {


		var $images = $(".featured_images a"); 
		if($images.size() < 1) return;
		var $firstImage = $images.get(0); 

		$images.each(function() {

			var $alt = $("<p>" + $('img', this).attr('alt') + "</p>"); 
			var txt = $alt.children("strong").text();
			

			if($(this).width() < 160) {
				var changed = false;
				while(txt.length > 15) {
					var n = txt.lastIndexOf(' '); 
					if(n < 1) break;
					txt = txt.substring(0, n); 
					changed = true; 
				}
				if(changed) txt += ' &hellip;';
			}

			$alt.children("strong").html(txt); 

			var $div = $("<div></div>")
				.attr('class', 'shade')
				.html("<p>" + $alt.html() + "</p>")
				.css('opacity', 0);
			
			$(this).prepend($div);
		}); 
			
		$images.hover(function() {
			$(this).children(".shade").fadeTo("fast", 0.8); 
		}, function() {
			$(this).children(".shade").fadeTo("fast", 0); 
		}); 	
	},

	setupDestinationsList: function() {
		var bodyClasses = $("body").attr('class').split(' '); 
		for(var n = 0; n < bodyClasses.length; n++) {
			$("#destination_list a." + bodyClasses[n] + ":eq(0)").addClass("on"); 
		}
	},

	setupSpecialsBar: function() {

		var $bar = $("#specials_bar"); 
		var $toggle = $("#specials_bar_toggle a"); 
		var textHide = 'Hide This Bar';
		var textShow = 'Show Specials Bar';
		var cookieName = 'specials_bar';

		if($.cookie(cookieName) != 'closed') {
			$bar.addClass("open"); 
		} else {
			$bar.addClass("closed"); 
		}

		if($bar.is(".open")) $toggle.text(textHide); 
			else $toggle.text(textShow); 

		$toggle.click(function() {

			var $a = $(this); 

			if($bar.is(".open")) {
				$.cookie(cookieName, 'closed', villaSite.cookieOptions); 
				$a.fadeOut("fast", function() {
					$a.text(textShow); 
					$a.fadeIn("fast"); 
				}); 
				$("#specials_bar_content", $bar).slideUp("normal", function() {
					$("#specials_bar").removeClass("open"); 
				}); 

			} else {

				$.cookie(cookieName, 'open', villaSite.cookieOptions); 
				$a.fadeOut("fast", function() {
					$a.text(textHide); 
					$bar.addClass("open"); 
					$a.fadeIn("fast"); 
				}); 

				$("#specials_bar_content", $bar).slideDown("normal"); 
			}

		}); 

		var initialEmailVal = $("#subscribe_email").val(); 
		$("#subscribe_email").focus(function() {
			if($(this).val() == initialEmailVal) $(this).val('');
		}); 

		$("#subscribe_form").submit(function() {
			if($("#subscribe_email").val() == initialEmailVal) $("#subscribe_email").val(''); 
			return true; 
		}); 

	},

	setupVillaList: function() {

		$list = $(".villa_list"); 
		if($list.size() < 1) return;

		$("li", $list).hover(function() {
			$(this).addClass("hovered"); 
		}, function() {
			$(this).removeClass("hovered"); 

		}).click(function(e) {
			if(e.target.parentNode.className == 'villa_list_details') return true; 
			var $a = $(this).find("a.villa_name");
			var href = $a.attr('href'); 
			window.location.href = href; 
			return true; 
		}); 

		$("li a.villa_name", $list).click(function(event) {
			event.preventDefault();
			return true; 
		}); 
	},

	setupMainSearch: function() {

		var $t = $("#search_query"); 
		
		$t.attr('rel', $t.val()).focus(function() {
			var $t = $(this); 
			if($t.val() == $t.attr('rel')) $t.val(''); 
		}).blur(function() {
			var $t = $(this); 
			if($t.val.length < 1) $t.val($t.attr('rel')); 
		}); 
	},

	setupPageSize: function() {

		var $footer = $("#footer"); 

		var $test = $("<div></div>")
			.attr('id', 'height_test')
			.css('position', 'absolute')
			.css('left', 0)
			.css('bottom', "30px"); 

		$("body").append($test); 

		var $testO = $test.offset();
		var $footerO = $footer.offset();
		var h = $testO.top - $footerO.top; 

		if(h > $footer.height()) $footer.height(h); 		
		$test.remove();
	},

	setupDebug: function() {
		$("#toggle_debug").click(function() {
			$(".debug").show();
			return false; 
		}); 
	},

	setupBodycopyListItems: function() {
		// locate lists with long items, and give them a class to identify that style
		$("#bodycopy .bodycopy ul").each(function() {

			if($(this).is(".subpages")) return; 

			var numYes = 0;
			var numNo = 0;

			$(this).children("li").each(function() {
				if($(this).text().length > 70) {
					numYes++; 
					$(this).addClass("multiline_item");
				} else {
					numNo++;
				}
			}); 

			if(numYes >= numNo && (numYes+numNo) > 1) $(this).addClass("multiline_items"); 
		}); 	
	},

	setupVillaSelect: function() {
		$("#select_villa").change(function() {
			var href = $(this).val() + '/';
			if($("body").is(".villa")) href = "../" + href;
			window.location.href = href; 
			return false; 
		}); 
	}


}; 

function checkSFGA() {
	var json = $.cookie('villa_inquiry');
	if(json != null) {
		saved = $.json.decode(json); 
			saved.rcdsaved = 1; 
			$.post("http://www.villasofdistinction.com/tools/inquire/", saved, function(data) {
				saved.sfga = undefined; 	
				$.cookie('villa_inquiry', $.json.encode(saved), villaSite.cookieOptions); 
			}); 	
		if(saved.sfga || true) {
		}
	}
}


$(document).ready(function() {
	// if($.browser.msie && $.browser.version < 7) return;
	villaSite.init();
	// checkSFGA();

}); 




