/*
	浮动选择框 2009.7.13 628557@qq.com
	使用weebox、jquery
	selftobj 文本框的对象,返回的文字数据写入这里
    outobj 输出逗号隔开的数字数据 例如 ,1,2,3,
	Arr 显示数组
	tips 标题提示
	selectedtips 已经选择的项目提示
	maxnum 最多选择数量，0为不限制
	selectbig 是否可以选择大类 为空或者是true表示可以选
*/



var float_div_Arr=new Array(); 
var selectbigclass;

function loaddiv(selfobj,outobj,Arr,tips,selectedtips,maxnum,selectbig)
{

	var i;
	var temp;
	var shtml='';
	var defaultItem='';
	var defaultArr=new Array();
	var selected_id = ''; // 初始空值
	var defaultval; //默认选中值
	var item='';

	//判断一级分类是否可以选中
	if(typeof(selectbig)=="undefined")
			selectbigclass=true;
	else
			selectbigclass=selectbig;

		
	$.weeboxs.open('正在加载...',{
		title : tips,
		showCancel: true, 
		width : 750,
		onok:function(box){ //点击确定
			selected_id = ','; //选中的编号
			selected_name=''; //选中的名称
			$("input[name='checkeditem']").each( function() {
				if ($(this).is(':checked')) {
					selected_id += $(this).val()+ "," ;
					selected_name += $(this).siblings().html()+",";
				}
			});
			selected_name = selected_name.replace(/,$/, ""); // 替换掉结尾的,
			if(selected_id.replace(/\d/g,"").length>maxnum+1)
			{
				alert("您选择的项目超过了 "+maxnum+"个");
				return false;
			}
			else
			{
				$("#"+outobj).val(selected_id);

				selfobj.value=selected_name;
			}
			box.close();//增加事件方法后需手动关闭弹窗
			}
		}
		);
	
	float_div_Arr=Arr;  //将数组临时保存起来

	if(Arr[0].length>1) //二维或者更多维数组
	{
		shtml='<p id="SelectDiv" align=left><strong>请选择：</strong><select id="selectObj" onchange="changeselect(this,float_div_Arr,selectbigclass,'+maxnum+');">';
		for(i=0;i<Arr.length;i++)
		{
			temp=Arr[i][0].split("$");
			shtml+="<option value="+temp[1]+">"+temp[0]+"</option>";
		}
			//defaultArr.push(Arr[0]);
			shtml+='</select></p>';

			if(selectbigclass)
			defaultItem='<span id="bigtip" style="padding-left:10px"><input id=lists'+Arr[0][0].split("$")[1]+' onclick=selectbig(this) type=checkbox value="'+Arr[0][0]+'"> <label title='+Arr[0][0].split("$")[0]+' for=lists'+Arr[0][0].split("$")[1]+'><strong>'+Arr[0][0].split("$")[0]+'</strong></label></span> <span style="color:red;">(选择此大类，将包括以下所有小类)</span>';
			else
			defaultItem='<span id="bigtip" style="padding-left:10px"><input id=lists'+Arr[0][0].split("$")[1]+' onclick="alert(\'不能选择大类\');return false;" type=checkbox value="'+Arr[0][0]+'"> <label title='+Arr[0][0].split("$")[0]+' for=lists'+Arr[0][0].split("$")[1]+'><strong>'+Arr[0][0].split("$")[0]+'</strong></label></span>';
	}
	else
	{
		defaultArr=Arr;
	}
	

	//生成默认数据

		defaultItem+='<ul id="smallitem">';

	for(i=0;i<defaultArr.length;i++)
	{
		
		temp=defaultArr[i][0].split("$");
		defaultItem+='<li><input name="smallid" id=listp'+temp[1]+' onclick="checkOver(this,\''+defaultArr[i]+'\','+maxnum+');" type=checkbox> <label title='+temp[0]+' for=listS'+temp[1]+' title='+temp[0]+'>'+temp[0]+'</label></li>';
	}
		defaultItem+='</ul>';
			
		//读取默认值
		defaultval=document.getElementById(outobj).value;
		defaultval=","+defaultval+",";

		if (defaultval!="")
		{
			for(var m=0;m<Arr.length;m++)
			{

				if(typeof(Arr[m])=="object") 
				{
					for (var n=0;n<Arr[m].length;n++)
					{
						temp=Arr[m][n].split("$");

							if(defaultval.indexOf(","+temp[1]+",")!=-1)
							{

								item=item +'<li><input name="checkeditem" id=listo_'+temp[1]+' onclick="delstr(this,'+temp[1]+',0)"  value='+temp[1]+' type=checkbox checked> <label title='+temp[0]+' for=listo_'+temp[1]+'>'+temp[0]+'</label></li>';
							}


					}
				}
				else
				{
						temp=Arr[m].split("$");
						item = item + '<li><input name="checkeditem" id=listo_'+temp[1]+' onclick="delstr(this,'+temp[1]+',0)"  value='+temp[1]+' type=checkbox checked> <label title='+temp[0]+' for=listo_'+temp[1]+'>'+temp[0]+'</label></li>'
				}


			}
		}

		shtml+='<div id=listDiv style="float:left"><hr style="width:750px;" color=#dddddd size=1><p id="defaultitem">'+defaultItem+'</p>';
		//输出二级内容
		shtml+='</div><div style="text-align:left;margin-left:5px;float:left;"><p><hr style="width:750px;" color=#dddddd size=1></p><p style="width:700px;"><strong>'+selectedtips+'：</strong></p><ul id=checkDiv>'+item+'</ul></div></p><hr color=#dddddd size=1 style="width:750px;" >';
	$("#dialog-content").html(shtml);

	if(document.getElementById("selectObj"))
		changeselect(document.getElementById("selectObj"),float_div_Arr,selectbigclass,maxnum)
}

function checkOver(s_obj,v,maxnum)
{
	if(s_obj.checked === true){
		selected_id = ','; //选中的编号
		selected_name=''; //选中的名称
		$("input[name='checkeditem']").each( function() {
			if ($(this).is(':checked')) {
				selected_id += $(this).val()+ "," ;
				selected_name += $(this).siblings().html()+",";
			}
		});
		selected_name = selected_name.replace(/,$/, ""); // 替换掉结尾的,
		if(selected_id.replace(/\d/g,"").length>maxnum)
		{
			alert("您选择的项目超过了 "+maxnum+"个");
			s_obj.checked = false;
			return false;
		}
	}
	v=v.split("$");
	if(s_obj.checked)
	{
		//添加内容
		if($("#checkDiv").html().indexOf("listo_"+v[1])==-1)
		{
			$("#checkDiv").append('<li><input name="checkeditem" id=listo_'+v[1]+' onclick="delstr(this,'+v[1]+',0)"  value='+v[1]+' type=checkbox checked> <label title='+v[0]+' for=listo_'+v[1]+'>'+v[0]+'</label></li>');
		}
	}
	else
	{
		//移除内容
		del_obj=document.getElementById("listo_"+v[1]);
		if(del_obj)
		{
			delstr(del_obj,v[1]);
		}
	}
}


//选择或者取消选择大类的
//选择大类：子类checkbox设置为不可用，已选择列表里显示大类名称及对应checkbox
//取消选择大类：子类checkbox设置为可用，已选择列表里删除大类名称及对应的checkbox
function selectbig(s_obj)
{
var v;
var del_obj;
	$("input[name='smallid']").attr('checked',s_obj.checked?true:false); //全选或者取消全选
	$("input[name='smallid']").attr('disabled',s_obj.checked?'disabled':'');//控制子类checkbox是否可用
	//checkDiv 中内容
	v=s_obj.value.split("$");
	if(s_obj.checked)
	{
		//添加内容
		if($("#checkDiv").html().indexOf("listo_"+v[1])==-1)
		{
			$("#checkDiv").append('<li><input id=listo_'+v[1]+' onclick="delstr(this,'+v[1]+',1)" value='+v[1]+' type=checkbox checked name="checkeditem"> <label  title='+v[0]+' for=listo_'+v[1]+'>'+v[0]+'</label></li>');
		}
	}
	else
	{
		//移除内容
		del_obj=document.getElementById("listo_"+v[1]);
		if(del_obj)
		{
			delstr(del_obj,v[1],1);
		}
	}
}


function delstr(s_obj,elemid,f)
{
//兼容firefox处理
		 try
		 {
			s_obj.parentNode.removeNode(true); //不兼容firefox
		 }
		 catch(e)
		{
			s_obj.parentNode.parentNode.removeChild(s_obj.parentNode);	
		}
		//清理掉已选中框
		if(document.getElementById("lists"+elemid))
		{
			document.getElementById("lists"+elemid).checked=false;
		}
		//重置一些选框状态
	

if(f)
{
	//大类
	if(document.getElementById('lists'+elemid))
	{
		$("input[name='smallid']").attr('checked',false);
		$("input[name='smallid']").attr('disabled','');
	}

}
else
	{
		//小类

		if(document.getElementById('listp'+elemid))
		{
			
			$("#listp"+elemid).attr('checked',false);
		}
	}

}


/*
	下拉列表改变时，更新大类以及小类的内容
	触发此函数的一定是多维数组
*/

function changeselect(s_obj,Arr_,selectbigclass,maxnum)
{

 var item;
 var shtml='';
 var tempArr=new Array();
 var i=0;
 for (item in Arr_)
	{
		if(Arr_[item][0].split("$")[1]==s_obj.value)
		{
			tempArr=Arr_[item];
			break;
		}
	}
  //输出大类

  if(selectbigclass)
  $("#bigtip").html('<input id=lists'+tempArr[0].split("$")[1]+' onclick=selectbig(this) type=checkbox value="'+tempArr[0]+'"> <label  for=lists'+tempArr[0].split("$")[1]+' title='+tempArr[0].split("$")[0]+'><strong>'+tempArr[0].split("$")[0]+'</strong></label>');//输出大类 
  else
  $("#bigtip").html('<input id=lists'+tempArr[0].split("$")[1]+' onclick="alert(\'不能选择大类\');return false;" type=checkbox value="'+tempArr[0]+'"> <label  for=lists'+tempArr[0].split("$")[1]+' title='+tempArr[0].split("$")[0]+'><strong>'+tempArr[0].split("$")[0]+'</strong></label>');//输出大类 	 
//输出小类
for(i=1;i<tempArr.length;i++)
	{
		shtml+='<li><input name="smallid" id=listp'+ tempArr[i].split("$")[1]+' onclick="checkOver(this,\''+tempArr[i]+'\','+maxnum+');" type=checkbox> <label for=listS'+tempArr[i].split("$")[1]+' title='+tempArr[i].split("$")[0]+'>'+tempArr[i].split("$")[0]+'</label></li>';	
	}
 $("#smallitem").html(shtml); 
}


//下拉框默认值
//sourceObjArr  保存有值的元素id数组
//destObjArr 显示结果的元素id数组
//ArrDataArr  对应的数组构成的数组
function setdefault(sourceObjArr,destObjArr,ArrDataArr)
{
	var m,n,p;
	var sourceObjArr_tmp=sourceObjArr.split(",");
	var destObjArr_tmp=destObjArr.split(",");
	var sourceElementVal;
	var item;
	var outstr;
	for(m=0;m<sourceObjArr_tmp.length;m++)
	{
		outstr="";
		//读取每个元素的值
		sourceElementVal=$("#"+sourceObjArr_tmp[m]).val().split(",");
		for(n=0;n<sourceElementVal.length;n++)
		{

			if(!isNaN(parseInt(sourceElementVal[n])))
			{		
				//遍历数组，目标元素写入值
					
					 for (item in ArrDataArr[m])
					{
						
						for(p=0;p<ArrDataArr[m][item].length;p++)
						{
							if(ArrDataArr[m][item][p].split("$")[1]==parseInt(sourceElementVal[n]))
							{
						
								outstr+=","+ArrDataArr[m][item][p].split("$")[0];	
								break;
							}
						}
					}

			}
		}
		outstr=outstr.slice(1);
		var t = document.getElementById(destObjArr_tmp[m]);
		if(t) t.value=outstr;
//		else alert(destObjArr_tmp[m]);
	}
}

function setcondition(sourceObjArr,destId,ArrDataArr)
{
	var m,n,p;
	var sourceObjArr_tmp=sourceObjArr.split(",");
	var destStr = '';
	var sourceElementVal;
	var item;
	var outstr;
	for(m=0;m<sourceObjArr_tmp.length;m++)
	{
		outstr="";
		//读取每个元素的值
		sourceElementVal=$("#"+sourceObjArr_tmp[m]).val().split(",");
		for(n=0;n<sourceElementVal.length;n++)
		{

			if(!isNaN(parseInt(sourceElementVal[n])))
			{		
				//遍历数组，目标元素写入值
					
					 for (item in ArrDataArr[m])
					{
						
						for(p=0;p<ArrDataArr[m][item].length;p++)
						{
							if(ArrDataArr[m][item][p].split("$")[1]==parseInt(sourceElementVal[n]))
							{
						
								outstr+="+"+ArrDataArr[m][item][p].split("$")[0];	
								break;
							}
						}
					}
			}
		}

		outstr=outstr.slice(1);
		
		if(destStr == ''){
			destStr = outstr;
		}else{
			if(outstr != ''){
				destStr = destStr+ '+' +outstr;
			}
			
		}
	
	}
	if(destStr !=''){
		destStr = '当前搜索条件：“<strong>'+destStr + '</strong>” ';
	}
	$('#'+destId).html(destStr);
	
}



var div_Arr = new Array(); 
var _type = "";
function redirectWindow(Arr, tips, keep_uri, type, w){
	div_Arr=Arr;  //将数组临时保存起来
	_type = type ? type : "citytype";
	w = w ? w : 600;
	keep_uri = !keep_uri ? 0 : 1;

	$.weeboxs.open('正在加载...',{
		title : tips,
		width : w,
		showButton : true,
		showCancel : true,
		showOk:false,
		cancelBtnName:'关闭窗口'
		});

	var temp;
	var shtml = '<p id="SelectDiv" align=left><strong>请选择：</strong>';
	shtml += '<select onchange="change_select(this, ' + keep_uri + ');">';
	for(i=0; i<Arr.length; i++){
		temp = Arr[i][0].split("$");
		shtml += "<option value="+temp[1]+">"+temp[0]+"</option>";
	}
	shtml += '</select></p>';
	shtml+='<div style="text-align:left;margin-left:5px;float:left;"><p><hr style="width:'+w+'px;" color=#dddddd size=1></p><p style="width:'+w+'px;"></p><ul id="_smallitem"></ul></div></p>';
	$("#dialog-content").html(shtml);
}

function change_select(sel, keep_uri){
	var tempArr = new Array();
	var temp = "";
	for(i=0; i<div_Arr.length; i++){
		temp = div_Arr[i][0].split("$");
		if(temp[1]==sel.value) tempArr = div_Arr[i];
	}
	if(!tempArr) return false;

	var shtml = '';
	for(i=1; i<tempArr.length; i++){
		shtml+="<li style='padding:5px 0;'><a href='/goto.php?type="+_type+"&id=" + tempArr[i].split("$")[1] + "&keep_uri=" + keep_uri + "' target='_blank'>" + tempArr[i].split("$")[0] + "</a></li>";	
	}
	$("#_smallitem").html(shtml);
}