

(function(window, $) {

	function setSize(){
		// set wrapper height --> cause ie6 doesnt support position: fixed;
		var windowHeight = $(window).height() - 30;

		// originally was set to a fixed height
		// $("#wrapper").css("height", windowHeight);
		
		/*$("#wrapper").css({
			'min-height': windowHeight,
			'height': 'auto !important',
			'height': windowHeight
		});*/
	}
	// make sure the highlights doesnt go over the content
	function highlights(){
		var contentHeight = $('div.page-width').height();
		var windowHeight = $(window).height();
		if (windowHeight > (contentHeight+189) ) {
			$("#highlights").addClass('fixed');
			$("#highlights:hidden").slideDown(1000);
		} else {
			$(".fixed").removeClass('fixed');
			$("#highlights:hidden").fadeIn();
		}
	}

//----------------------------------------------
// Configuration
//----------------------------------------------

$(document).ready(function(){
	var isiPad = navigator.userAgent.match(/iPad/i) !== null;
	if (!isiPad) {
		setSize();
	}
	$(window).resize(function(){
		if (!isiPad) {
			setSize();
		}
		highlights();
	});

	// detect iPhone/iPod visitors
	function isiPhone(){
		return ((navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1));
	}
	if(isiPhone()){
		$('h2#title-header').fadeIn();
		$('body, html').css('overflow', 'visible');
		$('#wrapper').css({overflow: 'visible', height: 'auto', margin: 0});
		var windowHeight = $(window).height();
		var wrapperHeight = $('#wrapper').height();
		if (windowHeight < wrapperHeight) {
			$('#footer').css({position: 'relative', bottom: 'auto'});
		}
	}
	// fade in the background once loaded
	$("div#flash-bg img").not(function() {
		return this.complete && $(this).fadeIn(400);
	}).bind("load", function () { $(this).fadeIn(400); });
	
	// set Optus font for navigation
	Cufon.replace("div#navigation ul li a.top", { hover: true });
});

// fade in the background once loaded
$(window).load(function() {
	$("div#flash-bg img:hidden").fadeIn();
});


// background swf config
var bgMap = {
	generic: "bg_generic",
	home: "bg_homepage"
};

// title header swf config
var headerMap = {
	football: "Header_BehindFootball.swf",
	register: "Header_RegisterNow.swf",
	downloads: "Header_Downloads.swf",
	enter: "Header_Enter.swf",
	gallery: "Header_entries_gallery.swf",
	faqs: "Header_faqs.swf",
	terms: "Header_terms.swf",
	thankyou: "Header_thanks.swf",
	contact: "Header_contactUs.swf"
};


//----------------------------------------------
// Class
//----------------------------------------------
var Optus = window.Optus = {
	filePath: '',
	siteUrl: '',
	log: function () {
		if (window.console && console.log) {
			console.info.apply(console, arguments);
		}
	},
	trackPageview: function (url) {
		try {
			pageTracker._trackPageview(url);
		} catch (e) {}
	},
	trackEvent: function (category, action, label, value) {
		try {
			pageTracker._trackEvent(category, action, label, value);
		} catch (e) {}
	},
	init: function (filePath, siteUrl) {
		this.filePath = filePath;
		this.siteUrl = siteUrl;

		// initialize side tabs
		this.sidetabs.init();

		// initialize feed
		this.feed.init();

		// initialize socialmedia sharing
		this.social.init();
	},
	start: function(){
		this.navigation.init();
		this.navigation.show();
		if ($.browser.msie && $.browser.version.substr(0,1)<8) {
			$("#live-news-feed, #on-the-ball, #optus, #side-facebook-widget").show();
		} else {
			$("#live-news-feed, #on-the-ball, #optus, #side-facebook-widget").fadeIn();
		}
		// tracking for all pages by KAT - not sure if this is spot correct - but hey!
		$('#optus').click(function(){
			var page = window.location;
			Optus.trackEvent("Optus Logo", "Clicked on logo", page);
		});
		$('a[href^="mailto"]').click(function() {
			var mailLink = $(this).attr('href');
			Optus.trackEvent("Mailto link", mailLink);
		});
		$('div#navigation li a').click(function() {
			var page = window.location;
			var whichLink = $(this).text();
			Optus.trackEvent("Main navigation", whichLink, page);
		});
		$('ul.links li a').click(function() {
			var page = window.location;
			var whichLink = $(this).text();
			Optus.trackEvent("Footer navigation", whichLink, page);
		});
		$('#on-the-ball a').click(function() {
			var page = window.location;
			Optus.trackEvent("Stay on the ball", "Sign up now", page);
		});
		$('#feed a').click(function() {
			var page = window.location;
			var whichLink = $(this).text();
			Optus.trackEvent("News feed", whichLink, page);
		});
	},
	error: {
		init:function(){
			var page = window.location;
			Optus.trackEvent("Error Page Viewed", page);
		}
	},
	stop: function(callback){
		this.navigation.hide();
		$("#live-news-feed, #on-the-ball, #side-facebook-widget").fadeOut(1000);
		$("#optus").fadeOut(1000, callback);
	},
	title:{
		init:function(app){
			var flashvars = {};
			var params = {wmode:"transparent"};
			var attributes = {};
			swfobject.embedSWF(Optus.filePath + "/_flash/" + app, "title-header", "550", "120", "9", "/_flash/expressInstall.swf", flashvars, params, attributes);
		}
	},
	navigation:{
		init:function(){
			// center navigation 
			var navWidth = $("#navigation ul").width();
			var pageWidth = $(".page-width").width();
			var newMargin = (pageWidth - navWidth)/2;
			$("#navigation ul:first").css('margin-left', newMargin);
			$("div#navigation ul li").hover(function(){
				$(this).find('a.top').addClass('hover');
				$(this).find('ul:first').css({visibility: "visible",display: "none"}).show(268); 
			},function(){ 
				$(this).find('ul:first').css({visibility: "hidden"}); 
				$(this).find('a.top').removeClass('hover');
				Cufon.refresh();
			});		
		},
		show:function(){
			$("#navigation").animate({top:"0px"}, "slow");
		},
		hide:function(){
			$("#navigation").animate({top:"-22px"}, "slow");
		}
	},
	sidetabs:{
		init:function(){
			var closePosition = "-164px";
			$("#live-news-feed h4").click(function(){
				var page = window.location;
				if($(this).parent().css("left") === closePosition){
					Optus.trackEvent("Side tab", "News feed open", page);
					$(this).parent().animate({left: "0"});
				} else {
					Optus.trackEvent("Side tab", "News feed close", page);
					$(this).parent().animate({left: closePosition});
				}
			});
			$("#live-news-feed").hide();
						
			$("#on-the-ball h4").click(function(){
				var page = window.location;
				if($(this).parent().css("left") === closePosition){
					Optus.trackEvent("Side tab", "Stay on the ball open", page);
					$(this).parent().animate({left: "0"});
				} else {
					Optus.trackEvent("Side tab", "Stay on the ball close", page);
					$(this).parent().animate({left: closePosition});
				}
			});
			$("#on-the-ball").hide();
			var closePositionWidget = "-292px";
			$("#side-facebook-widget h4").click(function(){
				var pageTitle = $('title').text();
				Optus.trackEvent("Side tab", "Facebook widget", "Facebook widget tab is clicked on: " + pageTitle);
				if($(this).parent().css("left") === closePositionWidget){
					$(this).parent().animate({left: "0"});
				} else {
					$(this).parent().animate({left: closePositionWidget});
				}
			});
			$("#side-facebook-widget").hide();
		}
	},
	bg:{
		init:function(background, resizable) {
			var flashvars = {contentUrl:Optus.filePath + "/_flash/"+background + ".swf", resizable: (resizable)?1:0, flashRoot:Optus.filePath + "/_flash/", clickTag: "http://www.google.com.au"};
			var params = {quality:"best", wmode:"transparent"};
			var attributes = {id:"flash-bg"};
			swfobject.embedSWF(Optus.filePath + "/_flash/ContentLoader.swf", attributes.id, "100%", "100%", "9", "/_flash/expressInstall.swf", flashvars, params, attributes);
		},
		replay:function(){
			var obj = swfobject.getObjectById("flash-bg");
			if (obj) {
				obj.replay();
			}
		},
		show:function(){
			var obj = swfobject.getObjectById("flash-bg");
			if (obj) {
				obj.show();
			}
		},
		hide:function(){
			var obj = swfobject.getObjectById("flash-bg");
			if(obj) {
				obj.hide();
			}
		}
	},
	video:{
		offset: 0,
		init:function(target, title, id, hd, w, h){
		},
		play:function(id){
			if ( $.browser.msie && $.browser.version == '7.0' || $.browser.version == '6.0' ) {
				var flashvars = {};
				var params = {allowScriptAccess: "always", quality:"best", wmode:"transparent", allowFullScreen: "true"};
				var attributes = {id: "player", allowfullscreen:"true"};
				swfobject.embedSWF("http://www.youtube.com/v/"+id+"?howinfo=0&fs=1&enablejsapi=1", "player", "696", "380", "9", "/_flash/expressInstall.swf", flashvars, params, attributes);
			} else {
				$('iframe').attr("src", "http://www.youtube.com/embed/"+id+"?showinfo=0&enablejsapi=1");
			}
			return false;
		}
	},
	// form validation
	recordForm:{
		init:function () {
			$('#form_user').validate({
				   rules: {
					"user[firstname]":		{ required:true },
					"user[lastname]":		{ required:true },
					"user[email]":			{ required:true, email:true },
					"user[confirm_email]":	{ required:true, email:true, equalTo:'#form_user_email' },
					"user[mobile_number]":	{ ausMobile:true, required:true },
					"user[age]":			{ required:true },
					"user[agree_terms]":	{ required:true }
				},
				errorPlacement: function(error, element) {
					var next = element.attr('type');
					if (next === 'checkbox') {
						error.insertAfter(element);
					} else {
						error.insertBefore(element);
					}
				},
				messages: {
					"user[firstname]":		{ required:"Required field" },
					"user[lastname]":		{ required:"Required field" },
					"user[email]":			{ required:"Required field", email:"Email must be a valid email address" },
					"user[confirm_email]":	{ required:"Required field", email:"Validate email must be a valid email address", equalTo:"Your confirmation email address does not match" },
					"user[mobile_number]":	{ required:"Required field", ausMobile:"Please enter a valid mobile number" },
					"user[age]":			{ required:"Required field" },
					"user[agree_terms]":	{ required:"You must agree to the terms and conditions" }
				}
			});
		}
	},
	// OSSF Enter form validation
	ossfEnterForm:{
		init:function () {
			$('#form_user').validate({
				   rules: {
					"ossfentry[firstname]":						{ required:true },
					"ossfentry[lastname]":						{ required:true },
					"ossfentry[mobile_number]":					{ ausMobile:true, required:true },
					"ossfentry[street]":						{ required:true },
					"ossfentry[suburb]":						{ required:true },
					"ossfentry[state]":							{ required:true },
					"ossfentry[postcode]":						{ required:true, /* number: true,	*/rangelength: [4, 4]},
					"ossfentry[email]":							{ required:true, email:true },
					"ossfentry[confirm_email]":					{ required:true, email:true, equalTo:'#form_user_email' },
					"ossfentry[areyoua]":						{ required:true },
					// LEADERSHIP
					"ossfawards[leadershipMemberFederation]":	{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					"ossfawards[leadershipClubName]":			{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					"ossfawards[leadershipState]":				{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					"ossfawards[leadershipAge]":				{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					"ossfawards[leadershipGender]":				{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					"ossfawards[leadershipTeamName]":			{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					"ossfawards[leadershipCopy]":				{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  },
																  maxWords: 250
																},
					"ossfawards[leadershipRegoNumber]":			{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  },
																  number: true,
																  rangelength: [8, 8]
																},
					"ossfawards[uploaded_file_id_leadership]":	{ required: function(element) {
																	return ($("input#form_user_leadership").is(":checked"));
																  }
																},
					// PROMISING
					"ossfawards[promisingMemberFederation]":	{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					"ossfawards[promisingClubName]":			{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					"ossfawards[promisingState]":				{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					"ossfawards[promisingAge]":					{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					"ossfawards[promisingGender]":				{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					"ossfawards[promisingTeamName]":			{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					"ossfawards[promisingCopy]":				{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  },
																  maxWords: 250
																},
					"ossfawards[promisingRegoNumber]":			{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  },
																  number: true,
																  rangelength: [8, 8]
																},
					"ossfawards[uploaded_file_id_promising]":	{ required: function(element) {
																	return ($("input#form_user_promising").is(":checked"));
																  }
																},
					// TEAM
					"ossfawards[teamMemberFederation]":			{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					"ossfawards[teamClubName]":					{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					"ossfawards[teamState]":					{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					"ossfawards[teamAge]":						{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					"ossfawards[teamGender]":					{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					"ossfawards[teamTeamName]":					{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					"ossfawards[teamCopy]":						{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  },
																  maxWords: 250
																},
					"ossfawards[teamRegoNumber]":				{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  },
																  number: true,
																  rangelength: [8, 8]
																},
					"ossfawards[uploaded_file_id_team]":		{ required: function(element) {
																	return ($("input#form_user_team").is(":checked"));
																  }
																},
					// COACH
					"ossfawards[coachMemberFederation]":		{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					"ossfawards[coachClubName]":				{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					"ossfawards[coachState]":					{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					"ossfawards[coachAge]":						{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					"ossfawards[coachGender]":					{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					"ossfawards[coachTeamName]":				{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					"ossfawards[coachCopy]":					{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  },
																  maxWords: 250
																},
					"ossfawards[uploaded_file_id_coach]":		{ required: function(element) {
																	return ($("input#form_user_coach").is(":checked"));
																  }
																},
					// MEDIA not used?
					"uploaded_file_id":							{ required: "#no_media:unchecked" },
					// OPT INS
					"ossfentry[agree_terms]":					{ required:true },
					"ossfentry[guardianconsent]":				{ required:true },
					"ossfentry[confirmedguardian]":				{ required:true },
					// CAPTCHA
					"captcha[captchaGenerated]":				{ required:true },
					"captcha[captchaUserInput]":				{ required:true, equalTo: "#form_register_captcha_generated" }
				},
				groups: {
					awards: "ossfentry[leadership] ossfentry[promising] ossfentry[team] ossfentry[coach]"
				},
				errorPlacement: function(error, element) {
					var next = element.attr('type');
					if (next === 'checkbox') {
						error.insertBefore(element);
					} else if (next === 'radio') {
						error.insertAfter(element.parent().find('label'));
					} else {
						error.insertBefore(element);
					}
				},
				messages: {
					"ossfentry[firstname]":						{ required:"Required field" },
					"ossfentry[lastname]":						{ required:"Required field" },
					"ossfentry[mobile_number]":					{ required:"Required field", ausMobile:"Invalid Mobile" },
					"ossfentry[street]":						{ required:"Required field" },
					"ossfentry[suburb]":						{ required:"Required field" },
					"ossfentry[state]":							{ required:"Required field" },
					"ossfentry[postcode]":						{ required:"Required field",
																  number: "Numbers only",
																  rangelength: function(range, input) {
																	 return [
																		 'Australian postcodes are ',
																		 range[0],
																		 ' digits long. You have typed ',
																		 $(input).val().length,
																		 ' digits'
																	 ].join('');
																  }
																},
					"ossfentry[email]":							{ required:"Required field", email:"Invalid Email" },
					"ossfentry[confirm_email]":					{ required:"Required field", email:"Invalid Email", equalTo:"Your confirmation email address does not match" },
					"ossfentry[areyoua]":						{ required:"Required field" },
					// LEADERSHIP
					"ossfawards[leadershipMemberFederation]":	{ required:"Required field" },
					"ossfawards[leadershipClubName]":			{ required:"Required field" },
					"ossfawards[leadershipState]":				{ required:"Required field" },
					"ossfawards[leadershipAge]":				{ required:"Required field" },
					"ossfawards[leadershipGender]":				{ required:"Required field" },
					"ossfawards[leadershipTeamName]":			{ required:"Required field" },
					"ossfawards[leadershipCopy]":				{ required:"Required field" },
					"ossfawards[leadershipRegoNumber]":			{ required:"Required field",
																  number: "You must enter numbers only",
																  rangelength: function(range, input) {
																	 return [
																		 'Your FFA Player rego number is ',
																		 range[0],
																		 ' digits long. EG: 43748596. You have typed ',
																		 $(input).val().length,
																		 ' digits'
																	 ].join('');
																  }
																},
					"ossfawards[uploaded_file_id_leadership]":	{ required:"You are required to submit a photo or a 1 minute video to enter the competition" },
					// PROMISING
					"ossfawards[promisingMemberFederation]":	{ required:"Required field" },
					"ossfawards[promisingClubName]":			{ required:"Required field" },
					"ossfawards[promisingState]":				{ required:"Required field" },
					"ossfawards[promisingAge]":					{ required:"Required field" },
					"ossfawards[promisingGender]":				{ required:"Required field" },
					"ossfawards[promisingTeamName]":			{ required:"Required field" },
					"ossfawards[promisingCopy]":				{ required:"Required field" },
					"ossfawards[promisingRegoNumber]":			{ required:"Required field",
																  number: "You must enter numbers only",
																  rangelength: function(range, input) {
																	 return [
																		 'Your FFA Player rego number is ',
																		 range[0],
																		 ' digits long. EG: 43748596. You have typed ',
																		 $(input).val().length,
																		 ' digits'
																	 ].join('');
																  }
																},
					"ossfawards[uploaded_file_id_promising]":	{ required:"You are required to submit a photo or a 1 minute video to enter the competition" },
					// TEAM
					"ossfawards[teamMemberFederation]":			{ required:"Required field" },
					"ossfawards[teamClubName]":					{ required:"Required field" },
					"ossfawards[teamState]":					{ required:"Required field" },
					"ossfawards[teamAge]":						{ required:"Required field" },
					"ossfawards[teamGender]":					{ required:"Required field" },
					"ossfawards[teamTeamName]":					{ required:"Required field" },
					"ossfawards[teamCopy]":						{ required:"Required field" },
					"ossfawards[teamRegoNumber]":				{ required:"Required field",
																  number: "You must enter numbers only",
																  rangelength: function(range, input) {
																	 return [
																		 'Your FFA Player rego number is ',
																		 range[0],
																		 ' digits long. EG: 43748596. You have typed ',
																		 $(input).val().length,
																		 ' digits'
																	 ].join('');
																  }
																},
					"ossfawards[uploaded_file_id_team]":		{ required:"You are required to submit a photo or a 1 minute video to enter the competition" },
					// COACH
					"ossfawards[coachMemberFederation]":		{ required:"Required field" },
					"ossfawards[coachClubName]":				{ required:"Required field" },
					"ossfawards[coachState]":					{ required:"Required field" },
					"ossfawards[coachAge]":						{ required:"Required field" },
					"ossfawards[coachGender]":					{ required:"Required field" },
					"ossfawards[coachTeamName]":				{ required:"Required field" },
					"ossfawards[coachCopy]":					{ required:"Required field" },
					"ossfawards[uploaded_file_id_coach]":		{ required:"You are required to submit a photo or a 1 minute video to enter the competition" },
					// MEDIA not used?
					"uploaded_file_id":							{ required:"Please upload your video or image above. If you don't have one use the check the box below." },
					// OPT INS
					"ossfentry[agree_terms]":					{ required:"You must agree to the terms and conditions" },
					"ossfentry[guardianconsent]":				{ required:"You must be over the age of 18 years and/or the parent/legal guardian" },
					"ossfentry[confirmedguardian]":				{ required:"You must be the parent or guardian of the child entered/pictured" },
					// CAPTCHA
					"captcha[captchaGenerated]":				{ required:"Hidden field for Captcha verification is required. Please refresh the page to restore this field." },
					"captcha[captchaUserInput]":				{ required:"Security code field is required", equalTo: "Your security code is not valid" }
				}
			});
			jQuery.validator.addMethod('awards', function(){
				if ($('#form_user .awards:checked').length >= 1) {
					return true;
				} else {
					return false;
				}
			}, "Please choose at least one award");
			jQuery.validator.addClassRules('awards', {
				'awards' : true
			});
		}
	},
	social:{
		init:function(){
			$('div#footer a.facebook, div#footer a.twitter').click(function (e) {
				e.preventDefault();
				var network = this.hash.substr(1),
				func = social[network];
				Optus.trackEvent("Share", network, "footer");
				if (!(network in social) || !$.isFunction(func)) {
					Optus.trackEvent("Share", 'Invalid social network', "footer");
					return false;
				}
				func();
			});
			$('#social-media-box a').click(function (e) {
				e.preventDefault();
				var page = window.location;
				var network = this.hash.substr(1),
				func = social[network];
				Optus.trackEvent("Share", network, page);
				if (!(network in social) || !$.isFunction(func)) {
					Optus.trackEvent("Share", 'Invalid social network', page);
					return false;
				}
				func();
			});
		}
	},
	ossfViralsShare:{
		init:function(videoId, shareId, network){
			if (videoId == 1) {
		 		social.setOptions({
					twitterMessage: "Optus is giving you the chance to get behind your team like never before. Visit the site and check out the leaderboard optus.com.au/aleague"
				});
			} else {
		 		social.setOptions({
					twitterMessage: "Optus is giving you the chance to get behind your team like never before. Visit the site and check out the leaderboard optus.com.au/aleague"
				});
			}
			if (shareId) {
				social.setOptions({
					url: 'http://optusfootball.com.au/virals?id=' + shareId
				});
			}
			func = social[network];
			Optus.trackEvent("Share", network, 'Viral Video Share');
			if (!(network in social) || !$.isFunction(func)) {
				Optus.trackEvent("Share", 'Invalid social network', 'Viral Video Share');
				return false;
			}
			func();
		}
	},
	feed:{
		index:0,
		init:function(){
			google.load("feeds", "1");
			google.setOnLoadCallback(this.setup);
			$("a.prev").click(function(){
				var list = $("#feed li");
				$(list[Optus.feed.index]).hide();
				if(Optus.feed.index === 0){
					Optus.feed.index = 3;
				}else{
					Optus.feed.index--;
				}
				$(list[Optus.feed.index]).fadeIn('slow');
				return false;
			});
			$("a.next").click(function(){
				var list = $("#feed li");
				$(list[Optus.feed.index]).hide();
				if(Optus.feed.index === 3){
					Optus.feed.index = 0;
				}else{
					Optus.feed.index++;
				}
				$(list[Optus.feed.index]).fadeIn('slow');
				return false;
			});
		},
		setup:function(){
			var d = new Date().valueOf();
			var feed = new google.feeds.Feed("http://www.footballaustralia.com.au/site/_content/rss/aleague.xml");
			feed.load(function(result) {
				if(!result.error) {
					$("#feed div#results").append('<ul></ul>');
					for (var i = 0; i < result.feed.entries.length; i++) {
						var entry = result.feed.entries[i];
						var title = entry.title;
						var link = entry.link;
						var desc = entry.content.substring(0, 75) + '...';
						$('#feed div#results ul').append('<li class="rss-item"><h3><a href="' + link + '" target="_blank">' + title + '</a></h3><div class="desc">' + desc + '</div></li>');
						// Optus.log(title);
					}
					$("#live-news-feed h4").click()
					
				} else {
					$("#feed div#results").html("The RSS feed is currently offline.");
				}
				var list = $("#feed li");
				$(list[Optus.feed.index]).show();
			});
		}
	},
	//----------------------------------------------
	// Pages
	//----------------------------------------------
	home:{

		init: function () {
			Optus.bg.init(bgMap.home, false);
			this.start();
		},
		start:function(){
			Optus.start();
			// init highlights
			$("#link-box").fadeIn();
		}

	},
	highlights: {
		init:function(){
			// init highlights function - at top of page
			highlights();
			// tracking
			$('#highlights li a').click(function() {
				var link = $(this).find('span.h4').text();
				var page = window.location;
				Optus.trackEvent('Bottom navigation link', link, page);
			});
		}
	},
	football:{
		init:function(pageType, heading){
			Optus.title.init(headerMap.football);
			Optus.start();
		}
	},
	contact:{
		init:function(){
			Optus.title.init(headerMap.contact);
			Optus.start();
		}
	},
	/* OSSF related stuff **/
	ossfGallery:{
		init:function(){
			Optus.title.init(headerMap.gallery);
			$('#filter').click(function() {
				var items = "";
				$('form#form_entriesFilterBy :input:not(#filter)').each(function() {
					var theID = $(this).attr('id');
					var searched = $(this).val();
					if (searched) {
						items += theID + ' - ' + searched + ', ';
						Optus.trackEvent("Gallery entry search", "Single search entries", theID + " " + searched );
					}
				});
				if (items == ""){
					Optus.trackEvent("Gallery entry search", "Empty search");
				} else {
					Optus.trackEvent("Gallery entry search", "Full search", items);
				}
			});
			// tracking
			$('ul.entries li a').click(function() {
				var type = $(this).attr('class');
				var entry = $(this).attr('href');
				Optus.trackEvent("Gallery entry", entry, type );
			});
			Optus.start();
		}
	},
	ossfGalleryEntry:{
		init:function(youtubeID){
			Optus.title.init(headerMap.gallery);
			// track entry clicks
			$('ul.entries li a').click(function() {
				var type = $(this).attr('class');
				var entry = $(this).attr('href');
				Optus.trackEvent("Gallery entry", entry, type );
			});
			// vote tracking
			$('a.vote').click(function() {
				var entry = window.location;
				Optus.trackEvent("Vote", entry );
			});
			Optus.start();
		}
	},
	ossfFAQ:{
		init:function(){
			Optus.title.init(headerMap.faqs);
			Optus.start();
		}
	},
	ossfWinners:{
		init:function(){
			$(".award-categories").click(function(e){

				e.preventDefault(e);

				// prepare
				var categoryBox			= $(this).attr("href")
					, showVideo			= $(this).attr("data-show-video")
					, requestedVideo	= $(this).attr("data-video-id")
					, containerHeight;

				// set as current
				$(".award-categories").removeClass("current");
				$(this).addClass("current");

				// hide any other category boxes
				$(".award-box").hide();

				// hide other view entry buttons
				$(".button-view-entry").removeClass("show-button");

				// show category box
				$(categoryBox).show();
				$(categoryBox + " .announcement").fadeIn("fast");

				// show alt
				$(categoryBox + "-alt").show();
				$(categoryBox + "-alt .announcement").fadeIn("fast");

				// show video or not
				if(showVideo === "yes") {

					// homepage video
					var flashvars = { videoUrl: Optus.filePath + "/_flash/ossfAwardVideos/" + requestedVideo + ".flv" };
					var params = { wmode:"transparent", allowFullScreen:"false" };
					var attributes = {};
					swfobject.embedSWF(Optus.filePath + "/_flash/ossfAwardVideos/videoPlayer.swf", "lucas", "500", "750", "8", false, flashvars, params, attributes);

					// hide background image
					$("#lucas-image").hide();

				} else {

					// replace container
					$("#lucas").replaceWith('<div id="lucas"></div>');

					// hide background image
					$("#lucas-image").hide();

				}

				// show view entries button
				$(categoryBox + "-button").addClass("show-button");

				//..
				containerHeight		= $("#home-page .content-container").outerHeight();
				$("#home-page").css("min-height", containerHeight);
				$("#home-page .content-container").css("min-height", containerHeight);

			});

			$("#lucas-container img").fadeIn('slow');
			Optus.start();
		}
	},
	ossfTerms:{
		init:function(){
			Optus.title.init(headerMap.terms);
			Optus.start();
		}
	},
	ossfAwards:{
		init:function(){
			// show award via hash
			var whichAward = window.location.hash.substr(1);
			showAward(whichAward);
			// click to show award videos
			$('div#theawards a').click(function(){
				var theaward = $(this).attr('href').substr(1);
				showAward(theaward);
				return false;
			});
			// show award function
			function showAward(theaward) {
				if ((theaward != "leadership") && (theaward != "promising") && (theaward != "team") && (theaward != "coach")) {
					theaward = "leadership"
				}
				if (theaward) {
					$('div.award:visible').hide();
					$('a#award-entry').attr('href', Optus.filePath + '/ossf/enter#' + theaward )
					$('div#' + theaward + '-award').show();
					$('h4 a.active').removeClass('active');
					$('h4#' + theaward + '-award a').addClass('active');
					if ((navigator.platform.indexOf("iPhone") != -1) || (navigator.platform.indexOf("iPod") != -1)) {
						$("#lucas-container img").fadeIn('slow');
					} else {
						if (theaward == 'promising') {
							$('#lucas').remove();
							$("#lucas-container").append('<div id="lucas"></div>');
							$("#lucas-container img").fadeIn('slow');
						} else {
							$("#lucas-container img:visible").hide();
							var flashvars = { videoUrl:  Optus.filePath + "/_flash/ossfAwardVideos/award_" + theaward + ".flv" };
							var params = { wmode:"transparent", allowFullScreen:"false" };
							var attributes = { id: "lucas" };
							swfobject.embedSWF( Optus.filePath + "/_flash/ossfAwardVideos/videoPlayer.swf", "lucas", "500", "750", "8", false, flashvars, params, attributes);
						}
					}
				} 
				highlights();
				return false;
			}
			// tracking
			$('a#enter-now').click(function() {
				Optus.trackEvent('Enter now', 'any', 'Awards Criteria page');
			});
			
			$('a#award-entry').click(function() {
				var whichAward = $('div.award:visible h3:first').text();
				Optus.trackEvent("Enter now", whichAward, "Awards Criteria page" );
			});
			Optus.start();
		}
	},
	ossfViralVideo : {
		init : function() {
			var swfFilePath = Optus.filePath + "/_flash/ossfAwardVideos/",
				r = Math.round(Math.random() * 1000000),
				flashvars = { target:swfFilePath + 'OSSF.swf' },
				params = { allowScriptAccess:'always', menu:'false', allowfullscreen:'true', wmode:"transparent" },
				attributes = { id:'flash' };
				
			swfobject.embedSWF(swfFilePath + "OSSFPreloader.swf?noCache=" + r, "flash", "780", "730", "10.0.0", "/_flash/expressInstall.swf", flashvars, params, attributes);
			Optus.start();
		}
	},
	virals:{
		init:function(){
			$('div#overlay').fadeTo('fast', 0.5);
			//$('div#virals-headings').show();
			Optus.start();
		}
	},
	ossfThankyou:{
		init:function(){
			Optus.title.init(headerMap.thankyou);
			Optus.start();
		}
	},
	ossfAjaxStateFilter:{
		init:function() {
			var url = 'http://'+ Optus.siteUrl + Optus.filePath +'/service/ossf/ajax/';

			$("#state").change(function() {
				var id = $(this).val();
				var dataString = 'id='+ id;
				$("li.three img").show();
				$.ajax({
					type: "POST",
					url: url,
					data: dataString,
					cache: false,
					success: function(html)
					{
						$("#clubName").html(html);
						$("li.three img").hide();
					}
				});
			});
		}
	},
	ossfEnter:{
		init:function(){
			Optus.title.init(headerMap.enter);
			Optus.start();
			//show particular form
			var whichAward = window.location.hash.substr(1);
			if ((whichAward != "leadership") && (whichAward != "promising") && (whichAward != "team") && (whichAward != "coach") && (whichAward != "")) {
				whichAward = "";
			}
			specificAward(whichAward);
			function specificAward(whichAward) {
				if (whichAward) {
					$('div#award-options input:not(#form_user_' + whichAward + ')').attr('checked', false);
					$('#form_user_' + whichAward).attr('checked', true);
					$('div.award:not(#'+ whichAward +'-award)').css({
						height: 0,
						margin: 0,
						padding: 0,
						overflow: 'hidden',
						display: 'none',
						visibility: 'hidden'
					});
				} else {
					$('div#award-options input').attr('checked', false);
					$('div.award').css({
						height: 0,
						margin: 0,
						padding: 0,
						overflow: 'hidden',
						display: 'none',
						visibility: 'hidden'
					});
				}
			}
						
			empty = true;
			submit = false;
			// alert when leaving the page they could loose all their data
			function askConfirm() {
				$(':input:visible:not(#form_user_btnSubmit, .btnCancel, .btnStart), .uploaded_file_id').each(function() {
					// check to see if there is a value in the form
					if ($(this).is('input:checkbox, input:radio')) {
						if ($(this).is(':checked')) {
							empty = false;
							return false;
						}
					} else {
						if ( $(this).val() != "" ) {
							empty = false;
							return false;
						}
					}
				});
				if (empty == true) {
					Optus.trackEvent("Leaving ossf Enter", "No fields entered");
				} else {
					if (submit === false) {
						$(window).unload( function() {
							items = "";
							// all form elements that are visible
							$(':input:visible:not(.btnCancel, .btnStart), .uploaded_file_id').each(function() {
								var theID = $(this).attr('id');
								// checkboxes needed to have a value so - we check for them being checked
								if ($(this).is('input:checkbox:not(:checked), input:radio:not(:checked)')) {
									items += theID + ', ';
								} else {
								  if (!$(this).val()) {
								  	items += theID + ', ';
								  }
								}
							});
							Optus.trackEvent("Leaving ossf Enter", "Unfinished", items );
						});
						return "You have made unsaved changes. Would you still like to leave this page?";
					} else {
						$(window).unload( function() {
							whichAward = "";
							$('#award-options input:checked').each(function() {
								whichAward += $(this).attr('id') + ', ';
							});
							Optus.trackEvent("Ossf entry", "awards", whichAward );
						});
					}
				}
			}
			// do stuff if its valid on submit + tracking
			$("#form_user").submit(function() {
				var isValid = $('#form_user').valid();
				if (isValid == false) {
					Optus.trackEvent("Ossf enter submit", "invalid");
				} else {
					Optus.trackEvent("Ossf enter submit", "valid");
					submit = true;
				}
			});

			// run the unload function
			window.onbeforeunload = askConfirm;
			
			//click events to show elements
			$("#form_user_leadership").click(function(){
				// If checked
				if ($("#form_user_leadership").is(":checked")) {
					Optus.showHide('#leadership-award', 'show');
				} else {
					Optus.showHide('#leadership-award');
				}
			});
			$("#form_user_promising").click(function(){
				// If checked
				if ($("#form_user_promising").is(":checked")) {
					Optus.showHide('#promising-award', 'show');
				} else {
					Optus.showHide('#promising-award');
				}
			});
			$("#form_user_team").click(function(){
				// If checked
				if ($("#form_user_team").is(":checked")) {
					Optus.showHide('#team-award', 'show');
				} else {
					Optus.showHide('#team-award');
				}
			});
			$("#form_user_coach").click(function(){
				// If checked
				if ($("#form_user_coach").is(":checked")) {
					Optus.showHide('#coach-award', 'show');
				} else {
					Optus.showHide('#coach-award');
				}
			});
    
			// load clubnames according to state
			var url = 'http://'+ Optus.siteUrl + Optus.filePath +'/service/ossf/ajax/';
			$("#form_user_leadership_state").change(function() {
				var id = $(this).val();
				var dataString = 'id='+ id;
				$('label[for="form_user_leadership_club_name"] img').show();
				$.ajax({
					type: "POST",
					url: url,
					data: dataString,
					cache: false,
					success: function(html)
					{
						$("#form_user_leadership_club_name").html(html);
						$('label[for="form_user_leadership_club_name"] img').hide();
					}
				});
			});
			$("#form_user_promising_state").change(function() {
				var id = $(this).val();
				var dataString = 'id='+ id;
				$('label[for="form_user_promising_club_name"] img').show();
				$.ajax({
					type: "POST",
					url: url,
					data: dataString,
					cache: false,
					success: function(html)
					{
						$("#form_user_promising_club_name").html(html);
						$('label[for="form_user_promising_club_name"] img').hide();
					}
				});
			});
			$("#form_user_team_state").change(function() {
				var id = $(this).val();
				var dataString = 'id='+ id;
				$('label[for="form_user_team_club_name"] img').show();
				$.ajax({
					type: "POST",
					url: url,
					data: dataString,
					cache: false,
					success: function(html)
					{
						$("#form_user_team_club_name").html(html);
						$('label[for="form_user_team_club_name"] img').hide();
					}
				});
			});
			$("#form_user_coach_state").change(function() {
				var id = $(this).val();
				var dataString = 'id='+ id;
				$('label[for="form_user_coach_club_name"] img').show();
				$.ajax({
					type: "POST",
					url: url,
					data: dataString,
					cache: false,
					success: function(html)
					{
						$("#form_user_coach_club_name").html(html);
						$('label[for="form_user_coach_club_name"] img').hide();
					}
				});
			});
			// Tracking Facebook page clicks + type
			$('div.column-fb a').click(function(){
				var linkClass = $(this).attr('class');
				Optus.trackEvent("Facebook page", linkClass, "Ossf enter page");
			});
		}

	},
	generic:{
		init:function(){
			Optus.bg.init(bgMap.generic, false);
			Optus.start();
		}
	},
	aleague:{
		init:function(){
			Optus.start();
		}
	},
	register:{
		init:function(){
			Optus.bg.init(bgMap.generic, false);
			Optus.title.init(headerMap.register);
			// do stuff if its valid on submit + tracking
			$("#form_user").submit(function() {
				var isValid = $('#form_user').valid();
				if (isValid == false) {
					Optus.trackEvent("Stay on the ball submit", "invalid");
				} else {
					Optus.trackEvent("Stay on the ball submit", "valid");
				}
			});

			Optus.start();
		}
	},
	gallery:{
		init:function(videoid, title){
			Optus.bg.init(bgMap.generic, false);
			Optus.start();
			if ($.browser.msie && $.browser.version.substr(0,1)<8) {
				// do not use cufon if ie6
			} else {
				Cufon.replace(".info h5 > a", {hover: true});
			}
		}
	},
	downloads:{
		init:function(videoid, title){
			Optus.bg.init(bgMap.generic, false);
			Optus.title.init(headerMap.downloads);
			Optus.start();
			$("#downloads-page .content-container ul li .panel").hide();
			$("#downloads-page .content-container ul li").hover(function(){
				$(this).children().stop().css('opacity', 1).fadeIn();
			},
			function(){
				$(this).children().stop().css('opacity', 1).fadeOut();
			});
		}
	},
	// This function is necessary as setting the css display to none causes the flash to not fully load in the background
	// Therefore causing errors when trying to upload an item
	// http://swfupload.org/forum/generaldiscussion/1418 See entry on April 16, 2009 - 9:33am - point #2
	showHide: function showHide(element, type) {
		// Set the default to 'hide'
		if (!type) {
			type = 'hide';
		}
		if (type == 'hide') {
			$(element).css({
				visibility: 'hidden',
				height: 0,
				margin: 0,
				padding: 0,
				display: 'none',
				overflow: 'hidden'
			});
		}
		if (type == 'show') {
			$(element).css({
				visibility: 'visible',
				height: 'auto',
				margin: '',
				padding: '',
				display: 'block'
			});
		}
	}
};
})(this, jQuery);
