/*

Scripts written by Alex Dickson for Acura Multimedia (http://www.acura.com.au)
jQuery (http://www.jquery.com) by John Resig (http://www.ejohn.org)

*/

// global stuff 

var GOOGLE_ANALYTICS_KEY = '';

// add this class to specify .javascript * in css for quicker css application
$('html').addClass('javascript');

// on DOM ready
$(document).ready(function(){
	$('html').addClass('dom-loaded');

    searchMenu.init();

	try { //try get 24bit png working on ie6
		$('img[src$=png]').pngfix();
	} catch(err) {}
	
	plantsData.init();
	
	externalLinks.init();
	
	

    
    emailLinks.init();
    
    if ($('#enquiry-form').length) {
    
        validator.init($('#enquiry-form'), 'name, email, enquiry');
    
    }
    
    var vegTypes = $('.vegetation-types ul');
    
    vegTypes.hide();
    
    vegTypes.parent().find('strong').bind('click', function() {
    
        if (vegTypes.is(':hidden')) {
            vegTypes.slideDown(1000);
        } else {
            vegTypes.slideUp(1000);
        }
    
    
    });
    
    if ($('body').hasClass('flowering-now')) {
    
        cycleImages.init();
    
    
    }
    
    // Contact form - stop damn bots
    
    var $inputRow = $('#input-captcha').parent();
    
    $inputRow.hide().find('input').val('NNP');

	
});





// on window loaded
$(window).load(function(){  // window load

	$('html').addClass('window-loaded');

  //contact.show();

	//google analytics
	try {
		var pageTracker = _gat._getTracker(GOOGLE_ANALYTICS_KEY);
		pageTracker._trackPageview();
	} catch(err) {}
	
});


/* accordion style search menu */
var searchMenu = {
    init: function() {
    
        var arrowUp = '&#9650 Less';
        var arrowDown = '&#9660; More';
    
        $('#menu li:first strong').bind('click', function() {
            var searchBox = $(this).parent().find('form');
            if (searchBox.is(':hidden')) {
                $('#menu #advanced-search-block').hide();
                $('#advanced-search span').html(arrowDown);
                searchBox.slideDown(1000);
            } else {
                searchBox.slideUp(1000);
            }
        });
        // advanced search
        $('#menu li.input-submit').prepend('<span id="advanced-search"><span>' + arrowDown  + '</span> Options</span>');
       

        $('#advanced-search').bind('click', function() {
            var advancedSearchBlock =  $('#advanced-search-block');
            var advSearchArrow = $('#advanced-search span')
            if (advancedSearchBlock.is(':hidden')) {
                advancedSearchBlock.slideDown(1000, function() {   advSearchArrow.html(arrowUp);  });
            } else {
                advancedSearchBlock.slideUp(1000, function() {   advSearchArrow.html(arrowDown);  });
            }
        });
        
        
        //custom search
        $('#advanced-search-block').append('<span class="search-heading">Advanced Search</span><em id="add-custom-field">Add A Custom Field</em>');
        
        var options = ['Family', 'Flowers', 'Fruit', 'Status', 'Species List', 'Identification Notes', 'Landscaping Notes', 'Cultural Notes', 'Associated Fauna'];
        
        var customCounter = 0;
        
        $('#add-custom-field').bind('click', function() {
        
          
        
            $(this).before('<li class="input-text custom"><select><option value="" class="choose">choose...</option></select><span>Custom Field [click to edit]</span><label for="custom-search-' + customCounter + '">Custom Search Field</label><input type="text" value="" id="custom-search-' + customCounter + '" maxlength="200" /></li>');
            customCounter++;
            
            $.each(options, function(key, value) {
            
                $('.custom select').append('<option value="' + value + '">' + value  + '</option>')
            
            });
              
            if (customCounter > 7) {
                  $(this).fadeOut(500);
                  return false;  
            }
            
        });
        
      $('.custom span').live('click', function() {
            $(this).hide();
            
            var thisCustom = $(this).parent();
            
            thisCustom.find('select').show();
        
    
        });
        
        $('.custom select').live('change', function() {
            
            var thisCustom = $(this).parent();
            
            var valueChosen = $(this).val();
            
            if (valueChosen) {
                
                var firstOption = $(this).find('option:first');
                
                if ( firstOption.hasClass('choose')) {
                
                  firstOption.removeClass('choose').addClass('remove').text('Remove this Custom Field').val('remove');
                }
                
                if (valueChosen == 'remove') {
                    thisCustom.remove();
                    customCounter--;
                    return true;
                } 
                
                thisCustom.find('span').text(valueChosen).show();
                thisCustom.find('label').text(valueChosen);
                
                var nameAttr = htmlFormat(valueChosen);
                
                thisCustom.find('input').attr('name', 'custom-search[' + nameAttr + ']');
                
                $(this).hide();
            
            }
        
        
        });

        
        
        
        
            
        
        
    
    }
}

/* loading modal that overlays when ajax'ing */
var loadingModal = {
    show: function() {
        if(!$('#loading-modal').length) {
            $('#content-body').append('<div id="loading-modal"><strong title="Getting data...">Please wait patiently...</strong></div>');
        }
        $('#content-body #loading-modal').fadeIn(500);
    },
    hide: function() {
        $('#content-body #loading-modal').fadeOut(500);
    }
}

var cycleImages = {

	interval: 5000,
	preloaded: {},
	current: 0,
    list: [],
    
	init: function() {
	
		this.preloaded[0] = true; // it's loaded by default so its always loaded!
		
		var slideshow = $('#flowering-now-slideshow');
		
		var self = this;
		
		this.list[0] = slideshow.find('img').attr('src');
		
		slideshow.find('ul li').each(function(i) {
		  self.list[i + 1] = $(this).find('a').attr('href');  
		});
		setInterval(function() { self.next() }, this.interval);
	},	
	
	load: function(imageId, callback) { 
		
		var self = this;
		if (typeof(this.preloaded[imageId])=='undefined') { // image hasnt been loaded yet
			
			image = new Image();
	
			$(image).load(function(){   
				self.preloaded[imageId] = true; // dont load it again next time
			    callback();
			});

			image.src = this.list[imageId];
		} else { // already loaded
		    callback();
		}
		
	}, 
	
	next: function() {
		var self = this;
		
		if (this.current == this.list.length - 1) {
		
			this.current = 0;
			
		} else {
			
			this.current ++;
			
		}
		
		this.load(this.current, function() {
		
		  self.show(self.current);
		
		});
		
	},
	
	show: function(imageId) {
		
		imageSource = this.list[imageId];
		
		$('#flowering-now-slideshow').css('backgroundImage','url(' + imageSource  +')');
		
		$('#flowering-now-slideshow img').show().fadeOut(500, function() { $(this).attr({src: imageSource}) });	
		
	}

}




var plantsData = {

    init: function() {
      
      var h2Heading = $('.plant-details, .search-results').find('h2');
      

       // if ($('body.plant-details').length) {
        //    h2Heading.after('<span class="back action">Back</span>');

       // }
        
        h2Heading.after('<span class="print action">Print Results</span>');


        $('.print').bind('click', function() { window.print() });
       // $('.back').bind('click', function() { history.back() });
    }

}


var externalLinks = {

	newWindowTitleText: 'Link opens in a new window',
	init: function() {
		$('a[rel=external]').each(function(event) { 
										   if ($(this).attr('title')) {
			   									newTitle = $(this).attr('title') + ' (' + externalLinks.newWindowTitleText + ')';
										   } else {
												newTitle = externalLinks.newWindowTitleText;   
										   }
										   $(this).attr('title', newTitle).bind('click', function() {  
																		  externalLinks.openNewWindow($(this).attr('href'));
																		  event.preventDefault()
																		  }) 
										   });
	},
	openNewWindow: function(URI) {
		var newBlankWindow = window.open(URI, '_blank');
		newBlankWindow.focus();	
	}
}






var emailLinks = {
	
	init: function() {
		$('.obfuscate-email').each(function() {
											email = $(this).text()
											email = email.replace(/ at /, '@');
											email = email.replace(/ dot /g, '.');
											$(this).replaceWith('<a href="mailto:' + email  + '" title="Email \'' + email + '\'">' + email + '</a>');
											});
	}
}




/* global functions */

function htmlFormat(text) {

    text = text.toLowerCase();
    text = text.replace(/ /g, '-', text);
    
    return text;

}


// validator class - checks form

var validator = {
	formObject: null, requiredFields: {}, formElements: {},
	
	init: function(formObj, required) {
	   this.formObject = formObj;
	   this.requiredFields = required;
	   
	   var self = this;
	   
	   $(formObj).bind('submit', function() { return self.checkForm() });
	
	},	
	checkForm: function() {
		
		var formObject= this.formObject;
		
		
		//$(formObject).attr('action','#');
		$(formObject).children().children().children('input[type=text], textarea').each(function() { 
																					  validator.formElements[$(this).attr('name')] = $(this).val();
																							
																							
																								$(this).bind('keyup', function() { 
																															   

																															   
																															   if ($(this).hasClass('input-error')) {

																															   		$(this).animate({backgroundColor: '#dfdf7d'}, 500).removeClass('input-error') ;
																															   
																															   }
																															   });
																							
																							
																																				});
																																				 
		if (!validator.formElements['name'].match(validator.nameRegex) && validator.requiredFields.match(/name/i)) {
			
			validator.displayError('Please enter your full name.', 'name');
			return false;
		}
		
		if (!validator.formElements['email'].match(validator.emailRegex) && validator.requiredFields.match(/email/i)) {
			
			validator.displayError('Please enter a valid email address.', 'email');
			return false;
		}
		
		if (!validator.formElements['phone-number'].match(validator.phoneRegex) && validator.requiredFields.match(/phone-number/i)) {
			
			validator.displayError('Please enter a valid phone number.', 'phone-number');
			return false;
		}
		
			
		if (validator.formElements['enquiry'].length < 5 && validator.requiredFields.match(/enquiry/i)) {
			
			validator.displayError('Please enter a valid enquiry.', 'enquiry');
			return false;
		}
		
		
		
		


	
	
		return true;
	},
	
	displayError: function(errorMessage, fieldName) { 
		

		
		$(validator.formObject).children().children().children('*[name=' + fieldName + ']').focus().animate({ backgroundColor: '#F2C7C7'},500).addClass('input-error');
		
		
		$(validator.formObject).children().children('.client-message').removeClass('information').addClass('error').children('span').text(errorMessage);
		
	}, 
	nameRegex: /^[a-z-'\s]{2,}$/i, phoneRegex: /[\+ 0-9-\s\(\)]{6,}/i, emailRegex: /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i, postcodeRegex: /[0-9]{4,6}/i, placeNameRegex: /^[a-z-'\s]{2,}$/i, postalAddressRegex: /[a-z-'\s0-9,]{3,}$/i


	
}




;(function($){var _remove=$.fn.remove;$.fn.remove=function(){$("*",this).add(this).triggerHandler("remove");return _remove.apply(this,arguments);};function isVisible(element){function checkStyles(element){var style=element.style;return(style.display!='none'&&style.visibility!='hidden');}
var visible=checkStyles(element);(visible&&$.each($.dir(element,'parentNode'),function(){return(visible=checkStyles(this));}));return visible;}
$.extend($.expr[':'],{data:function(a,i,m){return $.data(a,m[3]);},tabbable:function(a,i,m){var nodeName=a.nodeName.toLowerCase();return(a.tabIndex>=0&&(('a'==nodeName&&a.href)||(/input|select|textarea|button/.test(nodeName)&&'hidden'!=a.type&&!a.disabled))&&isVisible(a));}});$.keyCode={BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38};function getter(namespace,plugin,method,args){function getMethods(type){var methods=$[namespace][plugin][type]||[];return(typeof methods=='string'?methods.split(/,?\s+/):methods);}
var methods=getMethods('getter');if(args.length==1&&typeof args[0]=='string'){methods=methods.concat(getMethods('getterSetter'));}
return($.inArray(method,methods)!=-1);}
$.widget=function(name,prototype){var namespace=name.split(".")[0];name=name.split(".")[1];$.fn[name]=function(options){var isMethodCall=(typeof options=='string'),args=Array.prototype.slice.call(arguments,1);if(isMethodCall&&options.substring(0,1)=='_'){return this;}
if(isMethodCall&&getter(namespace,name,options,args)){var instance=$.data(this[0],name);return(instance?instance[options].apply(instance,args):undefined);}
return this.each(function(){var instance=$.data(this,name);(!instance&&!isMethodCall&&$.data(this,name,new $[namespace][name](this,options)));(instance&&isMethodCall&&$.isFunction(instance[options])&&instance[options].apply(instance,args));});};$[namespace][name]=function(element,options){var self=this;this.widgetName=name;this.widgetEventPrefix=$[namespace][name].eventPrefix||name;this.widgetBaseClass=namespace+'-'+name;this.options=$.extend({},$.widget.defaults,$[namespace][name].defaults,$.metadata&&$.metadata.get(element)[name],options);this.element=$(element).bind('setData.'+name,function(e,key,value){return self._setData(key,value);}).bind('getData.'+name,function(e,key){return self._getData(key);}).bind('remove',function(){return self.destroy();});this._init();};$[namespace][name].prototype=$.extend({},$.widget.prototype,prototype);$[namespace][name].getterSetter='option';};$.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName);},option:function(key,value){var options=key,self=this;if(typeof key=="string"){if(value===undefined){return this._getData(key);}
options={};options[key]=value;}
$.each(options,function(key,value){self._setData(key,value);});},_getData:function(key){return this.options[key];},_setData:function(key,value){this.options[key]=value;if(key=='disabled'){this.element[value?'addClass':'removeClass'](this.widgetBaseClass+'-disabled');}},enable:function(){this._setData('disabled',false);},disable:function(){this._setData('disabled',true);},_trigger:function(type,e,data){var eventName=(type==this.widgetEventPrefix?type:this.widgetEventPrefix+type);e=e||$.event.fix({type:eventName,target:this.element[0]});return this.element.triggerHandler(eventName,[e,data],this.options[type]);}};$.widget.defaults={disabled:false};$.ui={plugin:{add:function(module,option,set){var proto=$.ui[module].prototype;for(var i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]]);}},call:function(instance,name,args){var set=instance.plugins[name];if(!set){return;}
for(var i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args);}}}},cssCache:{},css:function(name){if($.ui.cssCache[name]){return $.ui.cssCache[name];}
var tmp=$('<div class="ui-gen">').addClass(name).css({position:'absolute',top:'-5000px',left:'-5000px',display:'block'}).appendTo('body');$.ui.cssCache[name]=!!((!(/auto|default/).test(tmp.css('cursor'))||(/^[1-9]/).test(tmp.css('height'))||(/^[1-9]/).test(tmp.css('width'))||!(/none/).test(tmp.css('backgroundImage'))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(tmp.css('backgroundColor'))));try{$('body').get(0).removeChild(tmp.get(0));}catch(e){}
return $.ui.cssCache[name];},disableSelection:function(el){return $(el).attr('unselectable','on').css('MozUserSelect','none').bind('selectstart.ui',function(){return false;});},enableSelection:function(el){return $(el).attr('unselectable','off').css('MozUserSelect','').unbind('selectstart.ui');},hasScroll:function(e,a){if($(e).css('overflow')=='hidden'){return false;}
var scroll=(a&&a=='left')?'scrollLeft':'scrollTop',has=false;if(e[scroll]>0){return true;}
e[scroll]=1;has=(e[scroll]>0);e[scroll]=0;return has;}};$.ui.mouse={_mouseInit:function(){var self=this;this.element.bind('mousedown.'+this.widgetName,function(e){return self._mouseDown(e);});if($.browser.msie){this._mouseUnselectable=this.element.attr('unselectable');this.element.attr('unselectable','on');}
this.started=false;},_mouseDestroy:function(){this.element.unbind('.'+this.widgetName);($.browser.msie&&this.element.attr('unselectable',this._mouseUnselectable));},_mouseDown:function(e){(this._mouseStarted&&this._mouseUp(e));this._mouseDownEvent=e;var self=this,btnIsLeft=(e.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(e.target).parents().add(e.target).filter(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(e)){return true;}
this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true;},this.options.delay);}
if(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)){this._mouseStarted=(this._mouseStart(e)!==false);if(!this._mouseStarted){e.preventDefault();return true;}}
this._mouseMoveDelegate=function(e){return self._mouseMove(e);};this._mouseUpDelegate=function(e){return self._mouseUp(e);};$(document).bind('mousemove.'+this.widgetName,this._mouseMoveDelegate).bind('mouseup.'+this.widgetName,this._mouseUpDelegate);return false;},_mouseMove:function(e){if($.browser.msie&&!e.button){return this._mouseUp(e);}
if(this._mouseStarted){this._mouseDrag(e);return false;}
if(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,e)!==false);(this._mouseStarted?this._mouseDrag(e):this._mouseUp(e));}
return!this._mouseStarted;},_mouseUp:function(e){$(document).unbind('mousemove.'+this.widgetName,this._mouseMoveDelegate).unbind('mouseup.'+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._mouseStop(e);}
return false;},_mouseDistanceMet:function(e){return(Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance);},_mouseDelayMet:function(e){return this.mouseDelayMet;},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return true;}};$.ui.mouse.defaults={cancel:null,distance:1,delay:0};})(jQuery);;(function($){$.effects=$.effects||{};$.extend($.effects,{save:function(el,set){for(var i=0;i<set.length;i++){if(set[i]!==null)$.data(el[0],"ec.storage."+set[i],el[0].style[set[i]]);}},restore:function(el,set){for(var i=0;i<set.length;i++){if(set[i]!==null)el.css(set[i],$.data(el[0],"ec.storage."+set[i]));}},setMode:function(el,mode){if(mode=='toggle')mode=el.is(':hidden')?'show':'hide';return mode;},getBaseline:function(origin,original){var y,x;switch(origin[0]){case'top':y=0;break;case'middle':y=0.5;break;case'bottom':y=1;break;default:y=origin[0]/original.height;};switch(origin[1]){case'left':x=0;break;case'center':x=0.5;break;case'right':x=1;break;default:x=origin[1]/original.width;};return{x:x,y:y};},createWrapper:function(el){if(el.parent().attr('id')=='fxWrapper')
return el;var props={width:el.outerWidth({margin:true}),height:el.outerHeight({margin:true}),'float':el.css('float')};el.wrap('<div id="fxWrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var wrapper=el.parent();if(el.css('position')=='static'){wrapper.css({position:'relative'});el.css({position:'relative'});}else{var top=el.css('top');if(isNaN(parseInt(top)))top='auto';var left=el.css('left');if(isNaN(parseInt(left)))left='auto';wrapper.css({position:el.css('position'),top:top,left:left,zIndex:el.css('z-index')}).show();el.css({position:'relative',top:0,left:0});}
wrapper.css(props);return wrapper;},removeWrapper:function(el){if(el.parent().attr('id')=='fxWrapper')
return el.parent().replaceWith(el);return el;},setTransition:function(el,list,factor,val){val=val||{};$.each(list,function(i,x){unit=el.cssUnit(x);if(unit[0]>0)val[x]=unit[0]*factor+unit[1];});return val;},animateClass:function(value,duration,easing,callback){var cb=(typeof easing=="function"?easing:(callback?callback:null));var ea=(typeof easing=="object"?easing:null);return this.each(function(){var offset={};var that=$(this);var oldStyleAttr=that.attr("style")||'';if(typeof oldStyleAttr=='object')oldStyleAttr=oldStyleAttr["cssText"];if(value.toggle){that.hasClass(value.toggle)?value.remove=value.toggle:value.add=value.toggle;}
var oldStyle=$.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(value.add)that.addClass(value.add);if(value.remove)that.removeClass(value.remove);var newStyle=$.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(value.add)that.removeClass(value.add);if(value.remove)that.addClass(value.remove);for(var n in newStyle){if(typeof newStyle[n]!="function"&&newStyle[n]&&n.indexOf("Moz")==-1&&n.indexOf("length")==-1&&newStyle[n]!=oldStyle[n]&&(n.match(/color/i)||(!n.match(/color/i)&&!isNaN(parseInt(newStyle[n],10))))&&(oldStyle.position!="static"||(oldStyle.position=="static"&&!n.match(/left|top|bottom|right/))))offset[n]=newStyle[n];}
that.animate(offset,duration,ea,function(){if(typeof $(this).attr("style")=='object'){$(this).attr("style")["cssText"]="";$(this).attr("style")["cssText"]=oldStyleAttr;}else $(this).attr("style",oldStyleAttr);if(value.add)$(this).addClass(value.add);if(value.remove)$(this).removeClass(value.remove);if(cb)cb.apply(this,arguments);});});}});$.fn.extend({_show:$.fn.show,_hide:$.fn.hide,__toggle:$.fn.toggle,_addClass:$.fn.addClass,_removeClass:$.fn.removeClass,_toggleClass:$.fn.toggleClass,effect:function(fx,o,speed,callback){return $.effects[fx]?$.effects[fx].call(this,{method:fx,options:o||{},duration:speed,callback:callback}):null;},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0])))
return this._show.apply(this,arguments);else{var o=arguments[1]||{};o['mode']='show';return this.effect.apply(this,[arguments[0],o,arguments[2]||o.duration,arguments[3]||o.callback]);}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0])))
return this._hide.apply(this,arguments);else{var o=arguments[1]||{};o['mode']='hide';return this.effect.apply(this,[arguments[0],o,arguments[2]||o.duration,arguments[3]||o.callback]);}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||/(slow|normal|fast)/.test(arguments[0]))||(arguments[0].constructor==Function))
return this.__toggle.apply(this,arguments);else{var o=arguments[1]||{};o['mode']='toggle';return this.effect.apply(this,[arguments[0],o,arguments[2]||o.duration,arguments[3]||o.callback]);}},addClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.apply(this,[{add:classNames},speed,easing,callback]):this._addClass(classNames);},removeClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.apply(this,[{remove:classNames},speed,easing,callback]):this._removeClass(classNames);},toggleClass:function(classNames,speed,easing,callback){return speed?$.effects.animateClass.apply(this,[{toggle:classNames},speed,easing,callback]):this._toggleClass(classNames);},morph:function(remove,add,speed,easing,callback){return $.effects.animateClass.apply(this,[{add:add,remove:remove},speed,easing,callback]);},switchClass:function(){return this.morph.apply(this,arguments);},cssUnit:function(key){var style=this.css(key),val=[];$.each(['em','px','%','pt'],function(i,unit){if(style.indexOf(unit)>0)
val=[parseFloat(style),unit];});return val;}});jQuery.each(['backgroundColor','borderBottomColor','borderLeftColor','borderRightColor','borderTopColor','color','outlineColor'],function(i,attr){jQuery.fx.step[attr]=function(fx){if(fx.state==0){fx.start=getColor(fx.elem,attr);fx.end=getRGB(fx.end);}
fx.elem.style[attr]="rgb("+[Math.max(Math.min(parseInt((fx.pos*(fx.end[0]-fx.start[0]))+fx.start[0]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[1]-fx.start[1]))+fx.start[1]),255),0),Math.max(Math.min(parseInt((fx.pos*(fx.end[2]-fx.start[2]))+fx.start[2]),255),0)].join(",")+")";}});function getRGB(color){var result;if(color&&color.constructor==Array&&color.length==3)
return color;if(result=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
return[parseInt(result[1]),parseInt(result[2]),parseInt(result[3])];if(result=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
return[parseFloat(result[1])*2.55,parseFloat(result[2])*2.55,parseFloat(result[3])*2.55];if(result=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
return[parseInt(result[1],16),parseInt(result[2],16),parseInt(result[3],16)];if(result=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
return[parseInt(result[1]+result[1],16),parseInt(result[2]+result[2],16),parseInt(result[3]+result[3],16)];if(result=/rgba\(0, 0, 0, 0\)/.exec(color))
return colors['transparent']
return colors[jQuery.trim(color).toLowerCase()];}
function getColor(elem,attr){var color;do{color=jQuery.curCSS(elem,attr);if(color!=''&&color!='transparent'||jQuery.nodeName(elem,"body"))
break;attr="backgroundColor";}while(elem=elem.parentNode);return getRGB(color);};var colors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});})(jQuery);




