/*
 * formbak.js
 * 
 *  form kontrol islevleri kutuphanesi
 */
var fdntm=new Array();

function regKontrol( pattern, value) {
   var r = new RegExp( pattern);
   return r.test( value );
}
var formGitti=false;
function formKontrol( form ) {
	if( formGitti)
		return false;
	var rv=true;
	if( fdntm[form.name] != undefined)
		rv=denetle( form, fdntm[form.name]);
	return rv;
}
function denetle( form, denetim) {		
	var hatalar="";
	var ilkhata=-1;
	for( var i=0; i< denetim.length; i++) {
		if( form[denetim[i].alan] /* && form[denetim[i].alan].type == denetim[i].tip */) { 
			var zid=denetim[i].zid;
			if( zid=='i') {
				if( form[denetim[i].alan].value == '')
					zid='d';
				else
					zid='z';
			}
			if( zid != 'z')
				continue;
			var kapali=form[denetim[i].alan].disabled;
			form[denetim[i].alan].disabled=false;
			switch( denetim[i].tip) {
			default:
				if( denetim[i].oruntu.charAt(0) == '=') {
					if( form[denetim[i].alan].value != form[denetim[i].oruntu.substr(1)].value) {
						if( hatalar =="")
							ilkhata=i;
						hatalar += denetim[i].uyari+"\n";
					}
				}
				else if( denetim[i].oruntu.charAt(0) == '|') {
					if( form[denetim[i].alan].value != "" && !regKontrol(denetim[i].oruntu.substr(1),form[denetim[i].alan].value)) {
						if( hatalar =="")
							ilkhata=i;
						hatalar += denetim[i].uyari+"\n";
					}
				}
				else if( denetim[i].oruntu.charAt(0) == 'L') { // textarea maxlength
					var el=form[denetim[i].alan];
					if( el.value.length > 0+el.getAttribute('maxlength')) {
						if( hatalar =="")
							ilkhata=i;
						hatalar += denetim[i].uyari+"\n";
					}
				}
				else {
					if( !regKontrol( denetim[i].oruntu, form[denetim[i].alan].value)) {
						if( hatalar =="")
							ilkhata=i;
						hatalar += denetim[i].uyari+"\n";
					}
				}
				break;
			case 'radio':
			case 'radyo':
				var secilen='';
				if( form[denetim[i].alan].length == null) {
					// tek dugme var
					if( form[denetim[i].alan].checked)
						secilen=form[denetim[i].alan].value;
				}
				else {
					for( j=0; j<form[denetim[i].alan].length; j++)
						if( form[denetim[i].alan][j].checked) {
							secilen=form[denetim[i].alan][j].value;
							break;
						}
				}
				if( secilen=='')
					hatalar += denetim[i].uyari+"\n";
				break;
			case 'monu':
			case 'select-one':
				var secilen=form[denetim[i].alan].selectedIndex;
				if( denetim[i].oruntu.charAt(0) == '>') {
					if( secilen < 0+denetim[i].oruntu.substr(1)) {
						if( hatalar =="")
							ilkhata=i;
						hatalar += denetim[i].uyari+"\n";
					}
				}
				else { // burada deger denetimi yapilmali
				}
				break;
			}
			form[denetim[i].alan].disabled=kapali;
		}
	}
	if( hatalar != '') {
		alert( hatalar);
		if( ilkhata>=0)
			form[denetim[ilkhata].alan].focus()
		return false;
	}
	for( var i=0; i<form.elements.length; i++)
		if( form.elements[i].type=='select-one' && form.elements[i].options[form.elements[i].selectedIndex].value=='X_')
				form.elements[i].options[form.elements[i].selectedIndex].value=form.elements[i].options[form.elements[i].selectedIndex].text;
	formGitti=true;
	return true;
}

function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
		this.relatedElement.setStyle('color', 'red');
	else
		this.relatedElement.setStyle('color', 'black');
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}
function setMaxLength() {
	$$('textarea').each( function(xi) {
		if( xi.getAttribute('maxlength')) {
			// maxlength degeri olan bir alan bulundu
			var counterClone = new Element('div', {
				'class': 'counter',
				'html': '<span>0</span>/'+xi.getAttribute('maxlength')
			});
			counterClone.relatedElement = xi;
			counterClone.inject(xi,'after');
			xi.relatedElement = counterClone.getElement('span');
				xi.onkeyup = xi.onchange = checkMaxLength;
			xi.onkeyup();
		}
	});
}


