/* 
* $Id: mod_box1.js 607 2006-06-22 08:56:10Z uli $
* COPYRIGHT: (C) 2001 by ccgis. This program is free software under the GNU General Public
* License (>=v2). Read the file gpl.txt that comes with Mapbender for details. 
*/

var mb_isActive = false;
var mb_isBF = false;
var mb_zF = false;


function  mod_box_start(e){
	if ( typeof( genuss_onMousePartnersDown ) != "undefined" && ie ) {
		genuss_onMousePartnersDown( e );
	}

	mb_getMousePos(e,mb_isBF);
  if ( window.clickButton == 2 ) return;

	mb_isActive = true;
	mb_start_x = clickX;
	mb_start_y = clickY
	mb_end_x = mb_start_x+1;
	mb_end_y = mb_start_y+1;
	mb_offset_left = mb_start_x;
	mb_offset_top = mb_start_y;
	mb_offset_bottom = mb_start_y;
	mb_offset_right = mb_start_x
	mb_drawBox(mb_start_x,mb_start_y,mb_end_x,mb_end_y);
	return false;
}
function mod_box_run(e){
	if ( typeof( genuss_onMousePartnersMove ) != "undefined" )
		genuss_onMousePartnersMove( e );   

	window.frames[ 'overview' ].mod_showCoords_div_display( e );

	if(mb_isActive){
		mb_getMousePos(e,mb_isBF);
    if ( window.clickButton == 2 ) return;
		for(var i=0; i<mb_mapObj.length; i++){
			if(mb_mapObj[i].frameName == mb_isBF){
				var width = mb_mapObj[i].width;
				var height = mb_mapObj[i].height;
			}
		}
		if (((clickX>width) || (clickY>height) || (clickX<=0) ||(clickY<=0))){
			isActive = false;  
			mod_box_stop(e);
		}
		else{
			mb_end_x=clickX;
			mb_end_y=clickY;
			evalExtent();
		}
		return false;
	}
}
function mod_box_stop(e){
  if ( window.clickButton == 2 ) return;

	mb_hideElement("l_top");
	mb_hideElement("l_left");
	mb_hideElement("l_right");
	mb_hideElement("l_bottom");
	if(mb_isActive){
		mb_isActive = false;
		return mb_setMapExtent(mb_start_x,mb_start_y,mb_end_x,mb_end_y);
	}
	mb_isActive = false;
}
function mb_drawBox(left,top,right,bottom){
	mb_arrangeBox("l_top",left,top,right,top+2);
	mb_arrangeBox("l_left",left,top,left+2,bottom);
	mb_arrangeBox("l_right",right-2,top,right,bottom);
	mb_arrangeBox("l_bottom",left,bottom-2,right,bottom);
	mb_displayElement("l_top");
	mb_displayElement("l_left");
	mb_displayElement("l_right");
	mb_displayElement("l_bottom");
}
function mb_arrangeBox(name, left, top, right, bottom){
	var el = window.frames[mb_isBF].document.getElementById(name).style;
	el.height = Math.abs(bottom - top);
	el.width = Math.abs(right - left);
	el.top = top + "px";
	el.left = left + "px";
}
function mb_displayElement(name){
	window.frames[mb_isBF].document.getElementById(name).style.visibility = "visible";
}
function mb_hideElement(name) {
	window.frames[mb_isBF].document.getElementById(name).style.visibility = "hidden";
}
function evalExtent(){
	if(mb_start_x>mb_end_x){
		mb_offset_right=mb_start_x;
		mb_offset_left=mb_end_x;
	}
	else{
		mb_offset_left=mb_start_x;
		mb_offset_right=mb_end_x;
	}
	if(mb_start_y>mb_end_y){
		mb_offset_bottom=mb_start_y;
		mb_offset_top=mb_end_y;
	}
	else{
		mb_offset_top=mb_start_y;
		mb_offset_bottom=mb_end_y;
	}
	if((mb_start_x != mb_end_x)&&(mb_start_y != mb_end_y)){
		mb_drawBox(mb_offset_left,mb_offset_top,mb_offset_right,mb_offset_bottom);
	}
}

function mb_setMapExtent(x1,y1,x2,y2){
	if(x1 < x2){
		var minx = x1;
		var maxx = x2;
	}
	else{
		var minx = x2;
		var maxx = x1;
	}
	if(y1 < y2){
		var miny = y2;
		var maxy = y1;
	}
	else{
		var miny = y1;
		var maxy = y2;
	}
   // area or clickpoint ?
	var ret = new Array();
	if((maxx - minx) > 3 && (miny - maxy) > 3){
		var posMin = makeClickPos2RealWorldPos(mb_isBF,minx,miny);
		var posMax = makeClickPos2RealWorldPos(mb_isBF,maxx,maxy);
		ret[0] = posMin[0];
		ret[1] = posMin[1];
		ret[2] = posMax[0];
		ret[3] = posMax[1];
		return ret;
	// mb_setValidClipping(posMin[0],posMin[1],posMax[0], posMax[1]);
	}
	else{
		var posMin = makeClickPos2RealWorldPos(mb_isBF,minx,miny);
		ret[0] = posMin[0];
		ret[1] = posMin[1];
		return ret;      
		//zoom(mb_zF,true,1.0,pos[0], pos[1]);
	}
}
