$.fn.stickyfloat = function(options, lockBottom) {
var $obj         = this;
var parentPaddingTop   = parseInt($obj.parent().css('padding-top'));
var startOffset     = $obj.parent().offset().top;
var opts         = $.extend({ startOffset: startOffset, offsetY: parentPaddingTop, duration: 200, lockBottom:true }, options);

$obj.css({ position: 'absolute' });

if(opts.lockBottom){
  var bottomPos = $obj.parent().height() - $obj.height() + parentPaddingTop;
  if( bottomPos < 0 )
	bottomPos = 0;
}

$(window).scroll(function () { 
  $obj.stop();

  var pastStartOffset      = $(document).scrollTop() > opts.startOffset;
  var objFartherThanTopPos  = $obj.offset().top > startOffset;
  var objBiggerThanWindow   = $obj.outerHeight() < $(window).height();
  
  if( (pastStartOffset || objFartherThanTopPos) && objBiggerThanWindow ){ 
	var newpos = ($(document).scrollTop() -startOffset + opts.offsetY );
	if ( newpos > bottomPos )
	  newpos = bottomPos;
	if ( $(document).scrollTop() < opts.startOffset )
	  newpos = parentPaddingTop;

	$obj.animate({ top: newpos }, opts.duration );
  }
});
};

$(document).ready(function()
{
	$('#navigation > li').hover(function()
	{
		var _this = $(this);
		var _id = _this.attr('id').replace('nav','sub');
		$('#'+_id).show();
		_this.addClass('hover');
		
	},
	function()
	{
		var _this = $(this);
		var _id = _this.attr('id').replace('nav','sub');
		$('#'+_id).hide();
		_this.removeClass('hover');
	});
	
	$('#searchScript span.dropdown a').click(function()
	{
		var _ul = $('ul:first',$(this).parent().parent());
		$('#searchScript ul').each(function()
		{
			if (this == _ul[0])
			{
				$(this).toggle();
			}
			else
			{
				$(this).hide();
			}
		});
		return false;
	});

	$('#filter,#sortby').click(function()
	{
		$('ul:first',$(this).parent().parent()).toggle();;
		return false;
	});

	$('#searchScript li a').live('click',function()
	{
		var _this = $(this); 
		var _div = _this.closest('div');
		$('ul',_div).hide();
		$('span a',_div).html(_this.html());
		
		if (_div.attr('id') == 'buyrentdiv')
		{
			var _select = '';
			var _ul = '';
			if ($('#buyrent').text() == 'Rental')
			{
				for(var _i=5000;_i<=200000;_i+=5000)
				{
					_select += '<option value="'+_i+'">'+addCommas(_i)+'</option>';
					_ul += '<li><a href="#" title="'+_i+'">'+addCommas(_i)+'</a></li>';
				}
			}
			else
			{
				for(var _i=100000;_i<=500000;_i+=100000)
				{
					_select += '<option value="'+_i+'">'+addCommas(_i)+'</option>';
					_ul += '<li><a href="#" title="'+_i+'">'+addCommas(_i)+'</a></li>';
				}
			}
			$('#tbxPriceFrom').html('<option>Price From:</option>'+_select);
			$('#pricefromul').html(_ul);
			$('#tbxPriceTo').html('<option>Price To:</option>'+_select);
			$('#pricetoul').html(_ul);
		}
		
		return false;
	});

	$('#termFilter li a').click(function()
	{
		$('#tbxTerm').val($(this).text());
		$('#filterForm').submit();
		return false;
	});

	$('#searchSort li a').click(function()
	{
		$('#tbxSort').val($(this).text());
		$('#sortForm').submit();
		return false;
	});

	$('#propertySearch').click(function()
	{
		var _selects = $('#propertySearchForm select');
		var _spans = $('#searchScript span');
		
		for (_i=0;_i<_spans.length;_i++)
		{
			var _select = _selects[_i];
			var _span = _spans[_i];
	
			_select.selectedIndex = 0;

			var _text = $(_span).text();
			if (_text == 1)
			{
				_select.selectedIndex = 2;
			}
			else
			{
				var _option = $('option:contains("'+_text+'"):first',_select);
				if (_option.length == 1)
				{
					var _val = _option.val();
					$(_select).val(_option.val());
				}
			}
		}
		$('#propertySearchForm').submit();
		return false;
	});
	
	$('#propertyImageArea .thumbs div div').click(function()
	{
		var _this = $(this);
		$('#propertyImageArea .thumbs div.selected').removeClass('selected');
		var _src = _this.css('background-image').replace(/"/g,'').replace(/url\(/,'').replace(/_thumb.jpg\)/,'.jpg');
		$('#propertyImageArea .largeimage img').attr('src',_src);
		_this.parent().addClass('selected');
	});
	
	$('#makeEnquiry .GenericForm, #makeEnquiryFull .GenericFormFull').submit(function()
	{
		var _parameters = $(this).serialize();
		var _this = this;
		
		// Remove default values
		_parameters = _parameters.replace('tbxFirstName=First+Name&','');
		_parameters = _parameters.replace('tbxLastName=Last+Name&','');
		_parameters = _parameters.replace('tbxEmail=Email+Address&','');
		_parameters = _parameters.replace('tbxPhone=Phone+Number&','');
		_parameters = _parameters.replace('tbxComments=other+comments&','');
		_parameters += '&ajax=1';
		
		$.ajax({type: 'POST', url: _this.action, data: _parameters, dataType: 'json', success: function(_data) 
		{
			if (_data.ok == 1)
			{
				$(_this).hide();
				$('.error_content',$(_this).closest('div')).fadeOut(0).html('<div class="info-notice">'+_data.response+'</div>').fadeIn('slow');
			}
			else
			{
				$('.error_content',$(_this).closest('div')).fadeOut(0).html('<div class="info-error">'+_data.response+'</div>').fadeIn('slow');
				
				var _key = $('#tbxKey');
				
				if (_key.length == 1)
				{
					$('#tbxKeyCode').val('');
					var _src = _key.attr('src')+'?'+(new Date()).getTime();
					_key.attr('src',_src);
				}
			}
		}
		});
		return false;
	});	
	
	$('#pageArea .column').stickyfloat({ duration: 550 });
});

function addCommas(_nStr)
{
	_nStr += '';
	_x = _nStr.split('.');
	_x1 = _x[0];
	_x2 = _x.length > 1 ? '.' + _x[1] : '';
	var _rgx = /(\d+)(\d{3})/;
	while (_rgx.test(_x1)) 
	{
		_x1 = _x1.replace(_rgx, '$1' + ',' + '$2');
	}
	return _x1 + _x2;
}