/* ********** Kullanılan diğer classlar ********** */
//---		Controls.js



/* ********** Genel Değişkenler Başlangıç ********** */
var newText=""; // String ifade döndürecek olan fonksiyonlarda kullanmak amacıyla tanımlana değişken
/* ********** Genel Değişkenler Bitiş ********** */






/* ********** TextToLower Fonksiyonu Başlangıç ********** */

//   Gönderilen text ifadeyi Türkçe uyumlu halde küçük harfe çevrilmiş halini gönderir.   \\


		function TextToLower( Text )
		{
			newText="";
			for	(i = 0; i < Text.length; newText += CharToLower( Text.charAt( i ) ), i++);
			return newText;
		}


/* ********** TextToLower Fonksiyonu Bitiş ********** */






/* ********** CharToLower Fonksiyonu Başlangıç ********** */

//   Gönderilen karakter değerinin Türkçe uyumlu halde küçük harfini gönderir   \\
 

		function CharToLower( CH )
		{
			switch ( CH )			{
				case 'I': return 'ı';// Javascript bir tek büyük 'I' karakterini küçüğe çevirirken problem yaratır.				default : return CH.toLowerCase();			}
		}


/* ********** CharToLower Fonksiyonu Bitiş ********** */






/* ********** TextToUpper Fonksiyonu Başlangıç ********** */

//   Gönderilen text ifadeyi Türkçe uyumlu halde küçük harfe çevrilmiş halini gönderir.   \\


		function TextToUpper( Text )
		{
			newText="";
			for	(i = 0; i < Text.length; newText += CharToUpper( Text.charAt( i ) ), i++);
			return newText;
		}


/* ********** TextToUpper Fonksiyonu Bitiş ********** */






/* ********** CharToUpper Fonksiyonu Başlangıç ********** */

//   Gönderilen karakter değerinin Türkçe uyumlu halde büyük harfini gönderir   \\
 

		function CharToUpper( CH )
		{
			switch ( CH )			{
				case 'i': return 'İ'// Javascript bir tek küçük 'i' karakterini büyüğe çevirirken problem yaratır.				default : return CH.toUpperCase();			}
		}


/* ********** CharToUpper Fonksiyonu Bitiş ********** */



/* ********** CompareText Fonksiyonu Başlangıç ********** */

//  text değerlerin karşılaştırma işlemlerini Türkçe uyumlu olarak yapar	\\
//  Eğer iki text ifade de birbirine eşitse  "  0 " döner					\\
//  Eğer ilk text ifade ikincisinden büyükse "  1 " döner					\\
//  Eğer ilk text ifade ikincisinden küçükse " -1 " döner					\\


		function CompareText( T1, T2 )
		{
			T1 = TextToLower( T1 );
			T2 = TextToLower( T2 );
			for (i = 0; i < T1.length && i<T2.length; i++)			{				if ( T1.charAt( i ) == T2.charAt( i ) )
					continue;
				switch ( T1.charAt( i ) )				{					case 'ç': return CharIn( T2.charAt( i ), "abc" );					case 'ğ': return CharIn( T2.charAt( i ), "abcçdefg");					case 'ı': return CharIn( T2.charAt( i ), "abcçdefgğh" );					case 'i': return CharIn( T2.charAt( i ), "abcçdefgğhı" );
					case 'ö': return CharIn( T2.charAt( i ), "abcçdefgğhıijklmno" );					case 'ş': return CharIn( T2.charAt( i ), "abcçdefgğhıijklmnoöpqrs" );
					case 'ü': return CharIn( T2.charAt( i ), "abcçdefgğhıijklmnoöpqrstu" );
					default : return ( (T1.charAt(i)>T2.charAt(i))?1:-1 );				}			}
			if (T1.length == T2.length) 
				return 0;
			return ( (T1.length>T2.length)?1:-1 );
		}


/* ********** CompareText Fonksiyonu Bitiş ********** */






/* ********** CharIn Fonksiyonu Başlangıç ********** */

//    Türkçe karakter karşılaştırmalarında Türkçe karakterle karşılaştırılan karakterin		\\
// 			Türkçe karakterden önce mi yoksa sonra mı yer aldığını bulmak için kulanılır. 	\\
//    Eğer önce yer alıyorsa  "  1 " değeri döner											     	\\
//    Eğer sonra yer alıyorsa " -1 " değeri döner											     	\\


		function CharIn( CH, CharArray )
		{
			return ( ( CharArray.indexOf( CH )>0 )?1:-1 );
		}


/* ********** CharIn Fonksiyonu Bitiş ********** */






/* ********** LTrim Fonksiyonu Başlangıç ********** */

//   Belirtilen string ifadenin soldaki boşluklarını atar   \\


		function LTrim ( Text )
		{
			if ( Text == '' || Text == null )
				{ return ""; }

			while ( Text.length>0 )
			{
				if ( Text.charAt(0) == ' ' )
					Text = Text.substring( 1, Text.length );
				else
					break;
			}

			return Text;
		}


/* ********** LTrim Fonksiyonu Başlangıç ********** */






/* ********** RTrim Fonksiyonu Başlangıç ********** */

//   Belirtilen string ifadenin Sağındaki boşluklarını atar   \\


		function RTrim ( Text )
		{
			if ( Text == '' || Text == null )
				{ return ""; }
		
			while ( Text.length - 1 >= 0 )
			{
				if ( Text.charAt( Text.length - 1 ) == ' ' )
					Text = Text.substring( 0, Text.length - 1 );
				else
					break;
			}
			return Text;
		}


/* ********** RTrim Fonksiyonu Bitiş ********** */






/* ********** BoslukBudaC Fonksiyonu Başlangıç ********** */

//   Belirtilen kontrolün value değerinin sağındaki ve solundaki boşlukları atarak   \\
//  	sonuç değerini yine kontrolün value değerine atar ve geriye döndürür		   \\


		function BoslukBudaC ( Control )
		{
			YaziAta( Control, BoslukBudaT( YaziAl( Control ) ) );
			return YaziAl( Control );
		}


/* ********** BoslukBudaC Fonksiyonu Bitiş ********** */






/* ********** BoslukBudaT Fonksiyonu Başlangıç ********** */

//   Belirtilen text değerinin sağındaki ve solundaki boşlukları atarak sonuç değerini geriye döndürür   \\


		function BoslukBudaT ( Text )
		{
			return ( RTrim ( LTrim ( Text ) ) );
		}


/* ********** BoslukBudaT Fonksiyonu Bitiş ********** */






/* ********** YaziAl Fonksiyonu Başlangıç ********** */

//   Belirtilen ID'ye sahip kontrolün value değerini getirir.   \\


		function YaziAl( Control )
		{
			return getElement ( Control ).value;
		}


/* ********** YaziAl Fonksiyonu Bitiş ********** */






/* ********** YaziAta Fonksiyonu Başlangıç ********** */

//   Belirtilen ID'ye sahip kontrolün value değerine belirtilen text değerini atar.   \\


		function YaziAta( Control, Text )
		{
			getElement ( Control ).value = Text;
		}


/* ********** YaziAta Fonksiyonu Bitiş ********** */






/* ********** CHTurkce Fonksiyonu Başlangıç ********** */

//   Karakterin Türkçe karakter olup olmadığını belirtir	\\
//   Eğer Türkçe karakter ise     " true  " döner			\\
//   Eğer Türkçe karakter değilse " false " döner			\\


		function CHTurkce( CH )
		{
			return ( "çÇğĞıİöÖşŞüÜ".indexOf( CH ) >=0 );
		}


/* ********** CHTurkce Fonksiyonu Bitiş ********** */






/* ********** TextTurkce Fonksiyonu Başlangıç ********** */

//   Girilen Text ifadenin Türkçe karakter içerip içermeme durumuna bakar	\\
//   Eğer Türkçe karakter var ise " true  " döner								\\
//   Eğer Türkçe karakter yok ise " false " döner								\\


		function TextTurkce( Text )
		{
			if ( Text == null || Text == '' )
				return false;
			for ( i=0; i<Text.length; i++ )
			{
				if ( CHTurkce( Text.charAt( i ) ) )
					return true;
			}
			
			return false;
		}


/* ********** TextTurkce Fonksiyonu Bitiş ********** */






/* ********** CHToSayi Fonksiyonu Başlangıç ********** */

//   Girilen karakter sayı değeri taşıyorsa karakterin sayısal değerini döndürür.	\\
//   Eğer sayi değilse sonuç " -1 " döner												\\


		function CHToSayi ( CH )
		{
			if ( CH == null || CH == '' )
				return -1;
			return "0123456789".indexOf( CH );
		}


/* ********** CHToSayi Fonksiyonu Bitiş ********** */






/* ********** TextToSayi Fonksiyonu Başlangıç ********** */

//   Girilen text sayı değeri taşıyorsa textin sayısal değerini döndürür.	\\
//   Eğer sayi değilse sonuç " -1 " döner										\\
//   Tam sayı sayısal değerler için hazırlanmıştır							\\


		function TextToSayi ( Text )
		{
			if ( Text == null || Text == '' )
				return -1;
			var Sayi = 0;
			for ( i=0; i<Text.length; i++ )
			{
				Sayi *= 10;
				Sayi += CHToSayi ( Text.charAt(i) );
				if ( Sayi < 0 ) return -1;
			}
			return Sayi;
		}
		
		
/* ********** TextToSayi Fonksiyonu Bitiş ********** */






/* ********** CHSayi Fonksiyonu Başlangıç ********** */

//   Girilen karakterin sayı değeri taşıyup taşımamasına bakar	\\
//   Eğer sayi ise sonuç     " true " döner						\\
//   Eğer sayi değilse sonuç " false " döner						\\
//   Tam sayı sayısal değerler için hazırlanmıştır				\\


		function CHSayi ( CH )
		{			
			return ( CHToSayi( CH )>=0 );
		}


/* ********** CHSayi Fonksiyonu Bitiş ********** */






/* ********** TextSayi Fonksiyonu Başlangıç ********** */

//   Girilen text'in sayı değeri taşıyup taşımamasına bakar		\\
//   Eğer sayi ise sonuç     " true " döner						\\
//   Eğer sayi değilse sonuç " false " döner						\\
//   Tam sayı sayısal değerler için hazırlanmıştır				\\


		function TextSayi ( Text )
		{
			if ( Text == null || Text == '' )
				return false;
			for ( i=0; i<Text.length; i++ )
			{
				if ( !CHSayi( Text.charAt( i ) ) )
					return false;
			}
			return true;
		}


/* ********** TextSayi Fonksiyonu Bitiş ********** */






/* ********** SplitC Fonksiyonu Başlangıç ********** */

//   Belirtilen controlün value değerini alıp 								\\
//     sağdan ve soldan boşluk budama işlemi yaptıktan sonra belirtilen 	\\
//     karakteri kullanarak ifadeyi böler ve sonucu dizi olarak gönderir	\\


		function SplitC ( Control , CH )
		{
			return BoslukBudaC( Control ).split( CH );
		}


/* ********** SplitC Fonksiyonu Bitiş ********** */






/* ********** SplitT Fonksiyonu Başlangıç ********** */

//   Belirtilen controlün value değerini alıp 								\\
//     sağdan ve soldan boşluk budama işlemi yaptıktan sonra belirtilen 	\\
//     karakteri kullanarak ifadeyi böler ve sonucu dizi olarak gönderir	\\


		function SplitT ( Text , CH )
		{
			return BoslukBudaT( Text ).split( CH );
		}


/* ********** SplitT Fonksiyonu Bitiş ********** */








/* ********** Degistir Fonksiyonu Başlangıç ********** */

//   Belirtilen string ifadenin içerisindeki belirtilen eski değerleri yeni değerlerle değiştirir


		function Degistir( _Text, _oldValue, _newValue )
		{
			/* Biraz daha uzun fakat doğru değiştirme yapıyor */
			tempIndex = _Text.indexOf(_oldValue);
			if (tempIndex<0)	//Eğer değiştirilmek istenen değer text değerinin içinde yoksa
				return _Text;					//Gelen değeri geri gönder başka işlem yapma
			tempIndex += _oldValue.length;
			_Text = _Text.replace(_oldValue, _newValue);//İlk değerler için değiştirme yapıldığında
			newText = _Text.substring(0, tempIndex);
			newText += Degistir(_Text.substr(tempIndex), _oldValue, _newValue);
			return newText;
			/* Kısa fakat Eksik değiştirme işlemi yapıyor
				//var tempOldL = TextToLower(_oldValue);//Hem Küçük
				//var tempOldU = TextToUpper(_oldValue);//Hemde büyük durumu için
				//for (;_Text.search(tempOldL)>=0 || _Text.search(tempOldU)>=0;(_Text.search(tempOldL)>=0)?_Text=_Text.replace(tempOldL,_newValue):_Text = _Text.replace(tempOldU,_newValue));
				//return _Text;
			*/
		}


/* ********** Degistir Fonksiyonu Bitiş ********** */