function validate(validations){
	var ok=true;
	var id='';
	var validationType='';
	var validationParams='';
	var errorMessage='';
	var displayInErrorBox='';
	for (i in validations){
		id=validations[i]['id'];
		validationType=validations[i]['type'];
		validationParams=validations[i]['params'];
		errorMessage=validations[i]['message'];
		displayInErrorBox=validations[i]['displayInBox'];
		switch (validationType){
			case 'checkRequired':
				if (!checkRequired(id))
					ok=false;
				break;
			case 'checkStrlenMin':
				if (!checkStrlenMin(id,validationParams))
					ok=false;
				break;
			case 'checkStrlenMax':
				if (!checkStrlenMax(id,validationParams))
					ok=false;
				break;
			case 'checkSame':
				if (!checkSame(id,validationParams))
					ok=false;
				break;
			case 'checkRegexp':
				if (!checkRegexp(id,validationParams))
					ok=false;
			default:
				break;
		}
		if (!ok){
			break;
		}
	}
	if (!ok){
		markError(id,errorMessage,displayInErrorBox);
//		$('#'+id+'_errorBox').text(errorMessage);
//		$('#'+id+'_errorBox').removeClass('error');
	}
	else{
		destroyError(id,displayInErrorBox);
//		$('#'+id+'_errorBox').addClass('error');
//		$('#'+id+'_errorBox').text('');
	}
	return ok;
}

function markError(id,errorMessage,displayInErrorBox){
	var element;
	if (!displayInErrorBox){
		if ($('span#formError_'+id).length==0){
			$('#'+id).after('<span id="formError_'+id+'" class="formError"></span>');
		}
		$('span#formError_'+id).text(errorMessage);
	}else{
		if ($('div#errorModule div#errorModule_'+id).length==0){
			$('div#errorModule').append('<div id="errorModule_'+id+'></div>');
		}
		$('div#errorModule div#errorModule_'+id).text(errorMessage);
	}
	$('#'+id).addClass('error');
}

function destroyError(id,displayInErrorBox){
	if (!displayInErrorBox){
		if ($('span#formError_'+id).length!=0){
			$('span#formError_'+id).html('');
		}
	}else{
		if ($('div#errorModule div#errorModule_'+id).length!=0){
			$('div#errorModule div#errorModule_'+id).html('');
		}
	}
	$('#'+id).removeClass('error');
}

function checkRequired(id){
	return ($('#'+id).val().length!==0);
}

function checkStrlenMin(id,min){
	return ($('#'+id).val().length==0 || $('#'+id).val().length>=min);
}

function checkStrlenMax(id,max){
	return ($('#'+id).length==0 || $('#'+id).val().length<=max);
}
function checkSame(id,sameId){
	return ($('#'+id).val()==$('#'+sameId).val());
}

function checkRegexp(id,reg){
	return reg.test($('#'+id).val());
}
