function ubicarEnPantalla(idObj,ubic)
{
    try{
        var obj = document.getElementById(idObj);
        var tope=0;
        var izquierda=0;
        var medioAlto=0; //la mitad de alto del obj.
        var medioAncho=0; //la mitad de ancho del obj.

        if (ubic==""||ubic==undefined)
            ubic="centro"
            
        tope=parseInt(distXY("Y"))+(parseInt(obtAlto()/2));
        izquierda=parseInt(distXY("X"))+(parseInt(obtAncho()/2));
        
        medioAlto=parseInt(parseInt(obj.style.height)/2);
        medioAncho=parseInt(parseInt(obj.style.width)/2);

        if (medioAlto>tope) {
            tope=medioAlto-tope;
        }else{
            tope=tope-medioAlto;
        }
        
        if (medioAncho>izquierda){
            izquierda=medioAncho-izquierda;
        }else{
            izquierda=izquierda-medioAncho;
        }
        
        switch(ubic)
        {
            case ('nor-este'):
            
            break;
            
            case ('sur-este'):
            
            break;
            
            case ('nor-oeste'):
            
            break;
            
            case ('sur-oeste'):
            
            break;

            case ('centro-arriba'):
                tope=parseInt(tope/2);
            break;

            case ('centro'):
//                tope=parseInt(tope/3);
            break;


            case ('centro-abajo'):

            break;

            case ('centro-derecha'):

            break;

            case ('centro-izquierda'):

            break;
            
            case ('bp'):  //debajo del puntero del mouse
            case ('bajo-puntero'):
                /*requiere "mover.js" que esté seteado
                el obj sobre el que se moverá, body de preferencia,
                y setear "v_lopPos=true;"                */
            	if (esIE()){
//PARCHEEEEEEE porque IE entiende que la posY es relativa a lo que se ve y NO toma en cuenta lo scrolado
	                tope=v_posY+parseInt(distXY("Y"));
            	}else{
	                tope=v_posY;
                }
                izquierda=v_posX;
            break;

			/*	requiere "mover.js" que esté seteado
				el obj sobre el que se moverá, body de preferencia,
				y setear "v_lopPos=true;"                */
            case ('bps'):  //debajo del puntero del mouse un poco mas desplazado hacia el sur
            case ('bajo-puntero-sur'):
            	if (esIE()){
//PARCHEEEEEEE porque IE entiende que la posY es relativa a lo que se ve y NO toma en cuenta lo scrolado
	                tope=v_posY+parseInt(distXY("Y"));
            	}else{
	                tope=v_posY;
                }
                tope=tope+12;
                izquierda=v_posX;
            break;

            case ('bpe'):  //debajo del puntero del mouse un poco mas desplazado hacia el este
            case ('bajo-puntero-este'):
            	if (esIE()){
//PARCHEEEEEEE porque IE entiende que la posY es relativa a lo que se ve y NO toma en cuenta lo scrolado
	                tope=v_posY+parseInt(distXY("Y"));
            	}else{
	                tope=v_posY;
                }
                izquierda=v_posX+12;
            break;

            default:
            case ('centro'):
                //nada
            break;
        }

//        window.alert ("tope final: "+tope);

//        window.alert((tope-medioAlto)+" - "+(izquierda-medioAncho));
        obj.style.top=tope;
        obj.style.left=izquierda;
        
        return true;
    }catch(anye){
        window.alert("Error centrando objeto ! - "+anye.message);
        return false;
    }
}

function distXY(coor)
{
  //regresa la cantidad en pixeles que esta desplazada la pagina hacia abajo y hacia a la derecha
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }

  switch (coor)
  {
    case('X'):
    case('x'):
        return scrOfX;
    break;

    case('Y'):
    case('y'):
        return scrOfY;
    break;
  }
}

function obtAlto() //regresa el valor numerico de los pixeles que mide la ventana actual
{                  //YA NO tiene hardcodeada una resta de 70px para IE y 80px para otros browsers !
    var valor = 0;
    if (esIE())
    {
        valor = parseInt(document.documentElement.clientHeight);
        if(isNaN(valor)||valor==0)
        {
            valor = parseInt(document.body.clientHeight);
        }
//        valor=valor-70;
    }else{
//        valor = parseInt(window.innerHeight)-80;
        valor = parseInt(window.innerHeight);
    }
    
//    window.alert ("alto: "+valor);
    return valor;
}

function obtAncho()
{
    var valor = 0;
    if (esIE())
    {
        valor = parseInt(document.documentElement.clientWidth);
        if(isNaN(valor)||valor==0)
        {
            valor = parseInt(document.body.clientWidth);
        }
//        valor=valor-70;
    }else{
        valor = parseInt(window.innerWidth);
    }
//    window.alert ("ancho: "+valor);
    return valor;
}

//INI OPACITY
function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible
	if(document.getElementById(id).style.opacity == 0) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}

function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//set the current image as background
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";

	//make image transparent
	changeOpac(0, imageid);

	//make new image
	document.getElementById(imageid).src = imagefile;

	//fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}

function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpac = 100;

	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpac = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpac, opacEnd, millisec)
}
//FIN OPACITY

