/* Author:

*/
var ATOM = {};


ATOM.loadPlugins = function(){

  
  this.handleTopNav();
  this.bCarousel.init(".content>.bCarousel");
    ATOM.tabs.init(".tabs");
    ATOM.setExternal();
    ATOM.rotateBanners();
    ATOM.handleTeam();
    ATOM.workURL();
    ATOM.customNav();
    ATOM.moveThumbnailsDown();
    ATOM.setupTooltips();
    ATOM.loadMap();

    

}




$(function(){

  ATOM.loadPlugins();

    $(".arrow").hover(function() {
    $(this).animate({opacity: "0.3"}, "fast");
  }, function() {
    $(this).animate({opacity: "1.0"}, "fast");
  });


});

ATOM.loadMap = function() {
  var mapId = "map";

  if(document.getElementById(mapId) == null) {
    return;
  
  }
  
  var mapsElement = document.getElementById(mapId);

var coords = "25.096535,55.158582,16";  
coords = coords.split(",");
if (coords.length != 3) {
alert(coords);
    mapsElement.display = "none";
    return;
  }

  var latlng = new google.maps.LatLng(parseFloat(coords[0]),parseFloat(coords[1]));
  var myOptions = {
    zoom: parseFloat(coords[2]),
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    disableDefaultUI: true,
    mapTypeControl: true,
    zoomControl: true,
    zoomControlOptions: {
      style: google.maps.ZoomControlStyle.SMALL
    }
  };
  
  var map = new google.maps.Map(document.getElementById(mapId), myOptions);
  
  var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title:"ATOM FZ-LLC",
    animation: google.maps.Animation.DROP
  });   
}




ATOM.setupTooltips = function()
{
    
    $(".workthumb").tipTip();
    
}

ATOM.customNav = function()
{


    $('a.nav-forward').live("click",(function(){



       var links = $('#top-nav a');

       var position = parseInt($(this).attr('rel'));
      
       var nextLink = links.eq((position + 1) % links.length);
      $('#top-nav a').removeClass("active");
        nextLink.addClass("active");


        //todo: refactor as same used in handleTopNav


      $('body').append('<div class="sitebox"></div>');
      $('.sitebox').css({display:"none",backgroundColor:"#ffffff",opacity:0.2,position:"fixed",top:0,left:0,width:"100%",height:"100%"});

      
      $.ajax({
        url: nextLink.attr("href"),
        success: function(data) {
          $('.page-wrapper').css({width:2220+'px'});
          $('.page-wrapper').append($(data).find(".page-wrapper").html());

          $('.page-wrapper').animate({marginLeft:-1110},{duration:1000,easing:"easeInOutQuart",queue:false,complete:function(){
          $('.sitebox').fadeOut("fast",function(){$('.sitebox').remove();});
               
            $('.page-wrapper .page').eq(0).remove();
            $('.page-wrapper').css({marginLeft:0,width:1110});

          if($(".content>.bCarousel").length)
          ATOM.bCarousel.init(".bCarousel");

            ATOM.workURL();
                    ATOM.rotateBanners();
            if($(".tabs").length)
            ATOM.tabs.init(".tabs");
                    if($(".narrow-left-col").length)
                    ATOM.tabs.init(".narrow-left-col");
                   ATOM.handleTeam();
                    ATOM.setExternal();
            ATOM.setupTooltips();
              ATOM.moveThumbnailsDown();
            ATOM.loadMap();
                    //update position

                    $('#navigation a.nav-forward').attr('rel',position + 1);

            }
          });
    
              }
      });



    }));

}


ATOM.handleTeam = function()
{

  
  
    $('.team li a').bind("click",(function(){

       $(this).parent().parent().find("a").removeClass("active");
       $(this).addClass("active");
      
      $.ajax({
        url: $(this).attr("href"),
        dataType:'json',
        success: function( data ) {

     
    
           $('#banner img:first-child').attr('src',data.ImageURL).attr('width',880).attr('height',325).fadeIn("slow");
           $('#banner .inspiration-copy').text(data.Caption).fadeIn();
          
          
          $('#bio').css("display:hidden");
          
          
          var bio = $('<p></p>');
          $('#bio>div').html(bio.append(data.Bio));
          $('#bio>div').css("display:block;");

          }
        });
      
      
  
    }));
 
}


ATOM.workURL = function()
{

    $('ul.worklist li a').bind("click",(function()
    {

       var url = $(this).attr("href");

       ATOM.handleWork.init(url);
      return false;

    }));

}


ATOM.setupWorkNavigation = function()
{

    $('.down').bind("click",(function()
    {

        ATOM.moveThumbnailsDown();

    }));

    

}




ATOM.rotateBanners = function()
{

    var total = $("#banner .wrapper li").length;
    ATOM.cIndex = 0;
    var allowEvent = true;
    
   
    
    $("#banner .wrapper li").each(function(i){
      if(i==0)
      $(this).css({display:"block"});
      $(this).data("eIndex",i);
    });
    
    
    $("#banner").append(generateSteps());
    
    $(".stepper").delegate("li","click",function(){
      
      if(allowEvent == true && !$(this).find("a[class='active']").length) {
        allowEvent = false;
        $(".stepper li a.active").removeClass("active");
        $(this).find("a").addClass("active");
        $("#banner .wrapper li:visible").fadeOut("slow");
        $("#banner .wrapper li").eq($(this).index()).fadeIn("slow",function(){allowEvent=true;});
        ATOM.cIndex = $(this).index();
      }
      return false;
    });
    
    
  //Generate Banner steps
  function generateSteps() {
    
    if($(".stepper").length){
      $(".stepper").remove();
    }
    
    var stepper = $('<div class="stepper"></div>');
    stepper.append('<ul></ul>');
    for(i=0;i<total;i++) {
      stepper.find("ul").append('<li><a href="#">&#x25CB;</a></li>');
    }
    stepper.find("li").eq(0).find("a").addClass("active");
    
    return stepper;
  }    
    
  
  


    
    
    

};




ATOM.setExternal = function()
{
    $("a[rel='external']").bind("click",(function(){
     this.target = "_blank";
})
)};


ATOM.handleTopNav = function(){

    var position = 0;
  
  $("#top-nav a").bind("click",function(){


        var links = $('#top-nav a');
        position = links.index($(this));



    if(!$(this).hasClass("active")) {
    
      $(this).parent().parent().find("a.active").removeClass("active");
      $(this).addClass("active");
      
      var purl = $(this).attr("href");

      $('body').append('<div class="sitebox"></div>');
      $('.sitebox').css({display:"none",backgroundColor:"#ffffff",position:"fixed",top:0,left:0,width:"100%",height:"100%"});
      
      $.ajax({
        url: purl,
        success: function(data) {
          $('.page-wrapper').css({width:2220+'px'});
          $('.page-wrapper').append($(data).find(".page-wrapper").html());
          
          $('.page-wrapper').animate({marginLeft:-1110},{duration:1000,easing:"easeInOutQuart",queue:false,complete:function(){
        //  $('.sitebox').fadeOut("fast",function(){$('.sitebox').remove();});


          $('.page-wrapper .page').eq(0).remove();
          $('.page-wrapper').css({marginLeft:0,width:1110});
           $('.sitebox').remove();
          if($(".content>.bCarousel").length)
          ATOM.bCarousel.init(".bCarousel");
            
            ATOM.workURL();
                    ATOM.rotateBanners();
            if($(".tabs").length)
            ATOM.tabs.init(".tabs");
                      if($(".narrow-left-col").length)
                    ATOM.tabs.init(".narrow-left-col");
                    ATOM.handleTeam();
                    ATOM.setExternal();
            ATOM.setupTooltips();
          ATOM.moveThumbnailsDown();
ATOM.loadMap();
                    $('#navigation a.nav-forward').attr('rel',position);

                
             


            }
          });
        }
      });
    }
          
    return false;
  });
  
  
}


ATOM.bCarousel = (function(){
  
  var total,
    carousel,
    stepper,
    bWidth;
    
    function generateSteps() {
      stepper.append('<ul></ul>');
      for(i=0;i<total;i++) {
        if(i==0)
        stepper.find("ul").append('<li><a class="active" href="#"><strong>&#x25CB;</strong></a></li>');
        else
        stepper.find("ul").append('<li><a href="#"><strong>&#x25CB;</strong></a></li>');
      }
      carousel.append(stepper);
      stepper.find("a").bind("click",function(){
        var aIndex = $(this).parent().index();
        $(this).parent().parent().find("a").removeClass("active");
        $(this).addClass("active");
        var isActive = true;
        if(isActive) {
          isActive = false;  
          carousel.find(".banner>ul").animate({marginLeft:-(aIndex*bWidth)},{duration:800,easing:"easeInOutQuart",queue:false,complete:function(){
          isActive = true;
          }  
        });
        }
        return false;
      });
    }
    
  return {
    
    init: function(el) {
      carousel = $(el);
      total = carousel.find(".banner>ul>li").length;
      bWidth = parseInt(carousel.find(".banner").css("width"))+2;
      carousel.find(".banner>ul").css({width:(bWidth)*(total)});
      if($(".bCarousel .stepper").length)
      $(".bCarousel .stepper").remove();
      stepper = $('<div class="stepper"></div>');
      generateSteps();        
    }
    
  }        
  
})();


ATOM.moveThumbnailsDown = function() {
  
  var wrapperHeight = $(".work").height();
  var scrollHeight = $(".worklist").height();

  
  
    $('.work').delegate(".thumbs","mousemove",function(e){
    var pos = $(this).offset();
    var dist = (e.clientY-pos.top)*(scrollHeight-wrapperHeight)/(wrapperHeight-5);
    
    $(".thumbs").scrollTop(dist);
    });

}



ATOM.tabs = (function(){
  
  
  return {
    
    init:function(el) {
      $(".tablist a").eq(0).addClass("active");
  

      $(".tabcontent>div:first-child").fadeIn("slow");


      $(".tablist a").bind("click",function(){

        
       var cIndex = $(this).parent().index();
      $(this).parent().parent().find("a").removeClass("active");
     $(this).addClass("active");
    $(el).find(".tabcontent>div.detail").css({display:"none"});
  

   $(el).find(".tabcontent>div.detail").eq(cIndex).fadeIn("slow");



    return false;
   });
    
      
    }
    
  }
  
  
})();


  

ATOM.handleWork = (function(){
  var projectDetails="";
  
  function updatePreviews(){

   var list = projectDetails.Images;
    var markup = '<ul class="wrapper">';
    for(i=0;i<=list.length-1;i++) {
      markup += '<li><img src="'+list[i]+'" alt="" width="627" height="325" /></li>';
    }
    markup+="</ul>";
    $("#banner .wrapper").remove();
    $("#banner").append(markup);
    $("#project").text(projectDetails.Name + " : " + projectDetails.Caption);
    $("#brief").html("<strong>Brief: </strong>" + projectDetails.Brief);
    $("#lowdown").html("<strong>Lowdown: </strong>" + projectDetails.Details);
     ATOM.rotateBanners();
  }  
  
  return {
    
    init:function(path) {
     
       
      $.ajax({
        url: path,
        dataType:'json',
        success: function(data) {
            projectDetails = data;
            updatePreviews();
           
        }});
      
      return false;
    },
    processFeed:function() {

        updatePreviews();
          return false;

    }

    
        
  }
  
  
})();

(function ($) {

  // Log all jQuery AJAX requests to Google Analytics
  $(document).ajaxSend(function(event, xhr, settings){
    if (typeof _gaq !== "undefined" && _gaq !== null) {
      _gaq.push(['_trackPageview', settings.url]);
    }
  });

})(jQuery);


(function($){
    var _dataFn = $.fn.data;
    $.fn.data = function(key, val){
        if (typeof val !== 'undefined'){ 
            $.expr.attrHandle[key] = function(elem){
                return $(elem).attr(key) || $(elem).data(key);
            };
        }
        return _dataFn.apply(this, arguments);
    };
})(jQuery);

