/**
 * jQuery Background Position Plugin - http://www.protofunc.com/scripts/jquery/backgroundPosition/
**/
(function($){if(!document.defaultView||!document.defaultView.getComputedStyle){var oldCurCSS=jQuery.curCSS;jQuery.curCSS=function(elem,name,force){if(name==='background-position'){name='backgroundPosition';}
if(name!=='backgroundPosition'||!elem.currentStyle||elem.currentStyle[name]){return oldCurCSS.apply(this,arguments);}
var style=elem.style;if(!force&&style&&style[name]){return style[name];}
return oldCurCSS(elem,'backgroundPositionX',force)+' '+oldCurCSS(elem,'backgroundPositionY',force);};}
var oldAnim=$.fn.animate;$.fn.animate=function(prop){if('background-position'in prop){prop.backgroundPosition=prop['background-position'];delete prop['background-position'];}
if('backgroundPosition'in prop){prop.backgroundPosition='('+prop.backgroundPosition;}
return oldAnim.apply(this,arguments);};function toArray(strg){strg=strg.replace(/left|top/g,'0px');strg=strg.replace(/right|bottom/g,'100%');strg=strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");var res=strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);return[parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];}
$.fx.step.backgroundPosition=function(fx){if(!fx.bgPosReady){var start=$.curCSS(fx.elem,'backgroundPosition');if(!start){start='0px 0px';}
start=toArray(start);fx.start=[start[0],start[2]];var end=toArray(fx.options.curAnim.backgroundPosition);fx.end=[end[0],end[2]];fx.unit=[end[1],end[3]];fx.bgPosReady=true;}
var nowPosX=[];nowPosX[0]=((fx.end[0]-fx.start[0])*fx.pos)+fx.start[0]+fx.unit[0];nowPosX[1]=((fx.end[1]-fx.start[1])*fx.pos)+fx.start[1]+fx.unit[1];fx.elem.style.backgroundPosition=nowPosX[0]+' '+nowPosX[1];};})(jQuery);

/**
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
**/
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}});

/**
 * Masked Input plugin for jQuery http://digitalbush.com/projects/masked-input-plugin/
**/
(function($){var pasteEventName=($.browser.msie?'paste':'input')+".mask";var iPhone=(window.orientation!=undefined);$.mask={definitions:{'9':"[0-9]",'a':"[A-Za-z]",'*':"[A-Za-z0-9]"}};$.fn.extend({caret:function(begin,end){if(this.length==0)return;if(typeof begin=='number'){end=(typeof end=='number')?end:begin;return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(begin,end)}else if(this.createTextRange){var range=this.createTextRange();range.collapse(true);range.moveEnd('character',end);range.moveStart('character',begin);range.select()}})}else{if(this[0].setSelectionRange){begin=this[0].selectionStart;end=this[0].selectionEnd}else if(document.selection&&document.selection.createRange){var range=document.selection.createRange();begin=0-range.duplicate().moveStart('character',-100000);end=begin+range.text.length}return{begin:begin,end:end}}},unmask:function(){return this.trigger("unmask")},mask:function(mask,settings){if(!mask&&this.length>0){var input=$(this[0]);var tests=input.data("tests");return $.map(input.data("buffer"),function(c,i){return tests[i]?c:null}).join('')}settings=$.extend({placeholder:"_",completed:null,watermark:null},settings);var defs=$.mask.definitions;var tests=[];var partialPosition=mask.length;var firstNonMaskPos=null;var len=mask.length;$.each(mask.split(""),function(i,c){if(c=='?'){len--;partialPosition=i}else if(defs[c]){tests.push(new RegExp(defs[c]));if(firstNonMaskPos==null)firstNonMaskPos=tests.length-1}else{tests.push(null)}});return this.each(function(){var input=$(this);var buffer=$.map(mask.split(""),function(c,i){if(c!='?')return defs[c]?settings.placeholder:c});var ignore=false;var focusText=input.val();input.data("buffer",buffer).data("tests",tests);function seekNext(pos){while(++pos<=len&&!tests[pos]);return pos};function shiftL(pos){while(!tests[pos]&&--pos>=0);for(var i=pos;i<len;i++){if(tests[i]){buffer[i]=settings.placeholder;var j=seekNext(i);if(j<len&&tests[i].test(buffer[j])){buffer[i]=buffer[j]}else break}}writeBuffer();input.caret(Math.max(firstNonMaskPos,pos))};function shiftR(pos){for(var i=pos,c=settings.placeholder;i<len;i++){if(tests[i]){var j=seekNext(i);var t=buffer[i];buffer[i]=c;if(j<len&&tests[j].test(t))c=t;else break}}};function keydownEvent(e){var pos=$(this).caret();var k=e.keyCode;ignore=(k<16||(k>16&&k<32)||(k>32&&k<41));if((pos.begin-pos.end)!=0&&(!ignore||k==8||k==46))clearBuffer(pos.begin,pos.end);if(k==8||k==46||(iPhone&&k==127)){shiftL(pos.begin+(k==46?0:-1));return false}else if(k==27){input.val(focusText);input.caret(0,checkVal());return false}};function keypressEvent(e){if(ignore){ignore=false;return(e.keyCode==8)?false:null}e=e||window.event;var k=e.charCode||e.keyCode||e.which;var pos=$(this).caret();if(e.ctrlKey||e.altKey||e.metaKey){return true}else if((k>=32&&k<=125)||k>186){var p=seekNext(pos.begin-1);if(p<len){var c=String.fromCharCode(k);if(tests[p].test(c)){shiftR(p);buffer[p]=c;writeBuffer();var next=seekNext(p);$(this).caret(next);if(settings.completed&&next>=len)settings.completed.call(input)}}}return false};function clearBuffer(start,end){for(var i=start;i<end&&i<len;i++){if(tests[i])buffer[i]=settings.placeholder}};function writeBuffer(){return input.val(buffer.join('')).val()};function checkVal(allow){var test=input.val();var lastMatch=-1;for(var i=0,pos=0;i<len;i++){if(tests[i]){buffer[i]=settings.placeholder;while(pos++<test.length){var c=test.charAt(pos-1);if(tests[i].test(c)){buffer[i]=c;lastMatch=i;break}}if(pos>test.length)break}else if(buffer[i]==test.charAt(pos)&&i!=partialPosition){pos++;lastMatch=i}}if(!allow&&lastMatch+1<partialPosition){input.val(settings.watermark||"");clearBuffer(0,len)}else if(allow||lastMatch+1>=partialPosition){writeBuffer();if(!allow)input.val(input.val().substring(0,lastMatch+1))}return(partialPosition?i:firstNonMaskPos)};if(!input.attr("readonly"))input.one("unmask",function(){input.unbind(".mask").removeData("buffer").removeData("tests")}).bind("focus.mask",function(){focusText=input.val();var pos=checkVal();writeBuffer();setTimeout(function(){if(pos==mask.length)input.caret(0,pos);else input.caret(pos)},0)}).bind("blur.mask",function(){checkVal();if(input.val()!=focusText)input.change()}).bind("keydown.mask",keydownEvent).bind("keypress.mask",keypressEvent).bind(pasteEventName,function(){setTimeout(function(){input.caret(checkVal(true))},0)});checkVal()})}})})(jQuery);

//GA 2.0
var ga = {};
ga.track = function(tracker) {
	_gaq.push(['_trackPageview', tracker])
	return ga;
};

//Global
	var elm = '',
		gmr = '',
		cached;

//Combobox
function able_combobox() {
	$.widget( "ui.combobox", {
		_create: function() {
			var self = this;
			var select = this.element.hide().wrap('<span class="wrap"></span>').attr({disabled: 'disabled'}),
				selected = select.children( ':selected' ),
				value = selected.val() ? selected.text() : '';
			var input = $( '<input>' )
				.attr({type: 'text', name: select.attr('name'), id: select.attr('name') + '_input'})
				.addClass('empty')
				.insertAfter( select )
	//			.val( value )
				.autocomplete({
					delay: 0,
					minLength: 0,
					source: function( request, response ) {
						var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
						response( select.children( 'option' ).map(function() {
							var text = $( this ).text();
							if ( this.value && ( !request.term || matcher.test(text) ) )
								return {
									label: text.replace(
										new RegExp(
											"(?![^&;]+;)(?!<[^<>]*)(" +
											$.ui.autocomplete.escapeRegex(request.term) +
											")(?![^<>]*>)(?![^&;]+;)", "gi"
										), "<strong>$1</strong>" ),
									value: text,
									option: this
								};
						}) );
					},
					select: function( event, ui ) {
						ui.item.option.selected = true;
						//select.val( ui.item.option.value );
						self._trigger( 'selected', event, {
							item: ui.item.option
						});
						setTimeout(function() {
							input.blur();
						}, 50);
					},
					change: function( event, ui ) {
						if ( !ui.item ) {
							var matcher = new RegExp( '^' + $.ui.autocomplete.escapeRegex( $(this).val() ) + '$', 'i' ),
								valid = false;
							select.children( 'option' ).each(function() {
								if ( this.value.match( matcher ) ) {
									this.selected = valid = true;
									return false;
								}
							});
							if ( !valid ) {
								// remove invalid value, as it didn't match anything
								$( this ).val( '' );
								select.val( '' );
								return false;
							}
						}
					},
					open: function(event, ui) {
						var pos = input.offset();
							pos = Math.ceil(pos.left);
						$('.ui-autocomplete').css({left: pos});
					}
				});

			input.data( 'autocomplete' )._renderItem = function( ul, item ) {
				return $( '<li></li>' )
					.data( 'item.autocomplete', item )
					.append( '<a>' + item.label + '</a>' )
					.appendTo( ul );
			};
			$('<strong></strong>')
			.text(select.attr('title'))
			.addClass('label')
			.insertAfter(input);
			$( "<button></button>" )
				.attr( "tabIndex", -1 )
				.addClass('show sprite replaced')
				.insertAfter( input )
				//.removeClass( "ui-corner-all" )
				//.addClass( "ui-corner-right ui-button-icon" )
				.click(function(e) {
					// close if already visible
					if ( input.autocomplete( 'widget' ).is( ':visible' ) ) {
						input.autocomplete( 'close' );
						e.preventDefault();
						return false;
					}

					// pass empty string as value to search for, displaying all results
					input.autocomplete( 'search', '' );
					input.focus();
					e.preventDefault();
				});
		}
	});
}

//Fancy
$('.fancy').each(function() {
	$(this).find('input[type=checkbox]').css({opacity: 0}).after('<span></span>');

	$('input[type=checkbox]').each(function() {
		if( $(this).attr('checked') )
			$(this).trigger('change');
	});

	$('input[type=checkbox]').click(function() {
			$(this).trigger('change');
	});

	$(':checkbox').bind({
		change: function() {
			if( $(this).attr('checked') ) {
				$(this).next().addClass('checked');
			} else {
				$(this).next().removeClass('checked');
			}
		}
	}).trigger('change');

	$(this).find('input,textarea').each(function() {
		var field = $(this),
			watermark = field.val();

		field
			.attr({title: watermark})
			.bind({
				focus: function() {
					if(field.val() == watermark) {
						$(this).val('');
					}
				},
				blur: function() {
					if(field.val() == '') {
						$(this).val(watermark);
					}
				}
			});
	});

	$(this).find('input[name=tel]').each(function() {
		var field = $(this);
		field.mask('(99) 9999-9999',{watermark: field.attr('title')});
	});

	$(this).find('input[name=CEP]').each(function() {
		var field = $(this);
		field.mask('99999-999',{watermark: field.attr('title')});
	});

	$('button.show').bind({
		click: function(e) {
			e.preventDefault();
		}
	});
});

//Reset
function reset_find(field,uf,city) {
	var select = $('select[name=' + field + ']'),
		title = 	select.siblings('.faux').attr('title');
	select.attr({disabled: 'disabled'}).siblings('.show').addClass('field').siblings('.faux ').text(title);
	mount_find(field,uf,city);
}

//Mount
function mount_find(field,uf,city) {
	gmr = 'field';

	var type = '',
		select = $('select[name=' + field + ']');
		values = ($('input[name=loja_propria]').is(':checked') ? 'loja_propria=1' : '') + ($('input[name=revenda]').is(':checked') ? '&revenda=2' : '') + ($('input[name=parceiros]').is(':checked') ? '&parceiros=3' : '');

		if(values == '') {
			values = 'loja_propria=1&revenda=2&parceiros=3';
		} if (!uf) {
			uf = '';
		} if (!city) {
			city = '';
		}

	if(field == 'estado') {
		type = 'estados'
	} if(field == 'cidade') {
		type = 'cidades';
		values = values + '&estado=' + uf;
	} if(field == 'loja') {
		type = 'lojas';
		values = values + '&estado=' + uf + '&cidade=' + city;
	}

	$.ajax({
		url: 'http://www.suplicycafes.com.br/mapas/json/' + type + '/&' + values,
		type: 'GET',
		dataType: 'script',
		timeout: 25000,
		cache: true,
		complete: function() {
			select.removeAttr('disabled').siblings('.show').removeClass('field');
		}
	});
}

function mount_estado(obj) {
	elm = obj;
	options = '';

	$('select[name=estado]').each(function() {
		for (var i = 0; i < elm.length; i++) {
			options += '<option value="' + elm[i].id + '">' + elm[i].name + '</option>';
		}

		$(this).html('<option value="">UF</option>' + options);
	});
}

function mount_cidade(obj) {
	elm = obj;
	options = '';
	$('select[name=cidade]').each(function() {
		for (var i = 0; i < elm.length; i++) {
			options += '<option value="' + elm[i].id + '">' + elm[i].name + '</option>';
		}

		$(this).html('<option value="">Cidade</option>' + options);
	});
}

function load_info(cont) {
	if($('body').has('.mobi')) {
		window.scrollTo(0,145);
	}

	cached = cont.address + ' ' + cont.city;

	$('#venue h2').fadeTo(0,0).fadeTo(500,1).text(cont.title);
	$('#venue address').fadeTo(0,0).fadeTo(500,1).html('<a target="_blank" href="http://maps.google.com/maps?q=' + cont.address + ' ' + cont.city + '">' + cont.address + '</a> <small>CEP: ' + cont.cep + '</small>' + cont.city + '/' + cont.uf + ' <br /><span>Telefone: <a href="tel:' + cont.phone + '">' + cont.phone + '</a></span>');
	setTimeout(function() {
		$('#search .btn').css({display: 'inline-block'}).trigger('click');
	}, 500);
}

function mount_loja(obj) {
	if (gmr == 'field') {
		elm = obj;
		options = '';
		$('select[name=loja]').each(function() {
			for (var i = 0; i < elm.length; i++) {
				options += '<option class="optgroup' + elm[i].type + '"  value="' + elm[i].id + '">' + elm[i].name + '</option>';
			}

			$(this).html('<option value="">Selecione uma loja abaixo</option>' + options);
			if($('select[name=loja] option').is('.optgroup1')) {
				$('select[name=loja]').append('<optgroup label="Lojas próprias"></optgroup>');
				$('select[name=loja] optgroup[label*="Lojas"]').append($('select[name=loja] option.optgroup1'));
			} if($('select[name=loja] option').is('.optgroup2')) {
				$('select[name=loja]').append('<optgroup label="Revendas"></optgroup>');
				$('select[name=loja] optgroup[label=Revendas]').append($('select[name=loja] option.optgroup2'));
			} if($('select[name=loja] option').is('.optgroup3')) {
				$('select[name=loja]').append('<optgroup label="Parceiros"></optgroup>');
				$('select[name=loja] optgroup[label=Parceiros]').append($('select[name=loja] option.optgroup3'));
			}
		});
	} else { //Verifica se vai montar maps
		elm_data = obj;
		var center_map = new google.maps.LatLng(-15.55, -50.55),
			center = {},
			start_message = {},
			zoom_size = 4;
		var message = [];
		var loja = window.location.search;
			loja = loja.replace('?loja=','');

		//Google Maps
		var userLocationMarker,
			userLocationCircle;
		function gomaps() {

			function setMarkers(map, locations) {
				if (navigator.geolocation) {
					navigator.geolocation.watchPosition(function(position) {
						var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
						userLocation = pos;
						userLocationMarker.setPosition(pos);
						if (!userLocationMarker.getMap()) {
							userLocationMarker.setMap(map);
						}

						userLocationCircle.setRadius(position.coords.accuracy);
						if (!userLocationCircle.getMap()) {
							userLocationCircle.setMap(map);
						}
					});

					navigator.geolocation.getCurrentPosition(function(position) {
						center = {lat: position.coords.latitude , lng: position.coords.longitude };
						var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
						zoom_size = 16;
						map.setZoom(zoom_size);

						if(!loja) {
							map.panTo(pos);
						}

						var user_icon = new google.maps.MarkerImage('http://suplicycafes.com.br/wp-content/themes/coffee/i/i/user.png',
							new google.maps.Size(14, 14),
							new google.maps.Point(0, 0),
							new google.maps.Point(7, 7));

						var userLocationMarker = new google.maps.Marker({
							icon: user_icon
						});

						userLocationMarker.setPosition(pos);
						userLocationMarker.setMap(map);

						var circle = new google.maps.Circle({
							fillColor: '#0000ff',
							fillOpacity: 0.1,
							strokeColor: '#0000ff',
							strokeOpacity: 0.3,
							strokeWeight: 1
						});

						circle.bindTo('center', userLocationMarker, 'position');
						circle.setRadius(position.coords.accuracy);
						circle.setMap(map);

						var button = document.createElement('DIV');

						button.className = 'button';
						button.innerHTML = 'Onde estou?';
						map.controls[google.maps.ControlPosition.TOP].push(button);
						google.maps.event.addDomListener(button, 'click', function() {
							if (userLocation) {
								map.panTo(userLocation);
							}
						});

						var directionsService = new google.maps.DirectionsService();
						var directionsRenderer = new google.maps.DirectionsRenderer({
							suppressMarkers: true,
							map: map
						});

						var rout = document.createElement('DIV');

						rout.className = 'button';
						rout.innerHTML = 'Traçar rota';
						map.controls[google.maps.ControlPosition.TOP].push(rout);
						google.maps.event.addDomListener(rout, 'click', function() {

							if(cached != '') {
								var lines = cached;
								console.log(lines)
								var request = {
									origin: userLocationMarker.getPosition(),
									destination: lines,
									travelMode: google.maps.DirectionsTravelMode.WALKING
								};

								directionsService.route(request, function(result, status) {
									if (status == google.maps.DirectionsStatus.OK) {
										directionsRenderer.setDirections(result);
									}
								});
							}

						});

					}, function() {
						// Can find the users location
					});
				}

				for (var i = 0; i < locations.length; i++) {
					if(elm_data[i].id == loja) {
						center = {lat: elm_data[i].lat , lng: elm_data[i].lng };
						start_message = {
							title:		elm_data[i].name,
							address:	elm_data[i].address,
							cep:		elm_data[i].cep,
							city:		elm_data[i].city,
							uf:			elm_data[i].state,
							phone:		elm_data[i].phone,
							lat:		elm_data[i].lat,
							lng:		elm_data[i].lng
						};
					}

					var image = new google.maps.MarkerImage('http://suplicycafes.com.br/wp-content/themes/coffee/i/i/gmaps_pin_' + elm_data[i].type + '.png',
						new google.maps.Size(16, 21),
						new google.maps.Point(0,0),
						new google.maps.Point(8, 21));
					message[i] = {
						title:		elm_data[i].name,
						address:	elm_data[i].address,
						cep:		elm_data[i].cep,
						city:		elm_data[i].city,
						uf:			elm_data[i].state,
						phone:		elm_data[i].phone,
						lat:		elm_data[i].lat,
						lng:		elm_data[i].lng
					};
					var myLatLng = new google.maps.LatLng(elm_data[i].lat, elm_data[i].lng);

					var marker = new google.maps.Marker({
						position: myLatLng,
						map: map,
						icon: image,
						title: elm_data[i].name,
						zIndex: (elm_data[i].type == 1) ? elm_data[i].id * 1000 : elm_data[i].id
					});

					attach_message(marker, i);
				}

				if(loja) {
					actual(loja);
				}

			}

			function actual(loja) {
				center_new = new google.maps.LatLng(center.lat,center.lng);
				zoom_size = 17;

				map.panTo(center_new);
				map.setZoom(zoom_size);
				load_info(start_message);
			};

			function attach_message(marker, number) {

				google.maps.event.addListener(marker, 'click', function() {
					load_info(message[number]);
				});
			}

			var opts = {
					center: center_map,
					mapTypeId: google.maps.MapTypeId.ROADMAP,
					mapTypeControl: true,
					mapTypeControlOptions: {
						style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
						position: google.maps.ControlPosition.TOP
					},
					navigationControl: true,
					navigationControlOptions: {
						style: google.maps.NavigationControlStyle.SMALL
					},
					zoom: zoom_size
				}

			var map = new google.maps.Map(document.getElementById('map'), opts);

			setMarkers(map, elm_data);

		}

		gomaps();

	}
}

//Find a store
$('#find').each(function() {
	//Faux Selects
	$('select').each(function() {
		$(this).fadeTo(0,0).wrap('<span class="wrap"></span>');
		var name = $(this).attr('name'),
			title = $(this).attr('title');
		$(this).before('<span class="show ' + name + ' sprite"></span><span class="faux ' + name + '" title="' + title + '">' + title + '</span>');
	});

	$('select').change(function() {
		var catch_select = $(this);
		var catched = '';
		catch_select.find(':selected').each(function () {
			catched = $(this).text();
			catch_select.siblings('.faux').text(catched);
		});
	});

	//Autoload
	setTimeout(function() {
		reset_find('loja');
		reset_find('estado');
		reset_find('cidade');
	}, 250);

	//Fires UF
	$(this).find(':checkbox').click(function() {
		reset_find('estado');
		reset_find('cidade');
		reset_find('loja');
	});

	//Fires City
	$('select[name=estado]').change(function() {
		var uf_id = $(this).find('option:selected').val();
		reset_find('cidade',uf_id);
		reset_find('loja',uf_id);
	});

	//Fires Store
	$('select[name=cidade]').bind('change select', function() {
		var uf_id = $('select[name=estado] option:selected').val(),
			city_id = $(this).find('option:selected').val();
		reset_find('loja',uf_id,city_id);
	});

	//Fix Store
	$('select[name=loja]').change(function() {
		$('.faux.loja').css({borderColor: 'inherit'})
	});

	//Submit
	$(this).submit(function() {
		if($('.faux.loja').text() == 'Loja') {
			$('.faux.loja').css({borderColor: '#E5376A'}).text('Selecione uma loja');
		} else {
			if ($('select[name=loja] option:selected').is('.optgroup1') && !$('body').is('.mobi')) {
				var name = $('select[name=loja] option:selected').text();
					name = name.replace(/ /gi,'-');
					name = name.replace('á','a');
				window.location = "/onde-encontrar/" + name.toLowerCase() + '/';
			} else {
				window.location = "/onde-encontrar/?loja=" + $('select[name=loja] option:selected').val();
			}
		}

		return false;
	});
});

//Check Venue
function foursquare(obj) {
	if(obj.status == 0) {
		if(!obj.content.error) {
			var checkins = obj.content.venue.stats.checkins.toString(),
				mayor = (obj.content.venue.stats.mayor ? obj.content.venue.stats.mayor.user.firstname : '') + ' ' + (obj.content.venue.stats.mayor ? obj.content.venue.stats.mayor.user.lastname : ''),
				count = (obj.content.venue.stats.mayor ? obj.content.venue.stats.mayor.count : ''),
				pic = (obj.content.venue.stats.mayor ? obj.content.venue.stats.mayor.user.photo : 'http://foursquare.com/img/blank_boy.png'),
				digits = '',
				mount = '',
				geolat = obj.content.venue.geolat,
				geolong = obj.content.venue.geolong;

			if(checkins.length < 6) {
				for (i = 0; i < (6 - checkins.length); i++ ) {
					digits = "0" + digits;
				}
			}

			mount	=	'<div class="stats">';
			mount	+=	'<span class="checkins"><h5>' + digits + '<em>' + checkins + '</em><small>Check-ins aqui.</small></h5></span>';
			if(mayor == '') {
				mount	+=	'<span class="mayor"><img src="' + pic + '" alt="' + mayor + '" /><h4 title="' + mayor + '">--<small>Sem mayor atual</small></h4></span>';
			} else {
				mount	+=	'<span class="mayor"><img src="' + pic + '" alt="' + mayor + '" /><h4 title="' + mayor + '">' + mayor.substring(0,11) + '<small>Mayor atual (' + count + 'x)</small></h4></span>';
			}
			mount	+=	'</div>';

			$('#featured .foursquare').append(mount);
			$('.stats').slideDown();
		} else {
			$('#featured .foursquare').append(obj.content.error);
			var geolat = $('#venue address').attr('lang'),
				geolong = $('#venue address').attr('title');
		}
	} else {
		$('#featured .foursquare').append(obj.errmsg);
		var geolat = $('#venue address').attr('lang'),
			geolong = $('#venue address').attr('title');
	}

	//Google Maps
	function gmaps() {
		var image = 'http://suplicycafes.com.br/wp-content/themes/coffee/i/i/gmaps_pin.png';
		var latlong = new google.maps.LatLng(geolat, geolong);
		var opts = {
				center: latlong,
				mapTypeControl: true,
				mapTypeControlOptions: {
					style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
				},
				mapTypeId: google.maps.MapTypeId.ROADMAP,
				navigationControl: true,
				navigationControlOptions: {
					style: google.maps.NavigationControlStyle.SMALL
				},
				zoom: 15
			};
		var map = new google.maps.Map(document.getElementById("map"), opts);
		var marker = new google.maps.Marker({
				icon: image,
				map: map,
				position: latlong
			});
		var layer = new google.maps.FusionTablesLayer(207831);

		layer.setMap(map);
	}

	setTimeout(gmaps, 100);
};

window.onorientationchange = viewpoint;

function viewpoint() {
	switch(window.orientation) {
		case 0:
		case 180:
			$('#crop, body').addClass('portrait').removeClass('landscape');
		break;
		case -90:
		case 90:
			$('#crop, body').addClass('landscape').removeClass('portrait');
		break;
	}
}

//Document Ready
$(document).ready(function() {

	viewpoint();

	$('.aniHor').hover(function() {
		var w = $(this).width(),
			bg = $(this).css('backgroundPosition');
		if($(this).attr('rel') == '') {
			$(this).attr({rel: bg})
		}
		bg = bg.replace(' ','');
		bg = bg.split('px');
		$(this).stop().animate({
			backgroundPosition: (bg[0] - w) + 'px ' + bg[1] + 'px'
		}, 450, 'easeInBack');
	}, function() {
		$(this).stop().animate({
			backgroundPosition: $(this).attr('rel')
		}, 250, 'easeInBack');
	});

	$('.aniLine').hover(function() {
		var bg = $(this).css('backgroundPosition');
		if($(this).attr('title') == '') {
			$(this).attr({rel: bg, title: $(this).text()})
		}
		bg = bg.replace(' ','');
		bg = bg.split('px');
		$(this).stop().animate({
			backgroundPosition: parseInt(bg[0],10) + 20 + 'px bottom'
		}, 450, 'easeInBack');
	}, function() {
		$(this).stop().animate({
			backgroundPosition: $(this).attr('rel')
		}, 250, 'easeInBack');
	});

	$('#follow a').hover(function() {
		$('#follow h2 span').text($(this).text());
		$('#follow h2 em').stop().animate({
			marginLeft: -132
		}, 450, 'easeInBack');
	}, function() {
		$('#follow h2 em').stop().animate({
			marginLeft: 0
		}, 250, 'easeInBack');
	});

	$('.wifi').hover(function() {
		if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
			$('#wifi').show();
		} else {
			$('#wifi').stop().fadeTo(250,1);
		}
	}, function() {
		if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
			$('#wifi').hide();
		} else {
			$('#wifi').stop().fadeTo(100,0);
		}
	});

	$('.creators').hover(function() {
		if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
			$('#creators').show();
		} else {
			$('#creators').stop().fadeTo(250,1);
		}
	}, function() {
		setTimeout(function() {
			if(!$('#creators').hasClass('hover')) {
				if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
					$('#creators').show();
				} else {
					$('#creators').stop().fadeTo(250,0);
				}
			}
		}, 500);
	});


	$('#creators').hover(function() {
		$(this).addClass('hover');
	}, function() {
		$(this).removeClass('hover');
		if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
			$('#creators').css({display: 'none'});
		} else {
			$('#creators').stop().animate({
				opacity: 1
			}, 500, function() {
				$('#creators').css({display: 'none'});
			});
		}
	});


	//Switch search form
	$('.btn.search').bind('click',function() {
		$(this).parent('#venue').slideUp('slow').siblings('#search').slideDown(500);
		$('#stores').animate({
			minHeight: 230
		}, 450);
	});

	$('.btn.back').bind('click',function() {
		$(this).parent('#search').slideUp().siblings('#venue').slideDown(250);
		$('#stores').animate({
			minHeight: 300
		}, 200);
	});

	//Home
	$('#home').each(function() {
		$('#featured a').each(function() {
			$('#featured img').removeAttr('title');
		});

		//Slides
		$('#featured').append('<div class="title"><a href="' + $('#slider a:eq(0)').attr('href') + '">&nbsp;</a><h2>' + $('#slider a:eq(0)').attr('rev') + '</h2><h3>' + $('#slider a:eq(0)').attr('rel') + '</h3><p>' + $('#slider a:eq(0)').attr('title') + '</p></div>');
		$('#slider:not(.static)').each(function() {
			$(this).nivoSlider({
				effect: 'sliceUpDownLeft',
				slices: 4,
				animSpeed: 500,
				pauseTime: 10000,
				startSlide: 0,
				directionNav: true,
				directionNavHide: false,
				controlNav: false,
				controlNavThumbs: false,
				keyboardNav: false,
				pauseOnHover: true,
				manualAdvance: false,
				captionOpacity: 0.8,
				beforeChange: function() {
					if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
						$('#featured .title *').css({visibility: 'hidden'});
					} else {
						$('#featured .title *').fadeTo(150,0);
					}
				},
				afterChange: function() {
					setTimeout(function() {
						var item = $('.nivo-slice:eq(0)').css('backgroundImage');
							item = item.substr(19,item.length-24);
							item = $('#featured img[src*="' + item + '"]').parent();
							link = item.attr('href'),
							title = item.attr('rel'),
							subtitle = item.attr('rev'),
							txt = item.attr('title');
	
						$('#featured .title a').attr({href: link});
						$('#featured .title h2').text(subtitle);
						$('#featured .title h3').text(title);
						$('#featured .title p').text(txt);
						if($.browser.msie && parseInt(jQuery.browser.version) <= 8 ) {
							$('#featured .title *').css({visibility: 'visible'});
						} else {
							$('#featured .title *').fadeTo(250,1);
						}
					},150);
				}
			});
		});
	});

	//Onde encontrar
	$('#onde-encontrar').each(function() {

		setTimeout(function() {
			gmr = 'maps';

			$.ajax({
				url: 'http://www.suplicycafes.com.br/mapas/json/lojas/&loja_propria=1&revenda=2&parceiros=3',
				type: 'GET',
				dataType: 'script',
				timeout: 45000
			});
		}, 1000);
	});

	//Loja
	$('body#loja').each(function() {
		var code = $('.foursquare img');
		vid = parseInt(code.attr('longdesc'),10);

		$.ajax({
			dataType: 'script',
			timeout: 45000,
			type: 'GET',
			url: 'http://www.callbackist.com/proxy/?callbackist_key=agtjYWxsYmFja2lzdHIQCxIJUmVtb3RlQXBpGIknDA&callbackist_callback=foursquare&vid=' + vid,
			complete: function() {
				code.slideUp(250,0);
				setTimeout(function() {
					code.remove();
				}, 1000);
			},
			error: function() {
				$('#featured .foursquare').append('FourSquare server failed, try again.');
			}
		});

		//Switch boxes
		$('.btn.what').bind('click',function() {
			$('#what').slideToggle().siblings('#prizes').slideUp();
		});

		$('.btn.prizes').bind('click',function() {
			$('#prizes').slideToggle().siblings('#what').slideUp();
		});
	});

	//Fale conosco
	$('#fale-conosco').each(function() {
		able_combobox();
		$(this).find('select').combobox();

		$(this).find('.empty').each(function() {
			var field = $(this);
			$(this).bind({
				focus: function() {
					field.siblings('.label').hide();
				},
				blur: function() {
					if(field.val() == '') {
						field.siblings('.label').show();
					}
				},
				load: function() {
					if(field.val() != '') {
						field.siblings('.label').hide();
					}
				}
			});
		});

		$.validator.addMethod("watermark", function(value, element) {
			return value != element.title;
		}, 'Erro!');

		$('#tag .submit').bind({
			click: function(e) {
				$('#tag form').validate({
					submitHandler: function(form) {
						$.ajax({
							type: "POST",
							url: "http://suplicycafes.com.br/wp-content/themes/coffee/form.php",
							data: $(form).serialize(),
							timeout: 25000,
							beforeSend: function() {
								$('#tag form button[type=submit]').addClass('sending').text('Enviando');
							},
							success: function(msg){
								$('#tag form button[type=submit]')
									.removeClass('sending')
									.text(msg);
								setTimeout(function() {
									$('#tag form button[type=submit]').stop().animate({
										opacity: 0
									}, 250, function() {
										$('#tag .fancy')[0].reset();
										$('#tag form button[type=submit]').text('Enviar').fadeTo(250,1);
									});
								}, 2500);
							},
							error: function() {
								$('#tag form button[type=submit]').removeClass('sending').text('Enviar').parent().prev().html('<strong class="msg">Ops, erro no servidor...</strong>');
							}
						});
					},
					debug: false,
					focusInvalid: false,
					ignoreTitle: true,
					errorElement: 'em',
					rules: {
						name: {
							'watermark': true,
							minlength: 3
						},
						email: {
							required: true,
							email: true
						},
						tel: 'watermark',
						subject: 'watermark',
						message: 'watermark'
					}
				});
			}
		});
	});

	//O Suplicy
	$('#o-suplicy.mobi').each(function() {
		//Mount images
		$('.s3, .s4, .s5').each(function(index,element) {
			var i = index+1,
				elm = $(element);

			elm
				.fadeTo(500,1)
				.css({backgroundImage: 'url(http://suplicycafes.com.br/wp-content/themes/coffee/i/i/o-suplicy_0' + i + '.jpg)'});
		});
	});

	$('#o-suplicy:not(.mobi)').each(function() {

		$('.open').fadeTo(0,0);

		//Mosaic alpha effect
		$('.f').live('mouseenter',function () {
			$(this).stop().fadeTo(500,Math.floor((Math.random()*45))/100);
		});

		$('.f').live('mouseout',function () {
			$(this).stop().fadeTo(Math.floor((Math.random()*25000)/10),0);
		});

		//Mount images
		$('.s3, .s4, .s5').each(function(index,element) {
			var i = index+1,
				elm = $(element);

			elm
				.fadeTo(500,1)
				.css({backgroundImage: 'url(http://suplicycafes.com.br/wp-content/themes/coffee/i/i/o-suplicy_0' + i + '.jpg)'});

			//Make random
			function rand(){
				return (Math.round(Math.random())-0.5);
			}

			//Array with random order
			function fired(elm) {
				arr = elm.find('.f').toArray();
				arr.sort(rand);
				started(arr,0);
			};

			function started(arr,step) {
				var speed = Math.floor(Math.random()*500),
					total = arr.length;

				setTimeout(function() {
					$(arr[step]).animate({
						opacity: 0
					}, speed);

					if( step < total-1 ) {
						step += 1;
						started(arr,step);
					} else {
						var j = i;

						if(i == 2) {
							j = 5;
						} if(i == 3) {
							j = 2;
						}

						setTimeout(function() {
							$('.p' + j).find('h2').css({visibility: 'visible'}).animate({
								height: 36
							}, 250, 'easeOutCubic',function(){
								$('.p' + j).find('span').css({visibility: 'visible'}).animate({
									height: 12
								}, 150);
							});
						}, speed)
					}
				}, speed);
			}

			setTimeout(function() {
				fired(elm);
			}, Math.floor(Math.random()*500));

			var fs = '',
				qtd = '';

			switch(i) {
				case 1:
					qtd = 7;
					break;
				case 2:
					qtd = 17;
					break;
				case 3:
					qtd = 13;
					break;
			}

			for(k = 1; k < qtd; k++) {
				fs += '<div class="f f' + k + '"></div>';
			}

			elm.append(fs);
		});

		//Hash
		if(document.location.hash == '') {
			document.location.hash = 'nossa-historia'
		} else {
			$(document.location.hash).show();
		}

		$('.open').click(function(e) {
			if(document.location.hash != '#nossa-historia') {
				$(document.location.hash).hide();
			}

			document.location.hash = $(this).attr('href');
			verify();
			e.preventDefault();
		});

		$('.close').click(function(e) {
			location.hash = 'nossa-historia';
			close($(this).parent());
			e.preventDefault();
		});

		function close(it) {
			it.hide();
		}

		function verify() {
			$(document.location.hash).show();
		}
	});

	$('#o-suplicy').each(function() {
		//Show packs
		$('#subnav li a:not(.hover)').live('mouseenter click',function() {
			var a = $(this).attr('href'),
				pos = $(this).position();

			$('#subnav li a').removeClass('hover');
			$('#types .box').hide();

			$('.selected .line').css({left: 20 + pos.left});
			$(this).addClass('hover');
			$('#types ' + a).show();
		});
	});

	//Blog
	$('#blog').each(function() {

		$('#facebook').each(function() {
			$(this).html('<iframe src="http://www.facebook.com/plugins/likebox.php?id=105828422801782&amp;width=240&amp;connections=8&amp;stream=false&amp;header=false&amp;height=290" scrolling="no" frameborder="0" style="background: #FFF; overflow: hidden; width: 240px; height: 290px;" allowTransparency="true"></iframe>');
		})

		$('#featured').each(function(e) {
			var q = $(this).find('a').length,
				b = Math.ceil(q/12),
				p = 0;

			for(i = 0; i < b; i++) {
				$(this).append('<div id="b' + i + '" class="box"></div>');
			}

			for(j = 0; j < q; j++) {
				var c = Math.floor(j/12);
				$(this).find('a:eq(0)').appendTo('#b' + c);
			}

			$(this).wrapInner('<div id="mask"><div id="scroll">');
			$('#mask').after('<div id="pagination"><span class="previouspostslink">‹ Anterior</span><span class="nextpostslink">Próxima ›</span></div>')
			$('#scroll').css({width: (612*($('.box').length))});

			function check_status() {
				if (b <= 1) {
					$('.previouspostslink, .nextpostslink').fadeTo(250,0).css({cursor: 'default', display: 'inline-block'});
				} else if(p == 0) {
					$('.previouspostslink').fadeTo(250,0).css({cursor: 'default', display: 'inline-block'});
					$('.nextpostslink').fadeTo(250,1).css({cursor: 'pointer', display: 'inline-block'});
				} else if (p == b-1) {
					$('.nextpostslink').fadeTo(250,0).css({cursor: 'default', display: 'inline-block'});
					$('.previouspostslink').fadeTo(250,1).css({cursor: 'pointer', display: 'inline-block'});
				} else {
					$('.previouspostslink, .nextpostslink').fadeTo(250,1).css({cursor: 'pointer', display: 'inline-block'});
				}
			}

			check_status();

			$('.nextpostslink').live('click',function(e) {
				p += 1;
				if (p == b) {
					p = b-1;
					e.preventDefault();
				} else {
					$('#scroll').stop().animate({
						left: -612*p
					},500, 'easeInCubic');
				}
				check_status();
			});

			$('.previouspostslink').live('click',function(e) {
				p += -1;
				if (p < 0) {
					p = 0;
					e.preventDefault();
				} else {
					$('#scroll').stop().animate({
						left: -612*p
					},500, 'easeInCubic');
				}
				check_status();
			});
		});

		$('#pagination *').each(function() {
			$(this).find(':odd').addClass('odd');
		});
	});
});
