﻿/**
 *  刊登求購區資訊 
 *  客戶端驗證信息
 *
 * @author shimiaomiao <shimiaomiao@addcn.com>
 * @access private
 * @copyRight addcn
 * 2010 - 01 - 21
 **/
$(document).ready(function(){
	//填充車身型式
	vlFillAuto();
	if( $("#buy-position").val() != null && $("#buy-position").val() != '') {	
		searchbase.doBuySearch();
	}
	//出廠年份 || 購車預算||所在地區搜尋
	$("#search-buys-year").change(function(){
		var _position = $("#search-buys-year").attr("name");
		var _position_value = $("select[name='begindate'] :selected").attr("value");
		var _position_key = $("select[name='begindate'] :selected").attr("value");
		searchbase.leftSearch(_position,_position_key,_position_value);
	});
	$("#priceInterzone").change(function(){
		var _position = $("#priceInterzone").attr("name");
		var _position_value = $("select[name='pricezone'] :selected").attr("value");
		var _position_key = $("select[name='pricezone'] :selected").attr("value");
		searchbase.leftSearch(_position,_position_key,_position_value);
	});
	$("#regionid").change(function(){
		var _position = $("#regionid").attr("name");
		var _position_value = $("select[name='regionid'] :selected").attr("value");
		var _position_key = $("select[name='regionid'] :selected").attr("value");
		searchbase.leftSearch(_position,_position_key,_position_value);
	});
});

var searchbase = ({
	/**
	 * 搜尋函數
	 *
	 * @param Object obj  當前搜尋的對象
	 * @param String position 
	 * @param String positionValue
	 * @param String positionKey
	 * @return empty
	 **/
	Search:function(position,positionKey,positionValue){
		
		//設置搜尋條件
		this.initSearchBuys(position,positionKey,positionValue);
		this.doBuySearch();
	},
	
	/**
	 * 搜尋函數
	 * 當前搜尋的對象 
	 * @param String position 
	 * @param String positionValue
	 * @param String positionKey
	 * @return empty
	 **/
	leftSearch:function(position,positionKey,positionValue){
		
		// 設置左側欄的搜尋條件		
		this.initLeftSearchBuys(position,positionKey,positionValue);
		this.doBuySearch();
	},
	
	/**
	 * 搜尋函數
	 * 設置搜尋條件 
	 * @param String position 
	 * @param String positionValue
	 * @param String positionKey
	 * @return empty
	 **/
	initSearchBuys:function(position,positionKey,positionValue){
		var positionVal = $("#buy-position").val();
		var positionArr = $("#buy-position").val().split(",");
		var positionKeyArr = $("#buy-position-key").val().split(",");
		var positionValueArr = $("#buy-position-value").val().split(",");
		var tmp = tmp1 = tmp2 =  '';
		if (positionVal.indexOf(position) == -1) {
			var position_val = positionVal +　position + ',';
			var position_key = $("#buy-position-key").val()+ positionKey + ',';
			var position_value = $("#buy-position-value").val() + positionValue + ',';
			$("#buy-position").val(position_val);
			$("#buy-position-key").val(position_key);
			$("#buy-position-value").val(position_value);
		} else {
			var posLen = positionArr.length;
			for (var i = 0; i < posLen; i++ ) {
				if (position == positionArr[i] || '' == positionArr[i]) {
					continue;
				} else {
					tmp += positionArr[i] + ',';
					tmp1 += positionKeyArr[i] + ',';
					tmp2 += positionValueArr[i] + ',';
				}
			}
			tmp += position + ',';
			tmp1 += positionKey + ',';
			tmp2 += positionValue + ',';
			$("#buy-position").val(tmp);
			$("#buy-position-key").val(tmp1);
			$("#buy-position-value").val(tmp2);
		}
		$("#hidPage").val("");
		//如果是廠牌，收起搜選欄
		if(position == 'brand') {
			$("#SearchByType").hide();	
		}
		//設置搜尋欄
		this.initViewSearchKey();
		//初始化搜尋條件
		this.initSearchBuysCondition();
	},
	/**
	 * 搜尋函數
	 * 設置左側搜尋條件 
	 * @param String position 
	 * @param String positionValue
	 * @param String positionKey
	 * @return empty
	 **/
	initLeftSearchBuys:function(position,positionKey,positionValue){
		var positionVal = $("#buy-left-position").val();
		var positionArr = $("#buy-left-position").val().split(",");
		var positionKeyArr = $("#buy-left-position-key").val().split(",");
		var positionValueArr = $("#buy-left-position-value").val().split(",");
		var tmp = tmp1 = tmp2 = step_list=  '';
		
		if (positionVal.indexOf(position) == -1) {
			var position_val = position + ',' + positionVal;
			var position_key = positionKey + ',' + $("#buy-left-position-key").val();
			var position_value = positionValue + ',' + $("#buy-left-position-value").val();
			$("#buy-left-position").val(position_val);
			$("#buy-left-position-key").val(position_key);
			$("#buy-left-position-value").val(position_value);
		} else {
			var posLen = positionArr.length;
			for (var i = 0; i < posLen; i++ ) {
				if (position == positionArr[i] || '' == positionArr[i]) {
					continue;
				} else {
					tmp += positionArr[i] + ',';
					tmp1 += positionKeyArr[i] + ',';
					tmp2 += positionValueArr[i] + ',';
				}
			}
			tmp += position + ',';
			tmp1 += positionKey + ',';
			tmp2 += positionValue + ',';
			$("#buy-left-position").val(tmp);
			$("#buy-left-position-key").val(tmp1);
			$("#buy-left-position-value").val(tmp2);
		}
		$("#hidPage").val("");
		//初始化搜尋條件
		this.initSearchBuysCondition();
	},
	
	/**
	 * 搜尋函數
	 * 初始化求購區搜尋條件 
	 * @access private 
	 * @return empty
	 **/
	initSearchBuysCondition:function(){
		var curent_search_arr = $("#buy-position").val().split(",");
		var curent_search_value_arr = $("#buy-position-value").val().split(",");
		var len = curent_search_arr.length;
		var tmp = '';
		for (var i = 0; i < len; i++) {
			if ('' == curent_search_arr[i]) {continue;}
			tmp += '&' + curent_search_arr[i] + '=' + curent_search_value_arr[i] ;
		}
		//左側搜尋欄
		var curent_search_arr = $("#buy-left-position").val().split(",");
		var curent_search_value_arr = $("#buy-left-position-value").val().split(",");
		var len = curent_search_arr.length;
		for (var i = 0; i < len; i++) {
			if ('' == curent_search_arr[i]) {continue;}
			tmp += '&' + curent_search_arr[i] + '=' + curent_search_value_arr[i] ;
		}
		
		$("#buy-position-search-condition").val(tmp);
		$("#hidSearchCondition").val(tmp);
		$("#hidSearchCondition").attr("_value",$("#hidSearchCondition").val());
	},
	
	/**
	 * 搜尋函數
	 * 設置求購區搜尋條件顯示搜尋欄 
	 * @access private 
	 * @return empty
	 **/
	initViewSearchKey:function(){
		var search_position = $("#buy-position").val().split(",");
		var search_position_key = $("#buy-position-key").val().split(",");
		var search_position_value = $("#buy-position-value").val().split(",");
		var len = search_position.length;
		var tmp = '';
		for (var i = 0; i < len; i++) {
			if ('' == search_position_key[i]) {continue;}
			tmp += '<span class="CFFF Blod floatLeft">'+search_position_key[i]+'</span><span class="step floatLeft">&nbsp;</span>';
		}
		$("#stepList").html(tmp);
	},
	
	/**
	 * 清空所有搜尋條件
	 * 設置求購區搜尋條件顯示搜尋欄 
	 * @access private 
	 * @return empty
	 **/
	initSearchBuy:function() {
		$("#buy-position").val("");
		$("#buy-position-key").val("");
		$("#buy-position-value").val("");
		$("#buy-left-position").val("");
		$("#buy-left-position-key").val("");
		$("#buy-left-position-value").val("");
		$("#stepList").html("");
		$("#buy-position-search-condition").val("");
		$("#hidSearchCondition").val("");
		$("#hidPage").val("");
	},
	
	/**
	 * 搜尋
	 *  
	 * @access private 
	 * @return empty
	 **/
	doBuySearch:function(){
		var page = ("" != $("#hidPage").val()) ? $("#hidPage").val() : '';
		$.ajax({
			url: 'search-buys.html',
			type: 'get',
			dataType: 'html',
			data: $("#buy-position-search-condition").val() + page + '&class=2&action=item',
			success:function(html){
				$("#ResultContentBody").empty();
				$("#ResultContentBody").append(html);
				searchbase.afterComplate();
			},
			beforeSend:function(){searchbase.beforeSend();}
		});
	},
	/**
	 * 
	 * 設置求購區搜尋欄返回
	 *
	 * @access private 
	 * @return empty
	 **/
	prevStepSearch:function(){		
		var positionValueArr = $("#buy-position-value").val().split(",");
		var positionKeyArr = $("#buy-position-key").val().split(",");
		var positionArr = $("#buy-position").val().split(",");
		var currentPosition = positionArr[positionArr.length -2];
		if ('brand' == currentPosition) {
			// 廠牌
			this._initBrand();
		} else if ('autoType' == currentPosition) {
			// 車身型式
			this._initType();
		} 
		$("#SearchByType").show();
		this.initViewSearchKey();
		this.initSearchBuysCondition();
		this.doBuySearch();
	},
	/**
	 * 
	 * 清空廠牌
	 *
	 * @access private 
	 * @return empty
	 **/
	_initBrand:function() {
		var positionValueArr = $("#buy-position-value").val().split(",");
		var positionKeyArr = $("#buy-position-key").val().split(",");
		var positionArr = $("#buy-position").val().split(",");
		var len = positionArr.length;
		var tmp = tmp1 = tmp2 = '';
		for (var i = 0; i < len; i++) {
			if( '' == positionArr[i]) { continue;}
			if ('brand' == positionArr[i]) {
				tmp += '';
				tmp1 += '';
				tmp2 += '';
			} else {
				tmp += positionArr[i] + ',';
				tmp1 += positionKeyArr[i] + ',';
				tmp2 += positionValueArr[i] + ',';
			}
		}
		$("#buy-position").val(tmp);
		$("#buy-position-key").val(tmp1);
		$("#buy-position-value").val(tmp2);
	},
	/**
	 * 
	 * 清空車身型式
	 *
	 * @access private 
	 * @return empty
	 **/
	_initType:function(){
		var positionValueArr = $("#buy-position-value").val().split(",");
		var positionKeyArr = $("#buy-position-key").val().split(",");
		var positionArr = $("#buy-position").val().split(",");
		var len = positionArr.length;
		var tmp = tmp1 = tmp2 = '';
		for (var i = 0; i < len; i++) {
			if( '' == positionArr[i]) { continue;}
			if ('autoType' == positionArr[i]) {
				tmp += '';
				tmp1 += '';
				tmp2 += '';
			} else {
				tmp += positionArr[i] + ',';
				tmp1 += positionKeyArr[i] + ',';
				tmp2 += positionValueArr[i] + ',';
			}
		}
		$("#buy-position").val(tmp);
		$("#buy-position-key").val(tmp1);
		$("#buy-position-value").val(tmp2);
		vlFillAuto();
	},
	
	/**
	 * 
	 * 搜尋數據未返回時的loading提示
	 *
	 * @access private 
	 * @return empty
	 **/
	beforeSend:function(){
		createLoadingLayer();
	},
	
	/**
	 * 
	 * 搜尋完成后設置loading消失
	 *
	 * @access private 
	 * @return empty
	 **/
	afterComplate:function() {
		$("#hidSearchCondition").attr("_value",$("#hidSearchCondition").val());
		unloadLoadingLayer();
	}
})
/**
 * 填補車身型式
 *
 *
 **/
function vlFillAuto() 
{
	//建立車身型式數組
	var _autotype_arr = [];
		_autotype_arr[1] = ['1','轎車/跑車'];
		_autotype_arr[2] = ['1','休旅車'];		
		_autotype_arr[3] = ['1','貨車'];
		_autotype_arr[5] = ['1','其他車型'];
		_autotype_arr[6] = ['1','吉普車'];
		_autotype_arr[7] = ['2','輕型機車'];
		_autotype_arr[8] = ['2','重型機車'];
		_autotype_arr[9] = ['3','大型重型機車'];
	var _html = '';
	for (var _index_key in _autotype_arr) {
		 _html += '<li><a href="javascript:;" id="searchFlag_a_'+_index_key+'" class="autoTypeSearchLink" rel="searchFlag_a" rev="'+_index_key+'"  name="autoType" title="'+_autotype_arr[_index_key][1]+'" onclick="vlFillBrand(this.rev);searchbase.Search(this.name,this.title,this.rev);" >'+ _autotype_arr[_index_key][1]+'</a></li>';
	}
	$("#searchFlag_a").html(_html);
	return true;
}

/**
 * 廠牌填充
 * 
 * 依賴于cacheData.js存在
 */
function vlFillBrand(r_auto_type) 
{
	var _auto_type = r_auto_type;
	var _html = '';
	var _hotKey = [20000004,20000010,20000015,20000017,20000021,20000024,20000026,20000029,20000031,20000033,20000035,20000042,20000048,20000050,20000051,20000056,20000059,20000066,20000067,20001587];
	
	if(_auto_type == '7' || _auto_type == '8' || _auto_type =='9') {
		//機車	
		for (var _brand_key in moto_brand) {
			var _value = moto_brand[_brand_key][0].substr(4,4);
			_html += '<li style="height:25px; line-height: 25px;width:18.5%"><a href="javascript:;" id="searchFlag_b'+moto_brand[_brand_key][0]+'" rev="'+Number(_value)+'" class="autoTypeSearchLink" rel="searchFlag_b" name="brand" title="'+moto_brand[_brand_key][1]+'" onclick="searchbase.Search(this.name,this.title,this.rev);">'+ moto_brand[_brand_key][1]+'</a></li>';
		}
	} else {
		//汽車
		for (var _brand_key in cache_brand) {
			var _value = cache_brand[_brand_key][0].substr(4,4);
			if (_hotKey.toString().search(cache_brand[_brand_key][0]) != '-1') {
				var _splitStr = [];
				_splitStr[0] = cache_brand[_brand_key][1].substr(0, 1);
				_splitStr[1] = cache_brand[_brand_key][1].substring(1, cache_brand[_brand_key][1].length);
				_html += '<li style="height:25px; line-height: 25px;width:18.5%"><a href="javascript:;" class="autoTypeSearchLink" rev="'+Number(_value)+'" rel="searchFlag_b" name="brand" title="'+_splitStr[0]+ _splitStr[1]+'" onclick="searchbase.Search(this.name,this.title,this.rev);"><strong>' + _splitStr[0] + '</strong>' + _splitStr[1] + '</a></li>';
			} else {
				_html += '<li style="height:25px; line-height: 25px;width:18.5%"><a href="javascript:;" class="autoTypeSearchLink" rev="'+Number(_value)+'" rel="searchFlag_b" name="brand" title="'+ cache_brand[_brand_key][1] +'" onclick="searchbase.Search(this.name,this.title,this.rev);">' + cache_brand[_brand_key][1] + '</a></li>';
			}
	}
	}
	$("#searchFlag_a").html(_html);
	return false;
}

/**
 * js 分頁
 * 
 * @param Int firstRow
 * @param Int totalRow
 **/
function jsPage(firstRow, totalRow)
{
	setY = 1;
	var searchConditionVal = $("#hidSearchCondition").val();
	var _searchConditionVal = $("#hidSearchCondition").attr("_value");
	if (_searchConditionVal == searchConditionVal) {
		paramVal = '&firstRow='+firstRow+'&totalRows=' + totalRow + '&' +  searchConditionVal;
	} else {
		paramVal = searchConditionVal;
	}
	$('#hidPage').val(paramVal);
	searchbase.doBuySearch();
}

/**
 *
 * 為求購物件推薦物件
 *@access private
 *@param r_buy_id 求購區物件
 *@return empty
 **/
 function submitPush(r_buy_id)
{
	document.location.href = "./buys-infos-"+ r_buy_id+".html?push=1"; 
}

/****************************************************
 *排序　　
 ×@param 出廠年份排序 | 預算排序 | 瀏覽次數 |更新
 ***************************************************/
/**
 *  排序
 *  @access private
 *  @param r_obj  //排序方式
 *  @return empty
 **/
function sortEvent(r_obj)
{
	// 變樣式
	var _v = $("#"+r_obj).attr("rev");
	var _objArr = [];
	_objArr[0] = 'sort_makedate';
	_objArr[1] = 'sort_price';
	_objArr[2] = 'sort_views';
	_objArr[3] = 'sort_visited';
	

	for (var _key in _objArr) {
		if (r_obj == _objArr[_key]) {
			$("#"+r_obj).attr("rel",'1');
			$("#"+r_obj).attr("rev", ('1' == _v) ? '0' : '1');
			_changeClass(r_obj,'');
		} else {
			$("#"+_objArr[_key]).attr("rel",'0');
			$("#"+_objArr[_key]).attr("rev",'0');
			_changeClass(r_obj,'sortNormal');
		}
	}
	// 設置
	var _sortkey = '';
	var _sortval = ('1' == _v) ? 'd' : 'a';
	switch (r_obj) {
		case 'sort_price':
			_sortkey = 'price';
			break;
		case 'sort_makedate':
			_sortkey = 'makedate';
			break;
		case 'sort_visited':
			_sortkey = 'shownums';
			break;
		case 'sort_views':
			_sortkey = 'modidate';
			break;
	}
	$("#sortKey").val(_sortkey);
	$("#sortVal").val(_sortval);
	//組合搜尋條件
	var _htmlVal = $("#buy-position-search-condition").val();
	_htmlVal = _htmlVal + "&sortkey="+ _sortkey +"&sortval="+ _sortval;
	$("#buy-position-search-condition").val(_htmlVal);
	$("#hidPage").val("");
}

/**
 * 樣式修改
 * @access private
 * @param r_obj 鏈接id
 * @param r_class 要改變的樣式
 **/
function _changeClass(r_obj,r_class)
{
	var _css = '';
	var _v = $("#"+r_obj).attr("rev");
	var _objArr = [];
	_objArr[0] = 'sort_makedate';
	_objArr[1] = 'sort_price';
	_objArr[2] = 'sort_views';
	_objArr[3] = 'sort_visited';
	// 鼠標放上去
	if ('' == r_class) {
		// 移除別的樣式
		for (var _key in _objArr) {
			if (r_obj == _objArr[_key]) {
				_css = ('1' == _v) ? 'sortDesc' : 'sortAsc';
				$("#"+r_obj+"> span").addClass(_css);
			} else {
				$("#"+_objArr[_key]+"> span").removeClass();
			}
		}
	} else {// 鼠標移走
		// 設置目前選中的樣式，并移除別的
		for (var _key in _objArr) {
			if ($("#"+_objArr[_key]).attr("rel") == '1') {
				if (r_obj == _objArr[_key]) {
					_css = ('0' == _v) ? 'sortDesc' : 'sortAsc';
				} else {
					_css = ('1' == _v) ? 'sortDesc' : 'sortAsc';
				}
			} else {
				_css = r_class;
			}
			$("#"+_objArr[_key]+"> span").removeClass();
			$("#"+_objArr[_key]+"> span").addClass(_css);
		}
	}
}
