jQuery(document).ready(function() {	
	$('#aboutColumnWrapper ul.links li').each(function(i, val) {
		var myFile = document.location.toString()
		var myAnchor = "";
		if (myFile.match('#')) myAnchor = myFile.split('#')[1];

		var elementID = $(this).attr('id').split('_')[1]
		$('#aboutColumnWrapper > div.colRight > div#content_' + elementID).hide();

		if (myAnchor != "") {
			if ($(this).attr('id') == 'link_' + myAnchor) {
				$('div#currentContent').html('<div>' + $('div#content_' + myAnchor).html() + '</div>')			
				aboutPageInit();
				$('#aboutColumnWrapper ul.links li:first').removeClass('current');
				$('#aboutColumnWrapper ul.links li#link_' + myAnchor).addClass('current');
			}
		} else if ($(this).attr('id') == $(this).parent().find("li:first").attr('id')) {
			$('div#currentContent').html('<div>' + $('div#content_' + elementID).html() + '</div>')
			aboutPageInit();
		}

		$(this).click(function() {
			var currentElementID = $('#aboutColumnWrapper ul.links li.current').attr('id').split('_')[1]
			var nextElementID = $(this).attr('id').split('_')[1]

			if (currentElementID == nextElementID) return;
			
			// alter tabs 'current'
			$('#aboutColumnWrapper ul.links li#link_' + currentElementID).removeClass('current');
			$('#aboutColumnWrapper ul.links li#link_' + nextElementID).addClass('current');

			// alter content 'current'
			$('#currentContent div').slideUp("medium", function() {
				$(this).remove()
			});
			document.location = document.location.toString().split('#')[0] + "#" + nextElementID;
			$('div#currentContent').append('<div>' + $('#aboutColumnWrapper > div.colRight > div#content_' + nextElementID).html() + '</div>')
			aboutPageInit();
			initSliders();
		});
	});
	
	initPageSlider();
	initSliders();
	setupZoom();
});

aboutPageInit = function() {
	// faq init
	$('#currentContent #faq_questions > div').each(function(i, val) {
		$(this).find('p.answer').hide();
		$(this).click(function() {
			$(this).find('p.answer').toggle();
		});
	});	
}

initPageSlider = function() {
	$('div.pageSlider').each(function(i, val) {	
  		var myPageSlider = new Page_Slider($(this));
		myPageSlider.init();
	});
}

function Page_Slider(el) {
	this.init = function() {
		var parObject = this;

		// intialize the first tab and view
		parObject.current_link.addClass("current");
		parObject.current_view.show();
		
		this.links.each(function(i,val) {
			$(this).click(function() {
				var tab_id = $(this).attr("id");
				var view_id = parObject.get_view_id(tab_id);
				
				if (tab_id != parObject.current_link.attr("id")) {
					parObject.current_link.removeClass("current");

					parObject.current_view.css("position", "absolute");					
					parObject.current_view.fadeOut("slow");
					
					parObject.current_link = $("li#" + tab_id);
					parObject.current_view = $("li#" + view_id);	

					parObject.current_view.css("position", "relative");					
					parObject.current_view.fadeIn("slow");
				}
			});
		});
	}
	
	this.get_view_id = function(tab_id) {
		return tab_id.split('_').slice(0,-1).join('_');
	}
	
	this.el = $(el);
	this.links = this.el.find("ul.tabs").children();
	this.views = this.el.find("ul.views").children();
	this.current_link = $("ul.tabs li:first-child").eq(0);
	this.current_view = $("ul.views li#" + this.get_view_id(this.current_link.attr("id")));
	
}

initSliders = function() {
	var adTechnologySlider = new Slider('div#adTechnology');
	adTechnologySlider.init();
}

function Slider(el) {
	this.el = $(el);
	this.itemIndex = 0;
	this.items = this.el.find("ul.items").eq(0).children();
	this.numItems = this.items.length;
	this.itemWidth = parseInt(this.items.css("width")) + parseInt(this.items.css("padding-left")) + parseInt(this.items.css("padding-right")) + parseInt(this.items.css("margin-left")) + parseInt(this.items.css("margin-right"));
	this.numItemsPerView = parseInt(this.el.css("width")) / this.itemWidth;
	this.maxItemIndex = this.numItems - this.numItemsPerView;
	
	this.init = function() {
		var parObject = this;
		
		this.el.find("div.nav > button.next").eq(0).click(function() {
			if(parObject.itemIndex >= parObject.maxItemIndex) parObject.itemIndex = 0;
			else parObject.itemIndex++;		
			var offset = "-" + (parObject.itemIndex * parObject.itemWidth) + "px";
			parObject.el.find("ul.items").eq(0).animate({marginLeft: offset}, 200);
		});
		
		this.el.find("div.nav > button.prev").eq(0).click(function() {
			if(parObject.itemIndex <= 0) parObject.itemIndex = parObject.maxItemIndex;
			else parObject.itemIndex--;
			var offset = "-" + (parObject.itemIndex * parObject.itemWidth) + "px";
			parObject.el.find("ul.items").eq(0).animate({marginLeft: offset}, 200);			
		});		
	}
}