function checkSearchForm() { return checkInput("form_search_clause",'enter-search-clause'); }
/* ----------------------------------------------------------------------
	DEFAULT VALIDATION FORMS
	
	JQUERY NEEDED
---------------------------------------------------------------------- */
function checkInput(inputId, errorMessage, stepNumber, currentStep, checkAll)
{
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var input = document.getElementById(inputId);
		if(!input)
		{
			alert( "Input " + inputId + " not found!");
			return false;
		}
	
		if( input.value == "" )
	    	return focusFailedInput(inputId,errorMessage);
	}
    return true;
}

function checkInputConditional(inputId, conditionFieldName, conditionValFulfilled, errorMessage, stepNumber, currentStep, checkAll){
	var condition = $("input[name='"+conditionFieldName+"']:checked").val();
	if (((stepNumber > 0 && stepNumber == currentStep) || checkAll) && (condition && condition == conditionValFulfilled)){
		var input = document.getElementById(inputId);
		if(!input)
		{
			alert( "Input " + inputId + " not found!");
			return false;
		}
	
		if( input.value == "" )
	    	return focusFailedInput(inputId,errorMessage);
	}
    return true;
}

function fieldMatchesRE(inputId, regExp, errorMessage, stepNumber, currentStep, checkAll){
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var input = document.getElementById(inputId);
		if(!input)
		{
			alert( "Input " + inputId + " not found!");
			return false;
		}
	
		var re = new RegExp(regExp, "i")
		if(!re.test(input.value))
	    	return focusFailedInput(inputId,errorMessage);		
	}	
	return true;
}

function compareFields(fieldId1, fieldId2, errorMessage, stepNumber, currentStep, checkAll)
{
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var field1 = document.getElementById(fieldId1);
		if(!field1)
		{
			alert( "Element " + fieldId1 + " not found!");		
			return false;
		}
	
		var field2 = document.getElementById(fieldId2);
		if(!field2)
		{
			alert( "Element " + fieldId2 + " not found!");		
			return false;
		}
	
		if( field1.value != field2.value )
	    	return focusFailedInput(fieldId2,errorMessage);
	}
     
    return true;
}

function compareFieldsNotEmpty(fieldId1, fieldId2, errorMessage, stepNumber, currentStep, checkAll)
{
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var field1 = document.getElementById(fieldId1);
		if(!field1)
		{
			alert( "Element " + fieldId1 + " not found!");		
			return false;
		}
	
		var field2 = document.getElementById(fieldId2);
		if(!field2)
		{
			alert( "Element " + fieldId2 + " not found!");		
			return false;
		}
	
		if( field1.value == '' || field1.value != field2.value )
	    	return focusFailedInput(fieldId2,errorMessage);
	}
    return true;
}

function checkTextarea(inputId, errorMessage, stepNumber, currentStep, checkAll)
{
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var input = document.getElementById(inputId);
		if(!input)
		{
			alert( "Textarea " + inputId + " not found!");		
			return false;
		}
	
		if( input.value.length <= 3 )
	    	return focusFailedInput(inputId,errorMessage);
	}
    return true;
}

function checkEmail(inputId,errorMessage, stepNumber, currentStep, checkAll)
{
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var input = document.getElementById(inputId);
		if(!input)
		{
			alert( "Input " + inputId + " not found!");
			return false;
		}
	
	    if (!isValidEmail(input.value)) 
	    {
	        focusFailedInput(inputId,errorMessage);
	        return false;
	    }
	}
    return true;
}

function isValidEmail(email)
{
 	var template = /^[0-9a-z]+[0-9a-z._-]*\@[0-9a-z]+[0-9a-z._-]*\.[0-9a-z]{2,}$/i;
  	if (template.test(email) == false) return false;
	return true;
}

function clearError()
{
	$('label').parent().removeClass("error");
	return true;
}

function focusFailedInput(inputId, errorMessage)
{
	$('label').parent().removeClass("error");
	$('label[for="'+inputId+'"]').parent().addClass("error");
	
	var element = document.getElementById(inputId);
	if(errorMessage){
		//myAlert(errorMessage,element);
		alert(errorMessage);
	}
	return false;
}

function checkRadio(form, input, errorMessage, inputId, stepNumber, currentStep, checkAll)
{
	if ((stepNumber > 0 && stepNumber == currentStep) || checkAll){
		var tmpForm = document.forms[form];
		if(tmpForm){
			form = tmpForm;
		} else{
			alert( "Form " + form + " not found!");		
			return false;
		}
		
		if(!form.elements[input])
		{
			alert( "Element " + input + " not found!");		
			return false;
		}
		
		if(!form.elements[input].length) // 1 input
		{
			if(form.elements[input].checked) return true;
			return focusFailedInput(inputId,errorMessage);
		}
		
		var i = 0;
	
		for( i ; i < form.elements[input].length; i++ )
			if(form.elements[input][i].checked == true) break;
	
		if( i == form.elements[input].length )
	    	return focusFailedInput(inputId,errorMessage);
	}
     
    return true;
}

function groupFields(name,id,cnt,message)
{
	var count = parseInt(cnt);
	for( var i = 1; i <= count; i++ )
		if(document.getElementById(id + "_" + i,message).value == "") return true;
	return focusFailedInput(id + "_1",message);
}

function groupEmails(name,id,cnt,message)
{
	var template = /^[0-9a-z]+[0-9a-z._-]*\@[0-9a-z]+[0-9a-z._-]*\.[0-9a-z]{2,}$/i;
	var count = parseInt(cnt);
	for( var i = 1; i <= count; i++ )
		if(template.test(document.getElementById(id + "_" + i,message).value) == true) return true;
	return focusFailedInput(id + "_1",message);
}