var isError = 0;
var error = "";
function trim(str) {
	if(str.length < 1) return "";
		var return_string = str;
	while(return_string.charAt(0) == " ")
		return_string = return_string.substring(1, return_string.length);
	while(return_string.charAt(return_string.length - 1) == " ")
		return_string = return_string.substring(0, (return_string.length - 1));
	return(return_string);
}
function isNull(str, desc) {
	if ( trim(str) == "") {
		isError++
		error = error + isError + ") " + desc + " alanı boş bırakılmamalı!\n"
	}
}
function isNumber(str, desc) {
	if (isNaN(trim(str))) {
		isError++
		error = error + isError + ") " + desc + " alani nümerik bir deger olmali!\n"
	}
}
function isNotNumber(str, desc) {
	var invalid = "1234567890";
    var temp;
	var problem = "no";
	for (var i=0; i<str.length; i++) {
		tempCHAR = "" + str.substring(i, i+1);
		temp = invalid.indexOf(tempCHAR);
		if (temp != "-1") {
		    problem = "yes";
		}
	}
	if ( problem == "yes" ) {
		isError++
		error = error + isError + ") " + desc + " alanı rakam içermemelidir!\n"
	}
}
function isInRangeString(str, desc, minSV, maxSV) {
	if ( minSV > 0 ) {
		isNull(str, desc)
	}
	str = trim(str)
	if ( str.length > maxSV && maxSV != 0 ) {
		isError++
		error = error + isError + ") " + desc + " alanı toplam "  + maxSV +  " karakterden daha uzun olmamalı!\n"
	}
	if ( str.length < minSV && minSV != 0 ) {
		isError++
		error = error + isError + ") " + desc + " alanı toplam " + minSV + " karakterden daha kısa olmamalı!\n"
	}
}
function isInRangeStringOrNull(str, desc, minSV, maxSV) {
	str = trim(str)
	if ( str.length > maxSV && str.length != "" ) {
		isError++
		error = error + isError + ") " + desc + " alanı toplam " + maxSV + " karakterden daha uzun olmamalı!\n"
	}
	if ( str.length < minSV && str.length != 0 ) {
		isError++
		error = error + isError + ") " + desc + " alanı toplam " + minSV + " karakterden daha kısa olmamalı!\n"
	}
}
function isInRangeNumber(str, desc, minNV, maxNV) {
	isNumber(str, desc)
	if ( trim(str) > maxNV && maxNV != 0 ) {
		isError++
		error = error + isError + ") " + desc + " alanı " + maxNV + " değerinden daha büyük olmamalı!\n"
	}
	if ( trim(str) < minNV && minNV != 0 ) {
		isError++
		error = error + isError + ") " + desc + " alanı " + minNV + " değerinden daha küçük olmamali!\n"
	}
}

function isEmail(str, desc) {
	var i =  str.indexOf("@");
	if (i<0) {
		isError++
		error = error + isError + ") " + desc + " alanında @ işareti yok!\n"
	} else if (i==0) {
		isError++
		error = error + isError + ") " + desc + " alanı @ işareti ile başlıyor!\n"
	}
	var mailbox = str.substring(0,i);
	var domain = str.substring(i+1);
	if (domain.indexOf("@")>=0) {
		isError++
		error = error + isError + ") " + desc + " alanında birden fazla @ işareti kullanılmış!\n"
	}
	alphaSpecial = /[^A-Za-z0-9_\-.]+/;
	alphafront = /^[^A-Za-z0-9]/;
	alphalast = /[^A-Za-z0-9]+$/;
  
	if(alphafront.exec(mailbox)!=null) {
		isError++
		error = error + isError + ") " + desc + " alanı sadece harf veya rakamla başlayabilir!\n"
	}
	if(alphaSpecial.exec(mailbox)!=null) {
		isError++
		error = error + isError + ") " + desc + " alanının kullanıcı adı kısmında sadece harfler, rakamlar, -, _ ve . karakterlerini kullanabilirsiniz!\n"
	}
	if(alphalast.exec(mailbox)!=null) {
		isError++
		error = error + isError + ") " + desc + " alanının kullanıcı adı kısmı sadece harf veya rakamla sonlanabilir!\n"
	}
	if(alphafront.exec(domain)!=null) {
		isError++
		error = error + isError + ") " + desc + " alanının domaını harf veya rakamla baılamak zorundadır!\n"
	}
	if(alphaSpecial.exec(domain)!=null) {
		isError++
		error = error + isError + ") " + desc + " alanının domain adı kısmında sadece harfler, rakamlar, -, _ ve . karakterlerini kullanabilirsiniz!\n"
	}
	if(alphalast.exec(domain)!=null) {
		isError++
		error = error + isError + ") " + desc + " alanının domain adı kısmı sadece harf veya rakamla sonlanabilir!\n"
	}
	i = domain.lastIndexOf(".");
	if (i<0) {
		isError++
		error = error + isError + ") " + desc + " alanının domain kısmı hatali!\n"
	}
	if(!lookup(domain.substring(i+1))) {
		isError++
		error = error + isError + ") " + desc + " alanında geçersiz domain adi kullanılmış!\n"
	}
	alpha = /[_\-.]+/;
	z=mailbox.match(alpha);
	if(z!=null) {
		if((String(z).length)>1) {
			isError++
			error = error + isError + ") " + desc + " alanı hatalı!\n"
		}
	}
}

function lookup(country) {   
	A = [ "ad", "ae", "af", "ag", "ai", "al", "am", "an", "ao", "aq", "ar", "as", "at", "au", "aw", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "cr", "cs", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", "fr", "fx", "ga", "gb", "gd", "ge", "gf", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "in", "io", "iq", "ir", "is", "it", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "mg", "mh", "mk", "ml", "mm", "mn", "mo", "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", "nf", "ng", "ni", "nl", "no", "np", "nr", "nt", "nu", "nz", "om", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "pt", "pw", "py", "qa", "re", "ro", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "st", "su", "sv", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", "tm", "tn", "to", "tp", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "um", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "yu", "za", "zm", "zr", "zw", "com", "edu", "gov", "int", "mil", "net", "org", "arpa", "nato" ];
    for (i=0; i<A.length; i++)        
	    if (country == A[i])  return true;
    return false;
}

function isTr(str,desc) {
	var valid = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ öçsiügÖÇSIÜGÖÇ ";
    var temp;
	var problem = "no";
	for (var i=0; i<str.length; i++) {
		tempCHAR = "" + str.substring(i, i+1);
		temp = valid.indexOf(tempCHAR);
		if (temp == "-1") {
		    problem = "yes";
		}
	}
	if ( problem == "yes" ) {
		isError++
		error = error + isError + ") " + desc + " alanı sadece Türkçe karakterlerden oluşmalıdır!\n"
	}
}

function isEn(str,desc) {
	var valid = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    var temp;
	var problem = "no";
	for (var i=0; i<str.length; i++) {
		tempCHAR = "" + str.substring(i, i+1);
		temp = valid.indexOf(tempCHAR);
		if (temp == "-1") {
			    problem = "yes";
		}
	}
	if ( problem == "yes" ) {
		isError++
		error = error + isError + ") " + desc + " alanı sadece ingilizce karakterlerden oluşmalıdır!\n"
	}
}

function isRightExt (str, desc, exts) {
	exts = exts.split(" ");
	problem = ""
	fileExt = str.substring(str.lastIndexOf(".")+1)
	for (eee in exts) {
		if ( exts[eee].toLowerCase() == fileExt.toLowerCase() ) {
			problem = "no"
		}
	}
	if ( problem != "no" ) {
		isError++
		error = error + isError + ") " + desc + " alanina " + fileExt + " formatında dosya gıremezsınız!\nSadece aşagıdaki formatları kabul eder:\n" + exts + "\n"
	}
}  

function isDate(str, desc) {

	if (str.length!=10){
		isError++
		error = error + isError + ") " + desc + " alanı 10 karakterden oluşmalı!\n"
	}
	
	if (str.substring(0,1)>"31") {
		isError++
		error = error + isError + ") " + desc + " alanında gün sayısı hatalı!\n"
		}
	
	if (str.substring(3,4)>"12") {
		isError++
		error = error + isError + ") " + desc + " alanında ay sayısı hatalı!\n"
		}
	
	if ((str.indexOf("/")!=2)||(str.lastIndexOf("/")!=5)) {
		isError++
		error = error + isError + ") " + desc + " alanı formatı hatalı !\n"
	}
	
	return false;
}	
	


