/*Image Thumbnail Viewer II (May 19th, 2010)
* This notice must stay intact for usage 
* Author: Dynamic Drive at http://www.dynamicdrive.com/
* Visit http://www.dynamicdrive.com/ for full source code
*/

jQuery.noConflict()
var j = jQuery.noConflict();

jQuery.thumbnailviewer2={
		loadmsg: '<img src="http://www.urbanenomads.com/spinningred.gif" /><br />Loading Large Image...', //HTML for loading message. Make sure image paths are correct

	/////NO NEED TO EDIT BEYOND HERE////////////////

	dsetting: {trigger:'mouseover', preload:'yes', fx:'fade', fxduration:500, enabletitle:'yes'}, //default settings
	buildimage:function(j, janchor, setting){
		var imghtml='<img src="'+janchor.attr('href')+'" style="border-width:0" />'
		if (setting.link)
			imghtml='<a href="'+setting.link+'">'+imghtml+'</a>'
		imghtml='<div>'+imghtml+((setting.enabletitle && janchor.attr('title')!='')? '<br />'+janchor.attr('title') : '')+'</div>'
		return j(imghtml)
	},

	showimage:function(jimage, setting){
		jimage.stop()[setting.fxfunc](setting.fxduration, function(){
			if (this.style && this.style.removeAttribute)
				this.style.removeAttribute('filter') //fix IE clearType problem when animation is fade-in
		})
	}
	
}


jQuery.fn.addthumbnailviewer2=function(options){
	var j = jQuery.noConflict();

	return this.each(function(){ //return jQuery obj
		if (this.tagName!="A")
			return true //skip to next matched element

		var janchor=j(this)
		var s=j.extend({}, j.thumbnailviewer2.dsetting, options) //merge user options with defaults
		s.fxfunc=(s.fx=="fade")? "fadeIn" : "show"
		s.fxduration=(s.fx=="none")? 0 : parseInt(s.fxduration)
		if (s.preload=="yes"){
			var hiddenimage=new Image()
			hiddenimage.src=this.href
		}
		var jloadarea=j('#'+s.targetdiv)
		var jhiddenimagediv=j('<div />').css({position:'absolute',visibility:'hidden',left:-10000,top:-10000}).appendTo(document.body) //hidden div to load enlarged image in
		var triggerevt=s.trigger+'.thumbevt' //"click" or "mouseover"
		janchor.unbind(triggerevt).bind(triggerevt, function(){
			if (jloadarea.data('jcuranchor')==janchor) //if mouse moves over same element again
				return false
			jloadarea.data('jcuranchor', janchor)
			if (jloadarea.data('jqueueimage')){ //if a large image is in the queue to be shown
				jloadarea.data('jqueueimage').unbind('load') //stop it first before showing current image
			}
			jloadarea.html(j.thumbnailviewer2.loadmsg)
			var jhiddenimage=jhiddenimagediv.find('img')
			if (jhiddenimage.length==0){ //if this is the first time moving over or clicking on the anchor link
				var jhiddenimage=j('<img src="'+this.href+'" />').appendTo(jhiddenimagediv) //populate hidden div with enlarged image
				jhiddenimage.bind('loadevt', function(e){ //when enlarged image has fully loaded
					var jtargetimage=j.thumbnailviewer2.buildimage(j, janchor, s).hide() //create/reference actual enlarged image
					jloadarea.empty().append(jtargetimage) //show enlarged image
					j.thumbnailviewer2.showimage(jtargetimage, s)
				})
			jloadarea.data('jqueueimage', jhiddenimage) //remember currently loading image as image being queued to load
			}

			if (jhiddenimage.get(0).complete)
				jhiddenimage.trigger('loadevt')
			else
				jhiddenimage.bind('load', function(){jhiddenimage.trigger('loadevt')})
			return false
		})
	})
}

jQuery(document).ready(function(j){
	var janchors=j('a[rel="enlargeimage"]') //look for links with rel="enlargeimage"
	janchors.each(function(i){
		var options={}
		var rawopts=this.getAttribute('rev').split(',') //transform rev="x:value1,y:value2,etc" into a real object
		for (var i=0; i<rawopts.length; i++){
			var namevalpair=rawopts[i].split(/:(?!\/\/)/) //avoid spitting ":" inside "http://blabla"
			options[jQuery.trim(namevalpair[0])]=jQuery.trim(namevalpair[1])
		}
		j(this).addthumbnailviewer2(options)
	})
})
