function ops_preco_prazo(e,codprod){
    this.findPos = function (obj) {
        var curleft = curtop = 0;
        var body = document.getElementsByTagName('body').item(0);
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        if (obj.offsetParent) {
            while (obj = obj.offsetParent) {
                curleft += obj.offsetLeft
                curtop += obj.offsetTop
            }
        }
        return [curleft,curtop];
    };
    this.hideSelect = function(x,y,w,h){
        var re = /MSIE (\d)/i;
        var test = re.exec(navigator.userAgent);
        if(!test || (test[1] > 6)) return;
        var sels = document.getElementsByTagName('select');
        if(!sels) return;
        for(i=0;i<sels.length;i++){
            var xysel = this.findPos(sels[i]); var xsel  = xysel[0]; var ysel  = xysel[1];
            var wsel  = sels[i].offsetWidth; var hsel  = sels[i].offsetHeight;
            var x2 = x+w; var y2 = y+h;
            var x2sel = xsel+wsel; var y2sel = ysel+hsel;
            if((xsel > x2) || (ysel > y2) || (x2sel < x) || (y2sel < y)){
                continue;
            }
            sels[i].style.visibility = sels[i].style.visibility=='hidden' ? 'visible' : 'hidden';
        }
    };
    this.X = this.Y = this.w = this.h = 0;
    this.setPos = function(e,obj){
        this.w = parseInt((obj.style.width || obj.offsetWidth),10);
        var objStyle = obj.currentStyle ? obj.currentStyle : document.defaultView.getComputedStyle(obj,null);
        if(!this.w || isNaN(this.w)){
            this.w = objStyle['width'].replace(/px$/,'');
            this.w = parseInt(this.w,10);
        }
        this.h = parseInt((obj.style.height || obj.offsetHeight),10);
        if(!this.h || isNaN(this.h)){
            this.h = objStyle['height'].replace(/px$/,'');
            this.h = parseInt(this.h,10);
        }
        var oX = 10;
        var oY = 10;

        if(this.w && this.h){
            var evt = e? e : window.event;
            var targ = evt.target || evt.srcElement;

            var curX = !ie ? evt.pageX : evt.clientX+ietruebody().scrollLeft;
            var curY = !ie ? evt.pageY : evt.clientY+ietruebody().scrollTop;
            // window
            var ww  = ie&&!window.opera? ietruebody().clientWidth  : window.innerWidth  - 20;
            var wh  = ie&&!window.opera? ietruebody().clientHeight : window.innerHeight - 20;
            //janela disponivel
            var re    = ww - evt.clientX  - (ie&&!window.opera? 0 : 20);
            var be    = wh - evt.clientY  - (ie&&!window.opera? 0 : 20);
            var le    = ww - re ;
            var te    = wh - be ;

            var min_x = curX - le + 3 + (ie&&!window.opera?0:20);
            var min_y = curY - te + 3 + (ie&&!window.opera?0:20);
            var max_x = ww - this.w + min_x;
            var max_y = wh - this.h + min_y;

            if(this.w > ww){ // Não cabe
                this.X = min_x ;
            }else if(this.w < re - oX){ // Cabe na direita
                this.X = curX + oX;
            }else if(this.w < le - oX){// cabe na esquerda?
                this.X = curX - (this.w + oX);
            }else{
                this.X = Math.min(max_x, curX+oX);
            }

            if(this.h > wh){ // não cabe
                this.Y = min_y;
            }else if(this.h < be - oY){ // cabe em baixo
                this.Y = curY + oY;
            }else if(this.h < te - oY){ // cabe em cima
                this.Y = curY - (this.h+oY);
            }else{
                this.Y = Math.min(max_y, curY+oY);
            }
            obj.style.left = this.X + 'px';
            obj.style.top  = this.Y + "px";
        }
    };

    this.ietruebody = function(){return (document.compatMode && document.compatMode!='BackCompat')? document.documentElement : document.body; }
    var ie = e.srcElement ? true : false;
    if(typeof(codprod)=='undefined') codprod='';
    else if(isNaN(parseInt(codprod,10))) return;
    var ops = document.getElementById('tip_preco_prazo'+codprod);
    if(!ops) return(false);
    var display = ops.style.display == 'none'?'':'none';
    if(display == 'none'){
        this.w = parseInt((ops.style.width  || ops.offsetWidth),10);
        this.h = parseInt((ops.style.height || ops.offsetHeight),10);
        this.X = parseInt(ops.style.left.replace(/px$/,''),10);
        this.Y = parseInt(ops.style.top.replace(/px$/,''),10);
        if(!X || !Y){
            var xy = findPos(ops); this.X = xy[0]; this.Y = xy[1];
        }
        hideSelect(this.X,this.Y,this.w,this.h);
        ops.style.display = display;
        return;
    }
    ops.style.display = display;
    setPos(e,ops);
    hideSelect(this.X,this.Y,this.w,this.h);
}
