jQuery(document).ready(function() {
Home = {
  loadedBackgrounds: 0,
  currentCallout: 0,
  backgrounds: [],
  init: function () {
    jQuery("#ImageGallery .Close").click(function () {
      jQuery("#ImageGallery").fadeOut(500);
    });
    jQuery("#VideoPlayer .Close").click(function () {
      jQuery("#VideoPlayer").fadeOut(500);
    });
    // CACHE BAKGROUND IMAGES
    jQuery(".Callout").each(function (i, item) {
      item = jQuery(item);
      var url = item.css("background-image").split("\"")[1];
      if (url) {
        var img = new Image();
        jQuery(img).load(function () {
          Home.loadedBackgrounds++;
          if (Home.loadedBackgrounds == jQuery(".Callout").length) {
            jQuery("#GeneralLoader").fadeOut(1000, function () {
              Home.activateCallout(0);
              Home.setAutomaticAdvance();
            });
          }
        }).attr("src", url);
      } else {
        Home.loadedBackgrounds++;
        if (Home.loadedBackgrounds == jQuery(".Callout").length) {
          jQuery("#GeneralLoader").fadeOut(1000, function () {
            Home.activateCallout(0);
            Home.setAutomaticAdvance();
          });
        }
      }
    });
  },
  auto: null,
  currentIdx: -1,
  clearAutomaticAdvance: function () {
    if (Home.isFlashVersion()) {
      try {
        Home.flashMovie().stopTimer();
      } catch (e) {}
    } else {
      if (Home.auto != null) {
        clearInterval(Home.auto);
        Home.auto = null;
      }
    }
  },
  setAutomaticAdvance: function () {
    Home.clearAutomaticAdvance();
    if (Home.isFlashVersion()) {
      try {
        Home.flashMovie().resetTimer(10 * 1000);
      } catch (e) {}
    } else {
      Home.auto = setInterval(function () {
        var callout = Home.currentIdx + 1;
        if (callout >= jQuery(".Callout").length) callout -= jQuery(".Callout").length;
        Home.activateCallout(callout);
      }, 10 * 1000);
    }
  },
  gallery: function (node, img) {
    node = jQuery(node).parent();
    if (img != '' && typeof img != 'undefined') {
      jQuery("#ImageGallery h3").html(node.find("div strong").html());
      jQuery("#ImageGallery p").html(node.find("div p").html());
      jQuery("#ImageGallery img").attr("src", img);
      var _img = new Image();
      jQuery(_img).load(function () {
        jQuery("#ImageGallery").fadeIn(250);
      }).attr("src", img);
    } else {
      alert("NO IMAGE FOR " + jQuery(node).parent().parent().find("h3").html());
    }
  },
  videos: function (node, vid) {
    node = jQuery(node).parent();
    if (vid != '' && typeof vid != 'undefined') {
      jQuery("#VideoPlayer h3").html(node.find("div strong").html());
      jQuery("#VideoPlayer p").html(node.find("div p").html());
      var params = {
        quality: "high",
        scale: "noscale",
        wmode: "transparent",
        allowscriptaccess: "always",
        bgcolor: "#000000",
        allowFullScreen: "true"
      };
      var flashvars = {
        width: 530,
        height: 400,
        x: -250,
        y: -50,
        autoPlay: true,
        videos: '[ { "id" : "720_24", "src" : "' + vid + '" }, { "id" : "1200_24", "src" : "video/' + vid + '" } ]'
      };
      var attributes = {
        id: "VideoContent",
        name: "VideoContent"
      };
      swfobject.embedSWF("main.html", "VideoContent", "100%", "100%", "10.0.0", "swf/expressInstall.html", flashvars, params, attributes);
    } else {
      alert("NO VIDEO FOR " + jQuery(node).parent().parent().find("h3").html());
    }
  },
  transitionStarted: function (idx) {
    // idx = the current callout (the one that needs to go out)
    // Home.toDeactivate = Home.currentIdx;
    var tD = idx;
    jQuery(jQuery(".Callout").get(tD)).animate({
      opacity: 0
    }, {
      duration: 1000,
      complete: function () {
        jQuery(jQuery(".Callout").get(tD)).css({
          display: "none"
        });
      }
    });
  },
  transitionEnded: function (idx) {
    // if (Home.activatingCallout) return;
    // Home.activatingCallout = true;
    Home.clearAutomaticAdvance();
    jQuery("ol.Nav a").removeClass("On");
    jQuery(jQuery("ol.Nav a")[Math.floor(idx / 2)]).addClass("On");
    var duration = 500 + 500 * ((Math.floor(idx / 2) != Home.currentCallout) ? 0 : 1);
    Home.toDeactivate = Home.currentIdx;
    Home.currentIdx = idx;
    Home.currentCallout = Math.floor(idx / 2);
    if (Home.toDeactivate != null) {
      jQuery(jQuery(".Callout").get(Home.toDeactivate)).css({
        display: "none"
      });
    }
    // idx = the current callout (the one that needs to show up)
    var item = jQuery(jQuery(".Callout").get(Home.currentIdx));
    // SHOW NEW CONTENT
    item.css({
      display: "block",
      opacity: 1
    });
    // HIDE TRIANGLE
    Home.toDeactivate = null;
    // FADE IN HOTSPOTS
    item.find(".Hotspot, .Cargo").each(function (x, hotspot) {
      hotspot = jQuery(hotspot);
      var fromLeft = parseInt(hotspot.css("left"));
      var amount = Math.floor(Math.random() * 31) - 15; // -15:15
      if (!jQuery.browser.msie || jQuery.browser.version > 8) {
        hotspot.css({
          left: fromLeft + amount,
          opacity: 0
        });
        hotspot.animate({
          left: fromLeft,
          opacity: 1
        }, {
          duration: duration
        });
      } else {
        hotspot.css({
          opacity: ""
        });
      }
    });
    // TITLE
    var fromLeft = parseInt(item.find("h2").css("left"));
    var amount = 20; // Math.floor(Math.random()*31) - 15; // -15:15
    if (!jQuery.browser.msie || jQuery.browser.version > 8) {
      item.find("h2").css({
        left: fromLeft + amount,
        opacity: 0
      });
      item.find("h2").animate({
        left: fromLeft,
        opacity: 1
      }, {
        duration: duration
      });
    } else {
      item.find("h2").css({
        display: "block"
      });
    }
    // DETAILS
    var fromLeft = parseInt(item.find(".Details").css("left"));
    var amount = 20; // Math.floor(Math.random()*31) + 5; // -15:15
    var detailsBackground = item.find(".Details").css("backgroundImage");
    if (!jQuery.browser.msie || jQuery.browser.version > 8) {
      item.find(".Details").css({
        left: fromLeft + amount,
        opacity: 0,
        display: "block"
      });
    } else {
      item.find(".Details").css({
        backgroundImage: "none",
        left: fromLeft + amount,
        opacity: 0,
        display: "block"
      });
    }
    item.find(".Details").animate({
      left: fromLeft,
      opacity: 1
    }, {
      duration: duration,
      complete: function () {
        item.find(".Details").css({
          opacity: "",
          backgroundImage: detailsBackground
        });
        Home.activatingCallout = false;
        Home.setAutomaticAdvance();
      }
    });
  },
  flashMovie: function () {
    if (navigator.appName.indexOf("Microsoft") != -1) {
      return window["Background"];
    } else {
      return document["Background"];
    }
  },
  isFlashVersion: function () {
    return (Home.flashMovie() != null && Home.flashMovie() != 'undefined');
  },
  activatingCallout: false,
  activateCallout: function (idx) {
    if (Home.activatingCallout) return;
    if (Home.currentIdx == idx) return;
    Home.activatingCallout = true;
    Home.clearAutomaticAdvance();
    jQuery("ol.Nav a").removeClass("On");
    jQuery(jQuery("ol.Nav a")[Math.floor(idx / 2)]).addClass("On");
    var duration = 500 + 500 * ((Math.floor(idx / 2) != Home.currentCallout) ? 0 : 1);
    var timeout = duration * ((Math.floor(idx / 2) != Home.currentCallout) ? 1 : 0);
    Home.toDeactivate = Home.currentIdx;
    Home.currentIdx = idx;
    Home.currentCallout = Math.floor(idx / 2);
    if (Home.isFlashVersion()) {
      try {
        Home.flashMovie().selectSetByAlias(idx);
      } catch (e) {}
      return;
    }
    var leftToRight = !(Home.toDeactivate % 2 == 0);
    var cHeight = jQuery(jQuery(".Callout").get(idx)).height();
    var cWidth = jQuery(jQuery(".Callout").get(idx)).width();
    var triangleContainer = jQuery(".TriangleContainer");
    triangleContainer.html("");
    triangleContainer.css({
      display: "block"
    });
    var backgroundUrl = jQuery(jQuery(".Callout").get(idx)).css("background-image");
    var PIECE_HEIGHT = 15;
    for (var i = 0; i <= cHeight; i += PIECE_HEIGHT) {
      var piece = jQuery(document.createElement("div"));
      var w = Math.round(cWidth * i / cHeight);
      piece.css({
        height: PIECE_HEIGHT,
        width: 0,
        backgroundImage: backgroundUrl,
        backgroundRepeat: "no-repeat",
        backgroundPosition: leftToRight ? ("0px -" + i + "px") : ("-" + cWidth + "px -" + (cHeight - i) + "px"),
        left: leftToRight ? 0 : cWidth,
        top: leftToRight ? i : cHeight - i,
        opacity: 0
      });
      triangleContainer.append(piece);
    }
    Home.finishedPieces = 0;
    triangleContainer.find("div").each(function (i, item) {
      item = jQuery(item);
      setTimeout(function () {
        item.animate({
          opacity: 1
        }, {
          duration: 1000,
          step: function (now, fx) {
            var elem = jQuery(fx.elem);
            var w = fx.pos * cWidth;
            if (!leftToRight) {
				if (elem.css("backgroundPosition")){
					var bgpos = elem.css("backgroundPosition").split(" ")[1];
				} else {
					var bgpos = elem.css("backgroundPosition");
				}
			//alert(elem.css("background-position-x"));
              //var bgpos = elem.css("backgroundPosition").split(" ");
              elem.css({
                width: w,
                left: cWidth - w,
                backgroundPosition: "-" + (cWidth - w) + "px " + bgpos
              });
            } else {
              elem.css({
                width: w
              });
            }
          },
          complete: function () {
            Home.finishedPieces++;
            if (Home.finishedPieces == triangleContainer.find("div").length) {
              var item = jQuery(jQuery(".Callout").get(Home.currentIdx));
              // DEACTIVATE OLD CALLOUT
              if (Home.toDeactivate != null) {
                jQuery(jQuery(".Callout").get(Home.toDeactivate)).css({
                  display: "none"
                });
              }
              // SHOW NEW CONTENT
              item.css({
                display: "block"
              });
              // HIDE TRIANGLE
              triangleContainer.css({
                display: "none"
              });
              Home.toDeactivate = null;
              // FADE IN HOTSPOTS
              item.find(".Hotspot, .Cargo").each(function (x, hotspot) {
                hotspot = jQuery(hotspot);
                var fromLeft = parseInt(hotspot.css("left"));
                var amount = Math.floor(Math.random() * 31) - 15; // -15:15
                if (!jQuery.browser.msie || jQuery.browser.version > 8) {
                  hotspot.css({
                    left: fromLeft + amount,
                    opacity: 0
                  });
                  hotspot.animate({
                    left: fromLeft,
                    opacity: 1
                  }, {
                    duration: duration
                  });
                } else {
                  hotspot.css({
                    opacity: ""
                  });
                }
              });
              // TITLE
              var fromLeft = parseInt(item.find("h2").css("left"));
              var amount = 20; // Math.floor(Math.random()*31) - 15; // -15:15
              if (!jQuery.browser.msie || jQuery.browser.version > 8) {
                item.find("h2").css({
                  left: fromLeft + amount,
                  opacity: 0
                });
                item.find("h2").animate({
                  left: fromLeft,
                  opacity: 1
                }, {
                  duration: duration
                });
              } else {
                item.find("h2").css({
                  display: "block"
                });
              }
              // DETAILS
              var fromLeft = parseInt(item.find(".Details").css("left"));
              var amount = 20; // Math.floor(Math.random()*31) + 5; // -15:15
              var detailsBackground = item.find(".Details").css("backgroundImage");
              if (!jQuery.browser.msie || jQuery.browser.version > 8) {
                item.find(".Details").css({
                  left: fromLeft + amount,
                  opacity: 0,
                  display: "block"
                });
              } else {
                item.find(".Details").css({
                  backgroundImage: "none",
                  left: fromLeft + amount,
                  opacity: 0,
                  display: "block"
                });
              }
              item.find(".Details").animate({
                left: fromLeft,
                opacity: 1
              }, {
                duration: duration,
                complete: function () {
                  item.find(".Details").css({
                    opacity: "",
                    backgroundImage: detailsBackground
                  });
                }
              });
              Home.setAutomaticAdvance();
              Home.activatingCallout = false;
            }
          }
        });
      }, i * 30);
    });
  }
}

jQuery(document).ready(function() {
  Home.init();
	
	banners();
	
  jQuery(".Callout .Hotspot .Open").mouseenter(function () {
    Home.clearAutomaticAdvance();
    var parent = jQuery(this).parent();
    if (parent.hasClass("On")) return;
    parent.addClass("On");
    if (!jQuery.browser.msie || jQuery.browser.version > 8) {
      parent.find(".Content").css({
        opacity: 0
      });
      parent.find(".Content h3, .Content p, .Content a").css({
        opacity: 0
      });
    } else {
      parent.find(".Content h3, .Content p, .Content a").css({
        opacity: ""
      });
    }
    parent.parent().find(".OverlayBackground").fadeIn(250, function () {
      parent.find(".Content h3, .Content p, .Content a").each(function (q, item) {
        item = jQuery(item);
        if (item.attr("animating") == true) return;
        item.attr("animating", true);
        var fromLeft = parseInt(item.css("left")),
            amount = 10;
        if (!jQuery.browser.msie || jQuery.browser.version > 8) {
          item.css({
            left: fromLeft + amount,
            opacity: 0
          });
          item.animate({
            left: fromLeft,
            opacity: 1
          }, {
            duration: 500,
            complete: function () {
              item.attr("animating", false);
            }
          });
        }
      });
      if (!jQuery.browser.msie || jQuery.browser.version > 8) {
        parent.find(".Content").animate({
          opacity: 1
        }, {
          duration: 500
        });
      } else {
        parent.find(".Content").css({
          opacity: ""
        });
      }
    });
  });
  jQuery(".Callout .Hotspot .Open").click(function () {
    jQuery(this).mouseenter();
  });
  jQuery(".Callout .Hotspot").mouseleave(function () {
    jQuery(this).removeClass("On");
    jQuery(this).parent().find(".OverlayBackground").fadeOut(250);
    Home.setAutomaticAdvance();
  });
});
});
