$(function() {
	$("button", "#slogan").button({icons:{primary: 'ui-icon-play'}});
	$('.button').button().click(function(e) {e.preventDefault();});
	$('#deckslider').deckSlider({sizeFactor: 5, interval: 12000, speed: 1500, backgroundColor: '#303030',
		onSlide : function(s) {
			var id = this.attr('id').split('-').pop();
			$('.case-text, .case-comments').fadeOut(1200);
					
		},
		onSlideDone: function(s) {
		var id = this.attr('id').split('-').pop();
		$('#case-' + id + '-text').fadeIn(1500, function() {
			$('#case-' + id + '-comments').show().effect('slide', 1000);
		});
	}});
	$('#navi').overlayNavi({onshow: function() {
		if ($(this).attr('id') == "contact-overlay") {
		if (!$('#gmap').children().length) {
			var opts = {
				zoom: 15,
	            center: new google.maps.LatLng(60.45350910,22.27052690), // 
	            mapTypeId: google.maps.MapTypeId.ROADMAP
	            };
			var map = new google.maps.Map(document.getElementById("gmap"), opts);
			new google.maps.Marker({position: opts.center,map: map, title: 'IMPRO'});
		}
		}
	}});
	$('#feedback').contactForm();
	$('#contact-form #contact-form-send-button').bind('click', function(){
		var valid = true;
        if (valid == true) {
              $.ajax({
              type: 'post',
              url: '/cms_ajax/Feedback::SaveAndSend:www_yhteydenotto,Yhteydenotto+www-sivuilta,p_',
              data: $('#contact-form .contact-form-input').serialize(),
              timeout: 2000,
              dataType: 'json',
              beforeSend: function(req) {
                $('#contact-form-formresult').html('<b>Lähetetään viesti...</b>').show().css({'color':'#71a829', "font-size": "16px"});
              }
              ,success: function(data, textStatus){
                if(!data.result){
                   $('#contact-form-formresult').html('<b>Virhe lähetyksessä: '+data.error+'</b>').show().css({'color':'#ff0000', "font-size": "16px"}).fadeOut(3000);
                } else {
                    $("#contact-form-send-button").hide();
                    $('#contact-form-formresult').html('<b>Viesti lähetetty!</b>').show().css({'color':'#71a829', "font-size": "16px"}).fadeOut(5000);
                }
              }
              ,error: function(a,b,c){
                $('#contact-form-formresult').html('<b>Virhe lähetyksessä! '+b+'</b>').show().css({'color':'#ff0000', "font-size": "16px"}).fadeOut(3000);
              }
          });

        }		
	});
});


$.fn.deckSlider = function(options) {
	var settings = {sizeFactor : 10, interval: 12000, speed: 2000, backgroundColor: '#ffffff'}, to = null;
	$.extend(settings, options);
	return this.each(function() {

	var e = $(this),h = e.height(),w = e.width(),s = $('.slide', e),t=0,l=0;
	e.hide();
	s.css({'background': settings.backgroundColor,padding: '5px',position: 'absolute',left: 0, top:0,'-moz-box-shadow': '-4px 4px 8px #666','-webkit-box-shadow': '-4px 4px 8px #666'})
	slide();
	var loop = run(); 
	
	function slide() {
		s.each(function(i, v){
			var co = $(this)	,
			iw  	= (w * ((100 - (i * settings.sizeFactor)) / 100)),
			ih  	= (h * ((100 - (i * settings.sizeFactor)) / 100)),
			img 	= $('img', this),
			a 		= $('a', this),
		
			top 	= (t + (i * (settings.sizeFactor * 2)) ) + 'px',
			left 	= '-' +(l + (i * (settings.sizeFactor * 3)) ) + 'px',
			zindex	= 100 - i;
			a.css({position: 'absolute', bottom: '-3em', left: '6em'});
			
			if (i == 0 && typeof settings.onSlide == 'function') {
				settings.onSlide.call($(this), s);
			}	
		
			//if (i > 0) a.fadeOut(); else a.fadeIn();
			$(this).animate({top: top, left:left, 'z-index': zindex, opacity: (1 / i)}, ( settings.speed / 2 ));
			img.animate({width:iw, height:ih, opacity: (1 / i)}, settings.speed, function() {
				co.show();
				if (i == 0 && typeof settings.onSlideDone == 'function') {
					settings.onSlideDone.call(co, s);
				}	
			});
		});
	}
	function reorder() {
		var sf = s.first().detach();
		sf.appendTo(e);
		s = $('.slide', e);
	}
	function next() {
		loop.restart();
		reorder();
		slide();
		return false;
	}
	function run() {
		var i = setInterval(next, settings.interval);
		function restart() {
			reset();
			i = setInterval(next, settings.interval);
		}
		function reset() {
			clearInterval(i);
		}
		return {
			reset : reset,
			restart: restart
		}
	}
	$('.deckslider-next').unbind('click').click(function() {
	if (!to) {$(this).parent().effect('highlight'); next();to = setTimeout(function() {to=null;}, 4000)	}});
	
	$(this).show();
	});
};



$.fn.contactForm = function() {return this.each(function() {
	var e = $(this);
	$('body').click(function() {close();});
	$(this).click(function() {return false;});
	$('button',e).button().click(function() {close();});
	function open() {
		e.animate({width: '300px'}, 1000, function() {$('form', e).fadeIn();});
		$('a',e).unbind('click').click(function(){close();return false;});
	}
	function close() {
		$('form', e).fadeOut(1000, function() { e.animate({width: '2.2em'}, 1000); });
		$('a',e).unbind('click').click(function(){open();return false;});
	}
	$('a',e).click(function(){open();return false;});
	});
}

$.fn.overlayNavi = function(options) {
	var settings = {onshow : function() {}};
	if (options) $.extend(true, settings, options);
	return this.each(function() {
		$('.overlay').click(function(e) {e.stopPropagation();});
		$('body').click(function() {//$('#overlay-shader').hide();
		$('.overlay').fadeOut(500);});
		
		var arb = $('<div class="overlay-arrow-border"></div>')
		.css({'z-index': '0','border-style':'solid', 'border-width':'15px', 
			'border-color':'transparent transparent #aaa transparent',
			position:'absolute', top: '-31px', left: '0',width: '0', height: '0'})
		.prependTo('.overlay');
		
		var ar = $('<div class="overlay-arrow"></div>')
		.css({'z-index': '1','border-style':'solid', 'border-width':'15px', 
			'border-color':'transparent transparent #fff transparent',
			position:'absolute', top: '-29px', left: '0',width: '0', height: '0'})
		.prependTo('.overlay');
		
		$('button',this).button()
//		.not('.right')
		.click( function() {
			var ol = $('#' + $(this).attr('id').split('-').pop() + '-overlay');
			if(!ol.length) {	
				$('.overlay').fadeOut(500);
			}
			else { 
				if (ol.is(':visible')) { 
					ol.fadeOut(500);
					//$('#overlay-shader').hide();
				}
				else {
					//$('#overlay-shader').show();
					var offset = (parseInt(ol.css('left')))? parseInt(ol.css('left')): 0;
					arb.animate({left: ($(this).position().left) + ($(this).width() / 2.8) - offset });
					ar.animate({left: ($(this).position().left) + ($(this).width() / 2.8) - offset });
					ol.siblings('.overlay').hide();
					settings.onshow.call(ol);
					ol.show();
				}
			}
			return false;
		});
	});
};

