// MooTools: the javascript framework.
// Load this file's selection again by visiting: http://mootools.net/more/871ac4b04b709ecb76b75c6a0d6b8bb7 
// Or build this file again with packager using: packager build More/Element.Delegation
/*
---
copyrights:
  - [MooTools](http://mootools.net)

licenses:
  - [MIT License](http://mootools.net/license.txt)
...
*/
MooTools.More={version:"1.3.2.1",build:"e586bcd2496e9b22acfde32e12f84d49ce09e59d"};Events.Pseudos=function(g,c,e){var b="monitorEvents:";var a=function(h){return{store:h.store?function(i,j){h.store(b+i,j);
}:function(i,j){(h.$monitorEvents||(h.$monitorEvents={}))[i]=j;},retrieve:h.retrieve?function(i,j){return h.retrieve(b+i,j);}:function(i,j){if(!h.$monitorEvents){return j;
}return h.$monitorEvents[i]||j;}};};var f=function(j){if(j.indexOf(":")==-1||!g){return null;}var i=Slick.parse(j).expressions[0][0],m=i.pseudos,h=m.length,k=[];
while(h--){if(g[m[h].key]){k.push({event:i.tag,value:m[h].value,pseudo:m[h].key,original:j});}}return k.length?k:null;};var d=function(h){return Object.merge.apply(this,h.map(function(i){return g[i.pseudo].options||{};
}));};return{addEvent:function(m,p,j){var n=f(m);if(!n){return c.call(this,m,p,j);}var k=a(this),s=k.retrieve(m,[]),h=n[0].event,t=d(n),o=p,i=t[h]||{},l=Array.slice(arguments,2),r=this,q;
if(i.args){l.append(Array.from(i.args));}if(i.base){h=i.base;}if(i.onAdd){i.onAdd(this);}n.each(function(u){var v=o;o=function(){(i.listener||g[u.pseudo].listener).call(r,u,v,arguments,q,t);
};});q=o.bind(this);s.include({event:p,monitor:q});k.store(m,s);c.apply(this,[m,p].concat(l));return c.apply(this,[h,q].concat(l));},removeEvent:function(l,n){var m=f(l);
if(!m){return e.call(this,l,n);}var j=a(this),o=j.retrieve(l);if(!o){return this;}var h=m[0].event,p=d(m),i=p[h]||{},k=Array.slice(arguments,2);if(i.args){k.append(Array.from(i.args));
}if(i.base){h=i.base;}if(i.onRemove){i.onRemove(this);}e.apply(this,[l,n].concat(k));o.each(function(q,r){if(!n||q.event==n){e.apply(this,[h,q.monitor].concat(k));
}delete o[r];},this);j.store(l,o);return this;}};};(function(){var b={once:{listener:function(e,f,d,c){f.apply(this,d);this.removeEvent(e.event,c).removeEvent(e.original,f);
}},throttle:{listener:function(d,e,c){if(!e._throttled){e.apply(this,c);e._throttled=setTimeout(function(){e._throttled=false;},d.value||250);}}},pause:{listener:function(d,e,c){clearTimeout(e._pause);
e._pause=e.delay(d.value||250,this,c);}}};Events.definePseudo=function(c,d){b[c]=Type.isFunction(d)?{listener:d}:d;return this;};Events.lookupPseudo=function(c){return b[c];
};var a=Events.prototype;Events.implement(Events.Pseudos(b,a.addEvent,a.removeEvent));["Request","Fx"].each(function(c){if(this[c]){this[c].implement(Events.prototype);
}});})();(function(){var d={},c=["once","throttle","pause"],b=c.length;while(b--){d[c[b]]=Events.lookupPseudo(c[b]);}Event.definePseudo=function(e,f){d[e]=Type.isFunction(f)?{listener:f}:f;
return this;};var a=Element.prototype;[Element,Window,Document].invoke("implement",Events.Pseudos(d,a.addEvent,a.removeEvent));})();(function(){var b=!(window.attachEvent&&!window.addEventListener),f=Element.NativeEvents;
f.focusin=2;f.focusout=2;var c=function(h,k,i){var j=Element.Events[h.event],l;if(j){l=j.condition;}return Slick.match(k,h.value)&&(!l||l.call(k,i));};
var e=function(h,j,i){for(var k=j.target;k&&k!=this;k=document.id(k.parentNode)){if(k&&c(h,k,j)){return i.call(k,j,k);}}};var g=function(h){var i="$delegation:";
return{base:"focusin",onRemove:function(j){j.retrieve(i+"forms",[]).each(function(k){k.retrieve(i+"listeners",[]).each(function(l){k.removeEvent(h,l);});
k.eliminate(i+h+"listeners").eliminate(i+h+"originalFn");});},listener:function(r,s,q,t,v){var k=q[0],j=this.retrieve(i+"forms",[]),p=k.target,m=(p.get("tag")=="form")?p:k.target.getParent("form");
if(!m){return;}var o=m.retrieve(i+"originalFn",[]),l=m.retrieve(i+"listeners",[]),u=this;j.include(m);this.store(i+"forms",j);if(!o.contains(s)){var n=function(w){e.call(u,r,w,s);
};m.addEvent(h,n);o.push(s);l.push(n);m.store(i+h+"originalFn",o).store(i+h+"listeners",l);}}};};var a=function(h){return{base:"focusin",listener:function(l,m,j){var k={blur:function(){this.removeEvents(k);
}},i=this;k[h]=function(n){e.call(i,l,n,m);};j[0].target.addEvents(k);}};};var d={mouseenter:{base:"mouseover"},mouseleave:{base:"mouseout"},focus:{base:"focus"+(b?"":"in"),args:[true]},blur:{base:b?"blur":"focusout",args:[true]}};
if(!b){Object.append(d,{submit:g("submit"),reset:g("reset"),change:a("change"),select:a("select")});}Event.definePseudo("relay",{listener:function(i,j,h){e.call(this,i,h[0],j);
},options:d});})();
var Asset={javascript:function(f,c){if(!c){c={};}var a=new Element("script",{src:f,type:"text/javascript"}),g=c.document||document,b=0,d=c.onload||c.onLoad;
var e=d?function(){if(++b==1){d.call(this);}}:function(){};delete c.onload;delete c.onLoad;delete c.document;return a.addEvents({load:e,readystatechange:function(){if(["loaded","complete"].contains(this.readyState)){e.call(this);
}}}).set(c).inject(g.head);},css:function(d,a){if(!a){a={};}var b=new Element("link",{rel:"stylesheet",media:"screen",type:"text/css",href:d});var c=a.onload||a.onLoad,e=a.document||document;
delete a.onload;delete a.onLoad;delete a.document;if(c){b.addEvent("load",c);}return b.set(a).inject(e.head);},image:function(c,b){if(!b){b={};}var d=new Image(),a=document.id(d)||new Element("img");
["load","abort","error"].each(function(e){var g="on"+e,f="on"+e.capitalize(),h=b[g]||b[f]||function(){};delete b[f];delete b[g];d[g]=function(){if(!d){return;
}if(!a.parentNode){a.width=d.width;a.height=d.height;}d=d.onload=d.onabort=d.onerror=null;h.delay(1,a,a);a.fireEvent(e,a,1);};});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1);
}return a.set(b);},images:function(c,b){c=Array.from(c);var d=function(){},a=0;b=Object.merge({onComplete:d,onProgress:d,onError:d,properties:{}},b);return new Elements(c.map(function(f,e){return Asset.image(f,Object.append(b.properties,{onload:function(){a++;
b.onProgress.call(this,a,e,f);if(a==c.length){b.onComplete();}},onerror:function(){a++;b.onError.call(this,a,e,f);if(a==c.length){b.onComplete();}}}));
}));}};

(function(){Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(c,b){this.element=this.subject=document.id(c);
this.parent(b);if(typeOf(this.element)!="element"){this.element=document.id(this.element.getDocument().body);}if(this.options.wheelStops){var d=this.element,e=this.cancel.pass(false,this);
this.addEvent("start",function(){d.addEvent("mousewheel",e);},true);this.addEvent("complete",function(){d.removeEvent("mousewheel",e);},true);}},set:function(){var b=Array.flatten(arguments);
if(Browser.firefox){b=[Math.round(b[0]),Math.round(b[1])];}this.element.scrollTo(b[0],b[1]);return this;},compute:function(d,c,b){return[0,1].map(function(e){return Fx.compute(d[e],c[e],b);
});},start:function(c,d){if(!this.check(c,d)){return this;}var b=this.element.getScroll();return this.parent([b.x,b.y],[c,d]);},calculateScroll:function(g,f){var d=this.element,b=d.getScrollSize(),h=d.getScroll(),j=d.getSize(),c=this.options.offset,i={x:g,y:f};
for(var e in i){if(!i[e]&&i[e]!==0){i[e]=h[e];}if(typeOf(i[e])!="number"){i[e]=b[e]-j[e];}i[e]+=c[e];}return[i.x,i.y];},toTop:function(){return this.start.apply(this,this.calculateScroll(false,0));
},toLeft:function(){return this.start.apply(this,this.calculateScroll(0,false));},toRight:function(){return this.start.apply(this,this.calculateScroll("right",false));
},toBottom:function(){return this.start.apply(this,this.calculateScroll(false,"bottom"));},toElement:function(d,e){e=e?Array.from(e):["x","y"];var c=a(this.element)?{x:0,y:0}:this.element.getScroll();
var b=Object.map(document.id(d).getPosition(this.element),function(g,f){return e.contains(f)?g+c[f]:false;});return this.start.apply(this,this.calculateScroll(b.x,b.y));
},toElementEdge:function(d,g,e){g=g?Array.from(g):["x","y"];d=document.id(d);var i={},f=d.getPosition(this.element),j=d.getSize(),h=this.element.getScroll(),b=this.element.getSize(),c={x:f.x+j.x,y:f.y+j.y};
["x","y"].each(function(k){if(g.contains(k)){if(c[k]>h[k]+b[k]){i[k]=c[k]-b[k];}if(f[k]<h[k]){i[k]=f[k];}}if(i[k]==null){i[k]=h[k];}if(e&&e[k]){i[k]=i[k]+e[k];
}},this);if(i.x!=h.x||i.y!=h.y){this.start(i.x,i.y);}return this;},toElementCenter:function(e,f,h){f=f?Array.from(f):["x","y"];e=document.id(e);var i={},c=e.getPosition(this.element),d=e.getSize(),b=this.element.getScroll(),g=this.element.getSize();
["x","y"].each(function(j){if(f.contains(j)){i[j]=c[j]-(g[j]-d[j])/2;}if(i[j]==null){i[j]=b[j];}if(h&&h[j]){i[j]=i[j]+h[j];}},this);if(i.x!=b.x||i.y!=b.y){this.start(i.x,i.y);
}return this;}});function a(b){return(/^(?:body|html)$/i).test(b.tagName);}})();

/* Fall backs for HTML 5 attr such as placeholder & required */
function supportsPlaceholder() {
	var i = document.createElement('input');
	return 'placeholder' in i;
}

var runLoader = (function() {

/*
	window.addEvent('load',function() {	
		$$('img').each(function(img) {

			var src = img.get('src');
			if ( src.indexOf('data') )
			{
				
				img.setStyles({
					
					'height': img.getSize().y,
					'background': 'url(' + src + ') left top no-repeat',
					'width': img.getSize().x
				});
			
			}
		});
	});
	window.addEvent('load',function() {
		(function() { $$('img').set('src', 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==');	}).delay(360);
	});
*/

    function loadScript(src, func) {
		
		var ls = document.createElement('script');
//		ls.async = true;
		ls.src = src;
		(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ls);
		
		window.addEvent('load', function() {
			if ( func != null ) (function() { func(); }).delay(360);										 
		});
		

    }
	
	
    
	window.addEvent('domready',function() {
										
		var galleryCanvas = $$('.gallery');
		
		if ( galleryCanvas.length )
		{
			new Element('link', { 'rel': 'stylesheet', 'href' : '/styles/gallery.css' }).inject((document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]), 'bottom');
			loadScript("/scripts/bs.gallerybox.js");	
		}
												
		var googMap = $$('.googleMap');
		
		if ( googMap.length )
		{
			
			run = (function() {
							
				loadScript("/scripts/mmap.main.js");
				
				(function() {
				 
					var stylez = [
					  {
						featureType: "all",
						elementType: "geometry",
						stylers: [
							{ saturation: 0 },
							{ gamma: 0 },
							{ lightness: 0 }
						]
					  }
					]; 
																				 
					var  LatLng = {
						lat : document.id("latitude") ? document.id("latitude").get("text") : 0,
						lng : document.id("longitude") ? document.id("longitude").get("text") : 0
					}
	
					var map;
					var LatLng = new google.maps.LatLng(LatLng.lat, LatLng.lng);
						
					var map = new google.maps.Map($('gmap'), {
						zoom: 15,
						center: LatLng,
						mapTypeControlOptions: {
							mapTypeIds: [google.maps.MapTypeId.ROADMAP, '']
						},
						scaleControl: true
					});
					
					var styledMapOptions = {
						name: "Natural Balance"
					}
					
					var jayzMapType = new google.maps.StyledMapType(
					stylez, styledMapOptions);
					
					map.mapTypes.set('Natural Balance', jayzMapType);
					map.setMapTypeId('Natural Balance');
					 
					var marker1 = new MMap.Marker.Image({
						map: map,
						title: 'Natural Balance',
						image: '/images/icons/marker.png',
						position: LatLng
					});
				
					(function() {map.setZoom(16);}).delay(500);
					
				}).delay(360);
				
			});
			// Included Mootools More.Date (in this.file)

//			
			
			loadScript("http://maps.google.com/maps/api/js?v=3&sensor=false&callback=run");
		
		}
	});
	
});

runLoader();

// SlideShow
(function() {
	window.addEvent('domready', function() {
		//settings
		var slideShow = $$('.slide-show'), duration = 4000, counter = 0;
	
		slideShow.each(function(show) {
								
			var slides = show.getElements('img'), container = show.getElement('.slide-container'), inEvent = false;
								
			var next = new Element('a', { 'title': 'next', 'class': 'button-next', 'href': 'javascript:void(0);'});
			
			next.inject(show);
			
			new Element('div', { 'class': 'blur-bg' }).inject(show);
			
			var compose = function() {
				
				if ( !inEvent ) 
				{
					inEvent = true;
					
					var img = container.getFirst('img')
					var slideEffect = new Fx.Morph(container, { duration: 'long', transition: Fx.Transitions.Expo.easeInOut });
					
					var clone = img.clone().inject(container);
					slideEffect.start({ 
						'left': [0, -(img.getSize().x)-10] 
					}).chain(function() {
						(function() {
							img.dispose();
							container.setStyle('left', 0);
							inEvent = false;
						}).delay(360);
					});	
				}
				else
				{
					return false;
				}
				
			};
			
			runShow = (function() { process = compose.periodical(duration); });
			runShow();
											
			killShow = (function() { $clear(process); });
			
			show.addEvents({'mouseenter': killShow, 'mouseleave': runShow});
			next.addEvent('click', compose);
			
		});
		
	});
})();

// Forms/Input/Textbox
(function() {
		  
	window.addEvent('domready', function() {
		var inputField = $$('form');
		
		if ( inputField )
		{
			inputField.each(function(el) {
									 
				var input = el.getElements('.inputbox');
				
				if ( el.getElements('.textbox') )
				{
					input = input.concat(el.getElements('.textbox'))
				}
				
				input.addEvents({
					'focus' : function(ipt) {

					},
					'blur' : function(ipt) {

						if ( this.value.length > 1 )
						{
							this.addClass('not-empty');
						}
						else
						{
							this.removeClass('not-empty');
						}
					}
				});
			});
		}
	});
	
})();

(function() {
		  
	window.addEvent('domready', function() {
										 
		var contentBody = contentBody || document.id('content');
										 
		contentBody.getElements('.gallery a').setStyles({
			'background': 'url(/images/ajax-loader.gif) center no-repeat',
			'display': 'block',
			'height': '161px',
			'width': '161px'
		});
		
		(function() {
			contentBody.getElements('.gallery img').each(function(el) {
				el.src = el.get('data-src');
			});
		}).delay(1000);
		
	});
})();

(function() {
		  
	window.addEvent('domready', function() {
										 
		var signUpButton = document.id("signupBox");
		
		if ( signUpButton ) 
		{
					  
			var button = $$(".signUpButton"), signupBox = document.id("signupBox"), signUpState = false;	
			
			var inputFields = signupBox.getElements('input');
			
			inputFields.each(function(el) {
				if (!supportsPlaceholder()) {
					var placeholderText = el.get('placeholder');
					if (placeholderText) {
						/*var textOverlay = new OverText(el, {
							textOverride: placeholderText
						});*/
						el.addEvents({
						  focus: function() {
							if(el.value == placeholderText) { el.value = ''; }
						  },
						  blur: function() {
							if(el.value == '') { el.value = placeholderText; }
						  }
						});
					}
				}
			});
			
			if ( location.hash == "#thanks" )
			{
				
				signupBox.getElement("[type=submit]").setStyle('display', 'none');
				
				var oriHeader = signupBox.getElement(".header");
				oriHeader2 = oriHeader.get("html");
				
				var oriContent = signupBox.getElement(".content");
				oriContent2 = oriContent.get("html");
				
				oriHeader.empty();
				oriHeader.set("html", "Registration");
				
				oriContent.empty();
				oriContent.set("html", "<p>Thank you for subscribing to our newsletter.</p>");
				
				button.addClass("active");
				signupBox.setStyle('display', 'block')
				
				fx = {
					signupBox: new Fx.Tween(signupBox, {property: "opacity", duration: 360}).set(0)
				};
				
				(function() { 
						  
					fx.signupBox.start(1);
					
					var moveUp = new Fx.Scroll(window).toElementCenter(signupBox);
					
					animate = function(e) { 
					
						if ( button.hasClass("active") && ( !$(e.target).getParents().contains(signupBox) || this.get("text") == "close" ) )
						{
							fx.signupBox.start(0);
							button.removeClass("active");
							document.id(document.body).removeEvent("click", animate);
							oriHeader.empty();
							oriHeader.set("html", oriHeader2);
							oriContent.empty();
							oriContent.set("html", oriContent2);
						}
						
					}
					
					document.id(document.body).addEvent("click", animate);
					
					signupBox.getElement(".close").addEvent("click", animate);
					
				}).delay(0);
			}
			
			if ( location.hash == "#signupsuccess" )
			{
				
				signupBox.getElement("[type=submit]").setStyle('display', 'none');
				
				var oriContent = signupBox.getElement(".content");
				oriContent2 = oriContent.get("html");
				
				oriContent.empty();
				oriContent.set("html", "<p>Thank you for subscribing to our newsletter.</p><p>We hope you will find it useful and informative.</p>");
				
				button.addClass("active");
				signupBox.setStyle('display', 'block')
				
				fx = {
					signupBox: new Fx.Tween(signupBox, {property: "opacity", duration: 360}).set(0)
				};
				
				(function() { 
						  
					fx.signupBox.start(1);
					
					var moveUp = new Fx.Scroll(window).toElementCenter(signupBox);
					
					animate = function(e) { 
					
						if ( button.hasClass("active") && ( !$(e.target).getParents().contains(signupBox) || this.get("text") == "close" ) )
						{
							fx.signupBox.start(0);
							button.removeClass("active");
							document.id(document.body).removeEvent("click", animate);
							oriContent.empty();
							oriContent.set("html", oriContent2);
						}
						
					}
					
					document.id(document.body).addEvent("click", animate);
					
					signupBox.getElement(".close").addEvent("click", animate);
					
				}).delay(0);
			}
	
				  
			button.addEvent("click", function(b) {
				b.stop();
											  
				button.addClass("active");
				
				signupBox.setStyle('display', 'block')
				
				fx = {
					signupBox: new Fx.Tween(signupBox, {property: "opacity", duration: 360}).set(0)
				};
				
				(function() { 
						  
					fx.signupBox.start(1).chain(function() {var k = document.id('signupBox').getElements('input[type=text]');k[0].focus('click');k[0].blur();k[1].focus('click');k[1].blur();k[2].focus('click');k[2].blur();})
					
					var moveUp = new Fx.Scroll(window).toElementCenter(signupBox);
					
					animate = function(e) { 
					
						if ( button.hasClass("active") && ( !$(e.target).getParents().contains(signupBox) || this.get("text") == "close" ) )
						{
							fx.signupBox.start(0);
							button.removeClass("active");
							document.id(document.body).removeEvent("click", animate);
						}
						
					}
					
					document.id(document.body).addEvent("click", animate);
					
					signupBox.getElement(".close").addEvent("click", animate);
					
					signupBox.getElement("form").addEvent("submit", function() {
					
						error_counter = false;
						error_message = "";
						
						signupBox.getElement("form").getElements("[rel=required]").each(function(field) {
						
							if ( field.get('data') != null ) {
								
								if ( field.get('data') == "email" && !(/^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]\.?){0,63}[a-z0-9!#$%&'*+\/=?^_`{|}~-]@(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\])$/i).test(field.get('value')) ) {
									
									error_counter = true;
									error_message += "Please enter a valid email address. For example \"fred@domain.com\".\n";
						
								}
						
							} else {
								
								if ( field.get('value').replace(/^\s*|\s*$/g,'').length < 1 ) {
									error_counter = true;
									error_message += field.get('placeholder') + " field is required.\n";
								}
								
							}
							
						});
							
						if ( error_counter ) {
							alert(error_message);
							return false;
						}
					
					}); 
					
				}).delay(360);
				
				return false;
				
			});	
		
		}
		
	});
	
})();

