$(document).ready(function(){
	var target = $('#target');
	var targetPos = target.position();
	var stamp = $('#stamp');
	var stampPos = stamp.position();
	var stampMoved;
	var isTorn = false;
	var dispenserStamp = $('#dispenser-stamp img');
	var captionText;
	var img;
	var imgFrame;
	var caption;
	
	$('.image-block img').each(altCaption);
	
	$('#stamp').draggable({
		axis: 'y',
		drag: function(event, ui) {
			stampMoved = parseInt(stamp.css('top')) - stampPos.top;
			if (stampMoved < 20 && !isTorn) {
				dispenserStamp.css('top', stampMoved-70);
			} else {
				dispenserStamp.animate({top:-70}, 200);
				isTorn = true;
			}
		},
		stop: function() {
			if (stampMoved < 20) {
				dispenserStamp.animate({top:-70}, 200);
				stamp.animate({top:10}, 200);
			}
		}
	});
	$(target).droppable({
		activeClass: 'active',
		hoverClass: 'highlight',
		drop: function(event, ui) {
			placeStamp(ui.draggable);
		}
	});
	function placeStamp($item) {
		$item.addClass('dropped');
		$item.animate({
			left: targetPos.left-6,
			top: targetPos.top-6
		}, 200, function() {
   			$('#no-spam-confirmed').css({'top': randRange(targetPos.top-30, targetPos.top+20), 'left': randRange(targetPos.left-30, targetPos.left)}).delay(300).show();
  		});
		$('#contact-submit').attr('disabled', false);
		$('#contact-submit').removeClass('disabled');
	}
	
	$('.home .slides').cycle({
		fx: 'fade',
		speed:1000,
		timeout:2000
	});
	
});

// Fetch a random number between 2 points
function randRange(numLow, numHigh) {
	var adjustedHigh = (parseFloat(numHigh) - parseFloat(numLow)) + 1;
	var numRand = Math.floor(Math.random()*adjustedHigh) + parseFloat(numLow);
	return numRand;
}
// Add caption to picture based on alt attribute
function altCaption() {
	captionText = $(this).attr('alt');
	if (!captionText == ''){
		$(this).parent('.pic').append('<div class="caption"></div>');
		$(this).next('.caption').html('<p>'+captionText+'</p>');
	}
}
// Touch events for Safari iOS
function touchHandler(event) {
    var touches = event.changedTouches,
        first = touches[0],
        type = '';          
    switch(event.type) {
        case 'touchstart':
            type = 'mousedown';
            break;            
        case 'touchmove':
            type='mousemove';        
            event.preventDefault();
            break;            
        case 'touchend':
            type='mouseup';
            break;            
        default:
            return;
    }
    var simulatedEvent = document.createEvent('MouseEvent');    
    //initMouseEvent(type, canBubble, cancelable, view, clickCount, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget);    
    simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0, null);                                                                            
    first.target.dispatchEvent(simulatedEvent);
    //event.preventDefault();
}

function touchInit() {
	if (stamp.addEventListener) {
		stamp.addEventListener('touchstart', touchHandler, false);
		stamp.addEventListener('touchmove', touchHandler, false);
		stamp.addEventListener('touchend', touchHandler, false);
		stamp.addEventListener('touchcancel', touchHandler, false);
	}
}
