var Helper = {
	getElement : function(e){
		var t;
		if (!e) var e = window.event;
		if (e.target) t = e.target;
		else if (e.srcElement) t = e.srcElement;
		if (t.nodeType != 1) t = t.parentNode;
		return t;
	},
	XmlHttp : [
		function () {return new XMLHttpRequest()},
		function () {return new ActiveXObject("Msxml2.XMLHTTP")},
		function () {return new ActiveXObject("Msxml3.XMLHTTP")},
		function () {return new ActiveXObject("Microsoft.XMLHTTP")}
	],
	sendRequest : function (url, callback, getData, postData, req){
		if(!req){
			req = Helper.createXmlHttpObject();
			if(!req) return;
		}
		var getString = "";
		var postString;
		if(getData){
			for(name in getData){
				getString += encodeURIComponent(name.toString()) + "=" + encodeURIComponent(getData[name].toString()) + "&";
			}
			var index = url.indexOf("?");
			if(index < 0) url += "?" + getString;
			if(index > -1){
				if(index == url.length - 1) url += getString;
				else url += "&" + getString;
			}
		}
		if(postData){
			postString = "";
			for(name in postData){
				postString += encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postData[name].toString()) + "&";
			}
		}
		var method = (postData) ? "POST" : "GET";
		req.open(method, url, true);
		if(postData) req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		req.onreadystatechange = function () {
			if(req.readyState != 4) return;
			if(req.status != 200 && req.status != 304) return;
			callback(req);
		}
		if(req.readyState == 4) return;
		req.send(postString);
	},
	createXmlHttpObject : function(){
		var xmlhttp = false;
		for(var i = 0; i < Helper.XmlHttp.length; i++){
			try{ xmlhttp = Helper.XmlHttp[i](); }
			catch(e){ continue; }
			break;
		}
		return xmlhttp;
	},
	createCookie : function(name,value,days,hours,minutes,seconds){
		if(!days) days = 0;
		if(!hours) hours = 0;
		if(!minutes) minutes = 0;
		if(!seconds) seconds = 0;
		if (days || hours || minutes || seconds) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000)+(hours*60*60*1000)+(minutes*60*1000)+(seconds*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	readCookie : function(name){
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	eraseCookie : function(name){
		Helper.createCookie(name,"",-1);
	}
};

(function($) {
	$(function() {
		if($('#rotator-image').length>0) {
			var bodies = $('#rotator-image .rotator-body');
			var lis = $('#rotator-items ul li');
			var thumbs = $('#rotator-items ul li a');
			var current = 0;
			
			var intl = setInterval(function() {
				jumpTo((current+1)%thumbs.length);
			}, 10000);
			
			thumbs.each(function(i) {
				$(this).click(function() {
					clearTimeout(intl);
					jumpTo(i);
					intl = setInterval(function() {
						jumpTo((current+1)%thumbs.length);
					}, 10000);
				});
			});
			
			function jumpTo(i) {
				bodies.hide();
				$(bodies[i]).show();
				lis.removeClass('selected').removeClass('previous');
				$(lis[i]).addClass('selected');
				if(i>0) $(lis[i-1]).addClass('previous');
				current = i;
			}
		}
	});
})(jQuery);

var HoverNav = {
	available : function(){
		this.nav = document.getElementById('hover-nav');
		if(this.nav) return true;
		else return false;
	},
	init : function(){
		var items = this.nav.getElementsByTagName('li');
		for(var i = items.length - 1; i > -1; i--){
			if(items[i].parentNode == this.nav){
				items[i].onmouseover = this.display;
				items[i].onmouseout = this.hide;
			}
		}
	},
	display : function(e){
		var t = Helper.getElement(e);
		while(t.parentNode != HoverNav.nav && t.nodeName != 'DIV')
			t = t.parentNode;
		if(HoverNav.ignoreMouseEvent(e, t)) return;
		if(t.className != 'selected') t.className = 'hover';
	},
	hide : function(e){
		var t = Helper.getElement(e);
		while(t.parentNode != HoverNav.nav && t.nodeName != 'DIV')
			t = t.parentNode;
		if(HoverNav.ignoreMouseEvent(e, t)) return;
		if(t.className != 'selected') t.className = '';
	},
	ignoreMouseEvent : function(e, t){
		if (!e) var e = window.event;
		var rt = (e.relatedTarget) ? e.relatedTarget : ((e.type == "mouseover") ? e.fromElement : e.toElement);
		while (rt && rt != t && rt.nodeName != 'DIV')
			rt = rt.parentNode;
		if (rt && rt == t) return true;
		return false;
	}
};
if(HoverNav.available()) HoverNav.init();

var MediaContent = {
	available : function(){
		this.selectedTab = 0;
		this.ids = ['photos-section', 'videos-section'];
		this.section = document.getElementById(this.ids[this.selectedTab]);
		if(this.section) return true;
		else return false;
	},
	init : function(){
		this.tabs = this.section.getElementsByTagName('h1')[0].getElementsByTagName('a');
		for(var i = this.tabs.length - 1; i > -1; i--){
			this.tabs[i].onclick = this.switchTab;
		}
	},
	switchTab : function(e){
		var targ = Helper.getElement(e);
		if(MediaContent.tabs[MediaContent.selectedTab] == targ) return false;
		else{
			for(var i = MediaContent.tabs.length - 1; i > -1; i--){
				if(MediaContent.tabs[i] == targ){
					MediaContent.selectedTab = i;
					break;
				}
			}
			MediaContent.section.id = MediaContent.ids[MediaContent.selectedTab];
		}
	}
};
if(false && MediaContent.available()) MediaContent.init();

var MediaPaging = {
	available : function(){
		this.selectedTab = 0;
		this.ids = ['photos-paging', 'videos-paging'];
		this.previewIds = ['div.media-section div.photos', 'div.media-section div.videos'];
		this.itemSelector = 'ul.media-image-list li:not(.clear)';
		this.pagers = new Array();
		for(var i = this.ids.length - 1; i > -1; i--){
			var p = document.getElementById(this.ids[i]);
			if(p) this.pagers[i] = new MediaPager(p, i);
			else return false;
		}
		return true;
	},
	init : function(){
		this.domain = 'http://' + window.location.toString().split("//")[1].split("/")[0];
		this.urls = ["/?content=photos", "/?content=videos"];
		var t = this;
		jQuery('#gallery_selector select').each(function() {t.urls[0] += '&id='+jQuery(this).val();});
		jQuery('#category_selector select').each(function() {t.urls[1] += '&id='+jQuery(this).val();});
		this.attachHandlers(0);
		this.attachHandlers(1);
		
		var self = this;
		var $mediaList = jQuery(this.pagers[0].pageContainer);
		jQuery('#load-previous-image').click(function(e)
		{
			e.preventDefault();
			var $prevMedia = $mediaList.find('li.active').prev(':not(.clear)');
			if ($prevMedia.length > 0)
			{
				$prevMedia.find('a').click();
			}
			else
			{
				jQuery(self.pagers[0].previousPage).click();
			}
		});
		jQuery('#load-next-image').click(function(e)
		{
			e.preventDefault();
			var $nextMedia = $mediaList.find('li.active').next(':not(.clear)');
			if ($nextMedia.length > 0)
			{
				$nextMedia.find('a').click();
			}
			else
			{
				jQuery(self.pagers[0].nextPage).click();
			}
		});
		this.processHash(document.location.hash);
	},
	processHash : function(hash) {
		var hash = hash.replace('#','');
		var toks = hash.split('x');
		var index = jQuery('#photos-section').length>0?0:1;
		if(index==1) index = jQuery('#videos-section').length>0?1:-1;
		this._jumpToItem = -1;
		if(toks.length==2  && MediaPaging.pagers[index].page == MediaPaging.pagers[index]._page) {
			try {
				toks[0] = parseInt(toks[0]);
				toks[1] = parseInt(toks[1]);
				if(index>-1 && toks[0] > 0 && toks[0] <= MediaPaging.pagers[index].pageCount) {
					MediaPaging.pagers[index].page = toks[0];
					this._jumpToItem = toks[1];
					Helper.sendRequest(MediaPaging.domain + MediaPaging.urls[index], MediaPaging.pageResponse[index], {page : MediaPaging.pagers[index].page}, null, MediaPaging.request);
				}
			} catch (e) {};
		}
	},
	changePage : function(e){
		var t = Helper.getElement(e);
		var index = 0;
		for(var i = MediaPaging.pagers.length - 1; i > -1; i--)
		{
			if(MediaPaging.pagers[i].nextPage == t || MediaPaging.pagers[i].previousPage == t)
			{
				index = i;
				break;
			}
		}
		if (MediaPaging.pagers[index].page != MediaPaging.pagers[index]._page)
		{
			return;
		}
		if (MediaPaging.pagers[index].nextPage == t)
		{
			if (MediaPaging.pagers[index].page < MediaPaging.pagers[index].pageCount)
			{
				MediaPaging.pagers[index].page += 1;
			}
			else
			{
				return;
			}
		}
		else if (MediaPaging.pagers[index].page > 1)
		{
			MediaPaging.pagers[index].page -= 1;
		}
		else
		{
			return;
		}
		Helper.sendRequest(MediaPaging.domain + MediaPaging.urls[index], MediaPaging.pageResponse[index], {page : MediaPaging.pagers[index].page}, null, MediaPaging.request);
	},
	pageResponse : [
		function(req){
			MediaPaging.request = req;
			MediaPaging.finishPage(0, req.responseText);
		},
		function(req){
			MediaPaging.request = req;
			MediaPaging.finishPage(1, req.responseText);
		}
	],
	finishPage : function(index, html){
		this.pagers[index].pageContainer.innerHTML = html;
		this.pagers[index]._page = this.pagers[index].page;
		this.pagers[index].startItem.innerHTML = (((this.pagers[index].page - 1) * this.pagers[index].count) + 1).toString();
		this.pagers[index].endItem.innerHTML = ((this.pagers[index].page - 1) * this.pagers[index].count) + jQuery(this.pagers[index].pageContainer).find('li:not(.clear)').length;
		this.attachHandlers(index);
		
		var items = jQuery(this.previewIds[index]+' '+this.itemSelector);
		var jumpTo = 0;
		if(this._jumpToItem>-1 && this._jumpToItem < items.length) {
			jumpTo = this._jumpToItem;
			this._jumpToItem = -1;
		}
		
		document.location.hash = this.pagers[index].page+'x'+jumpTo;
		
		if (index == 0)
		{
			jQuery('#photo-player img').attr('src', jQuery(this.pagers[index].pageContainer).find('li:eq('+jumpTo+') a img').attr('rel'));
		}
		else (index == 1)
		{
			jQuery(items[jumpTo]).find('a').click();
		}
	},
	attachHandlers : function(index) {
		if (index==0 || index==1) {
			var t = this;
			jQuery(this.previewIds[index]+' '+this.itemSelector).each(function(i) {
				var li = this;
				jQuery('a',this).click(function() {
					t.previewItemClicked(li, index, i);
					return false;
				});
			});
		}
	},
	previewItemClicked : function(item, index, itemIndex) {
		var t = this;//Member only video. Please sign in or register to view this video.
		if (index == 0) {
			jQuery('#photo-player img').each(function() {
				var $item = jQuery(item);
				$item.siblings('li').removeClass('active');
				$item.addClass('active');
				img = $item.find('img');
				if (img.attr('rel') == 'null') {
					jQuery(this).css('visibility', 'hidden');
					jQuery('.media-description').html('Member only photo. Please <a href="/index.php?&com=login">sign in</a> to view this photo.');
				} else {
					jQuery(this).css('visibility', 'visible');
					jQuery(this).attr('src',img.attr('rel'));					
					des = jQuery('div:eq(0)',item);
					jQuery('.media-description').html(des.html());
				}
				
				document.location.hash = t.pagers[index].page+'x'+itemIndex;
			});
		} else if (index == 1) {
			jQuery('#video-player').each(function() {
				jQuery(this).css('visibility', 'visible');
				div = jQuery('div:eq(0)',item);
				des = jQuery('div:eq(1)',item);
				img = jQuery('img',item);
				if(div.text().toLowerCase()!='null') {
					jQuery('.media-description').html(des.html());
					if (videoPlayer !== undefined) {
						videoPlayer.addVariable("source",div.text());
						videoPlayer.addVariable("autoPlay","true");
						videoPlayer.write("video-player");
					}
				} else {
					jQuery('.media-description').html('Member only video. Please <a href="/index.php?&com=login">sign in</a> to view this video.');
					jQuery(this).css('visibility', 'hidden');
				}
				document.location.hash = t.pagers[index].page+'x'+itemIndex;
			});
		}
	}
};

var MediaPager = function(elm, index){
	this.container = elm;
	this.pageContainer = jQuery(this.container.parentNode).find('.media-image-list').get(0);
	this.count = jQuery(this.pageContainer).find('li:not(.clear)').length;
	var buttons = elm.getElementsByTagName('a');
	this.previousPage = buttons[0];
	this.nextPage = buttons[1];
	this.previousPage.onclick = MediaPaging.changePage;
	this.nextPage.onclick = MediaPaging.changePage;
	var labels = elm.getElementsByTagName('span');
	this.startItem = labels[2];
	this.endItem = labels[4];
	this.totalCount = labels[6].innerHTML;
	this.pageCount = Math.ceil(parseInt(this.totalCount) / this.count);
	this._page = 1;
	this.page = 1;
};
if(MediaPaging.available()) MediaPaging.init();

/*var SkaterContent = {
	available : function(){
		this.selectedTab = 0;
		this.ids = ['biography-section', 'competitive-results-section', 'behind-the-scenes-section'];
		this.section = document.getElementById(this.ids[this.selectedTab]);
		if(this.section) return true;
		else return false;
	},
	init : function(){
		this.tabs = this.section.getElementsByTagName('h1')[0].getElementsByTagName('a');
		for(var i = this.tabs.length - 1; i > -1; i--){
			this.tabs[i].onclick = this.switchTab;
		}
	},
	switchTab : function(e){
		var targ = Helper.getElement(e);
		if(SkaterContent.tabs[SkaterContent.selectedTab] == targ) return false;
		else{
			for(var i = SkaterContent.tabs.length - 1; i > -1; i--){
				if(SkaterContent.tabs[i] == targ){
					SkaterContent.selectedTab = i;
					break;
				}
			}
			SkaterContent.section.id = SkaterContent.ids[SkaterContent.selectedTab];
		}
	}
};
if(SkaterContent.available()) SkaterContent.init();*/

/*var SkatersCornerContent = {
	available : function(){
		this.selectedTab = 0;
		this.ids = ['skater-interviews-section', 'skater-cam-section', 'skating-tips-section'];
		for(var i=0;i<this.ids.length;i++)
		{
			this.section = document.getElementById(this.ids[i]);
			if(this.section)
			{
				this.selectedTab = i;
				break;
			}
		}
		if(this.section) return true;
		else return false;
	},
	init : function(){
		this.tabs = this.section.getElementsByTagName('h1')[0].getElementsByTagName('a');
		for(var i = this.tabs.length - 1; i > -1; i--){
			this.tabs[i].onclick = this.switchTab;
		}
	},
	switchTab : function(e){
		var targ = Helper.getElement(e);
		if(SkatersCornerContent.tabs[SkatersCornerContent.selectedTab] == targ) return false;
		else{
			for(var i = SkatersCornerContent.tabs.length - 1; i > -1; i--){
				if(SkatersCornerContent.tabs[i] == targ){
					SkatersCornerContent.selectedTab = i;
					break;
				}
			}
			SkatersCornerContent.section.id = SkatersCornerContent.ids[SkatersCornerContent.selectedTab];
		}
	}
};
if(SkatersCornerContent.available()) SkatersCornerContent.init();*/

var SkaterPhotos = {
	available : function(){
		return (!(typeof jQuery == 'undefined') && jQuery('div.skater-profile div.preview-section').length > 0);
	},
	paging : function(prev) {
		prev = prev || false;
		if (prev && this.page<2) return;
		else if (!prev && this.page>=this.max) return;
		this.page += prev?-1:1;
		var t = this;
		jQuery.ajax({
			type: 'GET',
			url: '/',
			data: 'content=skater_photos&p='+this.page+'&id='+this.id,
			success: function(resp) {
				t.pageHandler(resp);
			}
		})
	},
	init : function(){
		this.el = jQuery('div.skater-profile div.preview-section');
		this.container = jQuery('ul.image-list',this.el);
		this.id = this.container.attr('skaterid');
		this.page = 1;
		this.prev = jQuery('div.paging a:eq(0)',this.el);
		this.next = jQuery('div.paging a:eq(1)',this.el);
		this.first = jQuery('div.paging > span:eq(0)',this.el);
		this.last = jQuery('div.paging > span:eq(2)',this.el);
		this.max = Math.ceil(parseInt(jQuery('div.paging > span:eq(4)',this.el).text())/5.0);
		
		var t = this;
		this.prev.click(function(){
			t.paging(true);
		});
		this.next.click(function(){
			t.paging();
		});
		
		jQuery('ul.image-list a').lightBox({fixedNavigation:true});
	},
	pageHandler: function(resp) {
		this.container.html(resp);
		this.first.text((this.page*5)-4);
		this.last.text(this.page*5);
		jQuery('ul.image-list a').lightBox({fixedNavigation:true});
	}
};
if(SkaterPhotos.available()) SkaterPhotos.init();

var GuidedLogin = {
	init : function(){
		this.loggedInCookie = 'autocom';
		this.redirectCookie = 'loginredirect';
		var loggedIn = Helper.readCookie(this.loggedInCookie);
		if(loggedIn){
			var redirect = Helper.readCookie(this.redirectCookie);
			if(redirect){
				Helper.eraseCookie(this.redirectCookie);
				window.location = decodeURIComponent(redirect);
			}
		}
	},
	login : function(){
		Helper.createCookie(this.redirectCookie, encodeURIComponent(window.location.toString()), 0, 0, 5);
		window.location = 'http://' + window.location.toString().split("//")[1].split("/")[0] + '/?com=login';
	}
};
GuidedLogin.init();

(function($) {
	$(function() {
		if($('#message').length>0) {
			var t = $('#message');
			var mw = t.width();
			var container = t.find('.container');
			var w = container.width();
			var left = 0;
			function updateMessage() {
				left = (w+left<1)?mw:left-2;
				container.get(0).style.left = left+'px';
			}
			setInterval(updateMessage, 20);
		}
	})
})(jQuery);





























