




///////////////////////////////////////////////
// CCS3 SHADOW EMULATION FOR NON-
// COMPLIANT BROWSERS
//
///////////////////////////////////////////////
// SAFARI 3+ / FIREFOX 3.1+ WILL USE 
// THEIR BROWSER SPECIFIC CSS RULE
//
///////////////////////////////////////////////
// OPTIONS BASIC: blur, leftoffset, topoffset
// OPTIONS EXTEND: opacity, borderradius
// 
///////////////////////////////////////////////
// IMAGEMAGICK SHADOW GENRATION
// OPTIONS BASIC: blur(px), shadow_color (HEX/rgb(,,)name)(black)
// OPTIONS EXTEND: opacity(%)(100), fill_color(HEX/rgb(,,)name), borderradius(px)
// EXAMPLE: http://localhost/development/nf_shadow/shadow_create.php?blur=4&shadow_color=red
//
///////////////////////////////////////////////
// EXAMPLE:
// $('.manon').nf_shadow({
// 		blur: 4,
// 		top: 2,
// 		left:1
// })



var imp = "img/general/"; // path to shadow images

///////////////////////////////////////////////
// NF_SHADOW //////////////////////////////////
///////////////////////////////////////////////


(function($) {
	
	$.fn.nf_shadow = function(options){

		if($.browser.safari() || $.browser.msie()){
			return false;
		}

		
		var l = options.leftoffset || 0; // left offset
		var t = options.topoffset || 0;	// top offset
		var b = options.blur || 2;	// blur


		// CREATE CSS

		var css =
			".shdw_tl, .shdw_t, .shdw_r, .shdw_b, .shdw_bl, .shdw_l{ \
				position:absolute; \
			}  \
			.shdw_content{ \
				position: relative!important; \
				width: 100%; \
				height: 100%; \
				margin: 0!important; \
				top: 0!important; \
				left: 0!important; \
				display: block; \
				} \
			.shdw_tl{ \
				width:"+(b*2)+"px; \
				height:"+(b*2)+"px; \
				margin: "+-(b-t)+"px 0 0 "+-(b-l)+"px; \
			}  \
			.shdw_t{ \
				height:"+(b*2)+"px; \
				margin:"+-(b-t)+"px 0 0 "+(b+l)+"px; \
			}  \
			.shdw_r{ \
				width:"+(b*2)+"px; \
			}  \
			.shdw_b{ \
				height:"+(b*2)+"px; \
			}  \
			.shdw_bl{ \
				width:"+(b*2)+"px; \
				height:"+(b*2)+"px; \
			}  \
			.shdw_l{ \
				width:"+(b*2)+"px; \
				margin:"+(b+t)+"px 0 0 "+-(b-l)+"px; \
			} \
			.shdw_tl{ background:url("+imp+"shdw.png);} \
			.shdw_t{ background:url("+imp+"shdw.png) 100% 0;} \
			.shdw_r{ background:url("+imp+"shdwlr.png) repeat-y 100% 0;} \
			.shdw_b{ background:url("+imp+"shdw.png) 100% 100%;} \
			.shdw_bl{ background:url("+imp+"shdw.png)0 100%;} \
			.shdw_l{ background:url("+imp+"shdwlr.png) repeat-y 0 0;}";


		// INSERT CUSTOM STYLESHEET

		addStyle(css);
		
		
		
		return this.each(function() {
			
			var w = $(this).innerWidth();
			var h = $(this).innerHeight();

			var content = $(this).html();
			var tagName = $(this)[0].tagName.toLowerCase();
			var clone = $(this).clone();
			// $(this).css({ "background-image":"none", "background":"none" })
			// alert(w+'/'+h)

			// INSERT SHADOW CORNER DIVS
			// if (inline){
				$(this).empty().removeClass('shdw')
					.append( "<div class='shdw_tl'>" )
					.append( "<div class='shdw_t' style='width:"+w+"px;'>" )
					.append( "<div class='shdw_r' style='height:"+(h-b*2)+"px;margin:"+(b+t)+"px 0 0 "+(w-b+l)+"px;'>" )
					.append( "<div class='shdw_b' style='width:"+w+"px;margin:"+(h-b+t)+"px 0 0 "+(b+l)+"px;'>" )
					.append( "<div class='shdw_bl' style='margin:"+(h-b+t)+"px 0 0 "+-(b-l)+"px;'>" )
					.append( "<div class='shdw_l' style='height:"+(h-b*2)+"px;'>" )
					.append( clone.removeClass('shdw').addClass('shdw_content').attr('id','') );
			// }
			// else{
			// 	$(this).empty()
			// 		.append( "<div class='shdw_tl'>" )
			// 		.append( "<div class='shdw_t' style='width:100%;'>" )
			// 		.append( "<div class='shdw_r' style='height:"+(h-b*2)+"px;margin:"+(b+t)+"px 0 0 "+(w-b+l)+"px;'>" )
			// 		.append( "<div class='shdw_b' style='width:"+w+"px;margin:"+(h-b+t)+"px 0 0 "+(b+l)+"px;'>" )
			// 		.append( "<div class='shdw_bl' style='margin:"+(h-b+t)+"px 0 0 "+-(b-l)+"px;'>" )
			// 		.append( "<div class='shdw_l' style='height:"+(h-b*2)+"px;'>" )
			// 		.append( clone.addClass('shdw_content') );
			// }
		});
	}
})(jQuery);
		

///////////////////////////////////////////////
// INSERT STYLESHEET IN HEAD //////////////////
///////////////////////////////////////////////

// Add a stylesheet to the document and return a reference to it 
function addStyle(css) {
	var style = document.createElement( 'style' ); 
	style.type = 'text/css'; 
	var head = document.getElementsByTagName('head')[0]; 
	head.appendChild( style ); 
	if( style.styleSheet )  // IE 
		style.styleSheet.cssText = css; 
	else  // other browsers 
		style.appendChild( document.createTextNode(css) ); 
	return style;
} 
 
// Replace the entire contents of a stylesheet 
function changeStyle( style, css ) { 
	if( style.styleSheet )  // IE 
		style.styleSheet.cssText = css; 
	else  // other browsers 
		style.replaceChild( document.createTextNode(css), style.firstChild ); 
	return style; 
}



///////
// CRAP

// var debugCss =
	// ".shdw_tl{background:rgb(0,0,0);} \
	// .shdw_t{background:rgb(120,40,40);} \
	// .shdw_r{background:rgb(80,80,80);} \
	// .shdw_b{background:rgb(120,120,120);} \
	// .shdw_bl{background:rgb(160,160,160);} \
	// .shdw_l{background:rgb(200,200,200);}";

	//firefox wrong height!!
	// $('.original').css('height', h)
	// alert(w+'/'+h)
	// setTimeout(function(){alert($('.original').height())},1000)