/* $Id : common.js 4824 2007-01-31 08:23:56Z paulgao $ */
if(navigator.appName.indexOf("Explorer") > -1){//ie
    var exp = 1;
}else{//for ff
    var exp = 2;
}
(function (bool) {
//兼容FF一些方法
    var html;
    
    if (bool) {
    
        html = window.HTMLElement.prototype;
        
        window.__defineGetter__("event", function () {
        //兼容Event对象
            var o = arguments.callee;
            
            do {
            
                if (o.arguments[0] instanceof Event) return o.arguments[0];
            
            } while (o = o.caller);
            
            return null;
        
        });
        
        Event.prototype.__defineGetter__("fromElement", function () {
        /*
        这里：
        onmouseover的时候relatedTarget为鼠标离开（onmouseout）的对象
        onmouseout的时候relatedTarget为鼠标当前（onmouseover）的对象
        */
            return this.relatedTarget;

        });
        
        html.contains = function (o) {
            do {
                if (o == this) return true;
            } while (o = o.parentNode);
            return false;
        };
        
    }

})(/Firefox/.test(window.navigator.userAgent));

/* 检查新订单的时间间隔 */
var NEW_MSG_INTERVAL = 5000;

/* *
 * 开始检查短信息；
 */
function startCheckMobileMsg()
{
  checkMobileMsg()
  window.setInterval("checkMobileMsg()", NEW_MSG_INTERVAL);
}



/*
 * 检查订单
 */
function checkMobileMsg()
{
   xajax_check_mobile_msg();
}


/**
 * 确认后跳转到指定的URL
 */
function confirm_redirect(msg, url)
{
  if (confirm(msg))
  {
    location.href=url;
  }
}


/* *
 * 设置页面宽度
 */
function set_size(w)
{
  var y_width = document.body.clientWidth
  var s_width = screen.width
  var agent   = navigator.userAgent.toLowerCase();

  if (y_width < w)
  {
    if (agent.indexOf("msie") != - 1)
    {
      document.body.style.width = w + "px";
    }
    else
    {
      document.getElementById("bd").style.width = (w - 10) + 'px';
    }
  }
}

/* *
 * 显示隐藏图片
 * @param   id  div的id
 * @param   show | hide
 */
function showImg(id, act)
{
  if (act == 'show')
  {
    document.getElementById(id).style.visibility = 'visible';
  }
  else
  {
    document.getElementById(id).style.visibility = 'hidden';
  }
}


function winopen(url,width,height)
{
    var left = (screen.width/2) - width/2;
    var top = (screen.height/2) - height/2;
    var styleStr = 'toolbar=no,location=no,directories=auto,status=no,menubar=no,scrollbars=yes resizable=no,z-lock=yes,width='+width+',height='+height+',left='+left+',top='+top+',screenX='+left+',screenY='+top;
    window.open(url,"", styleStr);
}
    
/*
 * 气泡式提示信息
 */
var Message = Object();

Message.bottom  = 0;
Message.count   = 0;
Message.elem    = "popMsg";
Message.mvTimer = null;

Message.show = function()
{
  try
  {
    Message.controlSound('msgBeep');
    document.getElementById(Message.elem).style.visibility = "visible"
    document.getElementById(Message.elem).style.display = "block"

    Message.bottom  = 0 - parseInt(document.getElementById(Message.elem).offsetHeight);
    Message.mvTimer = window.setInterval("Message.move()", 10);

    document.getElementById(Message.elem).style.bottom = Message.bottom + "px";
  }
  catch (e)
  {
    alert(e);
  }
}

Message.move = function()
{
  try
  {
    if (Message.bottom == 0)
    {
      window.clearInterval(Message.mvTimer)
      Message.mvTimer = window.setInterval("Message.close()", 10000)
    }

    Message.bottom ++ ;
    document.getElementById(Message.elem).style.bottom = Message.bottom + "px";
  }
  catch (e)
  {
    alert(e);
  }
}

Message.close = function()
{
  document.getElementById(Message.elem).style.visibility = 'hidden';
  document.getElementById(Message.elem).style.display = 'none';
  if (Message.mvTimer) window.clearInterval(Message.mvTimer)
}

Message.controlSound = function(_sndObj)
{
  sndObj = document.getElementById(_sndObj);

  try
  {
    sndObj.Play();
  }
  catch (e) { }
}

var listZone = new Object();
var l_pos;
/* *
 * 显示正在载入
 */
listZone.showLoader = function()
{
  listZone.toggleLoader(true);
}

listZone.hideLoader = function()
{
  listZone.toggleLoader(false);
  clearInteval(l_pos);
}

listZone.toggleLoader = function(disp)
{
 document.getElementsByTagName('body').item(0).style.cursor = (disp) ? "wait" : 'auto';
 try
 {
  var loaddiv = document.getElementById("load-div");
  loaddiv.style.offsetWidth = window.screen.availWidth + 'px'; 
  l_pos = setInterval(function(){loaddiv.style.top = document.documentElement.scrollTop + 'px'},5);
  loaddiv.style.display = (disp) ? "" : 'none';
 }
 catch(ex){}
}

/* *
 * 显示操作结果
 */
var actionRet = new Object();
var m_pos,h_pos ; 
actionRet.show = function(msg,ret)
{
     try{
             clearTimeout(h_pos);
             var divMsg = document.getElementById('div_msg'); 
             divMsg.style.offsetWidth=window.screen.availWidth + 'px';
             divMsg.style.top = document.documentElement.scrollTop + 'px';     
             m_pos = setInterval(actionRet.resetPos,5) ;    
             var spanMsg = document.getElementById('spanMsg'); 
             spanMsg.style.display='';
             spanMsg.style.color = '#fff';
             if(ret == 1) //操作成功
             {
                 spanMsg.style.backgroundColor = 'green'; 
             }
             else
             {
                 spanMsg.style.backgroundColor = 'red'; 
             }
             spanMsg.innerHTML = '';
             spanMsg.appendChild(document.createTextNode(msg));
             h_pos = setTimeout(actionRet.hide,6000);
        }
        catch(ex){}
}
actionRet.resetPos =function()
{
     
     var divMsg = document.getElementById('div_msg'); 
         divMsg.style.top = document.documentElement.scrollTop + 'px';
}
actionRet.hide=function()
{
    try
    {
         document.getElementById('spanMsg').style.display='none';
         document.getElementById('spanMsg').innerHTML = '';
         clearInteval(m_pos);
    } 
    catch(ex){}  
}

function checkNumber(String) 
{ 
    var Letters = "1234567890"; 
    var i; 
    var c; 
    for( i = 0; i < String.length; i ++ ) 
    { 
        c = String.charAt( i ); 
        if (Letters.indexOf( c ) ==-1) 
        { 
        return true; 
        } 
    }     
    return false; 
}




var bodyScrollWidth = 0;
var bodyScrollHeight = 0;




function buildGlobalDiv(zIndex,nohide){
        var globalDiv = document.createElement( 'div' );
        globalDiv.id = 'globalDiv';
        
        if( 1 == exp ){
            globalDiv.style.filter = 'alpha(opacity=30)';
            globalDiv.style.zIndex = zIndex; 
            
        }else{
            globalDiv.style.opacity = 30/100;
        }
        document.getElementsByTagName('body').item(0).appendChild( globalDiv );
        globalDiv.style.position = 'absolute';
        globalDiv.style.top=0;
        globalDiv.style.left=0; 
        globalDiv.style.padding=0;
        globalDiv.style.margin=0; 
        
        globalDiv.style.width='100%';
        globalDiv.style.display='block';
        globalDiv.style.height=document.getElementsByTagName('body').item(0).clientHeight + 'px'; 
        globalDiv.style.backgroundColor='#aaa999';
        
        if(nohide==null)
        hideElementAll();
}
function dropGlobalDiv()
{
    try
    {
        document.getElementById('globalDiv').parentNode.removeChild(document.getElementById('globalDiv'));
        showElementAll();
    }
    catch(e){alert(e.message)}
}



//隐藏所有对象
function hideElementAll(){
    HideElement( 'SELECT' );
    HideElement( 'OBJECT' );
    HideElement( 'IFRAME' );
}

//隐藏主页面对象
function HideElement( strElementTagName ){
    try{
        for( i = 0 ; i < document.getElementsByTagName(strElementTagName).length ; i++ ){
            var objTemp =document.getElementsByTagName(strElementTagName)[i];
            objTemp.style.visibility = 'hidden';
        }
    }catch( e ){
        alert( e.message );
    }
}

//显示所有对象
function showElementAll(){
    ShowElement( 'SELECT' );
    ShowElement( 'OBJECT' );
    ShowElement( 'IFRAME' );
}
//显示主页面对象
function ShowElement( strElementTagName ){
    try{
        for( i = 0 ; i < document.getElementsByTagName(strElementTagName).length; i++ ){
            var objTemp = document.getElementsByTagName(strElementTagName)[i];
            objTemp.style.visibility = 'visible';
        }
    }catch( e ){
        alert( e.message );
    }
}



 function getLTWH(o)
  {
     var oLTWH=
     {
             "left":0,
             "top":0,
             "width":0,
             "height":0
     };
     //在IE中循环取offsetLeft、offsetTop将忽略border而产生误差，于是利用getBoundingClientRect()取值。-2是IE的2pxBUG。
     if(window.navigator.userAgent.indexOf("MSIE")>=1)
     {
             var oRect=o.getBoundingClientRect();
             oLTWH.left=oRect.left-2;
             oLTWH.top=oRect.top-2;
     }
     //利用FF的offsetLeft、offsetTop是相对于BODY的BUG取值。
     if(window.navigator.userAgent.indexOf("Firefox")>=1)
     {
             oLTWH.left=o.offsetLeft;
             oLTWH.top=o.offsetTop;
     }
     oLTWH.width=o.offsetWidth;
     oLTWH.height=o.offsetHeight;
     return oLTWH;
}

function getPosition(el)
{
    for (var lx=0,ly=0;el!=null;lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
    return {x:lx,y:ly}
}
function getElementPos(elementId) {

    var ua = navigator.userAgent.toLowerCase();
    var isOpera = (ua.indexOf('opera') != -1);
    var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof

    var el = document.getElementById(elementId);

    if(el.parentNode === null || el.style.display == 'none') 
    {
        return false;
    }

    var parent = null;
    var pos = [];
    var box;

    if(el.getBoundingClientRect)    //IE
    {
        box = el.getBoundingClientRect();
        var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
        var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);

        return {x:box.left + scrollLeft, y:box.top + scrollTop};
    }
    else if(document.getBoxObjectFor)    // gecko
    {
        box = document.getBoxObjectFor(el);
           
        var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
        var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;

        pos = [box.x - borderLeft, box.y - borderTop];
    }
    else    // safari & opera
    {
        pos = [el.offsetLeft, el.offsetTop];
        parent = el.offsetParent;
        if (parent != el) {
            while (parent) {
                pos[0] += parent.offsetLeft;
                pos[1] += parent.offsetTop;
                parent = parent.offsetParent;
            }
        }
        if (ua.indexOf('opera') != -1 
            || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) 
        {
                pos[0] -= document.body.offsetLeft;
                pos[1] -= document.body.offsetTop;
        } 
    }
        
    if (el.parentNode) { parent = el.parentNode; }
    else { parent = null; }
  
    while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') 
    { // account for any scrolled ancestors
        pos[0] -= parent.scrollLeft;
        pos[1] -= parent.scrollTop;
  
        if (parent.parentNode) { parent = parent.parentNode; } 
        else { parent = null; }
    }
    return {x:pos[0], y:pos[1]};
}
            
 function   FixPrototypeForGecko()   
  {   
  //非IE浏览器里的方法扩展
    if(typeof(HTMLElement)!="undefined")
    {
      HTMLElement.prototype.contains = function(obj)  // contains方法
      {
          while(obj!=null && typeof(obj.tagName)!="undefind")
          {if(obj==this) return true; obj=obj.parentNode;}
          return false;
      };
    }

    if(!/msie/i.test(navigator.userAgent)){
        Event.prototype.__defineGetter__("srcElement",function(){
            var node=this.target;
            while(node.nodeType != 1)node=node.parentNode;
            return node;
        });
        Event.prototype.__defineGetter__("fromElement",function(){// 返回鼠标移出的源节点
            var node;
            if(this.type == "mouseover")
                node = this.relatedTarget;
            else if(this.type == "mouseout")
                node = this.target;
            if(!node)return;
            while(node.nodeType != 1)node=node.parentNode;
            return node;
            });
        Event.prototype.__defineGetter__("toElement",function(){// 返回鼠标移入的源节点
            var node;
            if(this.type == "mouseout")
                node = this.relatedTarget;
            else if(this.type == "mouseover")
                node = this.target;
            if(!node)return;
            while(node.nodeType != 1)node=node.parentNode;
            return node;
            });
    }
  }
  /*
 * 气泡式提示信息
 */
var Message = Object();

Message.bottom  = 0;
Message.count   = 0;
Message.elem    = "popMsg";
Message.mvTimer = null;

Message.show = function()
{
  try
  {
    Message.controlSound('msgBeep');
    document.getElementById(Message.elem).style.visibility = "visible"
    document.getElementById(Message.elem).style.display = "block"

    Message.bottom  = 0 - parseInt(document.getElementById(Message.elem).offsetHeight);
    Message.mvTimer = window.setInterval("Message.move()", 10);

    document.getElementById(Message.elem).style.bottom = Message.bottom + "px";
  }
  catch (e)
  {
    alert(e);
  }
}

Message.move = function()
{
  try
  {
    if (Message.bottom == 0)
    {
      window.clearInterval(Message.mvTimer)
      Message.mvTimer = window.setInterval("Message.close()", 10000)
    }

    Message.bottom ++ ;
    document.getElementById(Message.elem).style.bottom = Message.bottom + "px";
  }
  catch (e)
  {
    alert(e);
  }
}

Message.close = function()
{
  document.getElementById(Message.elem).style.visibility = 'hidden';
  document.getElementById(Message.elem).style.display = 'none';
  if (Message.mvTimer) window.clearInterval(Message.mvTimer)
}

Message.controlSound = function(_sndObj)
{
  sndObj = document.getElementById(_sndObj);

  try
  {
    sndObj.Play();
  }
  catch (e) { }
}


