(function($){var textarea,staticOffset;var iLastMousePos=0;var iMin=32;var grip;$.fn.TextAreaResizer=function(){return this.each(function(){textarea=$(this).addClass('processed'),staticOffset=null;$(this).wrap('<div class="resizable-textarea"><span></span></div>').parent().append($('<div class="grippie"></div>').bind("mousedown",{el:this},startDrag));var grippie=$('div.grippie',$(this).parent())[0];grippie.style.marginRight=(grippie.offsetWidth-$(this)[0].offsetWidth)+'px'})};function startDrag(e){textarea=$(e.data.el);textarea.blur();iLastMousePos=mousePosition(e).y;staticOffset=textarea.height()-iLastMousePos;textarea.css('opacity',0.25);$(document).mousemove(performDrag).mouseup(endDrag);return false}function performDrag(e){var iThisMousePos=mousePosition(e).y;var iMousePos=staticOffset+iThisMousePos;if(iLastMousePos>=(iThisMousePos)){iMousePos-=5}iLastMousePos=iThisMousePos;iMousePos=Math.max(iMin,iMousePos);textarea.height(iMousePos+'px');if(iMousePos<iMin){endDrag(e)}return false}function endDrag(e){$(document).unbind('mousemove',performDrag).unbind('mouseup',endDrag);textarea.css('opacity',1);textarea.focus();textarea=null;staticOffset=null;iLastMousePos=0}function mousePosition(e){return{x:e.clientX+document.documentElement.scrollLeft,y:e.clientY+document.documentElement.scrollTop}}})(jQuery);

$(document).ready(function()
{
	$("form > div > *").focus(function()
	{
		$(this).parent("div").addClass("selectedElement");
	}).blur(function()
	{
		$(this).parent("div").removeClass("selectedElement");
	});
	$("form > div > *:first").focus();
	
	// ***** Validation ***** \\
	
	// at least 2 of any character
	$("#username, #address, #country, #company, #report,#body,#_tag_username,#_tag_address,#_tag_city,#_tag_state,#_tag_zip,#_tag_title,#_tag_company,#_tag_date,#_tag_venue,#_tag_headquarter,#_tag_corearea,#_tag_howhear,#_tag_whenreleased,#_tag_howobtained,#_tag_primarytech,#_tag_url,#_tag_thisname,#_tag_whybrief,#_tag_companyoverview,#_tag_overview,#_tag_article,#_tag_infoused,#_tag_whoreceive,#_tag_source,#_tag_comments").blur(function()
	{
		var filter = /.{2,}/;
		if(!filter.test($(this).val())) $(this).addClass("invalidEntry");
		else $(this).removeClass("invalidEntry");
	});
	
	// email address
	$("#email,#_tag_email").blur(function()
	{
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if(!filter.test($(this).val())) $(this).addClass("invalidEntry");
		else $(this).removeClass("invalidEntry");
	});
	
	// phone number
	$("#phone,#_tag_phone").blur(function()
	{
		var filter = /[0-9]/;
		var digitCount = 0;
		for(i=0;i<$(this).val().length;i++)
		{
			if(filter.test($(this).val().substr(i,1))) digitCount++;
		}
		if(digitCount<10) $(this).addClass("invalidEntry");
		else $(this).removeClass("invalidEntry");
	});
	
	$("#mainBody form").submit(function()
	{
		$("input, textarea").blur();
		if($("input,textarea").hasClass("invalidEntry"))
		{
			maskViewport();
			createMessage("Please fill out all required fields. Missing information is marked in red.");
			return false;
		}
		return true;
	});
	
	$("textarea:not(.processed)").TextAreaResizer();
});