// JavaScript Document
			(function($) {
				$.fn.validation = function() {
					this.removeClass('fail fail_email fail_number fail_nonumber fail_length fail_value');
					this.filter('[type="radio"]').each(function(){
						if($(this).parents('form').find('[type="radio"][name="'+$(this).attr('name')+'"]:checked').length == 0){
							$(this).addClass('fail');
						};
					});
					this.filter('[type="checkbox"]').not(':checked').addClass('fail');
					this.filter("select").filter(function(){return $(this).val() == ''}).addClass('fail');
					this.filter(function(){if($(this).hasClass('group')){var target = $(this).find('input,select,textbox'); var check = target.formCheck(); target.removeClass('fail'); return (check.length>0)}}).addClass('fail');
					this.filter(function(){if($(this).hasClass('groupOne')){var target = $(this).find('input,select,textbox'); var check = target.formCheck(); target.removeClass('fail'); return (target.length-check.length==0)}}).addClass('fail');
					this.filter('.groupOne').filter(function(){var target = $(this).find('input,select,textbox'); var check = target.formCheck(); target.removeClass('fail'); return (target.length-check.length==0)}).addClass('fail');
					this.filter(function(){return $(this).is('[type="text"],textarea') && !Boolean($(this).attr('value'))}).addClass('fail');
					this.filter(function(){return $(this).is('[type="file"]') && !Boolean($(this).attr('value'))}).addClass('fail');
					this.not('.fail').each(function(){
						$(this).filter(function(){return $(this).hasClass('email') && !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$/i.test($(this).attr('value'))}).addClass('fail_email');
						$(this).filter(function(){return $(this).hasClass('number') && !/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/.test($(this).attr('value'))}).addClass('fail_number');
						$(this).filter(function(){return $(this).hasClass('nonumber') && /[^A-Za-z]/.test($(this).attr('value'))}).addClass('fail_nonumber');
					})
					this.not('.fail,.fail_email,.fail_number,.fail_nonumber').each(function(){
						$(this).filter(function(){return /length:/.test($(this).attr('class'))}).each(function(){
							var range = $(this).attr('class').split('length:')[1].split(' ')[0].split('-');
							var value = $(this).attr('value'); 
							if(range.length == 2){
								if(value.length < range[0] || value.length > range[1]){
									$(this).addClass('fail_length')	
								}
							}else{							
								if(value.length < range[0]){
									$(this).addClass('fail_length')	
								}
							}
						});
						$(this).filter(function(){return /value+:|>|</.test($(this).attr('class'))}).each(function(){
							var range = $(this).attr('class').split('value')[1].split(' ')[0].replace(':','').split('-');
							var value = $(this).attr('value'); 
							if(range.length == 2){
								if(parseInt(value) < parseInt(range[0]) || parseInt(value) > parseInt(range[1])){
									$(this).addClass('fail_value')	
								}
							}else{
								var condition = String(range).substr(0,1)
								switch(condition){
									case '>': if(value<condition)$(this).addClass('fail_value'); break;
									case '<': if(value>condition)$(this).addClass('fail_value'); break;
								}
							}
						});
					})
					return this.filter('.fail,.fail_email,.fail_number,.fail_nonumber,.fail_length,.fail_value')
				};
			})(jQuery);
