/**
 * ezMark (Minified) - A Simple Checkbox and Radio button Styling plugin. This plugin allows you to use a custom Image for 
 * Checkbox or Radio button. Its very simple, small and easy to use.
 * 
 * Copyright (c) Abdullah Rubiyath <http://www.itsalif.info/>.
 * Released under MIT License
 * 
 * @author Abdullah Rubiyath
 * @version 1.0
 * @date June 27, 2010
 */
(function($){$.fn.ezMark=function(options){options=options||{};var defaultOpt={checkboxCls:options.checkboxCls||'ez-checkbox',radioCls:options.radioCls||'ez-radio',checkedCls:options.checkedCls||'ez-checked',selectedCls:options.selectedCls||'ez-selected',hideCls:'ez-hide'};return this.each(function(){var $this=$(this);var wrapTag=$this.attr('type')=='checkbox'?'<div class="'+defaultOpt.checkboxCls+'">':'<div class="'+defaultOpt.radioCls+'">';if($this.attr('type')=='checkbox'){$this.addClass(defaultOpt.hideCls).wrap(wrapTag).change(function(){if($(this).is(':checked')){$(this).parent().addClass(defaultOpt.checkedCls);}
else{$(this).parent().removeClass(defaultOpt.checkedCls);}});if($this.is(':checked')){$this.parent().addClass(defaultOpt.checkedCls);}}
else if($this.attr('type')=='radio'){$this.addClass(defaultOpt.hideCls).wrap(wrapTag).change(function(){$('input[name="'+$(this).attr('name')+'"]').each(function(){if($(this).is(':checked')){$(this).parent().addClass(defaultOpt.selectedCls);}else{$(this).parent().removeClass(defaultOpt.selectedCls);}});});if($this.is(':checked')){$this.parent().addClass(defaultOpt.selectedCls);}}});}})(jQuery);

	jQuery.fn.highlight = function(selector, className, eventStart, eventEnd){
	
		// variables
			var className = className || 'highlight';
			if(eventStart == undefined && eventEnd == undefined)
			{
				var eventStart = 'mouseover';
				var eventEnd = 'mouseout';
			}
			else if(eventStart == eventEnd || eventStart != undefined && eventEnd == undefined)
			{
				var toggle = true;
			}
		
		// code
			this.each
			(
				function()
				{
				
					var tagName	= this.tagName.toLowerCase();
					
					if(tagName == 'form')
					{
					
						selector		= selector || 'li';
						var elements 	= jQuery("textarea, select, multi-select, :text, :image, :password, :radio, :checkbox, :file", this);
	
						elements.bind
						(
							'focus', 
							function()
							{
								var parents	= jQuery(this).parents(selector);
								var parent	= jQuery(parents.get(0));
								parent.addClass(className);
							}
						);
							
						elements.bind
						(
							'blur', 
							function()
							{
								var parents	= jQuery(this).parents(selector);
								var parent	= jQuery(parents.get(0));
								parent.removeClass(className);
							}
						);

					}
					
					else
					{
	
	
						if(tagName.match(/^(table|tbody)$/) != null)
						{
							selector = selector || 'tr';
						}
						else if(tagName.match(/^(ul|ol)$/) != null)
						{
							selector = selector || 'li';
						}
						else
						{
							selector = '*';
						}
							
						var elements = jQuery(selector, this);
	
						if(toggle)
						{
							elements.bind
								(
								eventStart, 
								function()
								{
									if($(this).hasClass(className))
									{
										$(this).removeClass(className);
									}
									else
									{
										$(this).addClass(className);
									}
								}
							);
						
						}
							
						else
						{
							elements.bind
							(
								eventStart, 
								function()
								{
									$(this).addClass(className);
								}
							);
							
							elements.bind
							(
								eventEnd, 
								function()
								{
									$(this).removeClass(className);
								}
							);
						}
				
					}
				}
			);
				
		// return
			return this;
		
		}

