// Need PSUtil Object (psUtil)
// - psUtil.getHash
// Need __siteroot Variable
var psSearchEngine={
	PS_TOTAL_COUNT:0,
	PS_MAP_URL:null,
	CURRENT_LANGUAGE:'TH',
	currentSearchHash:null,
	getCurrentSearchHash:function(){
		// psUtil
		var h=$.address.parameter('st');
		this.currentSearchHash=(h&&h!='')?'#'+h:'#SearchHome';
		/*
		var o=psUtil.getHash(true, true);
		this.currentSearchHash=o||'#SearchHome';
		*/
		if(this.currentSearchHash!='#SearchHome'&&this.currentSearchHash!='#SearchLocation'&&this.currentSearchHash!='#SearchAdvance'&&this.currentSearchHash!='#SearchQuick')
			this.currentSearchHash='#SearchHome';
		return this.currentSearchHash;
	},
	activateSIFR:function(){
		sIFR.replace(pslkpb, {
			selector: '.result-header h2'
			,css: ['.sIFR-root { font-size:28px;color:#ffffff; font-weight:bold;}']
			,wmode: 'transparent'
			,tuneHeight:-5
		});
	},
	slideSpeed:'normal',
	scrollSpeed:500,
	searchHomeUrl:__siteroot+'/psweb/server/dosearch.rhtml',
	searchHomeCountUrl:__siteroot+'/psweb/server/dosearchcount.rhtml',
	searchLocationUrl:__siteroot+'/psweb/server/dosearch.rhtml',
	searchLocationCountUrl:__siteroot+'/psweb/server/dosearchcount.rhtml',
	searchAdvanceUrl:__siteroot+'/psweb/server/dosearch.rhtml',
	searchAdvanceCountUrl:__siteroot+'/psweb/server/dosearchcount.rhtml',
	searchQuickUrl:__siteroot+'/psweb/server/dosearch.rhtml',
	searchQuickCountUrl:__siteroot+'/psweb/server/dosearchcount.rhtml',
	scrollBody:function(destEl, scrollSpeed, callback){
		$('#content').scrollTo(destEl, scrollSpeed, callback);
	},
	initSearchHash:function(){
		if(this.currentSearchHash&&this.currentSearchHash!=''){
			var anchorElm=$(this.currentSearchHash);
			$('#SearchWrapper').animate({height:anchorElm.height()}, 0, 'linear', function(){
				$('#SearchWrapper').scrollTo(anchorElm, 0);
			});
		};
		this.checkHashMenu();
		this.checkExpandButton(this.currentSearchHash);
	},
	checkHashMenu:function(){
		var cHash=this.currentSearchHash;
		$('ul#search>li>a').each(function(i,o){
			var oA=$(o);
			if(oA.attr('href').indexOf(cHash)>=0) oA.addClass('selected');
			else oA.removeClass('selected');
		});
		// ##### Google Analytics Tracker #####
		if(cHash=='#SearchHome'){ this.ga.setSearchType(1); }
		else if(cHash=='#SearchLocation'){ this.ga.setSearchType(2); }
		else if(cHash=='#SearchAdvance'){ this.ga.setSearchType(3); }
	},
	initSearchMenu:function(){
		var _this=this; var scrollSpeed=this.scrollSpeed;
		$("ul#search>li>a").localScroll({
			lazy: true,
			target: '#SearchWrapper',
			hash:false,
			axis:'y',
			duration:scrollSpeed,
			onBefore:function( e, subsec, _cont ){
				if(this.blur) this.blur();
				_this.resetSearchForm();
				_this.resetSearchResult(true, true);
				_this.MapSummary.setHref(_this.PS_TOTAL_COUNT);
			},
			onAfter:function(anchor, settings){
				_this.currentSearchHash=_this.getCurrentSearchHash();
				_this.checkHashMenu();
				if(anchor.id){
					var anchorHashName=('#'+anchor.id);
					var anchorElm=$(anchorHashName);
					$('#SearchWrapper').animate({height:anchorElm.height()}, scrollSpeed, 'linear', function(){
						_this.scrollBody($('#nav-main'), scrollSpeed);
					});
					// Check Expand Button
					_this.checkExpandButton(anchorHashName);
				}
			}
		});
	},
	searchHomeState:null,
	checkSearchHomeState:function(state){
		state=state||this.searchHomeState;
		$('ul#host-list-main li a').each(function(i,o){
			if(this.id==state)
				$(this).removeClass('selected');
			else
				$(this).addClass('selected');
		});
	},
	resetSearchHomeState:function(){
		$('ul#host-list-main li a').each(function(i,o){
			$(this).removeClass('selected');
		});
	},
	initSearchHome:function(){
		var _this=this;
		$('ul#host-list-main li a').click(function(){
			var href=$(this).attr('href'); var oId=this.id; var data=eval('('+'{"'+oId+'":true}'+')');
			// Merge data with SearchDemand
			$.extend(data, {"isSearchDemand":true, "searchType":1, "language":_this.CURRENT_LANGUAGE});
			_this.searchHomeState=oId; _this.checkSearchHomeState(oId);
			var url=_this.searchHomeUrl; var urlCount=_this.searchHomeCountUrl;
			var sLoader=$('#SearchResultLoader');
			var sCount=$('#SearchResultCountWrapper');
			var sResultScroller=$('#SearchResultWrapperScroller');
			var sResult=$('#SearchResultWrapper');
			var slideSpeed=_this.slideSpeed; var scrollSpeed=_this.scrollSpeed;

			// ##### Google Analytics Tracker #####
			_this.ga.onHomeTypeClick(oId);

			$('.btn-search-paging').hide();
			_this.showSearchCountLoader();
			jQuery.post(url, data, function(data, textStatus){

				setTimeout(function(){
					sResult.animate({height:0}, scrollSpeed, 'linear',function(){
						sResultScroller.empty();
						sResultScroller.html(data);
						sResult.animate({height:490}, scrollSpeed, 'linear',function(){
							_this.setSearchPagingValue();
							_this.scrollBody(sCount, scrollSpeed, function(){
								$('#SearchResultWrapper').scrollTo(0, scrollSpeed);
							});
							// Update Map Button Link
							_this.MapSummary.setHref($('input[name=psweb_searchresult_count]').val(), $('input[name=psweb_searchresult_ids]').val());
							// ##### Google Analytics Tracker #####
							_this.ga.determineShowResult();
							_this.ga.bindEventToInfoButton();
						});
					});
				}, 300);
				
			}, 'html');
			return false;
		});
	},
	resetSearchForm:function(){
		this.resetSearchHomeState();
		this.SearchLocation.reset();
		this.SearchAdvance.reset();
	},
	checkExpandButton:function(hash){
		if(hash=='#SearchAdvance' || hash=='#SearchLocation'){
			$('.advance-button').show();
		}else{
			$('.advance-button').hide();
		};
	},
	initExpandSearch:function(){
		var _this=this;
		var btnExpandResult=$('#btnSearchAdvanceShowResult');
		var innerDiv=$('div.advance-button' ,btnExpandResult);
		btnExpandResult.click(function(){
			_this.expandResultClick();
			return false;
		});
	},
	expandResultClick:function(callback){
		var _this=this;
		var btnExpandResult=$('#btnSearchAdvanceShowResult');
		var innerDiv=$('div.advance-button' ,btnExpandResult);
		var url=''; var data={};
		var loader=__siteroot+'/images/loader/ajax-loader-indecator-big-with-bg.gif';
		innerDiv.css('background','transparent url('+loader+') no-repeat');
		var afterLoad=function(){
			innerDiv.removeAttr('style');
			if(typeof callback=='function') callback();
		};
		if(_this.currentSearchHash=='#SearchAdvance'){
			url=_this.searchAdvanceUrl;
			data=_this.SearchAdvance.collectData();
			// Merge data with SearchDemand
			$.extend(data, {"isSearchDemand":true, "searchType":3, "language":_this.CURRENT_LANGUAGE});
			_this.expandSearchResult(url, data, afterLoad);
			// ##### Google Analytics Tracker #####
			_this.ga.type3ClickSearch();
		}
		else if(_this.currentSearchHash=='#SearchLocation'){
			url=_this.SearchLocation.searchUrl;
			data=_this.SearchLocation.collectData();
			// Merge data with SearchDemand
			$.extend(data, {"isSearchDemand":true, "searchType":2, "language":_this.CURRENT_LANGUAGE});
			_this.expandSearchResult(url, data, afterLoad);
			// ##### Google Analytics Tracker #####
			_this.ga.type2ClickSearch();
		}
		else if(_this.currentSearchHash=='#SearchQuick'){
			url=_this.SearchQuick.searchUrl;
			data=_this.SearchQuick.collectData();
			// Merge data with SearchDemand
			$.extend(data, {"isSearchDemand":true, "searchType":4, "language":_this.CURRENT_LANGUAGE});
			// 26-01-2010 มีคน search คำว่า งาน เยอะมากจึงให้ดักไว้และ redirect ไปหน้าสมัครงาน
			if(data.keyword.indexOf('งาน')>=0)
				window.open('http://www.superhris.com/listrequest?type=15&idEmp=945');
			else
				_this.expandSearchResult(url, data, afterLoad);
			// ##### Google Analytics Tracker #####
			_this.ga.type4ClickSearch(data.keyword);
		}
	},
	expandSearchResult:function(url, data, callback){
		var _this=this;
		var slideSpeed=_this.slideSpeed; var scrollSpeed=_this.scrollSpeed;
		var sCount=$('#SearchResultCountWrapper');
		var sResult=$('#SearchResultWrapper');
		var sResultScroller=$('#SearchResultWrapperScroller');
		_this.resetSearchResult(true, false, function(){
			jQuery.post(url, data, function(res, textStatus){
				sResultScroller.html(res);
				sResult.animate({height:490}, scrollSpeed, 'linear',function(){
					_this.scrollBody(sCount, scrollSpeed, function(){
						$('#SearchResultWrapper').scrollTo(0, scrollSpeed, function(){
							_this.setSearchPagingValue();
							if(typeof callback=='function') callback();

							// ##### Google Analytics Tracker #####
							_this.ga.determineShowResult();
							_this.ga.bindEventToInfoButton();
						});
					});
				});
			});
		});
	},
	loadSearchCount:function(url, data, callback){
		var _this=this;
		// apply language variable
		$.extend(data, {'language':_this.CURRENT_LANGUAGE});
		_this.showSearchCountLoader();
		var sCount=$('#SearchResultCountWrapper');
		var slideSpeed=_this.slideSpeed; var scrollSpeed=_this.scrollSpeed;
		_this.resetSearchResult(true, false, function(){
			$.post(url, data, function(res, textStatus){
				var count=res.count; var ids=res.ids;
				_this.currentTotalCount=parseInt(count);
				_this.setSearchCountValue(_this.currentTotalCount);
				_this.scrollBody(sCount, scrollSpeed, function(){
					$('#SearchResultWrapper').scrollTo(0, scrollSpeed);
					if(typeof callback=='function') callback(_this.currentTotalCount);
				});
				// Update Map Button Link
				_this.MapSummary.setHref(count, ids);
			}, 'json');
		});
	},
	MapSummary:{
		btnExpandMap:null,
		innerDiv:null,
		showLoader:function(){
			this.btnExpandMap=$('#btnShowMapResult');
			this.innerDiv=$('div.map-button' ,this.btnExpandMap);
			var loader=__siteroot+'/images/loader/ajax-loader-indecator-big-with-bg.gif';
			this.innerDiv.css('background','transparent url('+loader+') no-repeat');
		},
		hideLoader:function(){
			this.innerDiv.removeAttr('style');
		},
		setHref:function(count, ids){
			this.btnExpandMap=$('#btnShowMapResult');
			if(count!=psSearchEngine.PS_TOTAL_COUNT) this.btnExpandMap.attr('href', psSearchEngine.PS_MAP_URL+'?projectid='+ids);
			else this.btnExpandMap.attr('href', psSearchEngine.PS_MAP_URL);
		}
	},
	SearchLocation:{
		collectData:function(){
			var data={}; var rVal=this.regionField.fieldValue();
			if(rVal.length>0) data['region']=this.regionField.fieldValue().join(',');
			return data;
		},
		form:null,
		regionField:null,
		searchUrl:null,
		searchCountUrl:null,
		reset:function(){
			// check url params
			this.form.resetForm();
		},
		init:function(){
			var _this=this; var psSE=psSearchEngine;
			_this.searchUrl=psSE.searchLocationUrl; _this.searchCountUrl=psSE.searchLocationCountUrl;
			_this.form=$('form#form-search-location');
			_this.regionField=$('input[name=region]', _this.form);
			_this.regionField.click(function(){
				var d=_this.collectData();
				psSE.loadSearchCount(_this.searchCountUrl, d);
			});
		}
	},
	SearchAdvance:{
		form:null, fieldHouseType:null, fieldZone:null, fieldBudgetFrom:null, fieldBudgetTo:null, fieldBrand:null,
		reset:function(){ this.form.resetForm(); },
		collectData:function(){
			var data={};
			$.each(this.fieldHouseType, function(i,o){ if(this.checked) data[this.id]=this.checked; });
			if(this.fieldZone.val()!="") data["zone"]=this.fieldZone.val();
			if(this.fieldBrand.val()!="") data["brand"]=this.fieldBrand.val();
			if(this.fieldBudgetFrom.val()!="") data["budgetFrom"]=this.fieldBudgetFrom.val();
			if(this.fieldBudgetTo.val()!="") data["budgetTo"]=this.fieldBudgetTo.val();
			return data;
		},
		init:function(){
			var _this=this; var psSE=psSearchEngine;
			_this.searchUrl=psSE.searchAdvanceUrl; _this.searchCountUrl=psSE.searchAdvanceCountUrl;
			_this.form=$('form#form-search-advance');
			_this.fieldHouseType=$('input[name=HouseType]:checkbox', _this.form);
			_this.fieldZone=$('select[name=ZoneId]', _this.form);
			_this.fieldBudgetFrom=$('select[name=BudgetFrom]', _this.form);
			_this.fieldBudgetTo=$('select[name=BudgetTo]', _this.form);
			_this.fieldBrand=$('select[name=BrandId]', _this.form);
			var doSearch=function(){
				var data=_this.collectData();
				psSE.loadSearchCount(_this.searchCountUrl, data);
			};
			_this.fieldHouseType.click(function(){ doSearch(); });
			_this.fieldZone.change(function(){ doSearch(); });
			_this.fieldBrand.change(function(){ doSearch(); });
			_this.fieldBudgetFrom.change(function(){ doSearch(); });
			_this.fieldBudgetTo.change(function(){ doSearch(); });
		}
	},
	SearchQuick:{
		form:null, fieldKeyWord:null,
		searchUrl:null, searchCountUrl:null,
		reset:function(){ this.form.resetForm(); },
		collectData:function(){
			var data={ "keyword":this.fieldKeyWord.val() };
			return data;
		},
		isExceptionKeyCode:function(code){
			var excep=[9,16,17,18,19,20,27,33,34,35,36,37,38,39,40,45,91,92,93,112,113,114,115,116,117,118,119,120,121,122,123,144,145];
			var isExep=false;
			jQuery.each(excep, function(i,o){
				if(o==code) isExep=true;
			});
			return isExep;
		},
		init:function(){
			var _this=this; var psSE=psSearchEngine;
			_this.searchUrl=psSE.searchQuickUrl; _this.searchCountUrl=psSE.searchQuickCountUrl;
			var validLen=3;
			this.form=$('form#form-search-quick');
			this.fieldKeyWord=$('input[name=keyword]', this.form);
			var scrollSpeed=this.scrollSpeed;
			if(location.href.indexOf('index.rhtml')>=0){
				// Bind Event on Click at Magnify glass
				$('#button-quick-search').click(function(){
					if(this.fieldKeyWord.val().length>=validLen){
						psSE.expandResultClick();
					}
				});
				// Bind Event on Focus at textfield
				this.fieldKeyWord.focus(function(){
					var o=$(this); var oVal=o.val(); var hash=psSE.currentSearchHash;
					if(hash!="#SearchQuick"){
						$('.btn-search-paging').hide();
						$('#SearchWrapper').animate({height:0}, scrollSpeed, 'linear',function(){
							$('#SearchResultWrapper').animate({height:0}, scrollSpeed, 'linear');
						});
						psSE.currentSearchHash="#SearchQuick";
						psSE.checkHashMenu();
						_this.fieldKeyWord.val('');
						psSE.setSearchCountValue(psSE.PS_TOTAL_COUNT);
					}else{
					}
					$('.advance-button').show();
				});
				this.fieldKeyWord.keypress(function(event){
					var o=$(this); var oVal=o.val();
					if(event.keyCode==13){
						if(oVal.length>=validLen){
							psSE.expandResultClick();
							return false;
						};
						return false;
					};
				});
				this.fieldKeyWord.keyup(function(event){
					var o=$(this); var oVal=o.val();
					if(oVal.length>=validLen){
						if(!_this.isExceptionKeyCode(event.keyCode)){
							var data=_this.collectData();
							$('#SearchResultWrapper').animate({height:0}, scrollSpeed, 'linear');
							psSE.loadSearchCount(_this.searchCountUrl, data, function(){});
						};
					}else if(oVal.length==0){
						psSE.setSearchCountValue(psSE.PS_TOTAL_COUNT);
					}else{}
				});
			}
		}
	},
	showSearchCountLoader:function(){
		var loadNum=$('.SearchResultCountNumber');
		loadNum.html('<img src="'+__siteroot+'/images/loader/ajax-loader-indecator.gif" />');
	},
	setSearchCountValue:function(val){
		//$('.SearchResultCountNumber').html(val);
		var rtn=''; var s='';
		s=(val)?(val+''):'0'; s=s.split('');
		jQuery.each(s, function(i,o){
			rtn+=('<div class="result-num num-'+o+'"></div>');
		});
		$('.SearchResultCountNumber').html(rtn);
	},
	currentTotalCount:0,
	currentPageIndex:0,
	currentPageSize:0,
	// animate : มีการใช้ animae, setDefaultCount : สั่งให้ค่า Count ถูก set เป็น total หรือไม่
	resetSearchResult:function(animate, setDefaultCount, callback){
		var _this=this;
		this.currentTotalCount=0;
		this.currentPageIndex=0;
		this.currentPageSize=0;
		if(setDefaultCount) this.setSearchCountValue(_this.PS_TOTAL_COUNT);
		$('.btn-search-paging').hide();
		var sResult=$('#SearchResultWrapper');
		var slideSpeed=this.slideSpeed;
		if(animate){
			sResult.slideUp(slideSpeed, function(){
				if(typeof callback=='function') callback();
			});
		}else{
			sResult.hide();
			if(typeof callback=='function') callback();
		}
	},
	checkPagingButtonClass:function(btnPrev,btnNext){
		btnPrev=btnPrev||$('#btnSearchPrev'); btnNext=btnNext||$('#btnSearchNext');
		var nextInnerDiv=btnNext.children('div'); var prevInnerDiv=btnPrev.children('div');
		if(this.currentPageSize<=0 || this.currentPageSize==1){
			btnPrev.hide(); btnNext.hide();
		}else if(this.currentTotalCount>0){
			if(this.currentPageIndex>0 && this.currentPageIndex<(this.currentPageSize-1)){
				nextInnerDiv.removeClass('next2'); nextInnerDiv.addClass('next1');
				prevInnerDiv.removeClass('back2'); prevInnerDiv.addClass('back1');
			}
			if(this.currentPageIndex==0){
				prevInnerDiv.addClass('back2'); prevInnerDiv.removeClass('back1');
				if(this.currentPageSize>1)
					nextInnerDiv.addClass('next1'); nextInnerDiv.removeClass('next2');
			}
			if(this.currentPageIndex==(this.currentPageSize-1)){
				nextInnerDiv.addClass('next2'); nextInnerDiv.removeClass('next1');
				if(this.currentPageSize>1)
					prevInnerDiv.addClass('back1'); prevInnerDiv.removeClass('back2');
			}
			if(btnPrev.css('display')=='none' && btnNext.css('display')=='none')
				setTimeout(function(){
					btnPrev.show(); btnNext.show();
				}, 500);
			else
				btnPrev.show(); btnNext.show();
		}
	},
	setSearchPagingValue:function(){
		this.currentPageIndex=0;
		this.currentTotalCount=$('input[name=psweb_searchresult_count]').val();
		this.currentPageSize=$('input[name=psweb_searchresult_pagesize]').val();
		//if(this.currentPageSize>0){
		//	$('#SearchResultWrapper').scrollTo($('#SearchResultPage_'+this.currentPageIndex), 0);
		$('#SearchResultWrapper').scrollTo(0);
		//};
		this.checkPagingButtonClass();
		//var searchResultCount=$('span.SearchResultCountNumber');
		//searchResultCount.html(this.currentTotalCount);
		this.setSearchCountValue(this.currentTotalCount);
	},
	initSearchPagingButton:function(){
		var _this=this;
		var btnPrev=$('#btnSearchPrev'); var btnNext=$('#btnSearchNext');
		this.checkPagingButtonClass(btnPrev, btnNext);
		var scrollSpeed=_this.scrollSpeed;
		btnPrev.click(function(){
			if(_this.currentPageSize!=0 && _this.currentPageIndex>0){
				_this.currentPageIndex=_this.currentPageIndex-1;
				$('#SearchResultWrapper').scrollTo($('#SearchResultPage_'+_this.currentPageIndex), scrollSpeed);
				_this.checkPagingButtonClass(btnPrev, btnNext);
			}
			return false;
		});
		btnNext.click(function(){
			if(_this.currentPageSize!=0 && _this.currentPageIndex<(_this.currentPageSize-1)){
				_this.currentPageIndex=_this.currentPageIndex+1;
				$('#SearchResultWrapper').scrollTo($('#SearchResultPage_'+_this.currentPageIndex), scrollSpeed);
				_this.checkPagingButtonClass(btnPrev, btnNext);
			}
			return false;
		});
	},
	showResultGoogleMaps:function(el){
		var _this=this; var senderId=el.id;
		if(senderId=='btnShowMapResult'){
			this.MapSummary.showLoader();
			hs.Expander.prototype.onAfterExpand = function (sender) {
				_this.MapSummary.hideLoader();
			};
		};
	
		return hs.htmlExpand(el, {
			objectType: 'iframe',
			width: 600,
			objectWidth: 600,
			objectHeight: 490,
			dimmingOpacity:0.1,
			align: 'center'
		});
	},
	ga:{
		searchType:null, searchHomeType:null,
		track:function(v){ if(pageTracker) pageTracker._trackPageview(v); /*alert(v);*/ },
		getSearchType : function(){
			this.searchType=this.searchType||1;
			return this.searchType;
		},
		setSearchType : function(type){
			// 1=ประเภทบ้าน,2=ทำเล,3=ค้นหา,4=ค้นหาด่วน
			this.searchType=type;
		},
		getSearchHomeType:function(){ this.searchHomeType=this.searchHomeType||0; return this.searchHomeType; },
		setSearchHomeType:function(type){ this.searchHomeType=type; },
		locationCheckBoxClick:false, advanceFill:false, quickFill:false,
		init:function(){
			var _this=this; var psSE=psSearchEngine;
			$('div#nav-main-search > ul#search > li > a').click(function(){
				var h=this.hash;
				if(h=='#SearchHome'){ _this.setSearchType(1); }
				else if(h=='#SearchLocation'){ _this.setSearchType(2); }
				else if(h=='#SearchAdvance'){ _this.setSearchType(3); }
			});
			$('input[name=keyword]').focus(function(){ _this.setSearchHomeType(4); });
			
			$('#btnShowMapResult').click(function(){
				var st=_this.getSearchType();
				if(st==1) _this.houseTypeClickMap();
				else if(st==2) _this.type2ClickMap();
				else if(st==3) _this.type3ClickMap();
				else if(st==4) _this.type4ClickMap();
				else _this.houseTypeClickMap();
			});
			$('form#form-search-location input:checkbox').click(function(){
				_this.setSearchType(2);
				if(_this.locationCheckBoxClick==false){
					_this.locationCheckBoxClick=true;
					_this.advanceFill=false;
					_this.quickFill=false;
					_this.type2CheckField();
				}
			});
			var trackAdvanceFill=function(){
				_this.setSearchType(3);
				if(_this.advanceFill==false){
					_this.locationCheckBoxClick=false;
					_this.advanceFill=true;
					_this.quickFill=false;
					_this.type3FillForm();
				}
			};
			// Advance Search fill form
			$('form#form-search-advance input:checkbox').click(function(){ trackAdvanceFill(); });
			$('form#form-search-advance select').change(function(){ trackAdvanceFill(); });
			// Quick Search field keyup
			$('form#form-search-quick input').keyup(function(){
				_this.setSearchType(4);
				if(_this.quickFill==false){
					_this.locationCheckBoxClick=false;
					_this.advanceFill=false;
					_this.quickFill=true;
					_this.type4FillInfo();
				}
			});
		},
		onHomeTypeClick:function(id){
			this.setSearchType(1);
			if(id=='isHouse'){ this.type1HomeClick(); this.setSearchHomeType(1); }
			else if(id=='isTownHouse'){ this.type1HomeTownClick(); this.setSearchHomeType(2); }
			else if(id=='isCondo'){ this.type1CondoClick(); this.setSearchHomeType(3); }

			this.locationCheckBoxClick=false;
			this.advanceFill=false;
		},
		determineShowResult:function(){
			var searchType=this.getSearchType(); var searchHomeType=this.getSearchHomeType();
			if(searchType==1){
				if(searchHomeType==1) this.type1HomeShowResult();
				else if(searchHomeType==2) this.type1HomeTownShowResult();
				else if(searchHomeType==3) this.type1CondoShowResult();
			}
			else if(searchType==2) this.type2ClickResult();
			else if(searchType==3) this.type3ClickResult();
			else if(searchType==4) this.type4ClickResult();
		},
		bindEventToInfoButton:function(){
			var _this=this;
			// Detail button click
			$('.bresult-detail>a').click(function(){
				var searchType=_this.getSearchType(); var searchHomeType=_this.getSearchHomeType();
				if(searchType==1){
					if(searchHomeType==1) _this.type1HomeClickInfo();
					else if(searchHomeType==2) _this.type1HomeTownClickInfo();
					else if(searchHomeType==3) _this.type1CondoClickInfo();
				}
				else if(searchType==2) _this.type2ClickInfo();
				else if(searchType==3) _this.type3ClickInfo();
				else if(searchType==4) _this.type4ClickInfo();
			});
		},
		houseTypeClickMap:function(){			this.track('/virtual-event/search-by-house-type/click-google-map'); },
		type1HomeClick:function(){				this.track('/virtual-event/search-by-house-type/home/click-home'); },
		type1HomeShowResult:function(){			this.track('/virtual-event/search-by-house-type/home/show-result'); },
		type1HomeClickInfo:function(){			this.track('/virtual-event/search-by-house-type/home/click-info'); },
		type1HomeTownClick:function(){			this.track('/virtual-event/search-by-house-type/townhome/click-hometown'); },
		type1HomeTownShowResult:function(){		this.track('/virtual-event/search-by-house-type/townhome/show-result'); },
		type1HomeTownClickInfo:function(){		this.track('/virtual-event/search-by-house-type/townhome/click-info'); },
		type1CondoClick:function(){				this.track('/virtual-event/search-by-house-type/condo/click-condo'); },
		type1CondoShowResult:function(){		this.track('/virtual-event/search-by-house-type/condo/show-result'); },
		type1CondoClickInfo:function(){			this.track('/virtual-event/search-by-house-type/condo/click-info'); },

		type2CheckField:function(){				this.track('/virtual-event/search-by-location/check-location'); },
		type2ClickSearch:function(){			this.track('/virtual-event/search-by-location/click-search'); },
		type2ClickResult:function(){			this.track('/virtual-event/search-by-location/show-result'); },
		type2ClickMap:function(){				this.track('/virtual-event/search-by-location/click-google-map'); },
		type2ClickInfo:function(){				this.track('/virtual-event/search-by-location/click-info'); },

		type3FillForm:function(){				this.track('/virtual-event/custom-search/fill-info'); },
		type3ClickSearch:function(){			this.track('/virtual-event/custom-search/click-search'); },
		type3ClickResult:function(){			this.track('/virtual-event/custom-search/show-result'); },
		type3ClickMap:function(){				this.track('/virtual-event/custom-search/click-google-map'); },
		type3ClickInfo:function(){				this.track('/virtual-event/custom-search/click-info'); },

		type4FillInfo:function(){				this.track('/virtual-event/quick-search/fill-info'); },
		type4ClickSearch:function(q){			this.track('/virtual-event/quick-search/search?q='+q); },
		type4ClickResult:function(){			this.track('/virtual-event/quick-search/show-result'); },
		type4ClickMap:function(){				this.track('/virtual-event/quick-search/click-google-map'); },
		type4ClickInfo:function(){				this.track('/virtual-event/quick-search/click-info'); }
	},
	init:function(){
		$('#SearchResultCountWrapper');
	
		this.currentSearchHash=this.getCurrentSearchHash();
		this.initSearchHash();
		this.initSearchMenu();
		
		this.initSearchHome();
		
		this.SearchLocation.init();
		this.SearchAdvance.init();
		this.SearchQuick.init();
		// Reset firefox cache form
		this.resetSearchForm();
		
		this.initSearchPagingButton();
		
		this.initExpandSearch();
		
		// Google Tracker Init
		this.ga.init();
	}
};
$(function(){
	psSearchEngine.init();
});