var str_cat_level = "";

last_selected = false;

var catagoryManager="catagory.php";
var cfg_catagory_dialog={
	"levelLimit":0,
	"nodeSelectable":true,
	"resetable":false,
	"txtAction":null,
	"idAction":null,
	"expandNodeLevel":0,
	"menuDepth":4,
	"listSize":10,
	"styleClass":"cate_select"
}

function chooseMenu(typeid){
	make_selection(0,"");
	if($("pnl_catagory_dialog_msg").innerHTML!=""){
		$("pnl_catagory_dialog_msg").style.display="";
	}
	if(typeid==2){
		document.getElementById("btn_catagory_dialog_type_1").className="";
		document.getElementById("btn_catagory_dialog_type_2").className="cho_ed";
		document.getElementById("pnl_catagory_dialog_keyword").style.display="none";
		document.getElementById("pnl_catagory_dialog_choose").style.display="";
		if(document.getElementById("catagory_menu_lv1").style.display=="none"){
			expand_catalog(0,0);
		}
		select_value();
	}else{
		document.getElementById("btn_catagory_dialog_type_1").className="cho_ed";
		document.getElementById("btn_catagory_dialog_type_2").className="";
		document.getElementById("pnl_catagory_dialog_keyword").style.display="";
		document.getElementById("pnl_catagory_dialog_choose").style.display="none";
		radio_value();
	}

}

function show_selects(choice){
	var action=true;
	if(arguments.length>=1){
		action=choice;
	}
	var selects=document.getElementsByTagName("select");
	for(var counter=0;counter<selects.length;counter++){
		selects[counter].style.visibility=action?"":"hidden";
	}

	var showSelects=document.getElementById("catagory_dialog_viewarea").getElementsByTagName("select");
	for(var counter=0;counter<showSelects.length;counter++){
		showSelects[counter].style.visibility="";
	}
}

function open_catagory_dialog(keywordObjectId){
	var sko=keywordObjectId || "";
	show_selects(false);	/* 清除所有select元素的显示 */
//	make_selection(0,"");	/* 清除上次的操作 */
	$("pnl_catagory_dialog_msg").style.display="none";
	$("pnl_catagory_dialog_msg").innerHTML="";

	if ($(sko) && $("txt_keyword_search").value.trim()==""){
		$("txt_keyword_search").value=$(sko).value;
	}

	var dlgCatagory=document.getElementById("catagory_dialog");
//	document.body.style.overflow="hidden";
/*	document.body.style.overflowY="hidden"; //*/
	document.getElementById("catagory_dialog_bg").style.width=document.body.clientWidth+"px";
	document.getElementById("catagory_dialog_bg").style.height=document.body.clientHeight+"px";

	var mainwindow_left=Math.round(document.documentElement.scrollLeft+(document.documentElement.clientWidth-$("catagory_dialog_viewarea").offsetWidth)/2);
	var mainwindow_top = Math.round( document.documentElement.scrollTop+(document.documentElement.clientHeight-$("catagory_dialog_viewarea").offsetHeight)/2 )-30;
	$("catagory_dialog_viewarea").style.left=mainwindow_left+"px";
	$("catagory_dialog_viewarea").style.top=mainwindow_top+"px";
//	var a = Math.round( document.documentElement.scrollLeft+(document.documentElement.clientWidth-obj_win.offsetWidth)/2 );
//	var b = Math.round( document.documentElement.scrollTop+(document.documentElement.clientHeight-obj_win.offsetHeight)/2 )-30;
//	obj_plank.style.height = ( ( document.documentElement.clientHeight > document.documentElement.scrollHeight ) ? document.documentElement.clientHeight : document.documentElement.scrollHeight )+"px";
//	document.getElementById("win").style.left = a+"px";
//	document.getElementById("win").style.top = b+"px";

	dlgCatagory.style.display="";
}

function close_catagory_dialog(){
	var dlgCatagory=document.getElementById("catagory_dialog");
	show_selects();
	if(arguments.length==0){
//		document.body.style.overflow="";
/*		document.body.style.overflowY=""; //*/
		dlgCatagory.style.display="none";
	}

}

function check_keyword_search(){
	var keyword=document.getElementById("txt_keyword_search").value.trim();
	if(keyword.length<3 || ptnCharZhcn.test(keyword) || !ptnWithLetter.test(keyword)){
		/* length error //*/
//		alert("no enough length");
		$("pnl_catagory_dialog_msg").innerHTML=catagory_error_info.err_search_keyword;
		$("pnl_catagory_dialog_msg").style.display="";
		return false;
	}
	return true;
}

function clearTable(objTable,startRow){
	var numRows=objTable.rows.length;
	for(var counter=0;counter<numRows;counter++){
		if(objTable.rows.length>startRow){
			objTable.deleteRow(startRow);
		}
	}
}

function make_selection(id,content){
	document.getElementById("catagory_dialog_select_id").value=id;
	document.getElementById("catagory_dialog_select_content").value=content;
}

/* 兼容ie的innerText属性 */
if(typeof(HTMLElement)!="undefined"){
	HTMLElement.prototype.__defineGetter__
	(
	   "innerText",function()
	   {
	      var textRange = this.ownerDocument.createRange();
	      textRange.selectNodeContents(this);
	      return textRange.toString();
	   }
	);
}

function build_search_category() {
	var selectId=0;
	var selectContent=new Array();
	var terminalSelected=true;
	for(var counter=1;counter<=cfg_catagory_dialog.menuDepth;counter++){
		var menuListAreaId=counter;
		var menuListArea=document.getElementById("search_catagory_menu_lv"+menuListAreaId);

		var menu=menuListArea.getElementsByTagName("select")[0];
		if(menu.value>0){
			selectId=menu.value;
			selectContent.push(menu.options[menu.selectedIndex].text);
			terminalSelected=true;
		}else{
			terminalSelected=false;
		}
	}
	$("catagory_dialog_select_content").value = implode(">",selectContent);
	$("catagory_dialog_select_id").value = selectId;
	$("catagory_select_choice_content").innerHTML = implode("&gt;",selectContent);

}

function search_catagory(fcat_id, menuLevel){
	var keyword=document.getElementById("txt_keyword_search").value;
	var lLimit=cfg_catagory_dialog.levelLimit;
	$("pnl_catagory_dialog_msg").style.display="none";

	if(!check_keyword_search()){
		return false;
	}

	if (fcat_id) {
		str_cat_level = "&cat_id="+fcat_id+"&cat_level=" + menuLevel;
	}
	else {
		str_cat_level = "";
	}

	new Ajax.Request(catagoryManager, {
		method: 'post',
		parameters:"action=keyword_search&levelLimit="+lLimit+"&keyword="+encodeURIComponent(keyword)+str_cat_level,
		onSuccess: function(transport) {
			var arrResult=eval(transport.responseText);

			menuLevel++;

			if ((arrResult==false) || (arrResult.length==0)) {
				build_search_category();
				$("search_catagory_menu_lv"+menuLevel).style.display = "none";
				last_selected = true;
				return false;
			}
			else {
				last_selected = false;
			}
			/* 使用已有选单方式 */

			newMenu=document.getElementById("search_catagory_menu_lv"+menuLevel).getElementsByTagName("select")[0];
			newMenu.style.visibility="";
			newMenu.options.length=0;

			for(var counter=0;counter<arrResult.length;counter++){
				newMenu.options[newMenu.options.length]=new Option(arrResult[counter].cat_name,arrResult[counter].cat_id);
			}

			newMenu.onchange=function(){search_catagory(eval("this.value"), menuLevel);};

			var selectId=0;
			var selectContent=new Array();
			var terminalSelected=true;
			for(var counter=1;counter<=cfg_catagory_dialog.menuDepth;counter++){
				var menuListAreaId=counter;
				var menuListArea=document.getElementById("search_catagory_menu_lv"+menuListAreaId);


				if(menuListAreaId==menuLevel){
					menuListArea.style.display="";
				}
				if(menuListAreaId>menuLevel){
					menuListArea.style.display="none";
				}

				var menu=menuListArea.getElementsByTagName("select")[0];
				if(menu.value>0){
					selectId=menu.value;
					selectContent.push(menu.options[menu.selectedIndex].text);
					terminalSelected=true;
				}else{
					terminalSelected=false;
				}
			}
			$("catagory_dialog_select_content").value = implode(">",selectContent);
			$("catagory_dialog_select_id").value = selectId;
			$("catagory_select_choice_content").innerText = $("catagory_dialog_select_content").value;
		}
	});

	return true;
}

function radio_value(){
	var resultTable=document.getElementById("tbl_search_result");
	if(!resultTable) return false;
	var numRows=resultTable.rows.length;
	for(var counter=2;counter<numRows;counter++){
		var row=resultTable.rows[counter];
		var radio=row.cells[0].firstChild;
		var textValue=row.cells[1].innerText;
		if(radio.checked){
			make_selection(radio.value,textValue);
		}
	}
}



/* 类目选择页----------------------------------------------------------------------------------------------------------------------------*/
function create_select_menu(menuLevel,data){
	$("pnl_select_catagory_dialog_msg").style.display="none";
	$("pnl_select_catagory_dialog_msg").innerHTML="";

	if(data.length==0){
		return false;
	}

	/* 使用已有选单方式 */
	newMenu=document.getElementById("catagory_menu_lv"+menuLevel).getElementsByTagName("select")[0];
	newMenu.style.visibility="";
	newMenu.options.length=0;

	for(var counter=0;counter<data.length;counter++){
		newMenu.options[newMenu.options.length]=new Option(data[counter].cat_name,data[counter].cat_id);
	}

	newMenu.onchange=function(){expand_catalog(eval("this.value"),menuLevel);};

	for(var counter=0;counter<cfg_catagory_dialog.menuDepth;counter++){
		var menuListAreaId=counter+1;
		var menuListArea=document.getElementById("catagory_menu_lv"+menuListAreaId);


		if(menuListAreaId==menuLevel){
			menuListArea.style.display="";
		}
		if(menuListAreaId>menuLevel){
			menuListArea.style.display="none";
		}
	}
}

function select_value(){
	var selectId=0;
	var selectContent=new Array();
	var terminalMenu=null;
	var terminalSelected=true;
	for(var counter=0;counter<cfg_catagory_dialog.menuDepth;counter++){
		var menuListAreaId=counter+1;
		var menuListArea=document.getElementById("catagory_menu_lv"+menuListAreaId);
		if(menuListArea.style.display!="none"){
			terminalMenu=menuListArea;
			var menu=menuListArea.getElementsByTagName("select")[0];
			if(menu.value>0){
				selectId=menu.value;
				selectContent.push(menu.options[menu.selectedIndex].text);
				terminalSelected=true;
			}else{
				terminalSelected=false;
			}
		}

	}
	document.getElementById("catagory_dialog_choice_content").innerHTML=implode(">",selectContent);
	if(terminalMenu && terminalMenu.getElementsByTagName("select")[0].value==0 && !cfg_catagory_dialog.nodeSelectable){
		selectId=0;
		selectContent=new Array();
	}

	make_selection(selectId,implode(">",selectContent));
}

function expand_catalog(pId,pLevel){
/*	if(pId==0){	//*/
	for(var counter=(pLevel+1);counter<=cfg_catagory_dialog.menuDepth;counter++){
		var menuListArea=document.getElementById("catagory_menu_lv"+(counter));
		menuListArea.style.display="none";
	}
/*		if(document.getElementById("catagory_menu_lv"+(pLevel)) && document.getElementById("catagory_menu_lv"+(pLevel)).style.display==""){
			return;
		}
	}	//*/
	var parentNodeId=pId;
	cfg_catagory_dialog.expandNodeLevel=pLevel;

	var lLimit=cfg_catagory_dialog.levelLimit;

	if(arguments.length==0){
		parentNodeId=0;
	}

	new Ajax.Request(catagoryManager, {
		method: 'post',
		parameters:"action=expand_catagory&levelLimit="+lLimit+"&parentNodeId="+parentNodeId,
		onSuccess: function(transport) {
			create_select_menu(pLevel+1,eval(transport.responseText));
			select_value();
		}
	});

}

/* 提交内容 ----------------------------------------------------------------------------------------------------------------------------*/
function submit_catagory_selection(){

	var txtAction=document.getElementById(cfg_catagory_dialog.txtAction);
	var idAction=document.getElementById(cfg_catagory_dialog.idAction);
	var newContentSelection=document.getElementById("catagory_dialog_select_content").value;
	var newIdSelection=document.getElementById("catagory_dialog_select_id").value;

	if (document.getElementById("btn_catagory_dialog_type_1").className=="cho_ed") {
		if (!last_selected) {
			$("pnl_catagory_dialog_msg").innerHTML=catagory_error_info.err_last_category;
			$("pnl_catagory_dialog_msg").style.display="";
			return false;
		}
	}
	else {
		if(!txtAction || !idAction){
			$("pnl_select_catagory_dialog_msg").innerHTML=catagory_error_info.err_last_category;
			$("pnl_select_catagory_dialog_msg").style.display="";
			return false;
		}

		if(parseInt(newIdSelection,10)==0 && !cfg_catagory_dialog.resetable){
			$("pnl_select_catagory_dialog_msg").innerHTML=catagory_error_info.err_last_category;
			$("pnl_select_catagory_dialog_msg").style.display="";
			return false;
		}

	}

	close_catagory_dialog();

	idAction.value=newIdSelection;
	//txtAction.value=newContentSelection;
	txtAction.innerHTML= newContentSelection;
	return true;


}