﻿/*
* TA FORM VALIDATOR
* versiyon 0.1.2Beta
*
* Tolga Arican
* chaylock@msn.com
* dxenia.com
*/

// String proper-case (TURKCE)
String.prototype.toProperCase = function()
{
	return this.toLowerCase().replace(/^(.)|\s(.)/g,
			function($1) { return $1.toTrkUppercase(); });
			// function($1) { return $1.toUppercase(); });
}

// String upper-case (TURKCE)
String.prototype.toTrkUppercase = function() {

	var str = [];
	
	for(var i = 0; i < this.length; i++) {
	
		var ch = this.charCodeAt(i);
		var c = this.charAt(i);
		
		if (ch == 105) str.push('İ');
		else if(ch == 305) str.push('I');
		else if(ch == 287) str.push('Ğ');
		else if(ch == 252) str.push('Ü');
		else if(ch == 351) str.push('Ş');
		else if(ch == 246) str.push('Ö');
		else if(ch == 231) str.push('Ç');
		else if(ch >= 97 && ch <= 122) str.push(c.toUpperCase());
		else str.push(c);
	}
	
	return str.join('');
}

// proper-case yapma
function checkProper(id,required) {

	required = required || false;
	
	if (required)
		isFilled(id);

	document.getElementById(id).value = document.getElementById(id).value.toProperCase();
}

// doldurulmasi zorunlu (CSS)
function isFilled(id) {

	var result = (document.getElementById(id).value != "");
	
	if (result)
		document.getElementById(id).className = inputOkClass;
	else
		document.getElementById(id).className = inputNotOkClass;

	return result;
}

// e-posta gecerliligi (CSS)
function validMail(id) {
	
	if (!isValidEmail(document.getElementById(id).value,true)) {
		document.getElementById(id).className = inputNotOkClass;
		return false;
	} else {
		document.getElementById(id).className = inputOkClass;
		return true;
	}
}		

// e-posta gecerli mi?
function isValidEmail(email, required) {
	
	required = required || true;
	
	if (email==null)
		return !required;
		
	if (email.length==0)
		return !required;
		
	if (!allValidChars(email)) {
		return false;
	}
	if (email.indexOf("@") < 1) {
		return false;
	} else if (email.lastIndexOf(".") <= email.indexOf("@")) {
		return false;
	} else if (email.indexOf("@") == email.length) {
		return false;
	} else if (email.indexOf("..") >=0) {
		return false;
	} else if (email.indexOf(".") == email.length) {
		return false;
	}
	return true;
}

// e-posta gecerli karakterler
function allValidChars(email) {
	
	var parsed = true;
	var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
	
	for (var i=0; i < email.length; i++) {
		var letter = email.charAt(i).toLowerCase();
		if (validchars.indexOf(letter) != -1)
			continue;
		parsed = false;
		break;
	}
	return parsed;
}

// querystring parametrelerini alma
function queryString(param) {

	var URL = location.href;

	if(param!=null) {
	
		var regEx = new RegExp("(\\?|&)("+param+"=)(.*?)(&|$|#)","i");
		var exec = regEx.exec(URL);
		var result = RegExp.$3;
	} else {
	
		var regEx = new RegExp("(\\?)(.*?)($)","i");
		var exec = regEx.exec(URL);
		var result = RegExp.$2;
	}
	
	result = result.replace(/%40/gi, "@");
	result = result.replace(/\+/gi, " ");
	result = result.replace(/%20/gi, " ");
	result = result.replace(/%c4%b1/gi, "ı");
	result = result.replace(/%c3%b6/gi, "ö");
	result = result.replace(/%c5%9f/gi, "ş");
	result = result.replace(/%c3%a7/gi, "ç");
	result = result.replace(/%c3%bc/gi, "ü");
	result = result.replace(/%c4%9f/gi, "ğ");
	result = result.replace(/%c4%b0/gi, "İ");
	result = result.replace(/%c3%96/gi, "Ö");
	result = result.replace(/%c5%9e/gi, "Ş");
	result = result.replace(/%c3%87/gi, "Ç");
	result = result.replace(/%c3%9c/gi, "Ü");
	result = result.replace(/%c4%9e/gi, "Ğ");
	
	return result;
}

// ----------- ARACLAR

// baslangic , son , secili olan , bos olacak mi basta, sifir, ters?
function dropdownGen(from,to,selected,empty,zero,reverse)
{
	// opsiyonel parametreler
	reverse = reverse || false;
	zero = zero || true;
	empty = empty || true;

	if (empty)
		document.write('<option value=\"\"></option>');
	
	var selectedText = "";
	var zero_i = "";
	var for_loop = true;
	
	if (reverse) {
		summer = -1;
		tmp = from;
		from = to;
		to = tmp;
	}
	else {
		summer = 1;
	}
	
	for(i=from;for_loop;i+=summer) {
		
		if (i==selected)
			selectedText = " selected=\"yes\" ";
			
			
		if ((i<10) && zero)
			zero_i = "0" + i;
		else
			zero_i = i;
			
		document.write('<option value=\"' + i + '\" '+selectedText+'>' + zero_i + '</option>'); 
			
		selectedText = "";
		
		if (i == to)
			for_loop = false;
	}
}