var CityUI = function(){
return ['',
		'<div class="dataDiv">',
		'<fieldset class="data_win">',
		'<legend><select id="slt_parent_c"></select><input id="chk_parent_c" type="checkbox" disabled="disabled" value="0" /><label for="chk_parent_c">请选择工作城市</label></legend>',
		'<ul id="shw_child_c"></ul></fieldset> ',
		'<fieldset class="data_win">',
		'<legend>您选择了以下城市 [如想取消请单击对应选项]</legend>',
		'<ul id="ipt_child_c"></ul></fieldset> ',
		'</div>',
		''].join('');
};
var FacultyUI = function(){
return ['',
		'<div class="dataDiv">',
		'<fieldset class="data_win">',
		'<legend><select id="slt_parent_f"></select><input id="chk_parent_f" type="checkbox" disabled="disabled" value="0" /><label for="chk_parent_f">请选择职能类别</label></legend>',
		'<ul id="shw_child_f"></ul></fieldset> ',
		'<fieldset class="data_win">',
		'<legend>您选择了以下职能 [如想取消请单击对应选项]</legend>',
		'<ul id="ipt_child_f"></ul></fieldset> ',
		'</div>',
		''].join('');
};

var SpecialtyUI = function(){
return ['',
		'<div class="dataDiv">',
		'<fieldset class="data_win">',
		'<legend><select id="slt_parent_s"></select><input id="chk_parent_s" type="checkbox" disabled="disabled" value="0" /><label for="chk_parent_s">请选择专业类别</label></legend>',
		'<ul id="shw_child_s"></ul></fieldset> ',
		'<fieldset class="data_win">',
		'<legend>您选择了以下专业 [如想取消请单击对应选项]</legend>',
		'<ul id="ipt_child_s"></ul></fieldset> ',
		'</div>',
		''].join('');
};


var SelectAgeUI = function(){
return ['',
		'<div class="dataDiv">',
		'<fieldset class="data_win">',
		'<label for="chk_parent_s">请选择年龄 : </label>',
		'<select id="slt_parent_s1" class="sltAge1"><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option><option>32</option><option>33</option><option>34</option><option>35</option><option>36</option><option>37</option><option>38</option><option>39</option><option>40</option><option>41</option><option>42</option><option>43</option><option>44</option><option>45</option><option>46</option><option>47</option><option>48</option><option>49</option><option>50</option><option>51</option><option>52</option><option>53</option><option>54</option><option>55</option><option>56</option><option>57</option><option>58</option><option>59</option><option>60</option></select>',
		' - ',
		'<select id="slt_parent_s2" class="sltAge2"><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option><option>32</option><option>33</option><option>34</option><option>35</option><option>36</option><option>37</option><option>38</option><option>39</option><option>40</option><option>41</option><option>42</option><option>43</option><option>44</option><option>45</option><option>46</option><option>47</option><option>48</option><option>49</option><option>50</option><option>51</option><option>52</option><option>53</option><option>54</option><option>55</option><option>56</option><option>57</option><option>58</option><option>59</option><option>60</option></select>',
		'</fieldset> ',
		'</div>',
		''].join('');
};

var WidgetUI = {City:null,Faculty:null,Specialty:null,SelectAge:null};
var SelectAgeAfterExecute ;
var minAge = -1 ;
var maxAge = -1 ;

Ext.onReady(function(){
	if(!WidgetUI.City){
		WidgetUI.City = new Ext.Window({
			title:'选择城市', 
			layout:'fit',
			width:500,
			closeAction:'hide',
			plain: true,
			modal:true, 
			shadow:false, 
			bodyStyle:'padding:5px;', 
			html:CityUI(),
			resizable:false ,
			autoHeight:true,
			buttons: [{ 
				text:'确定',
				handler: function(){Get();WidgetUI.City.hide();}
			},{
				text:'关闭',
				handler: function(){if(WidgetUI.City) WidgetUI.City.hide();}
			}]
		});	
	}
	
	if(!WidgetUI.Faculty){
		WidgetUI.Faculty = new Ext.Window({
			title:'选择职能', 
			layout:'fit',
			width:600,
			closeAction:'hide',
			plain: true,
			modal:true, 
			shadow:false, 
			bodyStyle:'padding:5px;', 
			html:FacultyUI(),
			resizable:false ,
			autoHeight:true,
			buttons: [{ 
				text:'确定',
				handler: function(){Get();WidgetUI.Faculty.hide();}
			},{
				text:'关闭',
				handler: function(){if(WidgetUI.Faculty) WidgetUI.Faculty.hide();}
			}]
		});	
	}
	
	if(!WidgetUI.Specialty){
		WidgetUI.Specialty = new Ext.Window({
			title:'选择专业', 
			layout:'fit',
			width:600,
			closeAction:'hide',
			plain: true,
			modal:true, 
			shadow:false, 
			bodyStyle:'padding:5px;', 
			html:SpecialtyUI(),
			resizable:false ,
			autoHeight:true,
			buttons: [{ 
				text:'确定',
				handler: function(){Get();WidgetUI.Specialty.hide();}
			},{
				text:'关闭',
				handler: function(){if(WidgetUI.Specialty) WidgetUI.Specialty.hide();}
			}]
		});	
	}
	
	if(!WidgetUI.SelectAge){
		WidgetUI.SelectAge = new Ext.Window({
			title:'选择年龄', 
			layout:'fit',
			width:350,
			closeAction:'hide',
			plain: true,
			modal:true, 
			shadow:false, 
			bodyStyle:'padding:5px;', 
			html:SelectAgeUI(),
			resizable:false ,
			autoHeight:true,
			buttons: [{ 
				text:'确定',
				handler: function(){
				
				if(checkSelectAge()){
				    
				    if(minAge != - 1 && maxAge != - 1){
				    	setSelAgeBtChange(minAge,maxAge) ;
				        eval(SelectAgeAfterExecute);
				        WidgetUI.SelectAge.hide();
				    }else{
				        
				        alert('选择年龄出错!')
				    }
				}
			}
			},{
				text:'关闭',
				handler: function(){if(WidgetUI.SelectAge) WidgetUI.SelectAge.hide();}
			}]
		});	
	}
	
});

/*
var dw = new NewDataWin({flag:'_c',max:1,data:myArea,slt:'slt_parent_c',chk:'chk_parent_c',shw:'shw_child_c',ipt:'ipt_child_c',iptId:id,iptName:name,aExecute:afterExecute});
dws.init();
Ext.addBehaviors({	 
		'select[id=slt_parent_s]@change':function(){dws.initChild();},
		'input[id=chk_parent_s]@click':function(){NewDataWin.choose(this,0);}
});
*/	
var NewDataWin = function(opts){this.initialize(opts);};
NewDataWin.data = null;
NewDataWin.max = 5;
NewDataWin.flag =  '';
NewDataWin.sltStr =  '';
NewDataWin.oSlt = '';
NewDataWin.oChk = '';
NewDataWin.oShw = '';
NewDataWin.oIpt = '';
NewDataWin.iptId = '';
NewDataWin.iptName = '';
NewDataWin.aExecute = null;
NewDataWin.prototype = {
	initialize: function(opts){
		var options = opts || {};
		NewDataWin.data = this.data = options.data || null; //数据
		NewDataWin.flag = this.flag = options.flag || '_c';
		this.slt = options.slt || '';
		this.chk = options.chk || '';
		this.shw = options.shw || '';
		this.ipt = options.ipt || '';
		NewDataWin.oSlt = this.oSlt = document.getElementById(options.slt) || '';
		NewDataWin.oChk = this.oChk = document.getElementById(options.chk) || '';
		NewDataWin.oShw = this.oShw = document.getElementById(options.shw) || '';
		NewDataWin.oIpt = this.oIpt = document.getElementById(options.ipt) || '';
		NewDataWin.max = this.max = options.max || 5; //最多选择项
		NewDataWin.iptId = this.iptId = document.getElementById(options.iptId) || null; //输出编号ID
		NewDataWin.iptName = this.iptName = document.getElementById(options.iptName) || null; //输出名字ID
		NewDataWin.aExecute = this.aExecute = options.aExecute || null; //事后执行的函数
		NewDataWin.sltStr = this.sltStr = NewDataWin.iptId.value;
		if(this.data==null) throw new Error("没有提供数据!");
	},
	initParent: function(){
		var oDt = NewDataWin.filter(0);
		this.oSlt.options.length = 0;
		var str = ',' + this.sltStr;
		for(var i=0;i<oDt.length;i++){
			var opt = document.createElement("OPTION");
			opt.value = oDt[i][3]; 
			opt.text = oDt[i][4]; 
			if(str!=','&&str.indexOf(','+oDt[i][3]+',')!=-1){
				opt.selected = true;
				this.oChk.checked = true;
			}
			this.oSlt.options.add(opt);
		}
		if(this.sltStr==''){
			for(var i=0;i<this.oSlt.options.length;i++){
				if(this.oSlt.options[i].value=='23'){this.oSlt.options[i].selected = true;}
			}
		};
	},
	initChild: function(){
		var v = this.oSlt.options[this.oSlt.selectedIndex].value;
		var str = ','+NewDataWin.sltStr;
		var oDt = NewDataWin.filter(v);
		this.oShw.innerHTML = ''; 
		var dsb = false;
		var chk = false;
		if(str.indexOf(','+v+',')!=-1){ chk = dsb = this.oChk.checked = true;
		}else{chk = dsb = this.oChk.checked = false;};
		for(var i=0;i<oDt.length;i++){
			if(str!=','&&str.indexOf(','+oDt[i][3]+',')!=-1&&!dsb) chk = true;
			else chk = false;
			NewDataWin.createLI(this.oShw,'shw',oDt[i][3],oDt[i][4],chk,dsb,'onclick="NewDataWin.choose(this,1);"');
		};
	},
	init: function(){
		this.initParent();
		this.initChild();
		var arr = NewDataWin.sltStr.split(',');
		NewDataWin.oIpt.innerHTML = '';
		for(var i=0; i<arr.length; i++){
			if(!isNaN(parseInt(arr[i]))){
				NewDataWin.createLI(NewDataWin.oIpt,'ipt'+NewDataWin.flag,arr[i],NewDataWin.get(arr[i],4),false,false,'onclick="NewDataWin.remove(this);"');
			}
		};
	}
};

NewDataWin.createLI= function(el,n,v,t,chk,dsb,ev){
	var chkS = chk?'checked="checked"':'';
	var dsbS = dsb?'disabled="disabled"':'';		
	var str = '<input type="checkbox" '+ev+' name="'+n+'" id="'+n+'_'+v+'" value="'+v+'" '+chkS+' '+dsbS+'/><label for="'+n+'_'+v+'" title="'+t+'">'+t+'</label>';
	var li = document.createElement('li');
	li.innerHTML = str;
	el.appendChild(li);
};
NewDataWin.get= function(id,rt){
	for(var i=0;i<NewDataWin.data.length;i++){if(NewDataWin.data[i][3]==id){return NewDataWin.data[i][rt];}}
};
NewDataWin.filter= function(id){
	var ii=0;
	var oData = new Array();	
	for(var i=0;i<NewDataWin.data.length;i++){
		if(NewDataWin.data[i][0]==id){
			oData[ii] = NewDataWin.data[i];
			ii++;
		}
	}
	return oData;
};
NewDataWin.remove= function(obj){
	if(typeof obj=='undefined' ) return;
	var value = NewDataWin.oSlt.options[NewDataWin.oSlt.selectedIndex].value;
	var pv = NewDataWin.get(obj.value,0);
	var els = Ext.DomQuery.select('input[name=shw]');
	var oNode = Ext.getDom('ipt'+NewDataWin.flag+'_'+obj.value);
	
	if(oNode&&oNode.nodeType===1){
		NewDataWin.oIpt.removeChild(oNode.parentNode);
		if(pv==0){
			for(var m=0; m< els.length; m++){
				els[m].checked = false;
				els[m].disabled = false;
			}
			NewDataWin.oChk.checked = false;
		}else{
			for(var n=0; n< els.length; n++){
				if(els[n].value==obj.value) els[n].checked = false;
			}
		}
		NewDataWin.iptData();
	}
};
NewDataWin.removeSlt= function(obj,m){
	if(typeof obj=='undefined' ) return;
	var value = (m==0)?NewDataWin.oSlt.options[NewDataWin.oSlt.selectedIndex].value:obj.value;
	var eli = Ext.DomQuery.select('input[name=ipt'+NewDataWin.flag+']');
	var exist = false;
	for(var i=0; i< eli.length; i++){
		if(eli[i].value==value) exist = true;
	};
	if(exist){
		var oNode = Ext.getDom('ipt'+NewDataWin.flag+'_'+value);
		if(oNode&&oNode.nodeType===1){
			NewDataWin.oIpt .removeChild(oNode.parentNode);
			NewDataWin.iptData();
		}
	};
};
NewDataWin.choose= function(obj,flag){
	if(typeof obj=='undefined' ) return;
	if(flag==0){//选中全部
		var els = Ext.DomQuery.select('input[name=shw]');
		for(var i=0; i< els.length; i++){
			els[i].checked = obj.checked;
			els[i].disabled = obj.checked;
		}
	};
	if(obj.checked){NewDataWin.add(obj,flag);
	}else{NewDataWin.removeSlt(obj,flag);}
};
NewDataWin.add= function(obj,flag){
	if(typeof obj=='undefined' ) return;
	var slt_parent = NewDataWin.oSlt.options[NewDataWin.oSlt.selectedIndex].value;
	var value = (flag==0)?slt_parent:obj.value;
	var eli = Ext.DomQuery.select('input[name=ipt'+NewDataWin.flag+']');
	if(flag==0){
		var oDt = NewDataWin.filter(slt_parent);	
		var oNode = null;
		for(var m=0; m< eli.length; m++){
			for(var n=0; n< oDt.length; n++){
				if(eli[m].value==oDt[n][3]){
					oNode = Ext.getDom('ipt_'+eli[m].value);
					if(oNode&&oNode.nodeType===1){
						NewDataWin.oIpt.removeChild(oNode.parentNode);
					}
				}
			}
		}
		NewDataWin.iptData();
	};
	if(obj.checked){
		el_ipt = NewDataWin.sltStr.split(',');
		if(el_ipt.length-1>=NewDataWin.max){
			alert('最多只能选择'+NewDataWin.max+'项');
			if(flag==0){
				var els = Ext.DomQuery.select('input[name=shw]');
				for(var i=0; i< els.length; i++){
					els[i].checked = false;
					els[i].disabled = false;
				}
			}
			obj.checked = false; return ;
		}
	}
	var exist = false;
	for(var i=0; i< eli.length; i++){
		if(eli[i].value==value) exist = true;
	};
	if(!exist){
		NewDataWin.createLI(NewDataWin.oIpt,'ipt'+NewDataWin.flag,value,NewDataWin.get(value,4),false,false,'onclick="NewDataWin.remove(this);"');
		NewDataWin.iptData();
	};
};
NewDataWin.iptData= function(){
	var eli = Ext.DomQuery.select('input[name=ipt'+NewDataWin.flag+']');
	var ids  = '';
	var names  = '';
	for(var i=0; i< eli.length; i++){
		if(!isNaN(parseInt(eli[i].value))) {
			ids += eli[i].value +',';
			names += NewDataWin.get(eli[i].value,4) +',';
		}
	}
	NewDataWin.sltStr = ids;
	return {"id":ids,"name":names} ;
};

function showCity(id,name,afterExecute){
	WidgetUI.City.show();
	var dw = new NewDataWin({flag:'_c',max:1,data:myArea,slt:'slt_parent_c',chk:'chk_parent_c',shw:'shw_child_c',ipt:'ipt_child_c',iptId:id,iptName:name,aExecute:afterExecute});
	dw.init();
	Ext.addBehaviors({	 
		'select[id=slt_parent_c]@change':function(){dw.initChild();},
		'input[id=chk_parent_c]@click':function(){NewDataWin.choose(this,0);}
	});
};
function showFaculty(id,name){
	WidgetUI.Faculty.show();
	var dwf = new NewDataWin({flag:'_f',max:1,data:myFaculty,slt:'slt_parent_f',chk:'chk_parent_f',shw:'shw_child_f',ipt:'ipt_child_f',iptId:id,iptName:name});
	dwf.init();
	Ext.addBehaviors({	 
		'select[id=slt_parent_f]@change':function(){dwf.initChild();},
		'input[id=chk_parent_f]@click':function(){NewDataWin.choose(this,0);}
	});
}
function showSpecialty(id,name,afterExecute){
	WidgetUI.Specialty.show();
	var dws = new NewDataWin({flag:'_s',max:1,data:mySpecialty,slt:'slt_parent_s',chk:'chk_parent_s',shw:'shw_child_s',ipt:'ipt_child_s',iptId:id,iptName:name,aExecute:afterExecute});
	dws.init();
	Ext.addBehaviors({	 
		'select[id=slt_parent_s]@change':function(){dws.initChild();},
		'input[id=chk_parent_s]@click':function(){NewDataWin.choose(this,0);}
	});
}

function showSelectAge(id , name , afterExecute , minAge_ , maxAge_){

    WidgetUI.SelectAge.show();
    setAlreadyMinAge_MaxAge(minAge_,maxAge_);
    SelectAgeAfterExecute = afterExecute ;
}

function setAlreadyMinAge_MaxAge(minAge , maxAge){
    var slt_parent_s1 = Ext.getDom('slt_parent_s1');
    var slt_parent_s2 = Ext.getDom('slt_parent_s2');
    
    if(slt_parent_s1 != null && slt_parent_s2 != null){
        if(minAge != - 1 && maxAge != -1){

            
            for (var i = 0; i < slt_parent_s1.options.length; i++) {        
                if (slt_parent_s1.options[i].text == minAge) {        
                    slt_parent_s1.options[i].selected = true;     
                 }        
             }
             
            for (var i = 0; i < slt_parent_s2.options.length; i++) {        
                if (slt_parent_s2.options[i].text == maxAge) {        
                    slt_parent_s2.options[i].selected = true;     
                 }        
            } 
        }
    }
}

function checkSelectAge(){
    
    var slt_parent_s1 = document.getElementById("slt_parent_s1");
    slt_parent_s1 = slt_parent_s1[slt_parent_s1.selectedIndex].value ;
    var slt_parent_s2 = document.getElementById("slt_parent_s2");
    slt_parent_s2 = slt_parent_s2[slt_parent_s2.selectedIndex].value ;
    
    if(slt_parent_s1 >= slt_parent_s2){
        
        alert("选择最大年龄不能小于或等于最小年龄!");
        return false ;
    }else{
        minAge = slt_parent_s1;
        maxAge = slt_parent_s2;
        return true ;
    }
}

function Get(){
	var d =  NewDataWin.iptData();
	if(d.id!=''){
		Ext.getDom(NewDataWin.iptId).value = d.id;
		Ext.getDom(NewDataWin.iptName).value = d.name;
	}else{
		var v = '选择';
		switch(NewDataWin.flag){
			case '_c' : 
				v = '城市'
				break;
			case '_f' : 
				v = '职能'
				break;
			case '_s' : //发布信息
				v = '专业'
				break;		
			default:
				break;
		}
		Ext.getDom(NewDataWin.iptId).value = '';
		Ext.getDom(NewDataWin.iptName).value = '不限'+v;
	}
	if(NewDataWin.aExecute!=null && NewDataWin.aExecute!='' ) {
	  try{
		  eval(NewDataWin.aExecute);
	  }catch(e){
		  //alert('error');
	  }
	}
}
