/*
+-----------------------------------------------
+	Javascript for WeSpace Softs.
+	-----------------------------------------
+	Copyright (c) 2004 - 2009 wesofts.com
+	http://www.wesofts.com
+-----------------------------------------------
*/
var categoryenlang = {
	'cid_place_0' : 'PROVINCE',
	'cid_place_1' : 'CITY',
	'cid_school_0' : 'PROVINCE',
	'cid_school_1' : 'SCHOOL',
	'cid_salary_0' : 'DISCUS',
	'select_date_y' : 'YEAR',
	'select_date_m' : 'MONTH',
	'select_date_d' : 'DATE',
	'select_date_presend' : 'PRESEND',
	'select_default' : 'SELECT OPTION',
	'select_alloption' : '[ALL]',
	'mulity_existed' : 'It is existed, please select others',
	'mulity_maxium' : 'Error: The maxium amount you can add is: '
};
var categorycnlang = {
	'cid_place_0' : '省份',
	'cid_place_1' : '城市',
	'cid_school_0' : '省份',
	'cid_school_1' : '学校',
	'cid_salary_0' : '面议',
	'select_date_y' : '年份',
	'select_date_m' : '月份',
	'select_date_d' : '日期',
	'select_date_presend' : '现在',
	'select_default' : '请选择',
	'select_alloption' : '[全部]',
	'mulity_existed' : '该选项您已经添加过了, 清不要重复添加',
	'mulity_maxium' : '错误, 您最多可添加选项个数为: '
};
function category_object(){
	this.langid = categorycnlang;
	this.english = function(){
		this.langid = categoryenlang;
	};
	this._dateid = {
		's' : 1950, 
		'e' : 1994, 
		'm' : 2012
	};
	this.year = function(id,y,ise,n){
		if ($(id)){
			var ys = this._dateid.s;
			var ye = ise ? this._dateid.e : this._dateid.m;
			var re = '<select name="' + (n && n != '' ? n : 'year') + '"><option value="0">'+this.langid.select_date_y+'</option>';
			for (var i = ye; i >= ys; i--){re += '<option value="'+i+'" '+(i == y ? 'selected' : '')+'>'+i+'</option>';}
			re += '</select>';
			$(id).innerHTML = re;
		}
	};
	this.month = function(id,name,yemo,present){
		if ($(id)){
			var inner = '';
			var names = name && name != '' ? name.split('|') : ['year','month'];
			var dates = yemo && yemo != '' ? yemo.split('|') : ['0','0'];
			var present = present ? true : false;
			var yeard = 0;
			inner += '<select name="'+names[0]+'" onchange="category.month(\''+id+'\',\''+name+'\',this.value + \'|0\','+present+')"><option value="0">'+(names[0] == 'eyear' && present ? this.langid.select_date_presend : this.langid.select_date_y)+'</option>';
			for (var i = this._dateid.m; i >= this._dateid.s; i--){
				var selected = '';
				if (i == dates[0]){
					yeard = i;
					selected = 'selected';
				}
				inner += '<option value="'+i+'" '+selected+'>'+i+'</option>';
			}
			inner += '</select>';
			if (yeard && yeard > 1900){
				inner += ' <select name="'+names[1]+'"><option value="0">'+this.langid.select_date_m+'</option>';
				for (var j = 1; j <= 12; j++){
					inner += '<option value="'+j+'" '+(j == dates[1] ? 'selected' : '')+'>'+j+'</option>';
				}
				inner += '</select>';
			}
			$(id).innerHTML = inner;
		}
	};
	this.mulidate = function(id,date,ise,name){
		if ($(id)){
			var ise = ise ? true : false;
			var names = name && name != 'undefined' && name != '' ? name.split('|') : ['year', 'month', 'day'];
			var ny = typeof names[0] != 'undefined' && names[0] && names[0] != '' ? names[0] : 'year';
			var nm = typeof names[1] != 'undefined' && names[1] && names[1] != '' ? names[1] : 'month';
			var nd = typeof names[2] != 'undefined' && names[2] && names[2] != '' ? names[2] : 'day';
			var dates = date ? date.split('|') : new Array();
			var dy = typeof dates[0] != 'undefined' && !isNaN(dates[0]) && dates[0] > 0 ? dates[0] : 0;
			var dm = typeof dates[1] != 'undefined' && !isNaN(dates[1]) && dates[1] > 0 ? dates[1] : 0;
			var dd = typeof dates[2] != 'undefined' && !isNaN(dates[2]) && dates[2] > 0 ? dates[2] : 0;
			var isper = dy > 0 && dy % 4 == 0 && dy % 100 != 0 ? true : false;
			var ys = this._dateid.s;
			var ye = ise ? this._dateid.e : this._dateid.m;
			var re = '<select name="' + ny + '" onchange="category.mulidate(\''+id+'\',this.value + \'|0|0\','+ise+',\''+name+'\')"><option value="0">'+this.langid.select_date_y+'</option>';
			for (var i = ye; i >= ys; i--){
				re += '<option value="'+i+'" '+(i == dy ? 'selected' : '')+'>'+i+'</option>';
			}
			re += '</select> <select name="' + nm + '" onchange="category.mulidate(\''+id+'\','+dy+' + \'|\' + this.value + \'|0\','+ise+',\''+name+'\')"><option value="0">'+this.langid.select_date_m+'</option>';
			if (dy > 0){
				for (var j = 1; j <= 12; j++){
					re += '<option value="'+j+'" '+(j == dm ? 'selected' : '')+'>'+j+'</option>';
				}
			}
			re += '</select> <select name="' + nd + '"><option value="0">'+this.langid.select_date_d+'</option>';
			if (dy > 0 && dm > 0){
				var yd = 31;
				switch (parseInt(dm)){
					case 2 : yd = isper ? 29 : 28; break;
					case 4 :
					case 6 :
					case 9 :
					case 11 : yd = 30; break;
				}
				for (var m = 1; m <= yd; m++){
					re += '<option value="'+m+'" '+(m == dd ? 'selected' : '')+'>'+m+'</option>';
				}
			}
			re += '</select>';
			$(id).innerHTML = re;
		}
	};
	this.deftxt = function(cid,key){
		var rtns = new Array();
		var keys = key.split('|');
		var lens = keys.length;
		for (var i = 0; i < lens; i++) {
			rtns[i] = eval('typeof this.langid.cid_' + cid + '_' + i + ' == "undefined"') ? this.langid.select_default : eval('this.langid.cid_' + cid + '_' + i);
		}
		return rtns;
	};
	this.simple = function(id,cid,key,val,ismul){
		if (!$(id) || typeof categorys == 'undefined' || typeof categorys[cid] == 'undefined'){
			return false;
		}
		var txts = this.deftxt(cid,key);
		var strs = categorys[cid].split('^');
		var opts = ismul ? '<select name="' + key + '" size="2" class="mul_c">' : '<select name="' + key + '"><option value="0">' + txts[0] + '</option>';
		for (var i = 0; i < strs.length; i++){
			var tmps = strs[i].split(',');
			opts += '<option value="' + tmps[0] + '"' + (tmps[0] == val ? ' selected' : '') + '>' + tmps[1] + '</option>';
		}
		opts += '</select>';
		$(id).innerHTML = opts;
	};
	this.double = function(id,cid,key,val,ismul){
		if (!$(id) || typeof categorys == 'undefined' || typeof categorys[cid] == 'undefined'){
			return false;
		}
		var dpk = '';
		var dpv = '';
		var keys = key.split('|');
		var vals = val.split('|');
		var txts = this.deftxt(cid,key);
		var strs = categorys[cid].split('^');
		var ops0 = ismul ? '<select name="' + keys[0] + '" onchange="category.mulity(\'' + id + '\', \'' + cid + '\',this.value)" class="mul_a"><option value="0">' + txts['0'] + '</option>' : '<select name="' + keys[0] + '" onchange="category.double(\'' + id + '\', \'' + cid + '\', \'' + key + '\', this.value + \'|0\')" class="dubsel"><option value="0">' + txts['0'] + '</option>';
		var ops1 = ismul ? '<br /><select name="' + keys[1] + '" size="2" class="mul_b"><option value="dpk">[*] dpv</option>' : '<select name="' + keys[1] + '" class="dubsel"><option value="0">' + txts['1'] + '</option>';
		for (var i = 0; i < strs.length; i++){
			var tmps = strs[i].split(',');
			if (tmps[0] == 0){
				if (tmps[1] == vals[0]){
					ops0 += '<option value="' + tmps[1] + '" selected>' + tmps[2] + '</option>';
					if (ismul){
						var dpk = tmps[1];
						var dpv = tmps[2];
					}
				} else {
					ops0 += '<option value="' + tmps[1] + '">' + tmps[2] + '</option>';
				}
			} else if (tmps[0] == vals[0]) {
				if (tmps[1] == vals[1]){
					ops1 += '<option value="' + tmps[1] + '" selected>' + (ismul ? ' &nbsp; &nbsp; ' : '') + tmps[2] + '</option>';
				} else {
					ops1 += '<option value="' + tmps[1] + '">' + (ismul ? ' &nbsp; &nbsp; ' : '') + tmps[2] + '</option>';
				}
			}
		}
		ops0 += '</select> ';
		if (ismul){
			ops1 = ops1.replace(/dpk/g,dpk)
			ops1 = ops1.replace(/dpv/g,dpv)
		}
		ops1 += (ismul ? '</optgroup>' : '') + '</select> ';
		$(id).innerHTML = ops0 + ops1;
	};
	this.thirds = function(id,cid,key,val){
		if (!$(id) || typeof categorys == 'undefined' || typeof categorys[cid] == 'undefined'){
			return false;
		}
		var keys = key.split('|');
		var vals = val.split('|');
		var txts = this.deftxt(cid,key);
		var strs = categorys[cid].split('^');
		var ops0 = '<select name="' + keys[0] + '" onchange="category.thirds(\'' + id + '\', \'' + cid + '\', \'' + key + '\', this.value + \'|0|0\')"><option value="0">' + txts['0'] + '</option>';
		var ops1 = '<select name="' + keys[1] + '" onchange="category.thirds(\'' + id + '\', \'' + cid + '\', \'' + key + '\', \'' + vals[0] + '|\' + this.value + \'|0\')"><option value="0">' + txts['1'] + '</option>';
		var ops2 = '<select name="' + keys[2] + '"><option value="0">' + txts['2'] + '</option>';
		for (var i = 0; i < strs.length; i++){
			var tmps = strs[i].split(',');
			if (tmps[0] == 0) {
				if (tmps[1] == vals[0]){
					ops0 += '<option value="' + tmps[1] + '" selected>' + tmps[2] + '</option>';
				} else {
					ops0 += '<option value="' + tmps[1] + '">' + tmps[2] + '</option>';
				}
			} else {
				if (vals[0] > 0){
					if (tmps[0] == vals[0]) {
						if (tmps[1] == vals[1]){
							ops1 += '<option value="' + tmps[1] + '" selected>' + tmps[2] + '</option>';
						} else {
							ops1 += '<option value="' + tmps[1] + '">' + tmps[2] + '</option>';
						}
					}
				}
				if (vals[1] > 0){
					if (tmps[0] == vals[1]) {
						if (tmps[1] == vals[2]){
							ops2 += '<option value="' + tmps[1] + '" selected>' + tmps[2] + '</option>';
						} else {
							ops2 += '<option value="' + tmps[1] + '">' + tmps[2] + '</option>';
						}
					}
				}
			}
		}
		ops0 += '</select> ';
		ops1 += '</select> ';
		ops2 += '</select>';
		$(id).innerHTML = ops0 + ops1 + ops2;
	};
	this.maxmul = 5;
	this.mulity = function(id,cid,vals,single){
		if ($(id)){
			if (single){
				this.simple(id,cid,cid+'_mul_b',vals,true);
			}else{
				this.double(id,cid,cid+'_mul_a|'+cid+'_mul_b',vals+'|0',true);
			}
		}
	};
	this.mulquery = function(obj,key,val){
		var sid = 0;
		var len = obj.length;
		var arr = new Array();
		var ari = 0;
		for (var i = 0; i < len; i++){
			var isrepeat = false;
			if (key < 100){
				var s_k = key * 100;
				var m_k = key * 100 + 99;
				if (obj[i].value == key){
					isrepeat = true;
				} else if (obj[i].value < s_k || obj[i].value > m_k){
					arr[ari] = new Array();
					arr[ari]['k'] = obj[i].value;
					arr[ari]['v'] = obj[i].text;
					ari++;
				}
			} else {
				var s_k = Math.ceil(key/100) - 1;
				if (obj[i].value == key || obj[i].value == s_k){
					isrepeat = true;
				} else {
					arr[ari] = new Array();
					arr[ari]['k'] = obj[i].value;
					arr[ari]['v'] = obj[i].text;
					ari++;
				}
			}
			if (isrepeat){
				alert(this.langid.mulity_existed);
				return false;
			}
		}
		if (this.maxmul > 0 && ari >= this.maxmul){
			alert(this.langid.mulity_maxium + '[' + this.maxmul + ']');
			return false;
		}
		for (var m = len; m > 0; m--){
			obj.options[m-1] = null;
		}
		for (var j = 0; j < ari; j++){
			obj[j] = new Option(arr[j]['v'],arr[j]['k']);
		}
		obj[j] = new Option(val,key);
	};
	this.muladd = function(fname,cid,tbox){
		eval('var theform = document.' + fname);
		if (theform){
			eval('var obj = theform.'+cid+'_mul_b');
			for (var e = 0; e < theform.length; e++){if (theform[e].name == tbox + '[]'){var tobj = theform[e];break;}}
			if (obj && tobj){for (var i = 0; i < obj.length; i++){if (obj[i].selected){if (typeof obj[i].value == 'undefined' || typeof obj[i].text == 'undefined' || isNaN(obj[i].value) || obj[i].value < 1){return false;}this.mulquery(tobj,obj[i].value,obj[i].text);break;}}if (i + 1 < obj.length){obj[i+1].selected = true;} else if (obj.length > 0) {obj[0].selected = true;}}
		}
	};
	this.muldel = function(fname,tbox){
		eval('var theform = document.' + fname);
		if (theform){
			for (var e = 0; e < theform.length; e++){if (theform[e].name == tbox + '[]'){var obj = theform[e];break;}}
			if (typeof obj == 'undefined'){return false;}
			var arr = new Array();
			var ari = 0;
			for (var i = 0; i < obj.length; i++){if (obj[i].selected == false){arr[ari] = new Array();arr[ari]['k'] = obj[i].value;arr[ari]['v'] = obj[i].text;ari++;}}
			for (var j = obj.length; j > 0; j--){obj.options[j-1] = null;}
			for (var m = 0; m < arr.length; m++){obj[m] = new Option(arr[m]['v'],arr[m]['k']);}
		}
	};
	this.emptys = function(fname,tbox){
		eval('var theform = document.' + fname);
		if (theform){
			for (var e = 0; e < theform.length; e++){if (theform[e].name == tbox + '[]'){var obj = theform[e];break;}}
			if (typeof obj == 'undefined'){return false;}
			for (var j = obj.length; j > 0; j--){obj.options[j-1] = null;}
		}
	};
	this.mulsel = function(fname,tbox){
		eval('var theform = document.' + fname);
		if (theform){
			var tboxs = tbox.split(',');
			for (var i = 0; i < tboxs.length; i++){
				for (var e = 0; e < theform.length; e++){
					if (theform[e].name == tboxs[i] + '[]'){
						var obj = theform[e];
						for (var m = 0; m < obj.length; m++){
							obj[m].selected = true;
						}
						break;
					}
				}
			}
		}
	};
	this.mulstat = function(theform,tbox){
		var results = 0;
		if (typeof theform == 'object'){
			for (var e = 0; e < theform.length; e++){
				if (theform[e].name == tbox + '[]'){
					var obj = theform[e];
					for (var m = 0; m < obj.length; m++){
						obj[m].selected = true;
						results++;
					}
				}
			}
		}
		return results;
	};
}
var category = new category_object();
var categorys = new Array();
