jQuery.fn.hasClass = function(c) {
  return this.is('.'+c)
};
function invalidateField(field,error)
	{
		if (error) {
			$(field).parents(".ctrlHolder:first").addClass("error");
			if($(field).parents(".ctrlHolder:first").find(".errorField")[0] != null)
			$(field).parents(".ctrlHolder:first").find(".errorField")[0].style.display = "block";
		} else {
			$(field).parents(".ctrlHolder:first").removeClass("error");
						if($(field).parents(".ctrlHolder:first").find(".errorField")[0] != null)
			$(field).parents(".ctrlHolder:first").find(".errorField")[0].style.display = "none";

		}
	}
$(document).ready( function() {

	/* File modified by Danish Qamar */ 
	function validateField(field) {
		var error = false;
		
		// required fields
		if ($(field).attr("class").indexOf("required") != -1) {			
			
			if (!$(field).val().length)
				error = true;
			else
			{
				if($(field).attr("alt") != "")
				{
					if ($(field).val() == $(field).attr("alt"))
					error = true;
				}
			}
		}		
		
	// numeric fields less than 12
		if ($(field).attr("class").indexOf("numeric_12") != -1) {
			if (!/^[0-9]*$/.test($(field).val()))
				error = true;
			else
			if($(field).val() > 12)
				error = true;			
		}			
	// numeric fields less than 100
		if ($(field).attr("class").indexOf("numeric_100") != -1) {
			
			if (!/^[0-9]*$/.test($(field).val()))
				error = true;
			else
			if($(field).val() > 100)
				error = true;			
		}	
		if ($(field).attr("class").indexOf("float") != -1) {
			if (/\./.test($(field).val()))
				error = false;
			else
				error = true;			
		}			
		// numeric fields
		if ($(field).attr("class").indexOf("numeric") != -1) {
			if (!/^[0-9]*$/.test($(field).val()))
				error = true;
		}
		// alpha-numeric fields
		if ($(field).attr("class").indexOf("alphanumaric") != -1) {
			if (!/^[a-z A-Z0-9_-]*$/.test($(field).val()))
				error = true;
		}
		// characters (letters)
		if ($(field).attr("class").indexOf("character") != -1) {
			if (!/^[a-zA-ZöÖäÄåÅ]*$/.test($(field).val()))
				error = true;
		}
		// Alhpa-Numeric NoWhiteSpace fields
		if ($(field).attr("class").indexOf("NoWhiteSpace") != -1) {
			if (!/^[a-zA-Z0-9_-]*$/.test($(field).val()))
				error = true;
		}
		// emails
		if ($(field).attr("class").indexOf("email") != -1) {
			if (!/^[a-zA-Z0-9]{1}([\._a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+){1,3}$/.test($(field).val()))
				error = true;
		}		
		// confirm password
		if ($(field).attr("class").indexOf("confirmPassword") != -1) {
			sel = "#Password";
			if($(field).attr("alt") != "")
			{
				sel = "#" + $(field).attr("alt");
			}
			 
			if ($(field).val()!=$(sel).val())
				error = true;
		}
		if(error)
		{
			 
			if ($(field).attr("class").indexOf("conditional") != -1) {
				cond = $(field).attr("title")
				
				if(cond && eval(cond))
				{
					
				}
				else
					error = false;
			}
			
		}
		if($(field).parents("form:first").hasClass("aptexForm"))
		{
			id = $(field).attr("id");
			selectorMsg = "._" + id;
			selectorHL = "._HL" + id;
		
			if (error) {
				
				
				$(selectorMsg).show();
				$(selectorHL).addClass("errorBlock"); 
			} else {
				 $(selectorMsg).hide();
				$(selectorHL).removeClass("errorBlock"); 
	
			}
		}
		else
		{
			if(error)
			$(field).parents(".formBlock:first").find(".errorMsg").fadeIn();
			else
			$(field).parents(".formBlock:first").find(".errorMsg").fadeOut();
		}
		return !error;
	}
	
	$(".aptexForm").each( function() {
							 
		 
		// handle submissions without filling any field
		$(this).submit(function () {
			return this.validate();
		});
		
		this.validate = function () {
			var validationError = false;
			// for each field test it
			$("input, select, textarea", this).each( function() {
													
				if ($(this).attr("class"))
				{	
					
					if ( ($(this).attr("class").indexOf("validation")) != -1)
					{
				
						if (!validateField(this))
						{
							validationError = true;
						}
					}
				}
			});
			return !validationError;
		};
		
		// handle changes on the fly
		$("input, select, textarea", this).each( function() {
			if ($(this).attr("class")) {
					if($(this).attr("class").indexOf("validation")!=-1)
					{						 
					 
						$(this).blur( function() {  validateField(this) } );
    			}
			}
		});
	});
});

 