﻿//初始值
var shapeVal = [];		//形状
var colorVal = [];		//颜色
var clarityVal =[];		//净度
var cutVal =[];			//切工
var polishVal =[];		//抛光
var symmetryVal =[];	//对称
var caratMinVal=0;		//重量最小值
var caratMaxVal=5;		//重量最大值
var priceMinVal=0;		//价格最小值
var priceMaxVal=500000;		//价格最大值
var moveObj;			//浮动点
var searchMode = "sliderMode"; //搜索模式
//新增地区和证书
var certVal = [];			//证书
var locationVal = [];	//地址

//绑定事件
function bindKeyEvent()
{
	var arr1= $.makeArray($('#Content_oneR_Be_AA a'));
	var arr2 = $.makeArray($('#Content_oneR_Be_ABB a'));
	var allANode = arr1.concat(arr2);
	$(allANode).bind('click',function(e){
		//TODO:根据ID来赋值
		var idStr = this.id;
		var group = idStr.substr(5,1);
		var index = idStr.substr(6);
		setSearchKey(group,index)
	});
	bindSliderEvent();
	bindTxtClickEvent();
}
//获得参数值
function setSearchKey(group,index){
	var indexArr = [index];
	switch(group)
	{
		case "1":
			shapeVal=checkElement(shapeVal,group,indexArr,index,'graphicsMode');
			break;
		case "2":
			colorVal=checkElement(colorVal,group,indexArr,index,'graphicsMode');
			break;
		case "3":
			clarityVal=checkElement(clarityVal,group,indexArr,index,'graphicsMode');
			break;
		case "4":
			cutVal=checkElement(cutVal,group,indexArr,index,'graphicsMode');
			break;
		case "5":
			polishVal=checkElement(polishVal,group,indexArr,index,'graphicsMode');
			break;
		case "6":
			symmetryVal=checkElement(symmetryVal,group,indexArr,index,'graphicsMode');
			break;
		case "7":
			certVal=checkElement(certVal,group,indexArr,index,'graphicsMode');
			break;
		case "8":
			locationVal=checkElement(locationVal,group,indexArr,index,'graphicsMode');
			break;

	}
}
//检测元素值是否存在
function checkElement(arr,group,value,index,type)
{
	var count = 0;
	$(value).each(function(item){
		var hasVal = $.inArray(value[item],arr);
		if(hasVal == -1){
			arr.push(value[item]);
		}else{
			arr.splice(hasVal,1);
		}
		count += hasVal;
	});
	if(type == "graphicsMode"){
		//alert(index)
		if(count >= 0)
			unselectItem(group,index);
		else
			selectItem(group,index);
	}else{
		if(count >= 0)
			unselectTxtItem(group,index);
		else
			selectTxtItem(group,index);
	}
	return arr;
}
//样式控制
function unselectItem(group,value)
{	
	var eid = "#hover"+group;
	eid=eid+value;
	$(eid).removeClass();
	if(searchMode == "sliderMode"){
	getSearchResult();}
}
function selectItem(group,value)
{
	var eid = "#hover"+group;
	eid=eid+value;
	//alert(eid.substr(1))
	$(eid).addClass(eid.substr(1));
	if(searchMode == "sliderMode"){
	getSearchResult();}
}
function unselectTxtItem(group,value)
{	
	var eid = "#txtHover"+group;
	eid=eid+value;
	$(eid).removeClass();
	getSearchResult();
}
function selectTxtItem(group,value)
{
	var eid = "#txtHover"+group;
	eid=eid+value;
	$(eid).addClass('selectTxtItem');
	getSearchResult();
}

//slider事件绑定
function bindSliderEvent(){
	$('.controlCon').bind('mousedown',function(e){
		$(this).bind('mousemove',movePointEvent);
		movePointEvent(e);
	});
	$('.controlCon').bind('mouseup',function(e){	
		getSearchResult();
		$(this).unbind('mousemove',movePointEvent);
		moveObj = null;
	});
	$('.controlCon').bind('mouseout',function(e){
		$(this).unbind('mousemove',movePointEvent);
		moveObj = null;
	});
}
function movePointEvent(e){
	var parentNode = $(e.target).parent();
	var offsetLeft = $(parentNode).offset().left;
	var distance = e.clientX - offsetLeft;
	//获取移动对象
	if(e.type == 'mousedown'){
		//moveObj是否存在? - 不存在
		moveObj = getMoveObj(e.clientX,parentNode,distance);
	}		
	var leftWidth = parentNode.children('.leftDrogue').width();
	var rightWidth = parentNode.children('.rightDrogue').width();
	if($(moveObj).attr('class') == 'leftDrogue'){
		distance = distance + 5;
		if((distance + rightWidth) > 237){
			distance = 237 - rightWidth;
		}
	}else{
		distance = 237 - distance;		
		distance = distance + 5;
		if((distance + leftWidth)>237){
			distance = 237 - leftWidth;
		}
	}
	//$('.valueShow:eq(0)').html(offsetLeft);
	$(moveObj).width(distance);
	//$('.valueShow:eq(1)').html(distance);
	if($(moveObj).width()<10){
		$(moveObj).width(10);
	}
	drogueUpdata(e.target);
}

function getMoveObj(posX,parentNode,distance){
	var obj;
	var leftDistance = distance - parentNode.children('.leftDrogue').position().left;
	var offsetLeft = parentNode.children('.leftDrogue').offset().left + parentNode.children('.leftDrogue').width() ;
	var rightDistance = distance - parentNode.children('.rightDrogue').position().left;
	var offsetRight = parentNode.children('.rightDrogue').offset().left;
	if(leftDistance >=0 && leftDistance <= 10 && posX < offsetLeft)
	{
		obj = parentNode.children('.leftDrogue');
	}else if(rightDistance >=0 && rightDistance <= 10 && posX > offsetRight){
		obj = parentNode.children('.rightDrogue');
	}else{
		if(posX < offsetLeft || distance < 108 ){
			obj = parentNode.children('.leftDrogue');
		}else{
			obj = parentNode.children('.rightDrogue');
		}
	}	
	return obj;
}
//更新游标数据
function drogueUpdata(con){
	var parentNode = $(con).parent();
	var leftDrogue = parentNode.children('.leftDrogue');
	var rightDrogue = parentNode.children('.rightDrogue');
	var minV = parentNode.children('.valueShow').children('.minV');
	var maxV = parentNode.children('.valueShow').children('.maxV');
	if(parentNode.attr('id') == "caratOut"){
		caratMinVal = (Math.round((leftDrogue.width()-10)*5*100/217))/100;
		caratMaxVal = (500 - Math.round((rightDrogue.width()-10)*5*100/217))/100;
		minV.html(caratMinVal);
		maxV.html(caratMaxVal);
	}else{
		priceMinVal = Math.round(Math.pow((leftDrogue.width()-10),2)*500000/Math.pow(217,2));
		priceMaxVal = 500000 - Math.round(Math.pow((rightDrogue.width()-10),2)*500000/Math.pow(217,2));
		minV.html(priceMinVal);
		maxV.html(priceMaxVal);
	}
}
//链接服务器获取数据
function getSearchResult(){
	var shapeValStr = "shapeVal=" + shapeVal.join(',');
	var colorValStr = "colorVal="+colorVal.join(',');
	var clarityValStr = "clarityVal="+clarityVal.join(',');
	var cutValStr = "cutVal="+cutVal.join(',');
	var polishValStr = "polishVal="+polishVal.join(',');
	var symmetryValStr = "symmetryVal="+symmetryVal.join(',');
	var caratValStr = "caratVal=" + caratMinVal + "," + caratMaxVal;
	var priceValStr = "priceVal=" + priceMinVal + "," + priceMaxVal;
	var certValStr = "certVal="+certVal.join(',');
	var locationValStr= "locationVal="+locationVal.join(',');
	var resultUrl = "http://dx/json/json.php?"+shapeValStr+"&"+colorValStr+"&"+clarityValStr+"&"+cutValStr+"&"+polishValStr+"&"+symmetryValStr+"&"+caratValStr+"&"+priceValStr+"&"+certValStr+"&"+locationValStr;
	alert(resultUrl);
}
//重新搜索
function research(){
	resetKey();
	getSearchResult();
}
function resetKey(){
	$('.leftDrogue,.rightDrogue').width(10);
	shapeVal = [];		//形状
	colorVal = [];		//颜色
	clarityVal =[];		//净度
	cutVal =[];			//切工
	polishVal =[];		//抛光
	symmetryVal =[];	//对称
	certVal = [];
	locationVal = [];
	caratMinVal=0;		//重量最小值
	caratMaxVal=5;		//重量最大值
	priceMinVal=0;		//价格最小值
	priceMaxVal=500000;		//价格最大值
	moveObj=null;			//浮动点
	$('.minV').html(0);
	$('#caratOut .maxV').html(caratMaxVal);
	$('#priceDrogueOut .maxV').html(priceMaxVal);
	$('#Content_oneR_Be_A a').removeClass();	
}
//切换模式
function switchMode(){
	if(searchMode == "sliderMode"){
		searchMode = "inputMode";
		$('#modeDesc').html('输入您的选择范围确认搜索');
		$('#Content_oneR_Be_B').hide();
		$('#searchWidthInput').show();
		$('#sliderMode').hide();
		$('#txtMode').show();
		$('#caratMinV').attr('value',caratMinVal);
		$('#caratMaxV').attr('value',caratMaxVal);
		$('#priceMinV').attr('value',priceMinVal);
		$('#priceMaxV').attr('value',priceMaxVal);
	}else{
		searchMode = "sliderMode";
		$('#modeDesc').html('点住调整棒，左右移动，尽情搜索！');
		$('.leftDrogue,.rightDrogue').width(10);
		$('.minV').html(0);
		$('#caratOut .maxV').html(5);
		$('#priceDrogueOut .maxV').html(500000);
		$('#Content_oneR_Be_B').show();
		$('#searchWidthInput').hide();
		$('#sliderMode').show();
		$('#txtMode').hide();
	}
}
//输入模式搜索
function searchWithIpt(){
	caratMinVal = $('#caratMinV').attr('value');
	caratMaxVal = $('#caratMaxV').attr('value');
	priceMinVal = $('#priceMinV').attr('value');
	priceMaxVal = $('#priceMaxV').attr('value');
	
	getSearchResult();
}
//文字模式切换
function switchSelectMode(i){
	switch(i){
		case 0:
			$('#tab1').show();
			$('#tab1_select').hide();
			$('#tab2').hide();
			$('#tab2_select').show();
			$('#Content_oneR_Be_A').hide();
			$('#Content_oneR_Be_B').hide();
			$('#searchWithTxt').show();
			$('#searchWithTxt dd').removeClass();
			break;
		case 1:
			$('#tab2').show();
			$('#tab2_select').hide();
			$('#tab1').hide();
			$('#tab1_select').show();
			$('#Content_oneR_Be_A').show();
			$('#Content_oneR_Be_B').show();
			$('#searchWithTxt').hide();
			break;
	}
	resetKey();
}
//绑定点击事件
function bindTxtClickEvent(){
	$('#searchWithTxt dd').bind('mouseover',function(e){
		$(this).css('color','#D70034');
		
	});
	$('#searchWithTxt dd').bind('mouseout',function(e){
		$(this).css('color','#666666');
	});
	$('#searchWithTxt dd').bind('click',function(e){
		var idStr = this.id;
		var group = idStr.substr(8,1);
		var index = idStr.substr(9);
		setSearchFromTxt(group,index);
	});
}
function setSearchFromTxt(group,index){
	switch(group){
		case "1":
			var value = new Array(index);
			shapeVal=checkElement(shapeVal,group,value,index,'txtMode');
			break;
		case "2":
			switch(index){
				case "0":
					caratMinVal = 0;
					caratMaxVal = 0.3;
					if($('#txtHover20').hasClass('selectTxtItem')){
						$("#txtHover20").removeClass('selectTxtItem');
					}else{
						$("#txtHover20").addClass('selectTxtItem');
					}
					$('#txtHover20').parent().children().not('#txtHover20').removeClass();
					break;
				case "1":
					caratMinVal = 0.3;
					caratMaxVal = 0.5;
					if($('#txtHover21').hasClass('selectTxtItem')){
						$("#txtHover21").removeClass('selectTxtItem');
					}else{
						$("#txtHover21").addClass('selectTxtItem');
					}
					$('#txtHover20').parent().children().not('#txtHover21').removeClass();
					break;
				case "2":
					caratMinVal = 0.5;
					caratMaxVal = 0.7;
					if($('#txtHover22').hasClass('selectTxtItem')){
						$("#txtHover22").removeClass('selectTxtItem');
					}else{
						$("#txtHover22").addClass('selectTxtItem');
					}
					$('#txtHover20').parent().children().not('#txtHover22').removeClass();
					break;
				case "3":
					caratMinVal = 0.7;
					caratMaxVal = 1;
					if($('#txtHover23').hasClass('selectTxtItem')){
						$("#txtHover23").removeClass('selectTxtItem');
					}else{
						$("#txtHover23").addClass('selectTxtItem');
					}
					$('#txtHover20').parent().children().not('#txtHover23').removeClass();
					break;
				case "4":
					caratMinVal = 1.0;
					caratMaxVal = 2.0;
					if($('#txtHover24').hasClass('selectTxtItem')){
						$("#txtHover24").removeClass('selectTxtItem');
					}else{
						$("#txtHover24").addClass('selectTxtItem');
					}
					$('#txtHover20').parent().children().not('#txtHover24').removeClass();
					break;
				case "5":
					caratMinVal = 2;
					caratMaxVal = 10;
					if($('#txtHover25').hasClass('selectTxtItem')){
						$("#txtHover25").removeClass('selectTxtItem');
					}else{
						$("#txtHover25").addClass('selectTxtItem');
					}
					$('#txtHover20').parent().children().not('#txtHover25').removeClass();
					break;
			}
			getSearchResult();
			break;
		case "3":
			switch(index){
				case "0":
					var value = ['0'];
					colorVal=checkElement(colorVal,group,value,index,'txtMode');
					break;
				case "1":
					var value = ['1'];
					colorVal=checkElement(colorVal,group,value,index,'txtMode');
					break;
				case "2":
					var value = ['2','3','4','5'];
					colorVal=checkElement(colorVal,group,value,index,'txtMode');
					break;
				case "3":
					var value = ['6','7'];
					colorVal=checkElement(colorVal,group,value,index,'txtMode');
					break;
			}
			break;
		case "4":
			switch(index){
				case "0":
					var value = ['0'];
					clarityVal=checkElement(clarityVal,group,value,index,'txtMode');
					break;
				case "1":
					var value = ['1'];
					clarityVal=checkElement(clarityVal,group,value,index,'txtMode');
					break;
				case "2":
					var value = ['2','3'];
					clarityVal=checkElement(clarityVal,group,value,index,'txtMode');
					break;
				case "3":
					var value = ['4','5'];
					clarityVal=checkElement(clarityVal,group,value,index,'txtMode');
					break;
				case "4":
					var value = ['6','7'];
					clarityVal=checkElement(clarityVal,group,value,index,'txtMode');
					break;
			}
			break;
		case "5":
			var value = new Array(index);
			cutVal=checkElement(cutVal,group,value,index,'txtMode');
			break;
		case "6":
			var value = new Array(index);
			polishVal=checkElement(polishVal,group,value,index,'txtMode');
			break;
		case "7":
			var value = new Array(index);
			symmetryVal=checkElement(symmetryVal,group,value,index,'txtMode');
			break;
		case "8":
			switch(index){
				case "0":
					priceMinVal = 0;
					priceMaxVal = 3000;
					if($('#txtHover80').hasClass('selectTxtItem')){
						$("#txtHover80").removeClass('selectTxtItem');
					}else{
						$("#txtHover80").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover80').removeClass();
					break;
				case "1":
					priceMinVal = 3000;
					priceMaxVal = 5000;
					if($('#txtHover81').hasClass('selectTxtItem')){
						$("#txtHover81").removeClass('selectTxtItem');
					}else{
						$("#txtHover81").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover81').removeClass();
					break;
				case "2":
					priceMinVal = 5000;
					priceMaxVal = 10000;
					if($('#txtHover82').hasClass('selectTxtItem')){
						$("#txtHover82").removeClass('selectTxtItem');
					}else{
						$("#txtHover82").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover82').removeClass();
					break;
				case "3":
					priceMinVal = 10000;
					priceMaxVal = 20000;
					if($('#txtHover83').hasClass('selectTxtItem')){
						$("#txtHover83").removeClass('selectTxtItem');
					}else{
						$("#txtHover83").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover83').removeClass();
					break;
				
				case "4":
					priceMinVal = 20000;
					priceMaxVal = 50000;
					if($('#txtHover84').hasClass('selectTxtItem')){
						$("#txtHover84").removeClass('selectTxtItem');
					}else{
						$("#txtHover84").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover84').removeClass();
					break;
				case "5":
					priceMinVal = 50000;
					priceMaxVal = 100000;
					if($('#txtHover85').hasClass('selectTxtItem')){
						$("#txtHover85").removeClass('selectTxtItem');
					}else{
						$("#txtHover85").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover85').removeClass();
					break;
				case "6":
					priceMinVal = 100000;
					priceMaxVal = 500000;
					if($('#txtHover86').hasClass('selectTxtItem')){
						$("#txtHover86").removeClass('selectTxtItem');
					}else{
						$("#txtHover86").addClass('selectTxtItem');
					}
					$('#txtHover80').parent().children().not('#txtHover86').removeClass();
					break;									
			}
			getSearchResult();
			break;		
			case "9":
                var value = new Array(index);
                certVal=checkElement(certVal,group,value,index,'txtMode');
			break;
			case "0":
                var value = new Array(index);
               locationVal=checkElement( locationVal,group,value,index,'txtMode');
			break;	
	}
}



