﻿//======================================================================
//
//	Copyright (C) 2007-2008 神州教育培训网   
//	All rights reserved
//
//	Filename :Class1
//	Description :
//
//	Created by 施晓东 at  03/11/2008 23:23:55
//	E-Mail:sxd.www@gmail.com
//	Http://www.ChinaEduPX.com
//					
//======================================================================
//=============================  Old < =========================================

var IE = false;
if (navigator.appName == "Microsoft Internet Explorer") IE = true;
var ie = IE;
var NS = false;
if (navigator.appName == "Netscape") NS = true;
var ns = NS;
var ff = ns;
var FF = ns;
var IsIE = ie;
var IsNs = ns;

//引用外部脚本文件或CSS文件
function $import(path, type)
{
    if (type == 'css')
        document.write('<' + 'link href=\"' + path + '\" rel=\"stylesheet\" type=\"text/css\"></' + 'link>');
    else
        document.write('<' + 'script src=\"' + path + '\"></' + 'script>');
}
//清除字符串两端的空白
String.prototype.trim = function()
{
    return this.replace(/(^[\s　]*)|([\s　]*$)/g, "");
}

//判断字符串是否为空
String.prototype.isEmpty = function()
{
    if (this.trim().length == 0)
        return true;
    else
        return false;
}
//判断字符串是否为空
String.prototype.isNullOrEmpty = function()
{
    if (this == null || !this) return true;
    if (this.trim().length == 0)
        return true;
    else
        return false;
}

//判断字符串是否为E-Mail
String.prototype.isMail = function()
{
    var re = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    if (this.search(re) == 0)
        return true;
    else
        return false;
}

//判断字符串是否为汉字
String.prototype.isChinese = function()
{
    var re = /^[\u4e00-\u9fa5]{0,}$/;
    return re.test(this);
}

//判断字符串是否为数字
String.prototype.isInt = function()
{
    var re = /^-{0,1}\d{1,}$/;
    return re.test(this);
}

//计算字符串字节长度
String.prototype.len = function()
{
    return this.replace(/[^\x00-\xff]/g, "aa").length;
}

//根据下标移除Array中的值
Array.prototype.remove = function(dx)
{
    if (isNaN(dx) || dx > this.length) { return false; }
    for (var i = 0, n = 0; i < this.length; i++)
    {
        if (i != dx)
        {
            this[n++] = this[i];
        }
    }
    this.length -= 1;
}

//============================= > Old =========================================

//----根据id或属性名称判断对象是否为空------
function objIsNull(id, isCheckContent)
{
    var tObj = document.getElementById(id);
    if (!tObj) return true;
    if (isCheckContent)
    {
        try
        {
            if (!tObj.value && !tObj.innerText) return;
        }
        catch (e)
	    { }
    }
    return false;
}
//----根据id获取对象------
function getObj(id)
{
    return document.getElementById(id);
}

//----根据name获取对象------
function getObjs(n)
{
    return document.getElementsByName(n);
}
//----根据tagName获取对象------
function getOTags(n)
{
    return document.getElementsByTagName(n);
}
//----根据id或对象与属性名称获取对象的属性值------
function getOAV(idOrObj, attributeName)
{
    var tObj = (typeof (idOrObj) == 'object') ? idOrObj : getObj(idOrObj);
    if (!tObj) return null;
    try
    {
        return (tObj[attributeName]);
    }
    catch (e)
    {
        return null;
    }
}

//----判断字符串是否为空或null------
function isNullOrEmpty(obj)
{
    if (obj == null || obj.replace(/[\s　]/g, '') == '')
        return true;
    else
        return false;
}

/*  
作者：Sandheart E-Mail:sxd.www@gmail.com 日期：2009-02-20
获取XML对象中某个节点的值，支持下标
例：GetNodeValue(xmlDoc, 'root/channel[1]/title[3]')；
参数：        
xmlObj：XML对象；
path：要获取值的节点路径，如:'root/channel[1]/title[3]'，不加下标时自动选择第一个，找不到节点时返回空；
*/
function GetNodeValue(xmlObj, path)
{
    //debugger;
    var tempNodes = xmlObj;
    if (!tempNodes) return '';
    var tns = path.split('/');
    var reg = /.*(\[(\d+)\])/;
    var isGet = false; //判断是否获取到了值
    for (var i = 0, l = tns.length; i < l; i++)
    {
        //提出名字与下标值
        var tmp_name = tns[i];
        var tmp_sub = 0;
        var tmp_array = tmp_name.match(reg);
        if (tmp_array != null)
        {
            tmp_sub = tmp_array[2];
            tmp_name = tmp_name.replace(tmp_array[1], '');
        }
        isGet = false;
        try
        {
            //if (tempNodes) tempNodes = tempNodes.getElementsByTagName(tmp_name)[tmp_sub];
            tempNodes = tempNodes.selectNodes(tmp_name)[tmp_sub];
            isGet = true;
        }
        catch (e)
        {
            return '';
        }
    }
    if (isGet && tempNodes)
    {
        if (IE)
            return tempNodes.text;
        else
            return tempNodes.textContent
    }
    else
        return '';
}

//=================== 遮罩 < ==============
//遮罩对象
var EstopPage = {};
EstopPage.array = new Array();
//打开页面遮罩
EstopPage.open = function(z, wait, waitInfo)
{
    /*
    var esLId = 'estopLayer';
    var esL = getObj(esLId);

    if(!esL)
    {
    var _div = document.createElement('div');
    _div.className = 'estop';
    _div.id = esLId;
    document.body.appendChild(_div);
    }
    esL = getObj(esLId);
    if(!esL) return;    
    */

    var esL = document.createElement('div');
    esL.id = 'estop_' + new Date().getTime();
    esL.className = 'estop';

    esL.style.display = ''
    esL.style.zIndex = z;
    esL.style.width = eval(document.documentElement.clientWidth) + 'px';
    esL.style.height = eval(document.documentElement.clientHeight) + 'px';
    esL.innerHTML = '';
    if (wait)
    {
        esL.style.textAlign = 'center';
        esL.style.paddingTop = eval(document.documentElement.clientHeight / 2 - 80) + 'px';
        showWattInfo(esL, waitInfo, true,z++);
        //esL.appendChild(_div);
    }
    document.body.appendChild(esL);
    EstopPage.array[EstopPage.array.length] = esL.id;
}

//关闭页面遮罩
EstopPage.close = function()
{
    //var esL = getObj('estopLayer');
    var esL = getObj(EstopPage.array[EstopPage.array.length - 1]);
    if (!esL) return;
    esL.style.display = 'none'
    EstopPage.array.remove(EstopPage.array.length - 1);
}

//使浮动对象可以遮罩Select表单(主要在IE6中使用)
EstopPage.EstopSelect = function(obj)
{
    var ifrHTML = '<iframe style="filter:Alpha(Opacity=0); position:absolute;z-index:-1;width:e­xpression(this.nextSibling.offsetWidth);height:e­xpression(this.nextSibling.offsetHeight);top:e­xpression(this.nextSibling.offsetTop);left:e­xpression(this.nextSibling.offsetLeft);"   frameborder="0"></iframe>';
    var ifrObj = document.createElement(ifrHTML);
    obj.insertBefore(ifrObj, obj.firstChild);
    return obj;
}
//=================== > 遮罩 ==============

//对字符串进行HTML编码
function HTMLEncode(str)
{
    var _div = document.createElement('div');
    _div.innerText = str;
    return _div.innerHTML;
}
//对HTML进行字符串解码
function HTMLDecode(html)
{
    var _div = document.createElement('div');
    _div.innerHTML = html;
    return _div.innerText;
}
//返回一个对象在页面中的位置
function getOffset(Obj)
{
    var x = Obj.offsetLeft;
    var y = Obj.offsetTop;
    if (Obj.offsetParent != null)
    {
        var offset = getOffset(Obj.offsetParent);
        x += offset.x;
        y += offset.y;
    }
    var w = Obj.offsetWidth;
    var h = Obj.offsetHeight;
    return { x: x, y: y, w: w, h: h }
}
//对象设置焦点，传入的参数可为id或对象
function setFocus(idOrObj)
{
    try
    {
        if (typeof (idOrObj) == 'object')
            idOrObj.focus();
        else
            getObj(idOrObj).focus();
    }
    catch (e)
    {
        //alert(e);
    }
}




function addEvent(element, type, handler)
{
    if (window.addEventListener)
    {
        try
        {
            element.removeEventListener(type, handler, false);
        }
        catch (e) { }
        element.addEventListener(type, handler, false);
    }
    else if (window.attachEvent)
    {
        try
        {
            element.detachEvent("on" + type, handler);
        }
        catch (e) { }
        element.attachEvent("on" + type, handler);
    }
}
function removeEvent(element, type, handler)
{
    if (window.removeEventListener)
    {
        try
        {
            element.removeEventListener(type, handler, false);
        }
        catch (e) { }
    }
    else if (window.detachEvent)
    {
        try
        {
            element.detachEvent("on" + type, handler);
        }
        catch (e) { }
    }
}
//禁止事件冒泡
function stopPropagation(evt)
{
    var e = (evt) ? evt : window.event;
    if (window.event)
    {
        e.cancelBubble = true;
    }
    else
    {
        e.stopPropagation();
    }
}
function ce(tagName, parentObjId)
{
    if (parentObjId)
    {
        var _obj = ge(parentObjId);
        if (_obj == null) return null;
        var cobj = ce(parentObjId);
        _obj.appendChild(cobj);
        return cobj;
    }
    else
        return document.createElement(tagName);
}
function ae(childObj, parentObj)
{
    if (childObj != null && parentObj != null) parentObj.appendChild(childObj);
}
function ge(ID)
{
    return document.getElementById(ID);
}
function re(ID)
{
    var _obj = typeof (ID) == "object" ? ID : ge(ID);
    if (_obj == null) return;
    if (_obj.parentNode) _obj.parentNode.removeChild(_obj);
}
function getParamValue(URL, ParamName)
{
    var Opt = getParam(URL);
    for (i = 0; i < Opt[0].length; i++)
    {
        if (Opt[0][i].toLowerCase() == ParamName.toLowerCase()) return Opt[1][i];
    }
    return null;
}
function getParam(URL)
{
    URL = URL.substring(URL.indexOf("?") + 1, URL.length);
    var opt = URL.split("&");
    var para = new Array();
    var value = new Array();
    for (i = 0; i < opt.length; i++)
    {
        para[i] = opt[i].substring(0, opt[i].indexOf("="));
        value[i] = opt[i].substring(opt[i].indexOf("=") + 1, opt[i].length);
    }
    var result = new Array(para, value);
    return result;
}
function QueryString(ParamName)
{
    return getParamValue(window.location.href, ParamName);
}

//=============================  普通方法 < =========================================
//鼠标称上后的字体与样式的变化
/*
id：(必填项)对象Id或对象；
classN：(选填项)要添加的样式名称，要和isMoveOut()里的参数值一样；
*/
function isMoveIn(id, classN)
{
    var obj = (typeof (id) == "object") ? id : getObj(id);
    if (obj)
    {
        if (classN)
        {
            if (obj.className.indexOf(classN) == -1) obj.className += ' ' + classN;
        }
        else
            obj.style.fontWeight = 'bold';
    }
}

//鼠标称开后的字体变化
/*
id：(必填项)对象Id或对象；
classN：(选填项)要添加的样式名称，不填时，变为粗体，填写此参数，将使用所填写的样式，要和isMoveIn()里的参数值一样；
*/
function isMoveOut(id, classN)
{
    var obj = (typeof (id) == "object") ? id : getObj(id);
    if (obj)
    {
        if (classN)
            obj.className = obj.className.replace(classN, '');
        else
            obj.style.fontWeight = '';
    }
}

//显示检测结果正确图片
function showOKImg(id, info)
{
    var img = getObj(id);
    if (img)
    {
        img.className = 'okImg';
        if (arguments.length == 2) img.alt = info;
        displayObj(id, true);
    }
}

//显示检测结果有误图片
function showErrorImg(id, info)
{
    var img = getObj(id);
    if (img)
    {
        img.className = 'errorImg';
        if (arguments.length == 2) img.alt = info;
        displayObj(id, true);
    }
}

//设置并显示有误信息
function showErrorInfo(id, info)
{
    var obj = getObj(id);
    if (obj)
    {
        obj.className = 'error';
        if (arguments.length == 2) obj.innerHTML = info;
        obj.style.display = '';
    }
}

//----设置对象是否显示------
function displayObj(id, isDisplay)
{
    if (objIsNull(id)) return;
    if (isDisplay)
        getObj(id).style.display = '';
    else
        getObj(id).style.display = 'none';
}

//----设置对象是否显示------
function displayObj(id, isDisplay)
{
    if (objIsNull(id)) return;
    if (isDisplay)
        getObj(id).style.display = '';
    else
        getObj(id).style.display = 'none';
}

//---- 更改CheckBox或RadioBox的态状------
function CCRState(idOrObj)
{
    var tObj = (typeof (idOrObj) == 'object') ? idOrObj : getObj(idOrObj);
    if (!tObj) return null;
    tObj.checked = !tObj.checked;
}

//----设定Select表单的选定项------
function setSelectValue(sId, v)
{
    if (objIsNull(sId)) return;
    var ts = getObj(sId);
    for (var i = 0; i < ts.length; i++)
    {
        if (ts.options[i].value == v)
        {
            ts.options[i].selected = true;
            break;
        }
    }
}

//清除Select表单
function clearSelect(idOrObj)
{
    var tObj = (typeof (idOrObj) == 'object') ? idOrObj : getObj(idOrObj);
    if (!tObj) return null;

    for (var l = tObj.options.length; l > 0; l--)
    {
        tObj.remove(l - 1);
    }
}



//----设定一组单选框(radio)选择某个值------
function setRadioValue(rName, v)
{
    var rs = document.getElementsByName(rName);
    if (!rs) return;
    for (var i = 0; i < rs.length; i++)
    {
        if (rs[i].value == v)

            rs[i].checked = true;
        else
            rs[i].checked = false;

    }
}

//----获取一组单选框(radio)所选的值------
function getRadioValue(rName)
{
    var rs = document.getElementsByName(rName);
    if (!rs) return undefined;
    for (var i = 0; i < rs.length; i++)
    {
        if (rs[i].checked == true) return rs[i].value;
    }
}

//----获取一组复选框(checkbox)所选的值的集合------
function getCheckboxValue(rName)
{
    var objs = document.getElementsByName(rName);
    if (!objs) return undefined;
    var vArray = new Array();
    for (var i = 0; i < objs.length; i++)
    {
        if (objs[i].checked == true) vArray[vArray.length] = objs[i].value;
    }
    return vArray;
}

//数组对象remove方法，例：array.remove(1);
Array.prototype.remove = function(dx)
{
    if (isNaN(dx) || typeof (dx) != 'number' || dx > this.length) { return false; }
    for (var i = 0, n = 0; i < this.length; i++)
    {
        if (i != dx)
        {
            this[n++] = this[i];
        }
    }
    this.length -= 1;
}

//只允许输入中英文字符或数字
function onlyInputInt(id)
{
    var obj = (typeof (id) == "object") ? id : getObj(id);
    if (!obj) return;
    var tv = obj.value;
    var pattren = /^-?\d*/;
    var rL = tv.match(pattren);
    obj.value = (rL) ? rL[0] : '';
    //alert('Only input number!');
}

//只允许输入正整数
function onlyInputNum(id)
{
    var obj = (typeof (id) == "object") ? id : getObj(id);
    if (!obj) return;
    var tv = obj.value;
    var pattren = /^\d*/;
    var rL = tv.match(pattren);
    obj.value = (rL) ? rL[0] : '';
    //alert('只允许输入正整数');
}

//只允许输入整数(正,负)
function onlyInputInt(id)
{
    var obj = (typeof (id) == "object") ? id : getObj(id);
    if (!obj) return;
    var tv = obj.value;
    var pattren = /^-?\d*/;
    var rL = tv.match(pattren);
    obj.value = (rL) ? rL[0] : '';
    //alert('Only input number!');
}

//只允许输入数字与folat
function onlyInputFolat(id)
{
    var obj = (typeof (id) == "object") ? id : getObj(id);
    if (!obj) return;
    var tv = obj.value;
    var pattren = /^\d+([\.]?)(\d*)/;
    var rL = tv.match(pattren);
    obj.value = (rL) ? rL[0] : '';
}

//替换对象
/*
newObj:新对象;
oldObj:要替换的旧对象
*/
function replaceObj(newObj, oldObj)
{
    oldObj.parentNode.insertBefore(newObj, oldObj);
    oldObj.removeNode();
}

//清除input表单的值，checked表单置为未选中状态，select表单的值归0，
function clearBoxVlaue(name)
{
    var boxs = getObjs(name);
    if (!boxs) return;
    for (var i = 0; i < boxs.length; i++)
    {
        var temp_Id = boxs[i].id;
        if (boxs[i].tagName == 'SELECT')
            setSelectValue(temp_Id, 0);
        else if (boxs[i].tagName == 'INPUT' && boxs[i].type == 'checkbox')
            boxs[i].checked = false;
        else
            boxs[i].value = '';
    }
}

//利用name获取一组表单,为AJAX对象添加要传递的参数 (使用Rick's Ajax.js)
/*
ajaxObj:要添加参数的AJAX对象;
name:表单name;
idKey:表单id与AJAX对象参数名称的差异字符(表单id.replace(idKey) == AJAX对象参数名称)
*/
function ajaxAddItems(ajaxObj, name, idKey)
{
    var boxs = getObjs(name);
    if (boxs)
    {
        for (var i = 0; i < boxs.length; i++)
        {
            if (boxs[i].tagName == 'INPUT' && boxs[i].type == 'checkbox')
            {
                if (boxs[i].checked) ajaxObj.AddItem(boxs[i].id.replace(idKey, ''), boxs[i].value);
            }
            else
                ajaxObj.AddItem(boxs[i].id.replace(idKey, ''), boxs[i].value);
        }
    }
}

//把XML对象中的值填充到对应的一组表单中
/*
xmlObj:XML对象
name:要填充表单的name;
idKey:表单id与AJAX对象参数名称的差异字符(表单id.replace(idKey) == AJAX对象参数名称)
path:值在XML对象中的路径,如(Id的路径为：root/Data/Id，path就为：root/Data/);
*/
function setBoxsValue(xmlObj, name, idKey, path)
{
    var boxs = getObjs(name);
    if (!boxs) return;
    for (var i = 0; i < boxs.length; i++)
    {
        var temp_Id = boxs[i].id;
        var v = GetNodeValue(xmlObj, path + temp_Id.replace(idKey, ''));
        if (boxs[i].tagName == 'SELECT')
            setSelectValue(temp_Id, v);
        else if (boxs[i].tagName == 'INPUT' && boxs[i].type == 'checkbox')
        {
            if (v == 1) boxs[i].checked = true;
        }
        else
            boxs[i].value = v;
    }
}

//获取返回的XML信息
function getReXmlInfo(xmlObj, infoBoxId)
{
    var rev;
    var info;
    if (typeof (xmlObj.childNodes) != 'undefined')
    {
        rev = GetNodeValue(xmlObj, 'Root/Value');
        info = GetNodeValue(xmlObj, 'Root/Info');
    }
    else
    {
        rev = xmlObj.Root.Value;
        info = xmlObj.Root.Info;
    }
    if (rev == -1)
    {
        var mbExist = false;
        if (infoBoxId)
        {
            var megBox = getObj(infoBoxId);
            if (megBox && megBox.innerHTML)
            {
                megBox.innerHTML = info;
                megBox.style.display = '';
                mbExist = true;
            }
        }
        if (!mbExist) alert(info);
    }
    return { ReValue: rev, Info: info };
}

//解决IE6中Png类型图片的透明度问题（可以在onload 时调用）
function EnablePngImages()
{
    var imgArr = document.getElementsByTagName("IMG");
    var version = parseFloat(navigator.appVersion.split("MSIE")[1]);

    if (version = 6.0 && (document.body.filters))
    {
        for (var i = 0, j = imgArr.length; i < j; i++)
        {
            if (imgArr[i].src.toLowerCase().lastIndexOf(".png") != -1)
            {
                imgArr[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imgArr[i].src + "', sizingMethod='auto')";
                imgArr[i].src = "images/page/transparent.gif";
                imgArr[i].style.border = "none";
            }

            if (imgArr[i].currentStyle.backgroundImage.lastIndexOf(".png") != -1)
            {
                var img = imgArr[i].currentStyle.backgroundImage.substring(5, imgArr[i].currentStyle.backgroundImage.length - 2);
                imgArr[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img + "', sizingMethod='crop')";
                imgArr[i].style.backgroundImage = "url(images/page/transparent.gif)";
            }
        }
    }
}

/*========================
幻灯片图片切换方法
参数说明：
id：用来显示图片的对象的Id。
imgsUrl：图片地址的集合，多个地址用","分隔。
imgsHrefUrl：点击图片时打开的链接地址集合，多个地址用","分隔。
imgsTitle：图片的Title信息集合，多个地址用","分隔。
newObjName：此对象实例化后的名称。
effects：切换时的效果集合，滤镜FILTER的Transition值集合，多个值之间用","分隔；如果只指定一个效果值，那将一直使用指定的效果；指定一个以上效果值，先按顺序使用，不够的(图片的个数大于效果个数的)使用默认效果；一个效果也不指定，只使用默认效果。

例：
HTML：
<IMG id="slidePic" style="FILTER:revealTrans(Duration=2.0, Transition=23);" src="http://www.baidu.com/img/baidu_logo.gif" height=240  width=247 border=0 name=slidePic>
脚本：
var Imgs = "";
Imgs += 'http://news.tom.com/uldf/2009/0112/lvding/1.jpg,';
Imgs += 'http://i1.tomoimg.cn/uldf/2009/0111/lvding/1.jpg,';
Imgs += 'http://life.news.tom.com/uldf/2008/1223/wangrui/xcjdt1222.jpg,';
Imgs += 'http://product.auto.163.com/img2/photo/0008/2008-09-25/4MMTU27R0BSA0008.jpg';
var Imgs_a = "";
Imgs_a += 'http://www.baidu.com/,';
Imgs_a += 'http://www.google.cn/';
var img_T = "";
img_T += '图片1,';
img_T += '图片2';
var a = new SwitchImg('slidePic',Imgs,Imgs_a,imgsTitle,'a','4,9');
a.Start();
========================*/
function SwitchImg(id, imgsUrl, imgsHrefUrl, imgsTitle, newObjName, effects)
{
    this.ImgBoxId = id; //用来显示图片的对象的Id。
    this.ImgsArray = new Array();  //图片地址的集合。
    this.ImgsHrefArray = new Array(); //点击图片时打开的链接地址集合。
    this.ImgsTitleArray = new Array(); //图片的Title信息集合。
    this.ShowImgNum = 0; //当前显示的图片在图片集合中的下标。
    this.SpaceTime = 5000; //切换图片的间隔时间(ms)。
    this.Effects = null; //切换时的效果集合，滤镜FILTER的Transition值集合。
    //开始切换
    this.Start = function()
    {
        if (imgsUrl) this.ImgsArray = imgsUrl.split(',');
        if (imgsHrefUrl) this.ImgsHrefArray = imgsHrefUrl.split(',');
        if (imgsTitle) this.ImgsTitleArray = imgsTitle.split(',');
        if (effects) this.Effects = effects.split(',');
        if (!this.ImgsArray.length > 0) return;
        this.Show();
        setInterval('' + newObjName + '.Show()', this.SpaceTime);
    }
    //切换图片
    this.Show = function()
    {
        var ImgObj = document.getElementById(this.ImgBoxId);
        if (!ImgObj) return;
        if (this.ShowImgNum >= this.ImgsArray.length) this.ShowImgNum = 0;
        if (this.ImgsArray[this.ShowImgNum].isNullOrEmpty())
        {
            this.ShowImgNum++;
            this.Show();
            return;
        }
        var _et = 10;  //默认效果
        if (this.Effects)
        {
            if (this.Effects[this.ShowImgNum])
                _et = this.Effects[this.ShowImgNum];
            else if (this.Effects.length == 1)
                _et = this.Effects[0];
        }
        ImgObj.src = this.ImgsArray[this.ShowImgNum];
        ImgObj.title = this.ImgsTitleArray[this.ShowImgNum];
        try
        {
            ImgObj.filters.item(0).apply();
            ImgObj.filters.item(0).transition = _et;
            ImgObj.filters(0).play(2.0);
        }
        catch (e) { }

        if (this.ImgsHrefArray)
        {
            if (this.ImgsHrefArray[this.ShowImgNum])
            {
                var href = this.ImgsHrefArray[this.ShowImgNum];
                ImgObj.onclick = function()
                {
                    window.open(href);
                }
                ImgObj.style.cursor = 'pointer';
            }
            else
            {
                ImgObj.onclick = function() { }
                ImgObj.style.cursor = '';
            }
        }
        this.ShowImgNum++;
    }
}

//序列化对象
function Searial(obj)
{
    var str = '';
    if (typeof (obj) == 'object')
    {
        for (node in obj)
        {
            str += escape(node) + ':' + escape(obj[node]) + ',';
        }
    }
    return str;
}

//反序列化对象
function UnSearial(str)
{
    var obj = {};
    if (str)
    {
        var temp = str.split(',');
        if (temp && temp.length > 0)
        {
            for (var i = 0; i < temp.length; i++)
            {
                var tmp = temp[i].split(':');
                if (tmp.length = 2)
                    obj[unescape(tmp[0])] = unescape(tmp[1]);
            }
        }
    }
    return obj;
}

//获取URL地址栏中请求的参数及值，并以数组的形式返回
function getURLParameters()
{
    var url = location.href;
    var qs = url.substring(url.indexOf('?') + 1, url.length).split('&');
    var gs = {};
    for (var i = 0, l = qs.length; i < l; i++)
    {
        var p = qs[i];
        if (p)
            gs[p.substring(0, p.indexOf('='))] = p.substring(p.indexOf('=') + 1);
    }
    return gs;
}

//再新窗口中打开链接
function openNewWindow(path)
{
    var na = document.all.openNewWindow;
    if (!na)
    {
        na = document.createElement('<a id="openNewWindow" style="display:none;"></a>');
        document.body.insertBefore(na);
    }
    document.all.openNewWindow.href = path;
    document.all.openNewWindow.target = "_blank";
    document.all.openNewWindow.click();
    return false;
}

/*
将数字字符串转为货币形式
str：要转换的数字字符串；
pre：精度；
moneyStr：货币符号；
    
例子： alert(parseMoney(135484342.7, 2, '￥'));
*/
function parseMoney(str, pre, moneyStr)
{
    //数据是否符合货币格式
    if (/[^0-9\.\-]/.test(str)) str = 0;

    //判断是否为负值
    var isNegative = parseFloat(str) < 0;
    str = Math.abs(str).toString();

    //格式化小数点精度
    var preStr = '';
    var i = 0;
    while (i < pre)
    {
        preStr += 0;
        i++;
    }
    var idx = str.indexOf('.');
    if (idx == 0)
        return str;
    else if (idx == -1)
        str += '.' + preStr;
    else
        str += preStr;

    //分别取出整数与小数    
    var str1 = str.substr(0, str.indexOf('.'));
    var preStr = str.substr(str.indexOf('.'), pre + 1);

    //整数格式化
    str1 = str1.reverse().replace(/(\d{3})/g, "$1,").reverse();
    if (str1.indexOf(',') == 0) str1 = str1.substr(1);

    //重组
    if (isNegative) str1 = '-' + str1;
    str = moneyStr + str1 + preStr;
    return str;
}

/*
时间加减值运算
参数：
startDate：其础时间；
addValue：要加的值；（相减时为负值）
addType：加的类型；（y：年；M：月；d：日；h：时；m：分；s：秒；  ）
*/
function dateAdd(startDate, addValue, addType)
{
    var dtTmp;
    switch (addType)
    {
        case 'y':
            dtTmp = new Date(startDate.getFullYear() + parseInt(addValue), startDate.getMonth(), startDate.getDate(), startDate.getHours(), startDate.getMinutes(), startDate.getSeconds());
            break;
        case 'M':
            dtTmp = new Date(startDate.getFullYear(), startDate.getMonth() + parseInt(addValue), startDate.getDate(), startDate.getHours(), startDate.getMinutes(), startDate.getSeconds());
            break;
        case 'd':
            dtTmp = startDate.valueOf() + addValue * 1000 * 60 * 60 * 24;
            break;
        case 'h':
            dtTmp = startDate.valueOf() + addValue * 1000 * 60 * 60;
            break;
        case 'm':
            dtTmp = startDate.valueOf() + addValue * 1000 * 60;
        case 's':
            dtTmp = startDate.valueOf() + addValue * 1000;
            break;
    }
    return new Date(dtTmp);
}


//控制文本框的输入长度
function checkMaxLen(obj, maxlength)
{
    if (obj.value.length > maxlength)
    {
        obj.value = obj.value.substring(0, maxlength);
    }
}

/***
* 参数e 是对象传递的触发事件 FF下想访问event对象必须传递event参数
* 参数o 是目标DIV对象
*/
function isMoveOut(e, o)
{
    /* FF 下判断鼠标是否离开DIV */
    if (window.navigator.userAgent.indexOf("Firefox") >= 1)
    {
        var x = e.clientX + document.body.scrollLeft;
        var y = e.clientY + document.body.scrollTop;
        var left = o.offsetLeft;
        var top = o.offsetTop;
        var w = o.offsetWidth;
        var h = o.offsetHeight;

        if (y < top || y > (h + top) || x > left + w || x < left)
        {
            return true;
        }
    }

    /* IE */
    if (o.contains(event.toElement) == false)
        return true;
    return false;
}


//=============================  > 普通方法 =========================================


