function setCookie(name, value, expires, path, domain, secure) {
	document.cookie = name + "=" + escape(value) 
		+ ((expires) ? ";expires=" + expires.toGMTString() : "")
		+ ((path) ? ";path=" + path : "")
		+ ((domain) ? ";domain=" + domain : "")
		+ ((secure) ? ";secure" : "");
}

function getCookie(name) {
    var arr = document.cookie.match(
		new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
	
	if(arr != null) { 
		return unescape(arr[2]); 
	}
	
	return null;
}

function removeCookie(name, secure) {
	var cval = getCookie(name);
    var exp = new Date();
	
	exp.setTime(exp.getTime() - 1);

	if (cval != null) {
		document.cookie = name + "=" + cval 
			+ ";expires=" + exp.toGMTString()
			+ ((secure) ? ";secure" : "");
	}
}

function cancelPost(url) {
	document.location.replace(url);
}

function addUrlPara(flag) {
	var paraStr = "";
	switch (flag) {
	case 1:
		var selFromZone = document.getElementById("selFromZone");
		var fromZone = getSelectValue(selFromZone);
		var selToZone = document.getElementById("selToZone");
		var toZone = getSelectValue(selToZone);

		paraStr += "&fromzone=" + fromZone;
		paraStr += "&tozone=" + toZone;
		break;
	case 2:
		var selVswitch = document.getElementById("selVswitch");
		var vswitch = getSelectValue(selVswitch);

		if (vswitch != "") {
			paraStr += "&vswitch=" + vswitch;
		}
		break;
	case 3:
		var selSysLogLevel = document.getElementById("selSysLogLevel");
		var sysloglevel;
		if (selSysLogLevel == null) {
			sysloglevel = -1;
		} else {
			sysloglevel = getSelectValue(selSysLogLevel);
		}
		var pageType = document.getElementById("hidPageType").value;

		if (sysloglevel != "") {
			paraStr += "&sysloglevel=" + sysloglevel;
			paraStr += "&pageType=" + pageType;
		}
		break;
	case 4:
		var hidvrname = document.getElementById("hidVrName").value;
		paraStr += "&action=edit&vrname=" + hidvrname;
		break;
	case 5:
		var hidpoolname = document.getElementById("hidPoolName").value;
		paraStr += "&action=edit&poolname=" + hidpoolname;
		break;
	case 6:
		var hidVRName = document.getElementById("hidVRName").value;
		paraStr += "&vrname=" + hidVRName;
		break;
	case 8:
		var hidISPName = document.getElementById("hidISPName").value;
		paraStr += "&action=edit&ISPName=" + hidISPName;
        break;
	case 9:
		var hidname = document.getElementById("hidInsName").value;
		paraStr += "&action=edit&insname=" + hidname;
		break;
	case 10:
		var hidname = document.getElementById("hidCliName").value;
		paraStr += "&action=edit&sslvpnname=" + hidname;
		break;
	case 11:
		var selPbrName = document.getElementById("selName");
		var pbrname = getSelectValue(selPbrName);
		paraStr += "&pbrname=" + pbrname;
		break;
	case 12:
		var sslvpnname = document.getElementById("selSslvpnName").value;
		var tblType = document.getElementById("selTableType").value;
		paraStr += "&sslvpnname=" + sslvpnname;
		paraStr += "&tblType=" + tblType;
		break;
    case 13:
        var ifname = document.getElementById("hidIfName").value;
        var iftype = document.getElementById("hidIfType").value;
        paraStr += "&action=edit&ifname=" + ifname + "&iftype=" + iftype;
        break;
    case 14:
        var obj_sel_peer = document.getElementsByName("selPeerName")[0];
        var peer_name = getSelectValue(fm.selPeerName);
        paraStr += "&hidPeerName=" + peer_name;
	case 15:
		var pageType = document.getElementById("hidPageType").value;
		var filterValue = document.getElementById("hidSearch").value;
		paraStr += "&pageType=" + pageType;
		if (filterValue == "") {
			paraStr += "&filtertype=0";
		} else {
			paraStr += "&filtertype=1" + "&filtervalue=" + encodeURIComponent(filterValue);
		}
		break;
	case 16:
		var policy = document.getElementById("hidPolicy").value;
		var action = document.getElementById("hidAct").value;
		var proto = document.getElementById("hidProto").value;
		var srcip = document.getElementById("hidSrcIP").value;
		var srcmask = document.getElementById("hidSrcMask").value;
		var srcport = document.getElementById("hidSrcPort").value;
		var dstip = document.getElementById("hidDstIP").value;
		var dstmask = document.getElementById("hidDstMask").value;
		var dstport = document.getElementById("hidDstPort").value;
		var start = document.getElementById("hidStart").value;
		var end = document.getElementById("hidEnd").value;
		paraStr += "&type=1";
		if (policy != "") {
			paraStr += "&policy=" + policy;
		}
		paraStr += "&action=" + action;
		paraStr += "&proto=" + proto;
		paraStr += "&srcip=" + srcip;
		paraStr += "&srcmask=" + srcmask;
		paraStr += "&srcport=" + srcport;
		paraStr += "&dstip=" + dstip;
		paraStr += "&dstmask=" + dstmask;
		paraStr += "&dstport=" + dstport;
		paraStr += "&start=" + start;
		paraStr += "&end=" + end;
		break;
	case 17:
		var type = document.getElementById("hidType").value;
		var rule = document.getElementById("hidRule").value;
		var proto = document.getElementById("hidProto").value;
		var srcip = document.getElementById("hidSrcIP").value;
		var srcmask = document.getElementById("hidSrcMask").value;
		var srcport = document.getElementById("hidSrcPort").value;
		var dstip = document.getElementById("hidDstIP").value;
		var dstmask = document.getElementById("hidDstMask").value;
		var dstport = document.getElementById("hidDstPort").value;
		var transip = document.getElementById("hidTransIP").value;
		var transmask = document.getElementById("hidTransMask").value;
		var transport = document.getElementById("hidTransPort").value;
		var start = document.getElementById("hidStart").value;
		var end = document.getElementById("hidEnd").value;
		paraStr += "&type=" + type;
		paraStr += "&rule=" + rule;
		paraStr += "&proto=" + proto;
		paraStr += "&srcip=" + srcip;
		paraStr += "&srcmask=" + srcmask;
		paraStr += "&srcport=" + srcport;
		paraStr += "&dstip=" + dstip;
		paraStr += "&dstmask=" + dstmask;
		paraStr += "&dstport=" + dstport;
		paraStr += "&transip=" + transip;
		paraStr += "&transmask=" + transmask;
		paraStr += "&transport=" + transport;
		paraStr += "&start=" + start;
		paraStr += "&end=" + end;
		break;
	case 18:
		var searchType = document.getElementById("hidSearchType").value;
		var keyword = document.getElementById("hidKeyWord").value;
		var srcip1 = document.getElementById("hidSrcIP1").value;
		//var srcip2 = document.getElementById("hidSrcIP2").value;
		paraStr += "&type=5";
		if (searchType == "keyword") {
			paraStr += "&keyword=" + encodeURIComponent(keyword);
		} else {
			paraStr += "&srcip1=" + encodeURIComponent(srcip1);
			//paraStr += "&srcip2=" + encodeURIComponent(srcip2);
		}
		break;
	case 19:
		var statSet = document.getElementById("hidCurStatSet").value;
		var target = document.getElementById("hidTarget").value;
		var hist = document.getElementById("hidHist").value;
		var group = document.getElementById("hidGroup").value;
		var direct = document.getElementById("hidDirect").value;
		//var sidebar = document.getElementById("hidSidebar").value;
		var type = document.getElementById("hidType").value;
		var sort = document.getElementById("hidSort").value;
		var ifName = document.getElementById("hidIfName").value;
		var bwType = document.getElementById("hidBwType").value;
		var item = document.getElementById("hidItem").value;
		var multiItem = document.getElementById("hidMultiItem").value;
		var itemName = document.getElementById("hidItemName").value;
		var timeout = document.getElementById("hidTimeout").value;
		paraStr += "&statset=" + encodeURIComponent(statSet);
		paraStr += "&target=" + target;
		paraStr += "&hist=" + hist;
		paraStr += "&group=" + group;
		paraStr += "&direct=" + direct;
		//paraStr += "&sidebar=" + sidebar;
		paraStr += "&type=" + type;
		paraStr += "&sort=" + sort;
		if (ifName != "") {
			paraStr += "&ifname=" + ifName;
		}
		if (bwType != "") {
			paraStr += "&bwtype=" + bwType;
		}
		if (item != "") {
			paraStr += "&item=" + item;
		}
		if (multiItem != "") {
			paraStr += "&multiItem=" + multiItem;
		}
		if (itemName != "") {
			//paraStr += "&itemname=" + item;
			paraStr += "&itemname=" + itemName;
		}
		paraStr += "&timeout=" + timeout;
		break;
	case 20:
		//set scvpn binding list
		var selVPNByAdvUsr = document.getElementById("selVPNByAdvUsr").value;
		var selVPNByAdvHost = document.getElementById("selVPNByAdvHost").value;
		var selVPNByCan = document.getElementById("selVPNByCan").value;
		var selCanTableType = document.getElementById("selCanTableType");
		var selVPNByBind = document.getElementById("selVPNByBind").value;
		var selBindTableType = document.getElementById("selBindTableType").value;
		paraStr += "&selVPNByAdvUsr=" + selVPNByAdvUsr + "&selVPNByAdvHost=" + selVPNByAdvUsr + "&selVPNByCan=" + selVPNByCan + "&selVPNByBind=" + selVPNByBind + "&selCanTableType=" + selCanTableType + "&selBindTableType=" + selBindTableType;


		break;
	case 21:
		//set scvpn candidate list 
		var selVPNByAdvUsr = document.getElementById("selVPNByAdvUsr").value;
		var selVPNByAdvHost = document.getElementById("selVPNByAdvHost").value;
		var selVPNByCan = document.getElementById("selVPNByCan").value;
		var selCanTableType = document.getElementById("selCanTableType");
		var selVPNByBind = document.getElementById("selVPNByBind").value;
		var selBindTableType = document.getElementById("selBindTableType").value;
		paraStr += "&selVPNByAdvUsr=" + selVPNByAdvUsr + "&selVPNByAdvHost=" + selVPNByAdvUsr + "&selVPNByCan=" + selVPNByCan + "&selVPNByBind=" + selVPNByBind + "&selCanTableType=" + selCanTableType + "&selBindTableType=" + selBindTableType;

		break;
	case 22:
		//set scvpn adv usr list
		var selVPNByAdvUsr = document.getElementById("selVPNByAdvUsr").value;
		var selVPNByAdvHost = document.getElementById("selVPNByAdvHost").value;
		var selVPNByCan = document.getElementById("selVPNByCan").value;
		var selVPNByBind = document.getElementById("selVPNByBind").value;
		paraStr += "&selVPNByAdvUsr=" + selVPNByAdvUsr + "&selVPNByAdvHost=" + selVPNByAdvHost + "&selVPNByCan=" + selVPNByCan + "&selVPNByBind=" + selVPNByBind;
		break;
	case 23:
		//set scvpn adv host list 
		var selVPNByAdvUsr = document.getElementById("selVPNByAdvUsr").value;
		var selVPNByAdvHost = document.getElementById("selVPNByAdvHost").value;
		var selVPNByCan = document.getElementById("selVPNByCan").value;
		var selVPNByBind = document.getElementById("selVPNByBind").value;
		paraStr += "&selVPNByAdvUsr=" + selVPNByAdvUsr + "&selVPNByAdvHost=" + selVPNByAdvHost + "&selVPNByCan=" + selVPNByCan + "&selVPNByBind=" + selVPNByBind;

		break;
	case 24:
		var vrid = document.getElementById("hidVRId").value;
		paraStr += "&vrid=" + vrid;
		break;

	case 25:
		paraStr += "&item="  + document.getElementById("hitem").value 
			    +  "&value=" + document.getElementById("hvalue").value 
				+  "&vrid="  + document.getElementById("hidVRId").value 
				+  "&vrname="+ document.getElementById("hvrname").value ;

		break;

	case 26:
		var localSrv = document.getElementById("selLocalSrv").value;
		//var externSrv = document.getElementById("selExternSrv").value;
		paraStr += "&localSrv=" + localSrv;
		//paraStr += "&externSrv=" + externSrv;
		break;

	case 27:
		//set vpn_scvpn_status_list.html
		var sslvpnname = document.getElementById("selSslvpnName").value;
		paraStr += "&sslvpnname=" + sslvpnname;
		break;

	case 28:
		var fromzone = document.getElementById("selFromZone").value;
		var tozone = document.getElementById("selToZone").value;
		paraStr += "&fromzone=" + fromzone + "&tozone=" + tozone;
		break;

	case 29:
		var statSet1 = document.getElementById("hidStatSet1").value;
		var statSet2 = document.getElementById("hidStatSet2").value;
		var hist = document.getElementById("hidHist").value;
		var group = document.getElementById("hidGroup").value;
		var direct = document.getElementById("hidDirect").value;
		var sort = document.getElementById("hidSort").value;
		var type = document.getElementById("hidType").value;
		var mergeName = document.getElementById("hidMergeName").value;
		var timeout = document.getElementById("hidTimeout").value;
		paraStr += "&statset1=" + statSet1;
		paraStr += "&statset2=" + statSet2;
		paraStr += "&hist=" + hist;
		paraStr += "&group=" + group;
		paraStr += "&direct=" + direct;
		paraStr += "&sort=" + sort;
		paraStr += "&type=" + type;
		paraStr += "&name=" + mergeName;
		paraStr += "&timeout=" + timeout;
		break;
	case 30:
		var fromzone = document.getElementById("selFromZone").value;
        var tozone = document.getElementById("selToZone").value;
		var sort = document.getElementById("selSort").value
        paraStr += "&fromzone=" + fromzone + "&tozone=" + tozone + "&sort=" + sort;
        break;

	case 31: //for IDP global signatures
		var proto = document.getElementById("hidProto").value;
		var seve = document.getElementById("hidSeve").value;
		var stat = document.getElementById("hidStat").value;
		var signID = document.getElementById("hidSignID").value;
		var signName = document.getElementById("hidSignName").value;
		paraStr += "&proto=" + proto;
		paraStr += "&seve=" + seve;
		paraStr += "&stat=" + stat;
		paraStr += "&signid=" + signID;
		paraStr += "&signname=" + signName;
		break;

	case 32: //for IDP protocol signatures
		var seve = document.getElementById("hidSeve").value;
		var stat = document.getElementById("hidStat").value;
		var signID = document.getElementById("hidSignID").value;
		var signName = document.getElementById("hidSignName").value;
		//var profileName = document.getElementById("hidProfileName").value;
		//var webProfileName = document.getElementById("hidWebProfileName").value;
		var signSetType = document.getElementById("hidSignSetType").value;
		var signSetName = document.getElementById("hidSignSetName").value;
		paraStr += "&action=edit";
		paraStr += "&seve=" + seve;
		paraStr += "&stat=" + stat;
		paraStr += "&signid=" + signID;
		paraStr += "&signname=" + signName;
		//paraStr += "&profilename=" + profileName;
		//paraStr += "&webprofilename=" + webProfileName;
		paraStr += "&signsettype=" + signSetType;
		paraStr += "&signsetname=" + signSetName;
		break;

	case 33:
		var aaaName = document.getElementById("hidAAA").value;
        paraStr += "&aaaname=" + aaaName;
        break;
	default:
		break;
	}
	return paraStr;
}

function handleNumPerPage(script_name, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var page_index = 1;
	var cnt_url = "";

	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + page_index;
	cnt_url += addUrlPara(flag);

	window.location.replace(cnt_url);
}

function handleMulTblNumPerPage (ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, flag) {

	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page = 50;
		var page_index = 1;
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		if (i == currentIndex) {
			//num_per_page = getSelectValue(myObj.id);
			num_per_page = myObj.value;
			page_index = 1;
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
			if (aTabID.length != 0) {
				cnt_url += "&tab_id=" + aTabID[currentIndex];
			}
		} else {
			num_per_page = aNumPerPage[i][1];
			page_index = aCurrentPage[i][1];
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		}
		if (i != aNumPerPage.length-1) {
			cnt_url += "&";
		}
	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}
}


function handleFirstPage(script_name, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var cnt_url = "";
	var page_index = 1;

	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + page_index;
	cnt_url += addUrlPara(flag);
	
	window.location.replace(cnt_url);
}

function handleMulTblFirstPage (ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, flag) {
	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page = 50;
		var page_index = 1;
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		if (i ==  currentIndex) {
			num_per_page = aNumPerPage[i][1];
			page_index = 1;
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
			if (aTabID.length != 0) {
				cnt_url += "&tab_id=" + aTabID[currentIndex];
			}

		} else {
			num_per_page = aNumPerPage[i][1];
			page_index = aCurrentPage[i][1];
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		}

		if (i != aNumPerPage.length-1) {
			cnt_url += "&";
		}
	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}
}

function handlePreviousPage(script_name, current_page, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var page_index = 1;
	var cnt_url = "";

	if (current_page == "") {
		page_index = 1;
	} else {
		page_index = current_page - 1;
	}
	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + page_index;
	cnt_url += addUrlPara(flag);
	
	window.location.replace(cnt_url);
}

function handleMulTblPreviousPage(ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, flag) {
	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page = 50;
		var page_index = 1;
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		if (i ==  currentIndex) {
			num_per_page = aNumPerPage[i][1];
			if (aCurrentPage[i][1] == "") {
				page_index = 1;
			} else {
				page_index = parseInt(aCurrentPage[i][1]) - 1;
			}
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
			if (aTabID.length != 0) {
				cnt_url += "&tab_id=" + aTabID[currentIndex];
			}
		} else {
			num_per_page = aNumPerPage[i][1];
			page_index = aCurrentPage[i][1];
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		}
		if (i != aNumPerPage.length-1) {
			cnt_url += "&";
		}
	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}
}

function handleLastPage(script_name, total_page, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var cnt_url = "";
	var page_index = total_page;

	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + total_page;
	cnt_url += addUrlPara(flag);
	
	window.location.replace(cnt_url);
}

function handleMulTblLastPage(ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, total_page, flag) {
	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page = 50;
		var page_index = 1;
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		if (i ==  currentIndex) {
			num_per_page = aNumPerPage[i][1];
			page_index = total_page;
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
			if (aTabID.length != 0) {
				cnt_url += "&tab_id=" + aTabID[currentIndex];
			}
		} else {
			num_per_page = aNumPerPage[i][1];
			page_index = aCurrentPage[i][1];
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		}
		if (i != aNumPerPage.length-1) {
			cnt_url += "&";
		}

	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}

}

function handleNextPage(script_name, current_page, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var page_index = 1;
	var cnt_url = "";

	if (current_page == "") {
		page_index = 2;
	} else {
		page_index = current_page + 1;
	}
	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + page_index;
	cnt_url += addUrlPara(flag);
	
	window.location.replace(cnt_url);
}

function handleMulTblNextPage(ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, flag) {
	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page = 50;
		var page_index = 1;
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		if (i ==  currentIndex) {
			num_per_page = aNumPerPage[i][1];
			if (aCurrentPage[i][1] == "") {
				page_index = 2;
			} else {
				page_index = parseInt(aCurrentPage[i][1]) + 1;
			}
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
			if (aTabID.length != 0) {
				cnt_url += "&tab_id=" + aTabID[currentIndex];
			}
		} else {
			num_per_page = aNumPerPage[i][1];
			page_index = aCurrentPage[i][1];
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		}
		if (i != aNumPerPage.length - 1) {
			cnt_url += "&";
		}
	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}
}

function handleWantedPage(script_name, current_page, wanted_page, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var page_index = wanted_page;
	var cnt_url = "";

	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + page_index;
	cnt_url += addUrlPara(flag);
	
	window.location.replace(cnt_url);
}

function handleMulTblWantedPage (ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, wanted_page, flag) {
	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page = 50;
		var page_index = 1;
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		if (i ==  currentIndex) {
			num_per_page = aNumPerPage[i][1];
			page_index = wanted_page;
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
			if (aTabID.length != 0) {
				cnt_url += "&tab_id=" + aTabID[currentIndex];
			}
		} else {
			num_per_page = aNumPerPage[i][1];
			page_index = aCurrentPage[i][1];
			cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		}
		if (i != aNumPerPage.length - 1) {
			cnt_url += "&";
		}
	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}
}

function handleRefreshPage(script_name, current_page, flag) {
	var num_per_page = getSelectValue(document.getElementById("selNumPerPage"));
	var page_index = 1;
	var cnt_url = "";

	if (current_page == "") {
		page_index = 1;
	} else {
		page_index = current_page;
	}
	cnt_url = script_name + "?num_per_page=" 
		+ num_per_page + "&page_index=" + page_index;
	cnt_url += addUrlPara(flag);
	
	window.location.replace(cnt_url);
}

function handleMulTblRefreshPage(ajaxFlag, myObj, aTabID, currentIndex, aNumPerPage, aCurrentPage, script_name, flag) {
	var cnt_url = "";
	cnt_url = script_name + "?";
	for (var i = 0; i < aNumPerPage.length; i++) {
		var num_per_page_name = aNumPerPage[i][0];
		var page_index_name = aCurrentPage[i][0];
		num_per_page = aNumPerPage[i][1];
		page_index = aCurrentPage[i][1];
		cnt_url += num_per_page_name + "=" + num_per_page + "&" + page_index_name + "=" + page_index;
		if (i == currentIndex && aTabID.length != 0) {
			cnt_url += "&tab_id=" + aTabID[currentIndex];
		}
		if (i != aNumPerPage.length - 1) {
			cnt_url += "&";
		}
	}
	cnt_url += addUrlPara(flag);
	if (ajaxFlag == 0) {
		window.location.replace(cnt_url);
	} else {
		if (flag != 26) {
			loadDataPageByTag(aTabID[currentIndex], cnt_url);
		} else {
			loadDataPageByTag({tagId:aTabID[currentIndex], url:cnt_url});
		}
	}
}

function writePageCtrlHead(total, numPerPage, currentPage, scriptName, moduleFlag) {
	var numList = new Array(20, 50, 100, 200);
	var numStart = 0;
	var numEnd = -1;
	var flag = 0;
	if (numPerPage) {
		numPerPage = parseInt(numPerPage);
	} else {
		numPerPage = 50;
	}
	if (currentPage) {
		currentPage= parseInt(currentPage);
	} else if (total == 0) {
		currentPage= 0;
	} else {
		currentPage= 1;
	}
	var totalPage = total/numPerPage; 
	totalPage = Math.floor(totalPage);
	if ((total % numPerPage) != 0) {
		totalPage++;
	}
	if (moduleFlag) {
		flag = moduleFlag;
	}

	var txt = '<div class="head_right"><div class="pg_num">Total:&nbsp;' + total + '&nbsp;&nbsp;Per Page:&nbsp;<select name="selNumPerPage" id="selNumPerPage" title=\'Number of Per Page\' onchange="handleNumPerPage(\'' + scriptName + '\', ' + flag + ');">';
	for (var i = 0; i < numList.length; i++) {
		txt += "<option";
		if (numList[i] == numPerPage) {
			txt += " selected"
		}
		txt += " value='" + numList[i] + "'"
		txt += ">";
		txt += numList[i] + "</option>\n";
	}
	txt += '</select>&nbsp;</div>';
	txt += '<div class="pg_separator"></div>';
	if (currentPage == 1 || currentPage == "" || totalPage == 0) {
		txt += '<div class="pg_btn pg_first_disabled" title=\'First Page\'></div>';
		txt += '<div class="pg_btn pg_prev_disabled" title=\'Previous Page\'></div>';
	} else {
		txt += '<div class="pg_btn pg_first" title=\'First Page\' onclick="handleFirstPage(\'' + scriptName + '\', ' + flag + ');"></div>';
		txt += '<div class="pg_btn pg_prev" title=\'Previous Page\' onclick="handlePreviousPage(\'' + scriptName + '\', ' + currentPage + ', ' + flag + ');"></div>';
	}
	txt += '<div class="pg_separator2"></div>';

	if (totalPage > 0) {
		if (totalPage <= 5) {
			numStart = 1;
			numEnd = totalPage;
		} else {
			if (currentPage < 3) {
				numStart = 1;
				numEnd = 5;
			} else if (currentPage >= totalPage - 2) {
				numStart = totalPage - 4;
				numEnd = totalPage;
			} else {
				numStart = currentPage - 2;
				numEnd = currentPage + 2;
			}
		}
	}
	for (var i = numStart; i <= numEnd; i++) {
		if (i == currentPage) {
			txt += '<div class="pg_page_selected">' + i + '</div>';
		} else {
			txt += '<div class="pg_page" onclick="handleWantedPage(\'' + scriptName + '\', ' + currentPage + ', ' + i + ', ' + flag + ');">' + i + '</div>';
		}
	}

	txt += '<div class="pg_separator"></div>';
	if (currentPage == totalPage || totalPage == 0) {
		txt += '<div class="pg_btn pg_next_disabled" title=\'Next Page\'></div>';
		txt += '<div class="pg_btn pg_last_disabled" title=\'Last Page\'></div>';
	} else {
		txt += '<div class="pg_btn pg_next" title=\'Next Page\' onclick="handleNextPage(\'' + scriptName + '\', ' + currentPage + ', ' + flag + ');"></div>';
		txt += '<div class="pg_btn pg_last" title=\'Last Page\' onclick="handleLastPage(\'' + scriptName + '\', ' + totalPage + ', ' + flag + ');"></div>';
	}
	txt += '<div class="pg_separator"></div>';
	txt += '<div class="pg_btn pg_refresh" id="divRefresh" title=\'Refresh\' onclick="handleRefreshPage(\'' + scriptName + '\', ' + currentPage + ', ' + flag + ');"></div>';
	txt += '</div>';

	document.writeln(txt);
}

function writeMulTblPageCtrl(ajaxFlag, total, barPosition, aTabID, aNumPerPage, aCurrentPage, scriptName,currentIndex, moduleFlag ) {
	//barPosition 0:top 1:bottom
	var numList = new Array(20, 50, 100, 200);
	var arrNumPerPage = eval(aNumPerPage);
	var arrCurrentPage = eval(aCurrentPage);
	var numStart = 0;
	var numEnd = -1;
	var flag = 0;
	var thisNumPerPage = 0;
	var thisCurrentPage = 0;
	if (arrNumPerPage[currentIndex][1]) {
		thisNumPerPage = parseInt(arrNumPerPage[currentIndex][1]);
	} else {
		thisNumPerPage = 50;
	}
	if (arrCurrentPage[currentIndex][1]) {
		thisCurrentPage = parseInt(arrCurrentPage[currentIndex][1]);
	} else if (total == 0) {
		thisCurrentPage = 0;
	} else {
		thisCurrentPage = 1;
	}
	var totalPage = total/thisNumPerPage; 
	totalPage = Math.floor(totalPage);
	if ((total % thisNumPerPage) != 0) {
		totalPage++;
	}
	if (moduleFlag) {
		flag = moduleFlag;
	}
	var txt = '<div class="head_right">';
	if (barPosition == 0) {
		//Top Bar 
		txt += '<div class="pg_num">Total:&nbsp;' + total + '&nbsp;&nbsp;Per Page:&nbsp;<select name="selNumPerPage_' + arrNumPerPage[currentIndex][0] + '" id="selNumPerPage_' + arrNumPerPage[currentIndex][0] + '" title=\'Number of Per Page\' onchange="handleMulTblNumPerPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + flag + ');">';
		for (var i = 0; i < numList.length; i++) {
			txt += "<option";
			if (numList[i] == thisNumPerPage) {
				txt += " selected"
			}
			txt += " value='" + numList[i] + "'"
				txt += ">";
			txt += numList[i] + "</option>\n";
		}
		txt += '</select>&nbsp;</div>';
		txt += '<div class="pg_separator"></div>';
	}
	if (thisCurrentPage == 1 || thisCurrentPage == "" || totalPage == 0) {
		txt += '<div class="pg_btn pg_first_disabled" title=\'First Page\'></div>';
		txt += '<div class="pg_btn pg_prev_disabled" title=\'Previous Page\'></div>';
	} else {
		txt += '<div class="pg_btn pg_first" title=\'First Page\' onclick="handleMulTblFirstPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + flag + ');"></div>';
		txt += '<div class="pg_btn pg_prev" title=\'Previous Page\' onclick="handleMulTblPreviousPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + flag + ');"></div>';
	}
	txt += '<div class="pg_separator2"></div>';

	if (totalPage > 0) {
		if (totalPage <= 5) {
			numStart = 1;
			numEnd = totalPage;
		} else {
			if (thisCurrentPage < 3) {
				numStart = 1;
				numEnd = 5;
			} else if (thisCurrentPage >= totalPage - 2) {
				numStart = totalPage - 4;
				numEnd = totalPage;
			} else {
				numStart = thisCurrentPage - 2;
				numEnd = thisCurrentPage + 2;
			}
		}
	}
	for (var i = numStart; i <= numEnd; i++) {
		if (i == thisCurrentPage) {
			txt += '<div class="pg_page_selected">' + i + '</div>';
		} else {
			txt += '<div class="pg_page" onclick="handleMulTblWantedPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + i + ', ' + flag + ');">' + i + '</div>';
		}
	}

	txt += '<div class="pg_separator"></div>';
	if (thisCurrentPage == totalPage || totalPage == 0) {
		txt += '<div class="pg_btn pg_next_disabled" title=\'Next Page\'></div>';
		txt += '<div class="pg_btn pg_last_disabled" title=\'Last Page\'></div>';
	} else {
		txt += '<div class="pg_btn pg_next" title=\'Next Page\' onclick="handleMulTblNextPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + flag + ');"></div>';
		txt += '<div class="pg_btn pg_last" title=\'Last Page\' onclick="handleMulTblLastPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + totalPage + ', ' + flag + ');"></div>';
	}
	txt += '<div class="pg_separator"></div>';
	txt += '<div class="pg_btn pg_refresh" id="divRefresh" title=\'Refresh\' onclick="handleMulTblRefreshPage(' + ajaxFlag + ', this, ' + aTabID + ', ' + currentIndex + ', ' + aNumPerPage + ', ' + aCurrentPage + ', \'' + scriptName + '\', ' + flag + ');"></div>';
	txt += '</div>';

	//document.writeln(txt);
	return txt;
}

function writePageCtrlFoot(total, numPerPage, currentPage, scriptName, moduleFlag) {
	var numList = new Array(20, 50, 100, 200);
	var numStart = 0;
	var numEnd = -1;
	var flag = 0;
	if (numPerPage) {
		numPerPage = parseInt(numPerPage);
	} else {
		numPerPage = 50;
	}
	if (currentPage) {
		currentPage= parseInt(currentPage);
	} else if (total == 0) {
		currentPage= 0;
	} else {
		currentPage= 1;
	}
	var totalPage = total/numPerPage; 
	totalPage = Math.floor(totalPage);
	if ((total % numPerPage) != 0) {
		totalPage++;
	}
	if (moduleFlag) {
		flag = moduleFlag;
	}

	var txt = '<div class="head_right">';
	if (currentPage == 1 || currentPage == "" || totalPage == 0) {
		txt += '<div class="pg_btn pg_first_disabled" title=\'First Page\'></div>';
		txt += '<div class="pg_btn pg_prev_disabled" title=\'Previous Page\'></div>';
	} else {
		txt += '<div class="pg_btn pg_first" title=\'First Page\' onclick="handleFirstPage(\'' + scriptName + '\', ' + flag + ');"></div>';
		txt += '<div class="pg_btn pg_prev" title=\'Previous Page\' onclick="handlePreviousPage(\'' + scriptName + '\', ' + currentPage + ', ' + flag + ');"></div>';
	}
	txt += '<div class="pg_separator2"></div>';

	if (totalPage > 0) {
		if (totalPage <= 5) {
			numStart = 1;
			numEnd = totalPage;
		} else {
			if (currentPage < 3) {
				numStart = 1;
				numEnd = 5;
			} else if (currentPage >= totalPage - 2) {
				numStart = totalPage - 4;
				numEnd = totalPage;
			} else {
				numStart = currentPage - 2;
				numEnd = currentPage + 2;
			}
		}
	}
	for (var i = numStart; i <= numEnd; i++) {
		if (i == currentPage) {
			txt += '<div class="pg_page_selected">' + i + '</div>';
		} else {
			txt += '<div class="pg_page" onclick="handleWantedPage(\'' + scriptName + '\', ' + currentPage + ', ' + i + ', ' + flag + ');">' + i + '</div>';
		}
	}

	txt += '<div class="pg_separator"></div>';
	if (currentPage == totalPage || totalPage == 0) {
		txt += '<div class="pg_btn pg_next_disabled" title=\'Next Page\'></div>';
		txt += '<div class="pg_btn pg_last_disabled" title=\'Last Page\'></div>';
	} else {
		txt += '<div class="pg_btn pg_next" title=\'Next Page\' onclick="handleNextPage(\'' + scriptName + '\', ' + currentPage + ', ' + flag + ');"></div>';
		txt += '<div class="pg_btn pg_last" title=\'Last Page\' onclick="handleLastPage(\'' + scriptName + '\', ' + totalPage + ', ' + flag + ');"></div>';
	}
	txt += '<div class="pg_separator"></div>';
	txt += '<div class="pg_btn pg_refresh" id="divRefresh" title=\'Refresh\' onclick="handleRefreshPage(\'' + scriptName + '\', ' + currentPage + ', ' + flag + ');"></div>';
	txt += '</div>';

	document.writeln(txt);
}

function setSelectValue(select, value) {
	var options = select.options;

	if (!options || !options.length || (options.length == 0)) {
		return;
	}

	for (var i = 0; i < options.length; i++) {
		if (options[i].value == value) {
			select.selectedIndex = i;
			break;
		}
	}
}

function getSelectValue(select) {
	var options = select.options;

	if (select.selectedIndex < 0) {
		return "";
	}

	return options[select.selectedIndex].value;
}

function getSelectIndexByValue(select, value) {
	var options = select.options;

	if (!options || !options.length || (options.length == 0) || !value
		|| (value.length == 0)) {
		return -1;
	}

	for (var i = 0; i < options.length; i++) {
		if (options[i].value == value) {
			return i;
		}
	}

	return -1;
}

function setRadioValue(radio, value) {
	if (radio == null) {
		return;
	}

	if (radio.length == null) {
		if (radio.value == value) {
			radio.checked = true;
		}
		return;
	}

	for (var i = 0; i < radio.length; i++) {
		if (radio[i].value == value) {
			radio[i].checked = true;
		}
	}	
}

function getRadioValue(radio) {
	if (radio == null) {
		return null;
	}

	if (radio.length == null) {
		if (radio.checked) {
			return radio.value;
		}
	} else {
		for (var i = 0; i < radio.length; i++) {
			if (radio[i].checked) {
				return radio[i].value;
			}
		}
	}

	return null;
}

function chkCheckbox(checkbox, value) {
	if ((checkbox == null) || (value == "")) {
		return;
	}

	checkbox.checked = true;
}

function checkSubmitPrivilege(fm) {
	var userPriv = parseInt(fm._hidUserPriv_.value);

	if (top.userPriv >= userPriv) {
		return true;
	}
	
	alert("Sorry, you do not have the privilege to do the operation");

	return false;
}

function checkSubmitPrivilege2(fm) {
	var userPriv = parseInt(fm._hidUserPriv_.value);

	if (window.opener.top.userPriv >= userPriv) {
		return true;
	}
	
	alert("Sorry, you do not have the privilege to do the operation");

	return false;
}

function isValidStr(str) {
	var result;

	if (!str || (str.length == 0)) {
		return true;
	}

	if (str.indexOf('"') >= 0) {
		alert("The string containing double quote is not supported");
		return false;
	}

	if (str.indexOf("' ") >= 0) {
		alert("The string containing space(s) after a quote is not supported");
		return false;
	}

  	//refer: http://blog.oasisfeng.com/2006/10/19/full-cjk-unicode-range/
	result = str.match(/^[\u0020-\u007f\u3400-\u4db5\u4e00-\u9fa5\u9fa6-\u9fbb\uf900-\ufa2d\ufa30-\ufa6a\ufa70-\ufad9\u20000-\u2a6d6\u2f800-\u2fa1d\uff00-\uffef\u2e80-\u2eff\u3000-\u303f\u31c0-\u31ef]+$/);

	if (result) {
		return true;
	}
		
	alert("The input can not contain invalid characters");

	return false;
}

function checkStrLength(str, length) {
	var tmp = "";

	if (length <= 0)
		return true;

	tmp = str.replace(/[\u0080-\u07ff]/g, "aa");
	tmp = tmp.replace(/[\u0800-\uffff]/g, "aaa");

	if (tmp.length > length) {
		alert("The input length is over acceptance length");
		return false;
	}

	return true;
} 


function checkInput(fm) {
	var length = fm.elements.length;

	for (var i = 0; i < length; i++) {
		var elem = fm.elements[i];

		if (elem.type == "text" || elem.type == "password") {
			if (!isValidStr(elem.value) || !checkStrLength(elem.value, elem.maxLength)) {
				elem.focus();
				elem.select();

				return false;
			}
		}
	}

	return true;
}

function onSubmitCommon(fm) {
	if (!checkSubmitPrivilege(fm)) {
		return false;
	}

	if (!checkInput(fm)) {
		return false;
	}

	fm._hidUserName_.value = top.userName;

	return true;
}

/*
 * for popup window
 */
function onSubmitCommon2(fm) {
	if (!checkSubmitPrivilege2(fm)) {
		return false;
	}
	
	if (!checkInput(fm)) {
		return false;
	}

	fm._hidUserName_.value = window.opener.top.userName;

	return true;
}

function setFormActionPriv(fm, priv) {
	fm._hidUserPriv_.value = priv;
}

function getOperationIconByValue(value) {
	if (value == 'edit')
		return 'image/btn_edit.gif';
	else if (value == 'new')
		return 'image/btn_new.gif';
	else if (value == 'remove')
		return 'image/btn_del.gif';
	else if (value == 'clean')
        return 'image/btn_clean.gif';
	else if (value == 'remove all users')
		return 'image/btn_del.gif';
	else if (value == 'remove all hosts')
		return 'image/btn_del.gif';
	else if (value == 'move')
		return 'image/btn_move.gif';
	else if (value == 'priority')
		return 'image/btn_priority.gif';
	else if (value == 'detail')
		return 'image/btn_detail.gif';
	else if (value == 'client online')
		return 'image/btn_user_detail.gif';
	else if (value == 'export')
		return 'image/btn_export.gif';
	else if (value == 'connect')
		return 'image/btn_linkup.gif';
	else if (value == 'disconnect')
		return 'image/btn_linkdown.gif';
	else if (value == 'apply')
		return 'image/btn_apply.gif';
	else if (value == 'approve')
		return 'image/btn_apply.gif';
	else if (value == 'kickout')
		return 'image/btn_kickout.gif';
	else if (value == 'refresh')
		return 'image/btn_refresh.gif';
	else if (value == 'copy')
		return 'image/btn_copy.gif';
    else if (value == 'schedule')
        return 'schedule.gif';
    else if (value == 'open')
        return 'image/btn_open.gif';
	else if (value == 'log')
		return 'image/icon_log.gif';
	else if (value == 'active')
        return 'image/icon_active.gif';
	else if(value == 'moveup')
		return 'image/btn_move_up.gif';
	else if(value == 'movedown')
        return 'image/btn_move_down.gif';
	else if (value == 'print')
		return 'image/btn_print.gif';
	else
		return 'unknown.gif';
}

function getOperationTitleTRByValue(value) {
	if (value == 'edit')
		return 'Edit';
	else if (value == 'new')
		return 'New';
	else if (value == 'remove')
		return 'Remove';
	else if (value == 'clean')
		return 'Clean';
	else if (value == 'remove all users')
		return 'Remove all users';
	else if (value == 'remove all hosts')
		return 'Remove all hosts';
	else if (value == 'move')
		return 'Move';
	else if (value == 'priority')
		return 'Priority';
	else if (value == 'detail')
		return 'Detail';
	else if (value == 'export')
		return 'Export';
	else if (value == 'connect')
		return 'Connect';
	else if (value == 'disconnect')
		return 'Disconnect';
	else if (value == 'kickout')
		return 'Kickout';
	else if (value == 'client online')
		return 'Client Online';
	else if (value == 'active')
		return 'set as active';
	else if (value == 'apply')
		return 'Apply';
	else if (value == 'approve')
		return "Approve";
	else if (value == 'refresh')
		return 'Refresh';
	else if (value == 'copy')
		return 'Copy';
    else if (value == 'schedule')
        return 'Schedule';
    else if (value == 'open')
		return 'Open';
	else if (value == 'log')
		return 'Log';
	else if(value == 'moveup')
		return 'Move Up';
	else if(value == 'movedown')
        return 'Move Down';
	else if(value == 'print')
        return 'Print';


	else
		return value;
}

/* Support the following operation:
 * Edit, Remove, Move, Detail, Export, Connect, Disconnect
 *
 * If you want new operation, please contact with MGMT team.
 */

function genOperationLink(value, linkStr, clickStr) {
	var txt = '';

	txt += '<a href="' + linkStr + '"';

	if (clickStr) {
		txt += ' onclick="' + clickStr + ';"';
	}

	txt += '><img src="' + getOperationIconByValue(value.toLowerCase()) + '" border="0" title="' + getOperationTitleTRByValue(value.toLowerCase()) + '" /></a>';
	txt += '<img src="image/icon_shim.gif" border="0" />';

	return txt;
}

function genOperationLink2(value, linkStr, clickStr) {
	var txt = '';

	txt += '<a href="' + linkStr + '"';

	if (clickStr) {
		txt += ' onclick="' + clickStr + ';"';
	}

	txt += '><img src="' + getOperationIconByValue(value.toLowerCase()) + '" border="0" title="' + getOperationTitleTRByValue(value.toLowerCase()) + '" /></a>';

	return txt;
}

function genOperationLink3(value, linkStr, titleStr) {
	var txt = '';

	txt += '<a href="' + linkStr + '"';
	txt += '><img src="' + getOperationIconByValue(value.toLowerCase()) + '" border="0" title="' + getOperationTitleTRByValue(value.toLowerCase()) + ':' + titleStr + '" /></a>';
	txt += '<img src="image/icon_shim.gif" border="0" />';

	return txt;
}


function genOperationEmpty() {
	var txt = '';

	txt += '<img src="image/icon_empty.gif" border="0" /><img src="image/icon_shim.gif" border="0" />';
	return txt;
}

function getStatusIconByValue(value) {
	if (value == 'permit')
		return 'image/icon_permit.gif';
	else if (value == 'deny')
		return 'image/icon_deny.gif';
	else if (value == 'tunnel')
		return 'image/icon_tunnel.gif';
	else if (value == 'webauth')
		return 'image/icon_webauth.gif';
	else if (value == 'log')
		return 'image/icon_log.gif';
	else if (value == 'schedule')
		return 'image/icon_schedule.gif';
	else if (value == 'schedule-invalid')
		return 'image/icon_schedule.gif';
	else if (value == 'qos')
		return 'image/icon_qos.gif';
	else if (value == 'profile')
		return 'image/icon_profile.gif';
	else if (value == 'linkup')
		return 'image/icon_linkup.gif';
	else if (value == 'linkdown')
		return 'image/icon_linkdown.gif';
	else if (value == 'link-unknown')
		return 'image/icon_linkunknown.gif';
	else if (value == 'empty')
		return 'image/icon_empty.gif';
	else if (value == 'active')
		return 'image/icon_active.gif';
	else if (value == 'ready')
		return 'image/icon_ready.gif';
	else if (value == 'valid')
		return 'image/icon_valid.gif';
	else if (value == 'invalid')
		return 'image/icon_invalid.gif';
	else if (value == 'feature-trial')
		return 'image/icon_lcs_feat_trial.gif';
	else if (value == 'platform')
		return 'image/icon_lcs_plat.gif';
	else if (value == 'platform-base')
		return 'image/icon_lcs_plat_base.gif';
	else if (value == 'platform-trial')
		return 'image/icon_lcs_plat_trial.gif';
	else if (value == 'lcs-scvpn')
		return 'image/icon_lcs_scvpn.gif';
	else if (value == 'lcs-qos')
		return 'image/icon_lcs_qos.gif';
	else if (value == 'lcs-sess')
		return 'image/icon_lcs_sess.gif';
	else if (value == 'lcs-nms')
		return 'image/icon_lcs_nms.gif';
	else if (value == 'lcs-av')
		return 'image/icon_lcs_av.gif';
	else if (value == 'lcs-ips')
		return 'image/icon_lcs_ips.gif';
	else if (value == 'lcs-adv')
		return 'image/icon_lcs_adv.gif';
	else if (value == 'lcs-nbc')
		return 'image/icon_lcs_nbc.gif';
	else if (value == 'lcs-url')
		return 'image/icon_lcs_url.gif';
	else if (value == 'ip')
		return 'image/icon_ipsub.gif';
	else if (value == 'user')
		return 'image/icon_usr.gif';
	else if (value == 'user group')
		return 'image/icon_usrgrp.gif';
	else if (value == 'ip range')
		return 'image/icon_iprange.gif';
	else if (value == 'role')
		return 'image/icon_role.gif';
	else if (value == 'address book')
		return 'image/icon_addbook.gif';
	else if (value == 'lcs-app')
		return 'image/icon_lcs_app.gif';
	else if (value == 'lcs-perf')
		return 'image/icon_lcs_perf.gif';
	else
		return 'unknown.gif';
}

function getStatusTitleTRByValue(value) {
	if (value == 'permit')
		return 'PERMIT';
	else if (value == 'deny')
		return 'DENY';
	else if (value == 'tunnel')
		return 'Tunnel';
	else if (value == 'webauth')
		return 'WebAuth';
	else if (value == 'log')
		return 'Log';
	else if (value == 'schedule')
		return 'Schedule';
	else if (value == 'qos')
		return 'QoS';
	else if (value == 'profile')
		return 'Profile';
	else if (value == 'linkup')
		return 'Link Up';
	else if (value == 'linkdown')
		return 'Link Down';
	else if (value == 'link-unknown')
		return 'Link Unknown';
	else if (value == 'active')
		return 'Active';
	else if (value == 'ready')
		return "Ready";
	else if (value == 'valid')
		return 'Next hop is valid';
	else if (value == 'invalid')
		return 'Next hop is invalid';
	else if (value == 'feature-trial')
        return 'Feature Trial';
    else if (value == 'platform')
        return 'Platform';
	else if (value == 'platform-base')
        return 'Basic Platform';
	else if (value == 'platform-trial')
        return 'Trial Platform';
    else if (value == 'lcs-qos')
        return 'QoS';
    else if (value == 'lcs-scvpn')
        return 'SCVPN';
    else if (value == 'lcs-sess')
        return 'Session';
    else if (value == 'lcs-nms')
        return 'Network Management System';
    else if (value == 'lcs-av')
        return 'Anti-Virus';
    else if (value == 'lcs-ips')
        return 'IPS';
	else if (value == 'lcs-adv')
        return 'Advanced';

	else
		return value;
}

/* Support the following icon:
 * Permit, Deny, Tunnel, Up, Down
 *
 *If you want new operation, please contact with MGMT team.
 */

function genIconTag(value, title) {
	var txt = '';

	if (title)
		txt += '<img src="' + getStatusIconByValue(value.toLowerCase()) + '" border="0" title="' + title + '" />';
	else
		txt += '<img src="' + getStatusIconByValue(value.toLowerCase()) + '" border="0" title="' + getStatusTitleTRByValue(value.toLowerCase()) + '" />';

	return txt;
}

function getNavigatorName() {
	return navigator.appName;
}

function getNavigatorVersion() {
	if ( window.navigator.appVersion.indexOf("IE 6.0") != -1)
		return 6;
	else if (window.navigator.appVersion.indexOf("IE 5.0") != -1)
		return 5;
	else if (window.navigator.appVersion.indexOf("IE 5.5") != -1)
		return 5;
	else
		return 7;

}

function speCharRep(str) {
	str=str.replace(/\</g, '&lt;');
	str=str.replace(/\>/g, '&gt;');
	return str;
}

function speCharRep2(str) {
	str=str.replace(/\\/g, '\\\\');
	str=str.replace(/\"/g, '\\\"');
	str=str.replace(/\'/g, '\\\'');
	return str;
}


function ConfirmWindow(str) {
    var txt = "";

    if (str == "Alarm Log") {
        txt += "Clear All Alarm Log";
    } else if (str == "Event Log") {
        txt += "Clear All Event Log";
    } else if (str == "Security Log") {
        txt += "Clear All Security Log";
    } else if (str == "Network Log") {
        txt += "Clear All Network Log";
    } else if (str == "Traffic Log") {
        txt += "Clear All Traffic Log";
    } else if (str == "Config Log") {
        txt += "Clear All Config Log";
    } else {
        txt += str;
    }
    var n = confirm(txt);
    if (n == true) {
        handleAction('clear');
    }
}

function chkOperationTitleTRByValue(value) {
	if (value == 'Edit')
		return 0;
	else if (value == 'Remove')
		return 0;
	else if (value == 'Move')
		return 0;
	else if (value == 'Detail')
		return 1;
	else if (value == 'Export')
		return 1;
	else if (value == 'Connect')
		return 1;
	else if (value == 'Disconnect')
		return 1;
	else if (value == 'Kickout')
		return 1;
	else if (value == 'Client on Line')
		return 0;
	else if (value == 'set as active')
		return 0;
	else if (value == 'Apply')
		return 0;
	else if (value == 'Refresh')
		return 1;
	else
		return 1;
}



function chkUsrPriv() {
	var fm = document.forms[0];
	var pageType = navigator.userAgent.indexOf("MSIE");
	var usrPriv = parseInt(fm._hidUserPriv_.value);
	if (top.userPriv >= usrPriv) {
		return true;
	} else if (window.opener) {
		if (window.opener.top.userPriv >= usrPriv) {
			return true;
		}
	}
/*
	var oBody = document.getElementsByTagName("body")[0];
	var oPara = document.createElement("p");
	if (pageType > 0) {
		//IE
		oPara.setAttribute("className", "hsNote");

	} else {
		//Others
		oPara.setAttribute("class", "hsNote");
	}
	oPara.innerHTML = "Sorry, you are not administrator";
	oBody.insertBefore(oPara,oBody.childNodes[0]);
*/
	var aOpBtn = document.getElementsByTagName("a");
	for (i = 0; i < aOpBtn.length; i++) {
		if (chkOperationTitleTRByValue(aOpBtn[i].childNodes[0].title) == 0) {
			if (pageType > 0) {
				//IE
				aOpBtn[i].setAttribute("href", "#");
				//aOpBtn[i].attachEvent("onclick", disableBtnAction);
				aOpBtn[i].onclick = disableBtnAction;
			} else {
				aOpBtn[i].setAttribute("href", "#");
				//aOpBtn[i].addEventListener("click", disableBtnAction, false);
				aOpBtn[i].setAttribute("onclick", "disableBtnAction()");
			}
		}
	}
	var aButton = document.getElementsByTagName("input");
	for (i = 0; i < aButton.length; i++) {
		if ((aButton[i].value == "New" || aButton[i].value == "Add") && (aButton[i].type == "button" || aButton[i].type == "submit")) {
			if (pageType > 0) {
				aButton[i].onclick = disableBtnAction;
			} else {
				aButton[i].setAttribute("onclick", "disableBtnAction()");
			}
		}
	}

	return false;
}

function disableBtnAction() {
	var fm = document.forms[0];
	checkSubmitPrivilege(fm);
	return 0;
}

function isInt(val) {
	if (!val || !val.length || val.length == 0) {
		return false;
	}

	if (isNaN(parseInt(val, 10))) {
		return false;
	}

	for (var i = 0; i < val.length; i++) {
		c = val.charAt(i);

		if (c < '0' || c > '9') {
			if ((i == 0) && (c == '-' || c == '+')) {
				continue;
			} else {
				return false;
			}
		}
	}

	return true;
}

function isHex(val) {
	if (!val || !val.length || val.length == 0) {
		return false;
	}

	for (var i = 0; i < val.length; i++) {
		c = val.charAt(i);

		if (!((c >= '0' && c <= '9') 
				|| (c >= 'a' && c <= 'f')
				|| (c >= 'A' && c <= 'F'))) {
			return false;
		}
	}

	return true;
}

function checkInt(val, msg) {
	if (!isInt(val)) {
		if (msg.length > 0) {
			alert(msg);
		}

		return false;
	}

	return true;
}

function checkHex(val, msg) {
	if (!isHex(val)) {
		if (msg.length > 0) {
			alert(msg);
		}

		return false;
	}

	return true;
}

function checkUint(val, msg) {
	if (isNaN(val) || (val.length == 0) || (val < 0)) {
		if (msg.length > 0) {
			alert(msg);
		}

		return false;
	}

	return true;
}

function checkObjInt(obj) {
	if (!checkInt(obj.value.toString(), "The number is invalid")) {
		obj.value = obj.defaultValue;
		obj.focus();
		obj.select();

		return false;
	}

	return true;
}

function checkObjHex(obj) {
	if (!checkHex(obj.value.toString(), "The hex number is invalid")) {
		obj.value = obj.defaultValue;
		obj.focus();
		obj.select();

		return false;
	}

	return true;
}

function checkObjHexStr(obj) {
	if (!checkHex(obj.value.toString(), "The hex string is invalid")) {
		obj.value = obj.defaultValue;
		obj.focus();
		obj.select();

		return false;
	}

	return true;
}

function checkObjUint(obj) {
	if (!checkUint(obj.value.toString(), "The number is invalid")) {
		obj.value = obj.defaultValue;
		obj.focus();
		obj.select();

		return false;
	}

	return true;
}

/*
 * the arguments can be 5 or 4
 */
function checkIntRange(val, min, max, zeroOk, msg) {
	var errMsg = "";

	if (msg.length > 0) {
		errMsg = msg;
	} else {
		//errMsg = "The valid ";
		errMsg = "";
	}

	if (!isInt(val) || (val < min) || (val > max)) {
		if (!zeroOk || (zeroOk && (parseInt(val, 10) != 0))) {
			if (zeroOk) {
				errMsg += "The valid range is 0 or from " + min + " to " + max;
			} else {
				errMsg += "The valid range is from " + min + " to " + max;
			}

			alert(errMsg);
			return false;
		}
	}

	return true;
}

/*
 * the arguments can be 5 or 4
 */
function checkHexRange(hexVal, hexMin, hexMax, zeroOk, msg) {
	var errMsg = "";
	var val = parseInt(hexVal, 16);
	var min = parseInt(hexMin, 16);
	var max = parseInt(hexMax, 16);

	if (msg.length > 0) {
		errMsg = msg;
	} else {
		//errMsg = "The valid";
		errMsg = "";
	}

	if (!isHex(hexVal) || (val < min) || (val > max)) {
		if (!zeroOk || (zeroOk && (parseInt(val, 16) != 0))) {
			if (zeroOk) {
				errMsg += "The valid range is 0 or from " + hexMin + " to " + hexMax;
			} else {
				errMsg += "The valid range is from " + hexMin + " to " + hexMax;
			}

			alert(errMsg);
			return false;
		}
	}

	return true;
}

function checkObjIntRange(obj, min, max, zeroOk) {
	if (!checkIntRange(obj.value, min, max, zeroOk, "")) {
		obj.value = obj.defaultValue;
		obj.select();
		obj.focus();

		return false;
	}

	return true;
}

function checkObjHexRange(obj, hexMin, hexMax, zeroOk) {
	if (!checkHexRange(obj.value, hexMin, hexMax, zeroOk, "")) {
		obj.value = obj.defaultValue;
		obj.select();
		obj.focus();

		return false;
	}

	return true;
}

function checkObjNotEmpty(obj, errMsg) {
	if (obj.value.length == 0) {
		
		if (errMsg) {
			alert(errMsg);
		} else {
			alert("The value can not be empty");
		}

		obj.value = obj.defaultValue;
		obj.select();
		obj.focus();

		return false;
	}

	return true;
}

function isUint8(val) {
	return (!isNaN(val) && (val >= 0) && (val <= 255));
}

function str2IP(ipStr) {
	var result;
	var ip = Number.NaN;

	result = ipStr.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
	
	if (result && result.length == 5 
		&& isUint8(result[1]) && isUint8(result[2]) 
		&& isUint8(result[3]) && isUint8(result[4])) {
		
		var ip1 = parseInt(result[1], 10);
		var ip2 = parseInt(result[2], 10);
		var ip3 = parseInt(result[3], 10);
		var ip4 = parseInt(result[4], 10);

		ip = ip1 * 0x1000000 + ip2 * 0x10000 + ip3 * 0x100 + ip4;

		return ip;
	}

	return ip;
}

function str2Uint(str, start, end) {
	var result = 0;
	var c;

	for (i = start; i < end; i++) {
		c = str.charAt(i);
		if (c < '0' || c > '9') {
			if (i == start) {
				if (c != '+') {
					return Number.NaN;
				}
			} else {
				return Number.NaN;
			}
		} else {
			result = result * 10 + (c - '0');
		}
	}

	return result;
}

function str2Int(str, start, end) {
	var result = 0;
	var signed = 1;
	var c;

	for (i = start; i < end; i++) {
		c = str.charAt(i);
		if (c < '0' || c > '9') {
			if (i == start) {
				if (c == '-') {
					signed = -1;
				} else if (c != '+') {
					return Number.NaN;
				}
			} else {
				return Number.NaN;
			}
		} else {
			result = result * 10 + (c - '0');
		}
	}

	result *= signed;

	return result;
}

function ip2Str(ip) {
	if (isNaN(n)) {
		return "";
	}

	var ip1 = (ip & 0xff000000) >>> 24;
	var ip2 = (ip & 0x00ff0000) >>> 16;
	var ip3 = (ip & 0x0000ff00) >>> 8;
	var ip4 = (ip & 0x000000ff);

	return "" + ip1 + "." + ip2 + "." + ip3 + "." + ip4;
}

function isIPV4(ipStr) {
	var result;

	result = ipStr.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
	if (result && result.length == 5 
		&& isUint8(result[1]) && isUint8(result[2]) 
		&& isUint8(result[3]) && isUint8(result[4])) {
		
		/*
		 * Check those case 0.0.0.1.
		 * Is this check necessary in the future?
		 */
		if ((ipStr.charAt(0) == "0") && (ipStr != "0.0.0.0")) {
			return false;
		}

		return true;
	} else {
		return false;
	}
}

function isMac(macStr) {
	var result;
	
	result = macStr.match(/^([0-9A-Fa-f]{4})\.([0-9A-Fa-f]{4})\.([0-9A-Fa-f]{4})$/);
	if (result && result.length == 4) { 
		return true;
	} else {
		return false;
	}
}

function checkIPV4(ipStr, msg) {
	if (!isIPV4(ipStr)) {
		if (msg.length > 0) {
			alert(msg);
		}

		return false;
	}

	return true;
}

function checkMac(macStr, msg) {
	if (!isMac(macStr)) {
		if (msg.length > 0) {
			alert(msg);
		}

		return false;
	}

	return true;
}

function checkObjIPV4(obj) {
	if (!checkIPV4(obj.value, "The IP address is invalid")) {
		obj.select();

		return false;
	}

	return true;
}

function checkObjMac(obj) {
	if (!checkMac(obj.value, "The MAC address is invalid")) {
		obj.select();

		return false;
	}

	return true;
}

function isDottedNetmaskV4(maskStr) {
	var result = maskStr.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
  
	if (result && result.length == 5 
		&& isUint8(result[1]) && isUint8(result[2]) 
		&& isUint8(result[3]) && isUint8(result[4])) {
		
		var lastBit = 1; // accept 255.255.255.255
		var cnt = 0;

		for (var i=1; i <= 4; i++) {
			var mask = parseInt(result[i], 10);

			for (var j=7; j >= 0; j--) {
				var n = Math.pow(2, j);
				var bitOn = (mask & n) ? 1 : 0;

				if (lastBit != bitOn) {
            		lastBit = bitOn;
            		cnt++;    //no change or Just change once,from 1 to 0  : subnet mask
          		}
        	}
      	}

      	if(cnt > 1) {
       		return false;
      	} else {
       		return true;
      	}
    }
  
	return false;      
}

function isNumNetmaskV4(maskStr) {

	if (maskStr.length > 2) {
		return false;
	}

	for (i = 0;i < maskStr.length; i++) {
		if (maskStr.charAt(i) < '0' || maskStr.charAt(i) > '9') {
			return false;
		}
	}

	if (isNaN(maskStr)) {
		return false;
	}

	var num = parseInt(maskStr);

	if (isNaN(num) || num < 0 || num > 32) {
		return false;
	}

	return true;
}

function checkNetmaskV4(maskStr, msg) {
	if (!(isNumNetmaskV4(maskStr) || isDottedNetmaskV4(maskStr))) {
		if (msg.length > 0) {
			alert(msg);
		}

		return false;
	}

	return true;
}

function checkObjNetmaskV4(obj) {
	if (!checkNetmaskV4(obj.value, "The netmask is invalid")) {
		obj.select();

		return false;
	}

	return true;
}


function isValidFileName(file_name) {
	var pattern =/[\\\/\+\*\?:<>"\|]/g;

	if ((file_name == null) || (file_name.length == 0))
		return false;

	return !pattern.test(file_name);
}

function ipToHex(ip) {
	var ip4 = ip.split(".");
	var p, i;
	var hexStr = "0x";
	for(i = 0; i < ip4.length; i++) {
		p = new Number(ip4[i]);
		hexStr += p < 16 ? ("0" + p.toString(16)) : p.toString(16);
	}
	return(hexStr);
}

function isSubNetIp(firstIp, secondIp, subMask1, subMask2) {
	firstIp = ipToHex(firstIp);
	secondIp = ipToHex(secondIp);
	subMask1 = ipToHex(subMask1);
	subMask2 = ipToHex(subMask2);
	return ((firstIp & subMask1) == (secondIp & subMask2));
}

function isEmail(emailAddr) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailAddr)) {
        return true;
    }

    return false;
}

function checkEmail(emailAddr, msg) {
    if (!isEmail(emailAddr)) {
        if (msg.length > 0) {
            alert(msg);
        }

        return false;
    }

    return true;
}

function checkObjEmail(obj, msg) {
    if (!checkEmail(obj.value, "The email address is invalid")) {
        obj.focus();
        obj.select();
        return false;
    }

    return true;
}

function isEmptyString(value) {
	var str = new String(value);

	if (str.replace(/(^\s*)|(\s*$)/g, "") == "")
		return true;
	else
		return false;
}

function checkStrExCludeChinese(obj){
   var str = obj.value;
   var result = str.match(/^[\x00-\xFF]+$/);
   if (!result) {
        alert("Error:The Chinese characters is invalid");
        obj.focus();
 //       obj.select();  
        obj.value = "";
        return false;
    }
   return true;
}

function checkValidDPTime(value) {
	if (value.length != 19) {
		return false;
	}
	for (var i = 0; i < value.length; i++) {
		var c = value.charAt(i);
		switch (i) {
		case 4:
		case 7:
			if (c != '-') {
				return false;
			}
			break;
		case 10:
			if (c != ' ') {
				return false;
			}
			break;
		case 13:
		case 16:
			if (c != ':') {
				return false;
			}
			break;
		default:
        	if (c < '0' || c > '9') {
				return false;
			}
			break;
		}
	}
	return true;
}


function isPPPoEIf(ifname) {
    if ((ifname.indexOf("eth") == 0) && (ifname.indexOf("pppoe") > 0)) {
        return 1;
    }

    return 0;
}


function isEthIf(ifname) {
    if ((ifname.indexOf("eth") == 0) && (ifname.indexOf("-") < 0)) {
        return 1;
    }

    return 0;
}

function isEthMainIf(ifname) {
    if ((ifname.indexOf("eth") == 0) && (ifname.indexOf("-") < 0)
            && (ifname.indexOf(".") < 0) && (ifname.indexOf(":") < 0)) {
        return 1;
    }

    return 0;
}

function isXEthMainIf(ifname) {
    if ((ifname.indexOf("xeth") == 0) && (ifname.indexOf("-") < 0)
            && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}


function isEthSubIf(ifname) {
    if ((ifname.indexOf("eth") == 0) && (ifname.indexOf("-") < 0)
            && (ifname.indexOf(".") > 0)) {
        return 1;
    }
    return 0;
}

function isXEthSubIf(ifname) {
    if ((ifname.indexOf("xeth") == 0) && (ifname.indexOf("-") < 0)
            && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}


function isTunnelIf(ifname) {
    if (ifname.indexOf("tun") == 0) {
        return 1;
    }

    return 0;
}

function isTunnelMainIf(ifname) {
    if ((ifname.indexOf("tun") == 0) && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}

function isTunnelSubIf(ifname) {
    if ((ifname.indexOf("tun") == 0) && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}

function isLoopbackIf(ifname) {
    if (ifname.indexOf("loopback") == 0) {
        return 1;
    }

    return 0;
}

function isLoopbackMainIf(ifname) {
    if ((ifname.indexOf("loopback") == 0) && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}

function isLoopbackSubIf(ifname) {
    if ((ifname.indexOf("loopback") == 0) && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}

function isAggIf(ifname) {
    if (ifname.indexOf("agg") == 0) {
        return 1;
    }

    return 0;
}

function isAggMainIf(ifname) {
    if ((ifname.indexOf("agg") == 0) && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}

function isAggSubIf(ifname) {
    if ((ifname.indexOf("agg") == 0) && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}

function isRedIf(ifname) {
    if (ifname.indexOf("red") == 0) {
        return 1;
    }

    return 0;
}

function isRedMainIf(ifname) {
    if ((ifname.indexOf("red") == 0) && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}

function isRedSubIf(ifname) {
    if ((ifname.indexOf("red") == 0) && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}
function isBgpIf(ifname) {
    if (ifname.indexOf("bgr") == 0) {
        return 1;
    }

    return 0;
}

function isBgpMainIf(ifname) {
    if ((ifname.indexOf("bgr") == 0) && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}

function isBgpSubIf(ifname) {
    if ((ifname.indexOf("bgr") == 0) && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}

function isVSwitchIf(ifname) {
    if (ifname.indexOf("vswitchif") == 0) {
        return 1;
    }

    return 0;
}

function isVSwitchMainIf(ifname) {
    if ((ifname.indexOf("vswitchif") == 0) && (ifname.indexOf(".") < 0)) {
        return 1;
    }

    return 0;
}

function isVSwitchSubIf(ifname) {
    if ((ifname.indexOf("vswitchif") == 0) && (ifname.indexOf(".") > 0)) {
        return 1;
    }

    return 0;
}

function isVirIf(ifname) {
	if (ifname.indexOf(":") > 0) {
		return 1;
	}
	return 0;
}

function checkFeatureLicense(value)
{
	if (value <= 0) {
		var mybody =  document.getElementsByTagName("body").item(0);
		var mydiv = document.createElement("div");
		mybody.appendChild(mydiv);
		mydiv.setAttribute("id", "bdiv");
		vWidth = (document.documentElement.scrollWidth > document.documentElement.clientWidth) ? document.documentElement.scrollWidth : document.documentElement.clientWidth;
		vHeight = (document.documentElement.scrollHeight > document.documentElement.clientHeight) ? document.documentElement.scrollHeight : document.documentElement.clientHeight;

		document.getElementById("bdiv").style.backgroundColor = "#ccc";
		document.getElementById("bdiv").style.width = vWidth+"px";
		document.getElementById("bdiv").style.height = vHeight+"px";
		document.getElementById("bdiv").style.zIndex = "999";
		document.getElementById("bdiv").style.position = "absolute";
		document.getElementById("bdiv").style.filter = "Alpha(opacity:40)";
		document.getElementById("bdiv").style.MozOpacity = "0.4";
		document.getElementById("bdiv").style.left = "0";
		document.getElementById("bdiv").style.top = "0";

		var sel = document.getElementsByTagName("select");
		for(i = 0; i < sel.length; i++){
			sel[i].disabled = true;
		}
		return 0;
	}
	return 1;
}

//Handle IE has Layout
function handleIEhasLayout() {                      
	//trigger re-rendering
	document.body.style.zoom = 1.1;
	//restore it 
	document.body.style.zoom = 1;
	return 0;
}

//retun empty table body 
function writeEmptyTableRow (colCount) {
	var txt = "";
	txt += "<tr><td colspan='" + colCount + "' style='text-align:center;'>No Entry</td></tr>";
	return txt;
}

