//下拉选项框对象集
var divSelectObjs = {};


//选择层对象集
var popDivObjs = {};


//回调函数集
var valueChangeCallback = {};
valueChangeCallback['search_form'] = {};


//佳缘标签
var tag_f_array = {
1:'孝顺女', 2:'小资女', 3:'秀外慧中',
4:'理性女', 5:'感性女', 6:'善良', 7:'事业女',
8:'气质女', 9:'美女', 10:'居家女', 11:'爱运动',
12:'美食家', 13:'野蛮女友', 14:'宅女', 15:'直爽',
16:'爱小动物', 17:'小可爱', 18:'自由职业'};
var tag_m_array = {
1:'孝顺男', 2:'酷男', 3:'责任心',
4:'经济适用男', 5:'憨直', 6:'感性男', 7:'事业男',
8:'睿智', 9:'猥琐男', 10:'幽默男', 11:'爱旅行',
12:'宅男', 13:'体贴', 14:'有魄力', 15:'仗义',
16:'经理人', 17:'帅哥', 18:'稳重'};


//条件选项定义
var searchCondOptions = {
'sex':{'f':'女朋友','m':'男朋友'},
'age_range':{'18,22':'18-22', '22,28':'22-28', '28,33':'28-33', '33,37':'33-37', '38,45':'38-45', '45,0':'>45'},
'height_range':{'145,155':'145-155', '155,165':'155-165', '165,175':'165-175', '175,185':'175-185'},
'hot_location':[11,31,4401,4403,5101,50],
'astro':{1:'白羊座',2:'金牛座',3:'双子座',4:'巨蟹座',5:'狮子座',6:'处女座',7:'天秤座',8:'天蝎座',9:'射手座',10:'魔羯座',11:'水瓶座',12:'双鱼座'},
'tag':{},
/* <{*
'house':<{$house_array_json}>,
'education':<{$education_array_json}>,
'income':<{$income_array_json}>,
'marriage':<{$marriage_array_json}>,
'children':<{$children_array_json}>,
'level':<{$level_array_json}>,
'industry':<{$industry_array_json}>,
'company':<{$company_array_json}>,
'auto':<{$auto_array_json}>,
'nation':<{$nation_array_json}>,
'belief':<{$belief_array_json}>,
'ques':<{$ques_love_array_json}>,
'bloodtype':<{$bloodtype_array_json}>,
*}> */
'house':{"1":"\u6682\u672a\u8d2d\u623f","8":"\u9700\u8981\u65f6\u8d2d\u7f6e","2":"\u5df2\u8d2d\u4f4f\u623f","3":"\u4e0e\u4eba\u5408\u79df","4":"\u72ec\u81ea\u79df\u623f","5":"\u4e0e\u7236\u6bcd\u540c\u4f4f","6":"\u4f4f\u4eb2\u670b\u5bb6","7":"\u4f4f\u5355\u4f4d\u623f"},
'education':{"10":"\u4e2d\u4e13\u6216\u76f8\u5f53\u5b66\u5386","20":"\u5927\u4e13","30":"\u672c\u79d1","40":"\u53cc\u5b66\u58eb","50":"\u7855\u58eb","60":"\u535a\u58eb","70":"\u535a\u58eb\u540e"},
'income':{"10":"2000\u5143\u4ee5\u4e0b","20":"2000\uff5e5000\u5143","30":"5000\uff5e10000\u5143","40":"10000\uff5e20000\u5143","50":"20000\u5143\u4ee5\u4e0a"},
'marriage':{"1":"\u672a\u5a5a","2":"\u79bb\u5f02","3":"\u4e27\u5076","4":"\u672a\u5a5a\u3001\u79bb\u5f02","5":"\u672a\u5a5a\u3001\u4e27\u5076","6":"\u79bb\u5f02\u3001\u4e27\u5076"},
'children':{"1":"\u65e0\u5c0f\u5b69","2":"\u6709\u5c0f\u5b69\u5f52\u81ea\u5df1","3":"\u6709\u5c0f\u5b69\u5f52\u5bf9\u65b9"},
'level':{"1":"\u4e00\u661f\u7ea7\u4ee5\u4e0a","2":"\u4e8c\u661f\u7ea7\u4ee5\u4e0a","3":"\u4e09\u661f\u7ea7\u4ee5\u4e0a","4":"\u56db\u661f\u7ea7\u4ee5\u4e0a","5":"\u4e94\u661f\u7ea7\u4ee5\u4e0a"},
'industry':{"1":"\u5728\u6821\u5b66\u751f","2":"\u8ba1\u7b97\u673a\/\u4e92\u8054\u7f51\/IT","3":"\u7535\u5b50\/\u534a\u5bfc\u4f53\/\u4eea\u8868\u4eea\u5668","4":"\u901a\u4fe1\u6280\u672f","5":"\u9500\u552e","6":"\u5e02\u573a\u62d3\u5c55","7":"\u516c\u5173\/\u5546\u52a1","8":"\u91c7\u8d2d\/\u8d38\u6613","9":"\u5ba2\u6237\u670d\u52a1\/\u6280\u672f\u652f\u6301","10":"\u4eba\u529b\u8d44\u6e90\/\u884c\u653f\/\u540e\u52e4","11":"\u9ad8\u7ea7\u7ba1\u7406","12":"\u751f\u4ea7\/\u52a0\u5de5\/\u5236\u9020","13":"\u8d28\u63a7\/\u5b89\u68c0","14":"\u5de5\u7a0b\u673a\u68b0","15":"\u6280\u5de5","16":"\u8d22\u4f1a\/\u5ba1\u8ba1\/\u7edf\u8ba1","17":"\u91d1\u878d\/\u8bc1\u5238\/\u6295\u8d44\/\u4fdd\u9669","18":"\u623f\u5730\u4ea7\/\u88c5\u4fee\/\u7269\u4e1a","19":"\u4ed3\u50a8\/\u7269\u6d41","43":"\u4ea4\u901a\/\u8fd0\u8f93","20":"\u666e\u901a\u52b3\u52a8\u529b\/\u5bb6\u653f\u670d\u52a1","21":"\u666e\u901a\u670d\u52a1\u884c\u4e1a","22":"\u822a\u7a7a\u670d\u52a1\u4e1a","23":"\u6559\u80b2\/\u57f9\u8bad","24":"\u54a8\u8be2\/\u987e\u95ee","25":"\u5b66\u672f\/\u79d1\u7814","26":"\u6cd5\u5f8b","27":"\u8bbe\u8ba1\/\u521b\u610f","28":"\u6587\u5b66\/\u4f20\u5a92\/\u5f71\u89c6","29":"\u9910\u996e\/\u65c5\u6e38","30":"\u5316\u5de5","31":"\u80fd\u6e90\/\u5730\u8d28\u52d8\u67e5","32":"\u533b\u7597\/\u62a4\u7406","33":"\u4fdd\u5065\/\u7f8e\u5bb9","34":"\u751f\u7269\/\u5236\u836f\/\u533b\u7597\u5668\u68b0","35":"\u4f53\u80b2\u5de5\u4f5c\u8005","36":"\u7ffb\u8bd1","37":"\u516c\u52a1\u5458\/\u56fd\u5bb6\u5e72\u90e8","38":"\u79c1\u8425\u4e1a\u4e3b","39":"\u519c\/\u6797\/\u7267\/\u6e14\u4e1a","40":"\u8b66\u5bdf\/\u5176\u5b83","41":"\u81ea\u7531\u804c\u4e1a\u8005","42":"\u5176\u4ed6"},
'company':{"1":"\u653f\u5e9c\u673a\u5173","2":"\u4e8b\u4e1a\u5355\u4f4d ","3":"\u5916\u4f01\u4f01\u4e1a ","4":"\u4e16\u754c500\u5f3a ","5":"\u4e0a\u5e02\u516c\u53f8 ","6":"\u56fd\u6709\u4f01\u4e1a ","7":"\u79c1\u8425\u4f01\u4e1a ","8":"\u81ea\u6709\u516c\u53f8"},
'auto':{"1":"\u6682\u672a\u8d2d\u8f66","2":"\u5df2\u7ecf\u8d2d\u8f66"},
'nation':{"1":"\u6c49\u65cf","2":"\u85cf\u65cf","3":"\u671d\u9c9c\u65cf","4":"\u8499\u53e4\u65cf","5":"\u56de\u65cf","6":"\u6ee1\u65cf","7":"\u7ef4\u543e\u5c14\u65cf","8":"\u58ee\u65cf","9":"\u5f5d\u65cf","10":"\u82d7\u65cf","11":"\u5176\u5b83\u6c11\u65cf"},
'belief':{"1":"\u65e0\u5b97\u6559\u4fe1\u4ef0","2":"\u5927\u4e58\u4f5b\u6559\u663e\u5b97","3":"\u5927\u4e58\u4f5b\u6559\u5bc6\u5b97","4":"\u5c0f\u4e58\u4f5b\u6559","5":"\u9053\u6559","6":"\u5112\u6559","7":"\u57fa\u7763\u6559\u5929\u4e3b\u6559\u6d3e","8":"\u57fa\u7763\u6559\u4e1c\u6b63\u6559\u6d3e","9":"\u57fa\u7763\u6559\u65b0\u6559\u6d3e","10":"\u72b9\u592a\u6559","11":"\u4f0a\u65af\u5170\u6559\u4ec0\u53f6\u6d3e","12":"\u4f0a\u65af\u5170\u6559\u900a\u5c3c\u6d3e","13":"\u5370\u5ea6\u6559","14":"\u795e\u9053\u6559","15":"\u8428\u6ee1\u6559","16":"\u5176\u5b83\u5b97\u6559\u4fe1\u4ef0"},
'ques_love':{"INFP":"\u5fc3\u7406\u5b66\u5bb6\u578b","INFJ":"\u4f5c\u5bb6\u578b","ENFP":"\u793e\u4f1a\u6d3b\u52a8\u5bb6\u578b","ENFJ":"\u6f14\u8bb2\u5bb6\u578b","INTP":"\u79d1\u5b66\u5bb6\u578b","INTJ":"\u4f01\u4e1a\u5bb6\u578b","ENTP":"\u5f8b\u5e08\u578b","ENTJ":"\u9886\u8896\u578b","ISFJ":"\u5949\u732e\u8005\u578b","ISTJ":"\u516c\u52a1\u5458\u578b","ESFJ":"\u6148\u5584\u5bb6\u578b","ESTJ":"\u7ba1\u7406\u8005\u578b","ISFP":"\u827a\u672f\u5bb6\u578b","ISTP":"\u5de7\u5320\u578b","ESFP":"\u6f14\u5458\u578b","ESTP":"\u5192\u9669\u5bb6\u578b"},
'bloodtype':{"1":"A\u578b","2":"B\u578b","3":"O\u578b","4":"AB\u578b","5":"\u5176\u5b83","6":"\u4fdd\u5bc6"}
};


//默认值
var searchCondDefaultValue = {};
searchCondDefaultValue['search_form'] = {
'sex':'f', 'min_age':0, 'max_age':0, 'work_location':0, 'work_sublocation':0, 'avatar':0, 'min_height':0, 'max_height':0, 'house':0,
'income':0, 'income_more_than':0, 'education':0, 'edu_more_than':0, 'marriage':0, 'children':0, 'level':0, 'industry':0, 'company':0,
'auto':0, 'nation':0, 'belief':0, 'ques_love':0, 'bloodtype':0, 'home_location':0, 'home_sublocation':0, 'love_location':0,
'love_sublocation':0, 'tag':0, 'animal':0, 'astro':0, 'online':0
};


// ***********************************************************


//下拉选项框样式定义
var div_select_style = {
	'sex':{
		'ul':{'class':'select w_85','style':''}
	},
	'min_age':{
		'container':{'class':'select w_118','style':'width:50px;height:250px;display:none;','width':50},
		'ul':{'class':'select','style':'display:block'},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'max_age':{
		'container':{'class':'select w_118','style':'width:50px;height:250px;display:none;','width':50},
		'ul':{'class':'select','style':'display:block'},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'min_height':{
		'container':{'class':'select w_118','style':'width:50px;height:250px;display:none;','width':50},
		'ul':{'class':'select','style':'width:50px;'},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'max_height':{
		'container':{'class':'select w_118','style':'width:50px;height:250px;display:none;','width':50},
		'ul':{'class':'select','style':'width:50px;'},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'house':{
		'ul':{'class':'select w_118','style':''}
	},
	'education':{
		'ul':{'class':'select w_118','style':''}
	},
	'income':{
		'ul':{'class':'select w_118','style':''}
	},
	'marriage':{
		'ul':{'class':'select w_118','style':''}
	},
	'auto':{
		'ul':{'class':'select w_118','style':''}
	},
	'industry':{
		'container':{'class':'select w_118','style':'width:120px;height:250px;display:none;','width':120},
		'ul':{'class':'select w_118','style':''},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'children':{
		'ul':{'class':'select w_118','style':''}
	},
	'company':{
		'container':{'class':'select w_118','style':'width:120px;height:250px;display:none;','width':120},
		'ul':{'class':'select w_118','style':''},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'bloodtype':{
		'ul':{'class':'select w_118','style':''}
	},
	'nation':{
		'ul':{'class':'select w_118','style':''}
	},
	'belief':{
		'container':{'class':'select w_118','style':'width:120px;height:250px;display:none;','width':120},
		'ul':{'class':'select w_118','style':''},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'level':{
		'ul':{'class':'select w_118','style':''}
	},
	'ques_love':{
		'container':{'class':'select w_118','style':'width:120px;height:250px;display:none;','width':120},
		'ul':{'class':'select w_118','style':''},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'tag':{
		'container':{'class':'select w_118','style':'width:120px;height:250px;display:none;','width':120},
		'ul':{'class':'select w_118','style':''},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'page':{
		'container':{'class':'select w_85','style':'width:85px;height:250px;display:none;','width':85},
		'em':{'style':'display:block;height:24px;padding-top:3px'},
		'ul':{'class':'select w_85','style':'top:-253px;'},
		'scrollbar':{'class':'scroll_box','style':'height:250px;display:none;'}
	},
	'searchType':{
		'ul':{'class':'select','style':'width:135px'}
	}
};




/**
* select div
*/
function show_select_options(formId, name, optionObjs, defaultValue)
{
	var name2 = formId +'_'+ name;
	var showId = "cond_"+name2+"_show", optionsId = "cond_"+name2+"_options";
	if(JY.$(optionsId).style.display=='none') {
		JY.$(optionsId).style.display='block';
		var jqPDiv = JQ('#'+optionsId).parent('div');
		if(jqPDiv.length>0){jqPDiv.css('zIndex', 10000);}
		if (JY.$('scrollbar_'+name2)) {
			JQ("#scrollbar_"+name2).css('zIndex', 10000);
			JY.$("scrollbar_"+name2).style.display = 'block';
			JY.$('container_'+name2).style.display = 'block';
			var jqPDiv = JQ('#container_'+name2).parent('div');
			if(jqPDiv.length>0){jqPDiv.css('zIndex', 10000);}
			if (divSelectObjs[formId][name] && !divSelectObjs[formId][name].scrollbar) {
				divSelectObjs[formId][name].buildScrollbar();
			}
		}
	}
	JY.$(showId).innerHTML = optionObjs[defaultValue] ? optionObjs[defaultValue] : '不限';
	var currOpt=JY.$("cond_"+name2+"_opt_"+defaultValue);
	if(currOpt)currOpt.className = "hov";
	divSelectObjs[formId][name].isShow = true;
	on_all_select_show(formId, name);
}
function hide_select_options(formId, name)
{
	var name2 = formId +'_'+ name;
	var optionsId = "cond_"+name2+"_options";
	if (JY.$('scrollbar_'+name2)) {
		JY.$("cond_"+name2+"_options").style.display = 'none';
		JY.$("scrollbar_"+name2).style.display = 'none';
		JQ('#container_'+name2).fadeOut("fast");
		var jqPDiv = JQ('#container_'+name2).parent('div');
		if(jqPDiv.length>0){jqPDiv.css('zIndex', 0);}
	} else {
		JQ("#"+optionsId).fadeOut("fast");
		var jqPDiv = JQ('#'+optionsId).parent('div');
		if(jqPDiv.length>0){jqPDiv.css('zIndex', 0);}
	}
	divSelectObjs[formId][name].isShow = false;
}
function create_select_options(formId, name, optionObjs, defaultValue, limit)
{
	var name2 = formId +'_'+ name;
	var showId = "cond_"+name2+"_show", optionsId = "cond_"+name2+"_options";
	//create
	if(!limit){
		var optionsAry = ['<li><a id="cond_'+name2+'_opt_0" href="javascript:_set_select_value(\''+formId+'\',\''+name+'\',\'不限\',\'0\')">不限</a></li>'];
	}else{
		var optionsAry = [];
	}
	var cla, str;
	for(i in optionObjs) {
		str = '<li><a id="cond_'+name2+'_opt_'+i+'" href="javascript:_set_select_value(\''+formId+'\',\''+name+'\',\''+optionObjs[i]+'\',\''+i+'\')" title="'+optionObjs[i]+'">'+optionObjs[i]+'</a></li>';
		optionsAry.push(str);
	}
	JY.$(optionsId).innerHTML = optionsAry.join("\n");
	JQ('#'+optionsId).bind('mouseover', function(event){
		JQ('#'+this.id+' a').removeClass();
	});
	if(typeof optionObjs[defaultValue]!='undefined'){
		JY.$(showId).innerHTML = optionObjs[defaultValue];
	}else{
		JY.$(showId).innerHTML = '不限';
	}
}
function _set_select_value(formId, name, showName, value)
{
	var name2 = formId +'_'+ name;
	var showId = "cond_"+name2+"_show", optionsId = "cond_"+name2+"_options", hiddenId = "cond_"+name2+"_input";
	JY.$(showId).innerHTML = showName;
	var oldValue = JY.$(hiddenId).value;
	JY.$(hiddenId).value = value;
	if(typeof valueChangeCallback[formId]=='undefined'){
		valueChangeCallback[formId]={};
	}
	if(oldValue!=value && typeof valueChangeCallback[formId][name]=='function'){
		valueChangeCallback[formId][name](formId, name, showName, value);
	}
	hide_select_options(formId, name);
}
function get_select_value(formId, name)
{
	name = formId +'_'+ name;
	var hiddenId = "cond_"+name+"_input";
	var value = JY.$(hiddenId).value;
	return value ? value : 0;
}
function switch_select_show(e, name)
{
	e = e ? e : event;
	if(!e.target) e.target = e.srcElement;
	var formId = JQ(e.target).parents('form').attr('id');
	if(typeof formId=='undefined'||formId==''){alert('此控件未被任何表单包含或者表单未设置id属性！');}
	name2 = formId +'_'+ name;
	var showId = "cond_"+name2+"_show", optionsId = "cond_"+name2+"_options", hiddenId = "cond_"+name2+"_input";
	if(JY.$(optionsId).style.display=='none'){
		var defaultValue = document.getElementById(hiddenId).value;
		defaultValue = defaultValue ? defaultValue : 0;
		show_select_options(formId, name, searchCondOptions[name], defaultValue);
	}else{
		hide_select_options(formId, name);
	}
}
function on_select_opt_in(formId, name)
{
	if(divSelectObjs[formId][name].hideTimer){
		clearTimeout(divSelectObjs[formId][name].hideTimer);
		divSelectObjs[formId][name].hideTimer = null;
	}
}
function on_select_opt_out(formId, name)
{
	divSelectObjs[formId][name].hideTimer = setTimeout('divSelectObjs[\''+formId+'\'][\''+name+'\'].hide()', 2000);
}
/**
* div select class
*/
function DivSelect(formId, name, hasScrollbar)
{
	this.name = name;
	this.formId = formId;
	this.name2 = this.formId+'_'+this.name;
	this.hasScrollbar = hasScrollbar;
	this.scroller = null;
	this.scrollbar = null;
	this.isShow = false;
	this.options = {};
	this.hasOptions = 0;
	this.defaultValue = 0;
	this.hasDefault = 0;
	this.style = {};
	this.hasStyle = 0;
	this.hasNoLimit = 1;
	this.setOptions = function(options)
	{
		if(typeof options!='object'){alert('选项列表类型错误(为object类型)');}
		this.options = options;
		this.hasOptions = 1;
		searchCondOptions[this.name] = options;
	}
	this.setDefaultValue = function(value)
	{
		this.defaultValue = value;
		this.hasDefault = 1;
		if(typeof searchCondDefaultValue[this.formId]=='undefined'){
			searchCondDefaultValue[this.formId] = {};
		}
		searchCondDefaultValue[this.formId][this.name] = value;
	}
	this.setStyle = function(style)
	{
		if(typeof style!='object'){alert('样式配置类型错误(为object类型)');}
		this.style = style;
		this.hasStyle = 1;
		div_select_style[this.name] = style;
	}
	this.getHtml = function()
	{
		var html = [], formId = this.formId, name = this.name, name2 = this.name2;
		if(!this.hasOptions){
			if(!searchCondOptions[name]){
				alert(formId+'::'+name+': 条件选项尚未设置');
			}
			this.setOptions(searchCondOptions[name]);
		}
		if(!this.defaultValue){
			if(typeof searchCondDefaultValue[this.formId]=='undefined'){searchCondDefaultValue[this.formId]={};}
			if(typeof searchCondDefaultValue[this.formId][name]=='undefined'){
				alert(formId+'::'+name+': 默认值尚未设置');
			}
			this.setDefaultValue(searchCondDefaultValue[this.formId][name]);
		}
		if(!this.hasStyle){
			if(!div_select_style[name]){
				alert(formId+'::'+name+': 样式尚未设置');
			}
			this.setStyle(div_select_style[name]);
		}
		if (this.hasScrollbar) {
			html.push('<em id="cond_'+name2+'_show" onclick="switch_select_show(event,\''+name+'\')">不限</em>');
			html.push('<span id="cond_'+name2+'_btn" class="select_img" onclick="switch_select_show(event,\''+name+'\')"></span>');
			html.push('<div id="container_'+name2+'" class="'+this.style['container']['class']+'" style="'+this.style['container']['style']+';z-index:10000">');
			html.push('<ul style="'+this.style['ul']['style']+';z-index:10000" class="'+this.style['ul']['class']+'" id="cond_'+name2+'_options" onmouseover="on_select_opt_in(\''+formId+'\',\''+name+'\')" onmouseout="on_select_opt_out(\''+formId+'\',\''+name+'\')">');
			html.push('</ul>');
			html.push('<input type="hidden" id="cond_'+name2+'_input" name="'+name+'" value="'+this.defaultValue+'">');
			html.push('</div>');
			html.push('<div class="scroll_box" id="scrollbar_'+name2+'" style="'+this.style['scrollbar']['style']+'" onmouseover="on_select_opt_in(\''+formId+'\',\''+name+'\')" onmouseout="on_select_opt_out(\''+formId+'\',\''+name+'\')">');
			html.push('	<div class="s_top" id="up_'+name2+'"></div>');
			html.push('	<div class="s_h" style="height:200px;" id="track_'+name2+'">');
			html.push('		<div class="s_mid" id="handle_'+name2+'">');
			html.push('			<div class="s_t" id="handle_'+name2+'1"></div>');
			html.push('			<div class="s_m" id="handle_'+name2+'2" style="height:20px"></div>');
			html.push('			<div class="s_b" id="handle_'+name2+'3"></div>');
			html.push('		</div>');
			html.push('	</div>');
			html.push('	<div class="s_bottom" id="down_'+name2+'"></div>');
			html.push('</div>');
		} else {
			html.push('<em id="cond_'+name2+'_show" onclick="switch_select_show(event,\''+name+'\')"'+(this.style['em']?(' style="'+this.style['em']['style']+'"'):'')+'>不限</em>');
			html.push('<span id="cond_'+name2+'_btn" class="select_img" onclick="switch_select_show(event,\''+name+'\')"></span>');
			html.push('<ul style="'+this.style['ul']['style']+';z-index:10000" class="'+this.style['ul']['class']+'" id="cond_'+name2+'_options" onmouseover="on_select_opt_in(\''+formId+'\',\''+name+'\')" onmouseout="on_select_opt_out(\''+formId+'\',\''+name+'\')">');
			html.push('</ul>');
			html.push('<input type="hidden" id="cond_'+name2+'_input" name="'+name+'" value="'+this.defaultValue+'">');
		}
		return html.join("\n");
	}
	this.build = function()
	{
		document.write(this.getHtml());
		create_select_options(this.formId, this.name, this.options, this.defaultValue, !this.hasNoLimit);
		JY.$("cond_"+this.name2+"_options").style.display = 'none';
		if(typeof divSelectObjs[this.formId]=='undefined'){
			divSelectObjs[this.formId] = {};
		}
		divSelectObjs[this.formId][this.name] = this;
	}
	this.buildScrollbar = function()
	{
		this.scroller  = new jsScroller('cond_'+this.name2+'_options', this.style['container']['width'], 250);
		this.scrollbar = new jsScrollbar('scrollbar_'+this.name2,this.scroller,true,null,'up_'+this.name2,'down_'+this.name2,'track_'+this.name2,'handle_'+this.name2);
	}
	this.cleanScrollbar = function()
	{
		this.scroller  = null;
		this.scrollbar = null;
	}
	this.show = function(value)
	{
		show_select_options(this.formId, this.name, this.options, value?value:0);
	}
	this.hide = function()
	{
		hide_select_options(this.formId, this.name);
	}
	this.getValue = function()
	{
		return get_select_value(this.formId, this.name);
	}
	this.setValue = function(value, showName)
	{
		if(!showName && this.hasOptions){
			showName = this.options[value];
		}
		_set_select_value(this.formId, this.name, showName, value);
	}
	this.createOptions = function(optionObjs, value)
	{
		this.setOptions(optionObjs);
		create_select_options(this.formId, this.name, optionObjs, value, !this.hasNoLimit);
		if(this.hasScrollbar) this.cleanScrollbar();
	}
	this.onChange = function(callback)
	{
		if(typeof callback=='function'){
			if(typeof valueChangeCallback[this.formId]=='undefined'){
				valueChangeCallback[this.formId] = {};
			}
			valueChangeCallback[this.formId][this.name] = callback;
		}
	}
}
//~class end


//sex change handle
function onSexChange(formId, name, showName, value)
{
	fill_tag_option_value(formId, name, showName, value)
}


/**
* age div
*/
function fill_age_option_value()
{
	var optionObjs = {};
	for(var i=18;i<100;i++){
		optionObjs[i]=i;
	}
	searchCondOptions['min_age'] = optionObjs;
	searchCondOptions['max_age'] = optionObjs;
}
function onMinAgeChange(formId, name, showName, value)
{
	var maxAgeValue = divSelectObjs[formId]['max_age'].getValue();
	if (value > maxAgeValue) {
		divSelectObjs[formId]['max_age'].setValue(0, '不限');
	}
	var optionObjs = {};
	for(var i=value<18?18:value;i<100;i++) { optionObjs[i]=i; }
	divSelectObjs[formId]['max_age'].createOptions(optionObjs, maxAgeValue);
	////
	show_age_range(formId);
}
function set_age_value(formId, minAgeValue, maxAgeValue)
{
	divSelectObjs[formId]['min_age'].setValue(minAgeValue, minAgeValue==0?'不限':minAgeValue);
	divSelectObjs[formId]['max_age'].setValue(maxAgeValue, maxAgeValue==0?'不限':maxAgeValue);
	close_age_div(formId);
}
function close_age_div(formId)
{
	var jqDiv = JQ('#'+formId+'_age_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 0);}
	jqDiv.fadeOut("fast");
	popDivObjs[formId]['age_range'].isShow = false;
}
function show_age_div(formId)
{
	var jqDiv = JQ('#'+formId+'_age_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 10000);}
	jqDiv.fadeIn("fast");
	popDivObjs[formId]['age_range'].isShow = true;
	on_all_select_show(formId, 'age_range');
}
function switch_age_div_show(formId)
{
	if(JY.$(formId+'_age_select_div').style.display=='none'){
		show_age_div(formId);
	}else{
		close_age_div(formId);
	}
}
function show_age_range(formId)
{
	var minAgeValue = divSelectObjs[formId]['min_age'].getValue();
	var maxAgeValue = divSelectObjs[formId]['max_age'].getValue();
	var show = (minAgeValue==0?'不限':minAgeValue) +'-'+ (maxAgeValue==0?'不限':maxAgeValue);
	JY.$('cond_'+formId+'_age_range_show').innerHTML = show;
	if(typeof valueChangeCallback[formId]['age_range']=='function'){
		valueChangeCallback[formId]['age_range'](formId, 'age_range', minAgeValue, maxAgeValue);
	}
}
//创建年龄选择层
function build_age_div(formId)
{
	var h = [], name2 = formId, i=0;
	if (!divSelectObjs[formId]) {divSelectObjs[formId]={};}
	h.push('<em id="cond_'+name2+'_age_range_show" onclick="switch_age_div_show(\''+formId+'\')">不限</em>');
	h.push('<span class="select_img" onclick="switch_age_div_show(\''+formId+'\')"></span>');
	h.push('<div class="years hov_box" id="'+name2+'_age_select_div" style="display:none;z-index:10000">');
	h.push('	<div class="clear"><span>选择年龄</span><a href="javascript:switch_age_div_show(\''+formId+'\')" class="close_btn"></a></div>');
	h.push('	<ul id="cond_'+name2+'_age_range_options">');

	for (var k in searchCondOptions['age_range']){
		h.push('<li><a id="cond_\''+name2+'\'_age_range_options_'+i+'" href="javascript:set_age_value(\''+formId+'\','+k+')">'+searchCondOptions['age_range'][k]+'</a></li>');
		++i;
	}

	h.push('		<li style="padding-right:0;padding-top:6px;">');
	h.push('			<div class="select_box" style="width:60px;">');
	h.push('			<scri'+'pt>');
	h.push('			divSelectObjs["'+formId+'"]["min_age"] = new DivSelect("'+formId+'", "min_age", true);');
	h.push('			divSelectObjs["'+formId+'"]["min_age"].build();');
	h.push('			divSelectObjs["'+formId+'"]["min_age"].onChange(onMinAgeChange);');
	h.push('			</scri'+'pt>');
	h.push('			</div>');
	h.push('		</li>');
	h.push('		<li style="padding:0 5px;padding-top:6px;"> 到 </li>');
	h.push('		<li style="padding-right:0;padding-top:6px;">');
	h.push('			<div class="select_box" style="width:60px;">');
	h.push('			<scri'+'pt>');
	h.push('			divSelectObjs["'+formId+'"]["max_age"] = new DivSelect("'+formId+'", "max_age", true);');
	h.push('			divSelectObjs["'+formId+'"]["max_age"].build();');
	h.push('			divSelectObjs["'+formId+'"]["max_age"].onChange(show_age_range);');
	h.push('			</scri'+'pt>');
	h.push('			</div>');
	h.push('		</li>');
	h.push('		<li style="padding:0 5px;padding-top:6px;">岁</li>');
	h.push('		<li style="padding-top:20px;">');
	h.push('			<a href="javascript:close_age_div(\''+formId+'\')" class="ensure">确定</a>');
	h.push('		</li>');
	h.push('	</ul>');
	h.push('</div>');

	document.write(h.join("\n"));
	if(typeof popDivObjs[formId]=='undefined'){
		popDivObjs[formId] = {};
	}
}
//年龄选择层包装类
function AgeSelect(formId)
{
	this.formId = formId;
	this.name = 'age_range';
	this.isShow = false;
	this.build = function()
	{
		build_age_div(this.formId);
		popDivObjs[formId][this.name] = this;
		show_age_range(this.formId);
	}
	this.show = function()
	{
		show_age_div(this.formId);
	}
	this.hide = function()
	{
		close_age_div(this.formId);
	}
	this.onChange = function(callback)
	{
		if(typeof callback=='function'){
			valueChangeCallback[this.formId][this.name] = callback;
		}
	}
}




/**
* height div
*/
function fill_height_option_value()
{
	var optionObjs = {};
	for(var i=140;i<=260;i++){
		optionObjs[i]=i;
	}
	searchCondOptions['min_height'] = optionObjs;
	searchCondOptions['max_height'] = optionObjs;
}
function onMinHeightChange(formId, name, showName, value)
{
	var maxHeightValue = divSelectObjs[formId]['max_height'].getValue();
	if (value > maxHeightValue) {
		divSelectObjs[formId]['max_height'].setValue(0, '不限');
	}
	var optionObjs = {};
	for(var i=value<140?140:value;i<=260;i++) { optionObjs[i]=i; }
	divSelectObjs[formId]['max_height'].createOptions(optionObjs, maxHeightValue);
	////
	show_height_range(formId);
}
function set_height_value(formId, minHeightValue, maxHeightValue)
{
	divSelectObjs[formId]['min_height'].setValue(minHeightValue, minHeightValue==0?'不限':minHeightValue);
	divSelectObjs[formId]['max_height'].setValue(maxHeightValue, maxHeightValue==0?'不限':maxHeightValue);
	close_height_div(formId);
}
function close_height_div(formId)
{
	var jqDiv = JQ('#height_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 0);}
	jqDiv.fadeOut("fast");
	popDivObjs[formId]['height_range'].isShow = false;
}
function show_height_div(formId)
{
	var jqDiv = JQ('#height_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 10000);}
	jqDiv.fadeIn("fast");
	popDivObjs[formId]['height_range'].isShow = true;
	on_all_select_show(formId, 'height_range');
}
function switch_height_div_show(formId)
{
	if(JY.$('height_select_div').style.display=='none'){
		show_height_div(formId);
	}else{
		close_height_div(formId);
	}
}
function show_height_range(formId)
{
	var minHeightValue = divSelectObjs[formId]['min_height'].getValue();
	var maxHeightValue = divSelectObjs[formId]['max_height'].getValue();
	var show = (minHeightValue==0?'不限':minHeightValue) +'-'+ (maxHeightValue==0?'不限':maxHeightValue);
	JY.$('cond_height_range_show').innerHTML = show;
}
//身高选择层包装类
function HeightSelect(formId)
{
	this.formId = formId;
	this.name = 'height_range';
	this.isShow = false;
	this.build = function()
	{
		var h=[], formId=this.formId, i=0;
		h.push('<em id="cond_height_range_show" onclick="switch_height_div_show(\''+formId+'\')"></em>');
		h.push('<span class="select_img" onclick="switch_height_div_show(\''+formId+'\')"></span>');
		h.push('<div class="years hov_box" id="height_select_div" style="display:none;z-index:10000">');
		h.push('<div class="clear">');
		h.push('<span>选择身高</span>');
		h.push('<a href="javascript:switch_height_div_show(\''+formId+'\')" class="close_btn"></a>');
		h.push('</div>');
		h.push('<ul id="cond_height_range_options" style="display:block;" class="clear">');

		for(var k in searchCondOptions['height_range']){
			h.push('<li><a id="cond_height_range_options_'+i+'" href="javascript:set_height_value(\''+formId+'\','+k+')">'+searchCondOptions['height_range'][k]+'</a></li>');
			++i;
		}

		h.push('	<li style="padding-right:0;padding-top:6px;">');
		h.push('		<div class="select_box" style="width:60px;">');

		h.push('		<script>');
		h.push('		var minHeightSelect = new DivSelect("'+formId+'", "min_height", true);');
		h.push('		minHeightSelect.build();');
		h.push('		minHeightSelect.onChange(onMinHeightChange);');
		h.push('		</script>');

		h.push('		</div>');
		h.push('	</li>');
		h.push('	<li style="padding:0;padding-top:6px;"> 到 </li>');
		h.push('	<li style="padding-right:0;padding-top:6px;">');
		h.push('		<div class="select_box" style="width:60px;">');

		h.push('		<script>');
		h.push('		var maxHeightSelect = new DivSelect("'+formId+'", "max_height", true);');
		h.push('		maxHeightSelect.build();');
		h.push('		maxHeightSelect.onChange(show_height_range);');
		h.push('		</script>');

		h.push('		</div>');
		h.push('	</li>');
		h.push('	<li style="padding:0;padding-top:6px;">cm</li>');
		h.push('	<li style="padding-top:20px;">');
		h.push('		<a href="javascript:close_height_div(\''+formId+'\')" class="ensure">确定</a>');
		h.push('	</li>');
		h.push('</ul>');
		h.push('</div>');
		document.write(h.join("\n"));
		popDivObjs[formId][this.name] = this;
		show_height_range(formId);
	}
	this.show = function()
	{
		show_height_div(this.formId);
	}
	this.hide = function()
	{
		 close_height_div(this.formId);
	}
}




/**
* 地区选择层
*
* 依赖 LSK 和 LOK
*/
function set_location_value(formId, type, value, noShow)
{
	if(typeof noShow=='undefined'){
		noShow = false;
	}
	var name2 = formId+'_'+type;
	var oldValue = JY.$('cond_'+name2+'_location_input').value;
	JY.$('cond_'+name2+'_location_input').value = value;
	set_sublocation_value(formId, type, value*100);
	hide_location_div(formId, type);
	if(!noShow && !popDivObjs[formId][type+'_location'].notShowSubLoc){
		show_sublocation_div(formId, type);
	}
	create_sublocation_options(formId, type, value);
	show_location_cond(formId, type);
	if(typeof valueChangeCallback[formId][type+'_location_loc']=='function'){
		valueChangeCallback[formId][type+'_location_loc'](formId, type+'_location', LSK[value], value, oldValue);
	}
}
//用户点击的"不限"传值为0，省份改变时自动改为"不限"传值为xx00
function set_sublocation_value(formId, type, value)
{
	var name2 = formId+'_'+type;
	var oldValue = JY.$('cond_'+name2+'_sublocation_input').value;
	JY.$('cond_'+name2+'_sublocation_input').value = value;
	hide_location_div(formId, type);
	hide_sublocation_div(formId, type);
	show_location_cond(formId, type);
	if(typeof valueChangeCallback[formId][type+'_location_subloc']=='function'){
		valueChangeCallback[formId][type+'_location_subloc'](formId, type+'_location', ''+value+'', value, oldValue);
	}
}
function show_location_div(formId, type)
{
	var name2 = formId+'_'+type;
	var jqDiv = JQ('#'+name2+'_location_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 10000);}
	jqDiv.fadeIn("fast");
	popDivObjs[formId][type+'_location'].isShow = true;
	on_all_select_show(formId, type+'_location');
}
function hide_location_div(formId, type)
{
	var name2 = formId+'_'+type;
	var jqDiv = JQ('#'+name2+'_location_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 0);}
	jqDiv.fadeOut("fast");
	popDivObjs[formId][type+'_location'].isShow = false;
}
function show_sublocation_div(formId, type)
{
	var name2 = formId+'_'+type;
	var jqDiv = JQ('#'+name2+'_sublocation_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 10000);}
	jqDiv.fadeIn("slow");
	popDivObjs[formId][type+'_location'].isShow = true;
}
function hide_sublocation_div(formId, type)
{
	var name2 = formId+'_'+type;
	var jqDiv = JQ('#'+name2+'_sublocation_select_div');
	var jqPDiv = jqDiv.parent('div');
	if(jqPDiv.length>0){jqPDiv.css('zIndex', 0);}
	jqDiv.fadeOut("fast");
}
function create_sublocation_options(formId, type, value)
{
	if(!LSK[value]){
		hide_sublocation_div(formId, type);
		return;
	}
	if(LOK[value].length<=2){
		hide_sublocation_div(formId, type);
		return;
	}
	var name2 = formId+'_'+type;
	JY.$(name2+'_sublocation_select_title').innerHTML = LSK[value];
	var options = [];
	options.push('<a href="javascript:set_sublocation_value(\''+formId+'\',\''+type+'\',0)">'+LSK[value]+'全部</a><br />');
	for(var i in LOK[value]){
		if(i%100==0) continue;
		options.push('<a href="javascript:set_sublocation_value(\''+formId+'\',\''+type+'\','+i+')">'+LOK[value][i]+'</a>');
	}
	JY.$(name2+'_sublocation_select_options').innerHTML = options.join('');
}
function switch_location_div_show(formId, type)
{
	var name2 = formId+'_'+type;
	if (JY.$(name2+'_sublocation_select_div').style.display!='none'){
		hide_sublocation_div(type);
	}
	if(JY.$(name2+'_location_select_div').style.display=='none'){
		show_location_div(formId, type);
	}else{
		hide_location_div(formId, type);
	}
}
function show_location_cond(formId, type)
{
	var name2 = formId+'_'+type;
	var loc = JY.$('cond_'+name2+'_location_input').value;
	var subloc = JY.$('cond_'+name2+'_sublocation_input').value, show;
	if(subloc!=0){
		loc = Math.floor(subloc/100);
	}
	if(loc==0){
		show = '不限';
	}else{
		show = LSK[loc];
	}
	if(subloc!=0 && subloc%100!=0){
		show += LOK[loc][subloc];
	}
	JY.$('cond_'+name2+'_location_show').innerHTML = show;
}
//创建地区选择层
function build_location_div(formId, type, hasHotCity)
{
	var html = [], name2 = formId+'_'+type;
	html.push('<em id="cond_'+name2+'_location_show" onclick="switch_location_div_show(\''+formId+'\',\''+type+'\')">不限</em>');
	html.push('<span class="select_img" onclick="switch_location_div_show(\''+formId+'\',\''+type+'\')"></span>');
	html.push('<div class="hov_box city_hov" style="width:310px;display:none;z-index:10000" id="'+name2+'_location_select_div">');
	if (hasHotCity) {
		html.push('	<div class="clear"><span style="text-align:left">热门城市</span><a href="javascript:hide_location_div(\''+formId+'\',\''+type+'\')" class="close_btn"></a></div>');
		html.push('	<div class="s_city">');
		var hotCityHtml = [], no;
		for(var i in searchCondOptions['hot_location']){
			no = searchCondOptions['hot_location'][i];
			if(no>100){
				html.push('<a href="javascript:set_sublocation_value(\''+formId+'\',\''+type+'\','+no+')">'+LOK[Math.floor(no/100)][no]+'</a>');
			}else{
				html.push('<a href="javascript:set_location_value(\''+formId+'\',\''+type+'\','+no+')">'+LSK[no]+'</a>');
			}
		}
		html.push('	</div>');
	} else {
		html.push('	<div class="clear"><span style="text-align:left"></span><a href="javascript:hide_location_div(\''+formId+'\',\''+type+'\')" class="close_btn"></a></div>');
	}
	html.push('	<div class="shengfen">');
	html.push('		<span style="text-align:left">选择省份</span><br />');
	html.push('		<a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',0)">不限省份</a><br />');
	html.push('		<strong>A-G</strong><br />');
	html.push('		<a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',34)">安徽</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',11)">北京</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',50)">重庆</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',35)">福建</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',62)">甘肃</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',44)">广东</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',45)">广西</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',52)">贵州</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',82)">澳门</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',99)">国外</a><br />');
	html.push('		<strong>H-J</strong><br />');
	html.push('		<a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',46)">海南</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',13)">河北</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',41)">河南</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',23)">黑龙江</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',42)">湖北</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',43)">湖南</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',22)">吉林</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',32)">江苏</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',36)">江西</a><br />');
	html.push('		<strong>L-S</strong><br />');
	html.push('		<a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',21)">辽宁</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',15)">内蒙古</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',64)">宁夏</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',63)">青海</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',37)">山东</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',14)">山西</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',61)">陕西</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',31)">上海</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',51)">四川</a><br />');
	html.push('		<strong>T-Z</strong><br />');
	html.push('		<a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',71)">台湾</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',12)">天津</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',54)">西藏</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',81)">香港</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',65)">新疆</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',53)">云南</a><a href="javascript:set_location_value(\''+formId+'\',\''+type+'\',33)">浙江</a>');
	html.push('	</div>');
	html.push('	<input type="hidden" name="'+type+'_location" id="cond_'+name2+'_location_input" value=""/>');
	html.push('</div>');
	html.push('');
	html.push('<div class="hov_box city_hov" style="display:none;z-index:10000" id="'+name2+'_sublocation_select_div">');
	html.push('	<div class="clear shengfen"><div class="f_l"><strong id="'+name2+'_sublocation_select_title">北京</strong>&nbsp;<a href="javascript:hide_sublocation_div(\''+formId+'\',\''+type+'\');show_location_div(\''+formId+'\',\''+type+'\');" style="color:#0066cb;">返回其它省市</a></div><a href="javascript:hide_sublocation_div(\''+formId+'\',\''+type+'\')" class="close_btn"></a></div>');
	html.push('	<div class="shengfen" id="'+name2+'_sublocation_select_options"></div>');
	html.push('	<input type="hidden" name="'+type+'_sublocation" id="cond_'+name2+'_sublocation_input" value=""/>');
	html.push('</div>');

	document.write(html.join("\n"));
}
//地区选择层包装类
function LocationSelect(formId, type)
{
	this.formId = formId;
	this.type = type;
	this.name = type+'_location';
	this.isShow = false;
	this.notShowSubLoc = false;
	this.hasHotCity = true;
	this.build = function()
	{
		build_location_div(this.formId, type, this.hasHotCity);
		if(typeof popDivObjs[this.formId]=='undefined'){
			popDivObjs[this.formId] = {};
		}
		popDivObjs[this.formId][type+'_location'] = this;
		set_location_value(this.formId, type, searchCondDefaultValue[this.formId][type+'_location'], true);
		set_sublocation_value(this.formId, type, searchCondDefaultValue[this.formId][type+'_sublocation'], true);
	}
	this.show = function()
	{
		show_location_div(this.formId, this.type);
	}
	this.hide = function()
	{
		hide_location_div(this.formId, this.type);
		hide_sublocation_div(this.formId, this.type);
	}
	this.getLocationValue = function()
	{
		var name2 = formId+'_'+type;
		return JY.$('cond_'+name2+'_location_input').value;
	}
	this.getSubLocationValue = function()
	{
		var name2 = formId+'_'+type;
		return JY.$('cond_'+name2+'_sublocation_input').value;
	}
	this.onLocationChange = function(callback)
	{
		if(typeof callback=='function'){
			if(typeof valueChangeCallback[this.formId]=='undefined'){
				valueChangeCallback[this.formId] = {};
			}
			valueChangeCallback[this.formId][this.name+'_loc'] = callback;
		}
	}
	this.onSubLocationChange = function(callback)
	{
		if(typeof callback=='function'){
			if(typeof valueChangeCallback[this.formId]=='undefined'){
				valueChangeCallback[this.formId] = {};
			}
			valueChangeCallback[this.formId][this.name+'_subloc'] = callback;
		}
	}
}


/**
* tag select
*/
function fill_tag_option_value(formId, name, showName, value)
{
	var sexV, tagV=0, tag_ary;
	if(typeof name=='undefined'){
		sexV = divSelectObjs[formId]['sex'].getValue();
		tagV = divSelectObjs[formId]['tag'].getValue();
	}else{
		sexV = value;
		tagV = 0;
	}
	tag_ary = sexV=='f' ? tag_f_array : tag_m_array;
	divSelectObjs[formId]['tag'].createOptions(tag_ary, tagV);
}


/**
* zodiac select
* 在age_range建立之后建立
*/
var search_cond_zodiac_list=[];//当前选中的值列表
var search_cond_zodiac_name_list=[];//当前选中的生肖名字
var search_cond_zodiac_options=[];//当前可选的生肖列表
var search_cond_zodiac_options_name=[];//当前可选的生肖名字
var init_zodiac_cond = 0;//是否已经初始化
//值列表变为名字列表
function search_change_zodiac_name_list(value_list)
{
	if (typeof value_list!='object' || value_list.length<1) {
		return [];
	}
	var name_list=[];
	for(var i in value_list){
		name_list.push(zodiac_name_list[value_list[i]]);
	}
	return name_list;
}
//根据年龄界限变更选择列表的项目
function search_change_zodiac_cond_by_age(formId, min_age, max_age)
{
	min_age = (min_age==0) ? 18 : min_age;
	max_age = (max_age==0) ? 99 : max_age;
	var oldOptiCount = search_cond_zodiac_options.length;
	search_cond_zodiac_options = get_zodiac_list_from_age(min_age, max_age);
	var newOptiCount = search_cond_zodiac_options.length;
	if(oldOptiCount!=12 || newOptiCount!=12){
		search_cond_zodiac_options_name = search_change_zodiac_name_list(search_cond_zodiac_options);
		//剔除范围之外的
		for(var temp=[],i=0,j=0; i<search_cond_zodiac_list.length; i++){
			for(j in search_cond_zodiac_options){
				if(search_cond_zodiac_options[j]==search_cond_zodiac_list[i]){
					temp.push(search_cond_zodiac_options[j]); break;
				}
			}
		}
		search_cond_zodiac_list = temp;
		search_cond_zodiac_name_list = search_change_zodiac_name_list(search_cond_zodiac_list);
		search_change_zodiac_show_list(formId);
		search_change_zodiac_cond_value(formId);
		search_change_zodiac_show_div(formId);
		search_change_zodiac_check_list(formId);
		search_change_zodiac_button_show(formId);
	}
}
//变更选中值的名称列表
function search_change_zodiac_show_list(formId)
{
	var zodiac_show = search_cond_zodiac_name_list.join(' ');
	JY.$(formId+'_zodiac_checked_show').innerHTML = zodiac_show + '&emsp;';
}
//变更弹层可选项数量
function search_change_zodiac_show_div(formId)
{
	var check_list = JY.$(formId+'_cond_zodiac_checkbox_list');
	check_list.innerHTML = '';
	var list_html='';
	for(var i in search_cond_zodiac_options){
		list_html += '<span><input id="'+formId+'_cond_zodiac_'+search_cond_zodiac_options[i];
		list_html += '" type="checkbox" checked="false" value="'+search_cond_zodiac_options[i];
		list_html += '" onclick="zodiacCheck(\''+formId+'\',this);" /> '+zodiac_name_list[search_cond_zodiac_options[i]]+'</span>';
	}
	check_list.innerHTML = list_html;
	////JY.$(formId+'_zodiac_checkbox_frame').style.height = (43+Math.ceil(search_cond_zodiac_options.length/3)*33)+'px';
}
//变更选项的选中状态
function search_change_zodiac_check_list(formId)
{
	var check_list = JY.$(formId+'_cond_zodiac_checkbox_list');
	var checkboxs = check_list.getElementsByTagName('INPUT');
	var zodiac_list_str = ','+search_cond_zodiac_list.join(',')+',';
	for(var i=0; i<checkboxs.length; i++){
		if(zodiac_list_str.indexOf(','+checkboxs[i].value+',')>-1){
			checkboxs[i].checked=true;
		}else{
			checkboxs[i].checked=false;
		}
	}
}
//变更生肖提交表单值
function search_change_zodiac_cond_value(formId)
{
	JY.$(formId+'_cond_zodiac').value = search_cond_zodiac_list.join(',');
}
//通过选中值初始化页面显示(不变更可选项数目)
function search_change_zodiac_show_by_value(formId, value_str)
{
	if(value_str){
		if(/,+/.test(value_str)){
			search_cond_zodiac_list = value_str.split(',');
		}else if(value_str>0){
			search_cond_zodiac_list = [value_str];
		}else{
			search_cond_zodiac_list = [];
		}
	}else{
		search_cond_zodiac_list = [];
	}
	search_cond_zodiac_name_list = search_change_zodiac_name_list(search_cond_zodiac_list);
	search_change_zodiac_show_list(formId);
	search_change_zodiac_check_list(formId);
	search_change_zodiac_button_show(formId);
}
//选项的单击动作
function zodiacCheck(formId, obj)
{
	var value = obj.value;
	var exist = 0, changed = 0;
	for (var i in search_cond_zodiac_list) {
		if (search_cond_zodiac_list[i] == value) {
			exist = 1;
		}
	}
	if (obj.checked && !exist) {
		search_cond_zodiac_list.push(value);
		changed = 1;
	} else if (!obj.checked && exist) {
		var temp = [];
		for (i in search_cond_zodiac_list) {
			if (search_cond_zodiac_list[i] != value) {
				temp.push(search_cond_zodiac_list[i]);
			}
		}
		search_cond_zodiac_list = temp;
		changed = 1;
	}
	if (changed) {
		search_cond_zodiac_name_list = search_change_zodiac_name_list(search_cond_zodiac_list);
		search_change_zodiac_show_list(formId);
		search_change_zodiac_cond_value(formId);
		search_change_zodiac_button_show(formId);
	}
}
//改变页面生肖选项条的样子
function search_change_zodiac_button_show(formId)
{
	if(search_cond_zodiac_list.length<1){
		JY.$(formId+'_zodiac_switch').innerHTML = '[请选择生肖]';
		////JY.$(formId+'_zodiac_modify').style.display='none';
		JY.$(formId+'_zodiac_checked_show').style.display='none';
	}else{
		JY.$(formId+'_zodiac_switch').innerHTML = '[修改]';
		////JY.$(formId+'_zodiac_modify').style.display='';
		JY.$(formId+'_zodiac_checked_show').style.display='';
	}
}
function show_search_zodiac_div(formId)
{
	var divId = formId+"_zodiac_checkbox_div";
	JY.$(divId).style.display = 'block';
	popDivObjs[formId]['zodiac'].isShow = true;
	on_all_select_show(formId, 'zodiac');
}
function hide_search_zodiac_div(formId)
{
	var divId = formId+"_zodiac_checkbox_div";
	JQ('#'+divId).fadeOut("fast");
	popDivObjs[formId]['zodiac'].isShow = false;
}
function onAgeRangeChange(formId, name, minAge, maxAge)
{
	search_change_zodiac_cond_by_age(formId, minAge, maxAge);
}
function ZodiacSelect(formId)
{
	this.formId = formId;
	this.name = 'zodiac';
	this.isShow = false;
	this.build = function()
	{
		var h = [], name2=formId=this.formId;
		h.push('<a id="'+name2+'_zodiac_checked_show" style="text-decoration:none"></a><a href="javascript:show_search_zodiac_div(\''+formId+'\')" id="'+name2+'_zodiac_switch">[请选择生肖]</a>');
		h.push('<div class="xingzuo_tip" style="display:none" id="'+name2+'_zodiac_checkbox_div">');
		h.push('<h2 class="clear">');
		h.push('<span>请选择生肖</span>');
		h.push('	<a href="javascript:hide_search_zodiac_div(\''+formId+'\')" class="close_btn"></a>');
		h.push('</h2>');
		h.push('<div class="xingzuo clear" id="'+name2+'_cond_zodiac_checkbox_list"></div>');
		h.push('<input type="hidden" id="'+name2+'_cond_zodiac" name="animal" value="'+searchCondDefaultValue[formId]['animal']+'">');
		h.push('<p class="center"><a href="javascript:hide_search_zodiac_div(\''+formId+'\')" class="ensure">确 定</a></p>');
		h.push('</div>');
		JY.wr(h.join("\n"));
		popDivObjs[formId]['zodiac'] = this;
		popDivObjs[formId]['age_range'].onChange(onAgeRangeChange);
		//选项初始化
		search_change_zodiac_show_by_value(formId, searchCondDefaultValue[formId]['animal']);
		search_change_zodiac_cond_by_age(formId, divSelectObjs[formId]['min_age'].getValue(), divSelectObjs[formId]['max_age'].getValue());
	}
	this.show = function()
	{
		show_search_zodiac_div(this.formId);
	}
	this.hide = function()
	{
		hide_search_zodiac_div(this.formId);
	}
}



/**
* astro select
*/
var checkedAstroArr = []; //选中值数组格式
var checkedAstroStr = ""; //选中值字符串格式
var initAstroCheck = 0;   //是否为初次生成
function getAstroMaxCheck(formId)
{
	var astroCheckedShowObj = JY.$(formId+'_astro_checked_show');
	var maxSize = astroCheckedShowObj.getAttribute("maxSize") ? astroCheckedShowObj.getAttribute("maxSize") : 5;
	return maxSize;
}
function astroCheck(formId, obj)
{
	initAstroCheck = 0;
	var value = obj.value;
	var exist = 0, changed = 0;
	for (var i in checkedAstroArr) {
		if (checkedAstroArr[i] == value) {
			exist = 1;
		}
	}
	if (obj.checked) {
		var maxSize = getAstroMaxCheck(formId);
		if (checkedAstroArr.length >= maxSize) {
			alert('最多可以选择'+maxSize+'个星座！');
			obj.checked = false;
			return;
		}
		if (!exist) {
			checkedAstroArr[checkedAstroArr.length] = value;
			changed = 1;
		}
	} else {
		if (exist) {
			var temp = [];
			for (i in checkedAstroArr) {
				if (checkedAstroArr[i] != value) {
					temp[temp.length] = checkedAstroArr[i];
				}
			}
			checkedAstroArr = temp;
			changed = 1;
		}
	}
	if (changed) {
		changeAstroCheckedShow(formId, checkedAstroArr);
	}
}
function changeAstroCheckedShow(formId, checkedArr)
{
	//字段赋值
	checkedAstroStr = checkedAstroArr.join(',');
	JY.$(formId+'_cond_astro').value = checkedAstroStr;
	//文字显示
	var astroCheckedShowObj = JY.$(formId+'_astro_checked_show');
	var astroArr = ['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','魔羯座','水瓶座','双鱼座'];
	var str = '';
	if (checkedArr.length > 0) {
		JY.$(formId+'_astro_switch').innerHTML = '[修改]';
	} else {
		JY.$(formId+'_astro_switch').innerHTML = '[请选择星座]';
	}
	if (initAstroCheck) {
		for (var i=0; i<checkedArr.length; i++) {
			if (checkedArr[i]>0) JY.$(formId+'_cond_astro_'+checkedArr[i]).checked = true;
		}
	}
	var maxSize = getAstroMaxCheck(formId);
	for (var i=0; i<checkedArr.length; i++) {
		if (i >= maxSize) {
			str = str.substr(0, str.length-6);
			str += '...';
			break;
		}
		str += astroArr[checkedArr[i]-1] + '&nbsp;';
	}
	if (astroCheckedShowObj.style.display=='none') {
		astroCheckedShowObj.style.display = '';
	}
	if (str == '') {
		astroCheckedShowObj.style.display = 'none';
	}
	astroCheckedShowObj.innerHTML = str;
}
function show_search_astro_div(formId)
{
	var divId = formId+"_astro_checkbox_div";
	JY.$(divId).style.display = 'block';
	popDivObjs[formId]['astro'].isShow = true;
	on_all_select_show(formId, 'astro');
}
function hide_search_astro_div(formId)
{
	var divId = formId+"_astro_checkbox_div";
	JQ('#'+divId).fadeOut("fast");
	popDivObjs[formId]['astro'].isShow = false;
}
function AstroSelect(formId)
{
	this.formId = formId;
	this.name = 'astro';
	this.isShow = false;
	this.build = function()
	{
		var h = [], name2=formId=this.formId;
		h.push('<a id="'+name2+'_astro_checked_show" style="text-decoration:none" maxSize="4"></a><a id="'+name2+'_astro_switch" href="javascript:show_search_astro_div(\''+formId+'\')">[请选择星座]</a>');
		h.push('<div class="xingzuo_tip" id="'+name2+'_astro_checkbox_div" style="display:none">');
		h.push('<h2 class="clear">');
		h.push('	<span>请选择星座</span>');
		h.push('	<a href="javascript:hide_search_astro_div(\''+formId+'\')" class="close_btn"></a>');
		h.push('</h2>');
		h.push('<div class="xingzuo clear">');
		for(i in searchCondOptions['astro']){
			h.push('<span><input id="'+name2+'_cond_astro_'+i+'" type="checkbox" value="'+i+'" onclick="astroCheck(\''+formId+'\',this);" /> '+searchCondOptions['astro'][i]+'</span>');
		}
		h.push('</div>');
		h.push('<input type="hidden" id="'+name2+'_cond_astro" name="astro" value="'+searchCondDefaultValue[formId]['astro']+'">');
		h.push('<p class="center"><a href="javascript:hide_search_astro_div(\''+formId+'\')" class="ensure">确 定</a></p>');
		h.push('</div>');
		document.write(h.join("\n"));
		popDivObjs[formId]['astro'] = this;
		//选项初始化
		if(searchCondDefaultValue[formId]['astro']){
			checkedAstroStr = searchCondDefaultValue[formId]['astro'];
			checkedAstroArr = (checkedAstroStr!=0&&checkedAstroStr!='0') ? checkedAstroStr.split(',') : [];
			initAstroCheck = 1;
			changeAstroCheckedShow(formId, checkedAstroArr);
		}
	}
	this.show = function()
	{
		show_search_astro_div(this.formId);
	}
	this.hide = function()
	{
		hide_search_astro_div(this.formId);
	}
}



/**
*/
function on_all_select_show(formId, name)
{
	var i, names, nameBuddys=[['min_age','max_age','age_range'], ['min_height','max_height','height_range']];
	for(i=0; i<nameBuddys.length; i++){
		if(JQ.inArray(name, nameBuddys[i])>-1){
			names = nameBuddys[i];
		}
	}
	if(!names){ names=[name]; }
	for(i in divSelectObjs[formId]){
		if(JQ.inArray(divSelectObjs[formId][i].name, names)>-1){
			continue;
		}
		if(divSelectObjs[formId][i].isShow){
			divSelectObjs[formId][i].hide();
		}
	}
	for(i in popDivObjs[formId]){
		if(JQ.inArray(popDivObjs[formId][i].name, names)>-1){
			continue;
		}
		if(popDivObjs[formId][i].isShow){
			popDivObjs[formId][i].hide();
		}
	}
}


/************************************************************
* 非定义部分
*************************************************************/
fill_age_option_value();
fill_height_option_value();

