/**
* Plugin EYEH (Enter Your Email Here)
*
* @package     jquery.eyeh
* @author      sutulustus.com
* @copyright   20011 Mighty Sutulustus IV
* @link        http://www.sutulustus.com
*/ 

/*
* Included Color animation jQuery-plugin
* http://www.bitstorm.org/jquery/color-animation/
* Copyright 2011 Edwin Martin <edwin@bitstorm.org>
* Released under the MIT and GPL licenses.
*/

(function(d){function i(){var b=d("script:first"),a=b.css("color"),c=false;if(/^rgba/.test(a))c=true;else try{c=a!=b.css("color","rgba(0, 0, 0, 0.5)").css("color");b.css("color",a)}catch(e){}return c}function g(b,a,c){var e="rgb"+(d.support.rgba?"a":"")+"("+parseInt(b[0]+c*(a[0]-b[0]),10)+","+parseInt(b[1]+c*(a[1]-b[1]),10)+","+parseInt(b[2]+c*(a[2]-b[2]),10);if(d.support.rgba)e+=","+(b&&a?parseFloat(b[3]+c*(a[3]-b[3])):1);e+=")";return e}function f(b){var a,c;if(a=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(b))c=[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16),1];else if(a=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(b))c=[parseInt(a[1],16)*17,parseInt(a[2],16)*17,parseInt(a[3],16)*17,1];else if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))c=[parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),1];else if(a=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(b))c=[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10),parseFloat(a[4])];return c}d.extend(true,d,{support:{rgba:i()}});var h=["color","backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","outlineColor"];d.each(h,function(b,a){d.fx.step[a]=function(c){if(!c.init){c.a=f(d(c.elem).css(a));c.end=f(c.end);c.init=true}c.elem.style[a]=g(c.a,c.end,c.pos)}});d.fx.step.borderColor=function(b){if(!b.init)b.end=f(b.end);var a=h.slice(2,6);d.each(a,function(c,e){b.init||(b[e]={a:f(d(b.elem).css(e))});b.elem.style[e]=g(b[e].a,b.end,b.pos)});b.init=true}})(jQuery);(function($){var defaults={focusClass:"have-focus",activeClass:"is-active",forceValue:null,animate:true,animationSpeed:400,animationEasing:"swing",highlightField:true,highlightColor:"#3eb4fb",highlightBlur:6,highlightAlways:true};$.fn.eyeh=function(opts){var options=$.extend({},defaults,opts);return this.each(function(){var $this=$(this);this.cursorToStart=function(element){if(element.createTextRange){var range=element.createTextRange();range.collapse(true);range.moveEnd('character',0);range.moveStart('character',0);range.select();}else if(element.setSelectionRange){element.setSelectionRange(0,0);}}
this.getHighlightCss=function(blur,color,border){var css={"-moz-box-shadow":"0px 0px "+blur+"px "+color,"-webkit-box-shadow":"0px 0px "+blur+"px "+color,"box-shadow":"0px 0px "+blur+"px "+color};if(border)css["border-color"]=color;return css;}
var defaultValue=options.forceValue!=null?options.forceValue:this.defaultValue;var defaultColor=$this.css("color");var defaultBorderColor=$this.css("border-left-color");$this.addClass(options.focusClass);var focusColor=$this.css("color");$this.removeClass(options.focusClass);$this.addClass(options.activeClass);var activeColor=$this.css("color");$this.removeClass(options.activeClass);$this.click(function(e){if(this.value==defaultValue){this.cursorToStart(this);return false;}}).focus(function(e){if(this.value==defaultValue){if(options.animate){var css={color:focusColor};if(options.highlightField)css.borderColor=options.highlightColor;$(this).stop().animate(css,{duration:options.animationSpeed,easing:options.animationEasing,step:function(now,fx){if(options.highlightField){var blur=fx.pos*options.highlightBlur;var css=this.getHighlightCss(blur,options.highlightColor,false);$(this).css(css);}},complete:function(){$(this).addClass(options.focusClass);}});}else{$(this).addClass(options.focusClass);if(options.highlightField){var css=this.getHighlightCss(options.highlightBlur,options.highlightColor,true);$(this).css(css)}}
this.cursorToStart(this);}else{if(options.animate){var css={color:activeColor};if(options.highlightField&&options.highlightAlways)css.borderColor=options.highlightColor;$(this).stop().animate(css,{duration:options.animationSpeed,easing:options.animationEasing,step:function(now,fx){if(options.highlightField&&options.highlightAlways){var blur=fx.pos*options.highlightBlur;var css=this.getHighlightCss(blur,options.highlightColor,false);$(this).css(css);}},complete:function(){$(this).addClass(options.activeClass);}});}else{$(this).addClass(options.activeClass);if(options.highlightField&&options.highlightAlways){var css=this.getHighlightCss(options.highlightBlur,options.highlightColor,true);$(this).css(css)}}}}).blur(function(){if(!this.value.length){this.value=defaultValue;}
if(options.animate){var css={color:defaultColor};if(options.highlightField&&$(this).css("border-left-color")!=defaultBorderColor)css.borderColor=defaultBorderColor;$(this).stop().animate(css,{duration:options.animationSpeed,easing:options.animationEasing,step:function(now,fx){if(options.highlightField&&$(this).css("border-left-color")!=defaultBorderColor){var blur=options.highlightBlur-fx.pos*options.highlightBlur;var css=this.getHighlightCss(blur,options.highlightColor,false);$(this).css(css);}},complete:function(){$(this).removeClass(options.focusClass);$(this).removeClass(options.activeClass);}});}else{$(this).removeClass(options.focusClass);$(this).removeClass(options.activeClass);if(options.highlightField){var css=this.getHighlightCss(0,defaultBorderColor,true);$(this).css(css)}}}).bind("keyup keydown",function(){if(this.value==defaultValue){this.value="";if(options.animate){$(this).animate({color:activeColor},{duration:options.animationSpeed,easing:options.animationEasing,complete:function(){$(this).removeClass(options.focusClass);$(this).addClass(options.activeClass);}});}else{$(this).removeClass(options.focusClass);$(this).addClass(options.activeClass);}}});$this.trigger("blur");});};})(jQuery);
