
// Eğer Form Elementinde CAPTION="xyz alanı" gibi bir Özellik varsa, O elementin içeriği denetlenir.

//------------------------------------------------------------
function CheckForm(theForm){

	for(var ii = 0; ii < theForm.length; ii++){
		var kacGeri=0 , radioOK=false , checkboxOK=false;
		var e = theForm.elements[ii];
///////////////////////////////////////////////////
		if( e.type=="text" && e.CAPTION && (e.style.visibility=="visible" || e.style.visibility=="") && !e.ORGRUP ){
			if( e.value == null || e.value == "" || IsBlank(e.value) || e.value == e.CAPTION ) {alert("[" + e.CAPTION + "]\n\nAlanının doldurulması gerek!\n\nLütfen Doldurunuz") ; e.focus(); e.select(); return false;}
			if( e.datatype=="numeric" && !IsNumeric(e.value) )	{alert("[" + e.CAPTION + "]\n\nAlanı yalnızca sayılardan oluşmalı!\nLütfen Doldurunuz") ; e.focus(); e.select(); return false;}
			if( e.subtype=="mail" && !simpleMailCheck(e) ){e.focus(); e.select(); return false;}
//Dim R as new Regexp
//R.Pattern = "^[a-zA-Z0-9\-_.]{2,}@[a-zA-Z0-9\-]{2,}.[a-zA-Z0-9\-]{2,6}$"
//Msgbox R.Test("abc@qwer.com")

		}
///////////////////////////////////////////////////
		if( e.type=="textarea" && e.CAPTION && (e.style.visibility=="visible" || e.style.visibility=="") ){
			if( e.value == null || e.value == "" || IsBlank(e.value) || e.value == e.CAPTION ) {alert("[" + e.CAPTION + "]\n\nAlanının doldurulması gerek!\n\nLütfen Doldurunuz") ; e.focus() ; return false;}
		}
///////////////////////////////////////////////////
		if( e.type=="radio" && e.CAPTION ){
//--
		for(var rbii=ii; rbii < theForm.length; rbii++){
			if ( theForm.elements[rbii].type.toLowerCase() != "radio" )break; // Bug:
			// Bug:
			// Bir Radio Button Grubu bittiğinde, bir başka tür Form elemanı bulunmak zorunda.
			// Eğer yoksa bütün Radio Buttonlar tek grup olarak algılanıyor.
			// Önlemenin bir yolu gruplar arasına <input type=hidden> gibi zararsız form elemanı koymak.
			if ( theForm.elements[rbii].checked )radioOK=true;
			kacGeri++
		}
		if ( !radioOK ){alert("[" + theForm.elements[rbii-kacGeri].CAPTION + "]\n\nSeçimini yapmanız gerek!\n\nLütfen Seçiniz") ; e.focus() ; return false;}
//--
		}
///////////////////////////////////////////////////
		if( e.type=="checkbox" && e.CAPTION ){
//--
		for(var cbii=ii; cbii < theForm.length; cbii++){
			if ( theForm.elements[cbii].type.toLowerCase() != "checkbox" )break; // Bug:
			if ( theForm.elements[cbii].checked )checkboxOK=true;
			kacGeri++
		}
		if ( !checkboxOK ){alert("[" + theForm.elements[cbii-kacGeri].CAPTION + "]\n\nBir veya birkaç seçim yapmanız gerek!\n\nLütfen Seçiniz") ; e.focus() ; return false;}
//--
		}
///////////////////////////////////////////////////
		if( e.type=="select-one" && e.CAPTION && ( e.value == null || e.value == "" ) ){
			alert("[" + e.CAPTION + "]\n\nSeçimi yapmanız gerek!\n\nLütfen Seçiniz") ; e.focus() ; return false;
		}
///////////////////////////////////////////////////
		if( e.type=="select-multiple" && e.CAPTION && ( e.value == null || e.value == "" ) ){
			alert("[" + e.CAPTION + "]\n\nSeçim ve/veya Seçimlerini yapmanız gerek!\n\nLütfen Seçiniz") ; e.focus() ; return false;
		}
///////////////////////////////////////////////////
		if( e.type=="file" && e.CAPTION && ( e.value == null || e.value == "" ) ){
			alert("[" + e.CAPTION + "]\n\nBilgisayarınızdan bir dosya seçimi yapmanız isteniyor!\n\nLütfen Seçiniz") ; e.focus() ; return false;
		}
///////////////////////////////////////////////////
		if( e.type=="password" && e.CAPTION && ( e.value == null || e.value == "" ) ){
			alert("[" + e.CAPTION + "]\n\nParolanızın girilmesi isteniyor!\n\nLütfen Giriniz") ; e.focus() ; return false;
		}
///////////////////////////////////////////////////

	}


/*
	var ktv=0;
	for(var ii = 0; ii < theForm.length; ii++){
		var e = theForm.elements[ii];
		if(e.ORGRUP){
		ktv++
		}
	}
	alert(ktv);
*/



}
//------------------------------------------------------------

function IsNumeric(num)
{
     var len
     var x
     len=num.length;
     if (len<1){return false;}
     for(x=0;x<len;x++){
          if ((num.charCodeAt(x)<48)||(num.charCodeAt(x)>57)){return false;}
     }
     return true;
}
//------------------------------------------------------------
function IsBlank(s)
{
    for(var ii = 0; ii < s.length; ii++) {
        var c = s.charAt(ii);
        if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
    }
    return true;
}
//------------------------------------------------------------

// CharCheck() InpTypes
var Numeric = "0123456789"
var upperAlfa = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var lowerAlfa = "abcdefghijklmnopqrstuvwxyz"
var Alfa = upperAlfa + lowerAlfa
var upperTR = "ÇĞİÖŞÜ"
var lowerTR = "çğıöşü"
var TR = upperTR + lowerTR
var AlfaNumeric = Alfa + Numeric
var Sign = "@!'+%&/()=?_#${[]}\+*-.,;:"
var KeyBoard = AlfaNumeric + Sign + " "   // All Legal Keys
// CharCheck() InpTypes

// ==================
// <input .... onKeyUp="CharCheck(this,sabitVEYAdegisken)">
function CharCheck(alan,InpType)
{
        for(var i=0 ; i < alan.value.length ; i++)
		{ 
	var entry=alan.value;
  	if (InpType.indexOf( entry.charAt(i) ) == -1) {alert("Geçersiz Karakter Tipi !");
												   alan.value = replaceChars(entry,entry.charAt(i),"");alan.focus();}
		}
}
// <input .... onBlur="MailCheck(this)">
function MailCheck(TheForm)
{
//   mailuser@domain.ext
 var ForEmailChar = "@.-_"
 CharCheck(adres,AlfaNumeric+ForEmailChar)
 
 var i;
 var AtIsareti = 0;
 var Nokta = 0;
 var Bosluk = 0;
 var mailLEN = adres.value.length;
 
var mailuser = adres.value.substring(0, adres.value.indexOf('@'));
var AllDomain = adres.value.substring(adres.value.indexOf('@')+1, adres.value.length);
var Domain = AllDomain.substring(0,AllDomain.indexOf('.'));
var DomainExt = AllDomain.substring(AllDomain.indexOf('.')+1, AllDomain.length);

var marj;
var marjERROR=false;
marj = mailuser.substring(0,1) ; if ( ForEmailChar.indexOf(marj) != -1 ) {marjERROR=true}
marj = mailuser.substring(mailuser.length-1,mailuser.length) ; if ( ForEmailChar.indexOf(marj) != -1 ) {marjERROR=true}
marj = Domain.substring(0,1) ; if ( ForEmailChar.indexOf(marj) != -1 ) {marjERROR=true}
marj = Domain.substring(Domain.length-1,Domain.length) ; if ( ForEmailChar.indexOf(marj) != -1 ) {marjERROR=true}
marj = DomainExt.substring(0,1) ; if ( ForEmailChar.indexOf(marj) != -1 ) {marjERROR=true}
marj = DomainExt.substring(DomainExt.length-1,DomainExt.length) ; if ( ForEmailChar.indexOf(marj) != -1 ) {marjERROR=true}


 for (i=0; i<=mailLEN; ++i)
  {
  karakter=adres.value.charAt(i);
  if (karakter=='@') { ++AtIsareti }
  if (karakter=='.') { ++Nokta ; if (Nokta==1 && adres.value.substr(i+1,1)==".") {alert('İki nokta yanyana olamaz !');adres.focus();};}
  if (karakter==' ') { ++Bosluk }
  }

 if (AtIsareti== 1 && Nokta > 0 && Bosluk == 0 && DomainExt.length > 0 && DomainExt != AllDomain && mailuser !="" && Domain !="" && !marjERROR )
 {return true} 
 else 
 {if (adres.value.length > 0) {alert('Girdiğiniz E-Mail Formatı hatalı !');}
  if (adres.value.length > 0) {adres.focus();} 
  return false}
}
// ==================

// Bu fonksiyon tek başına kullanılabilir
function simpleMailCheck(adres)
// Bu fonksiyonu şu şekilde kullanabiliriz
// <input onBlur="MailCheck(this)">
{
 var AtIsareti;
 var Nokta;
 var Bosluk;
 var KacKarakter;
 var i;
 AtIsareti=0;
 Nokta=0;
 Bosluk=0;
 
 KacKarakter=adres.value.length;
 for (i=0; i<=KacKarakter; ++i)
  {
  karakter=adres.value.charAt(i);
  if (karakter=='@') { ++AtIsareti }
  if (karakter=='.') { ++Nokta }
  if (karakter==' ') { ++Bosluk }
  }

 if (AtIsareti== 1 && Nokta > 0 && Bosluk == 0) 
 {return true} 
 else 
 {alert('Girdiğiniz E-Mail Formatı hatalı !'); return false}
}
