/* 
 * 
 * Jason Farmer
 * www.jacefarm.com | jason(at)jacefarm(dot)com
 * 
 */

// create global object
var jacefarm = {
	
	// image preloader
	newImg: function (sourceURL) {
		
		var jImage	= new Image();
		jImage.src  = sourceURL;
		return jImage;
		
	},
	
	// text and image user greeting based on user's local time
	greetUser: function () {
		
		var timedGreeting 	= "";
		var timedImage		= "";
		var rightNow 		= new Date();
		var magicHour 		= rightNow.getHours();		
		var myImage 		= new Array();
		
		myImage[0] 		= new Image();
		myImage[0].src 	= "../images/timeMorning.jpg";
		
		myImage[1] 		= new Image();
		myImage[1].src 	= "../images/timeDay.jpg";
		
		myImage[2] 		= new Image();
		myImage[2].src 	= "../images/timeAfternoon.jpg";
		
		myImage[3] 		= new Image();
		myImage[3].src 	= "../images/timeEvening.jpg";
		
		myImage[4] 		= new Image();
		myImage[4].src 	= "../images/timeNight.jpg";
		
		if (magicHour >= 0 && magicHour <= 5) {	  		
			timedGreeting 	= "Welcome.";
			timedImage 		= myImage[4].src;
			
		} else if (magicHour >= 6 && magicHour <= 10) {	  		
			timedGreeting 	= "Good morning.";
			timedImage 		= myImage[0].src;
		
		} else if (magicHour >= 11 && magicHour <= 14) {	  		
			timedGreeting 	= "Good day to you.";
			timedImage 		= myImage[1].src;
		
		} else if (magicHour >= 14 && magicHour <= 18) {	  		
			timedGreeting 	= "Good afternoon.";
			timedImage 		= myImage[2].src;
		
		} else if (magicHour >= 19 && magicHour <= 23) {	  		
			timedGreeting 	= "Good evening.";
			timedImage 		= myImage[3].src;		
		}
								
		$('#greeting')
			.replaceWith(
				"<h2 id='greeting'>" + timedGreeting + "</h2>"
			);
		$('#timePhoto img')
			.replaceWith(
				"<img src=" + timedImage + " width='130' height='75' alt='Time of day image.' />"
			);	
		
	},
	
	// AJAX recommendation hover quotes
	hoverQuotes: function () {
		
		$('.animateQuote').hover(function () {
										   
			var $target = $(this).parent().parent().parent().next();
			var $targetID = $target.attr('id');
			
			$.get('xml/references.xml', function(data) {
												 
				$target.empty();
				$(data).find('client').each(function () {
													  
					var $client = $(this);
					var $clientName = $client.attr('name');
					
					if (($clientName == $targetID)) {
						
						var html = '';
						
						var $refBanner = $client.find('refBanner');
						html 	+= '<img class="refBanner" src="';
						html	+= $refBanner.find('source').text();
						html	+= '" width="300" height="56" alt="';
						html	+= $refBanner.find('alt').text() + '" />';
						
						var $refTitle = $client.find('refTitle');						
						html	+= '<p class="refTitle">' + $refTitle.text() + '</p>';
						
						var $refBody = $client.find('refBody');						
						html	+= '<p class="refBody">' + $refBody.text() + '</p>';
						
						var $refName = $client.find('refName');						
						html	+= '<p><span class="refName">' + $refName.text() + '</span>, ';						
						html	+= '<em>' + $refName.attr('role') + '</em></p>';
						
						$target.append($(html));
						
					} 
				});
			});
			
			$target.animate({ opacity : 'toggle' }, 400);
			
		});		
	},
	
	// email de-obfuscation for javascript users using unicode escapes
	liveMail: function() {	
		
		var myName		= "jason";
		var bizName		= "jacefarm";
		var special0 	= "\u006d\u0061\u0069\u006c\u0074\u006f\u003a";
		var special1	= "\u0040";
		var special2	= "\u002e\u0063\u006f\u006d";
		var package		= special0 + myName + special1 + bizName + special2;
		var visual		= myName + special1 + bizName + special2;
		
		$('.messenger').replaceWith("<a class='webLink' href='" + package + "'>" + visual +"</a>");	
		
	},
	
	// update the copyright and last updated information in page footer
	upDates: function() {

		var copyrightSymbol = "\u00a9"; // unicode escape for copyright symbol
		var copyrightDate   = new Date(); // get current date information
		var dateModified    = new Date(document.lastModified); // get modified date information
		var updated 		= dateModified.getMonth()+ 1 + "/" + dateModified.getDate() +
							  "/" + dateModified.getFullYear();
		
		$("p.copyright").text(copyrightSymbol + " Copyright Jason Farmer " + copyrightDate.getFullYear() + 
			". All Rights Reserved. Last updated on " + updated + ".");
		
	}
	
}; // end of jacefarm global object	
	

$(document).ready(function () {
							
	jacefarm.greetUser();
	jacefarm.hoverQuotes();
	jacefarm.liveMail();
	jacefarm.upDates();
	
	// preload images
	var slides = new Array();		
	slides[0]  = jacefarm.newImg("../images/xhtml_hover.gif");
	slides[1]  = jacefarm.newImg("../images/css_hover.gif");
	slides[2]  = jacefarm.newImg("../images/credit_hover.gif");
	slides[3]  = jacefarm.newImg("../images/bluehost_hover.gif");
	slides[4]  = jacefarm.newImg("../images/network_linkedIn_over.gif");
	slides[5]  = jacefarm.newImg("../images/network_facebook_over.gif");
	slides[6]  = jacefarm.newImg("../images/network_twitter_over.gif");
	slides[7]  = jacefarm.newImg("../images/bullet_diamond.gif");
	slides[8]  = jacefarm.newImg("../images/timeMorning.jpg");
	slides[9]  = jacefarm.newImg("../images/timeDay.jpg");
	slides[10] = jacefarm.newImg("../images/timeAfternoon.jpg");
	slides[11] = jacefarm.newImg("../images/timeEvening.jpg");
	slides[12] = jacefarm.newImg("../images/timeNight.jpg");
	slides[13] = jacefarm.newImg("../images/quoteImageTMCO.jpg");
	slides[14] = jacefarm.newImg("../images/quoteImageSPG.jpg");
	slides[15] = jacefarm.newImg("../images/quoteImageSCAUSATF.jpg");
	
});	
