google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");


// PAGE LOAD
google.setOnLoadCallback(function() {
	$('#bkgnd').ready(function() {
	
		// Kick off preloader
		preloader();
		
		// Initialize
		init();

	});
});



var gallery_previews = '';
var thumbs = false;
// PRELOADER
var pre_images = [];
function preloader() {

	// Preload homepage image
	pre_images['home'] = new Image();
	pre_images['home'].src = "/img/bkgnd_home.jpg";

	// Preload open menu image	
	pre_images['menuopen'] = new Image();
	pre_images['menuopen'].src = "/img/bkgnd_menuopen.jpg";
	
	// Preload LPA images
	if ($('body').attr('class') == 'lpa') {
		pre_images['lpa1'] = new Image();
		pre_images['lpa1'].src = "/img/bkgnd_lpa1.jpg";
		
		pre_images['lpa2'] = new Image();
		pre_images['lpa2'].src = "/img/bkgnd_lpa2.jpg";
		
		pre_images['lpa3'] = new Image();
		pre_images['lpa3'].src = "/img/bkgnd_lpa3.jpg";
	}

	// Preload menu backgrounds
	$(".mitem").each(function(){
		if($(this).attr('id') != 'menue'){
			name = $(this).attr('href').replace(/\//g, '');
			img_name = "bkgnd_" + name + ".jpg";
			pre_images[name] = new Image();
			pre_images[name].src = "/img/"+img_name;
		}
	});
	
	// Preload kidrock pages
	pre_images['kidrockgallery'] = new Image();
	pre_images['kidrockgallery'].src = "/img/bkgnd_"+"kidrockgallery"+".jpg";
	pre_images['kidrockoh'] = new Image();
	pre_images['kidrockoh'].src = "/img/bkgnd_"+"kidrockoh"+".jpg";
	pre_images['kidrocksweeps'] = new Image();
	pre_images['kidrocksweeps'].src = "/img/bkgnd_"+"kidrocksweeps"+".jpg";
	pre_images['kidrocktour'] = new Image();
	pre_images['kidrocktour'].src = "/img/bkgnd_"+"kidrocktour"+".jpg";
	pre_images['kidrockdownloads'] = new Image();
	pre_images['kidrockdownloads'].src = "/img/bkgnd_"+"kidrockdownloads"+".jpg";
}



// PAGE LOADED
var currentrecipe = 1;
var currentnote = 1;
var menuopen = false;
var cstep = 0;
var chunk = 0;
function init() {




	// Bind External links
	$('a[rel=external]').live("click", function(e) {
	
		var href= $(this).attr('href');
	
		$('body').append('<div id="dialog" style="font-size: 10px;" title="External Link"><p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 40px 0;"></span>You are now leaving TheRedStag.com. Please remember that we are not responsible for content outside of our site.</p></div>');
	
		$("#dialog").dialog({
			bgiframe: true,
			resizable: false,
			height: 150,
			width: 400,
			modal: true,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.5
			},
			buttons: {
				'Continue': function() {
					window.open(href);
					$(this).dialog('close');
				},
				Cancel: function() {
					$(this).dialog('close');
				}
			},
			close: function() {
				$('select').css('display', 'block');
				$('#dialog').remove();
			}
		});
		
		$('select').css('display', 'none');
		
		return false;
	});
	
	// Bind flash video links
	$('.dialog_video').click( function() {
	
		var href= $(this).attr('href');
		var title= $(this).attr('title');
	
		$('body').append('<div id="dialog_video" style="font-size: 10px; text-align: center;" title="'+title+'"><div id="flash_canvas" style="margin: 0 auto 0 auto; border:1px solid #ff0000; height: 310px; width: 480px; "><p style="text-align: center;">You must have <a href="http://get.adobe.com/flashplayer/" rel="external">Flash 10</a> to watch this video.</p></div></div>');
	
		$("#dialog_video").dialog({
			bgiframe: true,
			resizable: false,
			height: 410,
			width: 510,
			modal: true,
			overlay: {
				backgroundColor: '#000',
				opacity: 0.5
			},
			buttons: {
				Close: function() {
					$(this).dialog('close');
				}
			},
			close: function() {
				
				 $('#kr_carrier').css('display', 'block');
				$('#dialog_video').remove();
			}
		});
		
		 $('#kr_carrier').css('display', 'none');
		
		var flashvars = {};
		var params = {
			base: "."
		};
		var attributes = {};
		swfobject.embedSWF("/files/videos/"+href, "flash_canvas", "480", "310", "10.0.0", false, flashvars, params, attributes);
		
		// Tracking code
		track(href);
		
		return false;
	} );
	
	// Track ringtones
	$('#ringtone_form .ringtone_btn').click( function() {
		var selected = $("#ringtone_form input:checked").attr('class');
		track(selected);
		
		setTimeout(function() {
			$('#ringtone_form').submit();
		}, 250);
		
		return false;
	
	});

	// Highlight menu item for current page
	$('.mitem').each(function(){
		if(geturi(this.href) == geturi()){
			$(this).addClass('menuon');
			return false;
		}
	});
	
	// Bind action item clicks
	$('.action').click(actionClick);
	// Bind Kid Rock menu clicks
	$('.kitem').live("click", function(e){

		var href = $(this).attr('href');

		$('#kid_rock').fadeOut(250, function() {
			swapbg('kidrock', href, true, href);
			//window.location = href;
		});
		return false;
	});
	
	// Bind Kid Rock gallery clicks
	$('.gallery_thumb').live("click", function(e){

		// Grab info for large image
		var src = $(this).find('img').attr('src');
		var img = src.split("/")[4];
		var title = $(this).find('img').attr('alt');
		
		// Set large image to new info
		$('#gallery_image img').attr('src', '/gallery/image/1/'+img);
		$('#gallery_image img').attr('alt', title);
		$('#gallery_image p').text(title);
	
		return false;
	});
	
	//each click calculates the next available space to move the viewfinder
	$('.arrow').click(function(){
		if(!thumbs){
			thumbs = $('.thumbs').children();
			thumb_space = 0;
			for(n=0;n<thumbs.length;n++){
				thumb = thumbs[n];
				thumb_space += $(thumb).width();
				if(thumb_space > 400){
					thumb_space -= $(thumb).width();
					n -= 1;
					start = n;
					broken = true;
					break;
				}
				broken = false;
			}
		}
		
		
		if(this.id == 'left_arrow'){
			if(broken && start != n){
				start -= 1;
				w = $(thumbs[start]).width()+4;
				w = parseInt($('.thumbs').css('marginLeft')) + w;
				$('.thumbs').animate({
					marginLeft:w+'px'
				});
			}else{
			}
		}else{
			if(broken && start < thumbs.length-1){
				start += 1;
				
				w = $(thumbs[start]).width()+4;
				w = Math.abs(parseInt($('.thumbs').css('marginLeft'))) + w;
				$('.thumbs').animate({
					marginLeft:'-'+w+'px'
				});
			}else{
			}
		}
		
		return false;
	});

	// Is this the LPA?
	if ($('body').attr('class') == 'lpa') {

		// Bind to LPA form submission
		$("#lpapost").submit( function(e){
			submitLPA();
			return false;
    	});
		
		// Kick off LPA background rotation
		var src = $('#bkgnd').attr('src');
		var imgnum = src.charAt(src.length - 5);
		bgrotate('lpa', imgnum, 3);

	// Is this an internal page?
	} else {
	
		// Start animations after 3/4 second
		setTimeout(function () {
			var classname = $('body').attr('class');
			showstag(classname);
			showstagism(classname);
			showcard(classname);
			
		}, 750);
	
	}
	
	//Holiday JS
	var active_holiday_content = 'recipe_after_ski_tea';
	$("#holiday_content ul li a").click(function(){
		clicked_class = $(this).attr('class').split(' ')[0];
		if(active_holiday_content != clicked_class){
			$('#'+active_holiday_content).hide();
			$('.'+active_holiday_content).removeClass('selected');
			$('#'+clicked_class).show()
			$('.'+clicked_class).addClass('selected');
			active_holiday_content = clicked_class;
		}
		return false;
	});
	
}

function track(event) {

	$.get('/data/track/'+event);

}


function navigate(id, href) {
	// Animate before navigating
	showstag();
	showstagism();
	showcard();
	showoverlay();
	setTimeout( function() {
		swapbg(id, href, true);
	}, 500);
	
}
function expand_menu() {
	// Animate menu expansion
	var menu_state = ($('#menu').css('width') == "80px") ? 0 : 1;
	if ($('body').attr('class').substr(0, 4) == 'home') {
		showstagism();
		setTimeout(function() {
			if(menuopen != true){
				showstagism('home_menu'); 
				menuopen = true;
				swapbg(false, 'menuopen', false);
			}else{
				showstagism('home');
				menuopen = false;
				swapbg(false, 'home', false);
			}
		}, 500);
	}

	if (menu_state) {
		$("#menu").animate( { width:"80"}, 750 );
		menu_state = 0;
	} else {
		$("#menu").animate( { width:"725"}, 750 );
		menu_state = 1;
	}
}


// FORM SUBMISSIONS
function submitLPA() {

	$.post("/lpa/verify", { country: $('#lpa_form select.country option:selected').val() ,
							month: $('#lpa_form select.month option:selected').val() ,
							day: $('#lpa_form select.day option:selected').val() ,
							year: $('#lpa_form select.year option:selected').val() },
		function(data){
		//	alert(data);
		}, "script");
  
}
function submitContact() {
	$.post("/general/contact", { email: $('#frmcontact input.email').val() ,
							email_confirm: $('#frmcontact input.email2').val() ,
							first_name: $('#frmcontact input.fname').val() ,
							last_name: $('#frmcontact input.lname').val() ,
							state: $('#frmcontact select.state option:selected').val() ,
							problem: $('#frmcontact select.problem option:selected').val() ,
							problemtype: $('#frmcontact select.problemtype option:selected').val() ,
							usermessage: $('#frmcontact #usermessage').val() },
		function(data){
		//	alert(data);
		}, "script");
}
function submitRegister(uri) {
	uri = uri ? uri:"register";
	$.post("/member/"+uri, { email: $('#frmregister input.email').val() ,
							email_confirm: $('#frmregister input.email2').val() ,
							first_name: $('#frmregister input.fname').val() ,
							last_name: $('#frmregister input.lname').val() ,
							reg_year: $('#frmregister input.reg_year').val() ,
							reg_month: $('#frmregister input.reg_month').val() ,
							reg_day: $('#frmregister input.reg_day').val() ,
							zipcode: $('#frmregister input.zip').val() ,
							mobile: $('#frmregister input.mobile').val() ,
							email_opt_in: $('#frmregister input.email_opt_in').attr('checked') ,
							mobile_opt_in: $('#frmregister input.mobile_opt_in').attr('checked') },
		function(data){
		//	alert(data);
		}, "script");
}
var EC = '';
function submitEmailCheck() {
	EC = {
		email: $('#frmcheck input.email').val()
		//reg_year: $('#frmregister input.reg_year').val() ,
		//reg_month: $('#frmregister input.reg_month').val() ,
		//reg_day: $('#frmregister input.reg_day').val() ,
		//zipcode: $('#frmregister input.zip').val() ,
	}
	$.post("/member/check", EC,
		function(data){
			//alert(data);
		}, "script");
}

// Process errors passed from PHP
function showError(message) {
	$('#error').html(message);
	$("#error").stop(true, true);
	$("#error").fadeIn(250)
				.fadeTo(2500, 1)
				.fadeOut(2500);

}

// Process confirmations for contact and register
function showConfirm(page) {
	switch (page) {
		case "contact":
			alert('Thank you for your inquiry!');
			showoverlay();
			break;
		case "register":			
			alert('Thank you for registering!');
			showoverlay();
			break;
	}
}


// OVERLAY CONTROLLER
function showoverlay(classname, callback, uri, reshow) {
	var overlay_state = ($('#overlay').css('display') == "block") ? 1 : 0;
	
	var speed = 500;
	
	var path = uri ? "/overlay/"+uri:"/overlay/"+classname;

	if (overlay_state || !classname) {
		// OVERLAY IS TO BE HIDDEN
		
		//var height = $('#overlay').css('height');
		
		var destheight = "-550px";
	
		$('#overlay').animate( {top: destheight }, speed, null, function() {
			$('#overlay').css('display', 'none');
			
			if (overlay_state && classname && $('#overlay').attr('class') != classname || reshow == true) {
				$('#overlay').attr('class', '');
				showoverlay(classname);
			}
		} );
		
		$('select').css('display', 'block');
	
	} else {
		// OVERLAY IS TO BE SHOWN

		$("#overlay").load(path, null, function() {
			
				//var height = $('#overlay').css('clientHeight');
				
				$('#overlay').attr('class', classname);
				
				//alert(height);
				$('#overlay').css('top', "-550px");
				$('#overlay').css('display', 'block');
				
				if (classname == 'register') callback = function() {
					// BIND TO REGISTER FORM
					$("#frmregister").submit( function(e){
						submitRegister(uri);
						return false;
					});
					
					$("#frmcheck").submit( function(e){
						submitEmailCheck();
						return false;
					});
				}
				if (classname == 'contact') callback = function () {
					dynamic_select("problemtype", "problem");
					// BIND TO CONTACT FORM
					$("#frmcontact").submit( function(e){
						submitContact();
						return false;
					});
				}
		
				$('#overlay').animate( {top: '0' }, speed, null, callback);
				$('#overlay .action').click(actionClick);
				//$('select').css('display', 'none');
			
		});
	}
	return false;
}

var actionClick = function(){
	uri = gethash(this.href) || geturi(this.href);
	switch (uri) {
		case "#expand":
			expand_menu();
			break;
		case "terms":
			showoverlay('terms');			
			break;
		case "rules":
			showoverlay('rules');			
			break;
		case "privacy":
			showoverlay('privacy');
			break;
		case "contact":
			showoverlay('contact');	
			break;
		case "sitemap":
			showoverlay('sitemap');
			break;
		case "#register":
			showoverlay('register');
			break;
		case "#cookies":
			showoverlay('cookies');
			break;			
		default:
			pagename = $(this).attr('href').replace(/\//g, '');
			if(geturi() != pagename){
				navigate($(this).attr('id'), $(this).attr('href'));	
			}
	}
	return false;
};

// CARD CONTROLLER
function showcard(classname) {
	var card_state = ($('#card').css('display') == "block") ? 1 : 0;
	
	var speed = 1000;
	
	if ($('#card').css('height') != '0px') {
		if (card_state || !classname) {
		
			// CARD IS TO BE HIDDEN
			var width = $('#card').css('width');
			
			// ANIMATE CARD TO LEFT
			if ($('#card').css('float') == 'left') {
				$('#card').animate( { left: "-"+width }, speed );			
			}

			// ANIMATE CARD TO RIGHT
			else if ($('#card').css('float') == 'right') {
				$('#card').animate( { right: "-"+width }, speed );			
			}
				
			// FADE-IN CARD INSTEAD
			else {
				$('#card').fadeOut( speed );			
			}	
		
		} else {
		
			// STAGISM IS TO BE SHOWN
			var width = $('#card').css('width');
			
			// ANIMATE CARD FROM LEFT
			if ($('#card').css('float') == 'left') {
				$('#card').css('left', "-"+width);
				$('#card').css('display', 'block');
				$('#card').animate( { left: '0' }, speed );			
			}

			// ANIMATE CARD FROM RIGHT
			else if ($('#card').css('float') == 'right') {
				$('#card').css('right', "-"+width);
				$('#card').css('display', 'block');
				$('#card').animate( { right: '0' }, speed );			
			}
				
			// FADE-IN CARD INSTEAD
			else {
				$('#card').fadeIn( speed );			
			}		
		}
	}
}


// STAGISM CONTROLLER
function showstagism(classname) {
	if ($('#stagism') && classname != 'kidrock') {
		var stagism_state = ($('#stagism').css('display') == "block") ? 1 : 0;
		
		var speed = 250;
	
		if (stagism_state || !classname) {
			// STAGISM IS TO BE HIDDEN
		
			$("#stagism").fadeOut(speed, function() {
				$("#stagism").remove();						
			});
		
		} else {
			// STAGISM IS TO BE SHOWN
			
			// CREATE STAGISM ELEMENT
			var stagismdiv = document.createElement('div');
			stagismdiv.id = "stagism";
			$('#stagism_wrapper').append(stagismdiv);
			$("#stagism").attr('class', classname);
			
			//alert(document.getElementById('stagism').className);
			
			setTimeout(function() {
				$("#stagism").fadeIn(speed);
			}, 500);
		}
	}
}


// STAG CONTROLLER
function showstag(classname) {		
	if ($('#stag') && classname != 'kidrock') {
		var stag_state = ($('#stag').css('visibility') == "visible") ? 1 : 0;
		
		var speed = 750;
		
		if (stag_state || !classname) {
		
			// STAG IS TO BE HIDDEN
			
			// GET HORZ ANIMATION DIRECTION
			var direction = "left";
			if ($('#stag').css('float') == 'right') direction = "right";
			
			// SET DESTINATION POSITIONS
			var desthorz = "-"+$('#stag').css('width');
			var destvert = "-"+$('#stag').css('height');
			
			// SET ORIGIN POSTIONS
			var starthorz = $('#stag').css(direction);
			var startvert = $('#stag').css('bottom');
			
		} else {
		
			// STAG IS TO BE SHOWN
			
			// CREATE STAG ELEMENT
			var stagdiv = document.createElement('div');
			stagdiv.id = "stag";
			$('#stag_wrapper').append(stagdiv);
			
			// HIDE STAG
			$('#stag').css('visibility', 'hidden');
			
			// SET TO FINAL STATE TO WORK BACKWARDS FROM HERE
			$('#stag').attr('class', classname);
			//document.getElementById('stag').className = classname;
			
			// GET HORZ ANIMATION DIRECTION
			var direction = "left";
			if ($('#stag').css('float') == 'right') direction = "right";
	
	
	
			// SET DESTINATION POSITIONS
			var desthorz = $('#stag').css(direction);
			var destvert = $('#stag').css('bottom');
	//alert ($('#stag').css('left') + $('#stag').css('right') + $('#stag').attr('class') + $('#stag').attr('id'));
			
			// SET ORIGIN POSTIONS
			var starthorz = "-"+$('#stag').css('width');
			var startvert = "-"+$('#stag').css('height');
		}
		
		// GENERATE RANDOM ANIMATION AXIS;
		var isHorz = Math.floor(Math.random()*2);	
	
		
		if (isHorz) {
	
			// ANIMATE HORIZONTALY
			//$('#stag').css('bottom', destvert);
			$('#stag').css(direction, starthorz);
			$('#stag').css('visibility', 'visible');
			
			var animation = (direction == 'left') ? { left: desthorz } : { right: desthorz };
			
			$('#stag').animate( animation, speed, null, function() {
				// REMOVE STAG ELEMENT
				if (stag_state) $('#stag').remove();
			});
			
		} else {
		
			// ANIMATE VERTICALLY
			//$('#stag').css(direction, desthorz);
			$('#stag').css('bottom', startvert);
			$('#stag').css('visibility', 'visible');
			$('#stag').animate( { bottom: destvert}, speed, null, function() {
				// REMOVE STAG ELEMENT, INVERT STATE
				if (stag_state) $('#stag').remove();
			});
			
		}
	}
}


// BACKGROUND CONTROLLER
function swapbg(id, pagename, navigate, original_href) {	
	// REMOVE "/" FROM PAGENAME
	pagename = pagename.replace(/\//g,"");
	
	//alert(pagename);
//	exit;
	
	var newimg = pre_images[pagename];
	
	var newbg = "/img/bkgnd_" + pagename + ".jpg";
	var newimgid = "bkgnd_" + uniqid();
	//
	newwidth = $("#bkgndwrap img").width();
	newheight = $("#bkgndwrap img").height();
	//
	
	//newimg.src = newbg;
	newimg.id = newimgid;
	newimg.width = newwidth;
	newimg.height = newheight;
	newimg.style.display = "none";

	children = $("#bkgndwrap").children()
	$("#bkgndwrap").append(newimg);

	$('#'+newimgid).fadeIn(700, function(){
		if(id){
			$(".menuon").removeClass('menuon');
			$("#"+id).addClass('menuon');
		}
		children.remove();
		if (navigate) {
			if (original_href) window.location = original_href;
			else window.location = "/"+pagename;
		}
	});
	return false;
}
function bgrotate(name, current, max) {
	var next = current+1;
	if (next > max) next = 1;
		
	setTimeout(function() {
		swapbg(false, name+next);
		bgrotate(name, next, max);
	}, 3000);
}


// COMMON FUNCTIONS
function uniqid() {
    var newDate = new Date;
    return newDate.getTime();
}
function geturi(url){
	if(url){
		expuri = url.split('/');	
	}else{
		url = document.location.href;
		expuri = document.location.href.split('/');
	}
	if(expuri.length >= 4){
		while(expuri.length != 3){
			expuri.pop();
		}
		pos = expuri.join('/').length;
		return url.substr(pos).replace(/^\//g, '').replace(/\/$/g,'');
	}
	return '';
}

function gethash(url){
	uri = geturi(url).split('#');
	if(uri.length > 1){
		return '#'+uri[uri.length-1];
	}
	return false;
}