/*  
	2008.04.20, UB - eklenti
	createXMLDOM fonksiyonunda  code for Mozilla, Firefox, Opera iÃ¯Â¿Â½in xmlDoc yaratilirken 
	xmlDoc.async ozelligi "false" olarak ayarlandi. 	

	2008.04.07, UB - eklenti
	getShortPath1 fonksiyonuna layers(gÃ¯Â¿Â½rÃ¯Â¿Â½ntÃ¯Â¿Â½lenecek tabakalar) ,
        queryLayerName(sorgu tabakasÃ¯Â¿Â½),searchLayerName(network analizinde kullanÃ¯Â¿Â½lacak kapÃ¯Â¿Â½ tabakasÃ¯Â¿Â½),
        networkName(network analizi iÃ¯Â¿Â½in kullanÃ¯Â¿Â½lacak network adÃ¯Â¿Â½) parametre olarak geÃ¯Â¿Â½iliyor.

	2008.04.07, AA - eklenti
	"getXMLHTTPRequest" fonksiyonuna, tarayicinin destekledigi ajax versiyonunu son surumden ilkine dogru arayan bir mekanizma eklendi. 
	
	2008.03.31, AA - eklenti
	Default olarak hepsi baslangicta getCaps, getMap ve getFeature.. ayni url'yi kullanacaklar. 
	Ama sayfa yuklenir yuklenmez yapilacak getCapabilities istemi sonucunda bunlar degisecek.

	2007.12.12, AA - yaratildi
	Serverdan istem yapan temel fonksiyonlarin bulundugu js
		 
*/
// tabakalara ait "name","title","queryable","opaque","crs","minX","minY","maxX","maxY" bilgilerini tutan dizi.
// getCapabilities'de alÃ¯Â¿Â½nÃ¯Â¿Â½r, sayfa Ã¯Â¿Â½lene kadar tabaka listesine ihtiyaÃ¯Â¿Â½ duyulduÃ¯Â¿Â½unda kullanÃ¯Â¿Â½labilir.  
var layerArray 		= Array();  //@UB: withOutExtJs extObjects.js de tanÃ¯Â¿Â½mlÃ¯Â¿Â½ydÃ¯Â¿Â½

var CapabilitiesUrl = InternetAddress + "/WebGISServer/servlet/WebServer?";
var MapUrl 			= InternetAddress + "/WebGISServer/servlet/WebServer?";
var FeatureInfoUrl 	= InternetAddress + "/WebGISServer/servlet/WebServer?";

var map;
var layerListBox;
// bir request iÃ¯Â¿Â½lemde iken client'Ã¯Â¿Â½n bir diÃ¯Â¿Â½er request gÃ¯Â¿Â½ndermesini engeller. 
var stillInRequest		 = false;

// getMeasure iÃ¯Â¿Â½in kullanÃ¯Â¿Â½lan deÃ¯Â¿Â½iÃ¯Â¿Â½ken. 
var coordsClicked 		 = "";
var pen 				 = null;
var initialized 		 = false;

var lastPointClicked = {x: 0, y: 0};

// comboboxda son seÃ¯Â¿Â½ilmiÃ¯Â¿Â½ olan tabaka ve kolonu tutar. 
var selectedColumn = "";

var lastRelatedTableList = null;

/* <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
 * GUI iÃ¯Â¿Â½lemlerinden baÃ¯Â¿Â½Ã¯Â¿Â½msÃ¯Â¿Â½z olarak, SALT SUNUCUDAN ISTEM YAPAN FONKSIYONLAR. 
 * <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> */


//@UB: WithoutExtJs


function ClearOptions(OptionList) {
   if (OptionList != null){
	   // Always clear an option list from the last entry to the first
	   for (x = OptionList.length; x >= 0; x = x - 1) {
	      OptionList[x] = null;
	   }
   }
}


function AddToOptionList(OptionList, OptionValue, OptionText) {
   // Add option to the bottom of the list
   var opt = new Option(OptionText, OptionValue);
   opt.selected = true;
   if (OptionList != null){
      OptionList[OptionList.length] = opt;
   }

}

//@UB: WithoutExtJs
function fillLayersV2(){
 
   
 	ClearOptions(layerListBox);
	for (i=0; i<layerArray.length; i=i+1){
		AddToOptionList(layerListBox,layerArray[i]["name"],layerArray[i]["title"]);
	}
 
 
 
}


function getCapabilities(){
	var requestStr = CapabilitiesUrl + "request=GetCapabilities&version=1.3.0&service=WFS" + "&project=" + projectType;	
	return requestStr; 
}

/*
function getMap( minX, minY, maxX, maxY ){
	if ((initialized) && (!stillInRequest)) {
		stillInRequest = true;
		
		// CC clearCanvas();
		var layers     = getCheckedLayers();
		var requestStr = MapUrl + "request=GetMap&version=1.3.0" +
								  "&project=" + projectType +
							  	  "&layers=" + layers + 
							  	  "&styles=" + 
							  	  "&crs=" +
							  	  "&bbox=" + minX + "," + minY + "," + maxX + "," + maxY +
							  	  "&width=" + map.getAttribute("width") +
							  	  "&height=" + map.getAttribute("height") +
							  	  "&format=image/png"; 							  	  
		forDebug();	
		map.src = requestStr;

	}
}	 
*/

function assignImagePath( xml ){
	
	if (window.ActiveXObject) 
        { 
		var brwsr = "ie";
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
        xmlDoc.async=false; 
        xmlDoc.loadXML(xml.xml);
        } 
        // code for Mozilla, Firefox, Opera, etc. 
        else if (document.implementation && document.implementation.createDocument) 
        {  
		var brwsr = "moz";
		var serializer = new XMLSerializer();
		var xmlDoc1 = serializer.serializeToString(xml);
		//alert(xmlDoc1);
        //xmlDoc = document.implementation.createDocument("", "", null);
        //xmlDoc.load(xmlDoc1);
		parser=new DOMParser();
 		xmlDoc=parser.parseFromString(xmlDoc1,"text/xml");	
        } 
        // no good browser found 
        else 
        { 
        if (!xmlDoc.load(xml.xml)) 
        { 
        alert ("XML Belgesini yÃƒÂ¼klerken hata olustu!"); 
        } 
        } 
	
	if (brwsr == "ie") {  // Internet Explorer
	var imagePath = xmlDoc.getElementsByTagName("ImagePath");
 
	if (imagePath){
	
		imagePath = imagePath[0];
		if (imagePath){
			map.src = imagePath.childNodes[0].nodeValue;
			//alert(map.src);
			return true;		
		}
	} else
	{return false;}
	} else {  // FireFox
	
		var imagePath = xmlDoc.getElementsByTagName("ImagePath");
 
	if (imagePath){
	
		imagePath = imagePath[0];
		if (imagePath){
			map.src = imagePath.childNodes[0].textContent;

			//alert(map.src);
			return true;		
		}
	} else
	{return false;}
	
	}

}


function getMap( minX, minY, maxX, maxY ){
		
	if ((initialized) && (!stillInRequest)) {
		stillInRequest = true;
		
		// CC clearCanvas();
		var layers     = getCheckedLayers();
  
		var requestStr = MapUrl + "request=GetImage&version=1.3.0" +
								  "&project=" + projectType +
							  	  "&layers=" + layers +
							  	  "&styles=" + 
							  	  "&crs=" +
							  	  "&bbox=" + minX + "," + minY + "," + maxX + "," + maxY +
							  	//  "&width=" + map.getAttribute("width") +//@UB: withOutExtJs
							  	//  "&height=" + map.getAttribute("height") +//@UB: withOutExtJs
							  	  "&width=" +document.getElementById("map").width +
							  	  "&height=" + document.getElementById("map").height +							  	  
							  	  "&format=image/png";				
						 	  		 
	 	var myRequest = getXMLHTTPRequest(); 
		
		myRequest.open("GET", requestStr, false);
		myRequest.send(null);
		
  		//forDebug();
		
		stillInRequest = false;
		//alert(myRequest.responseText);
		var xmlDoc = myRequest.responseXML;
		if (xmlDoc){
			BBox = xmlDoc.getElementsByTagName("BoundingBox");
			if (BBox){
				
				BBox = BBox[0];

				if (BBox){
					curMinX = Number(BBox.attributes.getNamedItem("minx").value);
					curMinY = Number(BBox.attributes.getNamedItem("miny").value);
					curMaxX = Number(BBox.attributes.getNamedItem("maxx").value);
					curMaxY = Number(BBox.attributes.getNamedItem("maxy").value);
				}
			}			 
			
			assignImagePath(xmlDoc);
			
		}
	}

}	 

// P : imaj koordinatlarÃ¯Â¿Â½
function getFeatureInfoByCoords( P ){
	var requestStr = FeatureInfoUrl + "request=GetFeatureInfo&version=1.3.0" +
									  "&project=" + projectType +
	   				  		  	  	  "&layers=" + getCheckedLayers() + 
					  		  	  	  "&styles=" + 
					  		      	  "&crs=" +
					  		      	  "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
					  		      	  "&width=" + map.width +
					  		      	  "&height=" + map.height +
					  		      	  "&format=image/png" +					  		      
								  	  "&query_layers=" + getCheckedLayers() +
								  	  "&info_format=text/xml" +
								  	  // "&feature_count=" + // Opsiyonel parametre; default degeri 1
								  	  "&i=" + P.x +
								  	  "&j=" + P.y;
								  	  // "&exceptions=" // opsiyonel parametre; default degeri "xml"
	//alert(requestStr);
 	var myRequest = getXMLHTTPRequest(); 
	myRequest.open("GET", requestStr, false); 
	// getFeatureInfo sonucu donuyor!
	myRequest.send(null);
	var y = myRequest.responseXML;

	//if (ge) {

        /*var container = ge.getGlobe().getFeatures();   
        var objectList = container.getChildNodes();   
        for (var i = 0; i < objectList.getLength(); ++i) 
        {     container.removeChild(objectList.item(i)); }*/

	
		
		var  kmlXML = myRequest.responseText;
		//alert(kmlXML);
		var lookat = kmlXML.substring(kmlXML.indexOf('<lookat>'),kmlXML.indexOf('</lookat>')+9);


		var latValue = lookat.substring(lookat.indexOf('<lookat>')+8,lookat.indexOf(',')-1);
		var lonValue = lookat.substring(lookat.indexOf(',')+1,lookat.indexOf('</lookat>')-1);
	
		kmlXML = '<?xml version="1.0" encoding="ISO-8859-9"?>' + kmlXML.substring(kmlXML.indexOf('<kml '),kmlXML.indexOf('</kml>')+6);

		//var marker = ge.parseKml(kmlXML);
		//ge.getFeatures().appendChild(marker);

	    	//var la = ge.createLookAt('');

		var x = parseFloat(lonValue);
		var y = parseFloat(latValue);

		document.getElementById('lonValue').value = x;
		document.getElementById('latValue').value = y;

		document.getElementById('kmlXML').value = kmlXML;

		

	    //la.set( parseFloat(lonValue), parseFloat(latValue), 80, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 45, 900);
	    //ge.getView().setAbstractView(la);
	//}
	//alert(myRequest.responseXML.xml);
	return myRequest.responseXML;
}
function getShortPath1(layers,criteria,queryLayerName,searchLayerName,networkName){
       
	var requestStr = CapabilitiesUrl + "request=GetShortPath&version=1.3.0" +
									  "&project=" + projectType +
	   				  		  	  	  "&layers=" + layers + 
					  		  	  	  "&styles=" + 
					  		      	  "&crs=" +
					  		      	  "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
					  		      	  "&width=" + map.getAttribute("mapWidth") +
					  		      	  "&height=" + map.getAttribute("mapHeight") +
					  		      	  "&format=image/png" +				
					  		      	  "&zoomFactor=2" + 
					  		      	  "&criteria=" + criteria +	  		      									  	   				  		  	  	  		  		     
					  		      	  "&query_layer_name=" + queryLayerName +	  		      									  	   				  		  	  	  		  		     
									  "&search_layername=" + searchLayerName +
									  "&stop_coord_X=" +curMinX+
									  "&stop_coord_Y=" +curMinY+
									  "&network_name=" + networkName;

 	var myRequest = getXMLHTTPRequest();
	myRequest.open("GET", requestStr, false); 
	
	myRequest.send(null);
	return myRequest.responseXML;
	
}

//@UB: 08.03.2008
function getFeatureInfoByColumnValue2( querylayers, criteria, layers ){
    
    
	var requestStr = FeatureInfoUrl + "request=GetFeatureInfo&version=1.3.0" +
									  "&project=" + projectType +
	   				  		  	  	  "&layers=" + layers + 
					  		  	  	  "&styles=" + 
						  		      "&crs=" +
						  		      "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
						  		      "&width=" +  map.getAttribute("mapWidth")  +
						  		      "&height=" + map.getAttribute("mapHeight") +
						  		      "&format=image/png" +					  		      
									  "&query_layers=" + querylayers +
									  "&info_format=text/xml" +
									  "&selection_type=3" +
									  "&criteria=" + criteria +
									  "&zoom_factor=1" ;


 	var myRequest = getXMLHTTPRequest();
	myRequest.open("GET", requestStr, false); 
	// getFeatureInfo sonucu donuyor!
	myRequest.send(null);
	
	//if (ge) {
		var  kmlXML = myRequest.responseText;
		var lookat = kmlXML.substring(kmlXML.indexOf('<lookat>'),kmlXML.indexOf('</lookat>')+9);
		var latValue = lookat.substring(lookat.indexOf('<lookat>')+8,lookat.indexOf(',')-1);
		var lonValue = lookat.substring(lookat.indexOf(',')+1,lookat.indexOf('</lookat>')-1);
	
        /*var container = ge.getGlobe().getFeatures();   
        var objectList = container.getChildNodes();   
        for (var i = 0; i < objectList.getLength(); ++i) 
        {     container.removeChild(objectList.item(i)); }*/	
	
		kmlXML = '<?xml version="1.0" encoding="ISO-8859-9"?>' + kmlXML.substring(kmlXML.indexOf('<kml '),kmlXML.indexOf('</kml>')+6);


		var x = parseFloat(lonValue);
		var y = parseFloat(latValue);

		document.getElementById('lonValue').value = x;
		document.getElementById('latValue').value = y;

		document.getElementById('kmlXML').value = kmlXML;

	
		//var marker = ge.parseKml(kmlXML);
		//ge.getFeatures().appendChild(marker);
	    //var la = ge.createLookAt('');
	    //la.set( parseFloat(lonValue), parseFloat(latValue), 80, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 45, 900);
	    //ge.getView().setAbstractView(la);
	//}
	
	return myRequest.responseXML;
}


function getFeatureInfoByColumnValue( querylayers, criteria ){
 var wValue = "";
 var hValue = "";
 wValue = map.width;
 if (wValue == "0") {
  wValue = map.mapwidth;
 }
 hValue = map.height;
 if (hValue == "0") {
  hValue = map.mapheight;
 }

 var requestStr = FeatureInfoUrl + "request=GetFeatureInfo&version=1.3.0" +
           "&project=" + projectType +
           "&layers=" + getCheckedLayers() + 
           "&styles=" + 
           "&crs=" +
           "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
           "&width=" + wValue +
           "&height=" + hValue +
           "&format=image/png" +               
           "&query_layers=" + querylayers +
           "&info_format=text/xml" +
           "&selection_type=3" +
           "&criteria=" + criteria +
           "&feature_count=99999999" + 
           "&zoom_factor=2" ;

 //alert(requestStr);
 
 var myRequest = getXMLHTTPRequest();


 myRequest.open("GET", requestStr, false);
 myRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=iso-8859-9");
 myRequest.send(null);


 // getFeatureInfo sonucu donuyor!

	//if (ge) {
		var  kmlXML = myRequest.responseText;
		//alert(kmlXML);	

		//var lookat = xmlDoc.substring(xmlDoc.indexOf('<lookat>'),xmlDoc.indexOf('</lookat>')+9);


		var lookat = kmlXML.substring(kmlXML.indexOf('<lookat>'),kmlXML.indexOf('</lookat>')+9);


		var latValue = lookat.substring(lookat.indexOf('<lookat>')+8,lookat.indexOf(',')-1);
		var lonValue = lookat.substring(lookat.indexOf(',')+1,lookat.indexOf('</lookat>')-1);

	
		var kml = '<?xml version="1.0" encoding="ISO-8859-9"?>' + kmlXML.substring(kmlXML.indexOf('<kml '),kmlXML.indexOf('</kml>')+6);		
		
		var x = parseFloat(lonValue);
		var y = parseFloat(latValue);

		document.getElementById('lonValue').value = x;
		document.getElementById('latValue').value = y;

		document.getElementById('kmlXML').value = kml;



 return myRequest.responseXML;
}

//@UB: 07.08.2008 zoom factor eklendi
function getFeatureInfoByColumnValueByZoomFactor( querylayers, criteria,zoomFactor ){
 var wValue = "";
 var hValue = "";
 wValue = map.width;
 if (wValue == "0") {
  wValue = 627;
 }
 hValue = map.height;
 if (hValue == "0") {
  hValue = 400;
 }
 
 var requestStr = FeatureInfoUrl + "request=GetFeatureInfo&version=1.3.0" +
           "&project=" + projectType +
                    "&layers=" + getCheckedLayers() + 
                 "&styles=" + 
                "&crs=" +
                "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
                "&width=" + wValue +
                "&height=" + hValue +
                "&format=image/png" +               
           "&query_layers=" + querylayers +
           "&info_format=text/xml" +
           "&selection_type=3" +
           "&criteria=" + criteria +
           "&feature_count=99999999" + 
           "&zoom_factor=" + zoomFactor ;

//alert(requestStr);

  var myRequest = getXMLHTTPRequest();
  
 myRequest.open("GET", requestStr, false); 

 myRequest.send(null);
 // getFeatureInfo sonucu donuyor!
 	/*if (ge) {
		var  kmlXML = myRequest.responseText;
		var lookat = kmlXML.substring(kmlXML.indexOf('<lookat>'),kmlXML.indexOf('</lookat>')+9);
		var latValue = lookat.substring(lookat.indexOf('<lookat>')+8,lookat.indexOf(',')-1);
		var lonValue = lookat.substring(lookat.indexOf(',')+1,lookat.indexOf('</lookat>')-1);
        var container = ge.getGlobe().getFeatures();   
        var objectList = container.getChildNodes();   
        for (var i = 0; i < objectList.getLength(); ++i) 
        {     container.removeChild(objectList.item(i)); }	
	
		kmlXML = '<?xml version="1.0" encoding="ISO-8859-9"?>' + kmlXML.substring(kmlXML.indexOf('<kml '),kmlXML.indexOf('</kml>')+6);

		var x = parseFloat(lonValue);
		var y = parseFloat(latValue);

		document.getElementById('lonValue').value = x;
		document.getElementById('latValue').value = y;

		document.getElementById('kmlXML').value = kml;

		
		//var marker = ge.parseKml(kmlXML);
		//ge.getFeatures().appendChild(marker);
	    //var la = ge.createLookAt('');
	    //la.set( parseFloat(lonValue), parseFloat(latValue), 80, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 45, 900);
	    //ge.getView().setAbstractView(la);
	}*/
 
 
 
 return myRequest.responseXML;
}


//@UB: 27.04.2008 ECAP icin eklendi. (ada / parsel  genelde nesnenin name alanindadir)
function getFeatureInfoByEntityName( querylayers, entityName,zoomFactor ){
	
	if (zoomFactor == "") {
		zoomFactor = 2;
	}
	var requestStr = FeatureInfoUrl + "request=GetFeatureInfo&version=1.3.0" +
									  "&project=" + projectType +
	   				  		  	  	  "&layers=" + getCheckedLayers() + 
					  		  	  	  "&styles=" + 
						  		      "&crs=" +
						  		      "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
						  		      "&width=" + map.getAttribute("mapwidth") +
						  		      "&height=" + map.getAttribute("mapheight") +
						  		      "&format=image/png" +					  		      
									  "&query_layers=" + querylayers +
									  "&info_format=text/xml" +
									  "&entity_name=" +entityName +
									  "&selection_type=1" +									  									 								  
									  "&zoom_factor=" + zoomFactor;
								  
									  
	

 	var myRequest = getXMLHTTPRequest();
	myRequest.open("GET", requestStr, false); 
	myRequest.send(null);
	
	// getFeatureInfo sonucu donuyor!
	//if (ge) {
		var  kmlXML = myRequest.responseText;
		var lookat = kmlXML.substring(kmlXML.indexOf('<lookat>'),kmlXML.indexOf('</lookat>')+9);
		var latValue = lookat.substring(lookat.indexOf('<lookat>')+8,lookat.indexOf(',')-1);
		var lonValue = lookat.substring(lookat.indexOf(',')+1,lookat.indexOf('</lookat>')-1);
        /*var container = ge.getGlobe().getFeatures();   
        var objectList = container.getChildNodes();   
        for (var i = 0; i < objectList.getLength(); ++i) 
        {     container.removeChild(objectList.item(i)); }	*/
	
		kmlXML = '<?xml version="1.0" encoding="ISO-8859-9"?>' +kmlXML.substring(kmlXML.indexOf('<kml '),kmlXML.indexOf('</kml>')+6);

		var x = parseFloat(lonValue);
		var y = parseFloat(latValue);

		document.getElementById('lonValue').value = x;
		document.getElementById('latValue').value = y;

		document.getElementById('kmlXML').value = kml;

			
		/*var marker = ge.parseKml(kmlXML);
		ge.getFeatures().appendChild(marker);
	    var la = ge.createLookAt('');
	    la.set( parseFloat(lonValue), parseFloat(latValue), 80, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 45, 900);
	    ge.getView().setAbstractView(la);*/
	//}
	
	
	return myRequest.responseXML;
}


// CoordsClicked: <P1.x>,<P1.y>;<P2.x>,<P2.y>.. formatÃ¯Â¿Â½nda, tÃ¯Â¿Â½klanan deÃ¯Â¿Â½erler.
function getMeasure( _CoordsClicked ){
	var requestStr = CapabilitiesUrl + "request=GetMeasure&version=1.3.0" +
									   "&project=" + projectType +	
									   "&layers=" + getCheckedLayers() + 
									   "&styles=" + 
									   "&crs=" +
									   "&bbox=" + curMinX + "," + curMinY + "," + curMaxX + "," + curMaxY +
									   "&width=" + map.width +
									   "&height=" + map.height +
									   "&format=image/png" + 
									   "&coords=" + _CoordsClicked;
	
	var myRequest = getXMLHTTPRequest();
	myRequest.open("GET", requestStr, false); 		
	myRequest.send(null);	
	
	return myRequest.responseXML; 
}

function getMetadata( whatToReturn, param ){
	//alert(param);
	var requestStr = CapabilitiesUrl + "request=GetMetadata&version=1.3.0" +
									   "&project=" + projectType +	
							 	   	   "&whatToReturn=" + whatToReturn + 
							 	   	   "&param=" + param;
	//alert(requestStr);	
	var myRequest = getXMLHTTPRequest();
	myRequest.open("GET", requestStr, false); 		
	myRequest.send(null);
	//alert(myRequest.responseXML.xml);
	return myRequest.responseXML; 

}

//Ýliþkili veri setleri combo box deðiþtiðinde çalýþacak fonksiyon eklendi 06-01-2011 Ozgur KUVVET
function onChangeValues() {
	 
	var LayerName = document.getElementById('layerName').innerHTML
	var selectedValue = document.getElementById('cbRelTableItems').value;
	var selObj = document.getElementById('cbRelTableItems');
	var selIndex = selObj.selectedIndex - 1;

	LayerName = LayerName+'.'+selectedValue;
	if(selectedValue!="") {

		var strCriteria = document.getElementById('criteriaString').innerHTML;
		var arrCriteria = strCriteria.split(','); 

		var xmlRelDoc = getColumnValues(LayerName,'',arrCriteria[selIndex]);
		fillRelGrid(xmlRelDoc,'styled_popup_iliskili_table');
	}
	
}

function getColumnValues( layerName, columnNames, criteria ){
	
	var requestStr = CapabilitiesUrl + "request=GetColumnValues&version=1.3.0" +
									   "&project=" + projectType +
							 	   	   "&layerName=" + layerName + 
							 	   	   "&columnsToFetch=" + columnNames + 
							 	   	   "&criteria=" + criteria;
	var myRequest = getXMLHTTPRequest();
	//alert(requestStr);
	myRequest.open("GET", requestStr, false);	
	 		
	myRequest.send(null);	
	
	return myRequest.responseXML; 		
}


/* <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
 * ----- SON ----- SALT SUNUCUDAN ISTEM YAPAN FONKSIYONLAR. 
 * <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> */



/* <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
 Sistem EVENTleri...  
 * <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> */


function getFeatureInfoByCoordsEvent(event){
	if (window.ActiveXObject){
	var brwsr = "ie";
		if ((initialized)&&(!stillInRequest)) {
		stillInRequest = true;
 		var P = getImageCoords(event);	
		var responseXML = getFeatureInfoByCoords(P);
		stillInRequest = false;
		
		if(!IsItException(responseXML, 'Hata Oldu : ')){		
			fillGrid( responseXML, 'styled_popup_info_table', '&nbsp;<font color=#333333 face=tahoma size=2><b>&#214;znitelik Bilgileri</b></font>');	
			//alert('1');
			getLastBoundingBOX( responseXML );
			// getInfo sonucunda highlight olmus imaj okunuyor.	
			//alert('1');
			assignImagePath(responseXML); 
			//alert('2');
			}
	}
	}
	// code for Mozilla, Firefox, Opera, etc.
	else {
	var brwsr = "moz";
		if ((initialized)&&(!stillInRequest)) {
		stillInRequest = true;
 		var P = getImageCoords(event);	
		var responseXML = getFeatureInfoByCoords(P);
		stillInRequest = false;
		
		if(!IsItException(responseXML, 'Hata Oldu : ')){		
			fillGrid( responseXML, 'styled_popup_info_table', '&nbsp;<font color=#333333 face=tahoma size=2><b>&#214;znitelik Bilgileri</b></font>');	
			//alert('1');
			getLastBoundingBOX( responseXML );
			// getInfo sonucunda highlight olmus imaj okunuyor.	
			assignImagePath(responseXML); 
			}
	}
	}
}

// bu event, listelenmiþ kolon deðerlerinden birisi seçildiðinde tetiklenir. 
function getFeatureInfoByColumnValueEvent(event){
	if ((initialized)&&(!stillInRequest)) {
		stillInRequest = true;
		
		var index = dataStoreLayerColumns.find( "colName", comboLayerColumns.getValue() );
 		
 		var criteria = getFormattedCriteria( comboLayerColumns.getValue(), dataStoreLayerColumns.getAt(index).get("colType"), event.getValue()); 

 		var responseXML = getFeatureInfoByColumnValue( comboLayer.getValue(), criteria );
		stillInRequest = false;

		if(!IsItException(responseXML, 'GetFeatureInfo : ')){	
			fillGrids( responseXML );
			getLastBoundingBOX( responseXML );	
			// getInfo sonucunda highlight olmus imaj okunuyor.	
			assignImagePath(responseXML); 
		}	
	}
}

function getRelatedTables(event){
	if ((initialized)&&(!stillInRequest)) {
		stillInRequest = true;

		stillInRequest = false;

	}
}

function getMeasureEvent( event ){
	if (initialized){
		var P = getImageCoords(event);
		//alert(P.x);
			
		if (coordsClicked!=""){			
			if (!stillInRequest) {
				stillInRequest = true;
	
				coordsClicked = coordsClicked + ";" + P.x + "," + P.y;
				//alert(coordsClicked);
				var responseXML = getMeasure(coordsClicked);
				
		if (window.ActiveXObject) 
        { 
		var brwsr = "ie";
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
        xmlDoc.async=false; 
        xmlDoc.loadXML(responseXML.xml);
        } 
        // code for Mozilla, Firefox, Opera, etc. 
        else if (document.implementation && document.implementation.createDocument) 
        {  
		var brwsr = "moz";
		var serializer = new XMLSerializer();
		var xmlDoc1 = serializer.serializeToString(responseXML);
		//alert(xmlDoc1);
        //xmlDoc = document.implementation.createDocument("", "", null);
        //xmlDoc.load(xmlDoc1);
		parser=new DOMParser();
 		xmlDoc=parser.parseFromString(xmlDoc1,"text/xml");	
        } 
        // no good browser found 
        else 
        { 
        if (!xmlDoc.load(responseXML.xml)) 
        { 
        alert ("XML Belgesini yüklerken hata olustu!"); 
        } 
        } 
		
				//alert(xmlDoc.xml);				
				stillInRequest = false;
				
				if(!IsItException(xmlDoc, 'GetMeasure : Hata Olustu')){						
					// Ã¯Â¿Â½imdi sonuÃ¯Â¿Â½ web sayfasÃ¯Â¿Â½na yansÃ¯Â¿Â½malÃ¯Â¿Â½. 		
					fillMeasureDisplay( xmlDoc );
				
					// CC drawLine( lastPointClicked.x, lastPointClicked.y, P.x, P.y ); // Ã¯Â¿Â½izgi Ã¯Â¿Â½izilecek.
					
					lastPointClicked.x = P.x;
					lastPointClicked.y = P.y;
				}		 	
			}
		}
		else { // eÃ¯Â¿Â½er coords un iÃ¯Â¿Â½i boÃ¯Â¿Â½ ise yapÃ¯Â¿Â½lacak birÃ¯Â¿Â½ey yok. 
			coordsClicked = P.x + "," + P.y;
			lastPointClicked.x = P.x;
			lastPointClicked.y = P.y;		 	
		}
	}  	
}

// event : combobox change eventi
// bu event, combobox'un select eventi olduÃ¯Â¿Â½undan getValue, tÃ¯Â¿Â½klanan tabaka ismini gÃ¯Â¿Â½nderecektir. 

function getColumnValuesEvent(event){
	if (initialized){
		if (!stillInRequest) {
			stillInRequest = true;
        		
        	// AA, 29.01.2008, Ã¯Â¿Â½imdilik critteriasÃ¯Â¿Â½z, tÃ¯Â¿Â½m kolonlar getiriliyor.... Ã¯Â¿Â½eÃ¯Â¿Â½itlenmeli.. 	
    		var responseXML = getColumnValues( comboLayer.getValue(), event.getValue(), "" );
    		
			stillInRequest = false;
			    		
			if(!IsItException(responseXML, 'getColumnValues : ')){
				fillComboColumnValues(event.getValue(), responseXML);
			}
		}
	} 
}

function getMetadataEvent( event ){
	comboLayerColumns.setVisible(false);
	comboColumnValues.setVisible(false);
		
	if (initialized){
		if (!stillInRequest) {
			stillInRequest = true;
			// bu event, combobox'un select eventi olduÃ¯Â¿Â½undan getValue, tÃ¯Â¿Â½klanan tabaka ismini gÃ¯Â¿Â½nderecektir. 
       
    		var responseXML = getMetadata( "columns", event.getValue() );
			stillInRequest = false;
			    		
			if(!IsItException(responseXML, 'getMetadata')){				
				fillComboLayerColumns(responseXML);					    		
			}
		}
	} 
}

/* <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
 * ------ SON ------- Ã¯Â¿Â½stem EVENTleri...  
 * <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> */

//function initialize(){ 
	// CC pen = new jsGraphics("Canvas"); 
	// CC pen.setColor("blue");		
//}


//function mapOnLoad(){  // ise yaramadigi icin kaldirildi 24-11-2010 Ozgur KUVVET
//	ClearMeasure();
//	click2 = 0;
	//eventFlag = 0;
//	stillInRequest = false;
//}

function IsItException(FeatureXmlDoc, ErrorTitle){
		 if (window.ActiveXObject) 
        { 
		var brwsr = "ie";
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
        xmlDoc.async=false; 
        xmlDoc.loadXML(FeatureXmlDoc.xml);
        } 
        // code for Mozilla, Firefox, Opera, etc. 
        else if (document.implementation && document.implementation.createDocument) 
        {  
		var brwsr = "moz";
		var serializer = new XMLSerializer();
		var xmlDoc1 = serializer.serializeToString(FeatureXmlDoc);
		//alert(xmlDoc1);
        //xmlDoc = document.implementation.createDocument("", "", null);
        //xmlDoc.load(xmlDoc1);
		parser=new DOMParser();
 		xmlDoc=parser.parseFromString(xmlDoc1,"text/xml");	
        } 
        // no good browser found 
        else 
        { 
        if (!xmlDoc.load(FeatureXmlDoc.xml)) 
        { 
        alert ("XML Belgesini yÃƒÂ¼klerken hata olustu!"); 
        } 
        } 
		
	if (brwsr == "ie") { // Internet Explorer
		
	var IsIt = false;
	
	if ( xmlDoc == null) { 
		Ext.MessageBox.show({ title: 'Nesne Sorgulama Hata :',
							  msg: 'Sunucu\'dan veri alÃ„Â±namadÃ„Â± ya da tarayÃ„Â±cÃ„Â±nÃ„Â±z "responseXML"i desteklemiyor.',
			           		  buttons: Ext.MessageBox.OK });
		IsIt = true;			           		  			           		  	 
    }
    else {
		var pNodes = xmlDoc.getElementsByTagName("ServiceException");
	    if ((pNodes != null) && (pNodes.length > 0)){  // exception dÃƒÂ¶ndÃƒÂ¼ ise. 
			/*Ext.MessageBox.show({ title: ErrorTitle,
			           			  msg: pNodes[0].childNodes[0].nodeValue,
			           			  buttons: Ext.MessageBox.OK });*/
			msgGoster(ErrorTitle + pNodes[0].childNodes[0].nodeValue); 
			// EXT hata penceresi yerine kendi hata penceremiz gorunecek. 24-11-2010 Ozgur KUVVET
			
			IsIt = true;

		}  
    }    
	return IsIt;
	
	} else {  // FireFox

	var IsIt = false;
	
	if ( xmlDoc == null) { 
		Ext.MessageBox.show({ title: 'Nesne Sorgulama Hata :',
							  msg: 'Sunucu\'dan veri alÃ„Â±namadÃ„Â± ya da tarayÃ„Â±cÃ„Â±nÃ„Â±z "responseXML"i desteklemiyor.',
			           		  buttons: Ext.MessageBox.OK });
		IsIt = true;			           		  			           		  	 
    }
    else {
		var pNodes = xmlDoc.getElementsByTagName("ServiceException");
	    if ((pNodes != null) && (pNodes.length > 0)){  // exception dÃƒÂ¶ndÃƒÂ¼ ise. 
			/*Ext.MessageBox.show({ title: ErrorTitle,
			           			  msg: pNodes[0].childNodes[0].nodeValue,
			           			  buttons: Ext.MessageBox.OK });*/
			msgGoster(ErrorTitle + pNodes[0].childNodes[0].nodeValue); 
			// EXT hata penceresi yerine kendi hata penceremiz gorunecek. 24-11-2010 Ozgur KUVVET
			IsIt = true;

		}  
    }    
	return IsIt;


	}
}

function createXMLDOM(){
	// code for IE
	if (window.ActiveXObject){
		var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument){
		var xmlDoc = document.implementation.createDocument("","",null);
		xmlDoc.async = false;	//@UB: 20.04.2008	
	}
	else{
		alert('TarayÃ„Â±cÃ„Â±nÃ„Â±z xml\'i desteklemiyor! ');
	}
	return xmlDoc;
}

function loadCapabilitiesXML( XmlName, layers ){

	 	var myRequest = getXMLHTTPRequest(); 			   
		myRequest.open("GET", XmlName, false);
	 		
	 	myRequest.setRequestHeader('Content-Type','text/xml');
		myRequest.send(null);

		//alert(myRequest.responseText);
		myRequest.onreadystatechange=function(){
			
		    //alert(myRequest.readyState);
			if(myRequest.readyState==4 && myRequest.status==200){
			//alert(myRequest.responseText);
			}
		}
				
		if (!myRequest.responseXML.documentElement && myRequest.responseStream && !window.XMLHttpRequest)
		{
			 
			if (window.DOMParser)
  			{
  			parser=new DOMParser();
  			xmlDoc=parser.parseFromString(myRequest.responseText,"text/xml"); 			
  			}
			else // Internet Explorer
 			{
  			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.loadXML(myRequest.responseText);
  			//alert(myRequest.responseText);
  			} 
		}
		else
		{
			//alert(myRequest.responseText);
			var xmlDoc = myRequest.responseXML;
		}
		
		//UB: 02.08.2010 aÃ¯Â¿Â½aÃ¯Â¿Â½Ã¯Â¿Â½daki kod IE 6.0 iÃ¯Â¿Â½in eklendi. getElementsByTagName Ã¯Â¿Â½alÃ¯Â¿Â½Ã¯Â¿Â½mÃ¯Â¿Â½yordu.
		//create a new ActiveX Object to handle the response
		
		//var xmlDoc= new ActiveXObject("Microsoft.XMLDOM");
		
		//----  ozgur IE haricinde tarayicilar icin kod ekledi 06-10-2010 BAÞLADI
			
		if (window.DOMParser)
  		{
  		parser=new DOMParser();
  		xmlDoc=parser.parseFromString(myRequest.responseText,"text/xml");
  		}
		else // Internet Explorer
 		{
  		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.loadXML(myRequest.responseText);
  		} 
	
		//----  ozgur IE haricinde tarayicilar icin kod ekledi 06-10-2010  BITTI
		
		
 	     
	if (! IsItException(xmlDoc, 'Sunucu baÃ„Å¸lantÃ„Â±sÃ„Â±nda hata : ')) {		
		// getMap ve getFeatureInfo icin url ler okunuyor. 
		var pNodes = xmlDoc.getElementsByTagName("OnlineResource");
  
		for (i = 0; i < pNodes.length; i=i+1) {	
		
			if ((pNodes[i].parentNode.nodeName == "Get")){
			
				if ( (pNodes[i].parentNode.parentNode.parentNode.parentNode.nodeName) == "GetMap" ) {
				 
				    if (pNodes[i].attributes.getNamedItem("xlink:href") != null) {					  
					    MapUrl = pNodes[i].attributes.getNamedItem("xlink:href").value;					  
					  }
					 
				}
				
				if ( (pNodes[i].parentNode.parentNode.parentNode.parentNode.nodeName) == "GetFeatureInfo" ) {
					 
                    if (pNodes[i].attributes.getNamedItem("xlink:href") != null) {
					  FeatureInfoUrl = pNodes[i].attributes.getNamedItem("xlink:href").value;
					}					
				}
			}
		}
	 
		// Her Layer bilgileri okunuyor ve bir record'a dolduruluyor.
		// "name","title","queryable","opaque","crs","minX","minY","maxX","maxY" bilgileri layerArray dizisine dolduruluyor.    
		// Layer extensionlarÃ¯Â¿Â½ndan okunuyor, projenin extensionu hesaplaniyor.    
	 	  
		var tmpMinX;
		var tmpMinY;
		var tmpMaxX;
		var tmpMaxY;
		var BBox;
		var LName = "";
		var layerIndis = 0;
		var layerVisible = 1;
	
		//alert('1');	
		var pNodes = xmlDoc.getElementsByTagName("Layer");
		//alert('2');
		if (pNodes){
			//alert('3');
			BBox   = pNodes[0].getElementsByTagName('BoundingBox')[0];    
			pNodes = pNodes[0].getElementsByTagName('Layer');
			
		}
		//alert('4');
  
		layerCount = pNodes.length;
	    layerIndis = 0;
	    layerVisible = 1;
	  	
		if ((pNodes != null) && (pNodes.length > 0)){
			for (i=0; i < pNodes.length; i=i+1) {
									

				var layer = pNodes[i];
			 
			 //aÃ¯Â¿Â½aÃ¯Â¿Â½Ã¯Â¿Â½daki kodlar sadece istenen tabakalarÃ¯Â¿Â½n kullanÃ¯Â¿Â½mÃ¯Â¿Â½ iÃ¯Â¿Â½in eklendi.
			 //layers parametresi her client uygulama sayfasÃ¯Â¿Â½ndan (KRH, WEBGIS vb..) 
			 //gÃ¯Â¿Â½nderilir, boÃ¯Â¿Â½ geÃ¯Â¿Â½ildiÃ¯Â¿Â½inde tÃ¯Â¿Â½m tabakalar kullanÃ¯Â¿Â½lacak anlamÃ¯Â¿Â½na gelir.
			 
				LName = layer.getElementsByTagName("Name")[0].childNodes[0].nodeValue;//UB: 29.12.2008
				//alert(LName);
				if (typeof layers == "undefined") { //UB: 29.12.2008 layers optional bir parametredir.
				  layers = "";
				}
		        if (layers != ""){
					if ( layers.indexOf(LName+";") !=-1) {//UB: 29.12.2008 
					  layerVisible = 1;
					}
					else
					{layerVisible = 0;}
				}
				
				
				if (layerVisible == 1){//UB: 29.12.2008
				    layerIndis = layerIndis + 1;
				    
					var newRecData = {};	
	    			newRecData["name"]      = layer.getElementsByTagName("Name")[0].childNodes[0].nodeValue;    			
	    			newRecData["title"]     = layer.getElementsByTagName("Title")[0].childNodes[0].nodeValue;
	    			newRecData["queryable"] = layer.attributes.getNamedItem("queryable").value;
	    			newRecData["opaque"]	= layer.attributes.getNamedItem("opaque").value;  						
	    			newRecData["CRS"]		= BBox.attributes.getNamedItem("CRS").value;    			
	    			newRecData["minX"]		= BBox.attributes.getNamedItem("minx").value;
	    			newRecData["minY"]		= BBox.attributes.getNamedItem("miny").value;
	    			newRecData["maxX"]		= BBox.attributes.getNamedItem("maxx").value;
	    			newRecData["maxY"]		= BBox.attributes.getNamedItem("maxy").value;
	    			
					layerArray[layerIndis-1] = newRecData;   
	 
					tmpMinX = BBox.attributes.getNamedItem("minx").value;
					tmpMinY = BBox.attributes.getNamedItem("miny").value;
					tmpMaxX = BBox.attributes.getNamedItem("maxx").value;
					tmpMaxY = BBox.attributes.getNamedItem("maxy").value;
					
					//alert(tmpMinX+' , '+ tmpMinY+' , '+tmpMaxX+' , '+tmpMaxY);
								
	//UB: 29.12.2008 if (i==0){ 
					if (layerIndis==1){
						projMinX = Number(tmpMinX);
				    	projMinY = Number(tmpMinY);
						projMaxX = Number(tmpMaxX);
						projMaxY = Number(tmpMaxY);
					} else {
						projMinX = Math.min( projMinX, Number(tmpMinX) );
				    	projMinY = Math.min( projMinY, Number(tmpMinY) );
						projMaxX = Math.max( projMaxX, Number(tmpMaxX) );
						projMaxY = Math.max( projMaxY, Number(tmpMaxY) );	
					}
	
				}							
			}		
		}

	//	fillLayersV2(); // layerArray kullanÃ¯Â¿Â½lacaÃ¯Â¿Â½Ã¯Â¿Â½ malum, parametre geÃ¯Â¿Â½irmiyorum. //@UB withoutExtJs

		//fillLayers(); // layerArray kullanÃ¯Â¿Â½lacaÃ¯Â¿Â½Ã¯Â¿Â½ malum, parametre geÃ¯Â¿Â½irmiyorum. //@UB withoutExtJs
		initialized = true;
		xmlDoc = null;
	}

}

// getting layernames
function getCheckedLayers(){ //@UB: WithoutExtJs
	var layers = "";
	var layerGrid;
	if (layerGrid != null) {
			
	    var sm = layerGrid.getSelectionModel();
	    if (sm.getCount() > 0){
	    	var selected = sm.getSelections();
	    	for (i=0;i<selected.length;i=i+1){
				if (layers != ""){
					layers = layers + ",";
				}
				layers = layers + selected[i].data["name"];    	
	    	} 
	    }
	    //Ã¯Â¿Â½B: 02.01.2009 TÃ¯Â¿Â½m tabakalar isteniyorsa, url string'i bÃ¯Â¿Â½yÃ¯Â¿Â½tmemek iÃ¯Â¿Â½in layers'a boÃ¯Â¿Â½ atanÃ¯Â¿Â½yor yani hepsi gÃ¯Â¿Â½rÃ¯Â¿Â½ntÃ¯Â¿Â½lensin isteniyor.
	    if (selected == null)
	    {
	     layers = "";
	    }
	    else
	    if (layerArray.length == selected.length){
	      layers = "";
	    }
    }

	return layers;

}
function getCheckedLayers_xx(){
 
	var layers = "";
 
	if (layerListBox != null) {	
  
	   
	    for(i=0;i<layerListBox.options.length;i=i+1){
	
	      if (layerListBox.options[i].selected) {
				if (layers != ""){
					layers = layers + ",";
				}
				
				layers = layers + layerListBox.options[i].value;    	
	      }
	    }
	     
    }
	return layers;
}

function getXMLHTTPRequest(){
	/*var req = false;
	 
	try{
		req = new XMLHttpRequest(); // e.g. Firefox 	
	 		
	}
	catch(err1){
		try{
			req = new ActiveXObject("MSXML2.XMLHTTP.5.0"); // some versions IE 
		}
	catch(err1){
		try{
 
			req = new ActiveXObject("MSXML2.XMLHTTP.6.0"); // some versions IE 
		}

		catch(err2){
			try{
				req = new ActiveXObject("MSXML2.XMLHTTP.4.0"); // some versions IE
			}
			catch(err3){
				try{
					req = new ActiveXObject("MSXML2.XMLHTTP.3.0"); // some versions IE
				}
				catch(err4){
					try{
						req = new ActiveXObject("MSXML2.XMLHTTP"); // some versions IE
					}
					catch(err5){
						try{
							req = new ActiveXObject("Microsoft.XMLHTTP"); // some versions IE 
						}
						catch(err3){
							req = null;
						}
					}		
				}
			} }			
		}
	}
	*/
	if ((window.XMLHttpRequest)) {
		req = new XMLHttpRequest();
	}
	else {
		req = new ActiveXObject("Microsoft.XMLHTTP"); // some versions IE


	}




	//alert(req);
	return req;		

}

function forDebug(){
    if (document.getElementById("MaxX") != null) //@UB: 08.03.2008
    {
		document.getElementById("MaxX").setAttribute("value", curMaxX);
		document.getElementById("MaxY").setAttribute("value", curMaxY);
		document.getElementById("MinX").setAttribute("value", curMinX);
		document.getElementById("MinY").setAttribute("value", curMinY);
	}
}




