/* Copyright 2006 Mert Turanlı */
/* Gamerbug.net */

/*
	** urlAl		asenkron olarak xmlhttprequest işlemi gerçekleştirir

	parametre		tür			açıklama
	*********		*********		********	
	layer			[element]		durumun yazılacağı layer
	url			[string]		isteğin yapılacağı url
	callback		[adres]		başarılı bir işlemden sonra çağırılacak fonksiyonun adresi
	parametre		[herhangi] 		callback fonksiyonuna atılacak parametre (ikinci olarak atılır, birinci parametre alınan veridir)
	xml			[boolean]		sorgunun alındıktan sonra xml döküman nesnesi olarak döndürülmesini sağlar
	metot			[string]		sorgunun türü, HEAD/POST/GET olabilir
	formveri		[string]		formda yollanacak veriler, post için geçerli
*/
function urlAl(layer,url,callback,parametre,xml,metot,formveri) {
	switch(metot){
	case 'HEAD': break;
	case 'POST': break;
	case 'GET': break;
	default:
		metot = 'GET';
		break;
	}

	if (window.XMLHttpRequest) {
		httpreq = new XMLHttpRequest();
		
		if(navigator.appName.toLowerCase().indexOf("internet explorer") == -1)
		{
			httpreq.overrideMimeType('text/xml');
		}
	} 
	else if (window.ActiveXObject) {
		httpreq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		return false;
	}
	if(layer) layer.innerHTML = "Yükleniyor...";
	
	httpreq.onreadystatechange = function() { stateHandler(httpreq,layer,callback,parametre,xml) };
	httpreq.open(metot, url, true);
	if(metot == 'POST')
	{
		httpreq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpreq.setRequestHeader("Content-length", formveri.length);
	}
    //httpreq.setRequestHeader("Connection", "close");
	
	httpreq.send(formveri);
}

function stateHandler(httpreq,layer,callback,parametre,xml){
	switch(httpreq.readyState){
	case 2:
		// loaded
		break;
	case 4:
		// complete
		
		if(httpreq.status == 200)
		{
			//alert(root.getElementsByTagName('kayit')[0].attributes[0].value);
			if(callback) callback((!xml || window.ActiveXObject ? httpreq.responseText : httpreq.responseXML), parametre);
			else layer.innerHTML = xml ? httpreq.responseXML : httpreq.responseText;
			
		} else {
			alert("houston we have a problem: "+ httpreq.status);
			// sorun var
		}
		
		break;
	}	
}

function XMLGetRoot(XMLtext)
{
	if(window.ActiveXObject)
	{
		xmldoc = new ActiveXObject("Microsoft.XMLDOM");
		xmldoc.loadXML(XMLtext);
		return xmldoc.documentElement;
	}
	else
	{
		return XMLtext.documentElement;
	}
}



