// JavaScript Document

/*
var _title = "Ελέγχξετε τα πεδία ξανά";
var _p_required = "Είναι υποχρεωτικό";
var _p_notvalidnumber = "Is not a valid number";
var _p_wrongemail = "Εισάγετε ένα σωστό e-mail";
var _p_htmlerror = "Δεν επιτρέπεται HTML σε αυτό το πεδίο";
*/

var _title = "Check the fields again";
var _p_required = "Is required";
var _p_notvalidnumber = "Is not a valid number";
var _p_wrongemail = "Invalid email address";
		
jQuery.fn.extend({ 
	xvalidate: function() {
		
		obj = jQuery(this);
		formcontents = obj.find(".validate");
	
		var htmltags = /<\S[^><]*>/g;
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
	
		valid = true;
		var validationErrors = new Array ();
	
		formcontents.each( function() {
			tmpobj = $j(this).find("input, textarea, select");
			if (tmpobj.val() == "") { IsNull = true; } else { IsNull = false; }
			object_label = $j("label[for="+tmpobj.attr("name")+"]").html();
			
			/* PRE-CHECK */
			IsEmail = emailPattern.test(tmpobj.val());  
			IsString = isNaN(tmpobj.val());
			HasHTML = htmltags.test(tmpobj.val());  
			
			/* CLASS CHECK */		
			CheckReq = $j(this).hasClass("required");
			CheckNom = $j(this).hasClass("number");
			CheckEmail = $j(this).hasClass("email");
			CheckCreditCard = $j(this).hasClass("creditcard");
			AllowHTML = $j(this).hasClass("allowhtml");
			
			// HTML TAGS CHECK
			if ((!AllowHTML) && (HasHTML)) {
				tmpobj.val(stripHTML(tmpobj.val()));
			}
			
			// NULL CHECK
			if ((CheckReq) && (IsNull)) {
				validationErrors.push("<b>"+object_label+"</b>: "+_p_required+"");
				$j(this).addClass("invalid-req");
			} else {
				$j(this).removeClass("invalid-req");
			}
			
			// NUMBER CHECK
			if ((CheckNom) && (IsString)) {
				validationErrors.push("<b>"+object_label+"</b>: "+_p_notvalidnumber+"");
				$j(this).addClass("invalid-nom"); 
			} else {
				$j(this).removeClass("invalid-nom");
			}
			
			// EMAIL CHECK
			if (CheckEmail && (!IsEmail)) {
				validationErrors.push("<b>"+object_label+"</b>: "+_p_wrongemail+"");
				$j(this).addClass("invalid-email");
			} else {
				$j(this).removeClass("invalid-email");
			}
		});
		
		if (validationErrors.length > 0) {
			valid = false;
			tempmessage = validationErrors.join("<br>");
			message(""+_title+" ("+validationErrors.length+")", tempmessage);
		}
		return valid;		
		
	}
});

jQuery.fn.hint = function (blurClass) {
	if (!blurClass) { 
		blurClass = 'blur';
	}
	
	return this.each(function () {
	// get jQuery version of 'this'
		var $input = jQuery(this),
		
		// capture the rest of the variable to allow for reuse
		title = $input.attr('title'),
		$form = jQuery(this.form),
		$win = jQuery(window);
		
		function remove() {
		  if ($input.val() === title && $input.hasClass(blurClass)) {
			$input.val('').removeClass(blurClass);
		  }
		}
		
		// only apply logic if the element has the attribute
		if (title) { 
		  // on blur, set value to title attr if text is blank
		  $input.blur(function () {
			if (this.value === '') {
			  $input.val(title).addClass(blurClass);
			}
		  }).focus(remove).blur(); // now change all inputs to title
		
		  // clear the pre-defined text when form is submitted
		  $form.submit(remove);
		  $win.unload(remove); // handles Firefox's autocomplete
	}
	});
};

