//===================================================================
//建立日期：2005年6月14日
//功能概述：WEB界面框架脚本库，每套不同的WEB界面框架对应的脚本库可能不同，
//需要由开发者自己提供。
//调用方法：在调用文件头引入即可，如下：
//<head>
//<script src="/js/framework.js" ></script>
//</head>
function DoLoadList()
{

}
function DoLoadEdit()
{
    
}
function getTable()
{
	return document.getElementById("mytable");
}
//===================================================================
//功能:判断界面上是否函数checkbox或radio控件，若有，则返回其、否则返回空
//输入参数:
//调用:
//===================================================================
function getControlType()
{
    try {
        var len = document.all.length;
        for(var i=0;i<len;i++)
        {
            if (document.all(i).type == "checkbox")         return "checkbox";
            if (document.all(i).type == "radio")            return "radio";
        }
	} catch (e)
	{
	    return "";
	}
	return "";
}

//===================================================================
//功能:获取表格的指定列的行记录串
//输入参数:colsIndexList:列号，多个用逗号分开，如selectRow(1,2,3)
//调用:
//===================================================================
function selectRow(colsIndexList)
{
    try {
        var mytable = getTable();
        var tmpColsIndexList = (typeof(colsIndexList) == 'undefined'?"":colsIndexList);
        var controlType =  getControlType();
        var rowCount = mytable.rows.length;
        var rowSeparator = "\n";
        var result = "";
        var row;
        for(var i=1;i<rowCount;i++)
        {
            row = rowCount>2?rowid[i-1]:rowid;
            if (row.checked)
            {
                if (controlType == "checkbox")
                    result += result == ""? getRowData(mytable.rows(i),tmpColsIndexList):rowSeparator+getRowData(mytable.rows(i),tmpColsIndexList);
                else if (controlType == "radio")
                {
                    return getRowData(mytable.rows(i),tmpColsIndexList);
                }
                else
                    return "";
            }
        }
        return result;
     } catch(e)
     {
        return "";
     }
}


function getRowData(row,colsIndexList)
{
    var tmpStr = (typeof(colsIndexList) == 'undefined'?"":colsIndexList);
    return (tmpStr == ""?getAllRowData(row):getPartRowData(row,tmpStr));
}

function getPartRowData(row,colsIndexList)
{
    try {
        var colSeparator = "\t";
        var colCount = row.cells.length;
        var result = "";
        var j=0;
        for(var i=1;i<colCount;i++)
        {
            if ((","+colsIndexList+",").indexOf(","+i+",")<0) continue;
            j++;
            result += j>1?colSeparator+row.cells(i).innerText:row.cells(i).innerText;
        }
        return result;
	} catch(e)
	{
	    return "";
	}
}

function getAllRowData(row)
{
	var colSeparator = "\t";
	var colCount = row.cells.length;
	var result = "";
	for(var i=1;i<colCount;i++)
	{
		result += i>1?colSeparator+row.cells(i).innerText:row.cells(i).innerText;
	}
	return result;
}

//===================================================================
//功能:获取动态表格的选中行的id
//获取顺序：本窗体，本窗体各frame, 父窗体各frame, 顶窗体各frame
//调用:
//===================================================================
function getRowID()
{
	var id = trim(this.rowId);
	if ( id == null || id == "" ) 
	{
		var frames = window.frames;
		for (i=0;i<frames.length ;i++ )
		{
			id = trim(frames[i].rowId);
			if ( id != null && id != "") break; 
		}
		if ( id == null || id == "" )
		{
			frames = parent.frames;
			for (i=0;i<frames.length ;i++ )
			{
			    id = trim(frames[i].rowId);
			    if ( id != null  && id != "") break; 
			}
		}
		if ( id == null || id == "" )
		{
			frames = window.top.frames;
			for (i=0;i<frames.length ;i++ )
			{
			    id = trim(frames[i].rowId);
			    if ( id != null  && id != "") break; 
			}
		}
	}
    return formatURL(id);
}

//格式化url的串
function formatURL(str)
{
    var arr = new Array("#");
    for(var i=0;i<arr.length;i++)
    {
       var regExp = new RegExp(arr[i],"gi");
       str = str.replace(regExp,escape(arr[i]));
    }
    return str;
}

//===================================================================
//功能:获取url串最后一个"/"后的内容
//输入参数:url
//调用:
//===================================================================
function getModuleFile(url)
{
    if (url == "") return "";
	var len1= url.lastIndexOf('/');
	var len2= url.indexOf('.');
	return url.substring(len1+1,len2);
}

//===================================================================
//功能:为url串追加参数id和id值（动态表格选中行的id）
//输入参数:url，未追加id的url串
//调用:
//===================================================================
function formatFile(url)
{
    var id = getRowID();
    if (id == "")
    {
        alert("没有选择记录！");
        return "";
    }
    var result = "";
    if (url.indexOf("?")== -1)
        result = url+"?id="+id;
    else
        result = url+"&id="+id;
     return result;
}

//===================================================================
//功能:默认打开窗口函数
//输入参数:
//url，打开窗口调用的url
//winname:窗口名称
//width:窗口的宽度,默认500px;
//height:窗口的高度,默认400px;
//style:窗口样式
//调用:
//===================================================================
function openWin(url,winname,width,height,style)
{
    try
    {
        if (typeof(winname) == 'undefined' || winname=="") winname = "LongTop_Win";
        if (typeof(width)  == 'undefined')  width = 500;
        if (typeof(height)  == 'undefined') height = 400;
        if (typeof(style) == 'undefined') style = "";
        if (typeof(url) == 'undefined' || url=="")
        {
            alert("没有指定要装载的文件！");
            return false;
        }
        var sUrl = url;
        var top  = Math.floor((screen.availHeight - height)/2) - 20;
        var left = Math.floor((screen.availWidth - width)/2) - 20;
        var sFeature="";
        if (style != "")
        {
            sFeature = style;
        }
        else
        {
            sFeature+="left="+left+",top="+top+",height="+height+",width="+width;
            sFeature+=",status=yes,directories=no,scrollbars=yes,toolbar=no,menubar=no,location=no,resizable=yes";
        }

       // var srcArr = new Array("?","&","=","/",".");//,"<",">","#","$","%","~","*","'","\(","\)","@","!","^","-","+","|","\\","{","}","[","]",";",":",",");
        //var desArr = new Array("_","_","_","_","_");//,"_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_","_");
       // alert( formatStrWidthArr(winname,srcArr,desArr) );
       var regExp = new RegExp("[%,#, ]","gi");    //去掉含有%,#以及空格的字符。
       winname = winname.replace(regExp,"");
       var win = window.open(sUrl,winname,sFeature);
       if (win != null)   win.focus();

    } catch (e)
    {
        processException(e);
    }
}

//===================================================================
//功能:默认删除函数
//输入参数:
//url，删除要调用的url,
//isConfirm:是否要出现删除确认提示，默认会出现提示
//调用:
//===================================================================
function DoDelete(url,text,isConfirm)
{
    try
    {
        if (typeof(isConfirm)  == 'undefined') isConfirm = true;
        if (typeof(url) == 'undefined' || url=="")
        {
            alert("没有指定 url！");
            return false;
        }
        var file = formatFile(url);
        if (file == "") return false;
        if (isConfirm && (!confirm("您确实要删除当前记录吗？\n\n删除后无法恢复。")))  return false;
        //hide_frame.location.href = file ;
        window.top.reloadModule(file,text);
    } catch (e)
    {
        processException(e);
    }
}

//===================================================================
//功能:在隐藏页提示删除信息的删除函数
//输入参数:
//url，删除要调用的url,
//调用: 工具栏文件调用
//===================================================================
function DoDele(url,text,isConfirm)
{
    try
    {
        if (typeof(isConfirm)  == 'undefined') isConfirm = true;
        if (typeof(url) == 'undefined' || url=="")
        {
            alert("没有指定 url！");
            return false;
        }
        var file = formatFile(url);
        if (file == "") return false;
        if (isConfirm && (!confirm("您确实要删除当前记录吗？\n\n删除后无法恢复。")))  return false;
        hide_frame.location.href = file ;
        //window.top.reloadModule(file,text);
    } catch (e)
    {
        processException(e);
    }
}

//===================================================================
//功能:默认打开（修改及新增）记录的函数。若模块内已有窗口打开，则切换到打开的窗口
//并显示当前选中的记录明细，若未打开，则先创建新窗口并显示当前选中的记录明细。
//输入参数:
//url:打开记录的url
//text:窗口的标题
//调用: 工具栏文件调用
//===================================================================
function DoOpen(url,text)
{
    try
    {
        var sUrl =  formatFile(url);
        if (sUrl == "") return;
        window.top.reloadModule(sUrl,text);
    }
    catch(e)
    {
        processException(e);
    }
}

//===================================================================
//功能:默认新增记录的函数。若模块内已有窗口打开，则切换到打开的窗口
//并显示新增界面，若未打开，则先创建新窗口并显示新增界面。
//输入参数:
//url:新增记录的url
//text:窗口的标题
//target:动态表格所在的frame名称
//调用: 工具栏文件调用
//===================================================================
function DoNew(url,text,target)
{
    window.top.reloadModule(url,text);
}

//===================================================================
//功能:查询文件调用的重置方法
//输入参数:
//iframe:列表文件所在的iframe对象
//调用: 重置查询条件调用
//===================================================================
function DoReset(myform)
{
    if (typeof(myform) == 'undefined') myform = frmSearch;
    try
    {
	    var objForm = myform ;
	    objForm.reset();
	} catch(e){
        processException(e);
	}
}

//===================================================================
//功能:查询文件调用的查询方法
//输入参数:
//iframe:列表文件所在的iframe对象
//调用: 查询文件调用
//===================================================================
function DoSearch(iframe)
{
    if (typeof(iframe) == 'undefined') iframe = "body_frame";
    showProcessBar(iframe);
    try
    {
        var objForm = frmSearch;
        objForm.submit();
    } catch(e) {
        processException(e);
    }
}

//===================================================================
//功能:在查询文件界面按回车要执行的方法，默认执行DoSearch()
//输入参数:
//method:回车要执行的方法名称
//调用: 查询文件调用
//===================================================================
function DoKeyPress(method)
{
    var execute =   (typeof(method) == "undefined")?"DoSearch()":method;
    if (window.event.keyCode == 13)  //Enter
    {
        eval(execute);
        window.event.returnValue = false;
    }
}

//===================================================================
//功能:显示/隐藏查询界面
//输入参数:frameset：工具栏文件所在父类的框架集的名称
//调用:工具栏文件的显示页按钮调用该函数
//===================================================================
function DoShowPage(frameset)
{
    try {
        if (typeof(frameset) == 'undefined')
            frameset = parent.content_frameset;
        if (frameset.cols=='0,100%')
        {
            btnPage.title="单击隐藏左边页";
            imgPage.src="../images/vw_max.gif";
            frameset.cols = frameset.oldCols;
        }
        else
        {
            btnPage.title="单击显示左边页";
            imgPage.src="../images/vw_normal.gif";
            frameset.oldCols = frameset.cols;
            frameset.cols = '0,100%';
        }
	} catch(e)
	{
        processException(e);
	}
}

//===================================================================
//功能:设置查询文件内隐藏变量的当前页号、总页数、并提交查询。
//输入参数:
//sValue:第一页(First)，上一页(Prev)，下一页(Next),最后一页(Last)
//调用:列表文件调用装载完毕后调用
//===================================================================
function DoPage(sValue)
{
	try
	{
        var objForm = document.pagesForm;
		var intPage=parseInt(objForm.intCurrentPage.value);
		var intTotalPages=parseInt(objForm.intTotalPages.value);
		switch (sValue) {
			case "First":
			{
				if (intPage>1)
				{
                    showProcessBar(this); //显示进度条
					objForm.intCurrentPage.value=1;
					objForm.submit();
				}
				break;
			}
			case "Prev":
			{

				if (intPage>1)
				{
                    showProcessBar(this); //显示进度条
					objForm.intCurrentPage.value=intPage-1;
					objForm.submit();
				}
				break;
			}
			case "Next":
			{

				if (intPage<intTotalPages)
				{
                    showProcessBar(this); //显示进度条
					objForm.intCurrentPage.value=intPage+1;
					objForm.submit();
				}
				break;
			}
			case "Last":
			{

				if (intPage<intTotalPages)
				{
                    showProcessBar(this); //显示进度条
					objForm.intCurrentPage.value=intTotalPages;
					objForm.submit();
				}
				break;
			}
			case "ListAll":
			{
			    if (intTotalPages > 1)
			    {
                    showProcessBar(this); //显示进度条
                    objForm.intCurrentPage.value=1;
                    objForm.intTotalPages.value=-1; //用来做标志判断
                    objForm.submit();
                }
				break;
			}
		}
	}
	catch (e)
	{
        processException(e);
	}
}

//===================================================================
//功能:设置列表文件及查询文件的页号、总页数。
//输入参数:
//totalPage:总页数
//currPage:当前页号
//调用:列表文件调用装载完毕后调用
//===================================================================
function setPage(totalPage,currPage)
{
    var intCurrPage=parseInt(currPage);
    var intTotalPages=parseInt(totalPage);
    if (intTotalPages==0)  currPage = "0";
    try {
        
        if(document.getElementById("spnTotalPages")){
        	document.getElementById("spnCurrPage").innerText = currPage;
        	document.getElementById("spnTotalPages").innerText = totalPage;
        }
        document.getElementById("firstPage").disabled = true;
        document.getElementById("prevPage").disabled = true;
        document.getElementById("nextPage").disabled = true;
        document.getElementById("lastPage").disabled = true;
        document.getElementById("listAll").disabled = true;
        if (intCurrPage>1)
        {
            document.getElementById("firstPage").disabled = false;
            document.getElementById("prevPage").disabled = false;
        }

        if (intCurrPage<intTotalPages)
        {
            document.getElementById("nextPage").disabled = false;
            document.getElementById("lastPage").disabled = false;
        }
        if (intTotalPages > 1)
        {
            document.getElementById("listAll").disabled = false;
        }
        //if (intTotalPages==0) alert("没有查询到符合条件的记录！");
    } catch(e) {
        processException(e);
    }
}

//===================================================================
//功能:如果返回结果大于或等于指定的记录数，弹出提示
//输入参数:
//maxResults:指定的记录数
//调用:列表文件调用装载完毕后调用
//===================================================================
function setRecordLimit(maxResults)
{
    if (maxResults > 0)
    {
        var hint = "本次查询结果多于"+maxResults+"条，要缩小查询结果，请输入更多或更精确的查询条件！";
        document.getElementById("pageMsgSpan").innerHTML = hint;
        document.getElementById("pageMsgSpan").style.display = "";
    }
}

//===================================================================
//功能:设置列表文件的开始记录数、结束记录数、总记录数
//输入参数:fromIndex:开始记录数,toIndex:结束记录数,totalRecords:总记录数
//调用:列表文件调用装载完毕后调用
//===================================================================
function setRecord(fromIndex,toIndex,totalRecords)
{
    try {
    	if (document.getElementById("spnFromIndex")){
    		document.getElementById("spnFromIndex").innerText = fromIndex;
	        document.getElementById("spnToIndex").innerText = toIndex;
	        document.getElementById("spnTotalRecords").innerText = totalRecords;
    	}
    } catch(e)
    {
        processException(e);
    }
}
//===================================================================
//功能:在删除或更新记录后刷新列表
//调用:用户操作完成后调用
//===================================================================
function reloadList() {
	var frm = getPagesForm();
	if ( typeof(frm) != "undefined" )
	{
        frm.submit();
	} else {
        window.top.reloadModule(window.top.getTabPage().initURL)
	}
}
//===================================================================
//功能:取得分页显示中分页请求的form
//调用:用户操作完成后调用
//===================================================================
function getPagesForm() {
	var frm = document.pagesForm;
	if ( typeof(frm) == "undefined" )
	{
		var frames = window.frames;
		for (i=0;i<frames.length ;i++ )
		{
			frm = frames[i].document.pagesForm;
			if ( typeof(frm) != "undefined" ) break; 
		}
		if ( typeof(frm) == "undefined" ) {
		    frames = parent.frames;
		    for (i=0;i<frames.length ;i++ )
		    {
			    frm = frames[i].document.pagesForm;
			    if ( typeof(frm) != "undefined" ) break;
		    }
		}
		if ( typeof(frm) == "undefined" ) {
		    frames = parent.parent.frames;
		    for (i=0;i<frames.length;i++ ) {
		        frm = frames[i].document.pagesForm;
		        if ( typeof(frm) != "undefined" ) break;
			    for (j=0;j<frames[i].frames.length;j++) {
			        frm = frames[i].frames[j].document.pagesForm;
			        if ( typeof(frm) != "undefined" ) break; 
			    }
		    }
		}
		if ( typeof(frm) == "undefined" ) {
		    frames = window.top.frames;
		    for (i=0;i<frames.length ;i++ )
		    {
			    frm = frames[i].document.pagesForm;
			    if ( typeof(frm) != "undefined" ) break; 
		    }
		}
	}
	return frm;
}
//简写常用方法
function $ (elementId) {
	return document.getElementById(elementId);
}



function doOpenByVMID(_openUrl){
	var VMID = "";
	var framesObject = window.frames["body_frame"];
	if (framesObject != null && framesObject != ""){
		var _objVMID = framesObject.VMID;
		if (_objVMID != null && _objVMID != ""){
			if (_objVMID.length == undefined && _objVMID.checked){
				VMID = _objVMID.value;
			}else{
				for ( var i = 0; i < _objVMID.length; i++ ){
					if (_objVMID[i].checked){
						VMID = _objVMID[i].value;
						break;
					}
				}
			}
		}
	}
	
	if (VMID == ""){
		alert("请先选择对应的记录后再打开。");
	} else {
		var _locationURL = _openUrl + "&mVMID="+VMID;
		location.href = _locationURL;
	}
}