/* ********** Kullanılan diğer classlar ********** */
//---		Controls.js
//---		Strings.js

/* ********** Genel Değişkenler Başlangıç ********** */

var xmlDoc; //Internet Explorer tabanlı browser'larda xml okuyacak olan değişken
var xmlHttp; //FireFox tabanlı browser'larda xml okuyacak olan değişken
var xmlFile; //İçeriği okunacak olan xml dosyası
/*
		Bu uygulamada xml içerik formatı aşağıdaki gibi kabul edilmiştir. 
		Format:
		<?xml version="1.0" encoding="ISO-8859-9" ?>		| Türkçe'ye uyumlu olması açısından Encoding'in Türkçe olmasına dikkat ediniz.
		<Referanslar> 										| Kök elementi temsilen konulmuştur istenildiği gibi değiştirilebilir.
			<Referans1>										| Referans'ın ulaşılacak olan genel adıdır. Referans hakkında gerekli bilgilere ulaşmak için bu kullanılmaktadır.
				<Image>/Images/Referans1.gif</Image>		| Referans'ın gösterilecek olan resminin adresidir.
				<Text>Referans1 açıklama</Text>				| Referans hakkında yazılmış olan açıklamadır.  
				<Width>100</Width>							| Referans'ın gözükecek resminin genişliğidir(pixel cinsinden). 
				<Height>100</Height>							| Referans'ın gözükecek resminin yüksekliğidir(pixel cinsinden). 
																| 	NOT : Bu yazı içerisinde HTML formatı bulunabilir fakat çeşitli özel karakterler
																| 			XML'de sorun yarattığından bu karakterler kodsal eşlenikleriyle değiştirilmelidir.
			</Referans1>
		</Referanslar>
		
		Referans açıklama yazısı içinde değiştirilmesi gereken özel karakterler ve kodsal eşlenikleri:
		
		( & ) karakterleri ( &amp;  ) ile
		( < ) karakterleri ( &lt;   ) ile
		( > ) karakterleri ( &gt;   ) ile
		( " ) karakterleri ( &quot; ) ile
		( ' ) karakterleri ( &apos; ) ile değiştirilmelidir.
		
		Genel NOT: XML tagleri içinde açılmış her tag usulune uygun kapatılmalı 
			ve xml'in büyük küçük harf duyarlı olduğu göz önünde bulundurulmalıdır.
		
*/
var AllText;			//FireFox için kullanılmış xml içeriğini komple almak için kullanılan değişken
var AllNodes;			//Internet Explorer için kullanılmış xml nodelarının tümünü tutan değişken
/* ********** Genel Değişkenler Bitiş ********** */





/* ********** ReadXML Fonksiyonu Başlangıç ********** */

//   Xml dosyasının içeriğini bir kereliğine okumak için kullanılır
//   Browser kontrolünü otomatik olarak yapar eğer browser IE ise içerik AllNodes değişkenine
//      FF ise AllText değişkenine atanır.

		function ReadXML ( _xmlFile )
		{
			try
			{
				xmlFile = _xmlFile;
				if (IsIE())
					ReadXMLForIE();
				else
					ReadXMLForFF();
			}
			catch(Hata)
			{
				return false;
			}
			return true;
		}

/* ********** ReadXML Fonksiyonu Bitiş ********** */






/* ********** ReadXMLForIE Fonksiyonu Başlangıç ********** */

// Internet Explorer browserlar için okuma işlemi gerçekleştirir.

		function ReadXMLForIE()
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.load(xmlFile);
		
			AllNodes = xmlDoc.documentElement.childNodes;
		}

/* ********** ReadXMLForIE Fonksiyonu Başlangıç ********** */





/* ********** ReadXMLForFF Fonksiyonu Başlangıç ********** */

//   FireFox browserlar için okuma işlemi gerçekleştirir

		function ReadXMLForFF()
		{
			if (!xmlHttp)
			{
				xmlHttp = new XMLHttpRequest();
				xmlHttp.open("GET", xmlFile, false);
				xmlHttp.send(null);
			}

			AllText 	= ChageXMLSpecials( xmlHttp.responseText );
		}

/* ********** ReadXMLForFF Fonksiyonu Bitiş ********** */





/* ********** getXmlText Fonksiyonu Başlangıç ********** */

//FireFox browserlar için yazılmış eleman içeriği alma 
		
		function getXmlText(xmlText, xmlNode)
		{
			return (xmlText.substring(xmlText.indexOf ("<" + xmlNode + ">") + xmlNode.length + 2, xmlText.indexOf ("</" + xmlNode + ">") ) );
		}

/* ********** getXmlText Fonksiyonu Bitiş ********** */






/* ********** getImageSRC Fonksiyonu Başlangıç ********** */

//   Belirtilen referansa ait image adresini alır

		function getImageSRC( _ReferansName )
		{
			if(	IsIE() )//Internet Explorer için
			{
				for ( i=0; i<AllNodes.length; i++)
				{
					if ( AllNodes(i).nodeName == _ReferansName )//Girilen referans adına ait bilgiyi bulmak için
						return  AllNodes(i).childNodes(0).text;//İlk eleman Image nesnesi olarak düşünülmüştür.
				}
			}
			else //FireFox için
			{
				return getXmlText( getXmlText( AllText, _ReferansName), "Image");//Image nesnesinin geri gönderilmesi
			}
		}
		
/* ********** getImageSRC Fonksiyonu Bitiş ********** */





/* ********** getImageWidth Fonksiyonu Başlangıç ********** */

//   Belirtilen referansa ait image'in width değeri alır

		function getImageWidth( _ReferansName )
		{
			if(	IsIE() )//Internet Explorer için
			{
				for ( i=0; i<AllNodes.length; i++)
				{
					if ( AllNodes(i).nodeName == _ReferansName )//Girilen referans adına ait bilgiyi bulmak için
						return AllNodes(i).childNodes(3).text;//4. eleman Width nesnesi olarak düşünülmüştür.
				}
			}
			else //FireFox için
			{
				return getXmlText( getXmlText( AllText, _ReferansName), "Width");//Width nesnesinin geri gönderilmesi
			}
		}
		
/* ********** getImageWidth Fonksiyonu Bitiş ********** */





/* ********** getImageHeight Fonksiyonu Başlangıç ********** */

//   Belirtilen referansa ait image'in Height değeri alır

		function getImageHeight( _ReferansName )
		{
			if(	IsIE() )//Internet Explorer için
			{
				for ( i=0; i<AllNodes.length; i++)
				{
					if ( AllNodes(i).nodeName == _ReferansName )//Girilen referans adına ait bilgiyi bulmak için
						return AllNodes(i).childNodes(4).text;//5. eleman Height nesnesi olarak düşünülmüştür.
				}
			}
			else //FireFox için
			{
				return getXmlText( getXmlText( AllText, _ReferansName), "Height");//Height nesnesinin geri gönderilmesi
			}
		}
		
/* ********** getImageHeight Fonksiyonu Bitiş ********** */





/* ********** getText Fonksiyonu Başlangıç ********** */

//   Belirtilen referansa ait image adresini alır

		function getText( _ReferansName )
		{
			if(	IsIE() )//Internet Explorer için
			{
				for ( i=0; i<AllNodes.length; i++)
				{
					if ( AllNodes(i).nodeName == _ReferansName )//Girilen referans adına ait bilgiyi bulmak için
						return ChageXMLSpecials( AllNodes(i).childNodes(1).text );//İkinci eleman Text nesnesi olarak düşünülmüştür.
				}
			}
			else //FireFox için
			{
				return getXmlText( getXmlText( AllText, _ReferansName), "Text");//Text nesnesinin geri gönderilmesi
			}
		}
		
/* ********** getText Fonksiyonu Bitiş ********** */






/* ********** ChageXMLSpecials Fonksiyonu Başlangıç ********** */

//   Xml içerisinde bulunan özel karakterlerin eşlenikleri ile kendilerini değiştirir

		function ChageXMLSpecials( _Text )
		{
			if (!_Text)
				return "";
			return Degistir(
						Degistir(
							Degistir(
								Degistir( 
									Degistir( _Text, "&amp;", "&" ),
								"&quot;", '"' ),
							"&apos;", "'" ),
						"&gt;", ">" ), 
					"&lt;", "<" );
		}

/* ********** ChageXMLSpecials Fonksiyonu Bitiş ********** */





/* ********** getAlt Fonksiyonu Başlangıç ********** */

//   Belirtilen referansa ait image adresini alır

		function getAlt( _ReferansName )
		{
			try
			{
				if(	IsIE() )//Internet Explorer için
				{
					for ( i=0; i<AllNodes.length; i++)
					{
					
						if ( AllNodes(i).nodeName == _ReferansName )//Girilen referans adına ait bilgiyi bulmak için
							return ChageXMLSpecials( AllNodes(i).childNodes(2).text );//3. eleman Alt nesnesi olarak düşünülmüştür.			
					}
				}
				else //FireFox için
				{
					return getXmlText( getXmlText( AllText, _ReferansName), "Alt");//Alt nesnesinin geri gönderilmesi
				}
			}
			catch(Hata)
			{
				return "";
			}
		}
		
/* ********** getText Fonksiyonu Bitiş ********** */
