﻿
function gtrim(txt) {
    return txt.replace(/(^\s*)|(\s*$)/g, "");
}
function isblank(txt) {
    return gtrim(txt) == "";
}
//分页控件校验页索引的函数
function doCheck(el, maxIndex)
{
	var r = new RegExp('^\\s*(-?\\d+)\\s*$');
	if(r.test(el.value))
	{
		var value = parseInt(RegExp.$1);
		if(value < 1 || value > maxIndex)
		{
			alert('页数超出范围！');
			el.select();
			el.focus();
			return false;
		}
		return true;
	}
	alert('页索引无效！');
	el.select();
	el.focus();
	return false;
}
              
// created by chenp, 2005.03.16
function getCheckedRecords(form) 
{
    var checked = new Array();
    if(form == undefined || form == null) 
        return checked;
        
    for(var i = 0; i < form.all.length; ++i) {
        var input = form.all[i];
        if(input.tagName.toLowerCase() != "input")
            continue;
        if(input.type == "checkbox" && input.name.match(/^__IsEntityChecked_/)) { 
            if(input.checked)
                checked.push(input.parentNode.parentNode);
        } 
    }
 
    return checked;
}

function setCheck(chk,tb)
{
	var inputs = tb.getElementsByTagName("INPUT");
	var result = true;
	for( var i=0;i<inputs.length;i++)
	{
		var txt = inputs[i];
		if( txt.type != "checkbox")
			continue;
		if( txt.id == "chkAll" )
			continue;
		result &= txt.checked;
	}
	document.getElementById("chkAll").checked = result;
}

//点击列表框表头上的CheckBox选择所有列表的CheckBox
//element : 表格的ID
//value 表头CheckBox的值

function checkedAllCheckbox(element, value)
{
	for(i = 0;i < element.all.length;i++)
	{
		var obj = element.all(i);
		if(obj.type == 'checkbox' && obj.isDisabled == false)
		{
			obj.checked = value;
		}
	}
}

// 列表中的checkbox状态改变的时候，设置全部选中的checkbox的状态
function setSelectAllState(element, selectAll)
{
	var result = true;
	for(i = 0;i < element.all.length;i++)
	{
		var obj = element.all(i);
		if(obj.type == 'checkbox' && obj.isDisabled == false)
		{
			result &= obj.checked;
			if(result == false)
				break;
		}
	}
	selectAll.checked = result;
}


function AppendVerifyKey2Url(url)
{
    //return url + (url.indexOf("?") < 0 ? "?" : "&") + "p=" + g_P + "&m=" + g_M;
    return url + (url.indexOf("?") < 0 ? "?" : "&") + "1=1";
}

//根据对象ID字符串，返回对象。
function $G(elementName)
{
    return document.getElementById(elementName);
}

//根据对象的name字符串返回，对象集合
function $N(elementName)
{
    return document.getElementsByName(elementName);
}

//根据标记名称返回对象集合。
function $T(elementName)
{
    return document.getElementsByTagName(elementName);
}


//获取页面中，但选框列表选中的值
function $getCheckedRadio(elementName)
{
    var radios=$N(elementName);
    var values="";
    for(var i = 0;i < radios.length;i++)
    {
        if (radios[i].checked)
        {
            values=radios[i].value;
            break;
        }        
    }
    return values;
}





    /*
        添加一个函数到onload事件中
        参数methodName表示函数名称，字符串类型的。
    */
    function $addLoadEventHandler(methodName)
    {
        $addElementEventHandler(window,"onload",methodName);
    }
    
    /*
        添加一个方法到到一个对象的一个的一个事件中
        element 要设置的对象  
        eventName 事件名称， 字符串类型的。
        methodName表示函数名称，字符串类型的。
    */
    function $addElementEventHandler(element,eventName,methodName)
    {
     if (document.all)
     {
            element.attachEvent(eventName,new Function(methodName));
     }
     else
     {
            if (eventName.substring(0,2)=="on") eventName=eventName.substring(2);
            element.addEventListener(eventName,new Function(methodName),true);
     }
    }
    
/******************下面的方法是为了防止表单重复提交****************************/    

    //修改当前页面所有表单的提交事件
    function $setFormCheckSubmited()
    {
        var frms=document.forms;
        for(var i=0;i<document.forms.length;i++)
        {
            if(typeof(frms[i].submited) == 'undefined'&& frms[i].getAttribute('CheckSubmited') !='false')//防止重复加载自定义的提交事件
            {
                frms[i].baseSubmit = frms[i].submit;
                frms[i].submited = false;
                frms[i].submit= new Function("$submitForm(this)");
                $addElementEventHandler(frms[i],"onsubmit","return $submitForm(document.forms["+i+"])");
            }
        }
    }
    
    //提交一个表单，如果当前表单已经提交，那么就不会继续提交该表单
    function $submitForm(frm)
    {
        if (frm.submited) return false;
        frm.submited=true; 
        frm.baseSubmit();
        return false;//防止onsubmit事件继续提交表单
    }
/*****************************end*************************************************/

//表单操作对象，对表单对象进行的一些操作封装在这个类里面
function FormOperation(formObject)
{
    this.operatorForm = formObject
    FormOperation.prototype.checkAll=function(checkState)
    {
        var e = this.operatorForm.getElementsByTagName('input');
        for(var i = 0; i < e.length; i++)
        {
            if (e[i].type == "checkbox") e[i].checked = checkState;
        }
    }
    
    FormOperation.prototype.hasChecked = function()
    {
        var e=this.operatorForm.elements;
        for(var i = 0; i < e.length; i++)
        {
            if (e[i].type == "checkbox" && e[i].checked && e[i].value !="on" && e[i].value.length>0) {return true;}
        }
        return false;
    }
    
    FormOperation.prototype.submit= function()
    {
        this.operatorForm.submit();
    }
}

function hasChecked(formObj) {
    var e = formObj.elements;
    for (var i = 0; i < e.length; i++) {
        if (e[i].type == "checkbox" && e[i].checked && e[i].value != "on" && e[i].value.length > 0) { return true; }
    }
    return false;
}


//表格操作对象，对表格进行的一些操作封装在这个类里面function TableOperation(tableObject)
{
    //计算某列的值的总和
    TableOperation.prototype.sumCol=function(colIndex)
    {
        var count = 0;
        for (var i = 0; i < tableObject.rows.length-1; i++)
        {
            if(tableObject.rows[i].cells[colIndex])
            count += isNaN(parseInt(tableObject.rows[i].cells[colIndex].innerText)) ? 0 : parseInt(tableObject.rows[i].cells[colIndex].innerText);
        }
        return count;
    }
    
    //计算某行总和
    TableOperation.prototype.sumRow=function(rowIndex)
    {
        var count = 0;
        var r = tableObject.rows[rowIndex];
        for (var i = 0; i < r.cells.length-1; i++)
        {
            count += isNaN(parseInt(r.cells[i].innerText)) ? 0 : parseInt(r.cells[i].innerText);
        }
        return count;
    }
    
    //计算某列的值的平均数
    TableOperation.prototype.avgCol=function(colIndex)
    {
        var count = 0;
        var j=0;
        for (var i = 0; i < tableObject.rows.length-1; i++)
        {
            if(tableObject.rows[i].cells[colIndex])
            {
                if (!isNaN(parseInt(tableObject.rows[i].cells[colIndex].innerText))) j++;
                count += isNaN(parseInt(tableObject.rows[i].cells[colIndex].innerText)) ? 0 : parseInt(tableObject.rows[i].cells[colIndex].innerText);
            }
        }
        return count/j;
    }    
    
    TableOperation.prototype.formatAsTab = function(currentPic,backGroundPic,width,height)
    {
        tds = tableObject.getElementsByTagName("td");
        for(var i=0; i<tds.length; i++)
        {
            if (tds[i].innerText == "" || tds[i].getAttribute("IsTab") != "true")
                continue;
            
            if (tds[i].getAttribute("TabStyle") == "selected" || tds[i].getAttribute("Selected") == "true")
            {
                tds[i].background = currentPic;
                tds[i].style.color = "#0000aa";
                tds[i].style.fontWeight = 'bold';
                tds[i].style.cursor="hand";
            }
            else
            {
                tds[i].background = backGroundPic;
                tds[i].style.cursor="hand";                
                $addElementEventHandler(tds[i],"onmouseover","if(event.srcElement.tagName=='TD') event.srcElement.background = '"+currentPic+"'");
                $addElementEventHandler(tds[i],"onmouseout","if(event.srcElement.tagName=='TD') event.srcElement.background = '"+backGroundPic+"'");
            }
        }
    }
    
    TableOperation.prototype.formatAsSimpleTab = function(currentColor,backGroundColor,width,height)
    {
        tds = tableObject.getElementsByTagName("td");
        for(var i=0; i<tds.length; i++)
        {
            if (tds[i].innerText == "" || tds[i].getAttribute("IsTab") != "true" )
                continue;
            tds[i].style.cursor="hand";
            tds[i].style.padding = "6px";
            tds[i].style.fontSize = "10pt";
            tds[i].style.border = "1px solid #cccccc";
            
            tds[i].style.borderBottomWidth ="0px";//去掉下面的边框
            
            if(i != tds.length-1)
                tds[i].style.borderRightWidth ="0px";//如果不是最后一个，去掉右边边框
                
            if (tds[i].getAttribute("TabStyle") == "selected" || tds[i].getAttribute("Selected") == "true")
            {
                tds[i].style.background = currentColor;
                tds[i].style.fontWeight ="bold";
            }
            else
            {
                tds[i].style.background = backGroundColor;             
                $addElementEventHandler(tds[i],"onmouseover","if(event.srcElement.tagName=='TD') event.srcElement.style.background = '"+currentColor+"'");
                $addElementEventHandler(tds[i],"onmouseout","if(event.srcElement.tagName=='TD') event.srcElement.style.background = '"+backGroundColor+"'");
            }
        }
    } 
}

//下拉列表框操作对象
function SelectOperater(obj)
{
    //待操作的select对象
	this.selectObject = obj;
	//添加列表项
	this.add = function(text,value,index)
	{
		var op = new Option(text,value);
	    if (index == undefined)
    		this.selectObject.add(op,this.selectObject.options.length);
    	else
	        this.selectObject.add(op,index);
	}
	//删除列表项
	this.removeOption = function(optionIndex)
	{
	    if (optionIndex == undefined)
	    {
		    for(var i = this.selectObject.length-1;  i>-1; i--)
		    {
			    if (this.selectObject.options[i].selected)
				    this.selectObject.remove(i);
		    }
		}
		else
		{
		   this.selectObject.remove(optionIndex); 
		}
	}
    //把另一个select对象中选中的项添加到自身
	this.addFromSelect = function(obj)
	{
		for(var i =0 ; i<obj.options.length; i++)
		{
			if (obj.options[i].selected)
			{
				this.selectObject.add(new Option(obj.options[i].text, obj.options[i].value), this.getIndex(obj.options[i].value));
			}
		}
	}
	
	//获取某个值在列表中的位置，按照value值的大小，从小到大排序
	this.getIndex = function(id)
	{
		for(var i =0 ; i<this.selectObject.options.length; i++)
		{
		    if (parseInt(this.selectObject.options[i].value) > id) break;
        }
        return i;
	}
	
	//清空列表项
	this.clear = function()
	{
	    for(var i = this.selectObject.length-1;  i>-1; i--)
	    {
		    this.selectObject.remove(i);
	    }
	}
	
	//根据一个二维数组初始化一个list
	this.init = function(list, selectedValue)
	{
	    this.clear();
	    for(var i=0; i<list.length; i++)
	    {
	        this.add(list[i][1],list[i][0]);
	    }
	    
	    if (i>0)
	    {
	        this.add("--不选--","-1",0);
	        this.setValue(selectedValue ? selectedValue : -1);
	        this.selectObject.style.display="";
	    }
	    else
	    {
	        this.selectObject.style.display="none";
	    }
	    
	    
	}
	
	this.setValue = function(value){this.selectObject.value = value;}
	
}

//pang，关键字集合用逗号分开，对象集合使用getElementsByTagName获取的
//把一个对象集合中的内容按照一个关键字集合格式化
function formatKeyWords(keyWords,objs)
{
    var keyWordsList = keyWords.split(',');

    for (var j=0; j<objs.length; j++)
    {
      for(var i=0;i<keyWordsList.length;i++)
      {
        var r=new RegExp(keyWordsList[i],"g");
        objs[j].innerHTML = objs[j].innerHTML.replace(r,'<font color=red>' + keyWordsList[i] + '</font>');
      }
    }
}

//显示指定数量的星星
function showStars(num)
{
  for(var i=0;i<num;i++){
    document.write('<img src=/image/star.gif />');
  }
}

//退出登录
function signout()
{
  if(top)
    top.location.href='signout.oxml?__ReturnUrl='+top.location.href;
  else
    top.location.href='signout.oxml';
}

function $setSelectDefaultValue()
{
   var objs=document.getElementsByTagName("SELECT");
   for(var i=0;i<objs.length;i++)
        if(objs[i].getAttribute("defaultValue") && objs[i].getAttribute("defaultValue").length>0) 
            objs[i].value=objs[i].getAttribute("defaultValue");
}

var notLoginMsg = '您还没有登录，请登录后进行该操作！';
var notHasDog  = '您未验证加密锁，没有权限下载，请您到个人中心进行验证！';
var canNotDeleteIsAccepted = '最佳答案不能进行删除操作！';

//var $languagePackage;
//try
//{
//    $languagePackage = GetLanguagePackage('LanguagePackage_Chs');
//}
//catch(e)
//{
//    
//}

//调用防止表单重复提交代码
//$addLoadEventHandler("$setFormCheckSubmited()");
//调用设置select对象默认值代码
$addLoadEventHandler("$setSelectDefaultValue()");

//lib++2008-07-25{
function loadJsCssFile(filename, filetype){
    if (filetype=="js"){ //如果是.js文件
    var fileref=document.createElement('script');
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src",filename);
    }
    else if (filetype=="css"){ //如果是.css文件
    var fileref=document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href",filename);
    }
    if (typeof fileref != "undefined")
    document.getElementsByTagName("head")[0].appendChild(fileref)
}
function loadJsFile(filename){
    var fileref=document.createElement('script');
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src",filename);   
    if (typeof fileref != "undefined")
    document.getElementsByTagName("head")[0].appendChild(fileref)
}
function loadCssFile(filename){
    var fileref=document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href",filename);
    if (typeof fileref != "undefined")
    document.getElementsByTagName("head")[0].appendChild(fileref)
}

function loadPlugInFile(name)
{
    loadJsFile("/script/"+name+".js","js");
    loadCssFile("/css/"+name+".css","csss");
}
 
function clearFtpUrlHeader(s) {
    return s.replace(/ftp:\/\/(.+?)\//, '');
}
//}
//替换URL中某个参数
function replaceUrlParam(url, name, value) {
    if (new RegExp("[\?]", "gi").exec(url) == null)
        return url + "?" + name + "=" + value;

    var rg1 = new RegExp(name + "=[^&]*", "gi");
    var rg2 = new RegExp("[&]{2,}", "gi");
    var result, returl = url;

    while ((result = rg1.exec(url)) != null) {
        returl = returl.replace(result, "");
    }
    while ((result = rg2.exec(url)) != null) {
        returl = returl.replace(result, "");
    }
    return (returl + "&" + name + "=" + value);
} 