/*
 * jquery.daddy.js | www.vasalopet.se 
 * http://www.vasalopet.se/
 *
 * Author: Johan Björtin | Daddy Produktion
 *
 * Date: 2009-02-27 12:14:00
 * Revision: 1
 */


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	$.daddy.browser();
*
*	@browser	IE8 | IE7 | IE6 (Default) | FF | S
*	
*	Retuns true or false if the specified browser is present.
*
*	Example:
*
*	($.daddy.browser({browser: 'IE7'}) ? ... : ... ;
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
jQuery.daddy =
{
	browser : function (options)
	{
		var settings = $.extend({
			browser: 'IE6'
		},options||{});

		switch (settings.browser)
			{
				case 'IE8' 	: return ($.browser.msie && $.browser.version >= 8) ? true : false; break;
				case 'IE7' 	: return ($.browser.msie && $.browser.version >= 7 && $.browser.version < 8) ? true : false; break;
				case 'IE6' 	: return ($.browser.msie && $.browser.version >= 6 && $.browser.version < 7) ? true : false; break;
				case 'IE5' 	: return ($.browser.msie && $.browser.version >= 5 && $.browser.version < 6) ? false : false; break;
				case 'FF' 	: return ($.browser.mozilla) ? true : false; break;
				case 'S' 	: return ($.browser.safari) ? true : false; break;
				default 	: alert("$.daddy.browser error"); break;
			}
	}
};


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	$('element').check();
*
*	@action		check | uncheck | toggle | checkFirst | checkLast | checkEven
*				checkOdd | uncheckEven | uncehckOdd
*	
*	Sets the checked parameter for each item in the wrapperd set,
*
*	Example:
*
*	$('input:checkbox').check({action: 'toggle'});
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
(
	function ($)
	{
		$.fn.check = function (options)
		{
			var settings = $.extend({
				action: 'check'
			},options||{});
			
			switch (settings.action)
			{
				case 'check' 				: this.each(function () {this.checked = true;}); break;
				case 'uncheck' 			: this.each(function () {this.checked = false;}); break;
				case 'toggle' 			: this.each(function () {this.checked = !this.checked;}); break;
				case 'checkEven' 		: this.filter(':even').each (function () {this.checked = true;}); break;
				case 'checkOdd' 		: this.filter(':odd').each (function () {this.checked = true;}); break;
				case 'uncheckEven' 	: this.filter(':even').each (function () {this.checked = false;}); break;
				case 'uncheckOdd' 	: this.filter(':odd').each (function () {this.checked = false;}); break;
				case 'checkFirst' 	: this.filter(':first').each (function () {this.checked = true;}); break;
				case 'checkLast' 		: this.filter(':last').each (function () {this.checked = true;}); break;
				default  						: alert('You must specify an action'); break;
			}
		}
	}
)(jQuery);




(
 function ($)
 {
	 $.fn.validate = function (options)
	 {
		 
		var settings = $.extend({
				self: this,
				target: null,
				type: null,
				value : null
			},options||{});
		 
		 var type = {};
		 
		 
		 // VALIDATE EMAIL
		 type.email = function ()
		 {
			var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		 	return (reg.test(settings.self.val()) && $(settings.self).val() != $(settings.self).attr('alt')) ? true : false;
		 }
		 
		 // NUMERIC
		 type.numeric = function ()
		 {
			var reg = /^[0-9]+$/;
		 	return (reg.test(settings.self.val()) && $(settings.self).val() != $(settings.self).attr('alt')) ? true : false;
		 }
		 
		 // NOT EMPTY
		 type.notEmpty = function ()
		 {
			 return ($(settings.self).val().length > 0 && $(settings.self).val() != $(settings.self).attr('alt')) ? true : false; 
		 }
		 
		 // CHECKED
		 type.checked = function ()
		 {
				return (settings.self.checked) ? true : false; 
		 }
		 
		 // CONTAINS
		 type.contains = function ()
		 {
			 return ($(settings.self+'[value*='+settings.value+']').length != 0) ? true : false;
		 }
		 
		 // EQ
		 type.eq = function ()
		 {
				return ($(settings.self).val() == settings.value) ? true : false; 
		 }
		 
		 // LT
		 type.lt = function ()
		 {
				return (parseFloat($(settings.self).val()) < parseFloat(settings.value)) ? true : false;  
		 }
		 
		 // GT
		 type.gt = function ()
		 {
				return (parseFloat($(settings.self).val()) > parseFloat(settings.value)) ? true : false;  
		 }
		 
		 // ELT
		 type.elt = function ()
		 {
				return (parseFloat($(settings.self).val()) <= parseFloat(settings.value)) ? true : false;  
		 }
		 
		 // EGT
		 type.egt = function ()
		 {
				return (parseFloat($(settings.self).val()) >= parseFloat(settings.value)) ? true : false;  
		 }
		 
		 // NOT
		 type.not = function ()
		 {
			return ($(settings.self).val() != settings.value) ? true : false; 
		 }
		 
		 // COMPARE
		 type.compare = function ()
		 {
			 return ($(settings.self).val() == $(settings.target).val()) ? true : false;
		 }
		 
		 // ZIPCODE
		 type.zipcode = function ()
		 {
			 var reg = /^\d\d\d \d\d$/;
			 return (reg.test(settings.self.val())) ? true : false;
		 }
		 
		 return type[settings.type]();
		 
	 }
 }
)(jQuery);

