var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);
var saf;
if ((navigator.userAgent.toLowerCase().indexOf("safari")) >= 0)
{
	saf=true;
	ns6=false;
}
else
	saf=false;
var mode;
var mode_pan;
var mode_zoom_out;

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

var ie5_Scroll_Top_Pos = 0;
function rbtrackMouse(e){
    ie5_Scroll_Top_Pos = document.documentElement.scrollTop ?  document.documentElement.scrollTop : document.body.scrollTop;

    Xpos= (ie5)?window.document.body.scrollLeft+event.clientX:(ns6)?clientX=e.clientX+window.pageXOffset:(saf)?clientX=e.clientX:false;
    //Ypos= (ie5)?window.document.body.scrollTop+event.clientY:(ns6)?clientY=e.clientY+window.pageYOffset:(saf)?clientY=e.clientY:false;

    Ypos= (ie5)?ie5_Scroll_Top_Pos+event.clientY:(ns6)?clientY=e.clientY+window.pageYOffset:(saf)?clientY=e.clientY+window.pageYOffset:false;

	if (down == 1){

//alert("Xpos:"+Xpos+"offsetX:"+offsetX);
//down=0;
		if (((Xpos-offsetX) - xMin)<0)
			{
			Xpos = Xpos - ((Xpos-offsetX) - xMin);
			}
		if (((Xpos-offsetX) - xMin)>=xMax)
			{
			Xpos = Xpos - ((Xpos-offsetX - xMin)-xMax);
			}
		if (((Ypos-offsetY) - yMin)<0)
			{
			Ypos = Ypos - ((Ypos-offsetY) - yMin);
			}
		if (((Ypos-offsetY) - yMin)>=yMax)
			{
			Ypos = Ypos - (((Ypos-offsetY) - yMin)-yMax);
			}

		if (Ypos<y1)
			{
			document.getElementById("marco").style.top=Ypos-offsetY+"px";
		 	document.getElementById("marco").style.height=y1-Ypos+"px";
			}
		else
			{
			document.getElementById("marco").style.top=y1-offsetY+"px";
			document.getElementById("marco").style.height=Ypos-y1+"px";
			}
		if (Xpos<x1)
			{
			document.getElementById("marco").style.left=Xpos-offsetX+"px";
			document.getElementById("marco").style.width=x1-Xpos+"px";
			}
		else
			{
			document.getElementById("marco").style.left=x1-offsetX+"px";
			document.getElementById("marco").style.width=Xpos-x1+"px";
			}
		}

}
function rbdownMouse(){

	mode = document.getElementById("formu").zoommode[0].checked;
	mode_pan = document.getElementById("formu").zoommode[2].checked;
	mode_zoom_out = document.getElementById("formu").zoommode[1].checked;

	
	//if (mode!=true)
		//return;
	offsetX = findPosX(document.getElementById("plano"));
	offsetY = findPosY(document.getElementById("plano"));
	tempX = Xpos-offsetX;
	tempY = Ypos-offsetY;
	ix = Xpos-(document.getElementById("tabla").offsetLeft+2) - 174;
	iy = Ypos-(document.getElementById("tabla").offsetTop+2) - 15;
	if (ix<0) return true;
	if (iy<0) return true;

	document.getElementById("plano").getAttribute('x1').value=tempX;
	document.getElementById("plano").getAttribute('y1').value=tempY;
//alert("setting marco x:"+document.getElementById("marco").style.left+",y:"+document.getElementById("marco").style.top);
	document.getElementById("marco").style.top=Ypos-offsetY+"px";
	document.getElementById("marco").style.left=Xpos-offsetX+"px";
//alert("Xpos:"+Xpos+"offsetX:"+offsetX+"tabla:"+document.getElementById("tabla").offsetLeft);
//alert("setting marco x:"+document.getElementById("marco").style.left+",y:"+document.getElementById("marco").style.top);
	document.getElementById("marco").style.height=1+"px";
	document.getElementById("marco").style.width=1+"px";
	document.getElementById("marco").style.visibility="visible";
	x1=Xpos;y1=Ypos;
	Xstart = x1;
	Ystart = y1;
	down=1;
}
function rbupMouse(){
	var zoommode = "zoom";

        window.status = "upMouse";
	if (down == 1){
	document.getElementById("plano").getAttribute('x2').value=Xpos-document.getElementById("plano").offsetLeft;
	document.getElementById("plano").getAttribute('y2').value=Ypos-document.getElementById("plano").offsetTop;
	x2=Xpos;y2=Ypos;
	down=0;
	
	width = Xpos-x1;
	height = Ypos-y1;
	ix = (Xpos-(offsetX) - xMin)-(width/2);
	iy = (Ypos-(offsetY) - yMin)-(height/2);
        window.status = "box width="+ width + " height=" + height + " centerX="+ ix +" centerY="+iy;
	if (mode_pan)
	{
		newScale = rboldscale;
		zoommode = "pan";
	}
	else if (mode_zoom_out)
	{
		newScale = rboldscale + 0.25;
		if (newScale > 1.00)
			newScale = 1.00;
		zoommode = "out";
	}
	else
	{
		if (width>height)
			{
			newScale = rboldscale*width/460;
			}
		else
			{
			newScale = rboldscale*height/460;
			}
	}


	if (newScale < 0.125)
		newScale = 0.125;

	if (((width<5)&&(height<5)) || (mode_pan || mode_zoom_out))
		{
		gotoURL = rbactionprefix+"?zoommode="+zoommode+"&num="+rbnum+"&delay="+rbdelay+"&scale="+rboldscale+"&noclutter="+rbnoclutter+"&ID="+rbID+"&type="+rbtype+"&lat="+rblat+"&lon="+rblon+"&label="+rblabel+"&showstorms="+rbshowstorms+"&map.x="+(ix+xMin)+"&map.y="+(iy+yMin)+"&centerx="+rbcenterx+"&centery="+rbcentery+"&lightning="+rblightning+"&smooth"+rbsmooth+"&showlabels="+rbshowlabels+"&rainsnow="+rbrainsnow;	
		}
	else
		{
		gotoURL = rbactionprefix+"?zoommode="+zoommode+"&num="+rbnum+"&delay="+rbdelay+"&rbscale="+newScale+"&scale="+rboldscale+"&noclutter="+rbnoclutter+"&ID="+rbID+"&type="+rbtype+"&lat="+rblat+"&lon="+rblon+"&label="+rblabel+"&showstorms="+rbshowstorms+"&map.x="+(ix+xMin)+"&map.y="+(iy+yMin)+"&centerx="+rbcenterx+"&centery="+rbcentery+"&lightning="+rblightning+"&smooth="+rbsmooth+"&showlabels="+rbshowlabels+"&rainsnow="+rbrainsnow;
		}

	location.href=gotoURL;
	}
}
function init(){ 
	down=0;x1=y1=x2=y2=0;yMin=10;yMax=460;xMin=169;xMax=460;offsetX=offsetY=0;
}

function zoomin(p){
if ( x1==0 && x2==0 && y1==0 && y2==0 )
	{
	return true;
	}
p.value="GO";
latS=document.getElementById("lat1").value;
latN=document.getElementById("lat2").value;
lonW=document.getElementById("lon1").value;
lonE=document.getElementById("lon2").value;
dlat=(latN-latS);
dlon=(lonE-lonW);
vsize=document.getElementById("plano").height-18-26;
hsize=document.getElementById("plano").width-70-6;
ofx=(document.getElementById("tabla").offsetLeft+2);
ofy=(document.getElementById("tabla").offsetTop+2);
dx=x2-x1;
dy=y2-y1;
if ( dx > dy ) {
	dy2=dx*vsize/hsize;
	y1=y1-(dy2-dy)/2;
	y2=y2+(dy2-dy)/2;
	}
else {
	dx2=dy*hsize/vsize; 
	x1=x1-(dx2-dx)/2;
	x2=x2+(dx2-dx)/2;
	}
lat2=latN-(y1-ofy-18)*dlat/vsize;
lat1=latN-(y2-ofy-18)*dlat/vsize;
lon1=(lonW-0)+(x1-ofx-70)*dlon/hsize;
lon2=(lonW-0)+(x2-ofx-70)*dlon/hsize;
document.getElementById("lat1").value=lat1;
document.getElementById("lat2").value=lat2;
document.getElementById("lon1").value=lon1;
document.getElementById("lon2").value=lon2;
}

document.onload= init();
document.onmousemove= rbtrackMouse;
document.onmouseup= rbupMouse;

