$.Nokia = {};

function initTabs () {
	$("body").append('<img src="'+$.Nokia.paths.assets+'img/tabArw.png" id="nub" />');
	
	new $.Nokia.Tabs({
		holder: $("div.tab-collection"),
		openCallback: function(e) {
			var $target = $(e.target);
			var $li = $target.parents("li");
			var whichTab = $li.attr("id").replace(this.prefix, "");
			$("#tab-leftCorner").add("#tab-rightCorner").removeClass("over");
			
			if(whichTab == 0) {
				$("#tab-leftCorner").addClass("over");	
			} if(whichTab == (this.numTabs - 1)) {
				$("#tab-rightCorner").addClass("over");	
			}
			$("#nub").css({
				position: "absolute", 
				top: $target.offset().top + $target.height() + 18, 
				left: $target.offset().left + ($li.width() / 2) - 6 
			});			
		}
	});

	$(window).resize(function() {
		var $target = $("ul.tabs li.on a");
		$("#nub").css({
			position: "absolute", 
			top: $target.offset().top + $target.height() + 18, 
			left: $target.offset().left + ($li.width() / 2) + 10
		});							  
  	});
	$("#tab-leftCorner").addClass("over");
	var $target = $("#tab-0 a");
	var $li = $("#tab-0");
	$("#nub").css({
		position: "absolute", 
		top: $target.offset().top + $target.height() + 18, 
		left: $target.offset().left + ($li.width() / 2) - 6 
	});	
}

function initScrollTout() {
	new $.Nokia.ScrollTouts();
}

$.Nokia.ScrollTouts = function() {
	var $scrollTouts = $("div.scrollTouts");
	if($scrollTouts && $scrollTouts.find("a").length > 2) {
		var $curElement = $($scrollTouts.find("a").get(0));
		$curElement.addClass("first");
		
		$leftBtn = $('<a href="#" class="scrollLeft"></a>');
		$rightBtn = $('<a href="#" class="scrollRight"></a>');
		$(".section-touts").prepend($leftBtn).prepend($rightBtn);
		
		// BIND EVENTS
		$leftBtn.click(_scrollPrev);
		$rightBtn.click(_scrollNext);
		
		$leftBtn.hide();
	}
	
	function _scrollNext(e) {
		e.preventDefault(e);
		if($curElement.next().get(0).className != "last") {
			$curElement = $curElement.next();
			$scrollTouts.scrollTo($curElement, 500, {axis: "x"});
			
			if($curElement.next().hasClass("last")) {
				$rightBtn.hide();	
			} else {
				$rightBtn.show();	
			}
			$leftBtn.show();
		}
	}
	
	function _scrollPrev(e) {
		e.preventDefault(e);
		if($curElement.get(0).className != "first") {
			$curElement = $curElement.prev();
			$scrollTouts.scrollTo($curElement, 500, {axis: "x"});
			
			if($curElement.hasClass("first")) {
				$leftBtn.hide();	
			} else {
				$leftBtn.show();	
			}
			$rightBtn.show();
		}
	}
}

function initScrollList() {
	$("ul.scrollList").each(function(index, itm) {
		new $.Nokia.ScrollList({
			list: $(itm)
		});								 
	});

	if($("#relatedLinks").get(0) != null) {
		new $.Nokia.ScrollList({
			list: $("#relatedLinks"),
			show: 2
		});	
	}
}

$.Nokia.ScrollList = function(options) {
	var settings = $.extend({
		list: null,
		show: 3
	}, options);
	
	var $lis = settings.list.find("li");
	var $wrap = null; 
	var $current = $($lis.get(settings.show - 1));
	$current.addClass("current").addClass("initial");
	var numLIs = $lis.length;
	$($lis.get(numLIs - 1)).addClass("last");
	
	if(settings.list && numLIs > settings.show) {
		settings.list.wrap('<div class="scrollList-wrap"></div>');
		$wrap = settings.list.parents("div.scrollList-wrap");	
		
		$wrap.css({height: $lis.get(settings.show - 1).offsetTop + $($lis.get(settings.show - 1)).innerHeight()});
		
		var $upArrow = $('<a href="#" class="scrollList-up"></a>');
		var $downArrow = $('<a href="#" class="scrollList-down"></a>');
		var $navContainer = $('<div class="navContainer"></div>');
		$wrap.after($navContainer);
		$navContainer.append($upArrow).append($downArrow);
		
		// position arrows
		var listOffset = (settings.list.width() - 30) / 2;
		$downArrow.css({left: listOffset});
		$upArrow.css({left: listOffset + 15});
		$upArrow.hide();
		
		// bind events
		$upArrow.click(_scrollPrev);
		$downArrow.click(_scrollNext);
		
	}
	
	
	function _scrollNext(e) {
		e.preventDefault(e);
		
		$current.removeClass("current");
		$current = $current.next();
		$current.addClass("current");

		$wrap.scrollTo("+=" + $current.outerHeight(), 500, {axis: "y"});
		
		if($current.hasClass("last")) {
			$downArrow.hide();	
		} else {
			$downArrow.show();	
		}
		
		$upArrow.show();
	}
	
	function _scrollPrev(e) {
		e.preventDefault(e);

		$current.removeClass("current");
		$wrap.scrollTo("-=" + $current.outerHeight(), 500, {axis: "y"});
		$current = $current.prev();
		$current.addClass("current");
		
		if($current.hasClass("initial")) {
			$upArrow.hide();	
		} else {
			$upArrow.show();	
		}
		
		$downArrow.show();
	}
}

/*******************************
 * TRACKING
 *******************************/

var useHbx = true;

/**
 * Code for the flash to grab the mlc variable for tracking calls.
 */
function getHbxMlc() {

  var s = '';
  try {
    return hbx.mlc;
  }catch(e) {
    return s;
  }
}

/* Checks whether user is using Safari, and removes the BR elements from 
 * the flexContainer that contains element with id=page-utils, to fix the Apple Safari
 * browser disallowing clicks on the top-right corner of the product page Flash
 */
var isWebkit = navigator.userAgent.indexOf("AppleWebKit") > -1;
if (isWebkit) {
  //execute when DOM is loaded
  $(function() {
    var fContainer = $(".flexContainer:has(#page-utils)").get(0);
    if (fContainer) {
      var elem = fContainer.getElementsByTagName("br");
      for (var i =0;i<2;i++){
        fContainer.removeChild(elem[elem.length -1]);
      }
    }
  });
}
