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['kidrockmusic'] = new Image();
	pre_images['kidrockmusic'].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; "><span style="text-align: center;"><img src="/img/noflash.png" alt="Oops! You don\'t have the latest version of Adobe Flash Player installed. This web site makes use of Adobe Flash Player software. You either don\'t have it installed or you have an older version that cannot play the content we\'ve created. Click here to install the latest version of Flash. It will only take a moment." /></span></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;
}



//Recipe scroller

var R = {
	shift: 0,
	index: 0,
	_init: false,
	init: function(){
		r_width = $($('.recipe-item').get(0)).width();
		r_count = $('.recipe-item').length;
		R.pages = Math.ceil(r_count/5);
		R.shift = (r_width + 2) * 5;
		R._init = true;		
	},
	page: 1,
	pages: 1,
	next:function(){
		if(!R._init){R.init()}
		next = R.page + 1;
		if(next <= R.pages){
			R.page = next;
			R.index = (R.index - R.shift);
			$("#recipe_container span").animate({marginLeft: R.index+"px"}, 'slow');
		}else{
		}
	},
	prev:function(){
		if(!R._init){R.init()}
		prev = R.page - 1;
		if(prev >= 1 && prev < R.pages){
			R.page = prev;
			R.index = (R.index + R.shift);
			$("#recipe_container span").animate({marginLeft: R.index+"px"}, 'slow');
		}else{
		}
	}
}