var wrapperState = "collapsed";
var isAnimating = false;
var actionButtonsAreVisible = false;
var resultIndex = -1;
var currentInput;
var xhr;

$(document).ready(function() {

	$("#actionButtonsWrapper").fadeOut(0);
	AdjustWrapperPos();
	SetResultMessage("hidden");
	
	// Preload images
	var pre1 = new Image(); pre1.src="images/searchAreaRound.png";
	var pre2 = new Image(); pre2.src="images/searchAreaSquare.png";
	var pre3 = new Image(); pre3.src="images/resultArea.png";
	var pre4 = new Image(); pre4.src="images/loader.gif";
	var pre5 = new Image(); pre5.src="images/actionButtonSel.png";
	
	// Align wrapper vertically when window is resized
	$(window).resize(function() {
		AdjustWrapperPos();
	});
	
	$("#searchBox").focus(function() {
		if ($("#searchBox").val() == "Album Title") {
			$("#searchBox").val("");
			$("#searchBox").css({"color":"#2a2f36"});
		};
	});
	$("#searchBox").blur(function() {
		if ($("#searchBox").val() == "") {
			$("#searchBox").val("Album Title");
			$("#searchBox").css({"color":"#abafb4"});
		};
	});
	$("#searchBox").keyup(function() {
		HideActionButtons();
		if ($("#searchBox").val() != "") {
			EnableClearSearchButton();
			if (isAnimating == false) {
				ExpandWrapper();
			};
		} else {
			DisableClearSearchButton();
			if (isAnimating == false) {
				CollapseWrapper();
			};
		};
	});
	
	$("#searchButton").click(function() {
		if ($("#searchButton").css("cursor") == "pointer") {
			$("#searchBox").val("");
			$("#searchBox").focus();
			DisableClearSearchButton();
			CollapseWrapper();
		};
	});
	
	$(".resultImage").live('click', function() {
		if (actionButtonsAreVisible == false) {
			actionButtonsAreVisible = true;
			ShowActionButtons();
		} else {
			actionButtonsAreVisible = false;
			HideActionButtons();
		};
	});

	$("#emailActionButton").click(function() {
		emailUrl = "mailto:recipient@email.com?subject=Album Art&body=Check out this album art: " + $(".resultImage").attr("src");
		window.location = emailUrl;
	});	
	$("#purchaseActionButton").click(function() {
		getalbumUrl = "http://astore.amazon.com/5byfive-20/search?node=1&keywords=" + $("#searchBox").attr("value");
		window.open(getalbumUrl);
	});
	$("#sourceActionButton").click(function() {
		window.open($(".resultImage").attr("src"));
	});
		
});

function AdjustWrapperPos() { // Align wrapper vertically
	var topPos = ((window.innerHeight - document.getElementById("wrapper").offsetHeight) / 2);
	$("#wrapper").css({"top":topPos});
};

function CollapseWrapper() {
	isAnimating = true;
	SetResultMessage("hidden");
	$("#actionButtonsWrapper").fadeOut(250);
	$(".resultImage").remove();
	$("#wrapper").animate({"height":92},{duration:350, queue:false});
	var topPos = ((window.innerHeight - 92) / 2);
	$("#wrapper").animate({"top":topPos},350,function() {
		$("#resultsAreaWrapper").css({"background-image":"none"});
		$("#searchAreaWrapper").css({"background-image":"url(images/searchAreaRound.png)"});
		wrapperState = "collapsed";
		actionButtonsAreVisible = false;
		isAnimating = false;
	});
};
function ExpandWrapper() {
	isAnimating = true;
	SetResultMessage("loading");
	$("#resultsAreaWrapper").css({"background-image":"url(images/resultArea.png)"});
	$("#searchAreaWrapper").css({"background-image":"url(images/searchAreaSquare.png)"});
	$("#wrapper").animate({"height":546},{duration:350, queue:false});
	var topPos = ((window.innerHeight - 546) / 2);
	$("#wrapper").animate({"top":topPos},350,function() {
		wrapperState = "expanded";
		isAnimating = false;
	});
};

function EnableClearSearchButton() {
	$("#searchButton").css({"background-image":"url(images/clearSearchButton.png)"});
	$("#searchButton").css({"cursor":"pointer"});
};
function DisableClearSearchButton() {
	$("#searchButton").css({"background-image":"url(images/searchIcon.png)"});
	$("#searchButton").css({"cursor":"default"});
};

function ShowActionButtons() {
	$(".resultImage").animate({"bottom":115},{duration:250, queue:false});
	$(".resultImage").animate({"opacity":0.75},{duration:250, queue:false});
	$("#actionButtonsWrapper").fadeIn(250);
};
function HideActionButtons() {
	$(".resultImage").animate({"bottom":32},{duration:250, queue:false});
	$(".resultImage").animate({"opacity":1},{duration:250, queue:false});
	$("#actionButtonsWrapper").fadeOut(250);
	actionButtonsAreVisible = false;
};

$(function(){ // Monitor search box for text change
	var wait = 500,
		$input = $('#searchBox'),
		last = +new Date;
	
	$input.keyup(function(){ last = +new Date; });
	
	setInterval(function(){
		if ((+new Date) - last < wait) return false;
			if (currentInput != $("#searchBox").val() && $("#searchBox").val() != "Album Title" && $("#searchBox").val() != "") {
				currentInput = $("#searchBox").val();
				$(".resultImage").animate({"opacity":0},150, function(){
					$(".resultImage").remove();
				});
				resultIndex = -1;
				PerformSearch();
			};	
		}, wait);
});

function PerformSearch() {
	var searchString = "";
	HideActionButtons();
	SetResultMessage("loading");
	searchString = $("#searchBox").val() + " album art";
	
	searchString = "http://www.google.com/images?hl=en&source=imghp&q=" + escape(searchString) + "+imagesize%3A500x500&gbv=2&aq=f&aqi=&aql=&oq=&gs_rfai=";
	searchString = "proxy.php?url=" + encodeURIComponent(searchString);
	$.ajax({url: searchString, dataType: ($.browser.msie) ? "text" : "html", success: function(data){ // Load the results page
		htmlString = data;
		if (htmlString.indexOf("imgurl") != -1) { // There were results
			htmlString = htmlString.substring(htmlString.indexOf("imgurl") + 10);
			htmlString = htmlString.substring(0,htmlString.indexOf("\\"));
			var resultImg = new Image();
			resultImg.src = unescape(htmlString);
			$(".resultImage").remove();
			$("#resultsAreaWrapper").append('<img class="resultImage" title="Drag to Desktop or iTunes\nClick for Options" src="' + resultImg.src + '" height=375 width="auto" onload="ImageLoaded();" />');
		} else { // There were no results
			SetResultMessage("noresults");
		};
	}});
};

function ImageLoaded() {
	$(".resultImage").animate({"opacity":1},150);
	SetResultMessage("hidden");
};

function SetResultMessage(mode) {
	switch(mode) {
		case "loading":
			$("#resultMessage").css({"visibility":"visible"});
			$("#resultMessage").css({"width":42});
			$("#resultMessage").css({"margin-left":-21});
			$("#resultMessage").css({"background-image":"url(images/loader.gif)"});
			$("#resultMessage").css({"background-color":"rgba(0,0,0,0.75)"});
			$("#resultMessage").html("");
		break;
		case "noresults":
			$("#resultMessage").css({"visibility":"visible"});
			$("#resultMessage").css({"width":200});
			$("#resultMessage").css({"margin-left":-100});
			$("#resultMessage").css({"background-image":"none"});
			$("#resultMessage").css({"background-color":"rgba(0,0,0,0)"});
			$("#resultMessage").html("No Cover Found");
		break;
		case "hidden":
			$("#resultMessage").css({"visibility":"hidden"});
		break;
	};	
};

























