﻿// 区域层
function AreaLayer() {

	var opts = new Array();
	
	var finish = false;
	
	this.form = "";
						
	this.getAreaListCode = function(code) {	
	
		var ajax = new ajaxRequest();
		
		ajax.url = url + "/Tools/Ajax.aspx?t=areatree&code=" + code;
								
		ajax.callback = function(xmlobj) {
		
			opts = new Array();
			
			var node = null;
			
			var xpath = "//data/area";
			
			var DOMDocument = xmlobj.responseXML;
			
			if( isIE() ) {	//IE
				node = DOMDocument.selectNodes(xpath);
			}
			else {	// Mozilla FireFox
			
				var NodeArray = new Array();
				
				var xPathResult = DOMDocument.evaluate(xpath, DOMDocument, DOMDocument.createNSResolver(DOMDocument.documentElement), XPathResult.ORDER_NODE_ITERATOR_TYPE, null);
				
				if(xPathResult) {
				
					var oNode = xPathResult.iterateNext();
					
					while(oNode) {
					
						NodeArray[NodeArray.length] = oNode;
						
						oNode = xPathResult.iterateNext();
					
					}
				
				}
				
				node = NodeArray;			
			}
						
			var patn = new RegExp("\\d{3}", "ig");
						
			for(var i=0; i<node.length; i++) {
				
				var opt = document.createElement("option");		
				
				opt.value = node[i].getAttribute("code");
				
				opt.text = node[i].getAttribute("name");

				opts[i] = opt;				
			}
			
			finish = true;
						
		}
		
		ajax.send();
	}
	

	// 初始化区域层
	this.initialize = function() {
	
		this.getAreaListCode("");
		
		var html = "";
		
		html += '<div class=\"popupLayer\">';
		html += '<div class="popupTitle"><h2>请选择工作地点 (您最多可以选择5个不同的工作地点)</h2><a onclick="javascript:filterLayer.cancel();filterLayer.hideLayer(\'popupArea\');">[确定]</a></div>';
		html += '<div class="popupContent">';
		html += '<div class="popupCategory">';
		html += '请选择工作地点';
		html += '<select id="sltAreaList" onchange="AreaLayer.SelectedChangedArea(this.value, 2)">';
		html += '</select>';
		html += '</div>';
		html += '<div class="popupList">'
		html += '<dl id="popupAreaContent">';
		html += '</dl>';
		html += '</div>';
		html += '</div>';
		html += '<dl id="popupAreaSelected" class="popupSelected">';
		html += '<dt>您已经选择的地点是：<a href="javascript:;" onclick="javascript:AreaLayer.Clear();">清空所有选项</a></dt>';
		html += '</dl>';
		html += '<a class="layerok" href="javascript:AreaLayer.enter();filterLayer.cancel();filterLayer.hideLayer(\'popupArea\');">确定</a>';
		html += '</div>';
				
		setTimeout("popupArea.GetArea()", 1000);
		
		return html;
	};
	
	this.GetArea = function() {
		if( !finish )
		{
			setTimeout("popupArea.GetArea()", 1000);
			return;
		}
		
		for(var i=0; i<opts.length; i++) {
			$("sltAreaList").options.add(opts[i]);
		}
		$("sltAreaList").value = "005";
		
		AreaLayer.SelectedChangedArea($("sltAreaList").value, 2);
	}
	
	// 选择框变换
	AreaLayer.SelectedChangedArea = function() {

		var ajax = new ajaxRequest();
		
		ajax.url = url + "/Tools/Ajax.aspx?t=areatree&code=" + arguments[0];
		
		if( arguments.length>=2 ) ajax.url += "&len=" + arguments[1].toString();
												
		ajax.callback = function(xmlobj) {
					
			var node = null;
			
			var xpath = "//data/area";
			
			var DOMDocument = xmlobj.responseXML;
			
			if( isIE() ) {	//IE
				node = DOMDocument.selectNodes(xpath);
			}
			else {	// Mozilla FireFox
			
				var NodeArray = new Array();
				
				var xPathResult = DOMDocument.evaluate(xpath, DOMDocument, DOMDocument.createNSResolver(DOMDocument.documentElement), XPathResult.ORDER_NODE_ITERATOR_TYPE, null);
				
				if(xPathResult) {
				
					var oNode = xPathResult.iterateNext();
					
					while(oNode) {
					
						NodeArray[NodeArray.length] = oNode;
						
						oNode = xPathResult.iterateNext();
					
					}
				
				}
				
				node = NodeArray;			
			}
			
			var lstArea = $("popupAreaContent");
			var innerHTML = ""
			innerHTML += '<dt><input type="checkbox" id="cb_area_all" name="cb_area_all" value="' + $("sltAreaList").value + '" onclick="javascript:AreaLayer.ItemsClick(this);" /><label id="lbl_area_all" for="cb_area_all">' + $("sltAreaList").options[$("sltAreaList").selectedIndex].text + '</label>(选择此大类，将包括以下所有小类)</dt>';
			
			var patn = new RegExp("\\d{3}", "ig");
						
			for(var i=0; i<node.length; i++) {
				
				innerHTML += '<dd><input type="checkbox" id="cb_area_' + node[i].getAttribute("code") + '" name="cb_area_' + node[i].getAttribute("code") + '" value="' + node[i].getAttribute("code") + '" onclick="javascript:AreaLayer.ItemClick(this);" /><label id="lbl_area_' + node[i].getAttribute("code") + '" for="cb_area_' + node[i].getAttribute("code") + '">' + node[i].getAttribute("name") + '</label></dd>';
				
			}
			lstArea.innerHTML = innerHTML;
			
			for(var i=0; i<popupArea.Value.length; i++) {
				if( $("cb_area_all").value==popupArea.Value[i] ) {
					var objs = lstArea.getElementsByTagName("input");
					for(var j=0; j<objs.length; j++) {
						objs[j].disabled = true;
					}
					$("cb_area_all").checked = true;
					$("cb_area_all").disabled = false;
					break;
				}
				else {				
					if( $("cb_area_" + popupArea.Value[i])!=null ) {
						$("cb_area_" + popupArea.Value[i]).checked = true;
					}
				}
			}
			
		}
		
		ajax.send();
	}
	
	// 全部选择
	AreaLayer.ItemsClick = function(obj) {
		var objs = $("popupAreaContent").getElementsByTagName("input");
		var patn = /^cb_area_\d+$/;
		for(var i=0; i<objs.length; i++) {
			if( objs[i].type != "undefined" && objs[i].type=='checkbox' && patn.test(objs[i].id) ) {
				objs[i].disabled = obj.checked;
				if( obj.checked ) {
					objs[i].checked = false;
					for(var j=0; j<popupArea.Value.length; j++) {						
						if( popupArea.Value[j]==objs[i].value ) {
							popupArea.Value.splice(j, 1);
							popupArea.Text.splice(j, 1);
						}
					}
				}
			}				
		}
		
		if( obj.checked ) {
			if( popupArea.Value.length>=5 ) {
				obj.checked = false;
				for(var i=0; i<objs.length; i++) {
					if( objs[i].type != "undefined" && objs[i].type=='checkbox' && patn.test(objs[i].id) ) {
						objs[i].disabled = false;
					}
				}				
				alert("您最多可以选择5个不同的工作地点");				
				return;				
			}
			
			popupArea.Value[popupArea.Value.length] = obj.value;
			popupArea.Text[popupArea.Text.length] = $("lbl_area_all").innerHTML;
		}
		else {
			for(var i=0; i<popupArea.Value.length; i++) {
				if( popupArea.Value[i]==obj.value ) {
					popupArea.Value.splice(i, 1);
					popupArea.Text.splice(i, 1);
				}
			}
		}
		
		var innerHTML = "";
		innerHTML += '<dt>您已经选择的地点是：<a href="javascript:;" onclick="javascript:AreaLayer.Clear();">清空所有选项</a></dt>';
		
		for(var i=0; i<popupArea.Value.length; i++) {
			innerHTML += '<dd><input type="checkbox" id="cb_area_slt_' + popupArea.Value[i] + '" name="cb_area_slt_' + popupArea.Value[i] + '" value="' + popupArea.Value[i] + '" checked="checked" onclick="javascript:AreaLayer.ItemClick(this);" /><label id="lbl_area_slt_' + popupArea.Value[i] + '" for="cb_area_slt_' + popupArea.Value[i] + '">' + popupArea.Text[i] + '</label></dd>';
		}
		$("popupAreaSelected").innerHTML = innerHTML;
	}
	
	// 单项选择
	AreaLayer.ItemClick = function(obj) {
		var nItem = 0;
		
		if( obj.checked ) {
			if( popupArea.Value.length>=5 ) {
				obj.checked = false;
				alert("您最多可以选择5个不同的工作地点");
				return;				
			}
		}
		
		var nIndex = -1;
		for(var i=0; i<popupArea.Value.length; i++) {
			if( popupArea.Value[i]==obj.value ) {
				nIndex = i;
				break;
			}
		}
		
		if( obj.checked ) {
			// 不存在该选择，则添加
			if( nIndex==-1 ) {
				popupArea.Value.push(obj.value);
				popupArea.Text.push($("lbl_area_" + obj.value).innerHTML);
			}
		}
		else {
			// 存在则删除
			if( nIndex!=-1 ) {
				popupArea.Value.splice(nIndex, 1);
				popupArea.Text.splice(nIndex, 1);
				if( $("cb_area_" + obj.value)!=null ) {
					$("cb_area_" + obj.value).checked = false;
				}
			}
		}
				
		var innerHTML = "";
		innerHTML += '<dt>您已经选择的地点是：<a href="javascript:;" onclick="javascript:AreaLayer.Clear();">清空所有选项</a></dt>';
		
		for(var i=0; i<popupArea.Value.length; i++) {
			innerHTML += '<dd><input type="checkbox" id="cb_area_slt_' + popupArea.Value[i] + '" name="cb_area_slt_' + popupArea.Value[i] + '" value="' + popupArea.Value[i] + '" checked="checked" onclick="javascript:AreaLayer.ItemClick(this);" /><label id="lbl_area_slt_' + popupArea.Value[i] + '" for="cb_area_slt_' + popupArea.Value[i] + '">' + popupArea.Text[i] + '</label></dd>';
		}
		$("popupAreaSelected").innerHTML = innerHTML;
	}
	
	// 清空所有选择
	AreaLayer.Clear = function() {
		popupArea.Value.length = popupArea.Text.length = 0;
		
		var objs = $("popupAreaContent").getElementsByTagName("input");
		for(var i=0; i<objs.length; i++) {
			objs[i].disabled = false;
			objs[i].checked = false;
		}
		
		var innerHTML = "";
		innerHTML += '<dt>您已经选择的地点是：<a href="javascript:;" onclick="javascript:AreaLayer.Clear();">清空所有选项</a></dt>';
		
		for(var i=0; i<popupArea.Value.length; i++) {
			innerHTML += '<dd><input type="checkbox" id="cb_area_slt_' + popupArea.Value[i] + '" name="cb_area_slt_' + popupArea.Value[i] + '" value="' + popupArea.Value[i] + '" checked="checked" onclick="javascript:AreaLayer.ItemClick(this);" /><label id="lbl_area_slt_' + popupArea.Value[i] + '" for="cb_area_slt_' + popupArea.Value[i] + '">' + popupArea.Text[i] + '</label></dd>';
		}
		$("popupAreaSelected").innerHTML = innerHTML;
	}
	
	AreaLayer.ok = function(obj, form) {	
		if( $(form)==null ) return false;
		if( form=="" ) return false;
		
		var areaInput;
		if( $("area")==null ) {
			areaInput = document.createElement("input");
			areaInput.setAttribute("type", "hidden");
			areaInput.id = "area";
			areaInput.name = "area";
			$(form).appendChild(areaInput);	
		}
		else {
			areaInput = $("area");
		}
		
		areaInput.value = "";
		$(obj).value = "";
		for(var i=0; i<popupArea.Value.length; i++) {
			areaInput.value += popupArea.Value[i] + "-";
			$(obj).value += popupArea.Text[i] + "·";
		}
		areaInput.value = areaInput.value.substring(0, areaInput.value.length-1);		
		$(obj).value = $(obj).value.substring(0, $(obj).value.length-1);
		if( $(obj).value.length==0 ) {
			$(obj).value = "请选择";
		}
	}
	
	// 来自哪个表格
	AreaLayer.form = function(str) {
		popupArea.from = str;		
	}
	
	// 当点击确定的时候
	AreaLayer.enter = function() {	
		if( popupArea.from == "form_search" )
		{
			AreaLayer.ok("btnSelectCode", "form_search");
		}
		else
		{			
			AreaLayer.ok("btnAreaCode", "form_search1");
		}
	}	
	
	this.Text = new Array();
	this.Value = new Array();
}

var popupArea = new AreaLayer();