/*
 * jQuery doTimeout: Like setTimeout, but better! - v1.0 - 3/3/2010
 * http://benalman.com/projects/jquery-dotimeout-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($){var a={},c="doTimeout",d=Array.prototype.slice;$[c]=function(){return b.apply(window,[0].concat(d.call(arguments)))};$.fn[c]=function(){var f=d.call(arguments),e=b.apply(this,[c+f[0]].concat(f));return typeof f[0]==="number"||typeof f[1]==="number"?this:e};function b(l){var m=this,h,k={},g=l?$.fn:$,n=arguments,i=4,f=n[1],j=n[2],p=n[3];if(typeof f!=="string"){i--;f=l=0;j=n[1];p=n[2]}if(l){h=m.eq(0);h.data(l,k=h.data(l)||{})}else{if(f){k=a[f]||(a[f]={})}}k.id&&clearTimeout(k.id);delete k.id;function e(){if(l){h.removeData(l)}else{if(f){delete a[f]}}}function o(){k.id=setTimeout(function(){k.fn()},j)}if(p){k.fn=function(q){if(typeof p==="string"){p=g[p]}p.apply(m,d.call(n,i))===true&&!q?o():e()};o()}else{if(k.fn){j===undefined?e():k.fn(j===false);return true}else{e()}}}})(jQuery);

/* скроллбар на главной */

$(function() {
	//scrollpane parts
	var scrollPane = $('.scroll-pane');
	var scrollContent = $('.scroll-content');
	
	//build slider
	var scrollbar = $(".scroll-bar").slider({
		slide:function(e, ui){
			if( scrollContent.width() > scrollPane.width() ){ scrollContent.css('margin-left', Math.round( ui.value / 100 * ( scrollPane.width() - scrollContent.width() )) + 'px'); }
			else { scrollContent.css('margin-left', 0); }
		}
	});
	
	//append icon to handle
	var handleHelper = scrollbar.find('.ui-slider-handle')
	.mousedown(function(){
		scrollbar.width( handleHelper.width() );
	})
	.mouseup(function(){
		scrollbar.width( '100%' );
	})
	.wrap('<div class="ui-handle-helper-parent"></div>').parent();
	
	//change overflow to hidden now that slider handles the scrolling
	scrollPane.css('overflow','hidden');
	
	//size scrollbar and handle proportionally to scroll distance
	function sizeScrollbar(){
		var remainder = scrollContent.width() - scrollPane.width();
		var proportion = remainder / scrollContent.width();
		var handleSize = scrollPane.width() - (proportion * scrollPane.width());
		scrollbar.find('.ui-slider-handle').css({
			width: handleSize,
			'margin-left': -handleSize/2
		});
		handleHelper.width('').width( scrollbar.width() - handleSize);
	}
	
	//reset slider value based on scroll content position
	function resetValue(){
		var remainder = scrollPane.width() - scrollContent.width();
		var leftVal = scrollContent.css('margin-left') == 'auto' ? 0 : parseInt(scrollContent.css('margin-left'));
		var percentage = Math.round(leftVal / remainder * 100);
		scrollbar.slider("value", percentage);
	}
	//if the slider is 100% and window gets larger, reveal content
	function reflowContent(){
			var showing = scrollContent.width() + parseInt( scrollContent.css('margin-left') );
			var gap = scrollPane.width() - showing;
			if(gap > 0){
				scrollContent.css('margin-left', parseInt( scrollContent.css('margin-left') ) + gap);
			}
	}
	
	//change handle position on window resize
	$(window)
	.resize(function(){
			resetValue();
			sizeScrollbar();
			reflowContent();
	});
	//init scrollbar size
	setTimeout(sizeScrollbar,10);//safari wants a timeout
});


/* custom */

$(function() {

	/* появляющиеся при наведении подписи проектов на главной в горизонтальной зоне со скроллом */

	$('.scroll-content a').hover(function(e){
		$(this).find('.descr').fadeIn('fast');
	},
	function(){
		$(this).find('.descr').fadeOut('slow');
	});

	/* форма */

	$('.feedback').submit(function() {
		if ($(this).find('[name=contact]').val() == '') {
			$(this).find('[name=contact]').effect("shake", { times:7 }, 20);
		}
		else {
			$.post(
				path+'feedback',
				$(this).serialize(),
				function(data){
					$('.submit-set').toggle();
					$('.submit-ok').toggle();
				}
			);
		}

		return false;
	});

	/* альтернативные стили для разрешения менее 1280 */
	{
		function check_width() {
			if ( $(window).width() < 1200 ) {
				$('body').addClass('small-screen');
			}
			else {
				$('body').removeClass('small-screen');
			}
		}

		check_width();

		$(window).resize( function(){ check_width(); } );
	}

	/* мета теги */
	$('.meta-editor form textarea').keyup(function(){
		$('.meta-indicator-ok').fadeOut('fast');
		$('.meta-indicator-wait').fadeIn('slow');

		$(this).doTimeout( 'text-type', 3000, function(){
			$.get(
				path + 'meta_editor',
				{ value: this.val(), name: this.attr('name'), alias: alias },
				function(data) {
					$('.meta-indicator-wait').fadeOut('fast');
					$('.meta-indicator-ok').fadeIn('slow');
				}
			);
		});
	});

	$('.meta-hide').click(function(e){
		e.preventDefault();
		$('.meta-editor').fadeOut('fast');
		$('.meta-show').fadeIn('slow');
		$.cookie('meta_hide', 'true', { expires: 999, path: '/' });
	});

	$('.meta-show').click(function(e){
		e.preventDefault();
		$('.meta-show').fadeOut('fast');
		$('.meta-editor').fadeIn('slow');
		$.cookie('meta_hide', null, { expires: 999, path: '/' });
	});

	if ( $.cookie('meta_hide') ){
		$('.meta-show').toggle();
		$('.meta-editor').toggle();
	}

});


/* ctrl+стрелочки навигация в проектах */
{
	e2_ctrl_navi = function (event) {
	  if (window.event) event = window.event
	  var target = (
		(event.target? event.target.tagName : event.srcElement)?
		event.srcElement.tagName : ''
	  )
	  if (/textarea|input/i.test (target)) return
	  if (event.ctrlKey) {
		var link = null
		if (37 == event.keyCode) link = document.getElementById ('link-prev')
		if (39 == event.keyCode) link = document.getElementById ('link-next')
		if (link && link.href) location.href = link.href
	  }

	}


	if (document.addEventListener) {
	  document.addEventListener ('keyup', e2_ctrl_navi, false)
	} else if (document.attachEvent) {
	  document.attachEvent ('onkeydown', e2_ctrl_navi)
	}
}
