
$(document).ready(function() {

    //  Old versions of IE are not supported
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ieVersion = -1;
        var ua = navigator.userAgent;
        var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null) {
            ieVersion = parseFloat( RegExp.$1 );
        }
        if (ieVersion > 0 && ieVersion < 9) {
            return; // EXIT
        }
    }
	previewr.init();
	
});



var previewr = {

	links: [],
	openLink: undefined,
	
	CSS_CLASS_FOR_LINKS: "quicklook",
	CSS_CLASS_FOR_BOX: "quicklook-box",
	CSS_CLASS_FOR_CLOSE_BUTTON: "quicklook-closebutton",
	
	CSS_FOR_BOX: "\
				position: absolute;\
				width: 240px;\
				padding: 30px;\
				background-color: rgba(0,0,0,0.75);\
				-webkit-box-shadow: 0px 2px 16px rgba(0,0,0,0.5); -moz-box-shadow: 0px 2px 16px rgba(0,0,0,0.5);\
				-webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px;\
				text-align: center;\
				z-index: 99999;\
				",
	CSS_FOR_CLOSE_BUTTON: "\
				position: absolute; top: 4px; left: 4px;\
				width: 24px; height: 24px;\
				background: url(http://culturedcode.com/script/quicklook/closebutton-0.2.png) no-repeat;\
				",
	CSS_FOR_IMAGE: "\
				max-width: 300px;\
				position: inline;\
				",
	
	init: function() {
		this.links = $('a.'+this.CSS_CLASS_FOR_LINKS);
		this.links.bind('click', this.clickHandler);
		return true;
	},
	toggle: function(theLink) {
		// Is any preview link open?
		if (this.openLink !== undefined) {
			// Is it the same as the clicked preview link?
			if (this.openLink === theLink) {
				this.closeAll();
			}
			else {
				this.closeAll();
				this.open(theLink);
			}
		}
		else {
			this.open(theLink);
		}
		return true;
	},
	open: function (theLink) {
		var url = $(theLink).attr('href');
		var positionLeft = 245;
		var positionTop = $(theLink).position().top + $(theLink).height();
		var positionStyle = "left:"+positionLeft+"px;top:"+positionTop+"px;";
		var html = '\
					<div class="'+this.CSS_CLASS_FOR_BOX+'" style="'+this.CSS_FOR_BOX+positionStyle+'"> \
						<div class="'+this.CSS_CLASS_FOR_CLOSE_BUTTON+'" style="'+this.CSS_FOR_CLOSE_BUTTON+'"></div> \
						<img src="'+url+'" style="'+this.CSS_FOR_IMAGE+'"> \
					</div> \
					';
		$(theLink).append(html);
		this.openLink = theLink;
		return true;		
	},
	closeAll: function() {
		$(this.links).children('.'+this.CSS_CLASS_FOR_BOX).remove();
		this.openLink = undefined;
		return true;	
	},
	clickHandler: function() {
		previewr.toggle(this);
		return false; // prevent default		
	}
}
