var imgTopMargin = -parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.1);
var imgSpeed = 15;
var timeSpeed = 200;
var hLimit = 0;
var timer;
var comid;
function checkImg()
{
    var reTimer = timeSpeed;
    if(document.body.offsetHeight > hLimit)
    {  
        var startPoint = parseInt($(comid).style.top,10);
        var endPoint =  document.documentElement.scrollTop|| document.body.scrollTop;
        if(endPoint!=0)
        {
            //alert(endPoint);
        }
        var newMargin=-parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.05);
        if(imgTopMargin <newMargin)
        {
            imgTopMargin=newMargin;
        }
        endPoint = (imgTopMargin <= endPoint ) ? endPoint - imgTopMargin : 0;        
        if(startPoint != endPoint)
        {
            moveAmount = Math.ceil(Math.abs(endPoint - startPoint) / 15);
            $(comid).style.top = parseInt($(comid).style.top,10) + ((endPoint<startPoint) ? -moveAmount : moveAmount)+"px";
            window.status=$(comid).style.top;
            reTimer = imgSpeed;
        }
    }
    else
    {
        $(comid).style.top = 0;
    }
    $(comid).style.left=((document.documentElement.scrollLeft||document.body.scrollLeft)+(document.documentElement.clientWidth||document.body.clientWidth) -170)+ "px";    
    updateCartInfoHeight();
    timer=setTimeout("checkImg();",reTimer);
}

function initImg(id)
{
    comid=id;
    document.getElementById(comid).style.top =  document.documentElement.scrollTop|| document.body.scrollTop+"px";
    checkImg();
}






var $=function(id){return document.getElementById(id)};
Array.prototype.extend=function(C){for(var B=0,A=C.length;B<A;B++){this.push(C[B]);}return this;}
function divDrag(){
    var A,B,$cn;
    var zIndex=1;
    var _left;
    var _top;
    this.dragStart=function(e){
        e=e||window.event;
        if((e.which && (e.which!=1))||(e.button && (e.button!=1)))return;
        var pos=this.$pos;
        $cn=this.parent||this;
        if(document.defaultView){
            _top=document.defaultView.getComputedStyle($cn,null).getPropertyValue("top");
            _left=document.defaultView.getComputedStyle($cn,null).getPropertyValue("left");}
        else{
            if($cn.currentStyle){_top=$cn.currentStyle["top"];_left=$cn.currentStyle["left"];}}
        pos.ox=(e.pageX||(e.clientX+document.documentElement.scrollLeft))-parseInt(_left);
        pos.oy=(e.pageY||(e.clientY+document.documentElement.scrollTop))-parseInt(_top);
        if(!!A){
            if(document.removeEventListener){
                document.removeEventListener("mousemove",A,false);
                document.removeEventListener("mouseup",B,false);}
            else{
                document.detachEvent("onmousemove",A);
                document.detachEvent("onmouseup",B);}}
        A=this.dragMove.create(this);
        B=this.dragEnd.create(this);
        if(document.addEventListener){
            document.addEventListener("mousemove",A,false);
            document.addEventListener("mouseup",B,false);}
        else{
            document.attachEvent("onmousemove",A);
            document.attachEvent("onmouseup",B);}
        $cn.style.zIndex=(++zIndex);
        this.stop(e);
    }
        this.dragMove=function(e){
            e=e||window.event;
            var pos=this.$pos;
            $cn=this.parent||this;
            $cn.style.top=(e.pageY||(e.clientY+document.documentElement.scrollTop))-parseInt(pos.oy)+'px';
            $cn.style.left=(e.pageX||(e.clientX+document.documentElement.scrollLeft))-parseInt(pos.ox)+'px';
            this.stop(e);}
        this.dragEnd=function(e){
            var pos=this.$pos;              
            e=e||window.event;
            if((e.which && (e.which!=1))||(e.button && (e.button!=1)))return;
            $cn=this.parent||this;
            if(!!(this.parent)){this.style.backgroundColor=pos.color}
            if(document.removeEventListener){
                document.removeEventListener("mousemove",A,false);
                document.removeEventListener("mouseup",B,false);}
            else{
                document.detachEvent("onmousemove",A);
                document.detachEvent("onmouseup",B);}
            A=null;
            B=null;
            $cn.style.zIndex=(++zIndex);
            this.stop(e);
        }
        this.shiftColor=function(){
            this.style.backgroundColor="#EEEEEE"; 
        }
        this.position=function (e){ 
            var t=e.offsetTop;
            var l=e.offsetLeft;
            while(e=e.offsetParent){ 
                t+=e.offsetTop; 
                l+=e.offsetLeft;}
            return {x:l,y:t,ox:0,oy:0,color:null}
        }
        this.stop=function(e){
            if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}
            if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}
        }
        this.stop1=function(e){
            e=e||window.event;
            if(e.stopPropagation){e.stopPropagation();}else{e.cancelBubble=true;}
        }
        this.create=function(bind){
            var B=this;
            var A=bind;
            return function(e){return B.apply(A,[e]);}
        }
        this.dragStart.create=this.create;
        this.dragMove.create=this.create;
        this.dragEnd.create=this.create;
        this.shiftColor.create=this.create;
        this.initialize=function(){
            for(var A=0,B=arguments.length;A<B;A++){
                C=arguments[A];
                if(!(C.push)){C=[C];}
                $C=(typeof(C[0])=='object')?C[0]:(typeof(C[0])=='string'?$(C[0]):null);
                if(!$C)continue;
                $C.$pos=this.position($C);
                $C.dragMove=this.dragMove;
                $C.dragEnd=this.dragEnd;
                $C.stop=this.stop;
                if(!!C[1]){$C.parent=C[1];$C.$pos.color=$C.style.backgroundColor;}
                if($C.addEventListener){
                    $C.addEventListener("mousedown",this.dragStart.create($C),false);
                    if(!!C[1]){$C.addEventListener("mousedown",this.shiftColor.create($C),false);}}
                else{$C.attachEvent("onmousedown",this.dragStart.create($C));
                    if(!!C[1]){$C.attachEvent("onmousedown",this.shiftColor.create($C));}}
            }
        }
        this.initialize.apply(this,arguments);
    }
    // JavaScript Document


    var documentClicked=true;
    function showHideMsg()
    {
        var msgDiv=$('msgDiv');
        if(msgDiv)
        {
            var display=msgDiv.style.display;
            if(display=='')
            {
                display='none';
                imgTopMargin=-parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.1);
            }else
            {
                display='';
                imgTopMargin=-parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.05);
            }
            msgDiv.style.display=display;
        }
    }
    function initFloat()
    {
        new divDrag(["titleDiv","winDiv"]);
        initImg('winDiv');
        $('winDiv').style.left=(document.body.scrollWidth -170)+ "px";    
        updateFloatCart();    
    }
    function showCartInfo(oResponse)
    {
        var response=oResponse.responseText;
        //alert("showCartInfo:"+response);
        $('msgDiv').innerHTML=response;
    
        // var height=$('msgDiv').height;    
        // if(height>500)
        // {
        //     $('msgDiv').style.height="500px";            
        // }
    
        $('titleNum').innerHTML=$('fc_totalNum').innerHTML;
        $('titleAmount').innerHTML=$('fc_totalAmount').innerHTML;
   
        updateCartInfoHeight();
    
    
    }
    function updateCartInfoHeight()
    {
        var infoDiv=$('cartInfoDiv');
        if(infoDiv)
        {
            var totalHeight=parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.7);
            //alert("h:"+document.body.clientHeight);
            if(infoDiv.style.maxHeight)
            {
                infoDiv.style.maxHeight =totalHeight+"px";
            }else
            {
                infoDiv.style.height =totalHeight+"px";
            }       
        }
    }

    function updateFloatCart()
    {
        //init cart info
        var url="/product/requestFloatCartInfo.do";
        new Ajax.Request(url,{method:"post",onComplete:showCartInfo});
    }
    function addProduct(productID,num)
    {
        /*if(hasLoginCookie==0)
        {
            window.location.href="/passport/login_input.do?returnUrl="+encodeURIComponent(window.location.href);     
            return;   
        }
        if(!num||num<1)
        {
            num=1;
        }*/
       
        var url="/product/addProduct.do";
        var paras="productID="+productID+"&productNum="+num;
        new Ajax.Request(url,{method:"post",parameters:paras,onComplete:addProductResult});
    }
    function addProductResult(oResponse)
    {
    	
        var responseText=oResponse.responseText;
        //alert("response:"+responseText);
        if(responseText)
        {
            var rs=responseText.split(":||:");
            var floatResult=rs[0];     
            if(floatResult=="success")
            {
                updateFloatCart();
                var msgDiv=$('msgDiv');
                if(msgDiv)
                {
                    msgDiv.style.display='';
                    imgTopMargin=-parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.05);
                }
            }else
            {
                if(floatResult=='login')
                {
                    window.location.href="/passport/login_input.do?returnUrl="+encodeURIComponent(window.location.href);     
                    return;
                }else
                {            
                    var error=rs[1];
                    var errorDiv=$('floatErrorDiv');
                    if(errorDiv)
                    {
                        var errorMsgDiv=$('errorMsgDiv');
                        errorMsgDiv.innerHTML='<span  style="font-size:12px;">'+error+'</span>';
                        //errorDiv.style.filter = "alpha(opacity=40)";
                        errorDiv.style.opacity = "0.90";
                        errorDiv.style.top = (document.body.scrollTop + document.documentElement.scrollTop+(window.screen.availHeight-250)/2)+"px";
                        errorDiv.style.left = (document.body.scrollLeft+(window.screen.availWidth-200)/2)+"px";//middle
                        errorDiv.style.display='';
                        if($('fcClose'))
                        {
                            $('fcClose').focus();
                        }                
                    }
                }
            }
        }
    }
    function hideFloatLayer()
    {
        //var evt=arguments[0];
        //var source=evt.srcElement ? evt.srcElement : evt.target;
        //alert(source);
        if(documentClicked)
        {
            var errorDiv=$('floatErrorDiv');
            if(errorDiv)
            {
                var display=errorDiv.style.display;
                if(display!='none')
                {
                    errorDiv.style.display='none';
                }
            }
            var msgDiv=$('msgDiv');
            if(msgDiv)
            {
                msgDiv.style.display='none';
                imgTopMargin=-parseInt((document.documentElement.clientHeight||document.body.clientHeight)*0.1);
            }
        }
        documentClicked=true;
    }



