﻿/*
 * 根据id取Html节点
 * 参数 id   节点id号
 * 返回参数 element Html的节点
 */
function ObjId(id) {
	if (null == document.getElementById(id)) {
		
		return document.getElementsByName(id)[0];
	} else {
		return document.getElementById(id);
	}
}


/* 
 根据服务端JSON数据， 生成客户端树的字符串 
服务端JSON数据为画面上的HIDDEN数据

         参数 jsonHidden  服务端JSON数据，hidden标签中取出
* */
function createTree(jsonHidden) {
	/* 服务端组织好的JSON数据 */
	var objMenu = eval($(ObjId(jsonHidden)).html());
	
	if ("undefined" == typeof(objMenu)) {
		return "";
	}
	/* 保存相同父节点的List数据 */
	var subArr = null;
	var parentMap = new ObjMap(); 
	
	for (var i = 0; i < objMenu.length; i++) {
		
		var subArr = parentMap.get(objMenu[i].parentId);
		if ("undefined" == typeof(subArr) || null == subArr) {
			subArr = new Array();
		}
		subArr.push(objMenu[i]);
		
		parentMap.put(objMenu[i].parentId, subArr);
	}
	
	/* 组织父子节点关间，放入list */
	var arrMenu = new Array();
	for (var i = 0; i < objMenu.length; i++) {
	
		/* 设置子节点 */
		subArr = parentMap.get(objMenu[i].menuId);
		if (null != subArr) {
			objMenu[i].isFolder = true;
			objMenu[i].listSubMenu = subArr;
		} else {
			objMenu[i].isFolder = false;
			objMenu[i].listSubMenu = null;
		}
		
		/* 设置顶层节点 */
		if ("0" == objMenu[i].parentId) {
			//objMenu[i].parentId = "";
			arrMenu.push(objMenu[i]);
		}
	}
	return arrMenu;
	
	
}

/*
  生动循环数据，并生成tree的字符串数据
* */
function autoIterator(arrMenu) {
	var htmlRtn = "";
	htmlRtn = htmlRtn + "<ul id='browser' class='lightTreeview treeview-black'>";
	for (var i = 0; i < arrMenu.length; i++) {
		var temp = ""; 
		/* 递归子节点信息 */
		if (arrMenu[i].isFolder) {
			temp = autoIterator(arrMenu[i].listSubMenu);
		}
		/* 加入当前节点信息，并将其下的所以子节点信息加入 */
		var subCss = "";
		if ("undefined" == typeof(arrMenu[i].listSubMenu) || null == arrMenu[i].listSubMenu) {
			subCss = "treeview-file";
		} else {
			subCss = "treeview-folder";
		}
		htmlRtn = htmlRtn + "<li><div class='" + subCss 
						  + "'><a href='###' onclick=\"itemClik('" 
						  + arrMenu[i].menuId + "','" 
						  + arrMenu[i].menuName + "','" 
						  + arrMenu[i].level + "','"
						  + arrMenu[i].displayType + "','"
						  + arrMenu[i].parentId + "')\">" + arrMenu[i].menuName + "</a></div>" + temp + "</li>";
						
	}
	htmlRtn = htmlRtn + "</ul>";
	return htmlRtn;
}

function autoCreateTree(arrMenu) {
	var htmlRtn = "";
	htmlRtn = htmlRtn + "<ul id='browser' class='lightTreeview treeview-black'>";
	for (var i = 0; i < arrMenu.length; i++) {
		var temp = ""; 
		/* 递归子节点信息 */
		if (arrMenu[i].isFolder) {
			temp = autoCreateTree(arrMenu[i].listSubMenu);
		}
		/* 加入当前节点信息，并将其下的所以子节点信息加入 */
		var subCss = "";
		var onclick = "";
		if ("undefined" == typeof(arrMenu[i].listSubMenu) || null == arrMenu[i].listSubMenu) {
			subCss = "treeview-file";
			onclick = "<a href='###' onclick=\"menuForword('" + arrMenu[i].menuId + "','" + arrMenu[i].displayType + "','" + arrMenu[i].menuName + "')\">";
		} else {
			subCss = "treeview-folder";
		}
		htmlRtn = htmlRtn + "<li><div class='" + subCss 
						  + "'>" + onclick 
						  + arrMenu[i].menuName + "</a></div>" + temp + "</li>";
	}
	htmlRtn = htmlRtn + "</ul>";
	return htmlRtn;
}

/*
 * 弹出服务端传回的操作结果信息
 * 参数 infoName 存放在页面接受操作结果信息的变量名
 * 返回参数 无
 */
function operationResultView(infoName,appElement) {
	if($(ObjId(infoName)).val() != "") {
		if(appElement == undefined) {
			alert($(ObjId(infoName)).val());
		} else {
			$(ObjId(appElement)).parent().append("<font color=\"red\">" + $(ObjId(infoName)).val() + "</font>");
		}
		$(ObjId(infoName)).val("");
	}
}


var submitFlag = true;
/*
 * form的提交
 * 参数 form   提交用的form
 *      url    提交到的URL
 * 返回参数 无
 */
function doSubmit(form, url) {
	if (null == form || null == url) {
		alert("提交时产生意外的错误！");
	} else {
		if (submitFlag) {
			submitFlag = false;
			try {
				form.action = url;
				form.method = "post";
			    form.submit();
			} catch(e) {
				alert("提交时产生意外的错误，请重试！");
				submitFlag = true;
			}
		} else {
			alert("正在提交中， 请稍候再点击！");
		}
		
	}
}

function doDownLoad(form, url) {
	
	if (null == form || null == url) {
		alert("提交时产生意外的错误！");
	} else {
		if (submitFlag) {
			submitFlag = false;
			try {
				form.action = url;
				form.method = "post";
			    form.submit();
			} catch(e) {
				alert("提交时产生意外的错误，请重试！");
				submitFlag = true;
			}
			submitFlag = true;
		} else {
			alert("正在提交中， 请稍候再点击！");
		}
		
	}
}

function doGet(form, url) {
	
	if (null == form || null == url) {
		alert("提交时产生意外的错误！");
	} else {
		if (submitFlag) {
			submitFlag = false;
			try {
				form.action = url;
				form.method = "get";
			    form.submit();
			} catch(e) {
				alert("提交时产生意外的错误，请重试！");
				submitFlag = true;
			}
		} else {
			alert("正在提交中， 请稍候再点击！");
		}
		
	}
}


function menuSubmit(form, url) {
	
	if (null == form || null == url) {
		alert("提交时产生意外的错误！");
	} else {
		try {
			form.action = url;
			form.method = "post";
		    form.submit();
		} catch(e) {
			alert("提交时产生意外的错误，请重试！");
			submitFlag = true;
		}
		
	}
}

/*
 * 全选指定CSS的checkbox
 * 返回参数 无
 */
var checkboxFlag = true;
function allCheck(cssClass) {
	
	$("." + cssClass).attr("checked", checkboxFlag);
	checkboxFlag = !checkboxFlag;
}


/*
 * 带分页检索前的准备
 * 参数 className   即是检索条件的对象名，也是这些检索控件的class样式名
 * 返回参数 无
 */
function pagingSearch(className) {
	for (var i = 0; i < $("." + className).length; i++) {
		var name = $("." + className).eq(i).attr("name");
		var value = $("." + className).eq(i).val();
		$(ObjId(className + "." + name)).val(value);
	}
	$(ObjId("paging.pageNo")).val(1);
}


/*
* 创建背景DIV，覆盖页面元素
*/
function createBackDiv() {
	var borderDiv = document.createElement("div");
	$(borderDiv).css("width",$(document).width() - 10);
	$(borderDiv).css("height",$(document).height() - 10);
	$(borderDiv).css("position","absolute");
	$(borderDiv).css("border","#999999 1pt solid");
	$(borderDiv).css("background-color","#F6F6F6");
	$(borderDiv).css("filter","alpha(opacity=20)");
	$(borderDiv).css("left",0);
	$(borderDiv).css("top",0);
	$(borderDiv).css("zIndex",1);
	$(borderDiv).attr("class","borderDiv")
	$("body").append(borderDiv);
	
}

/*
* 删除背景DIV
*/
function delBackDiv() {
	$(".borderDiv").remove();
}

function menuChage(menuId) {
	
	$(ObjId("hidMenuId")).val(menuId);
	
	//$(".on").attr("className","menuClass");
	//$(objLink).attr("className", "on menuItem");
}

function showLanguage() {
	$(".languages").attr("className", "languages");
}



function addProductToCart(productId, objLink, basePath) {
	AjaxUtil.addItemToCart(productId, function (count) {
		$(ObjId("cartCount")).html(count);
		$(objLink).html("<a href='" + basePath + "/product/showCart.action'><img src='" + basePath + "/share/images/ok.gif' width='14' height='14'/> My Cart</a>");
		objLink.onclick = null;
	});
}



function delItem(productId, objLink) {
	AjaxUtil.delItemInCart(productId, function(count) {
		$(ObjId("cartCount")).html(count);
		$(objLink).parent().parent().remove();
	});
	
}

function searchName(basePath) {
	document.forms[0].action = basePath + "/product/list.action";
	document.forms[0].submit();
}

function closePopInputNum() {
	$(".inputSortDiv").remove();
	delBackDiv();
	
}

function enterMovePos(hiddenPosName, submitURL, maxSortNum, curPos) {
	var value = $(ObjId("inputSortNum")).val();
	var rang = /^[0-9]+$/;
	var flag = true;
	
	if (!rang.test(value)) {
		$(".errorInputSort").remove();
		$(ObjId("inputSortNum")).after("<div class='errorInputSort' style=\"color:red\">请输入数字!</div>");
		flag = false;
	}else if (parseInt(value) <= 0) {
		$(".errorInputSort").remove();
		$(ObjId("inputSortNum")).after("<div class='errorInputSort' style=\"color:red\">位置必须大于1!</div>");
		flag = false;
	} else if (parseInt(value) > maxSortNum) {
		$(".errorInputSort").remove();
		$(ObjId("inputSortNum")).after("<div class='errorInputSort' style=\"color:red\">位置必须小于等于最大位置(" + maxSortNum +")!</div>");
		flag = false;
	} else {
		$(".errorInputSort").remove();
		flag = true;
	}
	
	if (flag) {
		if (curPos > parseInt(value)) {
			$(ObjId(hiddenPosName)).val("-" + value);
			doSubmit(document.forms[0], submitURL);
		} else if (curPos < parseInt(value)) {
			$(ObjId(hiddenPosName)).val(value);
			doSubmit(document.forms[0], submitURL);
		} else {
			closePopInputNum();
		}
	}
}
function popInputSortNum(hiddenPosName, submitURL, maxSortNum, curPos) {
	createBackDiv();
	var borderDiv = document.createElement("div");
	$(borderDiv).css("width",200);
	$(borderDiv).css("height",200);
	$(borderDiv).css("position","absolute");
	$(borderDiv).css("left",$(window).width() / 2 - 100);
	$(borderDiv).css("top",$(window).height() / 2);
	$(borderDiv).css("zIndex",3);
	$(borderDiv).attr("class","inputSortDiv")
	
	var buffer = "<div class=\"right_list_title\">";
	buffer = buffer + "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
	buffer = buffer + "<tr>";
	buffer = buffer + "<td class=\"right_list_title_left\">&nbsp;</td>";
	buffer = buffer + "</tr>";
	buffer = buffer + "</table>";
	buffer = buffer + "</div>";
	
	buffer = buffer + "<div class=\"right_list_bg\">";
	
	buffer = buffer + "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"#b5b5b5\">";
	buffer = buffer + "<tr>";
	buffer = buffer + "<td class=\"right_list_td_odd\">";
	
	buffer = buffer + "位置：<input type=\"text\" id=\"inputSortNum\"><br>";
	buffer = buffer + "<input onclick=\"enterMovePos('" + hiddenPosName + "','" + submitURL + "','" + maxSortNum + "', " + curPos + ");\" type=\"button\" name=\"button\" value=\"确定\" class=\"main_button\" />&nbsp;&nbsp;&nbsp;&nbsp;";
	buffer = buffer + "<input type=\"button\" name=\"button\" value=\"取消\" class=\"main_button\" onclick=\"closePopInputNum();\"/>";
	
	buffer = buffer + "</td>";
	buffer = buffer + "</tr>";
	buffer = buffer + "</table>";
	
	buffer = buffer + "</div>";
	
	$(borderDiv).html(buffer);
	$("body").append(borderDiv);
}

function changeBgColor(obj, color) {
	obj.style.backgroundColor=color;
}
