$(function(){var $pd_pagina_menu=$('#pd_pagina_menu'),$bf_menu_items=$pd_pagina_menu.find('a'),$pd_contened=$('#pd_contened'),$bf_pages=$pd_contened.children('.bf_page'),$pageTitle=$pd_pagina_menu.children('.title'),$bf_dishes=$('#bf_dishes > li > a'),
$pd_proyectos=$('#pd_proyectos'),$bg_image=$pd_proyectos.children('img'),$bf_overlay=$pd_proyectos.children('.bf_overlay'),$bf_prev=$('#bf_prev'),$bf_next=$('#bf_next'),
$bf_close=$('#bf_close'),$bf_gallery=$('#bf_gallery'),$bf_gallery_wrapper=$bf_gallery.children('.bf_gallery_wrapper'),
$bf_items=$bf_gallery_wrapper.find('.bf_gallery_item'),total_items=$bf_items.length,BGMap=(function(){var map,

$mapEl=$('#map'),

address='Contacto: Jon Palma </br> Tel: 410.7822 Cel: 614.153.5440</br>Email: info@palmadesigners.com </br> Chihuahua, México.',lat=28.6399,lng=-106.07317,
display=false,showMap=function(){hideMap();display=true;
var point=new google.maps.LatLng(lat,lng),mapOptions={zoom:2,center:point,mapTypeId:google.maps.MapTypeId.HYBRID,mapTypeControl:false,panControl:true,panControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT},zoomControl:true,zoomControlOptions:{style:google.maps.ZoomControlStyle.SMALL,position:google.maps.ControlPosition.TOP_RIGHT},streetViewControl:true,streetViewControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT}};map=new google.maps.Map(document.getElementById("map"),mapOptions);
map.setTilt(45);resizeMap();

var coordInfoWindow=new google.maps.InfoWindow({maxWidth:10}),latlngStr=address+"<br />LatLng: "+lat+" , "+lng+"<br />";coordInfoWindow.setContent(latlngStr);coordInfoWindow.setPosition(point);
coordInfoWindow.open(map);BGImageController.fadeBG(false)},resizeMap=function(){$mapEl.css({width:$(window).width()+'px',height:$(window).height()+'px'})},hideMap=function(){display=false;
$mapEl.empty()},active=function(){return display};return{showMap:showMap,hideMap:hideMap,active:active,resizeMap:resizeMap}})(),BGImageController=(function(){var changeBgImageDim=function(){var dim=getImageDim($bg_image);
$bg_image.css({width:dim.width+'px',height:dim.height+'px',left:dim.left+'px',top:dim.top+'px'});if(!BGMap.active())$bg_image.fadeIn(1500)},getImageDim=function($i){var $img=new Image();$img.src=$i.attr('src');var w_w=$(window).width(),w_h=$(window).height(),r_w=w_h/w_w,i_w=$img.width,i_h=$img.height,r_i=i_h/i_w,new_w,new_h,new_left,new_top;if(r_w>r_i){new_h=w_h;new_w=w_h/r_i}else{new_h=w_w*r_i;new_w=w_w}return{width:new_w,height:new_h,left:(w_w-new_w)/2,top:(w_h-new_h)/2}},fadeBG=function(dir){return $.Deferred(function(dfd){(dir)?$pd_proyectos.fadeIn(1000,dfd.resolve):$pd_proyectos.fadeOut(1500,dfd.resolve)}).promise()},preloadImages=function(){return $.Deferred(function(dfd){var Images=new Array();
$bf_items.each(function(i){var $item=$(this),$itemImg=$item.children('img'),itemImgSrc=$itemImg.attr('src'),itemBgImgSrc=$itemImg.data('bgimg');
Images.push(itemImgSrc);Images.push(itemBgImgSrc)});
var total_images=Images.length,loaded=0;for(var i=0;i<total_images;++i)
{$('<img/>').load(function(){++loaded;if(loaded===total_images)dfd.resolve()}).attr('src',Images[i])}}).promise()};return{changeBgImageDim:changeBgImageDim,getImageDim:getImageDim,preloadImages:preloadImages,fadeBG:fadeBG}})(),BGSlider=(function(){var animated=false,animSpeed=700,current=0,defaultImage='imagenes/proyectos/fondo-de-pantalla.jpg',init=function(position){initEventsHandler();slider(position)},stop=function(){$(document).unbind('mousewheel keydown');
$bf_prev.unbind('click');
$bf_next.unbind('click');
$bf_close.unbind('click');
$bf_items.children('img').unbind('click')},light=function(speed,val,hide)
{$bf_overlay.stop().fadeTo(speed,val,function(){if(hide)
$bf_overlay.hide()})},initEventsHandler=function(){$bf_prev.bind('click',function(e){navigate(0);return false});
$bf_next.bind('click',function(e){navigate(1);return false});$bf_close.bind('click',function(e){hideNavigation();
light(500,0.5);var $bf_item_current=$bf_items.eq(current),$heading=$bf_item_current.children('.bf_heading'),
$desc=$bf_item_current.children('.bf_desc');animated=true;stop();
$.when(animateHeadingDesc($heading,$desc,0)).done(function(){$bf_items.css('left','-20px').hide();Template.reset();
replaceBGImage(defaultImage)});return false});$bf_items.children('img').bind('click',function(){
$bf_gallery_wrapper.fadeOut();light(500,0,true)});$(document).bind('mousewheel',function(e,delta){
if(delta>0)navigate(0);else navigate(1);return false}).keydown(function(e){switch(e.which){case 37:navigate(0);
break;case 39:navigate(1);break}})},slider=function(position){
$bf_gallery_wrapper.show();showNavigation();
$bf_items.eq(position).show();light(500,0.8);current=position;var $bf_item_current=$bf_items.eq(current),
$heading=$bf_item_current.children('.bf_heading'),$desc=$bf_item_current.children('.bf_desc');animated=true;replaceBGImage($bf_item_current.children('img').data('bgimg'));animateHeadingDesc($heading,$desc,1)},showNavigation=function(){
$bf_prev.stop().animate({left:'10px'},animSpeed);$bf_next.stop().animate({right:'10px'},animSpeed)},hideNavigation=function(){$bf_prev.stop().animate({left:'-72px'},animSpeed);$bf_next.stop().animate({right:'-72px'},animSpeed)},exitFullscreen=function(){$bf_gallery_wrapper.fadeIn();light(500,0.8)},animateHeadingDesc=function($heading,$desc,dir){return $.Deferred(function(dfd){var paramHeading={},paramDesc={};if(dir){paramHeading.left='-10px';paramHeading.top='-10px';paramDesc.right='0px';paramDesc.bottom='0px'}else{paramHeading.left='20px';paramHeading.top='95px';paramDesc.right='40px';paramDesc.bottom='95px'}
$heading.stop().animate(paramHeading,animSpeed/3);$desc.stop().animate(paramDesc,animSpeed/3,dfd.resolve)}).promise()},navigate=function(dir){if(animated)return false;animated=true;$bf_item_current=$bf_items.eq(current);(dir)?++current:--current;if(current>total_items-1)current=0;else if(current<0)current=total_items-1;var $next_item=$bf_items.eq(current),$headingCurrent=$bf_item_current.children('.bf_heading'),$descCurrent=$bf_item_current.children('.bf_desc');
$.when(animateHeadingDesc($headingCurrent,$descCurrent,0)).done(function(){$bf_gallery_wrapper.css('overflow','hidden');var startingLeft=(dir)?'480px':'-520px',currentEndingLeft=(dir)?'-520px':'480px';$next_item.css('left',startingLeft).show();
$bf_item_current.stop().animate({left:currentEndingLeft},animSpeed);$next_item.stop().animate({left:'-20px'},animSpeed,function(){$bf_item_current.hide();$bf_gallery_wrapper.css('overflow','visible');var $heading=$next_item.children('.bf_heading'),$desc=$next_item.children('.bf_desc');$.when(animateHeadingDesc($heading,$desc,1)).done(function(){animated=false})});animateBGImage(dir,$next_item)})},animateBGImage=function(dir,$next_item){var $next_item_bgimage=$('<img src="'+$next_item.children('img').data('bgimg')+'" alt="image'+(current+1)+'" ></img>'),dim=BGImageController.getImageDim($next_item_bgimage),starting_left=(dir)?$(window).width():-dim.width+'px';
$next_item_bgimage.css({width:dim.width+'px',height:dim.height+'px',left:starting_left,top:dim.top+'px'}).insertAfter($bg_image).stop().animate({left:dim.left+'px'},animSpeed);var ending_left=(dir)?-$bg_image.width():$(window).width();$bg_image.stop().animate({left:ending_left+'px'},animSpeed,function(){$(this).remove();$bg_image=$next_item_bgimage;animated=false})},replaceBGImage=function(image){
var $next_bgimage=$('<img src="'+image+'" alt="image'+(current+1)+'" ></img>'),dim=BGImageController.getImageDim($next_bgimage);$next_bgimage.css({width:dim.width+'px',height:dim.height+'px',left:dim.left,top:dim.top+'px'}).insertBefore($bg_image);$bg_image.stop().fadeOut(animSpeed*2,function(){$(this).remove();
$bg_image=$next_bgimage;animated=false})};return{init:init,stop:stop,exitFullscreen:exitFullscreen}})(),Template=(function(){var animSpeed=700,init=function(){BGImageController.preloadImages();BGImageController.changeBgImageDim();initEventsHandler()},initEventsHandler=function(){
$bf_menu_items.bind('click',function(e){var $item=$(this);hidePageContent();var item=$(this).data('content');if(item==='visit'){BGMap.showMap()}else{$.when(BGImageController.fadeBG(true)).done(function(){BGMap.hideMap()});$('#'+$item.data('content')).show()}return false});$bf_dishes.bind('click',function(e){initPhotoSlider($(this).parent('li').index());return false});$(window).bind('resize',function(e){BGImageController.changeBgImageDim();BGMap.resizeMap()});$pd_proyectos.delegate('img','click',function(e){BGSlider.exitFullscreen();return false})},hidePageContent=function(){$bf_pages.hide();BGSlider.stop()},initPhotoSlider=function(position){BGSlider.init(position);
$bf_gallery.show().siblings().fadeOut(animSpeed/2);togglePageMenu(false)},togglePageMenu=function(dir){(dir)?$pd_pagina_menu.stop().animate({left:'0px'},animSpeed):$pd_pagina_menu.stop().animate({left:'-300px'},animSpeed)},reset=function(){
$bf_gallery.hide().siblings().fadeIn(animSpeed);togglePageMenu(true)};return{init:init,reset:reset}})();Template.init()});
