/*!
fullfocus - Fullscreen Positioning with Focuspoint jQuery Plugin
By Luca Schmid (www.blitzdonner.ch)
Version: fullfocus.0.1.js // Last changes: 28/6/10
*/

// create closure

$(document).ready(function() {
jQuery('.left_menu ul:nth-child(3) a').css('line-height','22px'); 

var bla = jQuery('.left_menu:nth-child(3)');

//alert(jQuery('.left_menu:nth-child(3) a').attr('target'));
});

(function($) 
{

	//plugin definition
	$.fn.fullfocus = function() {
	
		//Bind the function on ready, loading or resizing
		/*
		$(document).ready(function() {
			$('#target').resizenow(); 
		});
	 */
	
		jQuery(window).bind("load", function(){
			jQuery('#target').resizenow(); 
		});
	 
	 	/*
		$(window).bind("resize", function(){
    		$('#target').resizenow(); 
		});
	 	*/
	 	
	};
	
	
	jQuery.fn.resizenow = function() {
		var options = jQuery.extend( jQuery.fn.fullfocus.defaults, jQuery.fn.fullfocus.options);
		
	  	return this.each(function() {
	  			
	  		/*
			var wi_aktuell = $(window).width();
			var old = $("#ausgabe").html();
		
			$("#ausgabe").html(old + "<br>" + wi_aktuell);
			*/
			
		
			// Get x and y from an image -> imageX, imageY
			var imageX = options.imagewidth;
			var imageY = options.imageheight;
			
			// Set x and y of the focus point  
			var focusX = options.focuswidth;
			var focusY = options.focusheight;
			
			// Get x and y from the Browsercanvas -> canvasX, canvasY
			var canvasX = $(window).width();
			var canvasY = $(window).height();
			
			// Calculate imageRatio and canvasRatio (X / Y)
			var imageRatio = (imageX / imageY);
			var canvasRatio = (canvasX / canvasY);
			
			// Set the Scalefactor (scalefactor = imageX / canvasX)
			if (imageRatio < canvasRatio) {
			var scalefactor = (canvasX / imageX)
			} else {
			var scalefactor = (canvasY / imageY)
			}
			
			// Calculate focusRelX and focusRelY (100/imageX*focusX) (in %)
			var focusRelX = (100 / imageX * focusX);
			var focusRelY = (100 / imageY * focusY);
			var focusminFocusXX = (100 / options.minFocusX * focusX);
			
			// Set the scaled values (imageX*scalefactor)(imageX/Y, focusX/Y = scaledImageX/Y, scaledFocusX/Y)
			var scaledImageX = (imageX * scalefactor);
			var scaledImageY = (imageY * scalefactor);
			var scaledFocusX = (focusX * scalefactor);
			var scaledFocusY = (focusY * scalefactor);
			
			//Set the values for focusX < minFocusX
			var minX = (options.minFocusX/focusRelX*100);
			var YminX = (options.minFocusX/focusRelX*100/imageRatio);
			
					// Check witch axe is gonna be 100% 
					// ### Y-Axis =100% ###
					if (canvasRatio < imageRatio && canvasX > minX){ 
	
							// Set the new dimentions
						    jQuery(this).height(canvasY);
						    jQuery(this).width(scaledImageX);
						    jQuery(this).children().height(canvasY);
						    jQuery(this).children().width(scaledImageX);
				    
						    // Calculate is and should position of the focus
						    var isPosition = (scaledImageX / 100 * focusRelX);
						    var shouldPosition = (canvasX / 100 * focusRelX);

						    // Set Focus Position
						    jQuery(this).children().css('left', ((shouldPosition - isPosition)+'px'));
					} 
							
					// ### X-Axis =100% ###
					else if (canvasRatio > imageRatio  && canvasX > minX) { 
				
						    // Set the new dimentions
						    jQuery(this).height(scaledImageY);
						    jQuery(this).width(canvasX);
						    jQuery(this).children().height(scaledImageY);
					    	jQuery(this).children().width(canvasX);
				    
						    // Calculate is and should position of the focus
						    var isPosition = (scaledImageY / 100 * focusRelY);
						    var shouldPosition = (canvasY / 100 * focusRelY);
					    
						    // Set Focus Position
						    jQuery(this).children().css('top', ((shouldPosition - isPosition)+'px'));	
					}  
							
					// if canvas < minFocusX width
				    else if (canvasRatio > imageRatio  && canvasY < YminX) {  
							
							// Set the new dimentions
							jQuery(this).height(YminX);
					  		jQuery(this).children().height(YminX);
					  		jQuery(this).width(minX);
				      		jQuery(this).children().width(minX);

							// Calculate is and should position of the focus //top and left are needed
							var isPositionY = (YminX / 100 * focusRelY);
				      		var shouldPositionY = (canvasY / 100 * focusRelY);
					 		var isPositionX = (scaledImageX / 100 * focusRelX);
					  		var shouldPositionX = (options.minFocusX);
							
							// Set Focus Position
				      		jQuery(this).children().css('left', ((0)+'px'));
					  		jQuery(this).children().css('top', ((shouldPositionY -  isPositionY)+'px'));
					}
							
					 else if (canvasRatio < imageRatio  && canvasY > YminX) {
						
							// Set the new dimentions
					  		jQuery(this).height(canvasY);
					  		jQuery(this).width(canvasY*imageRatio);
				      		jQuery(this).children().height(canvasY);
				      		jQuery(this).children().width(canvasY*imageRatio);
							
							// Calculate is and should position of the focus 
				  		    var isPosition = (scaledImageX / 100 * focusRelX);
						    var shouldPosition = ((options.minFocusX));
									
							// Set Focus Position
							jQuery(this).children().css('left', (shouldPosition - isPosition+'px'));
					}
			
		return false;
		});
			
	};
	
	$.fn.fullfocus.defaults = { 
			imagewidth: 1920,  
			imageheight: 1351,
			focuswidth: 567,
			focusheight: 1100,
			minFocusX: 800 // minFocusXimale pixelgrösse vom fokus bis zum linkenrand 
	};

// end of closure	
})(jQuery);


