// ************************************************************************************/
// file input box icinde girilen resim dosyasi isminin gecerli olup olmadigini kontrol eder...

	function isThePictureFileValid(fileObj){
		var picFileExtArr=new Array(".jpg",".gif",".jpeg");
		return isTheFileValid(fileObj, picFileExtArr);
	}
	
	
	function isTheFileValid(fileObj, fileExtArr){
		var filePath= trim(fileObj.value);
		if(filePath!=null && filePath!=""){
			var fileExt= filePath.substring(filePath.lastIndexOf(".")).toLowerCase();
			for(i=0; i < fileExtArr.length ; i++){
				if(fileExt==fileExtArr[i]) 
					return true;
			}
		} else return true;
		
		return false;
	}

// ************************************************************************************/
// parametredeki Target textArea objesinin uzunlugunu kontrol eder...

	function CheckLen(Target) {

		//---- CONSTANT --- 
		var LENGTH= 1500;
		//-----------------
		var Counter = eval("document.all."+Target.name+"Counter");

		StrLen = Target.value.length;
		if (StrLen == 1 && Target.value.substring(0,1) == " ") {
			Target.value = "";
			StrLen = 0;
		}
		if (StrLen > LENGTH) {
	        //alert('Maksimum '+ LENGTH +' karakter uzunluðunda olabilir!');
		  	Target.value = Target.value.substring(0, LENGTH);
		} 
		Counter.value = LENGTH - Target.value.length;
	}


// ************************************************************************************/
// verdigimiz checkBox.checked degerine gore belirledigmiz bir alani visible/hidden yapar...

	function handleCheckboxAndVisibility(checkObj){
		//alert(checkObj.name);
		var seenObj= document.getElementById(checkObj.name + "Area");
		//alert(seenObj+" = "+seenObj.name);
		if(checkObj.checked){
			seenObj.style.visibility="hidden";
		} else {
			seenObj.style.visibility="visible";
		}
	}


// ************************************************************************************/
// url girislerinde adresin basinda "http://" olmasini saglar...

	function fixUrlError(inputObj){
		
		var url= inputObj.value;
		if(trim(url)!='' && url.substring(0,7)!='http://')
			inputObj.value = 'http://'+trim(url);

	}

// ************************************************************************************/
// selectBox girislerde "Diger" secenegi secildigi zaman aciklama inputBox'u enable/disable eder.

	function enableOtherInput(selectObj, inputObj){
		var selectObjValue = selectObj.options[selectObj.selectedIndex].value;
		if(selectObjValue=="0"){
			 inputObj.disabled = false
			 inputObj.style.visibility = "visible";
		} else {
			 inputObj.disabled = true;
		     inputObj.style.visibility = "hidden";
		}
	}



// ************************************************************************************/
// popup pencere acar.

	function openWindow(theURL,winName,features) {
		window.open(theURL,winName,features);
	}

	function openImgPreview(theImgURL) {
		//alert(theImgURL);
		window.open(theImgURL,"img","scrollbars=yes,resizable=yes,width=400,height=400");
	}


// ************************************************************************************/
// sadece para girisine izin verir.
	function currencyFormat(e) {
		var strCheck = "0123456789.,";
		return inputFormat(e, strCheck);
	}

// ************************************************************************************/
// sadece numerik karekterlerin yazýlmasýna izin verir.
	function numberFormat(e) {
		var strCheck = "0123456789";
		return inputFormat(e, strCheck);
	}
	
	function orderNumberFormat(e) {
		var strCheck = "0123456789-";
		return inputFormat(e, strCheck);
	}

// ************************************************************************************/
// sadece harf karakterlerin yazýlmasýna izin verir.
	function letterFormat(e) {
		var strCheck ="abcçdefgðhýijklmnoöpqrsþtuüvwxyzABCÇDEFGÐHIÝJKLMNOÖPRSÞTUÜVWXYZ ";
		return inputFormat(e, strCheck);
	}

// ************************************************************************************/
// sadece verilen newStrCheck'in içinde bulunan karakterlerin yazýlmasýna izin verir.
	function alphaNumericFormat(e) {
		var strCheck ="0123456789abcçdefgðhýijklmnoöpqrsþtuüvwxyzABCÇDEFGÐHIÝJKLMNOÖPRSÞTUÜVWXYZ ";
		return inputFormat(e, strCheck);
	}

// ************************************************************************************/	
	// sadece verilen newStrCheck'in içinde bulunan karakterlerin yazýlmasýna izin verir.
	function inputFormat(e, newStrCheck) {
		var key = "";
		var strCheck = newStrCheck;
		var aux = aux2 = "";
		var whichCode = (window.Event) ? e.which : e.keyCode;
		 
		if (whichCode == 13) return true;  // Enter
		 
		key = String.fromCharCode(whichCode);  // Anahtar deðeri anahtar koddan al
		 
		if (strCheck.indexOf(key) == -1) return false;  // Yanlýþ deðer 
		return true;
	}

//*******************************
// Check an email address
function checkEmail(email) {
	emailAddress = email.value;
	
	// if email is blank, then it is ok...
	if (isBlank(emailAddress)) return true;
	
	// a valid email must be at least 5 chars (i.e: a@b.c)
	// also, it must be less than 256 chars...
	if (emailAddress.length < 5 || emailAddress.length > 255) 
		return false;
	
	var ats=0;
	var dotsAfterAt=0;
	var atIndex=0;
	var errorFlag=false;
	
	for (var i=0; i<emailAddress.length; i++) {
		var c=emailAddress.charAt(i);
	
		if (c == '@') {
			atIndex = i;
			ats++;
			// rules: @ should not be first or last character,
			// also, there should only be a single @
			if (i == 0 || i+1 == emailAddress.length ||	ats > 1) {
				errorFlag = true;
				break;
			}
		
			// also, an @ can not be next to a dot.
			if (i > 0 && i < emailAddress.length - 1) {
				if (emailAddress.charAt(i-1) == '.' || emailAddress.charAt(i+1) == '.' ) {
					errorFlag = true;
					break;
				}	
			}
		}else if (c == '.') {
			// there must be at least one dot after the at symbol.
			if (i > atIndex && ats > 0) {
				dotsAfterAt++;
			}
			// rules: dot should not be first or last character
			if (i == 0 || i+1 == emailAddress.length) {
				errorFlag = true;
				break;
			}
		}
	}
	
	// an email address must have at least one dot.
	if (dotsAfterAt < 1) {
		errorFlag = true;
	}
	
	if (errorFlag) 
		return false;
	else 
		return true;
}


// **************** 
// Functions for blank field checking
function isBlank(s) {
	for(var i=0; i<s.length; i++) {
		var c=s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) 
			return false;
	}
	
	return true;
}


// ************************************************************************************/
// GIVES THE INDEX OF SELECTED RADIO CHOSE, -1 in no one selected.
function stateChecker(radioItem) {   
	var j=-1;
	var len=typeof(radioItem.length);
	if (len=="undefined"){
	  if( radioItem.checked) { j=1; }
	}
	else {
	 for (var i = 0; i < radioItem.length; i++) {
		if (radioItem[i].checked=="1") {
			j=i;
		}   
	 }
	}
	
	return j
}

// **************** 
// Functions for String trim
function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}
//**********************************************************************************************/
// Artik yil kontrolu...
	function LeapYear(intYear) {
		if (intYear % 100 == 0) {
			if (intYear % 400 == 0) { return true; }
		}else {
			if ((intYear % 4) == 0) { return true; }
		}
		
		return false;
	}

//*********************************************************************************************/
// gecerli tarih kontrolu...
	function isTheDateValid(objTheForm, strTheDateObjNamePrefix) {
	
		//!!! buradaki obje isimleri OptionBundle.getDateSelectHTML() methoduna gore standarttir.!!!
		var objSelectedDay = eval(objTheForm.name+"."+strTheDateObjNamePrefix+"Day");
		var objSelectedMonth = eval(objTheForm.name+"."+strTheDateObjNamePrefix+"Month");
		var objSelectedYear = eval(objTheForm.name+"."+strTheDateObjNamePrefix+"Year");
		//!!! -----------------------

		var strDay = objSelectedDay.value;
		var strMonth = objSelectedMonth.value;
		var strYear = objSelectedYear.value;

		var intDay = parseInt(strDay, 10);
		var intMonth = parseInt(strMonth, 10);
		var intYear = parseInt(strYear, 10);
		
		if (isNaN(intDay) || isNaN(intMonth) || isNaN(intYear)) {
			return false;
		}
		
		if (intMonth>12 || intMonth<1) {
			return false;
		}
		
		if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intDay > 31 || intDay < 1)) {
			return false;
		}
		
		if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intDay > 30 || intDay < 1)) {
			err = 7;
			return false;
		}
		
		if (intMonth == 2) {
			if (intDay < 1) {
				return false;
			}
			if (LeapYear(intYear) == true) {
				if (intDay > 29) {
					return false;
				}
			}else {
				if (intDay > 28) {
					return false;
				}
			}
		}
		return true;
	}


