// Jason Hoi
// Date: --
// In production stage, this will be stored to xxx.js
function go_search(){
	var off_num = 0;
	$('input[name=u]').each(function(){
		if( !$(this).is(':checked') )
			off_num ++;
	})
	
	//alert(off_num);
	// if anyone checkbox is off the hidden all_area input should be false(0)
	if( off_num > 0 )
	{
		$('input[name=all_area]').val('0');
	}else{
		$('input[name=all_area]').val('1');
	}
	
	//alert('all area is '+ $('input[name=all_area]').val());
}

$(document).ready(function(){
	var animate_time = 200;
	// Start your journey with jQuery here...
	// apply custom style for all checkbox, radio, and file upload browsing
	$('input').customInput();
	
	// preload all css images for smooth animation
	//$.preloadCssImages();
	
	// add drop down menu behaviors
	$('#main_nav ul li').hover(show_menu, out_item);
	//$('#main_nav ul ul').mouseleave(hide_menu);
	
	$("a[rel=fancy-box-ajax]").fancybox({
				'width'				: 800,
				'overlayOpacity'	: .55,
				'centerOnScroll'	: false,
				'showNavArrows'		: false,
				'transitionIn'		: 'fade',
				'transitionOut'		: 'fade',
				'speedIn'			: 400,
				'speedOut'			: 100,
				'padding'			: 1
	});
	$("a[rel=fancy-box-iframe]").fancybox({
				'width'				: 830,
				'height'			: 680,
				'autoScale'			: false,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'type'				: 'iframe'
	});
	$("a[rel=fancy-box-gallery]").fancybox({
				'width'				: 800,
				'padding'			: 1,
				'height'			: 650,
				'showNavArrows'		: false,
				'centerOnScroll'	: false,
				'autoScale'			: false,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'type'				: 'iframe'
	});
	
	function show_menu(e){
		$(this).find('ul').stop(true, true).fadeIn(animate_time);
	}
	function out_item(e){
		$(this).find('ul').fadeOut(animate_time);
	}
	function hide_menu(e){
		$(this).fadeOut(animate_time);
	}
	
	// Controls for search box //////////////////////////
	// reference to target DOM object
	var intention_input = $('input[name=t]');
	var intent_buy = $('input#intention_buy');
	var intent_rent = $('input#intention_rent');
	
	var suburb_input = $('input[name=tb]');
	var suburb_checkbox = $('#suburb_check_list input');
	
	var pr_obj = $('#price_input');
	
	// Suburb settings - user can only use either direct typing or checkbox mode
	suburb_input.focus( function(event){
		suburb_checkbox.each(function(){
			if ( $(this).is(':checked') )
				$(this).trigger('click').trigger('updateState');
		});
	});
	suburb_input.blur( function(event){
		if( $(this).val() == '' ){
			suburb_checkbox.each(function(){
				if ( !$(this).is(':checked') && $(this).attr('id')!='suburb_switch')
					$(this).trigger('click').trigger('updateState');
			});
		}
	});
	
	suburb_checkbox.click( function(event){
		suburb_input.val('');
	});
	
	// justify if we selected all suburbs on DOM ready
	if( $('input[name=suburb_switch]').is(':checked') )
	{
		$('input[name=all_area]').val('1');
	}else{
		$('input[name=all_area]').val('0');
	}
	
	// Suburbs select-all, select-none
	$('label[for=suburb_switch]').click( function(event){
		switch_select_all( $(this) );
		if( !$('input[name=suburb_switch]').is(':checked') )
		{
			$('input[name=all_area]').val('1');
		}else{
			$('input[name=all_area]').val('0');
		}
	});
	
	// Intention settings buttons - buy or rent
	if( intent_buy.val() == '1'){
		set_intention('buy')
	}else{
		set_intention('rent')
		// set the price range display at the first time
		intent_buy.is(':checked') ? set_intention('buy') : set_intention('rent');
	}
	
	intent_buy.click( function(event){
		set_intention('buy');
	});
	
	intent_rent.click( function(event){
		set_intention( 'rent' )
	});
	
	///////////////////////////////////////////
	//// Helper function for intention settings
	function switch_select_all( obj ){
		var c = obj.parent().find('input').is(':checked');
				
		obj.parent().parent().find('input').each( function(i){
			if ( c == $(this).is(':checked') )
				$(this).trigger('click').trigger('updateState');
		});
				
		obj.parent().find('input').trigger('click');
	}
	
	function set_intention( t ){
		switch( t ){
			case 'buy':
			// set value for 
			intention_input.val( 'res' );
			var pr_options = '\
			<select name="pr">\n\
			<option selected="selected" value="">-- Select price range --</option>\n\
				<option value="0-100000"     >$0 &nbsp to $100,000</option>\n\
				<option value="100000-200000">$100,000 to $200,000</option>\n\
				<option value="200000-300000">$200,000 to $300,000</option>\n\
				<option value="300000-400000">$300,000 to $400,000</option>\n\
				<option value="400000-500000">$400,000 to $500,000</option>\n\
				<option value="500000-600000">$500,000 to $600,000</option>\n\
				<option value="600000-750000">$600,000 to $750,000</option>\n\
				<option value="750000-1000000">$750,000 to $1,000,000</option>\n\
				<option value="1000000-999999999999999">$1,000,000 onwards</option>\n\
			</select>\n\
			';
			pr_obj.html( pr_options );
			break;
				
		case 'rent':
			intention_input.val( 'ren' );
		
			var pr_options = '\
			<SELECT NAME="pm">\n\
			<OPTION SELECTED VALUE="">$min</OPTION>\n\
				<OPTION>50</OPTION>\n\
				<OPTION>100</OPTION>\n\
				<OPTION>150</OPTION>\n\
				<OPTION>200</OPTION>\n\
				<OPTION>250</OPTION>\n\
				<OPTION>300</OPTION>\n\
				<OPTION>350</OPTION>\n\
				<OPTION>400</OPTION>\n\
				<OPTION>450</OPTION>\n\
				<OPTION>500</OPTION>\n\
				<OPTION>600</OPTION>\n\
				<OPTION>700</OPTION>\n\
				<OPTION>800</OPTION>\n\
				<OPTION>900</OPTION>\n\
				<OPTION>1000</OPTION>\n\
				<OPTION>1200</OPTION>\n\
				<OPTION>1400</OPTION>\n\
				<OPTION>1600</OPTION>\n\
				<OPTION>1800</OPTION>\n\
				<OPTION>2000</OPTION>\n\
				<OPTION>3000</OPTION>\n\
			</SELECT>\n\
    	    <SELECT NAME="px">\n\
			<OPTION SELECTED VALUE="">$max</OPTION>\n\
				<OPTION>50</OPTION>\n\
				<OPTION>100</OPTION>\n\
				<OPTION>150</OPTION>\n\
				<OPTION>200</OPTION>\n\
				<OPTION>250</OPTION>\n\
				<OPTION>300</OPTION>\n\
				<OPTION>350</OPTION>\n\
				<OPTION>400</OPTION>\n\
				<OPTION>450</OPTION>\n\
				<OPTION>500</OPTION>\n\
				<OPTION>600</OPTION>\n\
				<OPTION>700</OPTION>\n\
				<OPTION>800</OPTION>\n\
				<OPTION>900</OPTION>\n\
				<OPTION>1000</OPTION>\n\
				<OPTION>1200</OPTION>\n\
				<OPTION>1400</OPTION>\n\
				<OPTION>1600</OPTION>\n\
				<OPTION>1800</OPTION>\n\
				<OPTION>2000</OPTION>\n\
				<OPTION>5000</OPTION>\n\
			</SELECT>';
			pr_obj.html( pr_options );
			break;
		}
	}
	
	var banner_obj = $('#header_banner');
	var flash_banner = $('#flash_banner');
	
	if( flash_banner.length == 0 )
	{
		banner_obj.nivoSlider({
        effect:'fade', //Specify sets like: 'fold,fade,sliceDown'
        slices:15,
        animSpeed: animate_time*4, //Slide transition speed
        pauseTime: 9000,
        startSlide:0, //Set starting Slide (0 index)
        directionNav:false, //Next & Prev
        directionNavHide:true, //Only show on hover
        controlNav:false, //1,2,3...
        controlNavThumbs:false, //Use thumbnails for Control Nav
        controlNavThumbsFromRel:false, //Use image rel for thumbs
        controlNavThumbsSearch: '.jpg', //Replace this with...
        controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src
        keyboardNav:false, //Use left & right arrows
        pauseOnHover:false, //Stop animation while hovering
        manualAdvance:false, //Force manual transitions
        captionOpacity: .85, //Universal caption opacity
        beforeChange: function(){},
        afterChange: function(){},
        slideshowEnd: function(){}, //Triggers after all slides have been shown
        lastSlide: function(){}, //Triggers when last slide is shown
        afterLoad: function(){} //Triggers when slider has loaded
    	});
	}
	
	function initNewsPlay(){
		$.post("functions_ajax/get_news.php", '', setNewsData, 'json');
	}
	function setNewsData(data){
		news_data = data;
		total_news = news_data.length;
		
		changeNews()
		//alert( 'total news item = '+ total_news);
	}
	
	function changeNews(){
		if (total_news > 0){
			if (news_index == -1){
				// clear the initial content, replace it with our new player content
				var obj = $('#featured_article .padding');
				obj.html('<h1>Nicholson Snapshot</h1><div id="flash-news"></div>');
				
				// set the first news index
				news_index = 0;
				// get the first news after the flash-news container has created
				changeNews();
				
			}else{
				// update new content
				setNews( news_data[news_index] );
				
				// show up the news
				showNews();
				
				news_index ++;
				if (news_index >= total_news)
					news_index = 0;
			}
		}
	}
	function setNews(data){
		var content = '';
		var img = data.image_path;
		if (img != ''){
			content += '<img src="' + data.image_path + '" width="180px" height="120px" alt="'+ data.title +'" /><br/>';
		}
		content += '<h2>'+ data.title + '</h2>' + '<h3>'+ data.subtitle + '</h3>' + '<p>'+ data.info +'</p>';
		$('#flash-news').html( content );
		//alert(data.item_id + '-info = '+ data.info);
	}
	function showNews(){
		$('#flash-news').fadeIn(animate_time*2);
	}
	function hideNews(){
		$('#flash-news').delay(animate_time*5).fadeOut(animate_time*2);
	}
	function hideShowNews(){
		$('#flash-news').delay(animate_time*4).fadeOut(animate_time*3, changeNews);
	}
	
	// Flash News Player (initialize when the Nivo Silder finished loading)
	var news_data = new Array();
	var news_index = -1;
	var total_news = 0;
	var change_interval = 9000;
	
	initNewsPlay();
	//set timer for auto slider
	window.setInterval(
	function() {
		hideShowNews();
	}, change_interval);
});
