(function(){
	areaMenu = {
		id:[],
		text:[],
		target:null,
		init : function(obj,target, menu, options){
			this.target = target;
			if($F(target+'_id') !=''){
				this.id = $F(target+'_id').split('-');
			}
			if($F(target+'_text') != ''){
				this.text = $F(target+'_text').split('-');
			}
			Element.extend(obj);
			var options = Object.extend({fixLeft:-1, fixTop:-1, width:'400px'}, options || {});

			var size   = $(menu+'_menu').getDimensions();
			var arrayPageScroll = document.viewport.getScrollOffsets();
			var _top = arrayPageScroll[1] + document.viewport.getHeight()/ 8;
			var _left = arrayPageScroll[0] + (document.viewport.getWidth() - parseInt(options.width, 10))/2 ;

			var _style   = Object.extend({left:_left+options.fixLeft +'px', top:_top + options.fixTop+'px',
			display:'block'}, options);

			$(menu+'_menu').setStyle(_style);
			this.updateBarsket();
			this.updateChecked();
		},
		clickCh : function(obj){
			Element.extend(obj);
			if(obj.checked){
				if(this.id.length >2 ){
					obj.checked = false;
					alert('最多只能选3个地区');
					return;
				}
				if(this.id.indexOf(obj.value) !=-1){
					obj.checked = false;
					alert('已经选了');
					return;
				}
				var value = parseInt(obj.value, 10);
				this.id.push(value);
				this.text.push(obj.parentNode.getAttribute('title'));
				this.updateCity(obj.value, true);
			}else{
				var value = parseInt(obj.value, 10);
				var index = this.id.indexOf(value);
				this.id.splice(index, 1);
				this.text.splice(index, 1);
				if($('harea_'+value)) $('harea_'+value).checked = false;
				this.updateCity(obj.value, false);
			}
			this.updateBarsket();
		},
		updateChecked : function(){
			var len = this.id.length, i=0;
			for(i; i< len; i++){
				if($('area_'+this.id[i])) $('area_'+this.id[i]).checked = true;
				if($('harea_'+this.id[i])) $('harea_'+this.id[i]).checked = true;
			}
		},
		updateCity : function(id, checked){
			if($('city_'+id)){
				var inputs = $$('#city_'+id+' input'), len = inputs.length, i = 0;
				for(i; i< len; i++){
					inputs[i].checked = checked;
					inputs[i].disabled = checked;
				}
			}
		},
		updateBarsket : function(){
			var len = this.id.length, i=0, pobj = $('area_selected');
			if(len > 0){
				pobj.update();
				for(i; i < len; i++){
					pobj.insert(Builder.node('a', {href:'javascript:void(0)', title:'删除', onclick:'areaMenu.del('+this.id[i]+')'}, this.text[i] + '   X'));
				}
				$('area_notice').update('您选择的工作地点是：');
				$('clearAll_btn').enable();
			}else{
				$('area_notice').update('提示：');
				$('clearAll_btn').disable();
				pobj.update('当您选择＂<img src="/public/images/back-d.gif" />＂下的具体城市时，将会获得更为准确的搜索结果您最多可以选择3个工作地点');
			}
		},
		del : function(id){
			var id = parseInt(id, 10);
			var index = this.id.indexOf(id);
			//alert(this.id + '-id:'+id + '-index:' +index);
			this.id.splice(index, 1);
			this.text.splice(index, 1);
			this.clear_checkbox(id);
			this.updateBarsket();
			this.updateCity(id, false);
		},
		clearAll : function(){
			var len = this.id.length, i = 0;
			for(i; i < len; i++){
				this.clear_checkbox(this.id[i]);
				this.updateCity(this.id[i], false);
			}
			this.id = [];
			this.text = [];
			this.updateBarsket();
		},
		clear_checkbox : function(id){
			if($('area_'+id)) $('area_'+id).checked = false;
			if($('harea_'+id)) $('harea_'+id).checked = false;
		},
		showSub : function(obj, id){
			Element.extend(obj);
			var input = obj.down('input');
			if($('city_'+id)) {
				$('city_'+id).style.display = 'block';
				this.updateCity(id, input.checked);
				this.updateChecked();
				return;
			}
			var index  = ITLONG.rk.indexOf(id);
			var region = ITLONG.region[index]._child;
			var sub_ul = this.genUl(id, region);
			obj.insert(sub_ul);
			obj.onmouseout = function(){
				if($('city_'+id)) $('city_'+id).style.display = 'none';
			};
			this.updateChecked();
		},
		genUl : function(id, region){
			var city_li = [], len=region.length, i = 0;
			for(i; i<len; i++){
				city_li[i] = this.genLi(region[i]);
			}
			var city_ul = Builder.node('ul', {id:'city_'+id, className:'city_ul'}, city_li);
			return city_ul;
		},
		genLi : function(region){
			return Builder.node('li', {title:region.name, value:region.id},
			Builder.node('a', {href:'#', className:'singel', title:region.name}, [
			Builder.node('input', {type:'checkbox', id:'area_'+region.id, name:'area[]', value:region.id, onclick:'areaMenu.clickCh(this)'}), region.name
			])
			);
		},
		hide : function(menu){
			$(menu+'_menu').hide();
		},
		onOk : function(msg){
			if(msg){
				this.clearAll();
				$(this.target).value = msg;
				$(this.target+'_id').value = $(this.target+'_ids').value = $(this.target+'_text').value = '';
			}else{
				$(this.target+'_id').value = this.id.join('-');
				$(this.target).value = $(this.target+'_text').value = this.text.join('-');

				var inputs = $$('#area_menu input[type="checkbox"]'), len = inputs.length, i=0;
				var ids = [];
				for(i; i< len; i++){
					if(inputs[i].checked) ids.push(inputs[i].value);
				}
				$(this.target+'_ids').value = ids.uniq().join('-');
			}
			this.hide('area');
		}
	}
})();
