// pan ve rectZoom'un kullandığı parametreler. Ekrana ilk ve son tıklanma anı.

var	panStart = { x: 0, y: 0 };
var	panStartUB = { x: 0, y: 0 };
var panEnd = {x: 0, y:0};
var zoomRect;
var isZoomRectEvent = 0;

var panFlag = 0;
var panLeftlick = 0;

var d;
var posx;
var posy;
var posx1;
var posy1;
var posX = null;
var posY = null;
var posX1 = null;
var posY1 = null;
var initx=false;
var inity=false;
var click1 = 0;
var click2 = 0;
var click3 = 0;
var sayfa = "";

function ClearMeasure(){
  coordsClicked = "";	
  posX = null;
  poxY = null;
  posX1 = null;
  posY1 = null;
  measurePointsX = null;
  measurePointsY = null;
  measurePointsX = new Array();
  measurePointsY = new Array();
  click2 = 0;
  jg.clear();
  jg1.clear();

  document.getElementById("toplamUzunluk").innerHTML="0";
  document.getElementById("ikiNoktaArasi").innerHTML="0";
  document.getElementById("alan").innerHTML="0";

}
	
function isRightClick(e){
	
	var ev=(!e)?window.event:e;
	
	var rightclick;
	
	if (ev.which) {
		rightclick = (ev.which == 3); 
		//alert('1');	
	} else if (ev.button)  {
		rightclick = (ev.button == 2); 
		//alert('2');	
	}
	return rightclick;
}

function onKeyDown(event){
    if (event == null)  // Bazen event boş dönebiliyor!! 
    	//event = window.event;

	if (event){
		if(event.keyCode){ // IE
			keynum = event.keyCode;
		}	
		else if(event.which){ // Netscape/Firefox/Opera
			keynum = event.which;
		}
		
		switch(keynum){
			//case 82 : getMap(curMinX, curMinY, curMaxX, curMaxY);  // Refresh (getMap)
			//		  break;
			//case 69 : zoomToExts();  // ZoomToExtentions
			//		  break;
			case 27 : if (operationsTabPanel.activeTab.no == 1){   // ölçüm değişkenleri sıfırlanacak.
						ClearMeasure();  						  
					  }			
					  break;	
		}
	}
}

// ZoomRect işlemi içerisinde olduğu zaman, MouseMove ona göre davranıyor. ?
var InZoomRect = false;

// Ozgur KUVVET 10,2010 ---------- TUM TARAYICILARDA CALISAN RECTANGLE ZOOM VE MEASURE FONKSIYONU 

var curMinX;
var curMinY;
var curMaxX;
var curMaxY;
function mapOnMouseDown(e){
	
	// EGER ZOOM IN BUTONUNA TIKLANMISSA SOL TIK YAPINCA doZoomIn DEGERINI 1 YAPARAK ZoomIn() FONKSIYONUNU CAGIRACAGIZ Ozgur KUVVET 08-02-2011
	if(eventFlag==8 && eventPanFlag!=1) {
		doZoomIn = 1;
		ZoomIn();
	}
	
	// EGER ZOOM OUT BUTONUNA TIKLANMISSA SOL TIK YAPINCA doZoomOut DEGERINI 1 YAPARAK ZoomOut() FONKSIYONUNU CAGIRACAGIZ Ozgur KUVVET 08-02-2011
	if(eventFlag==9 && eventPanFlag!=1) {
		doZoomOut = 1;
		ZoomOut();
	}
	
	// EGER OLCME YAPILIRKEN SAG TIKLANIRSA BIRINCI TIKLAMADA OLCME BITIRILIYOR, IKINCI TIKLAMADA PAN ISLEMI BASLIYOR Ozgur KUVVET 08-02-2011
	if (eventFlag == 3 && isRightClick(e)) { 

		if(click3==0) {
			rightClickDisable(); 
			ClearMeasure(); 
			click3 = 1; 
		} else {
			rightClickDisable();
			chooseEvent('btnPan');
			click3=0;
		}
		
	}

	//-----------------------------------------------------------------------------------------------------------------------------------------
	

	//document.onmousemove = ""; // MOZ ICIN EKLENDI Ozgur KUVVET
	var ie = (document.all) ? 1 : 0;
	
	if(eventPanFlag==1 || isRightClick(e) && eventFlag!=3) {
		
		panLeftlick = 1;	// MENUDEN PAN SECILI ISE SOL CLICK ILE PAN YAPILIYOR Ozgur KUVVET 07-02-2011
			
		chooseEvent('btnPan');
		
		document.onmousemove = function moveCagir() { mapOnMouseMove(e); } 
			
		
	} else { document.getElementById('map').style.border = "0px"; } // ELSE MOZ ICIN EKLENDI Ozgur KUVVET


	panStart = getImageCoords(e);
    	panStartUB.x = e.clientX;	
   	panStartUB.y = e.clientY;

    	//alert('mapOnMouseDown fonksiyonundan dönen  panStartUB.x ve y : ' + panStartUB.x+' , '+panStartUB.y);
    
	if(ie) {
	var mapWidth  = map.getAttribute("width");
	var mapHeight = map.getAttribute("height");
	} else {
	var mapWidth  = map.width;
	var mapHeight = map.height;	
	}

	//alert('Harita genişlik ve yükseklik: ' + mapWidth+' , '+mapHeight);

	if (eventFlag==1 && isZoomRectEvent==1 && !isRightClick(e) && eventPanFlag!=1 && eventFlag!=8 && eventFlag!=9) {	  // RECTANGLE ZOOM Butonuna tiklaninca yapilacaklar

			document.getElementById('map').style.cursor = "crosshair";

			click1 = click1 + 1;   // birinci tIklamada yapIlacaklar

			if (click1 == 1) {
				
					posx=0;posy=0;
					var ev=(!e)?window.event:e;
					if (ev.pageX){//Moz
						posx=ev.pageX+window.pageXOffset;
						posy=ev.pageY+window.pageYOffset;
					}
					else if(ev.clientX){//IE
						posx=ev.clientX+document.body.scrollLeft;
						posy=ev.clientY+document.body.scrollTop;
					}
				
					var LastCoords = imageCoordsToProjectCoords( posx, posy, mapWidth, mapHeight );	
					tmpCurMinX = LastCoords.x;
					tmpCurMinY = LastCoords.y;
				
					d = document.createElement('div');
					d.style.zIndex = '11';
					d.className='square';
					d.style.left=posx+'px';
					d.style.top=posy+'px';
					
					document.getElementsByTagName('body')[0].appendChild(d);
				
					document.onmousemove=function(e){
						
						if(ie){//IE
					
							var initx=ev.clientX;
							var inity=ev.clientY;					
							d.style.width=Math.abs(initx-posx)+'px';
							d.style.height=Math.abs(inity-posy)+'px';
							d.style.left=posx-initx<0?posx-1+'px':initx+1+'px';
							d.style.top=posy-inity<0?posy-3+'px':inity+3+'px';
					
						} else {//Moz
						
    						var initx = e.clientX;
    						var inity = e.clientY;
							d.style.width=Math.abs(initx-posx);
							d.style.height=Math.abs(inity-posy);
							d.style.left=posx-initx<0?posx-1:initx+1;
							d.style.top=posy-inity<0?posy-3:inity+3;
	
						}				
						
					}	

			// RECTANGLE ZOOM CALISIRKEN HARITA DISINDAKI BOLUMLERE TIKLANIRSA RECTANGLE ZOOM DEVRE DISI KALSIN Ozgur KUVVET 16-03-2011
			document.getElementById('topBannerContainer').onclick = function() { rectZoomProof(); }
			document.getElementById('buttons').onclick = function() { rectZoomProof(); }
			document.getElementById('styled_popup_yardim_table').onclick = function() { rectZoomProof(); }
			document.getElementById('styled_popup_sorgu').onclick = function() { rectZoomProof(); }
			document.getElementById('styled_popup_info').onclick = function() { rectZoomProof(); }
			document.getElementById('styled_popup_measure').onclick = function() { rectZoomProof(); }

				
			} else if (click1==2) {   // ikinci tIklamada yapIlacaklar
 

				var ev=(!e)?window.event:e;

				if (ev.pageX){//Moz
					posx1=ev.pageX+window.pageXOffset;
					posy1=ev.pageY+window.pageYOffset;
				}
				else if(ev.clientX){//IE
					posx1=ev.clientX+document.body.scrollLeft;
					posy1=ev.clientY+document.body.scrollTop;
				}
				
				var LastCoords = imageCoordsToProjectCoords( posx1, posy1, mapWidth, mapHeight );	
				tmpCurMaxX = LastCoords.x;
				tmpCurMaxY = LastCoords.y;
				
				if (tmpCurMinX > tmpCurMaxX) { curMinX = tmpCurMaxX; curMaxX = tmpCurMinX;} 
				else { curMinX = tmpCurMinX; curMaxX = tmpCurMaxX; }
				if (tmpCurMinY > tmpCurMaxY) { curMinY = tmpCurMaxY; curMaxY = tmpCurMinY;} 
				else { curMinY = tmpCurMinY; curMaxY = tmpCurMaxY; }
				
				click1 = 0;
				getMap(curMinX, curMinY, curMaxX, curMaxY);
				d.style.visibility = "hidden";
			    
			} 
			
			
	 } else if (eventFlag == 3 && !isRightClick(e)) {  	// OLCME BUTONUNA TIKLANMISSA OLCME ISLEMI YAPILIYOR
	 
	 		rightClickDisable();
					
			// OLCME YAPILIRKEN SAG TIKLAYINCA BIRINCI SAG TIKLAMADA CLEARMEASURE() OLUR IKINCI SAG TIKLAMADA PAN DEVREYE GIRER. 
			//BURADAKI click3 DEGERINI mapOnMouseDown() FONKSIYONUNUN BASINDA click3 ILE ILGILI GOREBILECEGINIZ KONTROLLER ICIN 0 YAPTIK Ozgur KUVVET 09-02-2011
			click3 = 0;
		 
	 		getMeasureEvent(e); 
			click2 = click2 + 1;   		// birinci tIklamada yapIlacaklar		 
			if (click2 == 1) {
				
		    	var ev=(!e)?window.event:e;
				if (ev.pageX){		//Moz
					posX=ev.pageX+window.pageXOffset;
					posY=ev.pageY+window.pageYOffset;
				} else if(ev.clientX){//IE
					posX=ev.clientX+document.body.scrollLeft;
					posY=ev.clientY+document.body.scrollTop;
				}
				
				/*measurePointsX.push(posx);
				measurePointsY.push(posy);
				jg.setStroke(2);				
				jg.setColor("#ff0000"); // red
  				jg.drawPolyline(measurePointsX,measurePointsY); // co-ordinates related to "myCanvas"
				jg.paint();       	 
	        	getMeasureEvent(e);*/
				//alert(click2);
				document.onmousemove=function(e){

				if (eventFlag==3 && click2>0) {					
				jg.setStroke(2);				
				jg.setColor("#000000"); // black
				
				var ev=(!e)?window.event:e;
						if(ie){//IE
						//document.getElementById("x").innerHTML = Math.abs(posY)
						//document.getElementById("y").innerHTML = Math.abs(ev.clientY);
						jg.clear();	
						if(posY > ev.clientY) {				
						jg.drawLine(posX, posY, ev.clientX+document.body.scrollLeft, ev.clientY+document.body.scrollTop+2);
						} else {
						jg.drawLine(posX, posY, ev.clientX+document.body.scrollLeft, ev.clientY+document.body.scrollTop-5);
						}
						jg.paint();			
					
						} else { // Moz
																									
						jg.clear();
						if(posY > ev.pageY) {
						jg.drawLine(posX, posY, ev.pageX+window.pageXOffset, ev.pageY+window.pageYOffset+2);
						} else {
						jg.drawLine(posX, posY, ev.pageX+window.pageXOffset, ev.pageY+window.pageYOffset-5);
						}
						jg.paint();						
						}	
					}
				}
				
			} else if (click2 == 2) {  	// ikinci tiklamada yapilacak olanlar
				//alert('test');
				var ev=(!e)?window.event:e;
				if (ev.pageX){//Moz
					posX1=ev.pageX+window.pageXOffset;
					if(posY > ev.pageY) {
					posY1=ev.pageY+window.pageYOffset+2;
					} else {
					posY1=ev.pageY+window.pageYOffset-5;
					}
				} else if(ev.clientX){//IE
					posX1=ev.clientX+document.body.scrollLeft;
					if(posY > ev.clientY) {
					posY1=ev.clientY+document.body.scrollTop+2;
					} else {
					posY1=ev.clientY+document.body.scrollTop-5;
					}
				}
				
				jg1.setStroke(2);
				jg1.setColor("#ff0000"); // red
  				
				jg1.drawLine(posX, posY, posX1, posY1); // co-ordinates related to "myCanvas"
			
				posX = posX1;
				posY = posY1;
				
				jg1.paint();       	 
	        	//getMeasureEvent(e);			
				click2 = 1;	

			}
		}		 
}

//------------------------------------------TUM TARAYICILARDA CALISAN RECT ZOOM FONKSIYONU SONU -----------------------


function mapOnMouseUp(e){
	
	var ev=(!e)?window.event:e;
	
	document.getElementById('map').style.border = "0px";
	
	InZoomRect = false;
	zoomRect.style.visibility  = 'hidden';

	if ((panLeftlick==1 || isRightClick(e)) && panFlag==1 ) {	// sag klik her zaman pan yapar 

	document.getElementById('map').style.MozOpacity="0.5";
	document.getElementById('loading').style.display="block";
	
	document.onmousemove = 	"";
	document.getElementById("styled_popup_measure").style.display="none";
	document.getElementById("styled_popup_info").style.display="none";

	panEnd = getImageCoords(e);

	panEnd.x = panStart.x + Number( map.style.left.replace('px','')); 
	panEnd.y = panStart.y + Number( map.style.top.replace('px','')); 
		
	rightClickDisable();		

	doPan( panStart, panEnd );

	document.getElementById('map').style.top=0;
	document.getElementById('map').style.left=0;

	document.getElementById('loading').style.display="none";
	document.getElementById('map').style.MozOpacity="1";

	panFlag = 0;
	panLeftlick = 0;
	
		
    } else { // sol klik, aktif olan taba göre - rect Zoom, seçim, ölçüm yapabilir.
		switch(eventFlag){
			case 1: // rectZoommmm
   	    		//RectZoom();
			    break;
			case 2:
			//alert('2');
				if(disableOnClickMap!=1) {
				document.getElementById("styled_popup_info_table").innerHTML = "";
				yukleniyor('styled_popup_info_table');
				document.getElementById("styled_popup_iliskili_table").style.display = "none";
				document.getElementById("resizeTool").style.display = "none";
				document.getElementById("resizeToolSorgu").style.display = "none";
				document.getElementById("closeRelTable").style.display = "none";
				document.getElementById("resizeTool").style.display = "none";
				document.getElementById("resizeTool").style.marginLeft = "0px";
				document.getElementById("styled_popup_iliskili_table").style.marginLeft = "0px";

				//alert(event.clientX+' , '+event.clientY);
				getFeatureInfoByCoordsEvent(e);
				} else { document.onmousemove = ""; disableOnClickMap = 0; }
	  			break;
			case 3:			  
				/*measurePointsX.push(panStart.x);
				measurePointsY.push(panStart.y);
				jg.clear();
				jg.setStroke(2);
				jg.setColor("#ff0000"); // red
  				jg.drawPolyline(measurePointsX,measurePointsY); // co-ordinates related to "myCanvas"
				jg.paint();        
	         	getMeasureEvent(event);*/
				//panFlag = 0;
	  			break; 
				case 4:
				document.onmousemove = "";
				break;
				case 7:	// PAN BUTONU SECILI ISE
				break;
			default:;   // bu durumda sifir ya da baska birsey ise... PAN  			  			
		}
	} 
}


function mapOnMouseWheel(event){

if(sayfa!='ECAP') {	// ECAP UYGULAMASI ISE MOUSEWHEEL CALISMAYACAK 01-04-2011 Ozgur KUVVET

	    if (event == null)  // Bazen event boş dönebiliyor!! 
	    	event = window.event;
	
		var delta = 0;
	    if (!event) /* For IE. */
			event = window.event;
	    if (event.wheelDelta) { /* IE/Opera. */
	        delta = event.wheelDelta/120;
	    	/** In Opera 9, delta differs in sign as compared to IE. */
			if (window.opera)
	        	delta = -delta;
		} else if (event.detail) { /** Mozilla case. */
	    	/** In Mozilla, sign of delta is different than in IE.
	         * Also, delta is multiple of 3. */
	         delta = -event.detail/3;
		}
	    var P = getImageCoords(event);
	        
	    /** If delta is nonzero, handle it.
	     * Basically, delta is now positive if wheel was scrolled up,
	     * and negative, if wheel was scrolled down. */
	     
	    if (delta)
	    	handle(delta, P.x, P.y);
		/** Prevent default actions caused by mouse wheel.
	     * That might be ugly, but we handle scrolls somehow
		 * anyway, so don't bother here.. */
	    if (event.preventDefault)
	    	event.preventDefault();
			event.returnValue = false;
}
}
//------------------------------------------------------------------------------------------------
// Asagidaki kodlar FireFox ta da mousewheel in calisabilmesi icin eklendi // 25-11-2010 Ozgur KUVVET
if (window.addEventListener)
        /** DOMMouseScroll is for mozilla. */
        window.addEventListener('DOMMouseScroll', mapOnMouseWheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = mapOnMouseWheel;
// Yukaridaki kodlar FireFox ta mousewheel in calisabilmesi icin eklendi // 25-11-2010 Ozgur KUVVET
//--------------------------------------------------------------------------------------------------

//function resizeMap(width, height){
//	map.setAttribute("width", width);
//	map.setAttribute("height", height);
	//getMap(curMinX, curMinY, curMaxX, curMaxY); 
//}

//function mapOnResize(){  // haritaYukle() fonksiyonunun altina tasindi.
 // ClearMeasure();
  //click2 = 0;
 // eventFlag = 15;
 // getMap(curMinX, curMinY, curMaxX, curMaxY);
//}

function vikvik( TP, newTab){
	if ((!newTab.everLoaded) && (newTab.ds)){
		newTab.ds.load();
		newTab.everLoaded = true;
	}
}

// feature datalarını gösteren aşağıdaki tabpanel değiştiği zaman.  
function dataGridChange( TP, newTab, currentTab  ){	
	
	if ((newTab) && (newTab.no!=0) && (! newTab.everLoaded) ) {
		// server'dan veri istenecek.
		// criteria hazırlanıyor....
		store 	 = TP.getItem(0).getStore();		
		colModel = TP.getItem(0).getColumnModel();
		
		if ((colModel) && (store) && (store.getTotalCount() > 0)){		
			var rec = store.getAt(0);  // ilk kaydı alıyoruzz
			
 			var criteria = "";
 			// burada her ilişki kadar....
 			
 			for (i=0;i<newTab.relDefs.length;i=i+1){ 		
 			 
 				var relCol = newTab.relDefs[i]["relColName"];
 				var col    = colModel.getColumnById(newTab.relDefs[i]["thisColName"]);
				 
 				if (criteria != "")
 					criteria = criteria + " AND ";
 				
 				criteria = criteria + getFormattedCriteria( relCol, col["colType"], rec.get(col["dataIndex"]) ); 				
 			}
 						
			var relatedData = getColumnValues( (TP.getItem(0).realName + '.' + newTab.realName) , '', criteria );
			if (relatedData){
			   	if (! IsItException(relatedData, 'Nesne Sorgulama Hata :')){
				    // objeye ait bilgi döndü ise.
					
					var colStruct = getColumnStruct( relatedData );
					if ((colStruct.columnStruct != null) && (colStruct.columnStruct.length > 0)){
						var tableName = getTableName( relatedData ); 	
						var cm  = getColModel( relatedData, colStruct );	
						var ds  = getDataStore( relatedData, colStruct );
						 									
						newTab.ds = ds;
						newTab.cm = cm;
						newTab.reconfigure( ds, cm );
					}
				}
			}			
		}
	}
}

function mapOnMouseMove(e){
	//document.onmousemove="";
	document.body.ondrag = "return false";
	var ev=(!e)?window.event:e;

	var P = getImageCoords(e); // o an bulunulan imaj pikselleri
	//alert('2');
	var w = document.getElementById('map').style.width;
	var h = document.getElementById('map').style.height;

	var LastCoords = imageCoordsToProjectCoords( P.x, P.y, w, h);

    if ( panLeftlick==1 || isRightClick(e) )  //@UB: 20.02.2008
	
    {
		document.onmousemove = MoveMap;
    } 
}

function MoveMap(olay)
{
	if(!olay) var olay = window.event;
		
		panFlag = 1; // PAN ISLEMI SIRASINDA 
		document.getElementById('map').style.cursor = "move";
		//document.getElementById('logoBaslik').innerHTML = mouseTop + ' - ' + mouseLeft;
        	document.getElementById('map').style.border = "1px dashed #999999";
		document.getElementById('buttons').style.display = "none";
		document.getElementById('styled_popup_info').style.display = "none";
		document.getElementById('topBannerContainer').style.display = "none";
		document.getElementById('styled_popup_sorgu').style.display = "none";
		document.getElementById('styled_popup_measure').style.display = "none";
		document.getElementById('map').style.top  =  (olay.clientY - panStartUB.y)+"px"; 
        	document.getElementById('map').style.left =  mapLeft = (olay.clientX - panStartUB.x)+"px"; 


	
	return true;
}

function mapOnMouseOut() {
	//isdrag=false;		// SURUKLEDIGIMIZ PENCERELERIN TAKILMASINA SEBEP OLUYORDU. DISABLE EDILDI Ozgur KUVVET 13-02-2011
}

