var errorMessage = new Element("div",{
							'styles':{
								'width':'100px',
								'height':'20px',
								'color':'#000000',
								'font-weight':'normal',
								'font-size':'12px',
								'background':'#FFF9D7',
								'border':'1px solid #E5E0C1',
								'padding':'10px',
								'position':'absolute',
								'z-index':'77777',
								'display':'none'
							}
						});
var errorMessageArrow = new Element("div",{
							'styles':{
								'width':'22px',
								'height':'12px',
								'position':'absolute',
								'z-index':'77778',
								'display':'none'
							}
						});

var inputBgEffectColor = '#f1f1f1';

function displayError(parent_)
{
	// position the error displayer
	errorMessage.setStyle('display','');
	errorMessage.setStyle('left', parent_.getPosition().x+'px');
	errorMessage.setStyle('top', (parent_.getPosition().y+35)+'px');
	parentSize = parent_.getSize();
	errorMessage.setStyle('width', (parentSize.x-24)+'px');

	// arrow
	errorMessageArrow.setStyle('display','');
	errorMessageArrow.setStyle('left',(parent_.getPosition().x+10)+'px');
	errorMessageArrow.setStyle('top', (parent_.getPosition().y+25)+'px');

	// fade out effect
	errorMessage.effect('opacity', {duration: 0}).set(1);
	errorMessage.effect('opacity', {duration: 3250 }).start(1,0);

	errorMessageArrow.effect('opacity', {duration: 0}).set(1);
	errorMessageArrow.effect('opacity', {duration: 3250 }).start(1,0);

	return false;
}

function validate(targetForm) {

	var EMAIL = "^[a-zA-Z0-9_-]+(\.([a-zA-Z0-9_-])+)*@[a-zA-Z0-9_-]+[.][a-zA-Z0-9_-]+([.][a-zA-Z0-9_-]+)*$"
	var URL = "http://"
	errorMessage.set('html','');
	errorMessageArrow.set('html',' <img src="img/arrowErrorBalloon.png" width="22" height="12" alt="" /> ');
	for (var i = 0; i < targetForm.elements.length; i++) {
		if(targetForm.elements[i].getAttribute("strValue") != null) {
			var message = targetForm.elements[i].getAttribute("message");
			var strBound = targetForm.elements[i].getAttribute("strBound");
			var strVal = targetForm.elements[i].getAttribute("strValue");

			if(eval('document.' + strBound + '.type') == 'select-one') {
				var sIndex = eval('document.' + strBound + '.selectedIndex');
				var strBoundVal = eval('document.' + strBound + '[' + sIndex + '].value');
			}
			if(strVal == strBoundVal){
				if(targetForm.elements[i].value == '' && !targetForm.elements[i].disabled) {
					errorMessage.set('text',message);
					targetForm.elements[i].focus();
					return false;
				}
			}

		}

		if(targetForm.elements[i].getAttribute("isReq")) {

			if(targetForm.elements[i].getAttribute("trim"))
			{
				targetForm.elements[i].value=targetForm.elements[i].value.trim();
			}

			var message = targetForm.elements[i].getAttribute("message");

			var bgEffect = new Fx.Morph(targetForm.elements[i], 'background-color',{duration:300});
			bgEffect.set("#fff");

			$(targetForm.elements[i]).getParent().adopt(errorMessage);
			$(targetForm.elements[i]).getParent().adopt(errorMessageArrow);
			if(targetForm.elements[i].type == 'checkbox') {
				if(!targetForm.elements[i].checked) {
					errorMessage.set('text',message);
					targetForm.elements[i].focus();
					displayError($(targetForm.elements[i]).getParent());
					return false;
				}
			}
			else if(targetForm.elements[i].type == 'text' || targetForm.elements[i].type == 'password' || targetForm.elements[i].type == 'hidden') {

				if(targetForm.elements[i].value == '' && !targetForm.elements[i].disabled) {
					errorMessage.set('text',message);
					if(targetForm.elements[i].type != 'hidden')
					{
						bgEffect.start(inputBgEffectColor);
						targetForm.elements[i].focus();
						displayError($(targetForm.elements[i]).getParent());
					}
					return false;
				}
				if(targetForm.elements[i].getAttribute("regex") != null) {
					var UserRegEx = targetForm.elements[i].getAttribute("regex");
					var InputValue = targetForm.elements[i].value;
					if(UserRegEx == 'EMAIL') {
						var re = new RegExp(EMAIL);
						if(!InputValue.match(re)) {
							errorMessage.set('text',message);
							if(targetForm.elements[i].type != 'hidden')
							{
								bgEffect.start(inputBgEffectColor);
								targetForm.elements[i].focus();
								displayError($(targetForm.elements[i]).getParent());
							}
							return false;
						}
					}
					else if(UserRegEx == 'URL') {
						var re = new RegExp(URL);
						if(!InputValue.match(re)) {
							errorMessage.set('text',message);
							if(targetForm.elements[i].type != 'hidden')
							{
								bgEffect.start(inputBgEffectColor);
								targetForm.elements[i].focus();
								displayError($(targetForm.elements[i]).getParent());
							}
							return false;
						}
					}
					else {
						var re = new RegExp(UserRegEx);
						if(!InputValue.match(re)) {
							errorMessage.set('text',message);
							if(targetForm.elements[i].type != 'hidden')
							{
								bgEffect.start(inputBgEffectColor);
								targetForm.elements[i].focus();
								displayError($(targetForm.elements[i]).getParent());
							}
							return false;
						}
					}
				}
			}
			else if(targetForm.elements[i].type == 'select-one') {
				if(targetForm.elements[i].value == '' && !targetForm.elements[i].disabled) {
					errorMessage.set('text',message);
					bgEffect.start(inputBgEffectColor);
					targetForm.elements[i].focus();
					displayError($(targetForm.elements[i]).getParent());
					return false;
				}
			}
			else if(targetForm.elements[i].type == 'textarea') {
				if(targetForm.elements[i].value == ''&& !targetForm.elements[i].disabled) {
					errorMessage.set('text',message);
					bgEffect.start(inputBgEffectColor);
					targetForm.elements[i].focus();
					displayError($(targetForm.elements[i]).getParent());
					return false;
				}
			}
			else if(targetForm.elements[i].type == 'radio') {
				var isSelected = false;
				var j = 0;
				while(targetForm.elements[i+j].type == 'radio' &&
				targetForm.elements[i].name == targetForm.elements[i+j].name) {
					if(targetForm.elements[i+j].checked) {
						isSelected = true;
					}
					j++;

				}

				j = 0;

				while(targetForm.elements[i-j].type == 'radio' &&
				targetForm.elements[i].name == targetForm.elements[i-j].name) {
					if(targetForm.elements[i-j].checked) {
						isSelected = true;
					}

					if(i-j <= 0) {
						break;
					}

					j++;
				}

				if(!isSelected) {
					errorMessage.set('text',message);
					bgEffect.start(inputBgEffectColor);
					targetForm.elements[i].focus();
					displayError($(targetForm.elements[i]).getParent());
					return false;
				}
			}
			else {
				return true;

			}
		}

	}

	// eğer formda isReq yoksa sıçtığından EK kaldırdı 20070828
	// errorMessage.remove();
	return true;
}
