/*
 * Dynamic 'Latest Properties' viewer.
 *
 * Designed for Lodge Real Estate as deployed
 * on the Interspeed RealHost engine.
 *
 * NSK [nickk@netvalue.net.nz] 12/06/2008
 */

// On document-ready
var latestPropertyArray = [];
jQuery( function() {

	// Populate initial properties
	requestPage(1);

	// Create an interval for rotating the properties
	propInterval(true);

	// Create controller arrows
	jQuery('#latest-properties-box').append(
			'<div class="arrow left"></div><div class="arrow right"></div>');

	// Apply left action
	jQuery('#latest-properties-box div.left').click(propReverse);

	// Apply right action
	jQuery('#latest-properties-box div.right').click(propRotate);

	// Apply 'pause on hover' effect
	jQuery('#latest-properties-box-inner').hover( function() {
		clearInterval(page_interval);
	}, function() {
		// Reset the interval for automated property ticker
			propInterval(true);
		});

	// Initialise scrollable div on homepage
	var api =  jQuery("div.scrollable").scrollable( {
		//nextPage :'#arrowNext',
		//prevPage :'#arrowPrev',
		navi :'div.sliderNav',
		size :3,
		loop :true,
		speed :600,
		interval :4000

	});
	
	// Nice click boxes for mini-blocks ( twitter, open homes etc ) 
    $("div.clickable").click(
    		function()
    		{
    			var URL = $(this).find("a").attr("href");
				
    		    window.location = URL;
    		    return false;
    });	
	
	$('div.addhover').each( function(){
        $(this).mouseover( function(){ $(this).addClass('hover'); } ).mouseout( function(){ $(this).removeClass('hover'); } );
    });
	/*
	$("div#twitter-block").click(
    		function()
    		{
    			var url = $(this).find("a").attr("href");
				
				var caption = $(this).find("a").attr("title");
				tb_show(caption, url);
    		   // window.location = URL;
    		    return false;
    });	
	*/
	


	


	jQuery("div.scrollable div.items div.fproperty").each( function(i) {
		$(this).hover( function() {
				$(this).find("div.featuredFooter").stop().animate( {
					bottom :"0px"
				}, 200);
			}, function() {
				$(this).find("div.featuredFooter").stop().animate( {
					bottom :"-35px"
				}, 200);
			})
	});
	// Remove Auto-scrolling if navigating
	$("#arrowNext").click(function(){
		var api = $("div.scrollable").scrollable();
		api.getConf().interval = 0; 
		api.next();  
	});
	
	$("#arrowPrev").click(function(){
		var api = $("div.scrollable").scrollable();
		$("div.scrollable").stop();
		api.getConf().interval = 0; 
		api.prev();  
	});
	
	
	if ($.browser.msie && $.browser.version.substr(0, 1) < 7) {

		if (jQuery("div.scrollable").length) {
			DD_belatedPNG
					.fix('#arrowNext, #arrowPrev, .featuredFooter, .featuredHeader, .icon');
		}

	}

	/*
	 * jQuery("div.scrollable div.items div.fproperty").hover( function () {
	 * $(this).find("div.DetailsBar").slideDown("slow"); }, function () {
	 * $(this).find("div.DetailsBar").slideUp("slow"); }
	 * 
	 * 
	 */
	
	/* RSS FEED FOR NEWS */
	if( $("#news-box").size()  ){
		function loadFeed(){
			$.getFeed({
				url: 'static/rssHelper.php?url=http://lodge.co.nz/news/tag/featured/feed',
				success: function(feed) {
					//Title
					// $('#newsBlock').append('<h2><a href="' + feed.link + '">' + feed.title + '</a>' + '</h2>');
	
					//Unordered List
					var html = '<ul>';
				    var count = 1;
					$(feed.items).each(function(){
						if( count < 4){
							var $item = $(this);
							//trace( $item.attr("link") );
							html += '<li>' +
							'<a href ="' + $item.attr("link") + '" target="_new">' + $item.attr("title") + '</a> ' +
							//'<p>' + $item.attr("description") + '</p>' +
							// '<p>' + $item.attr("updated") + '</p>' +
							'</li>';
							count++;
						}
					});
	
					html += '</ul>';
	
					$('#feedLinks').append(html);
					$('#feedLinks li:last').addClass('last');
				}
			});
		}
		loadFeed();
	}
});

function propRotate() {
	// Reset the interval for automated property ticker
	propInterval();

	// Get current page count
	var targetID = getTargetID();
	requestPage(targetID);
}

function propReverse() {
	// Reset the interval for automated property ticker
	propInterval();

	// Get the current page count
	var targetID = getTargetID(1);
	requestPage(targetID);

}

// Request page
function requestPage(page) {
	// Fade out the existing properties
	jQuery('#latest-properties-box-inner').fadeOut('fast');

	// Update the current page
	jQuery('#latest-properties-box').attr('class', 'page-' + page);

	// Make the call
	if (latestPropertyArray[page] == undefined
			|| latestPropertyArray[page].time < (new Date().getTime() - 1000 * 60 * 5)) {

		// Make the call
		jQuery.get('/ajax/latest.php?page=' + page, null, propLatest);
	} else {
		propLatest(latestPropertyArray[page].data, 'noCache');
	}
}

// Populate the Latest Properties block with returned XML data
function propLatest(data, responseStatus) {
	targetID = getTargetID() - 1;
	if (targetID == 0) {
		targetID = 9;
	}
	if (responseStatus != 'noCache') {
		latestPropertyArray[targetID] = {
			'data' :data,
			'time' :new Date().getTime()
		};
	}
	// Clear out the old properties
	jQuery('#latest-properties-box-inner ul').empty();

	// For each property returned, create a list item and append to the
	// unordered list for display
	jQuery(data).find('property').each(
			function() {
				jQuery('#latest-properties-box-inner ul')
						.append(
								'<li>' + jQuery(this).find('quickPreview')
										.text() + '</li>');
			});

	jQuery('#latest-properties-box-inner').find('li:last a').addClass('last');

	// Fade in the new properties
	jQuery('#latest-properties-box-inner').fadeIn();

}

function getTargetID(reverseCount) {
	// Obtain existing pageID and validate
	var pageID = jQuery('#latest-properties-box').attr('class').replace(
			/page-/, '').toLowerCase();
	if (isNaN(pageID) || pageID < 1) {
		pageID = 1;
	}

	// Increment as reqiured
	if (reverseCount == 1) {
		var targetID = parseFloat(pageID) - 1;
	} else {
		var targetID = parseFloat(pageID) + 1;
	}

	// Validate new number
	if (isNaN(targetID) || targetID < 1) {
		targetID = 1;
	} else if (targetID >= 10) {
		targetID = 1;
	}

	return targetID;
}

function propInterval(noResetBln) {
	// Reset paging interval
	if (noResetBln == true) {

	} else {
		clearInterval(page_interval);
	}

	// Setup new paging interval
	page_interval = setInterval(propRotate, 8000);
}

function displaySearch(panel) {
	if (panel == "rent") {
		jQuery('#RentalSearchBlock').css("display", "inline");
		jQuery('#PropertySearchBlock').css("display", "none");
		jQuery('#proprent_tab a').addClass('active');
		jQuery('#propsale_tab a').removeClass('active');
	}
	if (panel == "property") {
		jQuery('#PropertySearchBlock').css("display", "inline");
		jQuery('#RentalSearchBlock').css("display", "none");
		jQuery('#propsale_tab a').addClass('active');
		jQuery('#proprent_tab a').removeClass('active');
	}

}

// search box related js below

jQuery().ready( function() {
	jQuery("#propsale_tab a").bind('click', showPropertySearchBox);
	jQuery("#proprent_tab a").bind('click', showRentSearchBox);
});

function showPropertySearchBox(event) {
	event.preventDefault();

	jQuery("#propsale_tab a").addClass('active');
	jQuery("#proprent_tab a").removeClass('active');

	jQuery("#RentalSearchBlock").hide();
	jQuery("#PropertySearchBlock").show();
}
function showRentSearchBox(event) {
	event.preventDefault();

	jQuery("#propsale_tab a").removeClass('active');
	jQuery("#proprent_tab a").addClass('active');

	jQuery("#PropertySearchBlock").hide();
	jQuery("#RentalSearchBlock").show();
}