$(document).ready(function() {
	initDoc();
});

function initDoc() {
	/***************************************************************/
	// West Coast Cooler document enhancements
	/***************************************************************/
	$("#gateway-form").submit(function() {
		return jQuery.validateGateway();
	});
	
	$("a.modal").click(function() {
		var $url=$(this).attr("href");
		$.fancybox({
			'padding'		: 0,
			'autoScale'		: false,
			'overlayOpacity': 0.4,
			'overlayColor'	: '#000',
			'transitionIn'	: 'fade',
			'transitionOut'	: 'fade',
			'speedIn'		: 600,
			'speedOut'		: 600,
			'width'			: 620,
			'height'		: 400,
			'href'			: $url,
			'type'			: 'iframe'
		});

		return false;
	});
	
	/***************************************************************/
	// Blog comment form validation
	/***************************************************************/
	$("#comment_author, #comment_email, #comment_comment").focus(function() {
		$(this).css("color","#6b6b6b");
		$(this).css("background-color","#ffffff");
	});
	
	$("#comment-form").submit(function() {
		var $author=$("#comment_author").val();
		var $authorDefault=$("#comment_author").attr("rel");
		var $email=$("#comment_email").val();
		var $emailDefault=$("#comment_email").attr("rel");
		var $comment=$("#comment_comment").val();
		var $commentDefault=$("#comment_comment").attr("rel");
		
		var $error=false;
		
		if (!jQuery.isString($author) || $author==$authorDefault) {
			$error=true;
			$("#comment_author").css("background-color","#bdd3a0");
			$("#comment_author").css("color","#ffffff");
			$("#comment_author").val($authorDefault);
		}
		
		if (!jQuery.isEmail($email) || $email==$emailDefault) {
			$error=true;
			$("#comment_email").css("background-color","#bdd3a0");
			$("#comment_email").css("color","#ffffff");
			$("#comment_email").val($emailDefault);
		}
		
		if (!jQuery.isString($comment) || $comment==$commentDefault) {
			$error=true;
			$("#comment_comment").css("background-color","#bdd3a0");
			$("#comment_comment").css("color","#ffffff");
			$("#comment_comment").val($commentDefault);
		}
		
		if ($error) {
			return false;
		}
	});

	
	/***************************************************************/
	// General document enhancements
	/***************************************************************/
	$('*').pngFix();
	
	$("a.email").each(function() { //Email address obfuscation
		e = this.rel.replace("/","@");
		this.href = "mailto:"+e;
		$(this).text($(this).attr("title"));
	});

	$("a.external").click(function() { //Open link in new window
		window.open(this.href);
		return false;
	});
	
	$(".rollover").each(function() { //Preload rollover images
		jQuery.preLoadImages(jQuery.imageOver($(this)));
	});

	$(".rollover").hover( //Image rollovers
		function() {
			$(this).attr("src",jQuery.imageOver($(this)));
		},
		function() {
			$(this).attr("src",jQuery.imageOff($(this)));
		}
	);
	
	$(".input-text").each (function() { //Define default text for each text field
		this.rel=this.value;
	});

	$(".input-text").focus(function() {
		if (this.value==this.rel) {
			this.value='';
		}
	});

	$(".input-text").blur(function() {
		if (this.value=='') {
			this.value=this.rel;
		}
	});
	
	/***************************************************************/
	// Images to preload
	/***************************************************************/
	jQuery.preLoadImages();
	
	/***************************************************************/
	// Load latest tweets
	/***************************************************************/
	$("#twitter_update_list").each(function() {
		$.getScript('http://twitter.com/javascripts/blogger.js');
		$.getScript('http://twitter.com/statuses/user_timeline/WestCoastCooler.json?callback=twitterCallback2&count=1');
	});
}

(function($) {

	$.validateGateway=function() { //Age verification
		var error=false;
		var response="";

		var today=new Date();

		var min_age=18;
		var dob_day=jQuery.toInt($("#dob_day").val());
		var dob_month=jQuery.toInt($("#dob_month").val());
		var dob_year=jQuery.getPivot(jQuery.toInt($("#dob_year").val()));
		var dob_date=new Date((dob_year+min_age),dob_month-1,dob_day);

		if (isNaN(dob_day)) {
			error=true;
			response+="Please enter a valid Day\n";
		} else {
			var maxDays = jQuery.daysInMonth(dob_month, dob_year);
			if (dob_year > 0 && (dob_day < 1 || dob_day > maxDays)) {
				error=true;
				response+="Day must be between 1 and " + maxDays + "\n";
			}
		}
	
		if (isNaN(dob_month) || dob_month < 1 || dob_month > 12) {
			error=true;
			response+="Please enter a valid Month\n";
		}
	
		if (isNaN(dob_year)) {
			error=true;
			response+="Please enter a Year\n";
		}

		if (response=="" && (today.getTime()-dob_date.getTime())<0) {
			window.location="http://www.drinkaware.ie/";
			return false;
		}
		
		if (error) {
			alert(response);
			return false;
		}
	}
	
	$.getPivot=function($year) {
		if ($year < 10) return (2000 + $year);
		if ($year < 1900) return (1900 + $year);
		return $year;
	}
	
	$.daysInMonth=function($month,$year) {
		return new Date($year ? $year : 1970, $month, 0).getDate();
	}
	
	$.toInt=function($n) {
		return parseInt($n.replace(/^0/,''));
	}

	var cache=[]; //Preload images
	$.preLoadImages=function() {
		var args_len = arguments.length;
		for (var i = args_len; i--;) {
			var cacheImage = document.createElement('img');
			cacheImage.src = arguments[i];
			cache.push(cacheImage);
		}
	}

	$.imageOver=function($el) { //Rollover image
		if($($el).attr("src").indexOf("-over")==-1) {
			var newSrc = $($el).attr("src").replace(".gif","-over.gif");
			newSrc = newSrc.replace(".jpg","-over.jpg");
			newSrc = newSrc.replace(".png","-over.png");
			return newSrc;
		}
	}
	
	$.imageOff=function($el) { //Rollout image
		if($($el).attr("src").indexOf("-over")!=-1) {
			var oldSrc = $($el).attr("src").replace("-over.gif",".gif");
			oldSrc = oldSrc.replace("-over.jpg",".jpg");
			oldSrc = oldSrc.replace("-over.png",".png");
			return oldSrc;
		}
	}
	
	$.isString=function($str) {  //Data type validation
		if ($str.length!="") { return true; } else { return false;}
	}
	
	$.isEmail=function($str) {
		var regex=new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$");
		return regex.test($str);
	}
	
	$.isInteger=function($str) {
		return ($str.toString().search(/^-?[0-9]+$/) == 0);
	}

})(jQuery)
