/*
	This plugin is developed by Yordan Stoev and extremly modified by Tobi ;)
	Homepage: http://yordanstoev.com/blog/zoomple-simple-jquery-plugin-for-image-zoom/
*/
(function($){
$.fn.zoomple = function(options) {  
	var timer;
	var image_data = new Array();
	options = jQuery.extend({ 
	 delay : 250,
	 zoomWidth : 500,
	 zoomHeight : 300,
	 offset : {x : 55,y : 5},
	 onZoomShow : function(){},
	 onZoomHide : function(){},
	 loaderURL : '/templates/rp24/images/ajax-loader.gif',
	 blankURL : '',
	 source : 'rel'
	}, options|| {});   
	var stopLoading = new Array();
	// Checks if the preview holder div was alread appended
	if(!Boolean($('#Previewholder').attr('id'))) {
		$('body').append('<div id="Previewholder"><img src="'+options['blankURL']+'" alt="" /> <p></p> </div>');
	}
	$.each($(this),function() {	
			var img = new Image(); 
			img.src = options['loaderURL'];
			
			
			
			$(this).hover(
				function(){
					ret = get_image_size($(this).attr('id')); 					
					if(ret != false){
						options.onZoomShow.call(this);
						if(options['source'] == 'href')	delaier($(this).attr('href'),$(this).attr('alt'));		 
						else if(options['source'] == 'rel')	delaier($(this).attr('rel'),$(this).attr('alt'));
					}
				},
				function(){ 
					clearTimeout(timer); 
					
					if(options['source'] == 'href') stopLoading[$(this).parent().attr('href')] = false; 	 
					else if(options['source'] == 'rel')	stopLoading[$(this).parent().attr('rel')] = false; 	
					$("#Previewholder img").css({"background" : "white url("+options['blankURL']+") 50% 50% no-repeat"});			
					$("#Previewholder p").html(''); 
					$("#Previewholder").css({"display" : "none"});	
					options.onZoomHide.call(this);
			});
			$(this).mousemove(function(e){
				
				var x = ((e.pageX - $(this).offset().left) / $(this).width() )*100 ;
				var y =  ((e.pageY - $(this).offset().top) / $(this).height())*100; 
				$('#writer').html(x +" - "+ $(this).width() + " / " + y);
				thumbPosition = { left : ( e.pageX ), 
									top : ( e.pageY ), 
									right : ($(window).width() - ( e.pageX - options['offset']['x'])), 
									bottom : ($(window).height() - ( e.pageY - options['offset']['y']))};
									
				if(($(window).height() +  $(window).scrollTop() - options['zoomHeight'] - options['offset']['y']) > thumbPosition.top){
					$("#Previewholder").css({ 
												'top' :  (thumbPosition.top + options['offset']['y']) + "px" 
												});  
				}else{
					$("#Previewholder").css({ 
												'top' :  (thumbPosition.top - options['zoomHeight'] - options['offset']['y']) + "px"  
												});  
				}
				
				if(($(window).width() +  $(window).scrollLeft() - options['zoomWidth'] - options['offset']['x']) > thumbPosition.left){
					$("#Previewholder").css({
												'left' : (thumbPosition.left + options['offset']['x']) + "px" 
												});  
				}else{
					$("#Previewholder").css({
												'left' : (thumbPosition.left - options['zoomWidth'] - options['offset']['x'])
												});  
												}
				//$("#Previewholder img").css({"backgroundPosition" : x +"% "+ y +"%"});  
				
			}); 
		}); 
	
	

		
		
	
		function delaier(imgRefUrl,imgDescription)
		{	   
			
			stopLoading[imgRefUrl] = true;  
			function delaiedZoom()
			{  
				
				$("#Previewholder").css({"display" : "block"});	
				$("#Previewholder img").css({"width" : image_data['width'] + "px","height" : image_data['height'] + "px","background" : "white url(" + options['loaderURL'] +") 50% 50% no-repeat"});		
				 
				  var objImagePreloader = new Image();
				  objImagePreloader.src = imgRefUrl;
				  if(objImagePreloader.complete){				
						if(stopLoading[imgRefUrl]) 
						{
							$("#Previewholder img").css({"background" : "white url("+imgRefUrl+") 50% 50% no-repeat"});					
							$("#Previewholder p").html(imgDescription); 
						} 
				  }
				  else{
					objImagePreloader.onload = function() {	
						if(stopLoading[imgRefUrl]) 
						{
							$("#Previewholder img").css({"background" : "white url("+imgRefUrl+") 50% 50% no-repeat"});					
							$("#Previewholder p").html(imgDescription); 
						}
					}
				  }
			}
			 
			timer = setTimeout(delaiedZoom, options['delay']);
		}
		
		function get_image_size(offers_id){
			$.ajax({
			   type: "POST",
			   url: "modules/rp24_global/ajax/ajax.get_big_image.php",
			   data: "offers_id="+offers_id,
			   dataType:'json',
			   success: function(msg){
						if(msg == 'false'){
							return false;
						}else{
							image_data = msg;
						}
						//alert(image_data);
			   		}
			   });
		}
}  
})(jQuery);
 