/*
jQUERY
--------------------------------------------------*/
$(document).ready (function() {
	
	// Contact form
	$('form#contact-form').submit(function() {
		
		var jsFormComplete = true;
		
		$('form#contact-form p').removeClass('error');
		
		if ($('input#fname').val() == '') {
			$('input#fname').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#lname').val() == '') {
			$('input#lname').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#email').val() == '') {
			$('input#email').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#address').val() == '') {
			$('input#address').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#city').val() == '') {
			$('input#city').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#state').val() == '') {
			$('input#state').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#zip').val() == '') {
			$('input#zip').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#primaryphone').val() == '') {
			$('input#primaryphone').closest('p').addClass('error');
			jsFormComplete = false;
		}
		
		if (jsFormComplete == false) {			
			if ( !$('form#contact-form').find('p').hasClass('msg-error') ) {
				$('form#contact-form h3').after('<p class="msg-error">All fields are required. Please fill out the form in full.</p>');
			}
			
			$('body, html').scrollTop( $('form#contact-form').offset().top );
			
			return false;
		} else {
			return true;
		}
		
	});
	
	// Open external links in new window :P
	$('a.external').click(function() {
		window.open( $(this).attr('href') );
		
		return false;
	});
	
	// Fix height of site wrapper to always be 100% of browser height
	checkBodyHeight = function() {
		$('html, div#site-wrapper').attr('style','');
		if ( $('div#site-wrapper').outerHeight() < $('body').height() ) {
			$('html, div#site-wrapper').css('height','100%');
		}
	};
	checkBodyHeight();
	
	if ($.browser.msie && $.browser.version < 7) {
	} else {
		var bodyHeight = setInterval('checkBodyHeight()', 500);
	}
	
	// Header Flash
	$('body.home #site-branding').flash(
		{
	    	src: '/framework/swf/site-branding.home.swf',
	    	width: 800,
	    	height: 230,
	    	wmode: 'transparent'
		},
		{
			update: false,
			version: 7
		}
	);
	$('body.traditionFlash #site-branding').flash(
		{
	    	src: '/framework/swf/site-branding.tradition.swf',
	    	width: 800,
	    	height: 230,
	    	wmode: 'transparent'
		},
		{
			update: false,
			version: 7
		}
	);
	$('body.areaFlash #site-branding').flash(
		{
	    	src: '/framework/swf/site-branding.local_area.swf',
	    	width: 800,
	    	height: 230,
	    	wmode: 'transparent'
		},
		{
			update: false,
			version: 7
		}
	);
	$('body.state #site-branding').flash(
		{
	    	src: '/framework/swf/site-branding.state.swf',
	    	width: 800,
	    	height: 230,
	    	wmode: 'transparent'
		},
		{
			update: false,
			version: 7
		}
	);
	$('body.membershipFlash #site-branding').flash(
		{
	    	src: '/framework/swf/site-branding.membership.swf',
	    	width: 800,
	    	height: 230,
	    	wmode: 'transparent'
		},
		{
			update: false,
			version: 7
		}
	);
	$('body.villageFlash #site-branding').flash(
		{
	    	src: '/framework/swf/site-branding.village.swf',
	    	width: 800,
	    	height: 230,
	    	wmode: 'transparent'
		},
		{
			update: false,
			version: 7
		}
	);
	
	// SIFr
	if (typeof sIFR == "function"){
		sIFR.replaceElement(named({sSelector:"h2", sFlashSrc:"/framework/swf/blair.swf", sColor:"#333333", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"textalign=center", sWmode:'transparent'}));
	};
	
	// Dropdown
	$('div#site-navigation ul li').hover(
		function() { $('ul',$(this)).show(); },
		function() { $('ul',$(this)).hide(); }
	);
	
	// Anchor link lists
	$('body.homes_for_sale p.anchor-links a:first').addClass('selected');
	$('div.anchor-item:first').show();
	$('p.anchor-links a').click(function(event) {
		$('div.anchor-item').hide();
		$('a').removeClass('selected');
		
		$('div' + $(this).attr('href') ).show();
		$(this).addClass('selected');
		
		return false;
	});
	
	$('ul#benefits').makeColumns({ wrapperClass: 'benefits' });
	
	// Add container span on sold properties
	$('ul.properties li.properties-sold').append('<p>');
	
	// Movie player popup
	$('a.popup-mov-lg').click(function() {
		$('<div id="popup-mov-lg" class="popup-mov"><iframe src="' + $(this).attr('href') + '" height="' + $(this).metadata().height + '" width="' + $(this).metadata().width + '" frameborder="0" scrolling="no"></iframe><a href="#" class="mov-close">Close</a></div>').appendTo('body').vCenter();
		
		$.BlockUI();
		
		return false;
	});
	$('a.popup-img-lg').click(function() {
		$('<div id="popup-img-lg" class="popup-mov"><img src="' + $(this).attr('href') + '" height="400" width="600" border="0" /><a href="#" class="mov-close">Close</a></div>').appendTo('body').vCenter();
		
		$.BlockUI();
		
		return false;
	});
	$('a.popup-mov-sm').click(function() {
		$('<div id="popup-mov-sm" class="popup-mov"><iframe src="' + $(this).attr('href') + '" height="' + $(this).metadata().height + '" width="' + $(this).metadata().width + '" frameborder="0" scrolling="no"></iframe><a href="#" class="mov-close">Close</a></div>').appendTo('body').vCenter();
		
		$.BlockUI();
		
		return false;
	});
	$('div#UIBlock, a.mov-close').live('click',function() {
		$('div.popup-mov').remove();
		
		$.unBlockUI();
		
		return false;
	});
	
	// Property info col widths
	$('div#property-info-stats ul:eq(0)').css('width', 185);
	$('div#property-info-stats ul:eq(1)').css('width', 245);
	
	$('div#property-info-dimensions ul:eq(0)').css('width', 120);
	$('div#property-info-dimensions ul:eq(1)').css('width', 160);
	$('div#property-info-dimensions ul:eq(2)').css('width', 150);
	
	// Property info form
	$('form#propertyInfo input:text').defaultText();
	$('form#propertyInfo').submit(function() {
		
		var jsFormComplete = true;
		
		$('form#propertyInfo p').removeClass('error');
		
		if ($('input#fname').val() == '' || $('input#fname').hasClass('defaultVal_default')) {
			$('input#fname').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#lname').val() == '' || $('input#lname').hasClass('defaultVal_default')) {
			$('input#lname').closest('p').addClass('error');
			jsFormComplete = false;
		}
		if ($('input#email').val() == '' || $('input#email').hasClass('defaultVal_default')) {
			$('input#email').closest('p').addClass('error');
			jsFormComplete = false;
		}
		
		if (jsFormComplete == false) {			
			if ( !$('form#propertyInfo').find('p').hasClass('msg-error') ) {
				$('form#propertyInfo').prepend('<p class="msg-error">All fields are required. Please fill out the form in full.</p>');
			}
		} else {
			
			// Set cookie
			var options = { path: '/', expires: 60 };
			$.cookie('TOTFname', $('input#fname').val(), options);
			$.cookie('TOTLname', $('input#lname').val(), options);
			$.cookie('TOTEmail', $('input#email').val(), options);
			
			$('p#property-info-submit input').hide();
			$('p#property-info-submit').append('<img src="/framework/images/btn.sending.png" width="62" height="22" />');
			
			$.ajax({
				type: "POST",
				url: $(this).attr('action'),
				data: "fname=" + $('input#fname').val() + "&lname=" + $('input#lname').val() + "&email=" + $('input#email').val() + "&property=" + $('input#property').val() + "&action=ajax",
				dataType: "json",
				success: function(data) {
					if (data.error === 'ERROR') {
						alert( data.error );
					} else {
						$('form#propertyInfo').fadeOut('fast',function() {
							$('div#property-info').append('<p class="msg-success">Your information has been sent.</p>');
						});
					}
				}
			});
		}
		
		return false;
		
	});
	
});


/* BEGIN: Columns plugin --------------------------------------------------*/
(function($) {
	
	// plugin definition
	$.fn.makeColumns = function(options) {
	
		// build main options before element iteration
		var opts = $.extend({}, $.fn.makeColumns.defaults, options);
	
		// iterate and reformat each matched element
		return this.each(function() {
		
			$this = $(this);
			
			// build element specific options
			var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
			
			$this.wrap('<div class="' + o.wrapperClass + '"></div>');
			
			numUnits = $this.children().length;
			numPerColumn = Math.ceil(numUnits/o.columns);
			
			for (i=0; i<=(o.columns-1); i++) {
				
				for (j=0; j<=(numPerColumn-1); j++) {
					$('li',$this).eq((i*numPerColumn)+j).addClass('column-'+i);
				}
				
				$('.column-'+i,$this).clone().appendTo( $this.parent('.' + o.wrapperClass) ).wrapAll('<ul>');
			}
			
			$this.remove();
			
		});
	};
	
	// plugin defaults
	$.fn.makeColumns.defaults = {
		columns: 2,
		wrapperClass: 'columns'
	};
})(jQuery);
/* END: Columns plugin --------------------------------------------------*/


/* BEGIN: vertical positioning in the viewport --------------------------------------------------*/
(function($){
	$.fn.vCenter = function() {
		return this.each(function(index) {
			var $this = $(this);
			$this.css({
				position: 'fixed',
				top: '50%',
				marginTop: '-' + ($this.outerHeight()/2) + 'px'
			});
			if ($.browser.msie && ($.browser.version < 7)) {
				$this.css({
					position: 'absolute',
					top: $(window).scrollTop() + ($(window).height()/2)
				});
			}
		});
	};
})(jQuery);
/* END: vertical positioning in the viewport --------------------------------------------------*/


/* BEGIN: UI Block --------------------------------------------------*/
$.BlockUI = function() {
	$('<div id="UIBlock"></div>').css({
		background: '#000',
		height: '100%',
		left: 0,
		opacity: '0.6',
		position: 'fixed',
		top: 0,
		width: '100%',
		zIndex: 900
	}).appendTo('body');
	if ($.browser.msie && ($.browser.version < 7)) {
		$('div#UIBlock').css({
			position: 'absolute',
			top: $(window).scrollTop()
		});
	}
};
$.unBlockUI = function() {
	$('#UIBlock').fadeOut(100,function() {
		$(this).remove();
	});
};
/* END: UI Block --------------------------------------------------*/


/* BEGIN: Default Text --------------------------------------------------*/
(function($) {

	$.fn.defaultText = function() {

		return this.each(function() {
			
			var $this = $(this);
			
			if ($(this).val() == "") {
				$this.val( $('label[for=' + $this.attr('name') + ']').html() ).addClass('defaultVal defaultVal_default');
			} else if ($(this).val() == $('label[for=' + $this.attr('name') + ']').html()) {
				$this.addClass('defaultVal defaultVal_default');
			} else {
				$this.addClass('defaultVal');
			}
			
			$this.focus(function() {
				if ($this.hasClass('defaultVal_default')) {
					$this.val('').removeClass('defaultVal_default');
				}
			});
			
			$this.blur(function() {
				$('#tooltip').remove();
				
				if ($this.val() == "") {
					$this.val( $('label[for=' + $this.attr('name') + ']').html() ).addClass('defaultVal_default');
				}
			});

		});
	};

})(jQuery);
/* END: Default Text --------------------------------------------------*/