﻿
// Common.js
// CopyRight (c) 2009 HangJing Teconology. All Rights Reserved.
// zjf@ihangjing.com
// 2009-10-22
String.prototype.trim=function()
{
    return this.replace(/(\s*$)|(^\s*)/g, '');
} 

//function $(id)
//{
//    return document.getElementById(id);
//}

function $I(id)
{
    return document.getElementById(id);
}

function $N(name)
{
    return document.getElementsByName(name);
}

//前台页面弹出消息对话框 一般是操作成功弹出一个提示 点击确定跳转到其他页面
//或者输入框填写不正确,弹出对话框提示 
//有遮蔽层
//msg:显示的信息
//type:提示信息是提示正确还是错误 正确 right 错误 error
//urlClose:点击关闭按钮跳转的页面地址 不跳转则为空
//urlOk:点击确定按钮跳转的页面地址 不跳转则为空
//timeClose:是否需要经过几秒后自动关闭 目前暂定3秒 取值 true false
//imgType:图片路径 和如调用这个函数页面是和Images在同一级下则 imgType设置1 如调用这个函数的页面在一个与images同一级的子目录里面则imgType 设置2
//imgType是解决图片路径问题的暂时替代方法,如有解决方案会及时更新
//示例:
//页面中最下方:
//<div class="mask" id="mask_info" style="display: none;"></div>
//<div class="div_notice" style="left: 373px; top: 304px; display: none;background-color: #f9f9f9;border: 2px solid #7db5de;position: absolute;width: 280px;z-index: 10;" id="div_show_info"></div>
//弹出按钮
//<input class="div_notice_button_ok"  id="Button1" type="button" onclick='ShowDivInfo("happy","true","index.aspx","index2.aspx","false",2);' />
//<input class="div_notice_button_ok"  id="Button2" type="button" onclick='ShowDivInfo("happy","error","","","false",2);' />
function ShowDivInfo(msg,type,urlClose,urlOk,timeClose,imgType)
{
    //弹出对话框
    //innerHTML += "<div class='div_notice' id='div_show_info'>";
    var innerHTML = "";
    innerHTML += "<div class='div_notice_title'>";
    innerHTML += "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
    innerHTML += "<tr>";
    innerHTML += "<td style='padding-left: 10px;'><label id='lbDivTitle'>提示信息</label></td>";
    innerHTML += "<td style='text-align: right; padding-right: 5px;'>";
    if( imgType == "1" )
    {
        if( urlClose != "" )
        {
            innerHTML += "<a href='javascript:Hidewindow(\"div_show_info\");Hidewindow(\"mask_info\");window.location.href=\""+urlClose+"\";'>";
            innerHTML += "<img title='关闭窗口' src='Images/close.gif' alt='关闭窗口' onmouseover='this.src=\"Images/closeHover.gif\"' onmouseout='this.src=\"Images/close.gif\"' /></a>"
        }
        else 
        {
            innerHTML += "<a href='javascript:Hidewindow(\"div_show_info\");Hidewindow(\"mask_info\");'>";
            innerHTML += "<img title='关闭窗口' src='Images/close.gif'' alt='关闭窗口' onmouseover='this.src=\"Images/closeHover.gif\"' onmouseout='this.src=\"Images/close.gif\"' /></a>"
        }
    }
    else
    {
        if( urlClose != "" )
        {
            innerHTML += "<a href='javascript:Hidewindow(\"div_show_info\");Hidewindow(\"mask_info\");window.location.href=\""+urlClose+"\";'>";
            innerHTML += "<img title='关闭窗口' src='../Images/close.gif' alt='关闭窗口' onmouseover='this.src=\"../Images/closeHover.gif\"' onmouseout='this.src=\"../Images/close.gif\"' /></a>"
        }
        else 
        {
            innerHTML += "<a href='javascript:Hidewindow(\"div_show_info\");Hidewindow(\"mask_info\");'>";
            innerHTML += "<img title='关闭窗口' src='../Images/close.gif'' alt='关闭窗口' onmouseover='this.src=\"../Images/closeHover.gif\"' onmouseout='this.src=\"../Images/close.gif\"' /></a>"
        }
    }

    innerHTML += "</td></tr></table></div>";
    innerHTML += "<div style='padding: 10px; text-align: center;'>";
    if( imgType == "1")
    {
        if(type == "error")
        {
            innerHTML += "<label id='lbDivInfo'><img src='Images/cuo.gif' />"+msg+"</label>";
        }
        else
        {            
            innerHTML += "<label id='lbDivInfo'><img src='Images/dui.gif' />"+msg+"</label>";
        }  
    }
    else
    {
        if(type == "error")
        {
            innerHTML += "<label id='lbDivInfo'><img src='../Images/cuo.gif' />"+msg+"</label>";
        }
        else
        {            
            innerHTML += "<label id='lbDivInfo'><img src='../Images/dui.gif' />"+msg+"</label>";
        }  
    }
    
    innerHTML += "</div>";
    innerHTML += "<div align='center' style='padding-bottom: 10px;'>";
    if( urlOk != "")
    {
        innerHTML += "<input class='div_notice_button_ok' onmouseover='this.className=\"div_notice_button_ok_hover\"' onmouseout='this.className=\"div_notice_button_ok\"' id='Button1' type='button' onclick='Hidewindow(\"div_show_info\");Hidewindow(\"mask_info\");window.location.href=\""+urlOk+"\";' />";
    }
    else
    {
        innerHTML += "<input class='div_notice_button_ok' onmouseover='this.className=\"div_notice_button_ok_hover\"' onmouseout='this.className=\"div_notice_button_ok\"' id='Button1' type='button' onclick='Hidewindow(\"div_show_info\");Hidewindow(\"mask_info\");' />";

    }
    
    innerHTML += "</div>";
        
    $I("div_show_info").innerHTML = innerHTML;
    $I("div_show_info").style.display = "block"; 
    $I("mask_info").style.display = "block"; 
    
    if( timeClose == "true")
    {
        setTimeout(HiddenDivShowInfo,3000);
    }
}

function HiddenDivShowInfo()
{
    var div_show_info=document.getElementById("div_show_info");
    
	if(div_show_info)
	{
	    div_show_info.style.display="none";
	}
	var mask_info=document.getElementById("mask_info");
    
	if(mask_info)
	{
	    mask_info.style.display="none";
	}
}

//显示一个div
//显示需要定位
//obj是你要显示的div相对的对象，一般是一个按钮或者链接填 this即可 
//addx、addy是相对与obj的偏移量，就是div显示的位置
function Showwindow(obj,objdiv,addx,addy)
{
	var x=getposOffset_top(obj,'left');
    var y=getposOffset_top(obj,'top');
    var div_obj=document.getElementById(objdiv);
	div_obj.style.left=(x+addx)+'px';
	div_obj.style.top=(y+addy)+'px';
	div_obj.style.display="inline";
	return;
}

//隐藏一个div
function Hidewindow(objdiv)
{
    var div_obj=document.getElementById(objdiv);
	if(div_obj)
	{
	    div_obj.style.display="none";
	}
}

//隐藏一个div
function ShowMask(objdiv)
{
    var div_obj=document.getElementById(objdiv);
	if(div_obj)
	{
	    div_obj.style.display="block";
	}
}

//获取偏移量
function getposOffset_top(what, offsettype)
{ 
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; 
    var parentEl=what.offsetParent; 
    while (parentEl!=null)
    { 
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; 
         parentEl=parentEl.offsetParent; 
    } 
    return totaloffset; 
   
}

//屏幕中间弹出
function ShowAtCenter(objdiv)
{
    var scrollHeight;
    var scrollWidth;
    if (typeof window.pageYOffset != 'undefined') 
    {
       scrollHeight = window.pageYOffset;
       scrollWidth = window.pageXOffset;
    }
    else if (typeof document.compatMode != 'undefined' &&document.compatMode != 'BackCompat') 
    {
       scrollHeight = document.documentElement.scrollTop;
       scrollWidth = document.documentElement.scrollLeft;
    }
    else if (typeof document.body != 'undefined') 
    {
       scrollHeight = document.body.scrollTop;
       scrollWidth = document.body.scrollLeft;
    } 
    scrollHeight += 250;
    //scrollWidth += 450;
    //scrollHeight += document.body.clientHeight/2;
    scrollWidth += document.body.clientWidth/2 - 100;
    var div_obj=document.getElementById(objdiv);
	div_obj.style.left=scrollWidth+'px';
	div_obj.style.top=scrollHeight+'px';
	div_obj.style.display="inline";
}

//屏幕中间弹出
function ShowAtCenterFix(objdiv)
{
    var scrollHeight;
    var scrollWidth;
    if (typeof window.pageYOffset != 'undefined') 
    {
       scrollHeight = window.pageYOffset;
       scrollWidth = window.pageXOffset;
    }
    
    else if (typeof document.compatMode != 'undefined' &&document.compatMode != 'BackCompat') 
    {
       scrollHeight = document.documentElement.scrollTop;
       scrollWidth = document.documentElement.scrollLeft;
    }
    else if (typeof document.body != 'undefined') 
    {
       scrollHeight = document.body.scrollTop;
       scrollWidth = document.body.scrollLeft;
    } 
    var div_obj=document.getElementById(objdiv);
    div_obj.style.display="inline";
    //scrollHeight += document.body.clientHeight/2 - div_obj.offsetHeight/2;
    scrollWidth += document.body.clientWidth/2 - div_obj.offsetWidth/2;
    scrollHeight += 100;
    //scrollWidth += 300;
    
	div_obj.style.left=scrollWidth+'px';
	div_obj.style.top=scrollHeight+'px';
}

var net=new Object();

//请求状态属性
net.READY_STATE_UNINITIALIZED=0;    //未初始化
net.READY_STATE_LOADING=1;          //正在加载
net.READY_STATE_LOADED=2;           //已加载
net.READY_STATE_INTERACTIVE=3;      //交互中
net.READY_STATE_COMPLETE=4;         //完成

net.ContentLoader=function(url,params,method,onload,onerror)   
{
    this.req=null;
    this.onload=onload;
    this.onerror=(onerror) ? onerror : this.defaultError;
    this.loadXMLDoc(url,method,params);
}

net.ContentLoader.prototype.loadXMLDoc=function(url,method,params)
{
    if (!method)
    {
        method="GET";
    }
    if (method=="POST")
    {
        contentType='application/x-www-form-urlencoded;charset=gb2312';
    }
    if (window.XMLHttpRequest)
    {
        this.req=new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        try
        {
            this.req = new ActiveXObject('MSXML2.XMLHTTP');
        }
        catch(e)
        {
            try
            {
                this.req = new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch(e)
            {
                this.onerror.call(this);
            }
        }
    }
    if (this.req)
    {
        try
        {
            var loader=this;
            this.req.onreadystatechange=function()
            {
                loader.onReadyState.call(loader);
            }
            this.req.open(method,url,true);
            if (contentType)
            {
                this.req.setRequestHeader('Content-Type', contentType);
            }
            this.req.send(params);
        }
        catch (err)
        {
            this.onerror.call(this);
        }
    }
}


net.ContentLoader.prototype.onReadyState = function()
{
    var req=this.req;
    if (req.readyState==net.READY_STATE_COMPLETE)
    {
        if (req.status==200 || req.status==0)
        {
            this.onload.call(this,req.responseText);
        }
        else
        {
            this.onerror.call(this,req.responseText);
        }
    }
}

net.ContentLoader.prototype.defaultError=function(){
  alert("error fetching data!"
    +"\n\nreadyState:"+this.req.readyState
    +"\nstatus: "+this.req.status
    +"\nheaders: "+this.req.getAllResponseHeaders());
}

//非异步AJAX提交，调用方法如下
//Ajax ajax = new Ajax("Ajax/AjaxCheck.aspx") //新建对象
//var r = ajax.post("id=1234");   //发送对象，并返回结果
function Ajax(url)
{
    var m_xmlReq=null;
    if(window.ActiveXObject)
    {
        try
        {
            m_xmlReq = new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch(e)
        {
            try{m_xmlReq = new ActiveXObject('Microsoft.XMLHTTP');}catch(e){}
        }
    }
    else if(window.XMLHttpRequest)
    {
        m_xmlReq = new XMLHttpRequest();
    }

    this.post=function(d)
    {
        if(!m_xmlReq) return;
        m_xmlReq.open('POST',url,false);
        m_xmlReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=gb2312');
        m_xmlReq.send(d);
        return m_xmlReq.responseText;
    }
}
//获得URL参数
function Request(){
    var Url=top.window.location.href.toLowerCase();
    var u,g,gg,strRt='';
    if(arguments[arguments.length-1]=="#")
       u=Url.split("#");
    else
       u=Url.split("?");
    if (u.length==1) g='';
    else g=u[1];

    if(g!=''){
       gg=g.split("&");
       var MaxI=gg.length;
       var str = arguments[0].toLowerCase()+"=";
       for(i=0;i<MaxI;i++){
          if(gg[i].indexOf(str)==0) {
            strRt=gg[i].replace(str,"");
            break;
          }
       }
    }
    return strRt;
}
//只允许输入整数，用例：<input onkeydown="onlyNum();" style="ime-mode:Disabled">
function onlyNum()
{
if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
event.returnValue=false;
} 
//只允许输入浮点数，用例：<input onkeydown="onlyFloat(this);" style="ime-mode:Disabled">
function onlyFloat(ipt)
{
    if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
    {
        if(event.keyCode==190)
        {
            if(/^\d*\.\d*$/.test(ipt.value))
                event.returnValue=false;
        }
        else if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
        {
            event.returnValue=false;
        }
    }
}

//获取偏移量
function getposOffset_top(what, offsettype)
{ 
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; 
    var parentEl=what.offsetParent; 
    while (parentEl!=null)
    { 
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop; 
         parentEl=parentEl.offsetParent; 
    } 
    return totaloffset; 
   
}
//判断是否为数字
function IsNum(s)
{
    if(s!=null)
    {

        if(/^[0-9]+$/.test(s))
            return true;
        else
            return false;
    }
    return false;
}
//用户输入时间与当前时间比较，小于系统时间返回less，大于返回big，等于返回equal
function equal(mydate)
{
	var d=new Date();
	var str_now=d.toString();
	var d_now = new Date(str_now.replace("-",",")).getTime();
	var d_mydate = new Date(mydate.replace("-",",")).getTime();
	if(d_mydate < d_now)
	{
		return "less";
	}
	else if(d_mydate > d_now)
	{
	    return "big"
	}
	return "equal";
}

//用户输入时间与当前日期比较
function DateEqual(mydate)
{
	var d=new Date();
	var str_now=d.toString();

	if( Date.parse(mydate.replace(/-/g,"/")) - Date.parse(str_now.replace(/-/g,"/")) >= 0 )
	{
	    return true;
	}
	else
	{
	    return false;
	}
}

//用户输入的两个时间比较
function DateCompare(date1,date2)
{
	if( Date.parse(date1.replace(/-/g,"/")) - Date.parse(date2.replace(/-/g,"/")) >= 0 )
	{
	    return true;
	}
	else
	{
	    return false;
	}
}

//限制多行输入框的输入字数<textarea maxlength="20" onkeyup="return isMaxLen(this)"></textarea>  
function isMaxLen(o){  debugger
var nMaxLen=o.getAttribute? parseInt(o.getAttribute("maxlength")):"";  
    if(o.getAttribute && o.value.length>nMaxLen){  
        o.value=o.value.substring(0,nMaxLen);
    }
}
//添加启动事件
function AddLoadFun(evnt,fun)
{
    if(window.attachEvent)
    {
        window.attachEvent('on'+evnt,fun);
    }
    else
    {
        window.addEventListener(evnt,fun,false);
    }
}


function ShowMSg(obj,msg,iserr)
{
    obj.innerHTML = msg;
    if(iserr == true)
    {
        obj.className = "notice_error";
    }
    else
    {
        obj.className = "notice";
    }
    obj.style.display = "inline";
}

function email_check(objEmail)
{
    var email = false;
    var val = $I(objEmail).value;
    var err = $I('msgEmail');

    if(val.trim()=="")
    {
        ShowMSg(err,'此项为必填项，请输入您的Email。',true);
        email = false;
        return false;
    }
    if(!/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/.test(val))
    {
        ShowMSg(err,'Email格式错误，请重新填写',true);
        email = false;
        return false;
    }
    return true;
}


//缺书登记建议

function check(objBookName,objBookSort,objName,objTelephone,objEmail,objCellphone)
{
    var valbookname=$I(objBookName).value;
    var err1=$I('msgBookname');
    
    var valbooksort=$I(objBookSort).value;
    var err2=$I('msgBooksort');
    
    var valname=$I(objName).value;
    var err3=$I('msgName');
    
    var valtelephone=$I(objTelephone).value;
    var err4=$I('msgTelephone');
    
    var valemail=$I(objEmail).value;
    var err5=$I('msgEmail');
    
    var valcellphone=$I(objCellphone).value;
    var err6=$I('msgCellphone');
    
    var b1=true,b2=true,b3=true,b5=true,b6=true;
    
    if(valbookname.trim()=="")
    {
        ShowMSg(err1,'此项为必填项!',true);
        b1=false;
    }
    
    
    if(valbooksort.trim()=="")
    {
        ShowMSg(err2,'此项为必填项!',true);
        b2=false;
    }
    
    if(valname.trim()=="")
    {
        ShowMSg(err3,'此项为必填项,请填写你的姓名!',true);
        b3=false;
    }
    
    if(valtelephone.trim()=="")
    {
        ShowMSg(err4,'此项为必填项,请填写你的电话!',true);
        b4=false;
    }
    
    if(valemail.trim()=="")
    {
        ShowMSg(err5,'此项为必填项,请填写你的邮箱地址!',true);
        b5=false;
    }
    else
    {
        if(!/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/.test(valemail))
        {
            ShowMSg(err5,'Email格式错误，请重新填写',true);
            b5=false;
        }
        else
        {
            b5=true;
        }
    }
    
     if(valcellphone.trim()=="")
    {
        ShowMSg(err6,'此项为必填项,请填写你的手机号码!',true);
        b6=false;
    }
    
    if(b1&&b2&&b3&&b4&&b5&&b6)
    {
        return true;
    }
    else
    {
        return false;
    }
}


//荣誉列表，点击显示大图片

 function ShowBig(src,title,intro)
    {
        var scrollHeight;
        var scrollWidth;
        if (typeof window.pageYOffset != 'undefined') 
        {
           scrollHeight = window.pageYOffset;
           scrollWidth = window.pageXOffset;
        }
        else if (typeof document.compatMode != 'undefined' &&document.compatMode != 'BackCompat') 
        {
           scrollHeight = document.documentElement.scrollTop;
           scrollWidth = document.documentElement.scrollLeft;
        }
        else if (typeof document.body != 'undefined') 
        {
           scrollHeight = document.body.scrollTop;
           scrollWidth = document.body.scrollLeft;
        }
        var div_obj=document.getElementById("divBig");
        scrollHeight += 190;
        scrollWidth += document.body.clientWidth/2 - 320;
        
	    div_obj.style.left=scrollWidth+'px';
	    div_obj.style.top=scrollHeight+'px';
	    div_obj.style.display="inline";
	    
        var image=new Image(); 
        image.src=src; 
        var temp = image.width;
        if(temp>600)
            document.getElementById("imgBig").width = 600;
        else
            document.getElementById("imgBig").width = temp;
	    document.getElementById("imgBig").src = src;
	    document.getElementById("title").innerText = title;
	    document.getElementById("intro").innerText = intro;
	}
	
	
	function CloseBig()
	{
	    document.getElementById("divBig").style.display="none";
	}

    function BookPool(Id,booltype)
    {
        var radio= $I(Id);
        if(radio.checked == true)
        {
            $I(booltype).value = radio.value;
        }
    }
    
    
    /**************************** 图书详细页面，鼠标移过图书，现实大图片 *******************************************/
      function show(event,_this,mess) 
      {
        event = event || window.event;
        var t1="<div   cellspacing='1' cellpadding='10' style='border-color:#CCCCCC;background-color:#FFFFFF;font-size:12px;border-style:solid;    border-width:thin;text-align:center; width:300px; line-height:22px; padding-bottom:10px;*margin-top:-10px;'><tr><td><img src='" + _this   + "' width='300' height='400' >    <br>"+mess+"</td></tr></table>";
        document.getElementById("divBigPic").innerHTML =t1;
        document.getElementById("divBigPic").style.top   = document.body.scrollTop + event.clientY + 10 + "px";
        document.getElementById("divBigPic").style.left = document.body.scrollLeft + event.clientX + 10 + "px";
        document.getElementById("divBigPic").style.display = "block";
    }
    
    function hide(_this) 
    {
        document.getElementById("divBigPic").innerHTML = "";
        document.getElementById("divBigPic").style.display = "none";
    }
    
    
    
//    function SetFocus(id)
//    {
//        document.getElementById(id).focus();
//          alert(id');
//    }
  /*****************************************************************/
//操作cookie
//value:不为空时,表示设置cookie
//value:为空时,表示得到这个名字的cookie
// add by jijunjian 2010-03-26;
function handlecookie(name, value, options) 
{ 
    if (typeof value != 'undefined') 
	{ // name and value given, set cookie 
        options = options || {}; 
        if (value === null || value == "")
		{ 
            value = ''; 
            options.expires = -1; 
        } 
        var expires = ''; 
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) 
        { 
            var date; 
            if (typeof options.expires == 'number') 
			{ 
                date = new Date(); 
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); 
            } 
			else 
			{ 
                date = options.expires; 
            } 
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE 
        } 
        var path = options.path ? '; path=' + options.path : ''; 
        var domain = options.domain ? '; domain=' + options.domain : ''; 
        var secure = options.secure ? '; secure' : ''; 
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); 
    } 
	else 
	{ // only name given, get cookie 
        var cookieValue = null; 
        if (document.cookie && document.cookie != '') 
		{ 
            var cookies = document.cookie.split(';'); 
            for (var i = 0; i < cookies.length; i++) 
			{ 
                var cookie = jQuery.trim(cookies[i]); 
                // Does this cookie string begin with the name we want? 
                if (cookie.substring(0, name.length + 1) == (name + '='))
				{ 
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 
                    break; 
                } 
            } 
        } 
        return cookieValue; 
    } 
};


///浏览器对象
var ABBrowser = 
{
    navi:navigator.userAgent.toLowerCase(),
    isIE:function()
    {
        var A = this;
        return(A.navi.indexOf("msie")!=-1)&&(A.navi.indexOf("opera")==-1)&&(A.navi.indexOf("omniweb")==-1)
    },
    getBody:function()
    {
        return(document.compatMode&&document.compatMode!="BackCompat")?document.documentElement:document.body
    },
    getScrollTop:function()
    {
        return this.isIE()?this.getBody().scrollTop:window.pageYOffset
    },
    getScrollLeft:function()
    {
        return this.isIE()?this.getBody().scrollLeft:window.pageXOffset
    },
    getAvailableHeight:function()
    {
        return this.getBody().offsetHeight>this.getBody().scrollHeight?this.getBody().offsetHeight:this.getBody().scrollHeight
    },
    getAvailableWidth:function()
    {
        return this.getBody().offsetWidth>this.getBody().scrollWidth?this.getBody().offsetWidth:this.getBody().scrollWidth
    },
    getViewWidth:function()
    {
        return self.innerWidth||(document.documentElement.clientWidth||document.body.clientWidth)
    },
    getViewHeight:function()
    {
        return self.innerHeight||(document.documentElement.clientHeight||document.body.clientHeight)
    },
    getPointerPositionInDocument:function(C)
    {
        var B=C;
        var A=B.pageX||(B.clientX+ABBrowser.getBody().scrollLeft);
        var D=B.pageY||(B.clientY+ABBrowser.getBody().scrollTop);
        return{"x":A,"y":D}
    },
    getElementPosition:function(C)
    {
        if(typeof C.offsetParent!="undefined")
        {
            for(var B=0,A=0;C;C=C.offsetParent)
            {
                B+=C.offsetLeft;
                A+=C.offsetTop;
            }
            return{"x":B,"y":A}
        }
        else
        {
            return{"x":B,"y":A}
        }
     }
};
