/**
*	选择插件
*	使用方法: 
*		$(this).hrOpt({list:"areas_cn",listIndex:4,classes:"search_area_box",title:"工作地区选择",info:"最多可以选择5个工作地点：",outInfo:"职位所在地",outId:"search_area",maxNum:5});
*		$(this).hrOpt({list:"trades_cn",classes:"search_industry_box",mode:1,title:"行业选择",info:"最多可以选择3个行业：",outInfo:"选择/修改",outId:"search_industry",maxNum:3});
*	注意:调用元素必须存在唯一id
*/
jQuery.fn.hrOpt = function(opts){
	opts = jQuery.extend({
		obj:null,
		action:"show",
		list:"",
		listIndex:0,
		mode:0,
		classes:"",
		title:"请选择",
		info:"最多可以选择3个选项：",
		maxNum:3,
		outInfo:"选择/修改",
		outId:"",
		v:"",
		callback:function(){return false;}
	},opts||{});

	var hrOpt=this;

	var init = function(){
		if($(hrOpt).attr("hrOptId") == undefined){
			var hrOptId = ('' + Math.random()).substring(2);
			$(hrOpt).attr('hrOptId',hrOptId);
			$(hrOpt).attr('hrOptList',opts.list);
			$(hrOpt).attr('hrOptListIndex',opts.listIndex);
			$(hrOpt).attr('hrOptMode',opts.mode);
			$(hrOpt).attr('hrOptOutInfo',opts.outInfo);
			$(hrOpt).attr('hrOptOutId',opts.outId);
			$(hrOpt).attr('hrOptMaxNum',opts.maxNum);
			$("body").append('<div id="hrOpt_bg_'+hrOptId+'"  class="s_" style="display:none;">&nbsp;</div>');
			$("body").append('\
				<div id="hrOpt_pop_'+hrOptId+'" class="s_i '+opts.classes+'">\
					<div class="s_i_title"><span class="s_i_close" title="关闭" onmousemove="this.className=\'s_i_close_hover\';" onmouseout="this.className=\'s_i_close\';" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'close\'});"></span>'+opts.title+'</div>\
					<div class="s_i_itmes_div">\
						<p><span class="right"><input name="" type="button" value="确 定" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'set\'});" class="button_main" /> <input name="" type="button" class="button_default" value="清 空" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'clear\'});" /></span>'+opts.info+'</p>\
						<p id="hrOptResult_'+hrOptId+'" class="s_i_itmes_ed"></p>\
						<div class="clear"></div>\
					</div>\
					<div class="s_i_list">\
						<ul id="hrOptList_'+hrOptId+'">\
						</ul>\
					</div>\
					<div class="s_i_items_select">\
						<div class="s_i_items_title">请单击选择：</div>\
						<ul id="hrOptItem_'+hrOptId+'">\
						</ul>\
						<div class="clear"></div>\
					</div>\
					<div class="clear"></div>\
				</div>\
			');
			var $result = $('#hrOptResult_'+hrOptId);
			var v = opts.v;
			var v2 = v.split(',');
			v = '';
			var list = {};
			eval('list='+opts.list+';');
			for(var key in v2){
				if(v2[key] != undefined && v2[key] != '' && list[v2[key]] != undefined){
					v += v2[key] + ',';
					$result.append('<a href="javascript:void(0);" v="'+v2[key]+'" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'del\',obj:this});"><span>'+list[v2[key]]+'</span></a> ');
				}
			}
			$result.attr('v',v);
			if(opts.mode == 1){
				setItem();
			}else{
				setList();
			}
		}
	};
	//hrOpt=发出点击事件的<span> 其属性列表
	//hrOptId:生成的Id号
	//hrOptList:信息来源
	//hrOptListIndex:默认选择项
	//hrOptMode:模式0：代表两组 1：代表一列
	//hrOptOutInfo:没有信息时显示的内容
	//hrOptOutId:
	//hrOptMaxNum:最多可选数量

	//hrOptResult属性列表
	//v:所有id信息

	//hrOptList属性列表
	//hrOptId:
	var setList = function(){
		var $list = $('#hrOptList_'+$(hrOpt).attr("hrOptId"));
		var hrOptList = $(hrOpt).attr('hrOptList');
		if(hrOptList!=undefined){
			var list = {};
			eval('list='+hrOptList+';');
			for(var key in list){
				if(key.substring(2)=='00'){
					$list.append('<li v="'+key+'" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'setItem\',obj:this});" onmousemove="$(this).addClass(\'s_i_list_mousemove\');" onmouseout="$(this).removeClass(\'s_i_list_mousemove\');">'+list[key]+'</li>');
				}
			}
			//$($('li',$list).get(4)).addClass('s_i_list_hover');
			$($('li',$list).get($(hrOpt).attr('hrOptListIndex'))).click();
		}
	};

	var setItem = function(){
		var mode = $(hrOpt).attr('hrOptMode');
		var id = $(hrOpt).attr("hrOptId");
		if(mode == 1){
			var hrOptList = $(hrOpt).attr('hrOptList');
			if(hrOptList!=undefined){
				var $item = $('#hrOptItem_'+id);
				$item.empty();
				var list = {};
				eval('list='+hrOptList+';');
				var v = $('#hrOptResult_'+id).attr('v');
				for(var key in list){
					$item.append('<li v="'+key+'" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'setResult\',obj:this});">'+list[key]+'</li>');
					if(v.indexOf(key) > -1){
						$('li[v='+key+']',$item).addClass("s_i_items_class_g");
					}
				}
			}
		}else{
			var $list = $('#hrOptList_'+id);
			$('li',$list).removeClass("s_i_list_hover");
			$(opts.obj).addClass('s_i_list_hover');
			var itemKey = $(opts.obj).attr('v').substr(0,2);
			var hrOptList = $(hrOpt).attr('hrOptList');
			if(hrOptList!=undefined){
				var $item = $('#hrOptItem_'+id);
				$item.empty();
				var list = {};
				eval('list='+hrOptList+';');
				var v = $('#hrOptResult_'+id).attr('v');
				for(var key in list){
					if(key.substr(0,2)==itemKey){
						$item.append('<li v="'+key+'" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'setResult\',obj:this});">'+list[key]+'</li>');
						if(v.indexOf(itemKey+'00') > -1 || v.indexOf(key) > -1){
							$('li[v='+key+']',$item).addClass("s_i_items_class_g");
						}
					}
				}
				$($('li',$item).get(0)).addClass('s_i_items_class');
			}
		}
	};

	var setResult = function(){
		var add = function(){
			v += itemKey + ',';
			$(opts.obj).addClass("s_i_items_class_g");
			$result.append('<a href="javascript:void(0);" v="'+itemKey+'" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'del\',obj:this});"><span>'+$(opts.obj).text()+'</span></a> ');
		};
		var mode = $(hrOpt).attr('hrOptMode');
		var itemKey = $(opts.obj).attr('v');
		var id = $(hrOpt).attr("hrOptId");
		var $result = $('#hrOptResult_'+id);
		var v = $result.attr('v');
		var n = v.split(',').length - 1;
		var maxNum = $(hrOpt).attr("hrOptMaxNum");
		if(v.indexOf(itemKey + ',') == -1){
			if(mode == 1){
				if(n < maxNum){
					add();
				}else{
					alert("最多选取"+maxNum+"项");
				}
			}else{
				if(itemKey.substring(2) == '00'){
					v = v.replace(eval('/'+itemKey.substr(0,2)+'\\d{2},/g'),'');
					var hrOptList = $(hrOpt).attr('hrOptList');
					var list = {};
					eval('list='+hrOptList+';');
					$result.empty();
					var vList = v.split(',');
					for(var key in vList){
						if(vList[key] != undefined && vList[key] != '' && list[vList[key]] != undefined){
							$result.append('<a href="javascript:void(0);" v="'+vList[key]+'" onclick="$(\'#'+$(hrOpt).attr("id")+'\').hrOpt({action:\'del\',obj:this});"><span>'+list[vList[key]]+'</span></a> ');
						}
					}
					n = vList.length - 1;
					if(n < maxNum){
						add();
						$('li',$('#hrOptItem_'+id)).addClass("s_i_items_class_g");
					}else{
						alert("最多选取"+maxNum+"项");
					}
				}else{
					if(v.search(eval('/'+itemKey.substr(0,2)+'00,/g')) == -1){
						if(n < maxNum){
							add();
						}else{
							alert("最多选取"+maxNum+"项");
						}
					}
				}
			}
		}
		$result.attr('v',v);
	};

	var del = function(){
		var result = $(opts.obj).attr('v');
		var id = $(hrOpt).attr("hrOptId");
		var $result = $('#hrOptResult_'+id);
		var v = $result.attr('v');
		v = v.replace(result + ',','');
		$result.attr('v',v);
		$(opts.obj).remove();
		var $item = $('#hrOptItem_'+id);
		if(result.substring(2) == '00'){
			$('li[v^='+result.substr(0,2)+']',$item).removeClass('s_i_items_class_g');
		}else{
			$('li[v='+result+']',$item).removeClass('s_i_items_class_g');
		}
	};

	var show = function(){
		document.getElementsByTagName("html")[0].style.overflow = "hidden";
		$("select").each(function () {
			$(this).css("display", "none");
		});
		$("body").css("overflow", "hidden");
		var id = $(hrOpt).attr("hrOptId");
		var $bg = $('#hrOpt_bg_'+id);
		var $pop = $('#hrOpt_pop_'+id);
		$bg.show();
		$bg.css("height", document.body.scrollHeight);
		//$bg.css("width", document.body.offsetWidth + 22 + "px");
		$bg.css("width", "1500px");
		$pop.show();
		var poptop=document.body.scrollTop + 150;
		$pop.css("top", poptop+ "px");
		$("body").attr("scroll", "no");

		var $result = $('#hrOptResult_'+id);
		var v = $result.attr('v');
		$pop.attr('resultHTML',$result.html());
		$pop.attr('resultV',v);
		var padding_right = $("body").css('padding-right');
		if(padding_right == undefined || padding_right.lengt < 2){
			padding_right = 0;
		}else{
			padding_right = padding_right.substr(0,padding_right.length-2);
		}
		$("body").css("padding-right", (padding_right+16)+"px");
	};
	//hropt_pop属性列表
	//resultHTML:
	//resultV:

	var hide = function(){
		document.getElementsByTagName("html")[0].style.overflow = "";
		$("select").each(function () {
			$(this).css("display", "");
		});
		$("body").attr("scroll", "yes").css("overflow", "auto");
		$('#hrOpt_bg_'+$(hrOpt).attr("hrOptId")).hide();
		$('#hrOpt_pop_'+$(hrOpt).attr("hrOptId")).hide();
		var padding_right = $("body").css('padding-right');
		padding_right = padding_right.substr(0,padding_right.length-2);
		if(padding_right<16)
			padding_right=16;
		$("body").css("padding-right", (padding_right-16)+"px");
	};

	var close = function(){
		var id = $(hrOpt).attr("hrOptId");
		var $pop = $('#hrOpt_pop_'+id);
		var $result = $('#hrOptResult_'+id);
		$result.html($pop.attr('resultHTML'));
		var v = $result.attr('v');
		if(v != undefined){
			var $item = $('#hrOptItem_'+id);
			var v2 = v.split(',');
			for(var key in v2){
				$('li[v='+v2[key]+']',$item).removeClass('s_i_items_class_g');
			}
		}
		$result.attr('v',$pop.attr('resultV'));
		hide();
	};

	var clear = function(){
		var id = $(hrOpt).attr("hrOptId");
		var $result = $('#hrOptResult_'+id);
		var $item = $('#hrOptItem_'+id);
		$('li',$item).removeClass("s_i_items_class_g");
		$result.attr('v','');
		$result.empty();
	};

	var set = function(){
		var id = $(hrOpt).attr("hrOptId");
		var $result = $('#hrOptResult_'+id);
		var outInfo = $(hrOpt).attr('hrOptOutInfo');
		var outId = $(hrOpt).attr('hrOptOutId');
		if($result.attr('v').indexOf(',') == -1){
			$('#'+outId).attr('v','');
			$('#'+outId).html(outInfo);
			$('#'+outId).attr('title','');
		}else{
			$('#'+outId).attr('v',$result.attr('v'));
			$('#'+outId).html($result.text());
			$('#'+outId).attr('title',$result.text());
		}
		hide();
	};

	if(opts.action == "show"){
		init();
		show();
	}else if(opts.action == "hide"){
		hide();
	}else if(opts.action == "close"){
		close();
	}else if(opts.action == "clear"){
		clear();
	}else if(opts.action == "set"){
		set();
	}else if(opts.action == "setItem"){
		setItem();
	}else if(opts.action == "setResult"){
		setResult();
	}else if(opts.action == "del"){
		del();
	}
}