// ************************************************************************************/
// file input box icinde girilen resim dosyasi isminin gecerli olup olmadigini kontrol eder...

	function isThePictureFileValid(fileObj){
		//alert(fileObj.style.visibility);
		var picFileExt=new Array(".jpg",".bmp",".gif",".pcx",".jpeg");
		var filePath= trim(fileObj.value);
		//alert("filePath = "+filePath);
		//alert("picFileExt.length = "+picFileExt.length);
		if(filePath!=null && filePath!=""){
			var fileExt= filePath.substring(filePath.lastIndexOf(".")).toLowerCase();
			//alert("fileExt = "+fileExt);
			for(i=0; i < picFileExt.length ; i++){
				if(fileExt==picFileExt[i]) 
					return true;
			}
		} else return true;
		
		return false;
		
	}

// ************************************************************************************/
// 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";
		}
	}

//****************************************************************************************/
// ilk tarihin son tarihten kücük olmasýný kontrol eder...
// !!! bu methoda gonderilen tarihlerin null olmama ve gecerlilik kontrolu daha onceden yapilmalidir.

	function dateComparison(objTheForm, strTheDateObjNamePrefix1, strTheDateObjNamePrefix2){
		//!!! buradaki obje isimleri OptionBundle.getDateSelectHTML() methoduna gore standarttir.!!!
		var objTheDay1 = eval(objTheForm.name+"."+strTheDateObjNamePrefix1+"Day");
		var objTheMonth1 = eval(objTheForm.name+"."+strTheDateObjNamePrefix1+"Month");
		var objTheYear1 = eval(objTheForm.name+"."+strTheDateObjNamePrefix1+"Year");
		var objTheDay2 = eval(objTheForm.name+"."+strTheDateObjNamePrefix2+"Day");
		var objTheMonth2 = eval(objTheForm.name+"."+strTheDateObjNamePrefix2+"Month");
		var objTheYear2 = eval(objTheForm.name+"."+strTheDateObjNamePrefix2+"Year");
		//!!! -----------------------
		
		var strDay1 = objTheDay1.value;
		var strMonth1 = objTheMonth1.value;
		var strYear1 = objTheYear1.value;
		var strDay2 = objTheDay2.value;
		var strMonth2 = objTheMonth2.value;
		var strYear2 = objTheYear2.value;

		if( strDay2=="-1" || strMonth2=="-1" || strYear2=="-1" ){
			//eger tarih2 bos ise...
			return true; 
		}

		var date1 = new Date(strYear1, strMonth1, strDay1);
		var date2 = new Date(strYear2, strMonth2, strDay2);
		var datediff= date1 - date2;
		//alert(datediff);
		if (datediff>0) {
			return false;
		}
		return true;
	}

//**********************************************************************************************/
// 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;
	}

// ************************************************************************************/
// ID'si gonderilen objenin visibility degerini set eder.

	function setVisibility(objId, value){
		var obj = document.getElementById(objId);
		obj.style.visibility = value;
	}

// ************************************************************************************/
// parametredeki Target textArea objesinin uzunlugunu kontrol eder...

	function CheckLen(Target) {
		//---- CONSTANT --- 
		var LENGTH= 1000;
		//-----------------
		CheckLength(Target, LENGTH);
	}
	
	function CheckLength(Target,intLength) {

		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 > intLength) {
	        //alert('Maksimum '+ intLength +' karakter uzunluðunda olabilir!');
		  	Target.value = Target.value.substring(0, intLength);
		} 
		Counter.value = intLength - Target.value.length;
	}


// ************************************************************************************/
//  String trim function...
	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;
	}


// ************************************************************************************/
// 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","resizable=yes,scrollbars=yes,width=400,height=400");
	}


// ************************************************************************************/
// sadece numerik karekterlerin yazÄ±lmasÄ±na izin verir.
	function numberFormat(e) {
		var strCheck = "0123456789";
		return inputFormat(e, strCheck);
	}


	function telNumberFormat(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 whichCode = (window.Event) ? e.which : e.keyCode;
		 
		if (whichCode == 13) return true;  // Enter
		 
		key = String.fromCharCode(whichCode);  // Anahtar deÄŸeri anahtar koddan al
		//alert("gelen key="+key+"\nstrDizisi="+newStrCheck);
		if (newStrCheck.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
}


