(function() {

	var jQ = typeof jQuery == 'function';
	var corners 	= [ [ 'corner n w', '-nw' ], [ 'area hor n' ], [  'corner n e', '-ne' ] , [ 'area ver w' ], [ 'area centre' ], [ 'area ver e' ], [ 'corner s w', '-sw' ], [ 'area hor s' ], [ 'corner s e', '-se' ] ];
	var box;
	
	
	function init(  )						
	{
		var insert = '';
		for( var i = 0; i < 9; i++ )
		{
			insert += 	'<div id=\"' + settings.name + '-' + settings.cornerSource + i + '\" class=\"' + corners[ i ][ 0 ] + '\">'+
							( ( corners[ i ].length > 1 )
							? '<img src=\"' + settings.sourceDir + '/' + settings.cornerSource + corners[ i ][ 1 ] + '.png\" width=\"' + settings.cornerSize + '\" height=\"' + settings.cornerSize + '\">'
							: '' 
							) +
							'</div>';
		}
		this.append( $( insert ) );
		
		this.find( '.corner' ).pngFix();
		
		
		return setDimensions.call( this );
		
	}



	function setDimensions()						
	{
//		alert()
		this.css(
			{ 
				width		: ( !settings.destination ) ? ( pageDim( 0 ) * settings.scale[ 0 ] ) : settings.destination[ 2 ], 
				height	: ( !settings.destination ) ?  pageDim( 1 ) * settings.scale[ 1 ] : settings.destination[ 3 ]
			} );
		this.find( '.ver' ).css		( 
			{ 
				top		: 	iewsf.top( settings.cornerSize ) + 'px', width: settings.cornerSize + 'px', height: iewsf.height( parseInt( this.height() ) - (2 * settings.cornerSize ) )+ 'px'
			} );
		this.find( '.hor' ).css		( 
			{ 
				left		: 	settings.cornerSize + 'px', height: settings.cornerSize+ 'px', width: parseFloat( this.width() ) - ( 2 * settings.cornerSize )+ 'px' 
			} );
		this.find( '.centre' ).css	( 
			{ 
				left		: 	settings.cornerSize + 'px', top: iewsf.top( settings.cornerSize ) + 'px', 
				height	: 	 iewsf.height( parseInt( this.height() ) - ( 2 * settings.cornerSize ) )+ 'px', 
				width		: 	( parseFloat( this.width() ) - ( 2 * settings.cornerSize ) )+ 'px' 
			} );
		this.find( '.e' ).css			( 
			{ 
				left		: 	( parseFloat( this.width() ) - settings.cornerSize ) + 'px' 
			} );
		this.find( '.s' ).css			( 
			{ 
				top		: 	( parseFloat( this.height() ) - settings.cornerSize ) + 'px' 
			} );
		this.css( { height:  iewsf.top( parseFloat( this.height() ) ) } );
		//this.find( '.hor.n, .ver.e, .hor.s, .ver.w' ).addClass( 'bg' )
		this.find( '.area' ).css( 'opacity', settings.opacity )
		this.find( '.corner' ).css( 'opacity', settings.opacity )
		this.find( '.area' ).addClass( settings.cornerSource )
		return this;
	}



	function pageDim( dim )						
	{
		return ( ( dim == 0 ) 
				  ? ( ( !jQuery.support.leadingWhitespace ) ? document.body.clientWidth : window.innerWidth ) 
				  : ( ( !jQuery.support.leadingWhitespace ) ? document.body.clientHeight : window.innerHeight ) );
	}


	var iewsf = 				
	{
		top		: function( val ){ return ( ( jQuery.support.leadingWhitespace ) ? val : val + 1 ) },
		height	: function( val ){ return ( ( jQuery.support.leadingWhitespace ) ? val : val - 1 ) }
	}															/*		#-0	fix IE positioning anomaly														*/


/*	$( window ).resize( function ()											
	{   
		setDimensions();   
	});*/


	if (jQ)												
	{
	
		jQuery.fn.ikRoundedCorners = function( options ) 
		{
  			settings = jQuery.extend(
			{
				name:				"rounded",
				classname:		null,
				scale:		 		[ 1, 1 ],
				size:		 			null,
/*     			color: 				"white",						// 		black, hex
     			cornerSource:		"white",						// 		colorname.ext
     			cornerSize:			18,							// 		colorname.ext
     			sourceDir:			"images/rounded",		// 		alt dir
				opacity:				1,*/
     			global:		 		true
  			}, 
			options);
			
			init.call( this );
			
		
			return this;
		};

	}

})();

