﻿//处理回车(方法放到onkeydown事件里面就ok，如果还有其他的控件需要这个功能的在case里面加起就是)
function onformkeydown()
{
    if(event.keyCode==13)
    {
        var o=event.srcElement;
        //alert(o.type);
        switch(o.type)
        {
            case "text":
                event.keyCode=9;
                break;
            case "textarea":
                break;
            case "select-one":
                event.keyCode=9;
                break;
        }
    }
}

/*
 * ============================================================================
 * @author:     Weber Liu
 * @version:    v2.0
 * ---------------------------------------------
 * $UpdateAuthor: xujianbo $
 * $Date: 2009-04-02 (星期四) $
 * $Id: common.js 1837 2009-04-02 xujianbo $
*/
var Browser = new Object();

Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);

var Utils = new Object();

Utils.htmlEncode = function(text) 
{
	return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

Utils.trim = function( text ) {
	return text.replace(/^\s*|\s*$/g, "");
}

Utils.$ = function(id){
    return document.getElementById(id);
}

//判断用户名 只能为_ 字母 和数字
Utils.IsUserName = function( text ) {
    var reg = /^[\w\d]*$/;
	return reg.test(val);
}

Utils.isNull = function( text ) {
	if(text == "" || text == null || text == "null" || text == "NULL")
	{
	    return true;
	}
	else 
	{
	    return false;
	}
}

Utils.isHttpUrl = function(val){
    var reg = "^http://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/\w+/$";
    return reg.test(val);
}

Utils.isIDCard15 = function(val){
    var reg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
    return reg.test(val);
}

Utils.isIDCard18 = function(val){
    var reg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/;
    return reg.test(val);
}


Utils.isNumber = function(val) {
    var reg = /[\d|\.|,]+/;
    return reg.test(val);
}

Utils.isInt = function(val) {
    var reg = /\d+/;
    return reg.test(val);
}

//是否为合法电子邮件地址
Utils.isEmail = function( email )
{
    var reg = /([\w|_|\.|\+]+)@([-|\w]+)\.([A-Za-z]{2,4})/;

    return reg.test( email );
}

Utils.fixEvent = function(e) 
{
    var evt = (typeof e == "undefined") ? window.event : e;
    return evt;
}

Utils.srcElement = function(e)
{
    if (typeof e == "undefined") e = window.event;
    var src = document.all ? e.srcElement : e.target;

    return src;
}

Utils.isTime = function(val)
{
	var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/;

	return reg.test(val);
}

//计算字符串长度，一个双字节字符长度计2，ASCII字符计1
//by lcy 
Utils.lengthw = function(_str)
{
    return  _str.replace(/[^\x00-\xff]/g,"rr").length;
}
//转换为大写
Utils.toUpper = function(_str)
{
    return _str.toUpperCase();
}
//转换为小写
Utils.toLower = function(_str)
{
    return _str.toLowerCase();
}
//去除左边的空格
Utils.ltrim = function(_str)
{
    return _str.replace(/(^\s*)/g, "");
}
//去除右边的空格
Utils.rtrim = function(_str)
{
    return _str.replace(/(\s*$)/g, "");
}

//是否为空字符串
Utils.isEmpty = function(_str)
{
	var tmp_str = _str.replace(/^\s*|\s*$/g, "");
	return tmp_str.length == 0; 
}
//判断是否为中文
Utils.isChinese = function(_str)
{
    return /^[\u4E00-\u9FA5]{0,25}$/.test(_str);
}
//是否为合法ip地址
Utils.isIpAddress = function(_str)
{
    if (_str.length == 0)
        return (false);
    reVal = /^(\d{1}|\d{2}|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(\d{1}|\d{2}|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(\d{1}|\d{2}|[0-1]\d{2}|2[0-4]\d|25[0-5])\.(\d{1}|\d{2}|[0-1]\d{2}|2[0-4]\d|25[0-5])$/;
    return (reVal.test (_str));    
}
//是否邮政编码(中国)
Utils.isPostalCode = function(_str)
{
    var regTextPost = /^(\d){6}$/;
    return regTextPost.test(_str);
}


function rowindex(tr)
{
    if (Browser.isIE)
    {
        return tr.rowIndex;
    }
    else
    {
      table = tr.parentNode.parentNode;

      for (i = 0; i < table.rows.length; i++)
      {
          if (table.rows[i] == tr)
          {
              return i;
              break;
          }
      }
    }
}


      

function checkItem(e, allName)
{
	var all = document.getElementsByName(allName)[0];

	if(!e.checked) all.checked = false;
	else
	{
		var aa = e.form.elements;
		for (var i=0; i<aa.length; i++)
		{
			if (aa[i].type=="checkbox" && aa[i].id!="allChk" && aa[i].id!=e.id)
				{
			if(!aa[i].checked) return;
				}
		}
		all.checked = true;
	}
}


function SelectAll(tempControl)
{
//将除头模板中的其它所有的CheckBox取反 

	var theBox=tempControl;
	xState=theBox.checked;    

	elem=theBox.form.elements;
	for(i=0;i<elem.length;i++)
		if(elem[i].type=="checkbox" && elem[i].id!=theBox.id)
		{
			if(elem[i].checked!=xState)
			elem[i].click();
		}
} 

        function $Len(str,length){
           var temp = str.substring(0,length);
           var count = 0;
           var outString = '';	
           var isMore = false;
           var lst = /[u00-uFF]/;
            for(var i= 0;i<temp.length; i++){
              if(!lst.test(temp.charAt(i))){
                  count += 2;
              } else {
                  count += 1;
              }   
	          if( count <= length)
	              outString += temp.charAt(i);
	           else if( count>length){
	            isMore = true; 
	            break;  
	           }	                       
           }
           
 	        if(count<=length){
	           outString = temp;
	        }
	       var reObj = {"str":outString, "isMore":isMore };      
           return reObj;
        }	


       function $IsCheck(id, length, message){
         var isShow = false;
         if(Utils.$(id).value.length>length){
            isShow = true;
         }    
         var obj = $Len(Utils.$(id).value, length);         
         isShow = isShow?isShow:obj.isMore;
         if(isShow){
           Utils.$(id).value=obj.str;
           var showMessage = message+"：输入不能超过"+length.toString()+"个字符";
           alert(showMessage);
         }
       }
       
        function addLoadEvent(func){
	        var oldonload = window.onload;
	        if (typeof window.onload != 'function') {
		        window.onload = func;
	        } else {
		        window.onload = function(){
			        oldonload();
			        func();
		        }
	        }
        }       

function GetOffsetLeft (el, p) {
    var _l = el.offsetLeft;
    var _p = el.offsetParent;
    while (_p) {
        if (_p == p) break;
        _l += _p.offsetLeft;
        _p = _p.offsetParent;
    }
    return _l;
};

function showMenu (obj,baseID, divID) {   
    baseID = Utils.$(baseID);
    divID  = Utils.$(divID);
    var l = GetOffsetLeft(baseID)-GetOffsetLeft(Utils.$("nav_head"))-30;    
    var p_left = GetOffsetLeft(obj)-GetOffsetLeft(baseID)+obj.scrollWidth/2;
    if (showMenu.timer) clearTimeout(showMenu.timer);
    hideCur();
    divID.style.display = 'block';

    var tmp = (l+30+GetOffsetLeft(Utils.$("nav_head"))+divID.scrollWidth)-1127;
    if(tmp>0){
      l = l - tmp;
      p_left = p_left + tmp;
    }
    divID.style.left = l + 'px'; 
    divID.children[0].style.left = p_left + 'px';
    
    showMenu.cur = divID;

    if (! divID.isCreate) {
        divID.isCreate = true;
        divID.onmouseover = function () {
            if (showMenu.timer) clearTimeout(showMenu.timer);
	        hideCur();
            divID.style.display = 'block';
            divID.style.paddingleft = l + 'px'; 
            divID.children[0].style.left = p_left + 'px';
        };

        function hide () {
            showMenu.timer = setTimeout(function () {divID.style.display = 'none';}, 2000);
        }

        divID.onmouseout = hide;
        baseID.onmouseout = hide;
    }
    function hideCur () {
        showMenu.cur && (showMenu.cur.style.display = 'none');
    }
}    
         
function FourFocusScorll(thisName,_height,_ifocus, _ifocus_piclist, _ifocus_btn, _ifocus_tx){
	var atuokey = false;
	var objName = thisName;
	var ifocus = _ifocus;
	var ifocus_piclist = _ifocus_piclist;
	var ifocus_btn = _ifocus_btn;
	var ifocus_tx = _ifocus_tx;
	var imgHeight = _height;
  this.moveElement = function(elementID, final_x, final_y, interval){
	  if (!document.getElementById) return false;
	  if (!Utils.$(elementID)) return false;
	  var elem = Utils.$(elementID);
	  if (elem.movement) {
	    clearTimeout(elem.movement);
	  }
	  if (!elem.style.left) {
	    elem.style.left = "0px";
	  }
	  if (!elem.style.top) {
	    elem.style.top = "0px";
	  }
	  var xpos = parseInt(elem.style.left);
	  var ypos = parseInt(elem.style.top);
	  if (xpos == final_x && ypos == final_y) {
			return true;
	  }
	  if (xpos < final_x) {
	    var dist = Math.ceil((final_x - xpos)/10);
	    xpos = xpos + dist;
	  }
	  if (xpos > final_x) {
	    var dist = Math.ceil((xpos - final_x)/10);
	    xpos = xpos - dist;
	  }
	  if (ypos < final_y) {
	    var dist = Math.ceil((final_y - ypos)/10);
	    ypos = ypos + dist;
	  }
	  if (ypos > final_y) {
	    var dist = Math.ceil((ypos - final_y)/10);
	    ypos = ypos - dist;
	  }
	  elem.style.left = xpos + "px";
	  elem.style.top = ypos + "px";
	  var repeat = objName+".moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
	  elem.movement = setTimeout(repeat,interval);  	
  };
  this.classNormal = function(iFocusBtnID,iFocusTxID){
		var iFocusBtns= Utils.$(iFocusBtnID).getElementsByTagName('li');
		var iFocusTxs = Utils.$(iFocusTxID).getElementsByTagName('li');
		for(var i=0; i<iFocusBtns.length; i++) {
			iFocusBtns[i].className='normal';
			iFocusTxs[i].className='normal';
		}  	
  };
  this.classCurrent = function(iFocusBtnID,iFocusTxID,n){
		var iFocusBtns= Utils.$(iFocusBtnID).getElementsByTagName('li');
		var iFocusTxs = Utils.$(iFocusTxID).getElementsByTagName('li');
		iFocusBtns[n].className='current';
		iFocusTxs[n].className='current';  	
  };
  this.iFocusChange = function(){
		if(!Utils.$(ifocus)) return false;
		Utils.$(ifocus).onmouseover = function(){eval(objName+".atuokey = true;");};
		Utils.$(ifocus).onmouseout = function(){eval(objName+".atuokey = false;");};
		var iFocusBtns = Utils.$(ifocus_btn).getElementsByTagName('li');
		var listLength = iFocusBtns.length;
		
		for(var i = 0;i<listLength;i++){
		        iFocusBtns[i].name = "tmp"+i;
				iFocusBtns[i].onmouseover = function() {
				  eval("var i = this.name.replace(/tmp/g,'');"+objName+
				  ".moveElement('"+ifocus_piclist+"',0,0-imgHeight*i,5);"+
					objName+".classNormal('"+ifocus_btn+"','"+ifocus_tx+"');"+
					objName+".classCurrent('"+ifocus_btn+"','"+ifocus_tx+"',i);");
				}
	   } 
  };
  
  this.autoiFocus = function(){
	 	if(!Utils.$(ifocus)) return false;
    if(eval(objName+'.atuokey')){
     return;
   }	 	
		var focusBtnList = Utils.$(ifocus_btn).getElementsByTagName('li');
		var listLength = focusBtnList.length;
		for(var i=0; i<listLength; i++) {
			if (focusBtnList[i].className == 'current') var currentNum = i;
		}
      this.setCurrent(currentNum,listLength);
 			
  };
  
  this.setCurrent = function(curNum, len){
  	for(var i = 0;i<len;i++){
  		if(curNum==i&&len!=i+1){
  		this.moveElement(ifocus_piclist,0,0-255*(i+1),5);
  			this.classNormal(ifocus_btn,ifocus_tx);
  			this.classCurrent(ifocus_btn,ifocus_tx,i+1);
  		}
  	}
  	for(var i = 1;i<len;i++){
  		if(curNum==i&&len==i+1||curNum==len-1){
				this.moveElement(ifocus_piclist,0,0,5);
				this.classNormal(ifocus_btn,ifocus_tx);
				this.classCurrent(ifocus_btn,ifocus_tx,0);
  		}
  	}  	
  }
  
  this.run = function(timeNum){
  	setInterval(objName+'.autoiFocus()',timeNum);
  };
  this.loadChange = function(){
  	addLoadEvent(this.iFocusChange);
  }
}


    
        function $Len(str,length){
           var temp = str.substring(0,length);
           var count = 0;
           var outString = '';	
           var isMore = false;
           var lst = /[u00-uFF]/;
            for(var i= 0;i<temp.length; i++){
              if(!lst.test(temp.charAt(i))){
                  count += 2;
              } else {
                  count += 1;
              }   
	          if( count <= length)
	              outString += temp.charAt(i);
	           else if( count>length){
	            isMore = true; 
	            break;  
	           }	                       
           }
           
 	        if(count<=length){
	           outString = temp;
	        }
	       var reObj = {"str":outString, "isMore":isMore };      
           return reObj;
        }	


       function $IsCheck(id, length, message){
         var isShow = false;
         if(document.getElementById(id).value.length>length){
            isShow = true;
         }    
         var obj = $Len(document.getElementById(id).value, length);         
         isShow = isShow?isShow:obj.isMore;
         if(isShow){
           document.getElementById(id).value=obj.str;
           var showMessage = message+"：输入不能超过"+length.toString()+"个字符";
           alert(showMessage);
         }
       }