$(function(){

	// =================================
	// init SHJS (syntax highlither)
	// =================================
	window.sh_highlightDocument();
	$('pre.sh_sourceCode').parent()
		.hover(function(){
			var $div = $(this);
			if ($div.data('hideTimeout')) {
				clearTimeout($div.data('hideTimeout'));
				$div.data('hideTimeout', 0);
			}
			if (!$div.data('active')) {
				$div.data('showTimeout',
					setTimeout(function(){
						var $pre = $div.children().eq(-1),
							scrollBarFix = 30,
							width = $pre[0].scrollWidth > $pre.outerWidth() ?
								Math.min($pre[0].scrollWidth + scrollBarFix, $(window).width() - scrollBarFix - $div.offset().left) :
								$pre.outerWidth(),
							height = $div.height();
						$div.wrap('<div class="code-placeholder" style="position:relative;height:' + $div.outerHeight() + 'px;margin:' + $div.css('margin-top') + ' ' + $div.css('margin-right') + ' ' + $div.css('margin-bottom') + ' ' + $div.css('margin-left') + ';"></div>')
						.css({position: 'absolute', width: width, height: height}).data('active', true)
							.find('> a').fadeIn(500);
					}, 500)
				);
			}
		}, function(){
			var $div = $(this);
			if ($div.data('showTimeout')) {
				clearTimeout($div.data('showTimeout'));
				$div.data('showTimeout', 0);
			}
			if ($div.data('active') && !$div.data('plainView')) {
				$div.data('hideTimeout',
					setTimeout(function(){
						$div.unwrap().css({position: 'relative', width: 'auto', height: 'auto'}).data('active', false)
							.find('> a').hide();
					}, 500)
				);
			}
		})
		.prepend('<a/>').find('> a').addClass('view-plain').attr('href', '#').html('<span>View plain code</span>')
		.click(function(){
			var $link = $(this),
				$div = $link.parent(),
				$pre = $link.next(),
				$window = $(window),
				scrollPos = [$window.scrollLeft(), $window.scrollTop()],
				value = $pre.text(),
				height = $pre.outerHeight() + (window.opera && window.opera.version && window.opera.version() < 10.5 ? $pre[0].scrollHeight / ((value.replace(/\r\n/g, '\n').match(/\n/g) || '').length + 1) : 0);
			$('<textarea wrap="off"/>').css({width: $div.width(), height: height, '-moz-box-shadow': '0 5px 15px #888', '-webkit-box-shadow': '0 5px 15px #888', 'box-shadow': '0 5px 15px #888'})
				.attr({value: value, readonly: 'readonly'}).insertBefore($pre).blur(function(){
					$(this).next()/* pre */.css('visibility', 'inherit').prev()/* textarea */.remove();
					$div.data('plainView', false).mouseleave();
				});
			$link.hide().next().next()/* pre */.css('visibility', 'hidden').prev()/* textarea */.focus();
			// some browsers (like IE < 8) may mess up the scroll position when the textarea is focused
			if (window.scrollTo)
				window.scrollTo(scrollPos[0], scrollPos[1]);
			$div.data('plainView', true);
			return false;
		});

});


////***ADDDING IMAGES TOOLTIPS**/////

var ddimgtooltip={

	tiparray:function(){
		var tooltips=[]
		//define each tooltip below: tooltip[inc]=['path_to_image', 'optional desc', optional_CSS_object]
		//For desc parameter, backslash any special characters inside your text such as apotrophes ('). Example: "I\'m the king of the world"
		//For CSS object, follow the syntax: {property1:"cssvalue1", property2:"cssvalue2", etc}

		//tooltips[0]=["www.elnidodesign.com/images/logo-elnido.gif", "Here is a red balloon<br /> on a white background", {background:"#FFFFFF", color:"black", border:"5px ridge darkblue"}]
		//tooltips[1]=["duck2.gif", "Here is a duck on a light blue background.", {background:"#DDECFF", width:"200px"}]
		tooltips[0]=["../images/logo-elnido.gif"]
		//tooltips[3]=["../dynamicindex17/bridge.gif", "Bridge to somewhere.", {background:"white", font:"bold 12px Arial"}]

		return tooltips //do not remove/change this line
	}(),

	tooltipoffsets: [20, -30], //additional x and y offset from mouse cursor for tooltips

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

	tipprefix: 'imgtip', //tooltip ID prefixes

	createtip:function($, tipid, tipinfo){
		if ($('#'+tipid).length==0){ //if this tooltip doesn't exist yet
			return $('<div id="' + tipid + '" class="ddimgtooltip" />').html(
				'<div style="text-align:center"><img src="' + tipinfo[0] + '" /></div>'
				+ ((tipinfo[1])? '<div style="text-align:left; margin-top:5px">'+tipinfo[1]+'</div>' : '')
				)
			.css(tipinfo[2] || {})
			.appendTo(document.body)
		}
		return null
	},

	positiontooltip:function($, $tooltip, e){
		var x=e.pageX+this.tooltipoffsets[0], y=e.pageY+this.tooltipoffsets[1]
		var tipw=$tooltip.outerWidth(), tiph=$tooltip.outerHeight(), 
		x=(x+tipw>$(document).scrollLeft()+$(window).width())? x-tipw-(ddimgtooltip.tooltipoffsets[0]*2) : x
		y=(y+tiph>$(document).scrollTop()+$(window).height())? $(document).scrollTop()+$(window).height()-tiph-10 : y
		$tooltip.css({left:x, top:y})
	},
	
	showbox:function($, $tooltip, e){
		$tooltip.show()
		this.positiontooltip($, $tooltip, e)
	},

	hidebox:function($, $tooltip){
		$tooltip.hide()
	},


	init:function(targetselector){
		jQuery(document).ready(function($){
			var tiparray=ddimgtooltip.tiparray
			var $targets=$(targetselector)
			if ($targets.length==0)
				return
			var tipids=[]
			$targets.each(function(){
				var $target=$(this)
				$target.attr('rel').match(/\[(\d+)\]/) //match d of attribute rel="imgtip[d]"
				var tipsuffix=parseInt(RegExp.$1) //get d as integer
				var tipid=this._tipid=ddimgtooltip.tipprefix+tipsuffix //construct this tip's ID value and remember it
				var $tooltip=ddimgtooltip.createtip($, tipid, tiparray[tipsuffix])
				$target.mouseenter(function(e){
					var $tooltip=$("#"+this._tipid)
					ddimgtooltip.showbox($, $tooltip, e)
				})
				$target.mouseleave(function(e){
					var $tooltip=$("#"+this._tipid)
					ddimgtooltip.hidebox($, $tooltip)
				})
				$target.mousemove(function(e){
					var $tooltip=$("#"+this._tipid)
					ddimgtooltip.positiontooltip($, $tooltip, e)
				})
				if ($tooltip){ //add mouseenter to this tooltip (only if event hasn't already been added)
					$tooltip.mouseenter(function(){
						ddimgtooltip.hidebox($, $(this))
					})
				}
			})

		}) //end dom ready
	}
}

//ddimgtooltip.init("targetElementSelector")
ddimgtooltip.init("*[rel^=imgtip]")
