// varanger.js
ips.system.urlroot = window.location.host.indexOf('idium.n') !== -1 ? window.location.pathname.substring(0,window.location.pathname.indexOf('/',2)) + "/" : "/";
$(function() {
   var code = []; // Array for code pushes.
   $(document).keyup(function(event){
    if (code[1]) { // third esc will activate directedit
      if (ips.system.username === "") {
          alert("Du er ikke logget inn.");
          return false;
      }
      var loc = window.location + "";
      if (loc.indexOf('edit') !== -1) {
         window.location = loc + ";nocache=true;";
         return;
      }
      if (loc.indexOf('?') !== -1) {
         window.location = loc + ";template=edit";
      } else {
         window.location = loc + "?template=edit;";
         return;
      }
    } else if (event.keyCode === 27) {
        code.push(event.keyCode);
    } 
  });

  var $searchForm = $("#searchForm"), //CACHE
      $query = $searchForm.find(".query"),
      $label = $searchForm.find("label");
  $("a.search").bind("click", function(e){
    e.preventDefault();
    $searchForm.css("opacity","0.9").slideToggle();
  }); 
  if ($query.val() !== "") {$label.hide()}
  $searchForm.submit(function(){
     if ($query.val() === "") {return false}
  });
  $query.focus(function(){$label.hide()}).blur(function(){
    if ($(this).val() === "") {$label.show()}
  });
  $searchForm.find("label").click(function(){
    $query.focus();
  });
  var $header = $(".headerBg"); //CACHE
  $("a.mapfolder").click(function(e){
    
    var jsonurl = $(this).attr("href") + "template=gmapcoords;lang=" + ips.system.lang + ";";
    e.preventDefault();
    if (!$header.find('.map').get()[0]) {  // adds map if missing
      $("<div class='map'><div class='gmap' /></div>").appendTo($header.find('.header'));
    }
    $header.addClass("mapViewport").trigger({type:"loadGmapdata",  url:jsonurl});
  });
  $header.bind("loadGmapdata", function(event){
    $(this).addClass("loading");
    $.getJSON(event.url,function(data){
          $header.trigger({type:"loadGmap",jsondata:data});
    });
  }).bind("loadGmap",function(event){
    var $this = $(this).find("div.map"); // cache
    var myLatlng = new google.maps.LatLng(parseFloat(event.jsondata.latitude),parseFloat(event.jsondata.longitude));
    var zoomInt = event.jsondata.scale !== "" ? parseInt(event.jsondata.scale) : 6;
    var myOptions = {
      zoom: zoomInt,
      center: myLatlng,
      navigationControl: true,
      mapTypeControl: false,
      scaleControl: true,
      backgroundColor: "#99b3cc",
      mapTypeId: google.maps.MapTypeId.TERRAIN
    };
    var gmapref = $this.find(".gmap").get()[0];
    var gmap = new google.maps.Map(gmapref, myOptions);
    $(this).trigger({type:"loadMarkers", items:event.jsondata.items,map:gmap});
  }).bind("loadMarkers",function(event){
    $(event.items).each(function(){
      var latlng = new google.maps.LatLng(parseFloat(this.latitude),parseFloat(this.longitude));
      var marker = new google.maps.Marker({
        position: latlng, 
        map: event.map,
        icon: this.icon ? this.icon : "",
        title:this.name
      });
      var that = this; // Get _this_ in next closure
      //console.log("ref");
      google.maps.event.addListener(marker, 'click', function() {
        event.map.set_center(latlng);
        //console.log("ref2");
        if (that.scale === undefined) {that.scale = 10;} else {
          that.scale = parseInt(that.scale); // If not int gmap will crash
        }
        if (event.map.get_zoom() !== that.scale) {
          event.map.set_zoom(that.scale);
        }
        if (!that.content) {
          $.get(that.link + "?template=objectinfo;lang=" + ips.system.lang + ";", function(data){
            that.content = data;
            var infowindow = new google.maps.InfoWindow({content:that.content});
            infowindow.open(event.map,marker);
          });
        } else {
            var infowindow = new google.maps.InfoWindow({content:that.content});
            infowindow.open(event.map,marker);
        }
      });

    });
    $header.removeClass("loading");
  }); // END BINDS
    // SINGLE MAPS
    var $mapInContent = $("#content .map");
    if ($mapInContent.length) {
        $mapInContent.each(function(){
           var $this = $(this),
               jsondata = this,
               _rel = $this.attr("rel"),
               _pos = _rel.indexOf(',');
           this.latitude = _rel.substring(0,_pos),
           this.longitude = _rel.substring(_pos+1,40);
           var myLatlng = new google.maps.LatLng(parseFloat(this.latitude),parseFloat(this.longitude));
           var myOptions = {
                 zoom: 12,
                 center: myLatlng,
                 navigationControl: false,
                 mapTypeControl: false,
                 scaleControl: false,
                 backgroundColor: "#99b3cc",
                 mapTypeId: google.maps.MapTypeId.TERRAIN
               };
               var gmapref = $this.find(".gmap").get()[0];
               var gmap = new google.maps.Map(gmapref, myOptions);
               var marker = new google.maps.Marker({
                       position: myLatlng, 
                       map: gmap
              });
        });
    }




 (function(d){
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
    d.getElementsByTagName('head')[0].appendChild(js);
  }(document));


  //GALLERY
    var $gallery = $('#gallery');
    if ($gallery.length) {
      var gallery = $gallery.galleriffic('#thumbs-adv', {
          delay:                  4000,
          numThumbs:              8,
          preloadAhead:           4,
          enableTopPager:         true,
          enableBottomPager:      true,
          imageContainerSel:      '#slideshow-adv',
          controlsContainerSel:   '#controls-adv',
          captionContainerSel:    '#caption-adv',
          loadingContainerSel:    '#loading-adv',
          renderSSControls:       true,
          renderNavControls:      true,
          playLinkText:           ips.strings.slideshow,
          pauseLinkText:          ips.strings.pause,
          prevLinkText:           ips.strings.previous,
          nextLinkText:           ips.strings.next,
          nextPageLinkText:       ips.strings.next,
          prevPageLinkText:       ips.strings.previous,
          enableHistory:          true,
          autoStart:              false,
          onChange:               function(prevIndex, nextIndex) {
				    $('#thumbs-adv ul.thumbs').children()
				    .eq(prevIndex).fadeTo('slow', 0.5).end()
				    .eq(nextIndex).fadeTo('slow', 1.0);
                                //$(".nav-controls").hide();
                                $("#caption-adv").show();
                                },
          onTransitionOut:        undefined/*function() {
			        $('#slideshow-adv').fadeOut('slow');
				}*/,
	  onTransitionIn:         function() {       
                                //$(".nav-controls").hide();        
                                $("#caption-adv").show();                       
	                        $('#slideshow-adv').fadeIn('slow');
				},
	  onPageTransitionOut:    function(callback) {
	                        $('#thumbs-adv ul.thumbs').fadeOut('fast', callback);
				},
	  onPageTransitionIn:     function() {
	                        $('#thumbs-adv ul.thumbs').fadeIn('fast');
				}
      });
      $("#galleryWrapper").mouseover(function(){
           $(".nav-controls,.play").show();
      });
      $("#galleryWrapper").mouseout(function(){
            $(".nav-controls,.play").hide();
      });
    }
    $(".events dd,.events dt").live('mouseover',function(){
        $(this).addClass("hightlight").css("cursor","pointer");}
    ).live('mouseout',function(){
        $(this).removeClass("hightlight").css("cursor","none");
    });
    $(".events dd a").live('click',function(e){
         e.preventDefault();
    });
    $(".events dd").live('click',function(){
         window.location = $(this).find("a").attr("href");
    });
    $(".events dt").live('click',function(){
         $(this).next().click();
    });
    $(".prevMonthSmall a, .nextMonthSmall a").live("click", function(e){
        e.preventDefault();
        $.get($(this).attr("href") + ";ajax=true;", function(data){
            $("#calendarContainer").replaceWith(data);
        });
    });
    $(".externalLink, .download").attr("target", "_blank");
});
