/* ********** Kullanilan diger classlar ********** */
//---		Controls.js




/* ********** Genel Degiskenler Baslangic ********** */
var newText=""; // String ifade dondurecek olan fonksiyonlarda kullanmak amaciyla tanimlana degisken
/* ********** Genel Degiskenler Bitis ********** */






/* ********** TextToLower Fonksiyonu Baslangic ********** */

//   Gonderilen text ifadeyi Turkce uyumlu halde kucuk harfe cevrilmis halini gonderir.   \\


		function TextToLower( Text )
		{
			newText="";
			for	(i = 0; i < Text.length; newText += CharToLower( Text.charAt( i ) ), i++);
			return newText;
		}


/* ********** TextToLower Fonksiyonu Bitis ********** */






/* ********** CharToLower Fonksiyonu Baslangic ********** */

//   Gonderilen karakter degerinin Turkce uyumlu halde kucuk harfini gonderir   \\
 

		function CharToLower( CH )
		{
			switch ( CH )
			{
				case 'I': return 'i';// Javascript bir tek buyuk 'I' karakterini kucuge cevirirken problem yaratir.
				default : return CH.toLowerCase();
			}
		}


/* ********** CharToLower Fonksiyonu Bitis ********** */






/* ********** TextToUpper Fonksiyonu Baslangic ********** */

//   Gonderilen text ifadeyi Turkce uyumlu halde kucuk harfe cevrilmis halini gonderir.   \\


		function TextToUpper( Text )
		{
			newText="";
			for	(i = 0; i < Text.length; newText += CharToUpper( Text.charAt( i ) ), i++);
			return newText;
		}


/* ********** TextToUpper Fonksiyonu Bitis ********** */






/* ********** CharToUpper Fonksiyonu Baslangic ********** */

//   Gonderilen karakter degerinin Turkce uyumlu halde buyuk harfini gonderir   \\
 

		function CharToUpper( CH )
		{
			switch ( CH )
			{
				case 'i': return 'I'// Javascript bir tek kucuk 'i' karakterini buyuge cevirirken problem yaratir.
				default : return CH.toUpperCase();
			}
		}


/* ********** CharToUpper Fonksiyonu Bitis ********** */



/* ********** CompareText Fonksiyonu Baslangic ********** */

//  text degerlerin karsilastirma islemlerini Turkce uyumlu olarak yapar	\\
//  Eger iki text ifade de birbirine esitse  "  0 " doner					\\
//  Eger ilk text ifade ikincisinden buyukse "  1 " doner					\\
//  Eger ilk text ifade ikincisinden kucukse " -1 " doner					\\


		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 'c': return CharIn( T2.charAt( i ), "abc" );
					case 'g': return CharIn( T2.charAt( i ), "abccdefg");
					case 'i': return CharIn( T2.charAt( i ), "abccdefggh" );
					case 'i': return CharIn( T2.charAt( i ), "abccdefgghi" );
					case 'o': return CharIn( T2.charAt( i ), "abccdefgghiijklmno" );
					case 's': return CharIn( T2.charAt( i ), "abccdefgghiijklmnoopqrs" );
					case 'u': return CharIn( T2.charAt( i ), "abccdefgghiijklmnoopqrstu" );
					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 Bitis ********** */






/* ********** CharIn Fonksiyonu Baslangic ********** */

//    Turkce karakter karsilastirmalarinda Turkce karakterle karsilastirilan karakterin		\\
// 			Turkce karakterden once mi yoksa sonra mi yer aldigini bulmak icin kulanilir. 	\\
//    Eger once yer aliyorsa  "  1 " degeri doner											     	\\
//    Eger sonra yer aliyorsa " -1 " degeri doner											     	\\


		function CharIn( CH, CharArray )
		{
			return ( ( CHIn( CH, CharArray ) )?1:-1 );
		}


/* ********** CharIn Fonksiyonu Bitis ********** */





/* ********** CHIn Fonksiyonu Baslangic ********** */

// Verilen karakterin karakter dizisi icinde olup olmadigini arar 	\\
//   Eger karakter dizisi belirtilen karakteri iceriyorsa "true"degeri doner	\\
//   Eger karakter dizisi belirtilen karakteri icermiyorsa "false" degeri doner	\\



		function CHIn( CH, CharArray )
		{
			return ( CHIndex( CH, CharArray ) > -1);
		}


/* ********** CHIn Fonksiyonu Bitis ********** */






/* ********** CHIndex Fonksiyonu Baslangic ********** */

// Verilen karakterin karakter dizisi icinde bulundugu index numarisini verir \\
//   Eger karakter belirtilen dizi icinde yer almiyorsa sonuc -1 doner



		function CHIndex( CH, CharArray )
		{
			return CharArray.indexOf( CH ) ;
		}


/* ********** CHIndex Fonksiyonu Bitis ********** */








/* ********** LTrim Fonksiyonu Baslangic ********** */

//   Belirtilen string ifadenin soldaki bosluklarini 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 Baslangic ********** */






/* ********** RTrim Fonksiyonu Baslangic ********** */

//   Belirtilen string ifadenin Sagindaki bosluklarini 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 Bitis ********** */






/* ********** BoslukBudaC Fonksiyonu Baslangic ********** */

//   Belirtilen kontrolun value degerinin sagindaki ve solundaki bosluklari atarak   \\
//  	sonuc degerini yine kontrolun value degerine atar ve geriye dondurur		   \\


		function BoslukBudaC ( Control )
		{
			YaziAta( Control, BoslukBudaT( YaziAl( Control ) ) );
			return YaziAl( Control );
		}


/* ********** BoslukBudaC Fonksiyonu Bitis ********** */






/* ********** BoslukBudaT Fonksiyonu Baslangic ********** */

//   Belirtilen text degerinin sagindaki ve solundaki bosluklari atarak sonuc degerini geriye dondurur   \\


		function BoslukBudaT ( Text )
		{
			return ( RTrim ( LTrim ( Text ) ) );
		}


/* ********** BoslukBudaT Fonksiyonu Bitis ********** */






/* ********** YaziAl Fonksiyonu Baslangic ********** */

//   Belirtilen ID'ye sahip kontrolun value degerini getirir.   \\


		function YaziAl( Control )
		{
			return getElement ( Control ).value;
		}


/* ********** YaziAl Fonksiyonu Bitis ********** */






/* ********** YaziAta Fonksiyonu Baslangic ********** */

//   Belirtilen ID'ye sahip kontrolun value degerine belirtilen text degerini atar.   \\


		function YaziAta( Control, Text )
		{
			getElement ( Control ).value = Text;
		}


/* ********** YaziAta Fonksiyonu Bitis ********** */






/* ********** CHTurkce Fonksiyonu Baslangic ********** */

//   Karakterin Turkce karakter olup olmadigini belirtir	\\
//   Eger Turkce karakter ise     " true  " doner			\\
//   Eger Turkce karakter degilse " false " doner			\\


		function CHTurkce( CH ) { return ( CHIn( CH, "ccggiÝoossuu" ) ); }


/* ********** CHTurkce Fonksiyonu Bitis ********** */






/* ********** TextTurkce Fonksiyonu Baslangic ********** */

//   Girilen Text ifadenin Turkce karakter icerip icermeme durumuna bakar	\\
//   Eger Turkce karakter var ise " true  " doner								\\
//   Eger Turkce karakter yok ise " false " doner								\\


		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 Bitis ********** */






/* ********** CHToSayi Fonksiyonu Baslangic ********** */

//   Girilen karakter sayi degeri tasiyorsa karakterin sayisal degerini dondurur.	\\
//   Eger sayi degilse sonuc " -1 " doner												\\


		function CHToSayi ( CH )
		{
			if ( CH == null || CH == '' )
				return -1;
			return ( CHIndex ( CH, "0123456789" ) );
		}


/* ********** CHToSayi Fonksiyonu Bitis ********** */






/* ********** TextToSayi Fonksiyonu Baslangic ********** */

//   Girilen text sayi degeri tasiyorsa textin sayisal degerini dondurur.	\\
//   Eger sayi degilse sonuc " -1 " doner										\\
//   Tam sayi sayisal degerler icin hazirlanmistir							\\


		function TextToSayi ( Text )
		{
			if ( Text == null || Text == '' )
				return -1;
			var Sayi = 0, tempS = 0;
			for ( i=0; i<Text.length; i++ )
			{
				if ( (tempS = CHToSayi ( Text.charAt(i) )) < 0 )
					return -1;
				Sayi *= 10;
				Sayi += tempS;
			}
			return Sayi;
		}
		
		
/* ********** TextToSayi Fonksiyonu Bitis ********** */






/* ********** CHSayi Fonksiyonu Baslangic ********** */

//   Girilen karakterin sayi degeri tasiyup tasimamasina bakar	\\
//   Eger sayi ise sonuc     " true " doner						\\
//   Eger sayi degilse sonuc " false " doner						\\
//   Pozitif tam sayi sayisal degerler icin hazirlanmistir				\\


		function CHSayi ( CH )
		{			
			return ( CHToSayi( CH )>=0 );
		}


/* ********** CHSayi Fonksiyonu Bitis ********** */






/* ********** TextSayi Fonksiyonu Baslangic ********** */

//   Girilen text'in sayi degeri tasiyup tasimamasina bakar		\\
//   Eger sayi ise sonuc     " true " doner						\\
//   Eger sayi degilse sonuc " false " doner						\\
//   Tam sayi sayisal degerler icin hazirlanmistir				\\


		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 Bitis ********** */






/* ********** SplitC Fonksiyonu Baslangic ********** */

//   Belirtilen controlun value degerini alip 								\\
//     sagdan ve soldan bosluk budama islemi yaptiktan sonra belirtilen 	\\
//     karakteri kullanarak ifadeyi boler ve sonucu dizi olarak gonderir	\\


		function SplitC ( Control , CH )
		{
			return BoslukBudaC( Control ).split( CH );
		}


/* ********** SplitC Fonksiyonu Bitis ********** */






/* ********** SplitT Fonksiyonu Baslangic ********** */

//   Belirtilen controlun value degerini alip 								\\
//     sagdan ve soldan bosluk budama islemi yaptiktan sonra belirtilen 	\\
//     karakteri kullanarak ifadeyi boler ve sonucu dizi olarak gonderir	\\


		function SplitT ( Text , CH )
		{
			return BoslukBudaT( Text ).split( CH );
		}


/* ********** SplitT Fonksiyonu Bitis ********** */








/* ********** Degistir Fonksiyonu Baslangic ********** */

//   Belirtilen string ifadenin icerisindeki belirtilen eski degerleri yeni degerlerle degistirir


		function Degistir( _Text, _oldValue, _newValue )
		{
			/* Biraz daha uzun fakat dogru degistirme yapiyor */
			tempIndex = _Text.indexOf(_oldValue);
			if (tempIndex<0)	//Eger degistirilmek istenen deger text degerinin icinde yoksa
				return _Text;					//Gelen degeri geri gonder baska islem yapma
			tempIndex += _oldValue.length;
			_Text = _Text.replace(_oldValue, _newValue);//Ýlk degerler icin degistirme yapildiginda
			newText = _Text.substring(0, tempIndex);
			newText += Degistir(_Text.substr(tempIndex), _oldValue, _newValue);
			return newText;
			/* Kisa fakat Eksik degistirme islemi yapiyor
				//var tempOldL = TextToLower(_oldValue);//Hem Kucuk
				//var tempOldU = TextToUpper(_oldValue);//Hemde buyuk durumu icin
				//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 Bitis ********** */