// Check browser type
ns4 = (document.layers)?true:false;
ie4 = (document.all)?true:false;
CRM_CHARWIDTH = 10;
CRM_CHARWIDTH4SEL = 6;

var gblBuildingEditItem = null;
var _gbl_JS_Editable = true;
function TJS_SetEditable(b){
	_gbl_JS_Editable = b;
}

function TJS_GetEditable(){
	if (_gbl_JS_Editable)
		return true;
	return false;
}

function SyncRadioValue(vname)
{
	var formObj = FindFormByVarName(vname);
	if (formObj ==null)
		return false;

	var arr = formObj.elements[vname+"_v"];
	if (arr+""=="undefined")
		return true;
	if (arr.length+""=="undefined"){
	        if (arr.checked)
		        formObj.elements[vname].value = arr.value;
		return true;
	}
	var i;
	for (i=0;i<arr.length;i++){
		if (arr[i].checked){
			formObj.elements[vname].value = arr[i].value;
			break;
		}
	}
	return true;
}

function SyncCheckList(vname)
{
	var formObj = FindFormByVarName(vname);
	var arrObj;
	var i,j;

	if (formObj ==null)
		return false;
	var strVar = formObj.elements[vname].value;
	var arrVar;
	if (formObj.elements[vname].value!="")
		arrVar = strVar.split(",");
	else
		arrVar = new Array();
	var tname = vname+"_";
	var tlen = tname.length;
	var idVar,found;
	for (i=0;i<formObj.elements.length;i++){
		if (formObj.elements[i].name.substring(0,tlen)==tname){
			idVar = formObj.elements[i].name.substr(tlen);
			if (idVar=="ALL")
				continue;
			found = false;
			for (j=0;j<arrVar.length;j++){
				if (idVar==arrVar[j]){
					found = true;
					if (!formObj.elements[i].checked){
						if (j<1)
							arrVar = arrVar.slice(1);
						else
							arrVar = arrVar.slice(0,j).concat(arrVar.slice(j+1));
						//alert("Remove: "+idVar+arrVar.toString());
					}
					break;
				}
			}
			if (!found && formObj.elements[i].checked){
				arrVar[arrVar.length] = idVar;
				//alert("Add: "+idVar);
			}
		}
	}
	formObj.elements[vname].value = arrVar.toString(",");
	return true;
}

function ResetCheckList(vname)
{
	var formObj = FindFormByVarName(vname+"_ALL");
	var chkObj = formObj.elements[vname+"_ALL"];
	var chk = chkObj.checked;
	var n = formObj.elements.length;
	var nameLen = vname.length+1;
	var tname = vname+"_";
	var i,bval=0;

	if (chk)
		bval=1;
	for (i=0;i<n;i++){
		if (formObj.elements[i].name.substr(0,nameLen)==tname){
			SetCheck(formObj.elements[i].name,bval);
		}
	}
}

function SetImage(imgDiv,imgName,imgSrc)
{
	if (ns4){
		img = getImage(imgName);
		if (img!=null){
			img.src = imgSrc;
		}
	}
	if (ie4)
		eval("document.images['"+imgName+"'].src='"+imgSrc+"'");
}
// get image name outside || in forms || in layers
function getImage(imageName){
	// search the outside image
	imageNum = document.images.length;
	for (ii=0;ii<imageNum;ii++){
		if (document.images[ii].name == imageName) return document.images[ii];
	}
	// search the image in form
	var obj;
	var formNum = document.forms.length;
	for (i=0;i<formNum;i++){
		obj = document.forms[i];
		imageNum = obj.images.length;
		for (ii=0;ii<imageNum;ii++){
			if (obj.images[ii].name == imageName) return obj.images[ii];
		}
	}
	//if current navigator is NS then search the image in layers
	if (document.layers){
		layerNum = document.layers.length;
		for (i=0;i<layerNum;i++){
			obj = document.layers[i];
			imageNum = obj.images.length;
			for (ii=0;ii<imageNum;ii++){
				if (obj.images[ii].name == imageName) return obj.images[ii];
			}
		}
	}
	return null;
}

selectObjs = false;
curSelectObj = null;
window.onresize=TryAdjustSelect;
selectXmlObjs = false;
selectXmlFiles = false;

function RegisterSelect(selobj)
{
	if (!selectObjs)
	{
		selectObjs = new Array();
		selectXmlObjs = new Array();
		selectXmlFiles = new Array();
	}
	selectObjs[selectObjs.length] = selobj;
	if(selobj.xmlFile!='' && selobj.xmlFile!=null)
	{
		if(FindSelectXmlObject(selobj.xmlFile)+"" == "")
		{
			var xml = xmlselectdso.XMLDocument;
			xml.async = false;
			xml.resolveExternals = false;
			xml.load(selobj.xmlFile);
			if(xml.parseError.errorCode != 0)
			{
				//TODO : remove when ok
				alert(xml.parseError.reason);
				xml = false;
			}
			else
			{
				var tmp = selectXmlObjs.length;
				var xml2 = xml.cloneNode(true);
				selectXmlObjs[tmp] = xml2;
				selectXmlFiles[tmp] = selobj.xmlFile;
			}
		}
	}
}

function FindSelectXmlObject(xmlFile)
{
	var i;
	for (i=0;i<selectXmlFiles.length;i++)
		if (selectXmlFiles[i]==xmlFile)
		{
			return selectXmlObjs[i];
		}
	//alert('not found '+name);
	return "";
}

function FindSelectObject(name)
{
	var i;
	for (i=0;i<selectObjs.length;i++)
		if (selectObjs[i].name==name)
			return selectObjs[i];
	//alert('not found '+name);
	return "";
}

function FindSelectObjectByLoc(loc)
{
	var i;
	for (i=0;i<selectObjs.length;i++)
		if (selectObjs[i].loc==loc)
			return selectObjs[i];
	//alert('not found '+name);
	return "";
}

function TryAdjustSelect()
{
	if (selectObjs){
		for (i=0;i<selectObjs.length;i++)
			if (selectObjs[i].visible){
				CalcSelectPosition(selectObjs[i]);
			}
	}
}

function TSelectObject(name,formVarH,formVarV,idOn,idOff,selectedIndex,onselectFunc,xmlFile,loc,insertEmpty)
{
	this.name = name;
	this.formVarH = formVarH;
	this.formVarV = formVarV;
	this.idOn = idOn;
	this.idOff = idOff;
	this.selectedIndex = selectedIndex;
	this.index0 = selectedIndex;
	this.index1 = selectedIndex;
	this.visible = false;
	this.nItems = 0;
	this.onselect = onselectFunc;
	this.orgKey = "";
	if(xmlFile+''=='undefined')
	{
		this.xmlFile='';
		this.loc='';
		this.insertEmpty=false;
	}
    else
    {
    	this.xmlFile = xmlFile;
    	if(loc+''=='undefined')
    		this.loc = this.name;
    	else
			this.loc = loc;
		if(insertEmpty+''=='undefined')
    		this.insertEmpty = false;
    	else
			this.insertEmpty = insertEmpty;
	}

	this.pkey = "-99"; //not exist parent
	this.docKeyDown = "";
	this.docClick = "";
	this.scrollHandles = new Array();

	this.itemKey = new Array();
	this.itemValue = new Array();
	this.AddItem = TSLCT_AddItem;
	this.SetDefault = TSLCT_SetDefault;
	this.RemoveAll = TSLCT_RemoveAll;
	this.GetXMLData = TSLCT_GetXMLData2;
	this.InitSelectedIndex= TSLCT_InitSelectedIndex;
	this.InitSelectedValue= TSLCT_InitSelectedValue;
	this.Refresh = TSLCT_Refresh;
	this.Focus = TSLCT_Focus;
	this.SetEnterAsTab = TSLCT_SetEnterAsTab;
	this.SetEvents = TSLCT_SetEvents;
	this.RestoreEvents = TSLCT_RestoreEvents;
	this.GetSelectedKey = TSLCT_GetSelectedKey;
	this.GetSelectedValue = TSLCT_GetSelectedValue;
	this.XMLTrigger = TSLCT_XMLTrigger;
	return this;
}

//active the children
function TSLCT_XMLTrigger(key)
{
	var xml = FindSelectXmlObject(this.xmlFile);
	if(xml+"" != "")
	{
		var xpath = '//field[@name="'+this.loc+'"]/field';
		var nodes = xml.selectNodes(xpath);
		for(var i=0;i<nodes.length;i++)
		{
			var node = nodes[i];
			TSLCT_TriggerNode(node,key);
		}
	}
}

function TSLCT_TriggerNode(node,pkey)
{
	var loc = node.getAttribute("name");
	var selobj = FindSelectObjectByLoc(loc);
	if (selobj+""=="")
		return;

	if(selobj.pkey == pkey)
		return;

	selobj.pkey = pkey;
	var orgKey = selobj.itemKey[selobj.selectedIndex];
	selobj.RemoveAll();

	var hasItem = false;
	var size = 2;
	var xpath = './enum[@pkey="-1" or @pkey="'+pkey+'"]';
	var nodes = node.selectNodes(xpath);
	if(selobj.insertEmpty) //check whether to insert null value
	{
		var needInsertEmpty=true;
		for(var i=0;i<nodes.length;i++)
		{
			var k = nodes[i].getAttribute("key");
			if(k=="-1")
			{
				needInsertEmpty=false;
				break;
			}
		}
		if(needInsertEmpty)
		{
			selobj.AddItem("-1","");
			hasItem = true;
		}
	}
	for(var i=0;i<nodes.length;i++)
	{
		var k = nodes[i].getAttribute("key");
		var v = nodes[i].getAttribute("value");
		selobj.AddItem(k,v);
		hasItem = true;

		var len = StrLen(v);
		if(len > size)
		{
			size = len;
		}
	}
	if(!hasItem)
	{
		selobj.AddItem(0,"");
	}

	var idx = selobj.SetDefault(orgKey);
	var obj = document.all[selobj.formVarV];
	if(obj +'' != 'undefined')
	{
		obj.style.width = size*CRM_CHARWIDTH4SEL;
	}

	xpath = './field';
	nodes = node.selectNodes(xpath);
	for(var i=0;i<nodes.length;i++)
	{
		TSLCT_TriggerNode(nodes[i],selobj.itemKey[idx]);
	}
}

function TSLCT_SetDefault(key)
{
	var idx = 0
	for(var i=0;i<this.nItems;i++)
	{
		if(this.itemKey[i] == key)
		{
			idx = i;
			break;
		}
	}
	this.selectedIndex = idx;
	this.index1 = idx;
	var obj = document.all[this.formVarV];
	var obj1 = document.all[this.formVarH];
	if(obj +'' != 'undefined')
	{
		obj.value = this.itemValue[idx];
	}
	if(obj1 +'' != 'undefined')
	{
		obj1.value = this.itemKey[idx];
	}
	return idx;
}

function TSLCT_SetEnterAsTab()
{
	var formObj=null;
	var inputObj;

	formObj = FindFormByVarName(this.formVarH);
	if (formObj!=null){
		eval("inputObj = formObj."+this.formVarV+";");
		inputObj.onkeydown = KeyDownEnter2Tab;
		//alert(1);
	}
}

function TSLCT_AddItem(k,v)
{
	this.itemKey[this.nItems] = k;
	this.itemValue[this.nItems] = v;
	this.nItems++;
}

function TSLCT_RemoveAll()
{
	this.nItems = 0;
	this.itemKey = new Array();
	this.itemValue = new Array();
}

function TSLCT_GetXMLData(id)
{
	this.RemoveAll();
	var xmlObj = document.all[id];
	var node = xmlObj.firstChild.firstChild;
	var size = 0;
	while (node!=null){
		var v = node.getAttribute("VALUE");
		this.AddItem(node.getAttribute("KEY"),v);
		var len = StrLen(v);
		if(len > size)
		{
			size = len;
		}
		node = node.nextSibling;
	}
	var obj = document.all["svv_"+this.name];
	if(obj +'' != 'undefined')
	{
		obj.style.width = size*CRM_CHARWIDTH4SEL;
	}
}

function TSLCT_GetXMLData2()
{
	
	if(this.orgKey == "")
	{
		this.orgKey = this.itemKey[this.index0];
	}
	this.RemoveAll();
	var hasItem = false;
	var size = 2;
	var xml = FindSelectXmlObject(this.xmlFile);
	if(xml+"" != "")
	{
		var xpath = '//field[@name="'+this.loc+'"]';
		var nodes = xml.selectNodes(xpath);
		if(nodes.length > 0)
		{
			var node = nodes[0];
			var pnode = node.selectSingleNode('..[enum]');
			var pkey = "-99";
			if(pnode != null)
			{
				var ploc = pnode.getAttribute("name");
				var selobj = FindSelectObjectByLoc(ploc);
				if(selobj+"" != "")
				{
					var obj = document.all[selobj.name];
					if(obj +'' != 'undefined')
					{
						pkey = obj.value;
					}
				}
			}

			xpath = './enum';
			if(pkey != "-99")
			{
				xpath += '[@pkey="-1" or @pkey="'+pkey+'"]';
			}
			this.pkey = pkey;
			nodes = node.selectNodes(xpath);
			if(this.insertEmpty) 
			{
				var needInsertEmpty=true;
				for(var i=0;i<nodes.length;i++)
				{
					var k = nodes[i].getAttribute("key");
					if(k=="-1")
					{
						needInsertEmpty=false;
						break;
					}
				}
				if(needInsertEmpty)
				{
					this.AddItem("-1","");
					hasItem = true;
				}
			}
			for(var i=0;i<nodes.length;i++)
			{
				var k = nodes[i].getAttribute("key");
				var v = nodes[i].getAttribute("value");
				this.AddItem(k,v);
				hasItem = true;

				var len = StrLen(v);
				if(len > size)
				{
					size = len;
				}
			}
		}
	}
	if(!hasItem)
	{
		this.AddItem(0,"");
	}

	var idx = this.SetDefault(this.orgKey);
	var obj = document.all[this.formVarV];
	if(obj +'' != 'undefined')
	{
		obj.style.width = size*CRM_CHARWIDTH4SEL;
	}
	if(this.orgKey != this.itemKey[idx])
	{
		this.orgKey = this.itemKey[idx];
	}
	this.XMLTrigger(this.orgKey);
}

function TSLCT_InitSelectedIndex(i)
{
	this.selectedIndex = i;
	this.index0 = i;
	this.index1 = i;
}

function TSLCT_InitSelectedValue(val)
{
	var i;

	for (i=0;i<this.itemKey.length;i++){
		if (this.itemKey[i]==val){
			this.InitSelectedIndex(i);
			return;
		}
	}
}

function TSLCT_Refresh()
{
	var formObj=null;

	formObj = FindFormByVarName(this.formVarH);
	if (formObj!=null){
		eval("formObj."+this.formVarV+".value = this.itemValue[this.selectedIndex];");
		eval("formObj."+this.formVarH+".value = this.itemKey[this.selectedIndex];");
	}
}

function TSLCT_GetSelectedKey(){

	return this.itemKey[this.selectedIndex];
}

function TSLCT_GetSelectedValue(){

	return this.itemValue[this.selectedIndex];
}

function TSLCT_Focus()
{
	var formObj=null;

	formObj = FindFormByVarName(this.formVarH);
	if (formObj!=null){
		eval("formObj."+this.formVarV+".focus();");
		eval("formObj."+this.formVarV+".select();");
	}
}

function TSLCT_SetEvents()
{
	this.docClick = document.onclick;
	this.docKeyDown = document.onkeydown;
	document.onkeydown = SelectKeyDown;
	document.onclick = SelectClickDocument;
	var obj = document.all[this.idOff];
	for (obj=obj.offsetParent; obj!=document.body; obj=obj.offsetParent){
		this.scrollHandles[this.scrollHandles.length] =obj.onscroll;
		obj.onscroll = TryHideSelect;
	}
}

function TSLCT_RestoreEvents()
{
	document.onclick = this.docClick;
	document.onkeydown = this.docKeyDown;
	var obj = document.all[this.idOff];
	var i;
	for (obj=obj.offsetParent,i=0; obj!=document.body; obj=obj.offsetParent,i++){
		obj.onscroll = this.scrollHandles[i];
	}
	this.scrollHandles = new Array();
}

function ToggleSelect(name)
{
	if (document.readyState!="complete")
		return;
	if (IsDisabledVar(name))
		return;
	var selobj = FindSelectObject(name);
	if (selobj+""=="")
		return;
	if (selobj.visible)
		HideSelect(selobj);
	else{
		if (document.onclick!=null) {
		    document.onclick();
		}
		ShowSelect(selobj);
	}
	event.cancelBubble = true;
	return false;
}

function HighlightOptionSelf()
{
	HighlightOption(this.selectName,this.selectIndex);
}

function HighlightOption(name,i)
{
	var selobj = FindSelectObject(name);
	if (selobj+""=="")
		return;
	NormalOption(name,selobj.index1);
	var obj = document.all[selobj.idOn+"_"+i];
	if (obj+""=="undefined")
		return;
	obj.style.backgroundColor = "#113399";
	obj.style.color = "#ffffff";
	var pobj = obj.parentElement;
	if (obj.offsetTop+obj.offsetHeight>pobj.offsetHeight+pobj.scrollTop){
		pobj.scrollTop = obj.offsetTop+obj.offsetHeight-pobj.offsetHeight;
	}
	if (obj.offsetTop<pobj.scrollTop){
		pobj.scrollTop = obj.offsetTop;
	}
	selobj.index1 = i;
}

function NormalOption(name,i)
{
	var selobj = FindSelectObject(name);
	if (selobj+""=="")
		return;
	var obj = document.all[selobj.idOn+"_"+i];
	if (obj+""=="undefined")
		return;
	obj.style.backgroundColor = "#f0f0f0";
	obj.style.color = "#000";
}

function SelectKeyDown()
{
	var keyCode = window.event.keyCode;
	var selobj = curSelectObj;
	if (selobj==null)
		return keyCode;
	if (!(keyCode==38 || keyCode==40 || keyCode==13)){
		return false;
	}
	if (keyCode==38 && selobj.index1>0){
		NormalOption(selobj.name,selobj.index1);
		HighlightOption(selobj.name,selobj.index1-1);
	}
	if (keyCode==40 && selobj.index1<selobj.nItems-1){
		NormalOption(selobj.name,selobj.index1);
		HighlightOption(selobj.name,selobj.index1+1);
	}
	if (keyCode==13){
		OptionClicked(selobj.name,selobj.index1,selobj.itemKey[selobj.index1]);
	}
	return false;
}

function SelectClickDocument()
{
	if (curSelectObj==null)
		return;
	var selobj = curSelectObj;
	var divOn = document.all[selobj.idOn];
	if (event.srcElement!=divOn && event.srcElement.parentElement!=divOn){
		HideSelect(selobj);
	}
	event.cancelBubble = true;
	return false;
}

function OptionClickedSelf()
{
	OptionClicked(this.selectName,this.selectIndex,this.selectKey);
}

function OptionClicked(name,idx,val)
{
	var selobj = FindSelectObject(name);
	if (selobj+""=="")
		return;
	var obj = document.all[selobj.idOn+"_"+idx];
	var vstr = obj.innerText;
	vstr = vstr.replace(/^( )+/,"");
	var formObj=null;

	formObj = FindFormByVarName(selobj.formVarH);
	SetFormChanged(formObj);
	if (formObj!=null){
		eval("formObj."+selobj.formVarV+".value = vstr;");

		eval("formObj."+selobj.formVarH+".value = '"+val+"';");
	}
	selobj.selectedIndex = idx;
	HideSelect(selobj);
	if (selobj.onselect!='' && selobj.onselect!=null){
		selobj.onselect(val);
	}

	if (selobj.xmlFile!='' && selobj.xmlFile!=null){
		selobj.XMLTrigger(val);
	}
}

function CalcSelectPosition(selobj)
{
	if (document.all){
		var obj = document.all[selobj.idOff];
		var left = 0;
		var top = 0;
		for (; obj!=document.body; obj=obj.offsetParent){
			left += obj.offsetLeft-obj.scrollLeft;
			top  += obj.offsetTop-obj.scrollTop;
		}
		obj = document.all[selobj.idOn].style;
		obj.pixelLeft = left;
		var parentTop = top;

		obj.pixelTop = top+document.all[selobj.idOff].offsetHeight+1;
		obj.pixelWidth = document.all[selobj.idOff].offsetWidth;
		if (selobj.nItems<=10){
			obj.pixelHeight = selobj.nItems*16+2;
			obj.overflow = "visible";
		}
		else{
			obj.pixelHeight = 10*16+2;
			obj.overflow = "auto";
		}
		if (obj.pixelTop+obj.pixelHeight>document.body.clientHeight+document.body.scrollTop)
			obj.pixelTop = parentTop-obj.pixelHeight;
	}
}

function _GetSelectOnDiv(name)
{
	var obj;
	if (document.all[name]+''=='undefined'){
		obj = document.createElement("DIV");
		document.body.appendChild(obj);
		obj.setAttribute("id",name);
		obj.className = "selectOn";
		obj.style.visibility = "hidden";
		return obj;
	}
	else{
		return document.all[name];
	}
}

function _IncrementalBuildSelectOnDiv(selObjName,divOnID,startIdx)
{
	var i,k,v,n;
	var sub,selobj,divOn;
	
	divOn = document.all[divOnID];
	selobj = FindSelectObject(selObjName);
	if (!selobj.visible)
		return;
		
	n = parseInt(startIdx)+100;
	if (n>selobj.nItems){
		n = selobj.nItems;
	}
	for (i=startIdx;i<n;i++){
		k = selobj.itemKey[i];
		v = selobj.itemValue[i];
		if (v=='----'){
			sub = document.createElement("DIV");
			sub.innerHTML ="<HR SIZE=0 WIDTH=\"100%\">";
			divOn.appendChild(sub);
		}
		else{
			sub = document.createElement("DIV");
			sub.id = selobj.idOn+"_"+i;
			sub.className = "selectItem";
			sub.selectName = selobj.name;
			sub.selectIndex = i;
			sub.selectKey = k;
			sub.onmouseover = HighlightOptionSelf;
			sub.onclick = OptionClickedSelf;
			sub.innerText = v;
			divOn.appendChild(sub);
		}
	}
	if (selobj.index1==selobj.selectedIndex && selobj.selectedIndex>=startIdx && selobj.selectedIndex<n)
		HighlightOption(selobj.name,selobj.selectedIndex);
	if (n<selobj.nItems)
		setTimeout("_IncrementalBuildSelectOnDiv('"+selobj.name+"','"+divOnID+"',"+n+");",30);
	
}

function _RebuildSelectOnDiv(selobj,divOn)
{
	var str = "";
	var i,num,v;
	var sub;
	
	divOn.innerHTML = "";
	setTimeout("_IncrementalBuildSelectOnDiv('"+selobj.name+"','"+divOn.id+"',0);",50);
}

function ShowSelect(selobj)
{
	if (curSelectObj!=null)
		HideSelect(curSelectObj);
	var obj = _GetSelectOnDiv(selobj.idOn);
	_RebuildSelectOnDiv(selobj,obj);
	selobj.visible = true;
	obj.style.visibility="visible";
	CalcSelectPosition(selobj);
	curSelectObj = selobj;
	selobj.SetEvents();
}

function HideSelect(selobj)
{
	var obj = _GetSelectOnDiv(selobj.idOn);
	obj.style.visibility="hidden";
	selobj.visible = false;
	curSelectObj = null;
	selobj.RestoreEvents();
}

function DelayHideSelect(objname)
{
	setTimeout("HideSelect("+objname+");",200);
}

function TryHideSelect()
{
	if (curSelectObj!=null)
		HideSelect(curSelectObj);
}

function GenSelectHTML(selname,idoff,varV,varH,inVal,dispTxt,size,className,enter2tab)
{
	var str='';
	if (className+''=='undefined')
		className='selectOff';
	if (enter2tab+''=='undefined')
		enter2tab=false;
	if (enter2tab)
		keydown = "ONKEYDOWN=\"KeyDownEnter2Tab();\"";
	else
		keydown = "";
	str = "<DIV ID=\""+idoff+"\" CLASS=\""+className+"\" style=\"padding:0px;\" ONCLICK=\"ToggleSelect('"+selname+"');\">";
	str += "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR><TD><INPUT CLASS=\"ednone\" READONLY STYLE=\"cursor:default;\" NAME=\""+varV+"\" VALUE=\""+dispTxt+"\" style=\"width:"+(size*CRM_CHARWIDTH4SEL)+";\" "+keydown+">";
	str += "</TD><TD WIDTH=\"1%\"><IMG SRC=\"/img/down_arrow.gif\" STYLE=\"cusor:hand;\" BORDER=0>";
	str += "</TD></TR></TABLE></DIV>\n";
	str += "<INPUT TYPE=HIDDEN NAME=\""+varH+"\" VALUE=\""+inVal+"\">";
	return str;
}

function GenCheckHTML(chkname,val,chked,disptxt)
{
	var str;

	str = "<SPAN CLASS=\"hidden\"><INPUT TYPE=CHECKBOX NAME=\""+chkname+"\" VALUE=\""+val+"\" "+
		(chked?"CHECKED":"")+" ONCHANGE=\"SetFormChanged(this.form);\"></SPAN><IMG ID=\"imgCheck"+chkname+"\" SRC=\"/img/check_"+(chked?"on":"off")+".gif\" BORDER=0 ALIGN=ABSMIDDLE ONCLICK=\"ToggleCheck('"+chkname+"');\">"+
		"<SPAN STYLE=\"cursor:default;\" ONCLICK=\"ToggleCheck('"+chkname+"');\">"+disptxt+"</SPAN>";

	return str;
}

function EscapeHTMLString(str)
{
	str  = str+"";
	str = str.replace(/&nbsp;/g," ");
	str = str.replace(/&/g,"&amp;");
	str = str.replace(/</g,"&lt;");
	str = str.replace(/>/g,"&gt;");
	str = str.replace(/"/g,"&quot;");
	str = str.replace(/ /g,"&nbsp;");
	return str;
}

function UnEscapeHTMLString(str)
{
	str  = str+"";
	str = str.replace(/&nbsp;/g," ");
	str = str.replace(/&amp;/g,"&");
	str = str.replace(/&lt;/g,"<");
	str = str.replace(/&gt;/g,">");
	str = str.replace(/&quot;/g,"\"");
	str = str.replace(/&nbsp;/g," ");
	return str;
}

function EscapeXMLString(str)
{
	str = str+'';
	str = str.replace(/&/g,"&amp;");
	str = str.replace(/</g,"&lt;");
	str = str.replace(/>/g,"&gt;");
	str = str.replace(/"/g,"&quot;");
	str = str.replace(/'/g,"&apos;");
	return str;
}

function ArrayCutElem(arr,idx)
{
	if (arr.length<=idx || idx<0)
		return arr;
	if (idx==0)
		return arr.slice(1);
	if (idx==arr.length-1)
		return arr.slice(0,idx);
	return arr.slice(0,idx).concat(arr.slice(idx+1));
}

_dest_select_obj = false;
function SetDestSelectObject(obj)
{
	_dest_select_obj = obj;
}

function GenSelItem(k,v)
{
	if (!_dest_select_obj)
		return;

	_dest_select_obj.AddItem(k,v);
}

function FindFormByVarName(vname)
{
	for (i=0;i<document.forms.length;i++){
		if (document.forms[i].all[vname]!=null)
			return document.forms[i];
	}
	return null;
}

function FindVarByName(vname)
{
	var obj;
	for (i=0;i<document.forms.length;i++){
		obj = document.forms[i].all.item(vname);
		if (obj!=null){
			if (obj.length>0)
				return obj.item(0);
			else
				return obj;
		}
	}
	return null;
}

function SetFormChanged(formObj)
{
	if (formObj==null)
		return;
	if (typeof(formObj.tuiFormChanged)=="undefined")
		return;
	formObj.tuiFormChanged.value = 1;
}

function UnsetFormChanged(formObj)
{
	if (formObj==null)
		return;
	if (typeof(formObj.tuiFormChanged)=="undefined")
		return;
	formObj.tuiFormChanged.value = 0;
}

gblDisabledVar = new Array();
function IsDisabledVar(vname)
{
	var len,i;
	len = gblDisabledVar.length;
	for (i=0;i<len;i++)
		if (gblDisabledVar[i]==vname)
			return true;
	return false;
}
function DisableVar(vname)
{
	var len = gblDisabledVar.length;
	var i;
	for (i=0;i<len;i++){
		if (gblDisabledVar[i]==vname)
			return;
	}
	gblDisabledVar[len] = vname;
}
function EnableVar(vname)
{
	var len = gblDisabledVar.length;
	var i;
	for (i=0;i<len;i++){
		if (gblDisabledVar[i]==vname){
			gblDisabledVar = ArrayCutElem(gblDisabledVar,i);
			return;
		}
	}
}

function ToggleCheck(vname)
{
	var v;
	var formObj;
	
	if (document.readyState!="complete")
		return;
	if (IsDisabledVar(vname))
		return;
	formObj = FindFormByVarName(vname);
	if (formObj==null)
		return;

	SetFormChanged(formObj);
	eval("v = formObj."+vname+";");
	if (v.checked){
		document.images['imgCheck'+vname].src = "/img/check_off.gif";
	}
	else{
		document.images['imgCheck'+vname].src = "/img/check_on.gif";
	}
	v.checked = !v.checked;
}

function SetCheck(vname,val)
{
	var v,chk;
	var formObj;

	formObj = FindFormByVarName(vname);
	if (formObj==null)
		return;

	eval("v = formObj."+vname+".value;");
	eval("chk = formObj."+vname+".checked;");
	if (v==val && chk || v!=val && !chk)
		return;
	ToggleCheck(vname);
}

function SetRadio(vname,val)
{
	ToggleRadio(vname,val);
}

function ToggleRadio(vname,val)
{
	var idx0,idx1;
	var val0,i;

	if (document.readyState!="complete")
		return;
	if (IsDisabledVar(vname))
		return;

	var formObj = FindFormByVarName(vname);
	if (formObj==null)
		return;

	SetFormChanged(formObj);
	idx0 = -1;
	elems = formObj.all[vname];
	if (elems+''=='undefined')
		return;

	// Single radio element
	if (elems.tagName=='INPUT' && elems.length+''=='undefined'){
		elems.checked = true;
		document.images['imgRadio'+vname+'_'+elems.value].src = "/img/radio_on.gif";
		return;
	}

	// Multiple radio elements
	for (i=0;i<elems.length;i++){
		if (elems[i].checked && elems[i].value!=val){
			elems[i].checked = false;
			document.images['imgRadio'+vname+'_'+elems[i].value].src = "/img/radio_off.gif";
			break;
		}
	}
	for (i=0;i<elems.length;i++){
		if (!elems[i].checked && elems[i].value==val){
			elems[i].checked = true;
			document.images['imgRadio'+vname+'_'+elems[i].value].src = "/img/radio_on.gif";
			break;
		}
	}
/*
	for (i=0;i<formObj.elements.length;i++){
		if (formObj.elements[i].name==vname && formObj.elements[i].checked){
			idx0 = i;
			val0 = formObj.elements[i].value;
		}
		if (formObj.elements[i].name==vname && formObj.elements[i].value==val){
			idx1 = i;
		}

	}
	if (idx0==idx1)
		return;

	if (idx0>=0){
		formObj.elements[idx0].checked = false;
		document.images['imgRadio'+vname+'_'+val0].src = "/img/radio_off.gif";
	}
	formObj.elements[idx1].checked = true;
	document.images['imgRadio'+vname+'_'+val].src = "/img/radio_on.gif";
*/
}

function AfterResetAll(formObj)
{
    var obj;
    var imgs;
    var ptn;
    imgs = document.images;

    for (i=0;i<formObj.elements.length;i++){
        obj = formObj.elements[i];
        if (obj.tagName!="INPUT")
            continue;
        if (obj.type=="radio"){
            ptn = "imgRadio"+obj.name+"_";
            for (j=0;j<imgs.length;j++)
                if (imgs[j].id.substr(0,ptn.length)==ptn)
                    imgs[j].src = "/img/radio_off.gif";
        }
        if (obj.type=="checkbox"){
            ptn = "imgCheck"+obj.name;
            for (j=0;j<imgs.length;j++)
                if (imgs[j].id==ptn)
                    imgs[j].src = "/img/check_off.gif";
        }
    }

    for (i=0;i<formObj.elements.length;i++){
        obj = formObj.elements[i];
        if (obj.tagName!="INPUT")
            continue;
        if (obj.type=="radio" && obj.checked && document.images['imgRadio'+obj.name+'_'+obj.value])
            document.images['imgRadio'+obj.name+'_'+obj.value].src = "/img/radio_on.gif";
        if (obj.type=="checkbox" && obj.checked && document.images['imgCheck'+obj.name])
            document.images['imgCheck'+obj.name].src = "/img/check_on.gif";
    }

    if (selectObjs){
        for (i=0;i<selectObjs.length;i++){
        	selectObjs[i].selectedIndex = selectObjs[i].index0;
        	if(FindSelectXmlObject(selectObjs[i].xmlFile)+'' != '')
        	{
        		selectObjs[i].GetXMLData();
        	}
        }
    }
    UnsetFormChanged(formObj);
}

function KeyDownEnter2Tab()
{
	var keyCode = window.event.keyCode;
	if (!(keyCode==38 || keyCode==40 || keyCode==13)){
		return false;
	}
	if (keyCode==38){
		window.event.cancelBubble= true;
		var obj = window.event.srcElement;
		var i,frm;
		frm = obj.form;
		for (i=0;i<frm.elements.length;i++)
			if (frm.elements[i]==obj)
				break;
		for (i--;i>=0;i--){
			if (frm.elements[i].tagName=="INPUT" && frm.elements[i].type!="hidden"){
				frm.elements[i].focus();
				frm.elements[i].select();
				break;
			}
		}
		return true;
	}
	if (keyCode==40){
		window.event.cancelBubble= false;
		window.event.keyCode = 9;
		return false;
	}
	if (keyCode==13){
		window.event.cancelBubble= false;
		window.event.keyCode = 9;
		return false;
	}
	return false;
}

function OpenExitWin()
{
	if (document.all){
		obj = document.all["exitWin"].style;
		obj.display = "block";
		obj.pixelLeft = (document.body.clientWidth-300)/2+document.body.scrollLeft;
		obj.pixelTop  = (document.body.clientHeight-240)/2+document.body.scrollTop;
		obj.visibility="visible";
		document.all["exitWin"].onmousedown = MouseDownOnExitWin;
		document.all["exitWin"].onmousemove = MouseMoveOnExitWin;
		document.all["exitWin"].onmouseup = MouseUpOnExitWin;
		document.all["exitWin"].onmouseout = MouseUpOnExitWin;
	}
}

function CloseExitWin()
{
	document.all["exitWin"].style.visibility="hidden";
	document.all["exitWin"].style.display="none";
}

dragging = false;
dragX0 = 0;
dragY0 = 0;
function MouseDownOnExitWin()
{
	obj = document.all["exitWin"].style;
	x = event.x+document.body.scrollLeft;
	y = event.y+document.body.scrollTop;

	if (x>=obj.pixelLeft+5 && y>=obj.pixelTop && x<=obj.pixelLeft+280 && y<=obj.pixelTop+20){
		dragging = true;
		dragX0 = x-obj.pixelLeft;
		dragY0 = y-obj.pixelTop;
	}
	event.cancelBubble = true;
	return true;
}

function MouseMoveOnExitWin()
{
	obj = document.all["exitWin"].style;
	x = event.x+document.body.scrollLeft;
	y = event.y+document.body.scrollTop;
	if (dragging){
		obj.pixelLeft = x-dragX0;
		obj.pixelTop = y-dragY0;
	}
	event.cancelBubble = true;
	return true;
}

function MouseUpOnExitWin()
{
	dragging = false;
	event.cancelBubble = true;
	return true;
}

function RefreshPageNoViewSubmit()
{
	document.all.pageNoSpan.innerHTML = "";

	for (i=0,p=startPageNo;i<nPagePerView && p<=maxPageNo;i++,p++){
		if (p==curPageNo)
			str = "<FONT COLOR=\"red\">"+(p+1)+"</FONT>";
		else
			str = "<A HREF=\"javascript:"+pageNoLinkBase+"(" + p+")\">"+(p+1)+"</A>";
		if (p+1<nPagePerView)
			str = "&nbsp;"+str;
		document.all.pageNoSpan.innerHTML += str+"&nbsp;";
	}
	if (startPageNo<=0){
		document.all.imgPageLeft.style.cursor = "default";
		document.all.imgPageFirst.style.cursor = "default";
	}
	else{
		document.all.imgPageLeft.style.cursor = "hand";
		document.all.imgPageFirst.style.cursor = "hand";
	}
	if (startPageNo+nPagePerView>maxPageNo){
		document.all.imgPageRight.style.cursor = "default";
		document.all.imgPageLast.style.cursor = "default";
	}
	else{
		document.all.imgPageRight.style.cursor = "hand";
		document.all.imgPageLast.style.cursor = "hand";
	}
}

function PageNoViewLeftSubmit()
{
	if (startPageNo<nPagePerView)
		return;
	startPageNo -= nPagePerView;
	RefreshPageNoViewSubmit();
}

function PageNoViewRightSubmit()
{
	if (startPageNo+nPagePerView>maxPageNo)
		return;
	startPageNo += nPagePerView;
	RefreshPageNoViewSubmit();
}

function PageNoViewFirstSubmit()
{
	startPageNo = 0;
	RefreshPageNoViewSubmit();
}

function PageNoViewLastSubmit()
{
	startPageNo = Math.floor(maxPageNo/nPagePerView)*nPagePerView;
	RefreshPageNoViewSubmit();
}

function RefreshPageNoView()
{
	var linkopt;
	if (pageLinkSubmit)
		linkopt = " onclick=\"return LinkSubmit(this,'','');\"";
	else
		linkopt = "";

	document.all.pageNoSpan.innerHTML = "";

	for (i=0,p=startPageNo;i<nPagePerView && p<=maxPageNo;i++,p++){
		if (p==curPageNo)
			str = "<FONT COLOR=\"red\">"+(p+1)+"</FONT>";
		else
			str = "<A HREF=\""+pageNoLinkBase+p+"\""+linkopt+">"+(p+1)+"</A>";
		if (p+1<nPagePerView)
			str = "&nbsp;"+str;
		document.all.pageNoSpan.innerHTML += str+"&nbsp;";
	}
	if (startPageNo<=0){
		document.all.imgPageLeft.style.cursor = "default";
		document.all.imgPageFirst.style.cursor = "default";
	}
	else{
		document.all.imgPageLeft.style.cursor = "hand";
		document.all.imgPageFirst.style.cursor = "hand";
	}
	if (startPageNo+nPagePerView>maxPageNo){
		document.all.imgPageRight.style.cursor = "default";
		document.all.imgPageLast.style.cursor = "default";
	}
	else{
		document.all.imgPageRight.style.cursor = "hand";
		document.all.imgPageLast.style.cursor = "hand";
	}
}

function PageNoViewLeft()
{
	if (startPageNo<nPagePerView)
		return;
	startPageNo -= nPagePerView;
	RefreshPageNoView();
}

function PageNoViewRight()
{
	if (startPageNo+nPagePerView>maxPageNo)
		return;
	startPageNo += nPagePerView;
	RefreshPageNoView();
}

function PageNoViewFirst()
{
	startPageNo = 0;
	RefreshPageNoView();
}

function PageNoViewLast()
{
	startPageNo = Math.floor(maxPageNo/nPagePerView)*nPagePerView;
	RefreshPageNoView();
}


function _JAVA_DISP_NUMBER(v)
{
	var str="";
	if (isNaN(v) || v+''=="Infinity")
		return "";

	str = v+"";

	var len = str.length;
	if ((str=="0") || (len == 0))
		return "";

	var ii,c;
	for (ii=0;ii<len;ii++){
		c = str.substr(ii,1);
		if ((c!=".") && (c!="0"))
			return str;
	}

	return "";
}

function _JAVA_FORMAT_NUMBER(v)
{
	var str="";
	var pos=0;

	if (isNaN(v) || v+''=="Infinity")
		return "";

	str = v+"";
	if (str=="0")
		return "";
	pos = str.indexOf(".",0);
	if (pos==-1)
		return str;

	str = _JAVA_Round_NUMBER(v,4)+"";

	while (str.substr(str.length-1,1)=="0")
		str = str.substr(0,str.length-1);

	if (str.substr(str.length-1,1)=="."){
		str = str.substr(0,str.length-1);
	}

	if (str == "0")
		return "";
	return str;
}

function _JAVA_Round_NUMBER(v,bit)
{
	var str="";
	var i;
	var pow=0.5;
	str = v+"";

	v = parseFloat(str);

	for (i=0;i<bit;i++)
		pow*=0.1;
	if (v<0)
		pow = -pow;
	v += pow;
	str = v+"";

	pos = str.indexOf(".",0);
	if (pos==-1)
		return str;

	if (bit==0)
		len=pos;
	else
		len=pos+1*bit+1;

	str = str.substr(0,len);

	return str;
}

function SetXMLData()
{
	var obj = document.frmPrint.xmlprintdata;

	var ap = document.all["printApplet"];
	var s = ap.setData(obj.value);
	if(s != "") alert(s);
}

function SetXMLData2()
{
	var obj = document.frmPrint.xmlprintdata;

	var ap = document.all["printX"];
/*
	var fs = new ActiveXObject("Scripting.FileSystemObject");

	var f = fs.OpenTextFile("c:\\test.txt",2,true,-1);
	f.WriteLine(obj.value);
	f.Close();
	var f = fs.OpenTextFile("c:\\test.txt",1,false,-1);
	var str = f.ReadAll();
	f.Close();
	alert(str)
//	ap.LoadFromFile("C:\\test.txt");
*/
	ap.LoadFromXML(obj.value);
}
function PrintPreview()
{
	var ap = document.all["printX"];
	ap.ptRight = document.frmPrint.owner.value;
	ap.ptLeft = "@vpageno/@vpages-@hpageno";
	ap.Preview();
}
function SetTableData(rows,cols)
{
	var i;
	var elems = document.frmPrint.elements;
	var ap = document.all["printApplet"];
	var align = new Array();
	var alignCol = new Array();

	ap.initTable(rows,cols);
	var t = ap.getTable();
	ap.setTitle(document.frmPrint.title.value);
	t.setFixedRows(1);
	t.setBorderStyle(1);

	for (i=0;i<elems.length;i++){
		if (elems[i].name.match(/c_[0-9]+_[0-9]+/)){
			var s = elems[i].name.substr(2);
			j = s.indexOf('_',0);
			row = parseInt(s.substring(0,j));
			col = parseInt(s.substr(j+1));
			t.setCellText(row,col,elems[i].value);
		}
		else if (elems[i].name.match(/w_[0-9]+/)){
			col = parseInt(elems[i].name.substr(2));
			t.setColumnWidth(col,elems[i].value);
		}
		else if (elems[i].name.match(/calign_[0-9]+/)){
			col = parseInt(elems[i].name.substr(7));
			alignCol[alignCol.length] = col;
			align[align.length] = elems[i].value;
		}
	}
	for (i=0;i<align.length;i++){
		t.setColAlign(alignCol[i],align[i]);
	}
	ap.setTitleAlign();
}

function SetCardData(rows,cols)
{
	var i,j,row,col,s;
	var elems = document.frmPrint.elements;
	var ap = document.all["printApplet"];

	ap.initTable(rows,cols);
	var t = ap.getTable();
	ap.setTitle(document.frmPrint.title.value);
	ap.setDefaultLineStyle(document.frmPrint.defLineStyle.value,true);

	for (i=0;i<elems.length;i++){
		if (elems[i].name.match(/c_[0-9]+_[0-9]+/)){
			s = elems[i].name.substr(2);
			j = s.indexOf('_',0);
			row = parseInt(s.substring(0,j));
			col = parseInt(s.substr(j+1));
			t.setCellText(row,col,elems[i].value);
		}
		else if (elems[i].name.match(/b_[0-9]+_[0-9]+/)){
			s = elems[i].name.substr(2);
			j = s.indexOf('_',0);
			row = parseInt(s.substring(0,j));
			col = parseInt(s.substr(j+1));
			ap.setBold(row,col);
		}
		else if (elems[i].name.match(/cspan_[0-9]+_[0-9]+/)){
			s = elems[i].name.substr(6);
			j = s.indexOf('_',0);
			row = parseInt(s.substring(0,j));
			col = parseInt(s.substr(j+1));
			t.setCellSpan(row,col,elems[i].value);
		}
		else if (elems[i].name.match(/cline_[0-9]+_[0-9]+/)){
			s = elems[i].name.substr(6);
			j = s.indexOf('_',0);
			row = parseInt(s.substring(0,j));
			col = parseInt(s.substr(j+1));
			t.setCellLineStyle(row,col,elems[i].value);
		}
		else if (elems[i].name.match(/w_[0-9]+/)){
			col = parseInt(elems[i].name.substr(2));
			t.setColumnWidth(col,elems[i].value);
		}
		else if (elems[i].name.match(/a_[0-9]+_[0-9]+/)){
			s = elems[i].name.substr(2);
			j = s.indexOf('_',0);
			row = parseInt(s.substring(0,j));
			col = parseInt(s.substr(j+1));
			t.setCellAlign(row,col,elems[i].value);
		}
	}
	ap.setOutLine(rows,cols);
}

function OpenAddrLabelPrintWin(type)
{
	var w = 240;
	var h = 120;
	var l =(window.screen.availWidth-w)/2;
	var t = (window.screen.availHeight-h)/2;
	var url;
	if (type==1)
		url = "/pub/addrlblprnt.php";
	else
		url = "/pub/addrlblprntcnct.php";
	var newwin = window.open(url,"PrintWin", "location=no scrollbars=no menubar=no status=no resizable=0 width="+w+" height="+h+" left="+l+" top="+t);
	newwin.focus();
}

function addAttach(p,pid,frmName,frmVar){
	if(pid=="")
		return;

	var w = 450;
	var h = 240;
	var l =(window.screen.availWidth-w)/2;
	var t = (window.screen.availHeight-h)/2;

	winopt = "location=no scrollbars=yes menubar=no status=no resizable=0 width="+w+" height="+h+" left="+l+" top="+t;
	urlParam = "/pub/attachupload.php?parent=" + p + "&parent_id=" + pid + "&frmName=" + frmName+ "&frmVar=" + frmVar;
	winName = "attach_upload";
	newWin = window.open(urlParam,winName,winopt);
//	newWin.focus();
	delayWinFocus(newWin);
}

function editAttach(aid,frmName,frmVar){
	if(aid=="")
		return;

	var w = 450;
	var h = 240;
	var l =(window.screen.availWidth-w)/2;
	var t = (window.screen.availHeight-h)/2;

	winopt = "location=no scrollbars=yes menubar=no status=no resizable=0 width="+w+" height="+h+" left="+l+" top="+t;
	urlParam = "/pub/attachedit.php?frmName=" + frmName+ "&attachID=" + aid + "&frmVar=" + frmVar;
	winName = "attach_upload";
	newWin = window.open(urlParam,winName,winopt);
	delayWinFocus(newWin);
}
winToBeFocused = false;
cancelInputFocus = false;
function delayWinFocus(win)
{
	winToBeFocused = win;
	cancelInputFocus = true;
	setTimeout("doWinFocus();",500);
}

function doWinFocus()
{
	if (winToBeFocused && !winToBeFocused.closed){
		winToBeFocused.focus();
	}
}

function delAttach(frmName,aid_fldName,aid_value,atype_fldName,atype_value,msg){
	if (!confirm(msg))
		return;
	var frmAction = new String(eval(frmName).action);
	if (frmAction.indexOf("?")==-1)
		chr = "?";
	else
		chr = "&";
	frmAction = frmAction + chr + aid_fldName + "=" + aid_value + "&" + atype_fldName + "=" + atype_value;
	eval(frmName).action = frmAction
	eval(frmName).submit();
}

function delAttachSubmit(frmName,aid_fldName,aid_value,atype_fldName,atype_value,msg){
	if (!confirm(msg))
		return;
	eval(frmName+"."+aid_fldName).value =aid_value;
	eval(frmName+"."+atype_fldName).value =atype_value;
	eval(frmName).submit();
}

function LinkAppend(link,vname,val)
{
	if (link.indexOf("?",0)>=0)
		link += '&';
	else
		link += '?';
	link += vname+"="+val;
	return link;
}

function LinkSubmit(aObj,formName,msgConfirm)
{
	var formObj;
	if (msgConfirm!=''){
		if (!confirm(msgConfirm))
			return false;
	}
	if (formName==''){
		for (formObj = aObj.parentElement;formObj.tagName!="FORM" && formObj!=null;formObj=formObj.parentElement)
			;
	}
	else{
		formObj = document.forms[formName];
	}
	if (formObj==null)
		return false;

	if (formObj.onsubmit!=null && !formObj.onsubmit()){
		return false;
	}
	
	formObj.action = aObj.href;
	formObj.target="_self";
	formObj.submit();
	return false;
}

tableRowColorLight = "";
tableRowColorDark = "";
tableRowColorHighlight = "";
tableRowColorAnchor = "";
tableRowStartIdx = 0;
tableRowAnchorFunc = "";
tableRowAnchorIdx = -1;
tableRowDblClickFunc = "";
function HighlightTableRow()
{
	var obj = event.srcElement;
	if (obj.tagName=='TABLE')
		return;
	while (obj.tagName!='TR')
	{
		if (obj.tagName=='BODY')
			return;
		obj = obj.parentElement;
	}

	obj.style.backgroundColor = tableRowColorHighlight;
}

function NormalTableRow()
{
	var obj = event.srcElement;
	if (obj.tagName=='TABLE')
		return;
	while (obj.tagName!='TR'){
		if (obj.tagName=='BODY')
			return;
		obj = obj.parentElement;
	}
	var idx = obj.rowIndex;
	if (idx==tableRowAnchorIdx && tableRowColorAnchor!=""){
		obj.style.backgroundColor = tableRowColorAnchor;
	}
	else if ((idx+tableRowStartIdx)%2==0)
		obj.style.backgroundColor = tableRowColorLight;
	else
		obj.style.backgroundColor = tableRowColorDark;
}

function ClickTableRow()
{
	var obj = event.srcElement;
	while (obj.tagName!='TR')
		obj = obj.parentElement;
	var imgs = obj.all.tags("IMG");
	var i;
	for (i=0;i<imgs.length;i++){
		if (imgs[i].id.match(/imgCheck[a-zA-Z0-9]+_/) || imgs[i].id.match(/imgRadio[a-zA-Z0-9]+_/)){
			imgs[i].click();
			break;
		}
	}
	if (tableRowAnchorFunc!="" || tableRowColorAnchor!=""){
		if (tableRowAnchorIdx>=0){
			var tblObj = obj.parentElement;
			if ((tableRowAnchorIdx+tableRowStartIdx)%2==0)
				tblObj.rows(tableRowAnchorIdx).style.backgroundColor = tableRowColorLight;
			else
				tblObj.rows(tableRowAnchorIdx).style.backgroundColor = tableRowColorDark;
		}
		obj.style.backgroundColor = tableRowColorAnchor;
		tableRowAnchorIdx = obj.rowIndex;
		if (tableRowAnchorFunc!="")
			eval(tableRowAnchorFunc+"(obj);");
	}
}

function DblClickTableRow()
{
	ClickTableRow();
	var obj;
	if (tableRowDblClickFunc!=""){
		obj = event.srcElement;
		while (obj.tagName!='TR')
			obj = obj.parentElement;
		eval(tableRowDblClickFunc+"(obj);");
	}
}

function InitTableColor(tblName,startRow,colorLight,colorDark,colorHigh,colorAnchor)
{
	var tbl = document.all[tblName];
	var row;
	var i;
	tableRowColorLight = colorLight;
	tableRowColorDark = colorDark;
	tableRowColorHighlight = colorHigh;
	tableRowColorAnchor = colorAnchor;
	tableRowStartIdx = startRow;

	for (i=startRow;i<tbl.rows.length;i++){
		row = tbl.rows[i];
		if (row.className=="staticTableRow")
			continue;
		if ((i+startRow)%2==0)
			row.style.backgroundColor = colorLight;
		else
			row.style.backgroundColor = colorDark;
		if (colorHigh!=''){
			row.onmouseover = HighlightTableRow;
			row.onmouseout = NormalTableRow;
		}
	}
}

function ClearTableClick(tblName,startRow)
{
	var tbl = document.all[tblName];
	var row;
	var i;
	for (i=startRow;i<tbl.rows.length;i++){
		row = tbl.rows[i];
		if (row.className=="staticTableRow")
			continue;
		row.onclick = '';
		row.ondblclick = '';
	}
}

function InitTableClick(tblName,startRow)
{
	var tbl = document.all[tblName];
	var row;
	var i;
	for (i=startRow;i<tbl.rows.length;i++){
		row = tbl.rows[i];
		if (row.className=="staticTableRow")
			continue;
		row.onclick = ClickTableRow;
		row.ondblclick = DblClickTableRow;
	}
}

function trim(val)
{
	var str = val+"";
	if (str.length == 0) return str;
	var re = /^\s*/;
	str = str.replace(re,'');
	re = /\s*$/;
	return str.replace(re,'');
}

//used in dateedit.js and entityspec.js
function fnCancelBubble() {
	event.cancelBubble = true
}


var g_szFormName_query;
var g_fnDocOnkeydown_query="";

function fnDocOnkeydown_query()
{
	if (window.event.keyCode==13)
		SubmitbtnSearch();
    else if (window.event.keyCode==27)
		fnHideQueryDiv(g_szFormName_query);
}

//Display Query div
function fnShowQueryDiv(szFormName) {
	g_szFormName_query = szFormName;

	oDiv = eval('div' + szFormName);
	if (oDiv + '' == 'undefined')
		return false;

	oDiv.style.display = "block";
	if (oDiv.style.visibility == "visible") {
	    return;
	}

	var obj = document.forms[szFormName];
	if ((obj+"" == "undefined") )
		return false;
	if (obj.advRegVarName+''=='undefined')
		return false;

	if (obj.advRegVarName.value.length > 0){
		if (window.top.StatFrame + '' != 'undefined')
		{
			var x = window.top.StatFrame.GetRegisterVar(document.forms[szFormName].advRegVarName.value);
			if (x + "" =="1"){
				fnShowAdvance(szFormName);
			}
		}
	}

	g_fnDocOnkeydown_query = document.onkeydown;
	document.onkeydown = fnDocOnkeydown_query;
	fnSetQueryDivPosition(oDiv);
	oDiv.style.visibility = "visible";
	oDiv.focus();
}

//Hide Query Div
function fnHideQueryDiv(szFormName) {
	if (g_fnDocOnkeydown_query!="") {
		document.onkeydown = g_fnDocOnkeydown_query
		g_fnDocOnkeydown_query = ""
	}
	oDiv = eval("div" + szFormName);
	oDiv.style.visibility = "hidden";
}

//Set the position of Query Div
function fnSetQueryDivPosition(oDiv, szFormName) {
	iMaxLength = 450;
	var obj = document.forms[szFormName];
	if (obj+"" != "undefined"){
		if (obj.advRegVarName.value.length > 0){
			if (window.top.StatFrame + '' == 'undefined')
			{
				var x = 0;
			} else {
				var x = window.top.StatFrame.GetRegisterVar(document.forms[szFormName].advRegVarName.value);
			}
			if (x + "" =="1" && oDiv.offsetHeight >= iMaxLength){
				if (oDiv.offsetHeight != iMaxLength) {
					oDiv.style.width = oDiv.offsetWidth + 20;
				}
				oDiv.style.height = iMaxLength;
				oDiv.style.overflow = "scroll";
			} else {
				oDiv.style.overflow = "visible";
				oDiv.style.width = "";
				oDiv.style.height = "";
			}
		}
	}
	
	var clientWidth = window.document.body.clientWidth * 0.98;
	if(oDiv.offsetWidth > clientWidth)
	{
		oDiv.style.width = clientWidth;
		oDiv.style.overflow = "scroll";
	}
	oDiv.style.pixelLeft = (document.body.clientWidth - oDiv.offsetWidth)/2;
	oDiv.style.pixelTop = (document.body.clientHeight - oDiv.offsetHeight)/2;
}

//Set the status of advance query change
function fnSwitchAdvance(szFormName) {
	oA = event.srcElement;
	oTR = eval("tr" + szFormName);
	oHR = eval("hr" + szFormName);
	oDiv = eval("div" + szFormName);
	var advReg = document.forms[szFormName].advRegVarName.value;

	if (oTR.style.display == "none") {
		oA.innerText = "<<--";
		oTR.style.display = "block";
		oHR.style.display = "block";
		if ((advReg.length > 0) && (window.top.StatFrame + '' != 'undefined'))
			window.top.StatFrame.RegisterVar(advReg,1);
	} else {
		oA.innerText = "-->>";
		oTR.style.display = "none";
		oHR.style.display = "none";
		if ((advReg.length > 0) && (window.top.StatFrame + '' != 'undefined'))
			window.top.StatFrame.RegisterVar(advReg,0);
	}

	fnSetQueryDivPosition(oDiv, szFormName);
}


function fnShowAdvance(szFormName)
{
	oTR = eval("tr" + szFormName);
	oHR = eval("hr" + szFormName);
	oDiv = eval("div" + szFormName);
	oA = eval("advSwitch" + szFormName);
	var advReg = document.forms[szFormName].advRegVarName.value;
	oTR.style.display = "block";
	oHR.style.display = "block";
	oA.innerText = "<<--";
	if (advReg.length > 0)
		window.top.StatFrame.GetRegisterVar(advReg,1);

	fnSetQueryDivPosition(oDiv, szFormName);
}

scrWaitBodyFocus=null;
scrWaitBodyContext=null;
function LockScreenToWait(msg)
{
	if (scrWaitBodyFocus==null && scrWaitBodyContext==null){
		scrWaitBodyFocus = document.body.onfocus+'';
		scrWaitBodyContext = document.body.oncontextmenu+'';
		document.body.onfocus = LockScreenToWait;
		document.body.oncontextmenu = CancelClick;
	}
	var div = document.all["divScreenWaiting"];
	if (div+''=="undefined"){
		div = document.createElement("DIV");
		div.setAttribute("id","divScreenWaiting");
		div.className = "menuBox";
		div.style.padding = 10;
		div.style.paddingLeft = 30;
		div.style.paddingRight = 30;
		div.innerHTML = msg;
		document.body.appendChild(div);
	}
	var x =(document.body.clientWidth-div.offsetWidth)/2;
	var y = (document.body.clientHeight-div.offsetHeight)/2;
	div.style.pixelLeft = x;
	div.style.pixelTop = y;
	div.style.visibility = "visible";
	div.onclick = CancelClick;
	div.setCapture();
}

function UnlockScreenWait()
{
	var div = document.all["divScreenWaiting"];
	if (div+''=="undefined")
		return;
	div.style.visibility = "hidden";
	document.body.onfocus = scrWaitBodyFocus;
	document.body.oncontextmenu = scrWaitBodyContext;
	scrWaitBodyFocus = null;
	scrWaitBodyContext = null;
	document.releaseCapture();
}

function CancelClick()
{
	if (event.y<0){
		UnlockScreenWait();
		event.cancelBubble = false;
		return true;
	}
	return false;
}

function HiddenDivShow(divName)
{
	eval(divName +'.style.display = "block";');
	eval('fnSetQueryDivPosition('+divName+');');
}

gblFieldsConfigHasInit = false;

function FieldsConfigShow()
{
	if (!gblFieldsConfigHasInit)
	{
		gblFieldsConfigHasInit = true;
		DrawFieldsConfigCheck();
	}

	HiddenDivShow("FieldsConfigDiv");

	if (document.all["divfrmQry"] + '' != 'undefined')
	{
		divfrmQry.style.display ="none";
	}
}

function FieldsConfigHidden()
{
	FieldsConfigDiv.style.display ='none';

	if (document.all["divfrmQry"] + '' != 'undefined')
	{
		HiddenDivShow("divfrmQry");
	}
}

function DrawFieldsConfigCheck()
{
	var tbl = document.all.FLDCNFGTBL;
	if ((tbl.rows + '' == 'undefined') || (tbl.rows.length +'' =='undefined'))
		return ;
	var rows = tbl.rows.length;
	if (rows < 1)
		return ;
	var cells = tbl.rows(0).cells.length;
	var robj,rarr,chk;
	var i,j,no=0;

	for (i=0;i<rows;i++)
	{
		robj = tbl.rows(i);

		for (j=0;j<cells;j++)
		{
			if (robj.cells(j) +'' == '' || robj.cells(j) +''=='undefined' || robj.cells(j) +''=='null')
			{
				continue;
			}

			if (robj.cells(j).id +'' == '' || robj.cells(j).id +''=='undefined' || robj.cells(j).id +''=='null')
			{
				continue;
			}

			no ++;

			rarr = robj.cells(j).id.split(',');

			chk = (rarr[1] + '' == '1') ? true : false;
			robj.cells(j).innerHTML = GenCheckHTML("fieldsLocation_"+no,rarr[0],chk,robj.cells(j).innerText);
		}
	}
	return ;
}
function checkFieldsConfig(frm)
{
	var n = frm.elements.length;
	var i;

	for (i=0;i<n;i++){
		if (frm.elements[i].type=="checkbox" && frm.elements[i].checked)
			return true;
	}
	return false;
}

//use for TUI_StrDateEdit();
function SetDateByYMD(yname,mname,dnme)
{
	var loc = yname.substring(0,yname.length-2);
	var locObj = document.all[loc];
	var ly = document.all[yname].value;
	var lm = document.all[mname].value;
	var ld = document.all[dnme].value;
	var lhObj = document.all[loc+"_h"];
	var lnObj = document.all[loc+"_n"];

	if(ly == "" && lm == "" && ld == "")
		locObj.value = "";
	else
	{
		if(lm.length < 2) lm = "0"+lm;
		if(ld.length < 2) ld = "0"+ld;

		if(lhObj + "" == "undefined" || lnObj + "" == "undefined")
		{
			locObj.value = ly+"-"+lm+"-"+ld;
		}
		else
		{
			var lh = lhObj.value;
			var ln = lnObj.value;
			if(lh.length < 2) lh = "0"+lh;
			if(ln.length < 2) ln = "0"+ln;
			locObj.value = ly+"-"+lm+"-"+ld + " " + lh + ":" + ln + ":00";
		}
	}
	return true;
}


var viewCollapseRows = 0;
var viewCollapseDiv = false;
var viewCollapseVar = false;
function ViewCollapse()
{
	var tbl=FindViewTable();
	if (tbl==false)
		return;

	var n = tbl.rows.length;
	for (i=viewCollapseRows;i<n;i++){
		tbl.rows[i].style.display = 'none';
	}

	RepositionViewCollapseDiv(tbl,viewCollapseDiv);
	viewCollapseDiv.innerHTML = '<img src="/img/down_arrow.gif">';
	viewCollapseDiv.onclick = ViewExpand;
	if (window.top.StatFrame + '' != 'undefined')
		window.top.StatFrame.RegisterVar(viewCollapseVar,0);
}
function ViewExpand()
{
	var tbl=FindViewTable();
	if (tbl==false)
		return;

	var n = tbl.rows.length;
	for (i=viewCollapseRows;i<n;i++){
		tbl.rows[i].style.display = 'block';
	}

	RepositionViewCollapseDiv(tbl,viewCollapseDiv);
	viewCollapseDiv.innerHTML = '<img src="/img/up_arrow.gif">';
	viewCollapseDiv.onclick = ViewCollapse;
	if (window.top.StatFrame + '' != 'undefined')
		window.top.StatFrame.RegisterVar(viewCollapseVar,1);
}

function FindViewTable()
{
	var tbls = document.all.tags("TABLE");
	var i;
	var tbl=false;

	for (i=0;i<tbls.length;i++){
		if (tbls[i].className=='tb'){
			tbl = tbls[i];
			break;
		}
	}
	return tbl;
}
function RepositionViewCollapseDiv(tbl,div)
{
	var left = 0;
	var top = 0;
	var obj = tbl;
	for (; obj!=document.body; obj=obj.offsetParent){
		left += obj.offsetLeft-obj.scrollLeft;
		top  += obj.offsetTop-obj.scrollTop;
	}
	left += tbl.offsetWidth-24;
	top += tbl.offsetHeight;

	div.style.pixelLeft = left;
	div.style.pixelTop = top;
}

function EnableViewCollapse(varName,rows)
{
	if (rows+''=='0')
		return;

	if (document.readyState!="complete"){
		setTimeout("EnableViewCollapse('"+varName+"',"+rows+");",50);
		return;
	}

	var tbl = FindViewTable();
	if (tbl==false){
		return;
	}

	viewCollapseVar = 'vc_ctrl_'+varName;
	viewCollapseRows = rows;

	var div = document.createElement("DIV");
	div.style.position = 'absolute';
	div.style.zIndex = 100;
	div.style.width = 24;
	div.style.height = 11;
	div.style.backgroundColor = '#6070b0';
	div.style.color = 'white';
	div.style.textAlign = 'center';
	div.style.fontWeight = 'bold';
	div.style.cursor = 'default';
	document.body.appendChild(div);
	viewCollapseDiv = div;

	if (window.top.StatFrame + '' != 'undefined'){
		val = window.top.StatFrame.GetRegisterVar(viewCollapseVar);
		if (val+''=='1'){
			ViewExpand();
		}
		else{
			ViewCollapse();
		}
	}
}

// Added by Kelvin after V4.0 2004-1-12 release
function Point(x,y)
{
	this.x = x;
	this.y = y;
}
function Rectangle(x,y,w,h)
{
	this.x = x;
	this.y = y;
	this.width = w;
	this.height = h;
}
function getLocation(elem)
{
	var left = elem.offsetLeft;
	var top = elem.offsetTop;
	for (var obj=elem.parentElement; obj!=document.body; obj=obj.offsetParent){
		left += obj.offsetLeft-obj.scrollLeft;
		top  += obj.offsetTop-obj.scrollTop;
	}
	var point = new Point(left,top);
	return point;
}
function getBounds(elem)
{
	var p = getLocation(elem);
	var rect = new Rectangle(p.x,p.y,elem.offsetWidth,elem.offsetHeight);
	return rect;
}
function ConstrainRange(x,min,max)
{
	if (x<min)
		x = min;
	else if (x>max)
		x = max;
	return x;
}

function MoveTableColumn(tbl,col1,col2)
{
	if (col1 == col2)
		return ;

	var cols = tbl.rows(0).cells.length;
	if (col1>=cols || col2>=cols)
		return ;

	var tmp;
	var row;
	var len = tbl.rows.length;
	if (col1>col2){
		for (var i=0;i<len;i++){
			row = tbl.rows(i);
			tmp = row.cells(col1).cloneNode(true);
			row.insertBefore(tmp,row.cells(col2));
			row.deleteCell(col1+1);
		}
	}
	else{
		for (var i=0;i<len;i++){
			row = tbl.rows(i);
			tmp = row.cells(col1).cloneNode(true);
			if (col2<cols-1)
				row.insertBefore(tmp,row.cells(col2+1));
			else
				row.insertBefore(tmp);
			row.deleteCell(col1);
		}
	}
}

function TableDragControl()
{
	this.dragX0 = 0;
	this.dragY0=0;
	this.elemX0=0;
	this.elemY0=0;
	this.dragging=false;
	this.dragRect=null;
	this.tableID=null;
	this.tableObj=null;
	this.dragCol=-1;
	this.dropFirst=0;
	this.dropLast=-1;
	this.preDrag=null;
	this.postDrag=null;
	this.bodyMouseMove=null;
	this.bodyMouseUp=null;
	this.bodySelectStart=null;
	this.profName="";
}

gblDragCtrl = new TableDragControl();

function startTableHeaderDrag(elem)
{
	if (gblDragCtrl.preDrag!=null){
		if (!gblDragCtrl.preDrag(elem)){
			return;
		}
	}
	gblDragCtrl.dragCol = elem.cellIndex;
	var tbl = document.all[gblDragCtrl.tableID];
	var pos = getLocation(elem);
	gblDragCtrl.dragRect = getBounds(tbl);
	if (gblDragCtrl.dropFirst!=0 || gblDragCtrl.dropLast!=-1){
		var p;
		if (gblDragCtrl.dropFirst!=0){
			p = getLocation(tbl.rows(0).cells(gblDragCtrl.dropFirst));
			gblDragCtrl.dragRect.width -= p.x-gblDragCtrl.dragRect.x;
			gblDragCtrl.dragRect.x = p.x;
		}
		if (gblDragCtrl.dropLast!=-1){
			p = getLocation(tbl.rows(0).cells(gblDragCtrl.dropLast));
			gblDragCtrl.dragRect.width = p.x-gblDragCtrl.dragRect.x-1;
		}
	}
	gblDragCtrl.dragX0 = event.clientX+document.body.scrollLeft;
	gblDragCtrl.dragY0 = event.clientX+document.body.scrollTop;
	gblDragCtrl.elemX0 = pos.x;
	gblDragCtrl.elemY0 = pos.y;
	gblDragCtrl.tableObj=tbl;
	gblDragCtrl.dragging=true;

	document.all["headerDragDiv"].style.pixelLeft = gblDragCtrl.dragX0-6;
	document.all["headerDragDiv"].style.pixelTop = pos.y-16;
	document.all["headerDragDiv"].style.display = "block";

	gblDragCtrl.bodyMouseMove = document.body.onmousemove;
	gblDragCtrl.bodyMouseUp = document.body.onmouseup;
	gblDragCtrl.bodySelectStart = document.body.onselectstart;
	document.body.onmousemove = onTableDragMouseMove;
	document.body.onmouseup = onTableDragMouseUp;
	document.body.onselectstart = function(){return false;};
}
function onTableDragMouseUp()
{
	if (gblDragCtrl.dragging){
		gblDragCtrl.dragging=false;
		document.all["headerDragDiv"].style.display="none";
		if ((gblDragCtrl.tableObj != null) && (gblDragCtrl.dragCol > -1))
		{
			var i,r;
			var x = event.clientX+document.body.scrollLeft;
			x = ConstrainRange(x,gblDragCtrl.dragRect.x,gblDragCtrl.dragRect.x+gblDragCtrl.dragRect.width-1-12);
			var row = gblDragCtrl.tableObj.rows(0);
			r = gblDragCtrl.dragRect.x;

			for (i=gblDragCtrl.dropFirst;i<row.cells.length;i++)
			{
				r += row.cells(i).offsetWidth+1*gblDragCtrl.tableObj.cellSpacing;

				if (x <= r)
				{
					break;
				}
			}

			if (i < row.cells.length)
			{
				MoveTableColumn(gblDragCtrl.tableObj,gblDragCtrl.dragCol,i);
				if (gblDragCtrl.dragCol!=i){
					var str = "/pub/empfieldmove.php?PROF="+gblDragCtrl.profName+"&FROM="+(gblDragCtrl.dragCol-gblDragCtrl.dropFirst)+"&TO="+(i-gblDragCtrl.dropFirst);
					window.open(str,"HelperFrame");
				}
			}

			gblDragCtrl.tableObj = null;
			gblDragCtrl.dragCol = -1;
		}
		document.body.onmousemove = gblDragCtrl.bodyMouseMove;
		document.body.onmouseup = gblDragCtrl.bodyMouseUp;
		document.body.onselectstart = gblDragCtrl.bodySelectStart;
	}
}
function onTableDragMouseMove()
{
	if (!gblDragCtrl.dragging)
		return false;

	if (gblDragCtrl.dragging){
		document.all["headerDragDiv"].style.pixelLeft = ConstrainRange(event.clientX+document.body.scrollLeft-6,gblDragCtrl.dragRect.x,gblDragCtrl.dragRect.x+gblDragCtrl.dragRect.width-1-6);
	}
	event.cancelBubble = true;
	return true;
}

//it is byte len: single byte +1.5,other +2
function StrLen(str)
{
	str = str+"";
	var len=0;
	for(var i=0;i<str.length;i++)
	{
		if(str.charCodeAt(i)>127)
			len += 2;
		else
			len += 1;
	}
	return len;
}

function AxShowQueryDiv(url,formName)
{
	var divName = 'div'+formName;
	if (document.all[divName]+''!='undefined'){
		fnShowQueryDiv(formName);
		return;
	}
	xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
    xmlReq.open('GET', url, false);
    xmlReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlReq.send('');

	OutputQueryDiv(xmlReq.responseText);
    fnShowQueryDiv(formName);
}

function OutputQueryDiv(str)
{
	var div = document.createElement('DIV');
	document.body.appendChild(div);

	RegExp.multiline = true;
	reg = new RegExp("(<script.*>[^<]*</script>)","gi");
	scrpts = str.match(reg);
	if (scrpts!=null){
		str1 = str.replace(reg,'<div class=toInsert style="display:none"></div>');
		div.innerHTML = str1;
		gblBuildingEditItem = div;
		for (_i=0;_i<scrpts.length;_i++){
			var nodes=div.all;
			var i,j;
			var tmp = null;
			for (i=0,j=0;i<nodes.length;i++){
				if (nodes[i].className=="toInsert"){
					if (j==_i){
						tmp = nodes[i];
						break;
					}
					j++;
				}
			}
			if (tmp==null)
				gblBuildingEditItem = div;
			else
				gblBuildingEditItem = tmp.parentElement;
			reg = new RegExp("<script.*>([^<]*)</script>","gi");
			code = reg.exec(scrpts[_i]);
			eval(code[1]);
		}
		gblBuildingEditItem = null;
	}
	else{
		div.innerHTML = str;
	}
}

function GetAJAXObject()
{  
	try
    {    // Firefox, Opera 8.0+, Safari    
    	xmlHttp=new XMLHttpRequest();    
    }
  	catch (e)
    {   // Internet Explorer    
    	try
      	{
      		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      
      	}
    	catch (e)
      	{      
      		try
        	{
        		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
        	}
			catch (e)
			{
				return false;
			}
		}
	}
	return xmlHttp;
}

//disable copy content begin
function Bibf_disable_menu()
{
	return false;
}

function Bibf_keyPress()
{ 
	if(event.shiftKey || event.altKey || event.ctrlKey)
		return false;
}
//disable copy content end
