jQuery(document).ready(function($) {
	// based on: http://yensdesign.com/2008/09/how-to-create-a-stunning-and-smooth-popup-using-jquery/

	var popStatus = false;
	var popbgOpacity = .85;
	var whereAmI = "match-intro";
	var isFirefox = false;	
	var $panels = $('.panel');
	var $container = $('.scrollContainer');
	var horizontal = true;
	var movingForward;
	var $scroll = $('#slider .scroll').css('overflow', 'hidden');
	var scrollOptions = {
		target: $scroll, 
		items: $panels,
		axis: 'xy',
		onAfter: trigger, 
		duration: 500,
		easing: 'easeInOutExpo'
	};





	// -------------------------------------------------------------------- FUNCTIONS
	
	function getScrollXY() 
		// thanks to http://james.padolsey.com/
		{
			var scrOfX = 0, scrOfY = 0;
			if (typeof(window.pageYOffset) == 'number') {
		    	//Netscape compliant
				scrOfY = window.pageYOffset;
				scrOfX = window.pageXOffset;
		  	} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
		    	//DOM compliant
		    	scrOfY = document.body.scrollTop;
		    	scrOfX = document.body.scrollLeft;
		  	} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
		    	//IE6 standards compliant mode
		    	scrOfY = document.documentElement.scrollTop;
		    	scrOfX = document.documentElement.scrollLeft;
		  	} 
		  	return [ scrOfX, scrOfY ];
		}
	
	function getDocHeight() 
		// thanks to http://james.padolsey.com/
		{
		    var D = document;
		    return Math.max(
		        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
		        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
		        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
		    );
		}	
	
	$.getDocHeight = function() 
		{
		    return Math.max(
		        $(document).height(),
		        $(window).height(),
		        document.documentElement.clientHeight // for opera
		    );
		};
	
	function detectFirefox() 
		// test for Firefox/x.x or Firefox x.x (ignoring remaining digits)
		// capture x.x portion and store as a number
		{
			if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
		 		var ffversion = new Number(RegExp.$1).toFixed(1);
		 		if (ffversion < 3.1) {
					// alert(ffversion);
					isFirefox = true;
				}
			}
		}


	
	function loadPopup() 
		{  		
			if(!popStatus) {  
				$('#matchPopBackground').css({  
					'opacity': popbgOpacity  
				});  
				$('#matchPopBackground').fadeIn(150, function() {
					$('#matchPop').fadeIn(150);  
				});  
				popStatus = true;  
			} 

			if (isFirefox) {			
				whereAmI = "match-intro";
				$scroll.trigger( 'goto', [ 0 ] );		
			}

			$('#backPop').hide();
			$('#yesButton a').html("Da, zanima me");	
		}	

	function disablePopup()
		{  
			if(popStatus){  
				$('#matchPop').fadeOut(150, function() {
					$('#matchPopBackground').fadeOut(150);  
				});  
				popStatus = false;  
			}
		
			if (!isFirefox) {
				whereAmI = "match-intro";
				$scroll.trigger( 'goto', [ 0 ] );		
			}
		
			$('#backPop').hide();
		}	
	
	function centerPopup()  
		{  
			var windowWidth = document.documentElement.clientWidth;  
			var windowHeight = document.documentElement.clientHeight;  
			var popupWidth = $('#matchPop').width();  		
			var popupHeight = $('#matchPop').height();  
				
			$('#matchPop').css({  
				'position': 'absolute',  
				'top': (windowHeight/2-popupHeight/2) + getScrollXY()[1] -25,  
				'left': windowWidth/2-popupWidth/2 + 2
			});  
		
			// only need force for IE6  
			$('#matchPopBackground').css({  
				'height': $.getDocHeight()  
			});  		
		}	

	function trigger(data) 
		{	
			switch (data.id) {
				case 'match-intro':
					$('#yesButton a').text("Da, zanima me.");
					whereAmI = "match-intro";
					break;
				case 'match-consultancy':
					$('#yesButton a').text("Da, zanima me.");
					whereAmI = "match-consultancy";
					break;
				case 'match-service':
					$('#yesButton a').text("Da, htio bih takvu vrstu usluge.");
					whereAmI = "match-service";
					break;
				case 'match-kindconsultancy':
					$('#yesButton a').text("Da, volio bih suradnju.");
					whereAmI = "match-kindconsultancy";
					break;
			}
		
			if (movingForward && (whereAmI == "match-consultancy")) {
				$('#backPop').fadeIn(500).click(function() {
					movingForward = false;
					$scroll.trigger('prev');
				});
			}
			if (!movingForward && (whereAmI == "match-intro")) {
				$('#backPop').unbind().hide();
			}
		}





	// -------------------------------------------------------------------- CODE

	if (horizontal) {
		$panels.css({
			'float' : 'left',
			'position' : 'relative' // IE fix to ensure overflow is hidden
		});
		$container.css('width', 775 * $panels.length);	
	}

	$scroll.serialScroll(scrollOptions);

	detectFirefox();





	// -------------------------------------------------------------------- EVENT HANDLERS

	$('#match a').click(function(event) {
		event.preventDefault();
	});

	$('#match').click(function() {  
		centerPopup();  
		loadPopup(); 
	});	
	
	$('#closePop').click(function(event) {  
		event.preventDefault();
		disablePopup();  
	});  
	
	$('#matchPopBackground').click(function() {  
		disablePopup();  
	});  
	
	$(document).keypress(function(e) {  
		if(e.keyCode==27 && popStatus) {  
			disablePopup();  
		}  
	});	 

	$('#yesButton').click(function(event) {
		event.preventDefault();
		if (whereAmI == "match-kindconsultancy") {
			window.location.href = 'kontakt.php';
			return;			
		}
		movingForward = true;
		$scroll.trigger('next');
	});
	
	$('#backPop').click(function(event) {
		event.preventDefault();
		movingForward = false;
		$scroll.trigger('prev');
	});
	
});

