﻿
var Edward;
if(!Edward)Edward = {};
if(!Edward.Web)Edward.Web = {};
if(!Edward.Web.UI)Edward.Web.UI = {};

function $(id)
{
    if(id==null)
        return null;
    if(id=="")
        return null;
    return document.getElementById(id);
}

function $E(element)
{
    if(typeof(element) == "string")
        return $(element);
    else if(typeof(element) == "object")
        return element;
}

String.prototype.Trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

String.prototype.LTrim = function()
{
    return this.replace(/(^\s*)/g, "");
}

String.prototype.RTrim = function()
{
    return this.replace(/(\s*$)/g, "");
}

/* 
String有个属性length，但是它不能区分英文字符，计算中文字符和全角字符。
但是在数据存储的时候中文和全角都是用两个字节来存储的，所有需要额外处理一下。
自己写了个函数，返回String正真的长度 
*/
String.prototype.CodeLength = function()
{
    var len=0;
    if(this==null||this.length==0)
        return 0;
    
    var str=this.replace(/(^\s*)|(\s*$)/g,"");/* 去掉空格 */
    for(i=0;i<str.length;i++)
        if(str.charCodeAt(i)>0 && str.charCodeAt(i)<128)
            len++;
        else 
            len+=2;
    return len;
}

/*
过滤HTML
在评论的时候为了防止用户提交带有恶意的脚本，可以先过滤HTML标签，过滤掉双引号，单引号，符号&，符号<，符号>。
*/
String.prototype.FilterHtml=function()
{
	return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt").replace(/"/g,"&#34;").replace(/'/g,"&#39;");
}

Edward.Web.LoadJavaScript = function(file)
{
    var head = document.getElementsByTagName("head").item(0);
    var script = document.createElement("script");
    script.src = file;
    script.type = "text/javascript";
    head.appendChild(script);
}

/* 创建函数 */
Edward.Web.UI.CreateFunction = function(obj,strFunc)
{
    var args=[];
    if(!obj)
        obj = window;
    for(var i = 2; i < arguments.length; i ++)
        args.push(arguments[i]);
    return function(){obj[strFunc].apply(obj,args);}
}

/* 添加全局事件 */
Edward.Web.UI.AddGlobalEvent = function(eventName,eventFunction)
{
    if( window.addEventListener)
        window.addEventListener(eventName,eventFunction,false);
    else if(document.addEventListener)
        document.addEventListener(eventName,eventFunction,false);
    else if( window.attachEvent )
        window.attachEvent("on"+eventName,eventFunction);
}

/* 添加事件 */
Edward.Web.UI.AddEvent=function(obj,eventName,eventFunction)
{
    if(obj.addEventListener)
        obj.addEventListener(eventName,eventFunction,false);
    else if(obj.attachEvent)
        obj.attachEvent("on"+eventName,eventFunction);
}

/* 兼容Firefox的event */
Edward.Web.FixEvent = function(e)
{
    var e;
    e = e ? e : (window.event ? window.event : null );
    return e;
}

/* 兼容Firefox的Element */
Edward.Web.FixElement = function(e)
{
    var e;
    return e.target ? (e.target.nodeType==3 ? e.target.parentNode : e.target) : e.srcElement;
}

/* 格式化时间 */
function DateFormat(time)
{
    return new Edward.Web.DateFormat('yyyy-MM-dd HH:mm:ss').Format(time);
}


/* 格式化金额 ￥12,345.00 */
function formatMoney(val)
{  
  val = val+"";
  var val2=val.split(".");
  val=val2[0];
  var val3=val2[1];
  if(typeof(val3)=="undefined")
    val3="00";
  var val1=Math.round((val3/Math.pow(10,val3.length))*100)
  val1 = val1.toString();
  if(val1.length==1)val1="0"+val1;
     
  var signa=0  
  var ll=val.length  
  if(ll%3==1){  
    val="00"+val;
    signa=2;
  }
  if(ll%3==2){
    val="0"+val;
    signa=1;
  }  
  var tt=(val.length)/3; 
  var mm=new Array();
  for(var i=0;i<tt;i++){  
    mm[i]=val.substring(i*3,3+i*3);
  }  
   
  var   vv="";
  for(var i=0;i<mm.length;i++)
  vv+=mm[i]+",";

  vv="￥" + vv.substring(signa,vv.length-1) + "." + val1;
  return vv;
}

/* 修改parentid容器内的所有checkbox的checked状态 */
function CheckBox_AllSelected(parentid,checked)
{
    var el = $(parentid).getElementsByTagName('input');
    var len = el.length;
    for(var i=0; i<len; i++)
    {
        if((el[i].type=="checkbox"))
        {
            el[i].checked = checked;
        }
    }     
}

/* 确认parentid容器内的checkbox是否至少有一个被选中 */
function CheckBox_HasSelected(parentid)
{
    var el = $(parentid).getElementsByTagName('input');
    var len = el.length;
    for(var i=0; i<len; i++)
    {
        if((el[i].type=="checkbox") && el[i].checked)
        {
            return true;
        }
    }
    return false;
}

/* 获取parentid容器内的所有选中的checkbox的值 */
function CheckBox_GetAllSelectedValues(parentid)
{
    var values = new Array();
    var el = $(parentid).getElementsByTagName('input');
    var len = el.length;
    for(var i=0; i<len; i++)
    {
        if((el[i].type=="checkbox") && el[i].checked)
        {
            values.push(el[i].value);
        }
    }
    return values;
}

function goTop()
{
    window.scrollTo(0,0);
}