var audio = $('#voice').get(0);
var correct = $('#correct').get(0);
var incorrect = $('#incorrect').get(0);
var finish = $('#finish').get(0);
var timer;
$(window).load(function () {
	$('.session_message').fadeIn(987,function () { setTimeout( function () { $('.session_message').fadeOut(3000); },8000); });
	$('.session_message').live('click',function() { $(this).fadeOut(1000); });
	dyn_select();
});
$(document).ready(function () {
	var search_timer;
	$('.filters span').live('click', function () {
		$(this).siblings('span').removeClass('selected');
		$(this).addClass('selected');
	});
	$('#search').focusout( function () {
		setTimeout( function () { $('.search_results').fadeOut() }, 382);
		if ($(this).val() == '') { $(this).val('Search Words and Phrases'); }
	});
	$('#search').bind('keyup', function () {
		if ($('#search').val().length > 1) {
			$('.search_results').html('<div class="waiting"><img src="http://www.queondaspanish.com/media/images/loading.gif" alt="Loading..." /></div>');
			$('.search_results').show();
			clearTimeout(search_timer);
			search_timer = setTimeout(function(){
				$.ajax({
					type: 'get',
					url: $('#search_form').attr('action'),
					data: $('#search_form').serialize(),
					success: function (data) {
						$('.search_results').html(data);
					}
				});
			},500);
		}
	});
	$('#search').focus( function () {
		if ($(this).val() == 'Search Words and Phrases') { $(this).val(''); }
		if ($(this).val()) $('.search_results').show();
	});
	
	$('a[href=/login]').live('click',function(){ return loadModal('/login'); });
	$('a[href=/register]').live('click',function(){ return loadModal('/register'); });
	$('a[href=/email_help]').live('click',function(){ return loadModal('/email_help'); });
	$('a[href=/how_to_type_accent_characters]').live('click',function(){ return loadModal('/how_to_type_accent_characters'); });
	$('a[href=/question/ask]').live('click',function(){ return loadModal('/question/ask'); });
	$('a[href=/purchase]').live('click',function(){ return loadModal('/purchase'); });
	$('.close').live('click',function(){ $('.modal').hide(); });
	
	var loadQuestions = function (url, replace) {
		$('#questions .load_more').remove();
		if ($('#questions').length) {
			if (replace) $('#questions .question').remove();
			$('#questions').append(loading());
			$.ajax({ type: 'get', url: url,
				success: function (data) {
					$('#questions').append(data);
					$('.loading').remove();
				}, error: function (XMLHttpRequest, textStatus, errorThrown) {
					alert('error: '+XMLHttpRequest+' '+textStatus+' '+errorThrown);
				}
			});
		}
	}
	$('#questions .load_more').live('click', function (event) {
		event.preventDefault();
		loadQuestions($(this).attr('href'),false);
	});
	$('#questions .filters a').live('click', function (event) {
		event.preventDefault();
		$('#questions .filters a').removeClass('selected');
		$(this).addClass('selected');
		loadQuestions($(this).attr('href'),true);
	});
	checkItemSize();
	dyn_init();
});

var loading = function () { return $('<img src="http://www.queondaspanish.com/media/images/loading.gif" class="loading" alt="loading...">'); }
var loadModal = function (url) {
	if (!$('.modal').length) $('#footer').after('<div class="modal">');
	$('.modal').load(url, function (){
		$('.modal .section:first-child').prepend('<div class="close"/>');
		$('.modal').css('top',$(window).scrollTop());
		$('.modal').show();
	});
	return false;
}

var endAudio = function () {
	audio.currentTime=0;
	audio.pause();
	clearInterval(timer);
	$('.play').attr('src','http://www.queondaspanish.com/media/images/play.png');
}

var playAudio = function (audio_src,elem) {
	$('.play').attr('src','http://www.queondaspanish.com/media/images/play.png');
	if (elem) elem.attr('src','http://www.queondaspanish.com/media/images/audioLoading.gif');
	loadAudio(audio_src);
	audio.play();
	clearInterval(timer);
	timer = setInterval( function () {
		if (audio.readyState > 3) {
			clearInterval(timer);
			if (elem) {
				elem.attr('src','http://www.queondaspanish.com/media/images/pause.png');
			}
		} else if (elem.attr('src') == 'http://www.queondaspanish.com/media/images/pause.png') {
			clearInterval(timer);
		}
	},100);
}

var loadAudio = function (audio_src) {
	if (audio.canPlayType('video/ogg') =="probably" || audio.canPlayType('video/ogg') =="maybe") {
		src = 'http://lang_src.s3.amazonaws.com/'+audio_src+'.ogg';
	} else if (audio.canPlayType('audio/mpeg') =="probably" || audio.canPlayType('audio/mpeg') =="maybe") {
		src = 'http://lang_src.s3.amazonaws.com/'+audio_src+'.mp3';
	}
	if ($('#voice').attr('src') != src) {
		$('#voice').attr('src',src);
		audio.load();
		audio.addEventListener('ended',endAudio,false);
	} else if (audio.readyState) {
		audio.currentTime=0;
	}
}

var playIntaudio = function (int_audio) {
	if (int_audio.readyState) {
		int_audio.currentTime = 0;
		int_audio.play();
		int_audio.addEventListener('ended',function(){ endIntaudio(int_audio) },false);
	}
}

var endIntaudio = function (int_audio) {
	int_audio.currentTime=0;
	int_audio.pause();
}

var playCorrect = function () { playIntaudio(correct); }
var playIncorrect = function () { playIntaudio(incorrect); }
var playFinish = function () { playIntaudio(finish); }

$('.play').live('click',function(){
	playAudio($(this).attr('title'),$(this));
	return false;
});
var floater = function (x,y,text,color,up) {
	var ychange = 21;
	if (up == true) ychange = -233;
	else if (up == false) ychange = 144;
	$('body').append( $('<span class="floater">'+text+'</span>').css({'left':(x - 72),'top':(y + 21),'color':color}).fadeIn(89,function () {
		$(this).animate({
			top: y+ychange,
			opacity: 0
		},4235, function () {
			$(this).remove();
		});
	}) );
}
var dyn_init = function () {
	$('.dyn_picker_options').hide();
	$('.dyn_picker_selected').bind('focus',function () {
		$(this).siblings('.dyn_picker_options').fadeIn();
		$('.hovering').removeClass('hovering'); 
	});
	$('.dyn_picker_selected').bind('focusout',function () {
		dyn_select();
		$(this).siblings('.dyn_picker_options').fadeOut();
		$('.hovering').removeClass('hovering'); 
	});
	$('.dyn_picker_selected').bind('keydown',function (event) {
		if ($('.hovering').length == 0 && (event.keyCode == 40 || event.keyCode == 38)) {
			$(this).siblings('.dyn_picker_options').children('.dyn_picker_option').first().addClass('hovering');
		} else {
			if (event.keyCode == 40) {
				$('.hovering').next('.dyn_picker_option').addClass('hovering').prev('.dyn_picker_option').removeClass('hovering');
			} else if (event.keyCode == 38) {
				$('.hovering').prev('.dyn_picker_option').addClass('hovering').next('.dyn_picker_option').removeClass('hovering');
			} else if (event.keyCode == 13 || event.keyCode == 9) {
				$('.dyn_picker_selected').blur();
				dyn_select();
			}
		}
		return false;
	});
	$('.dyn_picker_option').bind('mouseenter',function () {
		$('.hovering').removeClass('hovering');
		$(this).addClass('hovering');
	});
	$('.dyn_picker_option').bind('mouseleave',function () {
		$('.hovering').removeClass('hovering');
	});
	return true;
}
var dyn_select = function () {
	$('.hovering').each( function () {
		$(this).parents().children('.dynIcon').remove();
		$(this).parents().children('.dynLink').remove();
		if ($(this).children('img').length != 0) {
			$(this).parents('.dyn_picker').prepend( $(this).children('img').clone().addClass('dynIcon') );
			$(this).parents().children('.dyn_picker_selected').css({'padding-left':'42px','padding-right':'0px'}); 
		} else {
			$(this).parents().children('.dyn_picker_selected').css({'padding-left':'21px','padding-right':'21px'});
		}
		$(this).parents().children('.dyn_picker_selected').val($(this).children('.name').text());
		$(this).parents().children('.dyn_picker input[type=hidden]').val($(this).children('.id').text());
		$(this).parents().children('.dyn_picker_selected').change();
		if ($(this).children('.link').text()) $(this).parents('.dyn_picker').append('<a href="'+$(this).children('.link').text()+'" title="What is this?" class="dynLink"><img src="http://www.queondaspanish.com/media/images/link.png" alt="Get more info" /></a>');
	});
	$('.hovering').removeClass('hovering');
}
var checkItemSize = function () {
	$('.card').each(function(){
		var height = 0;
		$(this).children('div').each(function(){
			height = height + $(this).outerHeight();
		});
		if (height > $(this).height()) {
			$(this).children('.original').css('fontSize','34px');
			$(this).children('.translation').css('fontSize','21px');
		}
	});
}
