/*
+--------------------------------------------------------
+	Copyright (c) 2004-2007 WeSofts
+	JavaScript Project for wespace
+	http://www.wesofts.com
+--------------------------------------------------------
*/
function category_object(){
	this.deflang = '==';
	this.periods = 1950;
	this.periode = 2010;
	this.simple = function(id,cateid,key,val,ismul){
		if (typeof categorys == 'undefined' || typeof categorys[cateid] == 'undefined'){
			return false;
		}
		if (!$(id)){
			return false;
		}
		var strs = categorys[cateid].split('^');
		if (ismul){
			var opts = '<select name="' + key + '" class="mulsel" size="5">';
		} else {
			var opts = '<select name="' + key + '"><option value="0">' + this.deflang + '</option>';
		}
		for (var i = 0; i < strs.length; i++){
			var tmps = strs[i].split(',');
			if (tmps[0] == val && !ismul){
				opts += '<option value="' + tmps[0] + '" selected>' + tmps[1] + '</option>';
			} else {
				opts += '<option value="' + tmps[0] + '">' + tmps[1] + '</option>';
			}
		}
		opts += '</select>';
		$(id).innerHTML = opts;
	}
	this.double = function(id,cateid,key,val,ismul){
		if (typeof categorys == 'undefined' || typeof categorys[cateid] == 'undefined'){
			return false;
		}
		if (!$(id)){
			return false;
		}
		ismul = ismul ? 1 : 0;
		var keys = key.split('|');
		var vals = val.split('|');
		var strs = categorys[cateid].split('^');
		var ops0 = '<select name="' + keys[0] + '" onchange="category.double(\'' + id + '\', \'' + cateid + '\', \'' + key + '\', this.value + \'|0\',' + ismul + ')" ' + (ismul == 1 ? 'class="mulsel"' : '') + '><option value="0">' + this.deflang + '</option>';
		var ops1 = ismul == 1 ? '<br /><select name="' + keys[1] + '" class="mulsel" size="4">' : '<select name="' + keys[1] + '"><option value="0">' + this.deflang + '</option>';
		for (var i = 0; i < strs.length; i++){
			var tmps = strs[i].split(',');
			if (tmps[0] == 0){
				// First Stage
				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 (tmps[0] == vals[0]) {
				// Second Stage
				if (tmps[1] == vals[1]){
					ops1 += '<option value="' + tmps[1] + '" selected>' + tmps[2] + '</option>';
				} else {
					ops1 += '<option value="' + tmps[1] + '">' + tmps[2] + '</option>';
				}
			}
		}
		ops0 += '</select> ';
		ops1 += '</select> ';
		$(id).innerHTML = ops0 + ops1;
	}
	this.mulity = function(id,cateid,key,single){
		if (single){
			var keys = key + '_s';
			this.simple(id,cateid,keys,'0',true);
		} else {
			var keys = key + '_f|' + key + '_s';
			this.double(id,cateid,keys,'0|0',true);
		}
	}
	this.period = function(id,key,val){
		if (!$(id)){
			return false;
		}
		var keys = key.split('|');
		var vals = val.split('|');
		var html = '<select name="' + keys[0] + '"><option value="0">' + this.deflang + '</option>';
		for (var y = this.periode; y >= this.periods; y--){
			if (y == vals[0]){
				html += '<option value="' + y + '" selected>' + y + '</option>';
			} else {
				html += '<option value="' + y + '">' + y + '</option>';
			}			
		}
		html += '</select>';
		if (keys.length > 1){
			html += ' <select name="' + keys[1] + '"><option value="0">' + this.deflang + '</option>';
			for (var m = 1; m <= 12; m++){
				if (m == vals[1]){
					html += '<option value="' + m + '" selected>' + m + '</option>';
				} else {
					html += '<option value="' + m + '">' + m + '</option>';
				}			
			}
			html += '</select>';
			if (keys.length >= 3){
				html += ' <select name="' + keys[2] + '"><option value="0">' + this.deflang + '</option>';
				for (var d = 1; d <= 31; d++){
					if (d == vals[2]){
						html += '<option value="' + d + '" selected>' + d + '</option>';
					} else {
						html += '<option value="' + d + '">' + d + '</option>';
					}			
				}
				html += '</select>';
			}
		}
		$(id).innerHTML = html;
	}
	this.muladd = function(theform,fer,ter){
		this.maxiums = 5;
		this.foundeds = 0;
		this.selectedid = 0;
		fer += '_s';
		for (var i = 0; i < theform.elements.length; i++){
			if (theform.elements[i].name == fer){
				var objleft = theform.elements[i];
			}
			if (theform.elements[i].name == ter){
				var objright = theform.elements[i];
			}
		}
		if (typeof objleft == 'undefined' ||typeof objright == 'undefined'){
			return false;
		}
		if (objright.length >= this.maxiums){
			alert(personalang.mulity_maxium_a + this.maxiums + personalang.mulity_maxium_b);
			return false;
		}
		this.leftid = -1;
		this.rightid = 0;
		for (var j = 0; j < objleft.length; j++){
			if (objleft[j].selected == true){
				this.leftid = j;
				this.selectedid = j +1;
				if (this.selectedid < objleft.length){
					objleft[this.selectedid].selected = true;
				}
				this.leftid = j;
				for (var m = 0; m < objright.length;m++){
					if (objright[m].value == objleft[j].value){
						this.foundeds++;
						break;
					}
				}
				break;
			}
		}
		if (this.foundeds > 0){
			alert(personalang.mulity_existed);
			return false;
		}else{
			 if (this.leftid >= 0){
				this.rightid = objright.length;
				objright.options[this.rightid] = new Option(objleft.options[this.leftid].text,objleft.options[this.leftid].value);
			}else if (objleft.length > 0){
				objleft[0].selected = true;
			}
		}
	}
	this.muldel = function(theform,wraper){
		this.deleteid = 0;
		for (var i = 0; i < theform.elements.length; i++){
			if (theform.elements[i].name == wraper){
				var objright = theform.elements[i];
			}
		}
		if (typeof objright == 'undefined'){
			return false;
		}
		for (var j = 0; j < objright.length; j++){
			if (objright[j].selected == true){
				this.deleteid = j;	//6,5
				objright.options[j] = null;
				break;
			}
		}
		this.lengther = objright.length;
		if (this.lengther > 0){
			if (this.deleteid >= this.lengther){
				this.deleteid = this.lengther - 1;
			}
			objright[this.deleteid].selected = true;
		}
	}
	this.mulitys = function(theform,selecters){
		this.selecters = selecters.split('|');
		for (var i = 0; i < theform.elements.length; i++){
			for (var m = 0; m < this.selecters.length; m++){
				if (theform.elements[i].name == this.selecters[m] + '[]'){
					for (var j = 0; j < theform.elements[i].length; j++){
						theform.elements[i][j].selected = true
					}
				}
			}
		}
	}
}
category = new category_object();
var categorys = new Array();
