jQuery.fn.log = function (msg) {
    console.log("%s: %o", msg, this);
    return this;
};

/**
 * Totally paranoid email protection
 */
var Email = {
	protect : function(after2, domain, before1, before2, after1) {
		var email = before1 + before2 + '@' + after1 + after2 + '.' + domain;
		document.write('<a href="ma' + 'ilt' + 'o:' + email + '">' + email + '</a>');
	}
};

var CrossFader = {
	images: null,
	imgIndex: 0,
	oneOnTop: true,
	firstPhoto: true,
	
	start: function(img) {
		CrossFader.fisherYates(img);
		CrossFader.images = img;
    	CrossFader.nextPhoto();
    	$(document).everyTime('15s', CrossFader.nextPhoto, 50);
	},
	resize: function() {
		var w = $(window).width();
		var h = $(window).height();
		$(".background_image").each(function(index, elem) {
			var iw = $(this).width();
			var ih = $(this).height();
			var tw, th;
			if (iw/ih < w/h) {
				tw = w;
				th = (ih*w)/iw;
			} else {
				th = h;
				tw = (iw*h)/ih;
			}
			$(this).css({
				'width': tw,
				'height': th
			});
		});
	},
	nextPhoto: function() {
	    CrossFader.imgIndex++;
	    if (CrossFader.imgIndex >= CrossFader.images.length) {
	        CrossFader.imgIndex = 0;
	    }
	    var imgPath = CrossFader.images[CrossFader.imgIndex];
	
	    var img = new Image();
	    $(img)
	        .load(function () {
	            var divId = (CrossFader.oneOnTop ? '#bg2' : '#bg1');
	            //$(divId).css("backgroundImage", "url('" + imgPath + "')");
	            $(divId).html('<img src="' + imgPath + '" class="background_image" style="width:100%"/>');
	
				CrossFader.resize();
	            if (CrossFader.oneOnTop) {
	                CrossFader.switchToTwo(CrossFader.firstPhoto);
	            } else {
	                CrossFader.switchToOne();
	            }
	            CrossFader.oneOnTop = !CrossFader.oneOnTop;
	            CrossFader.firstPhoto = false;   
	        })
	        .error(function (e) {
	            $(this).log("Could not load image");
	        })
	        .attr('src', imgPath);
	},
	switchToOne: function() {
	    jQuery("#bg1").fadeIn(3000);
	},
	switchToTwo: function(quick) {
	    if (quick) {
	        jQuery("#bg1").hide();
	    } else {
	        jQuery("#bg1").fadeOut(3000);
	    }
	},
	fisherYates: function ( myArray ) {
	    var i = myArray.length;
	    if ( i == 0 ) return false;
	    while ( --i ) {
	        var j = Math.floor( Math.random() * ( i + 1 ) );
	        var tempi = myArray[i];
	        var tempj = myArray[j];
	        myArray[i] = tempj;
	        myArray[j] = tempi;
	    }
	}
};
