Cufon.replace('#header .phone', { fontFamily: 'HeliosLight' });
/*
 * 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;
	}
});

var _currEl = 0;
var _nextEl = 0;

// main page animation
function initPromoAnimation(){
	$('.promo').each(function(){
		// options
		var _slideTime = 1800; // 1sec slide duration
		var _bigImgEasingOut = 'easeInQuint'; // easing for image outing
		var _bigImgEasingIn = 'easeOutBounce'; // easing for image incoming
		var _minImgWidth = 185; // min image width
		var _maxImgWidth = 513; // max image width
		var _minImgHeight = 185; // min image height
		var _maxImgHeight = 513; // max image height
		var _swingDur = 2000;
		
		// variables
		var _holder = $(this);
		var _imgEl = _holder.find('.big-img .item');
		var _imgElText = _holder.find('.big-img-text .item');
		var _thumbEl = _holder.find('.next-img .item');
		var _thumbElText = _holder.find('.next-img-text .item');

		var __animated = false;
		
		if(_imgEl.length==_imgElText.length && _imgElText.length==_thumbElText.length){
			// reset
			_currEl = _imgEl.index(_imgEl.filter('.active:eq(0)'));
			if(_currEl+1<=_imgEl.length-1) _nextEl=_currEl+1
			else _nextEl=0;
			
			if($.browser.msie || $.browser.safari){
				_imgEl.css({
					left:'690px',
					top:0,
					width:_minImgWidth,
					height:_minImgHeight
				});
			}else{
				_imgEl.css({
					left:'690px',
					top:0,
					width:_minImgWidth,
					height:_minImgHeight,
					opacity:0
				});
			}
			if($.browser.msie || $.browser.safari){
				_imgEl.eq(_currEl).removeClass('active').css({
					left:'-20px',
					top:'875px',
					width:_maxImgWidth,
					height:_maxImgHeight
				});
			}else{
				_imgEl.eq(_currEl).removeClass('active').css({
					left:'-20px',
					top:'875px',
					width:_maxImgWidth,
					height:_maxImgHeight,
					opacity:1
				});
			}
			if($.browser.msie || $.browser.safari){
				_imgEl.eq(_nextEl).css({
					top:'825px',
					width:_minImgWidth,
					height:_minImgHeight
				}).addClass('swinger');
			}else{
				_imgEl.eq(_nextEl).css({
					top:'825px',
					width:_minImgWidth,
					height:_minImgHeight,
					opacity:1
				}).addClass('swinger');
			}
			
			_imgElText.removeClass('active');
			_imgElText.eq(_currEl).show();
			_thumbElText.removeClass('active');
			_thumbElText.eq(_currEl).show();
			
			// big img click
			_imgEl.click(function(){
			  	$('img').stop(true,true);
				if ('a'+_currEl == this.id && this.id=='a0') {
					return false;
				}

				if ('a'+_currEl == this.id && this.id=='a1') {
					return false;
				}
				
				if(!__animated){
					_imgEl.each(function(){
						$(this).removeClass('swinger');
						$(this).find('img').stop();
					});
					__animated = true;
					if($.browser.msie || $.browser.safari){
						promoImgAnimateIE();
					}else{
						promoImgAnimate();
					}
				}
				return false;
			});
			
			// images animation
			function promoImgAnimate(){
				// text animation
				_imgElText.eq(_currEl).fadeOut(_slideTime/2,function(){
					_imgElText.eq(_nextEl).fadeIn(_slideTime/2);
				});
				_thumbElText.eq(_currEl).fadeOut(_slideTime/2,function(){
					_thumbElText.eq(_nextEl).fadeIn(_slideTime/2);
				});
				// images animation
				_imgEl.eq(_currEl).animate({
					top:0,
					opacity:0
				}, _slideTime/2, _bigImgEasingOut, function(){
					_imgEl.eq(_currEl).css({
						left:'690px',
						top:0,
						opacity:1,
						width:_minImgWidth,
						height:_minImgHeight
					});
					_currEl = _nextEl;
					if(_nextEl<_imgEl.length-1) _nextEl++
					else _nextEl=0;
					_imgEl.removeClass('swinger');
					_imgEl.eq(_nextEl).addClass('swinger').animate({
						top:'825px'
					}, _slideTime/2, _bigImgEasingIn, function(){
						__animated = false;
						swingAnimation();
					});
				});
				_imgEl.eq(_nextEl).animate({
					left:'-20px',
					top:'875px',
					width:_maxImgWidth,
					height:_maxImgHeight
				}, _slideTime/2, _bigImgEasingOut);
			}
			// IE images animation
			function promoImgAnimateIE(){
				// text animation
				_imgElText.eq(_currEl).fadeOut(_slideTime/2,function(){
					_imgElText.eq(_nextEl).fadeIn(_slideTime/2);
				});
				_thumbElText.eq(_currEl).hide()
				_thumbElText.eq(_nextEl).show();
				// images animation
				_imgEl.eq(_currEl).animate({
					top:0
				}, _slideTime/2, _bigImgEasingOut, function(){
					_imgEl.eq(_currEl).css({
						left:'690px',
						top:0,
						width:_minImgWidth,
						height:_minImgHeight
					});
					_currEl = _nextEl;
					if(_nextEl<_imgEl.length-1) _nextEl++
					else _nextEl=0;
					_imgEl.removeClass('swinger');
					_imgEl.eq(_nextEl).addClass('swinger').animate({
						top:'825px'
					}, _slideTime/2, _bigImgEasingIn, function(){
						__animated = false;
						swingAnimation();
					});
				});
				_imgEl.eq(_nextEl).animate({
					left:'-20px',
					top:'875px',
					width:_maxImgWidth,
					height:_maxImgHeight
				}, _slideTime/2, _bigImgEasingOut);
			}
			
			// swing
			function swingAnimation(){
				//$('img').stop(true,true);
				setInterval(function(){
					
					if(!__animated) {
						_imgEl.filter('.swinger').eq(0).find('img').animate({
							marginTop:'10px'
						},_swingDur/2,function(){
							_imgEl.filter('.swinger').eq(0).find('img').animate({
								marginTop:'0'
							},_swingDur/2);
						});
					}
				},_swingDur);
				
			}
			
			swingAnimation();
		}
	});
}
function initTextTab(){
	$('.text table tr').hover(function(){
		$(this).addClass('hovered');
	},function(){
		$(this).removeClass('hovered');
	})
}

$(function(){
	initPromoAnimation(); // main page animation
	initTextTab();
});
