$(document).ready(function() {
	
	// preload main nav images (prevents flicker on mouseover)
	var images = new Array();
	images[0] = "/wp-content/themes/ideafabrik/images/idf-icon-gear.png";
	images[1] = "/wp-content/themes/ideafabrik/images/idf-icon-gear-dim.png";
	images[2] = "/wp-content/themes/ideafabrik/images/idf-icon-games.png";
	images[3] = "/wp-content/themes/ideafabrik/images/idf-icon-games-dim.png";
	images[4] = "/wp-content/themes/ideafabrik/images/idf-icon-info.png";
	images[5] = "/wp-content/themes/ideafabrik/images/idf-icon-info-dim.png";
	images[6] = "/wp-content/themes/ideafabrik/images/idf-icon-investors.png";
	images[7] = "/wp-content/themes/ideafabrik/images/idf-icon-investors-dim.png";
	images[8] = "/wp-content/themes/ideafabrik/images/idf-icon-signup.png";
	images[9] = "/wp-content/themes/ideafabrik/images/idf-icon-signup-dim.png";
	
	var image = new Array();
	
	for (var x = 0; x<images.length; x++) {
		image[x] = new Image();
		image[x].src = images[x];
	}
	
	
	// init slides
	$("#slides ul").cycle({
		fx: "fade", 
		speed: 1000, 
		delay: 2000, 
		timeout: 8000, 
		activePagerClass: "current", 
		pager: "#base-nav ul", 
		pagerAnchorBuilder: function(idx, slide) {
			return "#base-nav ul li:eq("+idx+") a";
		}
	});
	
	
	// google stock quote api data request
	var symbol = "TI4";
	var quoteSymbol = "ETR:"+symbol;
	var googleUrl = "http://www.google.com";
	var googleQuoteUrl = "http://www.google.com/finance?q="+quoteSymbol;
	var themeUrl = "/wp-content/themes/ideafabrik";
	var proxyUrl = themeUrl+"/scripts/proxy.php";
	var indPositive = themeUrl+"/images/idf-indicator-positive.png";
	var indNegative = themeUrl+"/images/idf-indicator-negative.png";
	
	if ($("#stock-ticker").length > 0) {
		getStock(symbol, "home");
	}
	
	if ($("#stock-ticker2").length > 0) {
		getStock(symbol, "investors");
	}
	
	function getStock(s, p) {
		var apiUrl = encodeURI(googleUrl+"/ig/api?stock="+s);
		
		$.ajax({
			type: "POST", 
			url: proxyUrl, 
			data: "apiUrl="+apiUrl, 
			success: function(data, status, xhr) {
				if (window.console) { 
					console.log("PROCESSING STOCK QUOTE!");
					console.debug(data, status, xhr);
				}
				
				var response = "";
				var symbol = $(data).find("symbol").attr("data");
				var prettySymbol = $(data).find("pretty_symbol").attr("data");
				var symbolLookupUrl = $(data).find("symbol_lookup_url").attr("data");
				var company = $(data).find("company").attr("data");
				var exchange = $(data).find("exchange").attr("data");
				var divisor = $(data).find("divisor").attr("data");
				var currency = $(data).find("currency").attr("data");
				var last = $(data).find("last").attr("data");
				var high = $(data).find("high").attr("data");
				var low = $(data).find("low").attr("data");
				var volume = $(data).find("volume").attr("data");
				var yOpen = $(data).find("open").attr("data");
				var yClose = $(data).find("y_close").attr("data");
				var change = $(data).find("change").attr("data");
				var percChange = $(data).find("perc_change").attr("data");
				var tradeTimestamp = $(data).find("trade_timestamp").attr("data");
				var chartUrl = $(data).find("chart_url").attr("data");
				
				response += "SYMBOL: \t\t<a href=\""+googleUrl+symbolLookupUrl+"\" target=\"_blank\">"+prettySymbol+"</a>\n";
				response += "COMPANY: \t\t"+company+"\n";
				response += "EXCHANGE: \t\t"+exchange+"\n";
				response += "DIVISOR: \t\t"+divisor+"\n";
				response += "CURRENCY: \t\t"+currency+"\n";
				response += "LAST: \t\t\t$"+last+"\n";
				response += "HIGH: \t\t\t$"+high+"\n";
				response += "LOW: \t\t\t$"+low+"\n";
				response += "VOLUME: \t\t"+addCommas(volume)+"\n";
				response += "OPEN: \t\t\t$"+yOpen+"\n";
				response += "CLOSE: \t\t\t$"+yClose+"\n";
				response += "CHANGE: \t\t"+change+"\n";
				response += "PERCENT CHANGE: \t"+percChange+"%\n";
				response += "TRADE TIMESTAMP: \t"+tradeTimestamp+"\n";
				response += "CHART: \t\t\t<a href=\""+googleUrl+chartUrl+"\" target=\"_blank\">View Chart</a>";
				
				if (window.console) { 
					console.log(response);
					console.log(Number(change));
				}
				
				switch(p) {
					case "home":
						// set last stock value (EUR)
						$("#stock-ticker .numbers .value").empty().html("&euro;"+last);
		
						// set stock value change (%)
						if (Number(change) > 0) {
							$("#stock-ticker .numbers .change").removeClass("negative").addClass("positive");
							$("#stock-ticker .numbers .change .indicator img").attr("src", indPositive);
						} else {
							$("#stock-ticker .numbers .change").removeClass("positive").addClass("negative");
							$("#stock-ticker .numbers .change .indicator img").attr("src", indNegative);
						}
						$("#stock-ticker .numbers .change .fluct").empty().html(percChange+"%");
						
						// set symbol link
						$("#stock-ticker .info .symbol .data").wrapInner("<a href=\""+googleQuoteUrl+"\" target=\"_blank\">");
						
						// set last update time
						$(".disclaimer .last").empty().html(tradeTimestamp);
					break;
					
					case "investors":
						// set last stock value (EUR)
						$("#stock-ticker2 .trading-price").empty().html("Price: &euro;"+last);
						
						// set stock value change (%)
						if (Number(change) > 0) {
							$("#stock-ticker2 .trading-fluct").removeClass("negative").addClass("positive");
						} else {
							$("#stock-ticker2 .trading-fluct").removeClass("positive").addClass("negative");
						}
						$("#stock-ticker2 .trading-fluct").empty().html(percChange+"%");
						
						// set symbol link
						$("#stock-ticker2 .trading-symbol .symbol").wrapInner("<a href=\""+googleQuoteUrl+"\" target=\"_blank\">");
						
						// set last update time
						$("#stock-ticker2 .disclaimer .last").empty().html(tradeTimestamp);
					break;
				}
			}, 
			error: function(xhr, status, error) {
				if (window.console) { console.error(xhr, status, error); }
			}
		});
	}
	
	// signup form submission
	$("#frmSignup #submit").live("click", function(evt) {
		evt.preventDefault();
		
		var signupUrl = "/wp-content/themes/ideafabrik/scripts/sf-form-process.php";		
		var dataString = "your-firstname="+$("#your-firstname").val()+"&your-lastname="+$("#your-lastname").val()+"&your-email="+$("#your-email").val()+"&your-company="+$("#your-company").val()+"&your-phone="+$("#your-phone").val()+"&your-country="+$("#your-country").val()+"&your-budget="+$("#your-budget").val()+"&your-budgetstatus="+$("#your-budgetstatus").val()+"&your-message="+$("#your-message").val()+"&your-attribution="+$("#your-attribution").val()+"";
		
		$.ajax({
			type: "POST", 
			url: signupUrl, 
			data: dataString, 
			success: function(data, status, xhr) {
				if (window.console) {
					console.info("SUCCESS: "+status);
				}
				
				$("#page-content .entry-content").empty().html("<p class=\"bmargin16 tmargin24\">Thank you!<br />Your signup form submission has been successfully sent. We will contact you shortly about your game development needs.</p>");
			}, 
			complete: function(xhr, status) {
				if (window.console) {
					console.log("COMPLETE: "+status);
				}
			},
			error: function(xhr, status, error) {
				if (window.console) {
					console.error("ERROR: "+status+"\n"+error);
				}
			}
		});
		
	});
	
});


/* UTILITY FUNCTIONS */

// addCommas to numbers over 1,000
function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); }
	return x1 + x2;
}


