
var SelectItems = {
	// 类型，返回对象，最多允许选项数，选项级数
	init : function(SType,ReturnObj,MaxNum,Levels){
		//显示窗口效果处理
		boxAlpha();
		SelectItems.SType=SType;		//类型
		switch (SelectItems.SType)
		{
			//selecttype 1,行业 2 职位 3专业 4地区 5学历
			case "industry":
				SelectItems.Title="行业"
				SelectItems.TypeArr=Industry		//读取项目
				break
			case "job":
				SelectItems.Title="职能类别"
				SelectItems.TypeArr=Job			//读取项目
				break
			case "professional":
				SelectItems.Title="专业"
				SelectItems.TypeArr=Professional	//读取项目
				break
			case "diqu":
				SelectItems.Title="地区"
				SelectItems.TypeArr=fun_a		//读取项目
				break		
			case "xueli":
				SelectItems.Title="学历"
				SelectItems.TypeArr=fun_a		//读取项目
				break
		}
		SelectItems.ReturnObjVal=document.getElementById(ReturnObj);	//返回值对象
		SelectItems.ReturnObjText=document.getElementById("btn_"+ReturnObj);	//返回文本对象
		
		SelectItems.MaxNum=MaxNum;		//允许最多选择项目
		SelectItems.Levels=Levels;
		
		SelectItems.SelectedArr = new Array();	//初始化已选择项目
		if ($(SelectItems.ReturnObjVal).val()!="")	//如果有已选项目
			SelectItems.SelectedArr = $(SelectItems.ReturnObjVal).val().split(",");

		if (SelectItems.MaxNum==1)		//如果最大允许选项等于1则调用单项选择模式
		{
			var dragHtml ='<div id="ItemsAlpha">';			//职能类别
				dragHtml+='		<div id="ItemsList"></div>';	//职能类别列表
				dragHtml+='</div>';
			$('#drag_h').html('<b>请选择' + SelectItems.Title + '</b><span onclick="boxAlpha()">关闭</span>');
			$('#drag_con').html(dragHtml);
			SelectItems.Show();
		}
			
		else
		{
			var dragHtml ='<div id="ItemsAlpha">';			//已选项目
				dragHtml+='		<dl id="ItemsSelected"><dt>已选' + SelectItems.Title + '：</dt><dd></dd></dl>';
				dragHtml+='		<div id="ItemsList"></div>';	
				dragHtml+='</div>';
			$('#drag_h').html('<b>请选择' + SelectItems.Title + '（您最多能选择' + SelectItems.MaxNum + '项）</b><span onclick="SelectItems.confirm()">确定</span>');
			$('#drag_con').html(dragHtml);	
			SelectItems.Show();		
		}
		//层显示位置
		draglayer();

	},
	Show : function(){
		var output='',flag,output2='';
		if (SelectItems.Levels==1)
		{
			for (var i in SelectItems.TypeArr){
				flag=in_array(i,SelectItems.SelectedArr)?' chkON':'';
				output+='<li class="Items' + i + flag + '" onclick="SelectItems.Chk(\''+i+'\')">'+SelectItems.TypeArr[i]+'</li>';
			}
			for (var i in SelectItems.SelectedArr){
				output2+='<li class="Items' + SelectItems.SelectedArr[i] + ' chkON" onclick="SelectItems.Chk(\''+SelectItems.SelectedArr[i]+'\')">'+SelectItems.TypeArr[SelectItems.SelectedArr[i]]+'</li>';
			}				
		}
		else
		{
			for(var i in SelectItems.SelectedArr){
				
				output2+='<li class="Items'+SelectItems.SelectedArr[i]+' chkON" onclick="SelectItems.Chk(\''+SelectItems.SelectedArr[i]+'\')">'+SelectItems.TypeArr[SelectItems.SelectedArr[i]]+'</li>';
			}
			$('#ItemsSelected dd').html(output2);
  			for (var i in SelectItems.TypeArr){
				//if(i.substring(2)=='00'){
				if(i.length==2){
					output+='<li onclick="SelectItems.SubLayer(\''+i+'\')">'+SelectItems.TypeArr[i]+'</li>';
				}
			}
		}
		$('#drag').width('670px');
		$('#ItemsList').html('<ul>'+output+'</ul>');
		$('#ItemsSelected dd').html(output2);

		// 鼠标悬停变色
		$('#ItemsAlpha li').hover(function(){$(this).addClass('over')},function(){$(this).removeClass('over')});
		// 点击弹出子菜单
		$('#ItemsList li').click(function(e){$("#sublist").css({top:e.pageY-4,left:e.pageX-4}).hover(function(){$(this).show()},function(){$(this).hide()})})
	},
	// 子职位 悬浮菜单
	SubLayer : function(id){
		var output='',width,flag;
		var myid=id.substr(0,2);
		var len=0;
		for (var i in SelectItems.TypeArr){
			if(i.substr(0,2)==myid){
				flag=in_array(i,SelectItems.SelectedArr)?' chkON':'';
				//if(i.substr(2)=='00'){
				if(i.length==2){
					output+='<h4 onclick="SelectItems.Chk(\''+id+'\')"><a href="javascript:" class="Items' + id + flag +'">'+SelectItems.TypeArr[id]+'</a></h4>';
				}else{
					output+='<li><a href="javascript:" class="Items' + i + flag +'" onclick="SelectItems.Chk(\''+i+'\')">'+SelectItems.TypeArr[i]+'</a></li>';
					len++;
				}
			}
		}
		width=len>10?440:220;
		output='<div id="sub_Items"><ul style="width:'+width+'px">'+output+'</ul></div>';
		$("#sublist").html(output).show();
	},
	Chk : function(id){
		if (SelectItems.MaxNum==1)
		{
			$(SelectItems.ReturnObjText).val(SelectItems.TypeArr[id]);
			$(SelectItems.ReturnObjVal).val(id);
			boxAlpha();			
		}
		else
		{
			if(!in_array(id,SelectItems.SelectedArr)){
				//if(id.substr(2)=='00'){	// 选中父类清除子类
				if(id.length==2){
					for (var i in SelectItems.TypeArr){
						if(i.substr(0,2)==id.substr(0,2)){
							if(in_array(i,SelectItems.SelectedArr)) this.del(i);
						}
					}
				}else{	// 选中子类清除父类
					var myid;
					myid=id.substr(0,2)+'00';
					myid=id.substr(0,2);
					if(in_array(myid,SelectItems.SelectedArr)) this.del(myid);
				};
                	
				if(SelectItems.SelectedArr.length<SelectItems.MaxNum){
					SelectItems.SelectedArr[SelectItems.SelectedArr.length]=id;
					var html='<li class="Items'+id+'" onclick="SelectItems.Chk(\''+id+'\')">'+SelectItems.TypeArr[id]+'</li>';
					$('#ItemsSelected dd').append(html);
					$('.Items'+id).addClass('chkON');
					$('#ItemsSelected li').hover(function(){$(this).addClass('over')},function(){$(this).removeClass('over')});
				}else{
					alert('您最多能选择' + SelectItems.MaxNum + '项');
					return false;
				}
			}else{
				this.del(id)
			}      
		}
	},
	del : function(id){
		for (var i in SelectItems.SelectedArr){
			if(SelectItems.SelectedArr[i]==id) SelectItems.SelectedArr.splice(i,1);;
		}
		$('#ItemsSelected .Items'+id).remove();
		$('.Items'+id).removeClass('chkON');
	},
	// 确定
	confirm : function(){
		var funStr='',fun_Id='';
		for(var i in SelectItems.SelectedArr){
			funStr+=','+SelectItems.TypeArr[SelectItems.SelectedArr[i]];
		}
		funStr=funStr.substring(1)?funStr.substring(1):'请选择'+SelectItems.Title ; 
		$(SelectItems.ReturnObjText).val(funStr);
		$(SelectItems.ReturnObjVal).val(SelectItems.SelectedArr);
		boxAlpha();
	}

}

var SelectArea = {
	// 请选择地区
	init : function(ReturnObj,MaxNum){
		boxAlpha();

		SelectArea.ReturnObjVal=document.getElementById(ReturnObj);	//返回值对象
		SelectArea.ReturnObjText=document.getElementById("btn_"+ReturnObj);	//返回文本对象

		SelectArea.CityArr=City
		SelectArea.MaxNum=MaxNum;		//允许最多选择项目
		
		SelectArea.SelectedArr = new Array();	//初始化已选择项目
		if ($(SelectArea.ReturnObjVal).val()!="")	//如果有已选项目
			SelectArea.SelectedArr = $(SelectArea.ReturnObjVal).val().split(",");

		if (SelectArea.MaxNum==1)		//如果最大允许选项等于1则调用单项选择模式
		{
			var dragHtml ='<div id="AreaAlpha">';		
				dragHtml+='		<div id="maincity"></div>';	//主要城市
				dragHtml+='		<div id="allProv"></div>';	//所有省市
				dragHtml+='</div>';
			$('#drag_h').html('<b>请选择地区</b><span onclick="boxAlpha()">关闭</span>');
			$('#drag_con').html(dragHtml);
			SelectArea.Show();
		}
		
		else
		{
			var dragHtml ='<div id="AreaAlpha">';		
				dragHtml+='		<dl id="AreaSelected"><dt>已选地点：</dt><dd></dd></dl>';
				dragHtml+='		<div id="maincity"></div>';//主要城市
				dragHtml+='		<div id="allProv"></div>';	//所有省市
				dragHtml+='</div>';
			$('#drag_h').html('<b>请选择地区（您最多能选择' + SelectArea.MaxNum + '项）</b><span onclick="SelectArea.confirm()">确定</span>');
			$('#drag_con').html(dragHtml);
			SelectArea.Show();		
		}
		//层显示位置
		draglayer();
	},
	Show : function(){
		var k=0,output='',output2='',arr,area,select_ed;
		var Div		= new Array('maincity','allProv');
		var Title	= new Array('<h4>重庆各区县</h4>','<h4>所有省份：</h4>');
		var LoopArr	= new Array(maincity,allprov);

		for(var i in SelectArea.SelectedArr){
			output2+='<li class="Area'+SelectArea.SelectedArr[i]+' chkON" onclick="SelectArea.Chk(\''+SelectArea.SelectedArr[i]+'\')">'+SelectArea.CityArr[SelectArea.SelectedArr[i]]+'</li>';
		}
		$('#AreaSelected dd').html(output2);
		while(k<=1){
			output	= Title[k];
			arr	= LoopArr[k]
			for (var i in arr){
				area=arr[i][0];
				output+='<dl><dt>'+area+'</dt><dd>';
				for (var j in arr[i][1]){
					id1=arr[i][1][j];
					if(k==0){
						select_ed=in_array(id1,SelectArea.SelectedArr)?' chkON':'';
						output+='<li class="Area'+id1+select_ed+'" onclick="SelectArea.Chk(\''+id1+'\')">'+SelectArea.CityArr[id1]+'</li>';
					}else{
						if(area=='其它') output+='<li class="Area'+id1+'" onclick="SelectArea.Chk(\''+id1+'\')">'+SelectArea.CityArr[id1]+'</li>';
						else output+='<li onclick="SelectArea.SubLayer(\''+id1+'\')">'+SelectArea.CityArr[id1]+'</li>';
					}
				}
				output+='</dd></dl>';
			}
			$(document.getElementById(Div[k])).html(output);
			k++;
		}

		$('#drag').width('580px');
		// 鼠标悬停变色
		$('#AreaAlpha li').hover(function(){$(this).addClass('over')},function(){$(this).removeClass('over')});
		// 点击弹出子菜单
		$('#allProv li').click(function(e){$("#sublist").css({top:e.pageY-4,left:e.pageX-4}).hover(function(){$(this).show()},function(){$(this).hide()})})
	},
	// 所有省份 下拉 城市菜单
	SubLayer : function(id){
		var output='',width,select_ed,key;
		select_ed=in_array(id,SelectArea.SelectedArr)?' chkON':'';
		var arr=getAreaIDs(id);
		width=Math.ceil(Math.sqrt(arr.length-1))*60;
		output+='<ul style="width:'+width+'px"><h4 onclick="SelectArea.Chk(\''+id+'\')">';
		output+='<a href="javascript:" class="Area' + id + select_ed +'">'+SelectArea.CityArr[id]+'</a></h4>';

		for (var i=1;i<arr.length;i++){
			key=arr[i];
			select_ed=in_array(key,SelectArea.SelectedArr)?' chkON':'';
			output+='<li><a href="javascript:" class="Area' + key + select_ed +'" onclick="SelectArea.Chk(\''+key+'\')">'+SelectArea.CityArr[key]+'</a></li>';
		}
		output='<div id="sub_Area" >' + output + '</ul></div>';
		$("#sublist").html(output).show();
		
	},
	Chk : function(id){
		if (SelectArea.MaxNum==1)
		{
			$(SelectArea.ReturnObjText).val(SelectArea.CityArr[id]);
			$(SelectArea.ReturnObjVal).val(id);
			boxAlpha();			
		}
		else
		{
			if(!in_array(id,SelectArea.SelectedArr)){
				var subArea,myid;
				if(id.substr(2)=='0000'){	// 选中父类清除子类
					subArea=getAreaIDs(id);
					for(var i in subArea){
						if(in_array(subArea[i],SelectArea.SelectedArr)) this.del(subArea[i]);
					}
				}else{	// 选中子类清除父类
					myid=id.substr(0,2)+'0000';
					if(in_array(myid,SelectArea.SelectedArr)) this.del(myid);
				};
				if(SelectArea.SelectedArr.length<SelectArea.MaxNum){
					SelectArea.SelectedArr[SelectArea.SelectedArr.length]=id;
					var html='<li class="Area'+id+'" onclick="SelectArea.Chk(\''+id+'\')">'+SelectArea.CityArr[id]+'</li>';
					$('#AreaSelected dd').append(html);
					$('.Area'+id).addClass('chkON');
					$('#AreaSelected li').hover(function(){$(this).addClass('over')},function(){$(this).removeClass('over')});
				}else{
					alert('您最多能选择' + SelectArea.MaxNum + '项');
					return false;
				}
			}else{
				this.del(id);
			}
		}
	},
	del : function(id){
		for (var i in SelectArea.SelectedArr){
			if(SelectArea.SelectedArr[i]==id) SelectArea.SelectedArr.splice(i,1);;
		}
		$('#AreaSelected .Area'+id).remove();
		$('.Area'+id).removeClass('chkON');
	},
	// 确定
	confirm : function(){
		var areaStr='';
		for(var i in SelectArea.SelectedArr){
			areaStr+=','+SelectArea.CityArr[SelectArea.SelectedArr[i]];
		}
		areaStr=areaStr.substring(1)?areaStr.substring(1):'请选择地区'; 
		$(SelectArea.ReturnObjText).val(areaStr);
		$(SelectArea.ReturnObjVal).val(SelectArea.SelectedArr);
		boxAlpha();

	}

}

// 是否在数组内
function in_array(needle, haystack) {
	if(typeof needle == 'string' || typeof needle == 'number') {
		for(var i in haystack) {
			if(haystack[i] == needle) {
				return true;
			}
		}
	}
	return false;
}
// 取省份下级市
function getAreaIDs(idx){
	var newArr = new Array();
	for (var i in SelectArea.CityArr){
		if(i.substr(0,2)==idx.substr(0,2)){
			newArr[newArr.length]=i;
		}
	}
	return newArr;
}



function AreaSelect(ReturnObj,MaxSel)
{

	SelectArea.init(ReturnObj,MaxSel);
}

function Selector(SelType,ReturnObj,MaxSel,Levels)
{

	SelectItems.init(SelType,ReturnObj,MaxSel,Levels);
}

