var curImgID = 0; var isAPILoaded = false; function setImageHeight(w,h) { if (w>0 && h>0) { // var fh = 345*parseInt(h)/parseInt(w); var fh = parseInt(h); var fw = parseInt(w); $("#fullimage .loading").css({ left:45, height:Math.round(fh)+10, width:Math.round(fw) }); $("#fullimage").css({ height:Math.round(fh)-1,"margin-top":Math.round(-fh/2-20) }); if ($.browser.safari) $("#fullimage").css({ marginLeft:Math.round(-fw/2), width:Math.round(fw) }); else $("#fullimage").animate({ marginLeft:Math.round(-fw/2), width:Math.round(fw) }, 500 ); $("#close_fullimage").css({"margin-top":-fh/2-46}) $("#fullimage .loading img").css({ "margin-top":Math.round((fh-1))/2-32 }); } } function makeGalleryImage(container,j) { j.each(function() { var link = this; $(this).hover(function() { $("span",this).addClass("jsover"); },function() { $("span",this).removeClass("jsover"); }); $(link).click(function() { $("#overlay").css("opacity",0).show().fadeTo(500,0.9); //var row_index = $(".row",container).index($(this).parent().parent()[0]); var img_index = $("a",container).index(link); $("#fullimage > img.full").attr({ gallery_id:$(container).attr("gallery_id"),"image_index":img_index }); moveToImage(0); $("#fullimage").show(); return false; }); }); } function moveToImage(direction) { var full_image = $("#fullimage > img.full")[0]; var gallery_id = $(full_image).attr("gallery_id"); var container = $(".photos[gallery_id="+gallery_id+"]")[0]; if (!container) return; var img_index = parseInt($(full_image).attr("image_index"))+direction; // var row_index = parseInt($(full_image).attr("row_index")); var newimg = $("a:eq("+img_index+") img",container)[0]; // alert(newimg); if (!newimg) { newimg = $("a:eq("+img_index+") div",container)[0]; } if (!newimg) return; var fw = parseInt($(newimg).attr("rw")); var fh = parseInt($(newimg).attr("rh")); $("#gal_nav a").css("visibility","hidden"); if ($.browser.safari) $("#close_fullimage").css({ marginLeft:fw/2+20 }).show(); else $("#close_fullimage").show().animate({ marginLeft:fw/2+20},500); /* var img_id = $(newimg).attr("image_id"); if (img_id) $("#fullimage").attr({ "image_id":img_id });*/ var txt = $(".title",$(newimg).parent()[0]).text(); setImageHeight($(newimg).attr("rw"),$(newimg).attr("rh")); $("#fullimage .loading").hide(); $("#fullimage .loading img").hide(); var ival = setInterval(function() { $("#fullimage .loading").show(); $("#fullimage .loading img").show(); $(full_image).hide(); clearInterval(ival); ival = null; },100); $.preload([ $(newimg).parent().attr("href") ], { onFinish: function(data) { clearInterval(ival); ival = null; $("#fullimage > .loading").hide(); $(full_image).attr({ "image_index":img_index,"src":data.image }).fadeIn(300); $("#img_counter span").text((img_index+1)+"/"+$("a",container).length); if (img_index<=0) { $("#prev_fullimage").css("visibility","hidden"); } else { $("#prev_fullimage").css("visibility","visible"); } if (img_index>=$("a",container).length-1) { $("#next_fullimage").css("visibility","hidden"); } else { $("#next_fullimage").css("visibility","visible"); } } }) return false; } function closeGallery() { $("#fullimage .loading").stop(); $("#fullimage").stop().css({ width:2,height:150,"margin-left":-1,"margin-top":-1 }).hide(); $("#fullimage > img.full").hide(); $("#next_fullimage").stop().css("visibility","hidden"); $("#prev_fullimage").stop().css("visibility","hidden"); $("#close_fullimage").stop().css({ "margin-left":0,"margin-top":0 }).hide(); $("#fullimage").stop(); $("#overlay").fadeOut(500); return false; }; function prolog() { $("#overlay").click(closeGallery); $("#close_fullimage").click(closeGallery); if ($(".photos")[0]) { $(".photos").each(function() { makeGalleryImage(this,$("a",this)); }); $("#prev_fullimage").click(function() { return moveToImage(-1); }); $("#next_fullimage").click(function() { return moveToImage(+1); }); } } var ival = null; function getPositionLite(el) { var x = 0, y = 0; while(el) { x += el.offsetLeft || 0; y += el.offsetTop || 0; el = el.offsetParent; } return { x:x, y:y }; } function getSizeLite(el){ return { wb:el.offsetWidth||0, hb:el.offsetHeight||0 }; } function hideChildMenu() { $("#submenu-balloon").hide(); $("#childmenus > ul").hide(); if (!ival) return; clearInterval(ival); ival = null; } function bindMenu() { var mainpos = getPositionLite($("#mainmenu")[0]).x; $("#mainmenu a").hover(function() { hideChildMenu(); var child_name = $(this).attr("item_id"); pos = getPositionLite($(this).parent()[0]); size = getSizeLite(this); var childmenu = $("#childmenus .childmenu[parent_id='"+child_name+"']")[0]; if (childmenu) { $("#submenu-balloon").css("left",pos.x-mainpos+size.wb/2-10).show(); $(childmenu).css("left",pos.x-mainpos).show(); } },function() { ival = setInterval(hideChildMenu,400); }); $("#childmenus .childmenu").hover(function() { if (!ival) return; clearInterval(ival); ival = null; },function() { ival = setInterval(hideChildMenu,400); }); } function showMap() { function CustomMarker(latlng, map) { google.maps.OverlayView.call(this); this.latlng_ = latlng; // Once the LatLng and text are set, add the overlay to the map. This will // trigger a call to panes_changed which should in turn call draw. this.setMap(map); } CustomMarker.prototype = new google.maps.OverlayView(); CustomMarker.prototype.draw = function() { var me = this; // Check if the div has been created. var div = this.div_; if (!div) { // Create a overlay text DIV div = this.div_ = document.createElement('DIV'); $(div).css({position:"absolute", background:"white",padding:5,color:"#333"}).text(lang=="en" ? "Restaurant \"Charlotte-cafe\"" : "Ресторан \"Шарлоткафе\""); // Then add the overlay to the DOM var panes = this.getPanes(); panes.overlayLayer.appendChild(div); } // Position the overlay var point = this.getProjection().fromLatLngToDivPixel(this.latlng_); if (point) { div.style.left = point.x + 'px'; div.style.top = point.y + 'px'; } }; CustomMarker.prototype.remove = function() { // Check if the overlay was on the map and needs to be removed. if (this.div_) { this.div_.parentNode.removeChild(this.div_); this.div_ = null; } }; $("#fullimage #map").show(); // $("#fullimage .loading").hide(); var ll = new google.maps.LatLng(59.934634, 30.323167); var map = new google.maps.Map(document.getElementById("map"),{ center:ll, zoom:15, mapTypeId: google.maps.MapTypeId.ROADMAP, navigationControl: true, mapTypeControl: false, navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL} }); google.maps.event.addListener(map, 'tilesloaded', function() { $("#fullimage .loading").hide(); $("#fullimage #map").show(); }); var point = new google.maps.LatLng(59.934634, 30.323167); var marker = new google.maps.Marker({ position: point, map: map }); overlay = new CustomMarker(point, map); } function loadMap() { google.load("maps", "3.x", {"callback" : showMap,other_params:"sensor=false&hl="+lang }); } function initLoader() { var script = document.createElement("script"); script.src = "http://www.google.com/jsapi?key=ABQIAAAA1ZfSf4A_YequRMYC5yamDBTqZRFxbi1tdgjZ-pvYsIao_RGchhSdwfYkUE-0u3iEL4oVno6th2IDLw&callback=loadMap&hl="+lang; script.type = "text/javascript"; document.getElementsByTagName("head")[0].appendChild(script); } function openwindow() { var w = 809+($.browser.safari ? 0 : 0); var h = 613+($.browser.safari ? 5 : 0); window.open("/about/3d/","3dtour","menubar=0,resizable=0,location=0,status=0,scrollbars=0,width="+w+",height="+h); } $(document).ready(function() { prolog(); $("#3dtour").click(function() { openwindow(); return false; }); $("#press .items .item a").hover(function() { $("span",this).addClass("jsover"); },function() { $("span",this).removeClass("jsover"); }); $("#about_gallery").click(function() { $(".photos a:first").trigger('click'); return false; }); bindMenu(); $("#map-link").click(function() { if ($.browser.safari) { $("#close_fullimage,#fullimage").css({ "position":"absolute" }); } $("#overlay").css("opacity",0).show().fadeTo(500,0.9); if ($.browser.safari) $("#close_fullimage").css({ marginLeft:320 }).show(); else $("#close_fullimage").show().animate({ marginLeft:320},500); $("#fullimage").show(); $("#fullimage .loading").css({ "z-index":10,position:"absolute" }).show(); $("#fullimage .loading img").show(); setImageHeight(600,400,""); if (!isAPILoaded) { initLoader(); } else loadMap(); return false; }); if ($.browser.msie && $.browser.version<7) { $("#last_news .item .inner").hover(function() { $(this).addClass("jsover"); },function() { $(this).removeClass("jsover"); }); } $("#desserts #next").click(function() { var sc = parseInt($("#desserts .gallery")[0].scrollLeft); $("#desserts .gallery")[0].scrollLeft = sc+150; return false; }); $("#desserts #prev").click(function() { var sc = $("#desserts .gallery")[0].scrollLeft; $("#desserts .gallery")[0].scrollLeft = sc-150; return false; }); if ($.browser.msie && $.browser.version<=7 && $("#desserts #child-balloon")[0] && $("#desserts #child-balloon")[0].offsetWidth>270) $("#desserts #child-balloon").css("width",270); $("#desserts .gallery a").click(function() { $("#desserts .selected").removeClass("selected"); $(this).addClass("selected"); var newimg = $("img:first",this); var fw = parseInt($(newimg).attr("rw")); var fh = parseInt($(newimg).attr("rh")); $("#desserts .loading").hide(); var ival = setInterval(function() { $("#desserts .loading").show(); $("#desserts #fullimage").hide(); clearInterval(ival); ival = null; },100); var txt = $("p:first",this).text(); $.preload([ $(this).attr("href") ], { onFinish: function(data) { clearInterval(ival); ival = null; $("#desserts .loading").hide(); if (txt) { $("#desserts #child-balloon").hide(); if (($.browser.msie && $.browser.version<=7)) $("#desserts #child-balloon").css("width","auto"); $("#desserts #child-balloon span").text(txt); if ( (($.browser.msie && $.browser.version<=7)) && $("#desserts #child-balloon")[0].offsetWidth>270) { $("#desserts #child-balloon").css("width",270); } $("#desserts #child-balloon").css({ left:"50%","margin-left":-Math.round(fw/2) }); $("#desserts #child-balloon").show(); } else $("#desserts #child-balloon").hide(); $("#desserts #fullimage").show(); $("#desserts #fullimage img").attr({ "src":data.image }).fadeIn(300); } }) return false; }); });