/* !
 * draggable polaroids
 * 
 * Copyright 2010, Euroweb Group
 * http://www.euroweb.de/
 * 
 * Date: Thu Jul 27 11:08:00 2010
 */
jQuery(document).ready(function(){
	init();
	jQuery('span.draggable').unselectable();
	var mousedown, zoomImage = new Boolean;
	var clickedElement;
	var cursorPosX, cursorPosY;
	var myDraggableElements = new Array();
	myDraggableElements = jQuery('span.draggable');
	for(x=0;x<myDraggableElements.length;x++){
		jQuery(myDraggableElements[x])
			.css('margin-left',(Math.ceil(Math.random()*1200)+myDraggableElements[x].getElementsByTagName('a')[0].offsetWidth)*-1)
			.css('margin-top',(Math.ceil(Math.random()*200)+myDraggableElements[x].getElementsByTagName('a')[0].offsetHeight)*-1);
	};
/*	jQuery('.draggable img').rotate({maxAngle:25,minAngle:-55,
	bind:[
		{"mousedown":function(){jQuery(this).rotateAnimation(5);}},
		{"mouseup":function(){jQuery(this).rotateAnimation(0);}}
	]});*/
	
	jQuery(window).load(function(){
		for(x=0;x<myDraggableElements.length;x++){
			jQuery(myDraggableElements[x])
				.animate({
					marginLeft: Math.ceil(Math.random()*(450-myDraggableElements[x].getElementsByTagName('a')[0].offsetWidth)),
					marginTop: Math.ceil(Math.random()*(document.getElementById('polaroid-container').offsetHeight-myDraggableElements[x].getElementsByTagName('a')[0].offsetHeight))
				},Math.ceil(Math.random()*750)+450);
		};
	});
	
	jQuery('span.draggable').mousedown(function(e){
		if(e.which == 1){
			jQuery(".draggable").css("cursor","url(http://www.webserver.bplaced.de/snippets/projects/showroom/images/cursor/drag-active.gif), default");
			clickedElement = this;
			mousedown = true;
			cursorPosX = e.pageX;
			cursorPosY = e.pageY;
			var verdeckt = false;
			for(x=0;x<myDraggableElements;x++){
				document.title = document.title + " - " + x + ":" + myDraggableElements[x].offsetLeft;
			};
			
			/*
			jQuery(clickedElement).animate({
				marginLeft: '-=140px',
				marginTop: '+=135px'
			},450, function(){
				jQuery(clickedElement).css('z-index',100);
				jQuery(clickedElement).animate({
					marginLeft: '+=140px',
					marginTop: '-=135px'
				});
			});*/
			
/*/--><--/*/
			jQuery('span.draggable').css('z-index',50);
			jQuery(clickedElement).css('z-index',100);

			zoomImage = true;
		};
		return false;
	});
	
	jQuery('*').mouseup(function(e){
		jQuery(".draggable").css("cursor","url(http://www.webserver.bplaced.de/snippets/projects/showroom/images/cursor/drag.gif), default");
		mousedown = false;
		return false;
	});
	
	jQuery('span.draggable').click(function(){
		if(zoomImage==true){
			polaroid_image_src = this.getElementsByTagName('a')[0].href;
			if(!document.getElementById('zoomContainer')){
				var zoomContainer = document.createElement('div');
				zoomContainer.id = 'zoomContainer';
				document.body.appendChild(zoomContainer);
				document.getElementById('zoomContainer').innerHTML = '<div id="zoomOverlay"></div><img src="" alt="" id="zoomImage" /><div id="zoomClose">Schlie&szlig;en</div>';
			};
			document.getElementById('zoomImage').src = '';
			jQuery('#zoomImage').fadeTo(0,0);
			jQuery('#zoomContainer').fadeOut(0,0);
			document.getElementById('zoomImage').src = polaroid_image_src;
			jQuery('#zoomContainer').fadeIn(450);
			jQuery('#zoomImage').load(function(){
				jQuery('#zoomImage')
					.css('margin-left',document.getElementById('zoomImage').offsetWidth / 2 *-1)
					.css('margin-top',document.getElementById('zoomImage').offsetHeight / 2 *-1);
				jQuery('#zoomImage').fadeTo(450,100);
			});
		};
	});
	
	jQuery('#zoomClose').live('click',function(){
		jQuery('#zoomContainer').fadeOut(750);
	});
	
	jQuery('#zoomContainer').live('click',function(){
		jQuery('#zoomContainer').fadeOut(750);
	});
	
	jQuery('*').mousemove(function(e){
		if(mousedown == true){
			zoomImage = false;
			jQuery(clickedElement).css('margin-left',(clickedElement.offsetLeft - clickedElement.getElementsByTagName("a")[0].offsetWidth - (cursorPosX - e.pageX))*-1);
			cursorPosX = e.pageX;
			jQuery(clickedElement)
				.css('margin-top',clickedElement.offsetTop - (cursorPosY - e.pageY));
			cursorPosY = e.pageY;
		};
	});
});


(function($) {
	$.fn.unselectable = function() {
		return this.each(function() {
			
			$(this)
				.css('-moz-user-select', 'none')		// FF
				.css('-khtml-user-select', 'none')		// Safari, Google Chrome
				.css('user-select', 'none');			// CSS 3
			
			if ($.browser.msie) {					// IE
				$(this).each(function() {
					this.ondrag = function() {
						return false;
					};
				});
				$(this).each(function() {
					this.onselectstart = function() {
						return (false);
					};
				});
			} else if($.browser.opera) {
				$(this).attr('unselectable', 'on');
			};
		});
	};
})(jQuery);


function init(){
	polaroids = jQuery('a.polaroid');
	for(x=0;x<polaroids.length;x++){
		polaroid_thumb = jQuery(polaroids[x]).attr('rel');
		polaroid_image = jQuery(polaroids[x]).attr('href');
		polaroid_title = jQuery(polaroids[x]).attr('title');
		polaroids[x].parentNode.innerHTML = '<a class="draggable" href="'+polaroid_image+'" onclick="return false;"><img src="'+polaroid_thumb+'" alt="'+polaroid_title+'" border="0" class="polaroid_image" /></a>';
	};
};// JavaScript Document
