
ns4 = (document.layers)?true:false;
ie4 = (document.all)?true:false;

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 hiddenqry(obj)
{
	qry.style.left =(document.body.clientWidth - qry.clientWidth)/2+"px";
	qry.style.top =(document.body.clientHeight - qry.clientHeight)/2+"px";
	qry.style.display="none";
}

function showqry(obj)
{
	
	qry.style.left =(document.body.clientWidth - qry.clientWidth)/2+"px";
	qry.style.top =(document.body.clientHeight - qry.clientHeight)/2+"px";
	qry.style.display="";
	
}
function AppletFrameLoaded()
{
	if (window.top.AppletFrame+''=='undefined'){
		return false;
	}
	if (window.top.AppletFrame.statForm+''=='undefined'){
		return false;
	}
	if (window.top.AppletFrame.statForm.finished.value!=1){
		return false;
	}
	return true;
}

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));
					}
					break;
				}
			}
			if (!found && formObj.elements[i].checked){
				arrVar[arrVar.length] = 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+"'");
}
function getImage(imageName){
	imageNum = document.images.length;
	for (ii=0;ii<imageNum;ii++){
		if (document.images[ii].name == imageName) return document.images[ii];
	}
	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 (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;

function RegisterSelect(selobj)
{
	if (!selectObjs)
		selectObjs = new Array();
	selectObjs[selectObjs.length] = selobj;
}

function FindSelectObject(name)
{
	var i;
	for (i=0;i<selectObjs.length;i++)
		if (selectObjs[i].name==name)
			return selectObjs[i];
	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)
{
	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.docKeyDown = "";
	this.docClick = "";
	this.scrollHandles = new Array();

	this.itemKey = new Array();
	this.itemValue = new Array();
	this.AddItem = TSLCT_AddItem;
	this.RemoveAll = TSLCT_RemoveAll;
	this.GetXMLData = TSLCT_GetXMLData;
	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;
	return this;
}

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;
	while (node!=null){
		this.AddItem(node.getAttribute("KEY"),node.getAttribute("VALUE"));
		node = node.nextSibling;
	}
}

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 (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 HighlightOption(name,i)
{
	var selobj = FindSelectObject(name);
	if (selobj=="")
		return;
	NormalOption(name,selobj.index1);
	var obj = document.all[selobj.idOn+"_"+i];
	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];
	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 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);
	}
}

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 _RebuildSelectOnDiv(selobj,divOn)
{
	var str = "";
	var i,num,v;
	var name = selobj.name;
	for (i=0;i<selobj.nItems;i++){
		k = selobj.itemKey[i];
		v = selobj.itemValue[i];
		v = EscapeHTMLString(v);
		str += "<DIV CLASS=\"selectItem\" ID=\""+selobj.idOn+"_"+i+"\" ONCLICK=\"OptionClicked('"+name+"',"+i+",'"+k+"');\" ONMOUSEOVER=\"HighlightOption('"+name+"',"+i+");\">"+v+"</DIV>";
	}
	divOn.innerHTML = str;
}

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);
	HighlightOption(selobj.name,selobj.selectedIndex);
	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 seltovalue(obj,obj2)
{
	document.all("dobj2").value=document.all("obj").value;
	
}
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+"\" ONCLICK=\"ToggleSelect('"+selname+"');\">";
	str += "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR><TD><INPUT CLASS=\"ednonedisable\" READONLY STYLE=\"cursor:default;\" NAME=\""+varV+"\" VALUE=\""+dispTxt+"\" SIZE=\""+size+"\" "+keydown+">";
	str += "</TD><TD WIDTH=\"1%\"><IMG SRC=\"/Min-Sale/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 EscapeHTMLString(str)
{
	str  = str+"";
	str = str.replace(/&nbsp;/g," ");
	str = str.replace(/&/g,"&");
	str = str.replace(/</g,"&lt;");
	str = str.replace(/>/g,"&gt;");
	str = str.replace(/"/g,"&quot;");
	str = str.replace(/ /g,"&nbsp;");
	return str;
}

function EscapeXMLString(str)
{
	str = str+'';
	str = str.replace(/&/g,"&");
	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 (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;*/
	if (v.value=='1'){
		document.images['imgCheck'+vname].src = "../img/check_off.gif";
		v.value ='0';
	}
	else{
		document.images['imgCheck'+vname].src = "../img/check_on.gif";
		v.value ='1';
	}

	
}

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 (IsDisabledVar(vname))
		return;

	var formObj = FindFormByVarName(vname);
	if (formObj==null)
		return;

	SetFormChanged(formObj);
	idx0 = -1;
	elems = formObj.all[vname];
	if (elems+''=='undefined')
		return;

	
	if (elems.tagName=='INPUT' && elems.length+''=='undefined'){
		elems.checked = true;
		document.images['imgRadio'+vname+'_'+elems.value].src = "/gentlecrm/img/radio_on.gif";
		return;
	}

	
	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 = "/gentlecrm/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 = "/gentlecrm/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 = "/gentlecrm/img/radio_off.gif";
	}
	formObj.elements[idx1].checked = true;
	document.images['imgRadio'+vname+'_'+val].src = "/gentlecrm/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;
        }
    }
    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;
		frm.elements[i-1].focus();
		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 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);

	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.submit();
	return false;
}

tableRowColorLight = "";
tableRowColorDark = "";
tableRowColorHighlight = "";
tableRowColorAnchor = "";
tableRowStartIdx = 0;
tableRowAnchorFunc = "";
tableRowAnchorIdx = -1;
tableRowDblClickFunc = "";
function HighlightTableRow()
{
	var obj = event.srcElement;
	while (obj.tagName!='TR')
		obj = obj.parentElement;
	obj.style.backgroundColor = tableRowColorHighlight;
}

function NormalTableRow()
{
	var obj = event.srcElement;
	while (obj.tagName!='TR')
		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!=""){
		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;
		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 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,'');
}

function fnCancelBubble() {
	event.cancelBubble = true
	
}


var g_szFormName_query;
var g_fnDocOnkeydown_query;

function fnDocOnkeydown_query() {
    if (window.event.keyCode==27)
		fnHideQueryDiv(g_szFormName_query);
}


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){
		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";
}


function fnHideQueryDiv(szFormName) 
{
	if (g_fnDocOnkeydown_query) 
	{
		document.onkeydown = g_fnDocOnkeydown_query;
		g_fnDocOnkeydown_query = "";
	}
	oDiv = eval("div" + szFormName);
	oDiv.style.visibility = "hidden";
}

function fnSetQueryDivPosition(oDiv, szFormName) 
{
	iMaxLength = 450;
	var obj = document.forms[szFormName];
	if (obj+"" != "undefined"){
		if (obj.advRegVarName.value.length > 0){
			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 = "auto";
			} else {
				oDiv.style.overflow = "visible";
				oDiv.style.width = "";
				oDiv.style.height = "";
			}
		}
	}
	oDiv.style.pixelLeft = (document.body.clientWidth - oDiv.offsetWidth)/2;
	oDiv.style.pixelTop = (document.body.clientHeight - oDiv.offsetHeight)/2;
}

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.RegisterVar(advReg,1);
	} else {
		oA.innerText = "-->>";
		oTR.style.display = "none";
		oHR.style.display = "none";
		if (advReg.length > 0)
			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()
{
	var elem = event.srcElement;
	if (elem.className=='menuRoot'){
		UnlockScreenWait();
		event.cancelBubble = false;
		return false;
	}
	return false;
}
