(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery);

(function($) {
  $.vAlign = function() {
  	return this.each(function(i){
  	  var ah = $(this).height();
  	  var ph = $(this).parent().height();
  	  var mh = Math.ceil((ph-ah) / 2);
  	  $(this).css('margin-top', mh);
  	});
  };
})(jQuery);

this.showRecord = function(link) {
  var overlay_box = $(document.createElement('div')).attr('id', 'contact-overlay')
    .append('<div class="inner"><a href="#" class="contact-close"><img src="/media/i/overlay-close.gif" alt="" /></a></div>');
  $(".navwrapper").append(overlay_box);
  if($(window).scrollTop() > $(".navwrapper").position().top) {
    $(window).scrollTop($(".navwrapper").position().top)
  }
  $.get(link, function(data) {
    $("#contact-overlay .inner").append(data)
      .parent().slideDown("fast");
    $("#darkLayer").css('height', $(document).height()+'px').fadeIn("fast");
  });  
}

$(function(){
  
    $("a[href^='http']").attr("target", "_blank");
  
    jQuery.preLoadImages("media/i/nav_on_left.jpg", "media/i/nav_on_right.jpg", 
      "media/i/nav_hover_bg.jpg", "media/i/subnav-hover.gif", "media/i/nav_on_right_active.jpg")
  
    $("body").append('<div id="darkLayer" class="darkClass" display="none"></div>');
  
    $(".nav > li").hover(function() {
        $(".nav li").removeClass('on')
              .prev().removeClass('on-left');
        $(this).addClass('on')
                        .prev().addClass('on-left');
        }, function() {
        $(this).removeClass('on')
                        .prev().removeClass('on-left');
    })
    
    $(".navwrapper > ul > li > a").each(function() {
      width = $(this).width();
      if(width>120) {
        $(this).css('width', '128px').css('padding-top', '10px');
      }
    })

    $(".navwrapper > ul > li:last").hover(function() {
      $(".navwrapper .nav").addClass('last-hover');
    }, function() {
      $(".navwrapper .nav").removeClass('last-hover');
    });
    $(".navwrapper li.active").each(function() {
      $(this)
      .removeClass('active')
      .closest(".navwrapper > ul > li")
      .addClass('active')
      .prev("li").addClass("active-left");
      if($(this).attr('id')=="item_6") {
        $(".navwrapper .nav").addClass('last-hover-active');
      }
    });

    $(".navwrapper > ul > li:last").hover(function() {
      $(".navwrapper .nav").addClass('last-hover');
    }, function() {
      $(".navwrapper .nav").removeClass('last-hover');
    })
    
    $("a.athlete-popup").closest("tr").find("td").click(function(ev) {
      ev.preventDefault();
      showRecord($(this).parent().find("a:first").attr('href'));
    }).closest("tr").hover(function() {
      $(this).addClass("hover")
    }, function() {
      $(this).removeClass("hover")
    });

		$("#contact-overlay .search-more a").live("click", function(ev) {
		  ev.preventDefault();
		  var link = $(this);
		  $.get($(this).attr('href'), function(data) {
		    link.parent().remove();
		    cd = $("#contact-overlay .inner").height()+46;
	      $("#contact-overlay .inner").append($(".years", data).html());
	      $("#darkLayer").css('height', $(document).height()+'px');
        //$(window).scrollTop(cd);
	      var search_height = $("#contact-overlay .inner").height();
        if(search_height > 420 ) {
          var move_to = search_height+120;
          var footer_top = $("#footer").position().top;
          var search_height = $("#contact-overlay").height();
          if(footer_top < move_to+110 ) {
            var move_to = move_to+110-footer_top;
            $("#footer .inner").animate({ top:move_to }, 0, function() {
              $(".darkClass").css('height', $(document).height()+'px');
            });
          }
        }
      }, 'html');		  
		})


  
    $(".navwrapper li.active")
      .removeClass('active')
      .closest(".navwrapper > ul > li")
      .addClass('active')
      .prev("li").addClass("active-left");

    var no_fp = $("#wrap ul li").length;
    if (no_fp > 1 ) {
      $("#wrap").jCarouselLite({
          btnNext: "#next-button",
          btnPrev: "#prev-button",
          visible: 1,
          circular: true,
          auto: 10000,
          btnGo: [
            ".selector .item-1",
            ".selector .item-2",
            ".selector .item-3",
            ".selector .item-4"
          ],
          beforeStart: function(element) {
            $("#wrap p.desc span").fadeOut("fast");
            $("#wrap p.counter span").fadeOut("fast");
          },
          afterEnd: function(element) {
            var alt = $("p", element).html();  
            var link = $("a", element).attr('href');
            var cur = $(element).attr('class').slice(5);
            var ws = $("#wrap p.desc span").html(alt).show();
            ws.css('padding-top', Math.ceil((70-ws.height())/2));
            $("#wrap a.more").attr('href', link);
            $("#wrap p.counter span").html("<strong>"+cur+"</strong>/"+no_fp).fadeIn();
            $(".selector li").removeClass('active')
              .prev().removeClass('active-left');
            idx = parseInt($(element).attr('class').slice(5))-1;
            var selected = $(".selector li:eq("+idx+")");
            selected.addClass('active')
              .prev().addClass('active-left');

          }          
      });
      var ws = $("#wrap p.desc span").html($("#wrap li.item-1:first p").text());
      ws.css('padding-top', Math.ceil((70-ws.height())/2));
  		$("#wrap").hover(function() {
  		  $("#prevNext").stop(true, true).fadeIn("fast")
  		}, function() {
  		  $("#prevNext").stop(true, true).fadeOut("fast")
  		})
  		$("#wrap").click(function(e) {
  		  e.preventDefault();
  		  window.location.href = $("a.more", this).attr('href');
  		})
    }
  
    var no_news = $("#news-wrap ul li").length;
    if (no_news > 1 ) {
      $("#news-wrap").jCarouselLite({
          btnNext: "#next-button",
          btnPrev: "#prev-button",
          visible: 1,
          circular: true,
          auto: 10000,
          beforeStart: function(element) {
            $("#news-info h2").fadeOut("fast");
            $("#news-info p.desc span").fadeOut("fast");
            $("#news-wrap p.counter span").fadeOut("fast");
          },
          afterEnd: function(element) {
            var alt = $("img", element).attr('alt');
            var desc = $("img", element).parent().next().html();
            var link = $("a", element).attr('href');
            var cur = $(element).attr('class').slice(5);
            $("#news-info h2 span").text(alt).parent().fadeIn();
            $("#news-info p.desc span").html(desc).fadeIn();
            $("#news-info a.more").attr('href', link);
            $("#news-wrap p.counter span").html("<strong>"+cur+"</strong>/"+no_news).fadeIn();
          }
      });
  		$("#news-wrap").hover(function() {
  		  $("#prevNext").stop(true, true).fadeIn("fast")
  		}, function() {
  		  $("#prevNext").stop(true, true).fadeOut("fast")
  		})
    }

    var no_ath = $("#athlete-wrap ul li").length;
    if (no_ath > 1) {
      $("#athlete-wrap").jCarouselLite({
          btnNext: "#next-button",
          btnPrev: "#prev-button",
          visible: 1,
          circular: true,
          auto: 10000,
          beforeStart: function(element) {
            $("#athlete-wrap p.counter span").fadeOut("fast");
          },
          afterEnd: function(element) {
            var cur = $(element).attr('class').slice(5);
            $("#athlete-wrap p.counter span").html("<strong>"+cur+"</strong>/"+no_ath).fadeIn();
          }
      });
  		$("#athlete-wrap").hover(function() {
  		  $("#prevNext").stop(true, true).fadeIn("fast")
  		}, function() {
  		  $("#prevNext").stop(true, true).fadeOut("fast")
  		})
    }

    var no_images = $("#gallery-wrap ul li").length;
    if (no_images > 1) {
      $("#gallery-wrap").jCarouselLite({
          btnNext: "#next-button",
          btnPrev: "#prev-button",
          visible: 1,
          circular: true,
          beforeStart: function(element) {
            $("#gallery-wrap p.counter span").fadeOut("fast");
            $("#gallery-wrap p.desc span").fadeOut("fast");
          },
          afterEnd: function(element) {
            var cur = $(element).attr('class').slice(5);
            var alt = $("img", element).attr('alt');  
            var ws = $("#gallery-wrap p.desc span").html(alt).show();
            ws.css('padding-top', Math.ceil((70-ws.height())/2));
            $("#gallery-wrap p.counter span").html("<strong>"+cur+"</strong>/"+no_images).fadeIn();
          }
      });
  		$("#gallery-wrap").hover(function() {
  		  $("#prevNext").stop(true, true).fadeIn("fast")
  		}, function() {
  		  $("#prevNext").stop(true, true).fadeOut("fast")
  		})
      var ws = $("#gallery-wrap p.desc span").html($("#gallery-wrap li.item-1 img").attr('alt'));
      ws.css('padding-top', Math.ceil((70-ws.height())/2));
    }

    var no_images = $("#gallery-wrap ul li").length;
    if (no_images > 1) {
      $("#gallery-wrap").jCarouselLite({
          btnNext: "#next-button",
          btnPrev: "#prev-button",
          visible: 1,
          circular: true,
          beforeStart: function(element) {
            $("#gallery-wrap p.counter span").fadeOut("fast");
            $("#gallery-wrap p.desc span").fadeOut("fast");
          },
          afterEnd: function(element) {
            var cur = $(element).attr('class').slice(5);
            var alt = $("img", element).attr('alt');  
            var ws = $("#gallery-wrap p.desc span").html(alt).show();
            ws.css('padding-top', Math.ceil((70-ws.height())/2));
            $("#gallery-wrap p.counter span").html("<strong>"+cur+"</strong>/"+no_images).fadeIn();
          }
      });
  		$("#gallery-wrap").hover(function() {
  		  $("#prevNext").stop(true, true).fadeIn("fast")
  		}, function() {
  		  $("#prevNext").stop(true, true).fadeOut("fast")
  		})
      var ws = $("#gallery-wrap p.desc span").html($("#gallery-wrap li.item-1 img").attr('alt'));
      ws.css('padding-top', Math.ceil((70-ws.height())/2));
    }
		
		$("#search form").submit(function() {
		  $(".darkClass").css('height', $(document).height()+'px');
      openSearch($("input[name=keywords]", this).val());
		  return false;
		})

		$("#search-results form").live("submit", function(ev) {
		  ev.preventDefault();
		  $("#search-results .results").slideUp();
		  $("#search-results").animate({ height:600 }, "fast");
		  $("#footer .inner").animate({ top:initial_footer }, "fast");
		  val = $("input[name=keywords]", this).val();
		  $.get("/api/search", {keywords:val}, function(data) {
		      data = $(data).find('.results').html();
		      $("#search-results .results").html(data).slideDown();
		  })
		  
		  return false;
		})
		
		$("#search-results a.close").live("click", function() {
		  closeSearch();
		  return false;
		});
		
		$("#search-results .search-more a").live("click", function(ev) {
		  ev.preventDefault();
		  $(this).fadeOut("fast", function() {
		    $("#search-results .search-more").remove();
		    $.get($(this).attr('href'), function(data) {
		      data = $(data).find('.results').html();
		      $("#search-results .results").append(data);
		      var search_height = $("#search-results .results").height();
          if(search_height > 420 ) {
            var move_to = search_height+120;
            $("#search-results").animate({ height:move_to }, "fast");
            var footer_top = $("#footer").position().top;
            var search_height = $("#search-results").height();
            if(footer_top < move_to+110 ) {
              var move_to = move_to+110-footer_top;
              $("#footer .inner").animate({ top:move_to }, "fast", function() {
                $(".darkClass").css('height', $(document).height()+'px');
              });
            }
          }
	      });
	      
		  })
		  return false;
		})
		
		$("a.contact-close").live("click", function(ev) {
		  ev.preventDefault();
      $("#contact-overlay").slideUp("fast", function() {
        $(this).remove();
      });
      $(".darkClass").css('height', $(document).height()+'px').fadeOut("fast");
      $("#footer .inner").animate({ top:0 }, "fast");
		})
		
		$("a.enquiry").click(function(ev) {
		  ev.preventDefault();
		  var overlay_box = $(document.createElement('div')).attr('id', 'contact-overlay')
		    .append('<div class="inner"><a href="#" class="contact-close"><img src="/media/i/overlay-close.gif" alt="" /></a></div>');
		  $(".navwrapper").append(overlay_box);
		  $.get("/api/contact", {athlete_id: $(this).attr("data-mail-reason-id")}, function(data) {
            data = $("<div/>").html(data);
		    lc = data.find("#left-column");
		    rc = data.find("#right-column");
		    rc.find(".overlay").attr('src','/media/i/thumb-overlay-grey.png');
		    $("#contact-overlay .inner").append(lc).append(rc).append('<div class="clear"><!-- --></div>')
		      .parent().slideDown("fast");
		    $("#darkLayer").css('height', $(document).height()+'px').fadeIn("fast");
	    });
		})

        $("form#contact").live("submit", function() {
            that=$(this);
            if (!that.attr("is_sent")) {
                that.attr("is_sent", true);

                $.post("api/send-email", $("form#contact").serialize(), function(result) {
                    that.removeAttr("is_sent");
                    $("ul.errorlist").html("");
                    $("ul.errornote").html("");

                    if ($.isEmptyObject(result)) {
                        $("#contact-container").html("<div class='content'><p>Thank you for submitting your information. Someone will get back to you shortly.</p></div>");
                    }
                    else
                    {
                        var non_field_errors = result.non_field_errors;
                        for (var i in non_field_errors) {
                            $("ul.errornote").append("<li>"+non_field_errors[i]+"</li>");
                        }
                        var errors = result.errors;
                        for (var key in errors) {
                            for (var i in errors[key]) {
                                $("#"+key+" ul.errorlist").append("<li>"+errors[key][i]+"</li>");
                            }
                        }
                    }
                });
            }
            return false;
        });

 });

var initial_footer = 0;
 
this.openSearch = function(val) {
  $("#search-results").hide("fast");
  $.get("/api/search", { keywords:val }, function(data) {
    $(".navwrapper").append(data);
    var footer_top = $("#footer").position().top;
    var search_height = $("#search-results").height();
    if(footer_top < search_height+104 ) {
      var move_to = footer_top-(search_height-104);
      $("#footer .inner").animate({ top:move_to }, "fast", function() {
        $(".darkClass").css('height', $(document).height()+'px');
        initial_footer = move_to;
      });
    }
    $("#search-results").slideDown("fast");
    $("#darkLayer").fadeIn("fast");
  }); 
}

this.closeSearch = function() {
  $("#search-results").slideUp("fast", function() {
    $(this).remove();
  });
  $(".darkClass").css('height', $(document).height()+'px').fadeOut("fast");
  $("#footer .inner").animate({ top:0 }, "fast");
}

