function ge(a) { return document.getElementById(a); }

if (typeof ky=="undefined") var ky = new Object();
if (typeof ky.ajax=="undefined") ky.ajax = new Object();
if (typeof ky.utils=="undefined") ky.utils = new Object();
if (typeof ky.xmlObj=="undefined") ky.xmlObj = new Object();

ky.utils._buildQueryString = function()
{
	ky.QueryString = new Object();
	var q = document.location.search || document.location.hash;
	if (q) {
		var pairs = q.substring(1).split("&");
		for (var i=0; i < pairs.length; i++)
		{
			var pi = pairs[i].indexOf("=");
			ky.QueryString[pairs[i].substring(0, pi)] = pairs[i].substring(pi+1);
		}
	}
}

if (typeof ky.QueryString=="undefined"){ ky.utils._buildQueryString(); }

ky.utils.getUrlStr = function(url)
{
	if (ky._randid==undefined) ky._randid = Math.random();
	return url + (url.indexOf("?")>-1?"&":"?") + "rnd=" + ky._randid;
}

ky.utils.setCookie = function(name, value) 
{
	document.cookie = name+"="+value+"; path=/";
}

ky.utils.getCookie = function(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i<ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
}

ky.utils.inArray = function(obj, arr) {
	for (var i=0; i<arr.length; i++)
	{
		if (arr[i]==obj)
		{
			return true;
		}
	}
	return false;
}

ky.utils.objsort = function(a, b) 
{
	var x = ky.utils.tr_replace(a.title.toUpperCase());
    var y = ky.utils.tr_replace(b.title.toUpperCase());
	return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

ky.utils.tr_replace = function(a)
{
   a = a.replace(/Ş/g, "S");
   a = a.replace(/Ğ/g, "G");
   a = a.replace(/İ/g, "I");
   a = a.replace(/Ç/g, "C");
   a = a.replace(/Ö/g, "O");
   a = a.replace(/Ü/g, "U");
   return a;
}

ky.utils.addHandler = function(target, eventName, obj, handlerName, params) 
{ 
	if (target.addEventListener) 
	{ 
		if (typeof handlerName=="string")
		{
			target.addEventListener(eventName, function(){obj[handlerName](params);}, false);
		}
		else if (typeof handlerName=="function")
		{
			target.addEventListener(eventName, function() {handlerName.apply(obj, params)}, false);
		}
	}
	else if ( target.attachEvent )
	{ 
		if (typeof handlerName=="string")
		{
			target.attachEvent("on" + eventName, function(){obj[handlerName](params);});
		}
		else if (typeof handlerName=="function")
		{
			target.attachEvent("on" + eventName, function() {handlerName.apply(obj, params)});
		}
	}
	else 
	{ 
		var originalHandler = target["on" + eventName]; 
		if ( originalHandler ) 
		{ 
			if (typeof handlerName=="string")
			{
				target["on" + eventName] = function(){originalHandler();obj[handlerName](params);}; 
			}
			else if (typeof handlerName=="function")
			{
				target["on" + eventName] = function(){originalHandler();handlerName.apply(obj, params)}; 
			}
		}
		else 
		{ 
			target["on" + eventName] = obj[handlerName]; 
		} 
	} 
}

ky.ajax.getAjaxObject = function()
{
    var xmlHttp;
    try { xmlHttp = new XMLHttpRequest(); } 
    catch (e) { 
        try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch (e) {      
            try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch (e) { return false; }      
        }
    }
    return xmlHttp;
}

ky.ajax.loadXmlObject = function(xmlsrc, handler, obj) 
{
    var x = ky.ajax.getAjaxObject();
    x.onreadystatechange = function() 
    {
        if (x.readyState==4 && x.status==200) {
            var o = ky.xmlObj.xmlToObj(x.responseXML.firstChild);
            if (obj)
            {
				handler.apply(obj, [o]);
            }
			else
			{
				handler(o);
			}
        }
    };
    x.open("GET", ky.utils.getUrlStr(xmlsrc));
    x.send(null);
}

ky.ajax.loadRaw = function(xmlsrc, handler, obj) 
{
    var x = ky.ajax.getAjaxObject();
    x.onreadystatechange = function() {
        if (x.readyState==4 && x.status==200) {
            var o = x.responseText;
            if (obj)
            {
				handler.apply(obj, [o]);
            }
			else
			{
				handler(o);
			}
        }
    };
    x.open("GET", xmlsrc);
    x.send(null);
}

ky.ajax.loadXml = function(xmlsrc, handler, obj) 
{
    var x = ky.ajax.getAjaxObject();
    x.onreadystatechange = function() {
        if (x.readyState==4 && x.status==200) {
            var o = x.responseXML;
            if (obj)
            {
				handler.apply(obj, [o]);
            }
			else
			{
				handler(o);
			}
        }
    };
    x.open("GET", xmlsrc);
    x.send(null);
}

ky.ajax.loadDataIntoDiv = function(xmlsrc, divId)
{
    ge(divId).innerHTML = "Yükleniyor...";
    ky.ajax.loadRaw(xmlsrc, function(o)
    {
        ge(divId).innerHTML = o;
    }, this);
}


ky.xmlObj.xmlToObj = function(xml) 
{
	var r = "";
	try {
	    if (xml.nodeName == "object") 
	    {
		    r = new Object();
	        for (var j=0; j<xml.childNodes.length; j++) 
	        {
	            if (xml.childNodes[j].nodeType==1) r[xml.childNodes[j].attributes[0].value] = ky.xmlObj.xmlToObj(xml.childNodes[j]);
	        }
	    } 
	    else if (xml.nodeName == "array") 
	    {
		    r = new Array();
		    for (var j=0; j<xml.childNodes.length; j++) 
		    {
		        if (xml.childNodes[j].nodeType==1) r.push(ky.xmlObj.xmlToObj(xml.childNodes[j]));
		    }
	    } 
	    else if (xml.nodeName == "var") 
	    {
			if (xml.hasChildNodes)
			{
				r = xml.firstChild.nodeValue;
			}
	    }
	} catch (e) {}
	return r;
}

