/**
 * 处理分类联动
 *
 **/
var formName = "frmSearch";
var parent = new Array();
var catSel = 'c1,c2,c3,c4'.split(',');
var isMultiple = true;

/**
 * 
 **/
function onSubmit()
{
	var form = document.forms[formName];

	if (IsSet(form.elements["keyword"]) || (IsSet(form.elements["cat"]) && form.elements["cat"].value != '0'))
	{
		return true;
	}else{
		alert(_language["search-text1"]);
		return false;
	}
}

/**
 * 初始化分类数据
 **/
function Initialize()
{
	var form = document.forms[formName];

	for (c in cats)
	{
		var ii = cats[c][1];

		if (!parent[ii])
		{
			parent[ii] = new Array();
		}

		parent[ii][parent[ii].length] = c;
	}

	if (form)
	{
		form.elements["cat"].value = 0;

		_addList(0, form.elements[catSel[0]], null, true);

		var catPath = new Array();
		for (var i = catPath.length - 1; i >= 0; --i) {
			var cId = catPath[i];
			if (form.elements[catSel[catPath.length - i - 1]])
			{
				for (var j = 0; j < form.elements[catSel[catPath.length - i - 1]].options.length; ++j)
				{
					if (form.elements[catSel[catPath.length - i - 1]].options[j].value == cId)
					{
						form.elements[catSel[catPath.length - i - 1]].options[j].selected = true;
						doChangeSubCat(form.elements[catSel[catPath.length - i - 1]]);
						break;
					}
				}
			}
		}
	}
}

/**
 * 更改下拉控制器的属性
 **/
function doChangeSubCat(obj)
{
	if (!obj || !obj.name)
	{
		debug ('obj not found!');
		return;
	}

	_setValue(obj.value);

	var name = obj.name;
	var form = document.forms[formName];

	if (!form) {
		error('form not found!');
		return;
	}

	var selectNum = -1;

	for (var i = 0; i < catSel.length; ++i)
	{
		if (catSel[i] == name)
		{
			selectNum = i;
			break;
		}
	}

	if (selectNum < 0)
	{
		debug('can\'t found sub select');
		return;
	}

	if (selectNum + 1 >= catSel.length || !form.elements[catSel[selectNum + 1]])
	{
		debug('can\'t found sub select 1');
		return;
	}

	var subSel = form.elements[catSel[selectNum + 1]];
	_clearList(subSel);
	
	for (var i = selectNum + 1; i < catSel.length; ++i)
	{
		if (form.elements[catSel[i]])
		{
			_clearList(form.elements[catSel[i]]);
		}
	}

	if (obj.options[obj.selectedIndex].value == '') {
		return;
	}

	var catId = obj.options[obj.selectedIndex].value;

	if (!parent[catId]) {
		debug('no sub select data');
		return;
	}

	_addList(catId, subSel);
}

/**
 * 增加SELECT控件的列
 **/
function _addList(id, obj, defaultId, isFirst)
{
	var s = 0;

	if (!defaultId)
	{
		defaultId = -1;
	}

	if (isMultiple)
	{
		obj.options[s++] = new Option('', '');
	}
	
	if (parent[id])
	{
		for (var i = 0; i < parent[id].length; ++i)
		{
			var catId = parent[id][i];

			if (!parent[catId])
			{
				obj.options[s++] = new Option(cats[catId][0], catId);
			}else{
				obj.options[s++] = new Option(cats[catId][0] + ' ->', catId);
			}

			if (defaultId >= 0 && defaultId == catId)
			{
				obj.options[s-1].selected = true;
			}else if (i == 0 && !isFirst){
				obj.options[i].selected = true;
			}
		}
	}
}

/**
 * 设置分类ID
 **/
function _setValue(catId)
{
	var form = document.forms[formName];
	form.cat.value = catId;
}

/**
 * 清除当前下拉菜单控件内容
 **/
function _clearList(obj)
{
	if (!obj) {
		return;
	}
	
	for (var i = obj.length - 1; i >= 0; --i) {
		obj.remove(i);
	}

	obj.value = '';
}

/**
 * 判断对象状态
 * 如果是checkbox对象，返回对象的当前选中值
 * 如果是其他控件则判断数据是否为空
 **/
function IsSet(field)
{
	if (field.type == "checkbox")
	{
		return field.checked;
	}else{
        if (field.value != null && field.value != "")
		{
			return true;
		}else{
			return false;
		}
	}
}

/**
 * 配置输出测试资料
 **/
function debug(info)
{
//	alert(info);
}
