$(function(){

/*
	$('ul.board-list li a').click(function () {
		var active = $('ul.board-list li strong').parent();
		active.html('<a href="#">' + active.children('strong').html() + '</a>');

		var alias = $(this).parent().attr("class");
		$('.director').hide();
		$('.director.director-' + alias).show();

		active = $(this).parent();
		active.html('<strong>' + active.children('a').html() + '</strong>');

		return false;
	});
*/
	if ($('.tabs').length) {
		$('.tabs div a').click(function () {
			$('.tab-content').hide();
			$('.' + $(this).parent().attr('class')).show();
			$('.tabs div a').removeClass('selected');
			$(this).addClass('selected');
			return false;
		});
	}

	if ($('.faq-box').length) {
		$('.faq-box h3 .pseudo-link').click(boxToggle);
	};
	if ($('.filter-period').length) {
		$('.filter-period .pseudo-link').click(boxToggle);
	};
	if ($('.vacancies-box').length) {
		$('.vacancies-box').find('.pseudo-link').click(function () {
			boxToggle($(this));
			return false;
		});
	};
	if ($('.table-rates').length) {
		$('.table-rates .pseudo-link').click(function () {
			boxToggle($(this).parent());
		});
	};
	if ($('.table-rates').length) {
		$('.section-1.heading').click(function () {
			$(this).parent().children('.section-1').toggle();
			$(this).show();
			return false;		
		});
		$('.section-2.heading').click(function () {
			$(this).parent().children('.section-2').toggle();
			$(this).show();
			return false;			
		});
		$('.section-3.heading').click(function () {
			$(this).parent().children('.section-3').toggle();
			$(this).show();
			return false;			
		});
		$('.section-4.heading').click(function () {
			$(this).parent().children('.section-4').toggle();
			$(this).show();
			return false;			
		});
	}
	
	function boxToggle(a) {
		console.log(a);
		if (!a) {
			a = $(this);
		}
		if (!a.hasClass('active')) {
			a.addClass('active');
			a.parent().next().slideDown(150);
		} else {
			a.removeClass('active');
			a.parent().next().slideUp(150);
		};
		return false;
	};
	
	if ($('.contacts-map').length) {
		$('.contacts-map .switchers .pseudo-link').click(function(){
			var p = $(this).parent();
			if (!p.hasClass('active')) {
				$('.contacts-map .active').removeClass('active');
				p.addClass('active');
			};
		});
	};
	
	if ($('.askFeedback').length) {
		$('.askFeedback .pseudo-link').click(function(){
			showPopup('popup-feedback');
			return false;
		});
	};
	
	if ($('.gallery').length) {
		$('.gallery').each(gallery);
	};
	
	if ($('.index-news').length) {
		(function(){
			var n, up, down, list, qnt, items, w
				current = 0;
			
			n = $('.index-news');
			w = n.find('.wrapper');
			list = n.find('.inner')
			items = list.find('p');
			qnt = Math.ceil(items.length/3);
			w.height(getHeight(0)-10);
			
			if (qnt > 1) {
				n.prepend('<div class="up"></div>');
				n.append('<div class="down"></div>');
				up = n.find('.up');
				down = n.find('.down');
				up.add(down).click(slide);
			};
			
			function slide() {
				var d = ($(this).hasClass('up')) ? -1 : 1;
				current += d;
				list.animate({
					marginTop:-(getHeight(0,current*3))
				},600,'easeOutBack');
				w.animate({
					//height:getHeight(current*3,3)-10
				},200);
				check();
			};
			function getHeight(k,q) {
				q = (q) ? q : ( (q === 0) ? 0 : 3 );
				var h = 0;
				for (var i=0;i<q;i++) {
					h += items.eq(i+k).height()+17;
				};
				return h;
			};
			function check() {
				if (current <= 0) {
					up.hide();
					down.show();
				} else if (current >= qnt-1) {
					up.show();
					down.hide();
				} else {
					up.show();
					down.show();
				};
			};
		})();
	};
	
	function setCenter(item) {
		windowHeight = document.documentElement.clientHeight;
		currentOffset = document.documentElement.scrollTop || document.body.scrollTop;
		currentOffset = currentOffset + parseInt((windowHeight - $(item).outerHeight()) / 2);
		currentOffset = (currentOffset < 10) ? 10 : currentOffset;
		pLeft = parseInt(($(window).width() - item.outerWidth()) / 2);
		item.css({top:currentOffset,left:pLeft});
	}
	function showPopup(popup) {
		popup = $('#'+popup);
		setCenter(popup);
		createBlind(popup);
		popup.css({opacity:0}).show().animate({opacity:1},300);
		popup.find('.popup-close').click(function(){
			closePopup(popup);
			//return false;
		});
	};
	function createBlind(popup) {
		var blind = $('<div class="blind"></div>');
		blind.css({opacity:0}).height($(document).height()).appendTo('body').animate({opacity:0.4},200);
		blind.click(function(){
			closePopup(popup);
			//return false;
		});
	};
	function closePopup(popup) {
		$('.blind').remove();
		popup.hide();
		return false;
	};
	
	function gallery() {
		var g, list, images, prev, next, qnt,
		current = 0,
		w = 0;
		g = $(this);
		list = g.find('.inner');
		images = list.find('img');
		images.each(function(i){
			w += $(this).width()+8;
		});
		qnt = Math.ceil(w/676);
		list.width(w);
		if (qnt >= 2) {
			g.append('<div class="prev"><img src="/images/gallery-l.png" alt=""><span><i></i></span></div><div class="next"><img src="/images/gallery-r.png" alt=""><span><i></i></span></div>');
			prev = g.find('.prev');
			next = g.find('.next');
		};
		
		prev.add(next).click(slide);
		
		
		function slide() {
			var d = ($(this).hasClass('next')) ? 1 : -1;
			current += d;
			list.animate({
				marginLeft:-(676*current)
			},200);
			check();
		};
		
		function check() {
			if (current <= 0) {
				prev.hide();
				next.show();
			} else if (current >= qnt-1) {
				prev.show();
				next.hide();
			} else {
				prev.show();
				next.show();
			};
		};
	};
});


function get_url_parameter(name) {
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp(regexS);
	var results = regex.exec(window.location.href);
	if (results == null) {
		return null;
	}else {
		return results[1];
	}
};


jQuery.jQueryRandom = 0;
jQuery.extend(jQuery.expr[":"],
{
    random: function(a, i, m, r) {
        if (i == 0) {
            jQuery.jQueryRandom = Math.floor(Math.random() * r.length);
        };
        return i == jQuery.jQueryRandom;
    }
});

/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158; 
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
 */

