/*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.2
 * 
 * Requires: 1.2.2+
 */

(function(b){function d(a){var f=[].slice.call(arguments,1),e=0;a=b.event.fix(a||window.event);a.type="mousewheel";if(a.wheelDelta)e=a.wheelDelta/120;if(a.detail)e=-a.detail/3;f.unshift(a,e);return b.event.handle.apply(this,f)}var c=["DOMMouseScroll","mousewheel"];b.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],d,false);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],
d,false);else this.onmousewheel=null}};b.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);

/*--- IE6 hover ---*/
function ieHover(h_list, h_class){
	if($.browser.msie && $.browser.version < 7){
		if(!h_class) var h_class = 'hover';
		$(h_list).mouseenter(function(){
			$(this).addClass(h_class);
		}).mouseleave(function(){
			$(this).removeClass(h_class);
		});
	}
}

function initTabs(){
	$('.media-gallery').each(function(_ind, _el){
		var btn_h = $(_el);
		var _btn = $(_el).find('a.tab');
		var _a = 0;
		_btn.each(function(_ind, _el) {
			this._box = $('#'+_el.href.substr(_el.href.indexOf("#") + 1));
			if($(_el).hasClass('active')) {
				this._box.css({position:'static'});
				_a = _ind;
			}
			else {
				this._box.css({position:'absolute'});
			}
			_el.onclick = function() {
				if(!$(this).hasClass('active')){
					_btn.get(_a)._box.css({position:'absolute'});
					_btn.eq(_a).removeClass('active');
					this._box.css({position:'static'});
					$(this).addClass('active');
					_a = _ind;
				}
				return false;
			}
		});
	});
}
/*
* jQuery mouseGallerySlide v1.1.0 
*/
jQuery.fn.mouseGallerySlide = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		scrollElParent: 'ul',
		scrollEl: 'li',
		autoSlide: false,
		animateSpeed: 7000,
		speed: 1,
		onCreate: null
	},_options);

	return this.each(function(){
		var _this = $(this);

		var _gWidth = _this.outerWidth();
		var _scrollElParent = jQuery(_options.scrollElParent,_this);
		var _scrollEl = jQuery(_options.scrollEl,_this);
		var _maxMargin = _scrollEl.length * _scrollEl.outerWidth(true);
		var _autoSlide = _options.autoSlide;
		var _speed = _options.speed;

		var _sec = _maxMargin*_options.animateSpeed/1000;

		var _width = _this.outerWidth();
		var _height = _this.outerHeight();

		var _chapter = _gWidth/9, _direction = 1;
		var _timerOut = false, _hover = false;;

		_this.bind('mousewheel',function(event, delta){
			var _marginScroll = parseInt(_scrollElParent.css('marginLeft'),10);
			if (delta>0) {
				_marginScroll -= 20;
				if ( -_marginScroll > 2*_maxMargin) _marginScroll = -_maxMargin - 20;
			}else{
				_marginScroll += 20;
				if ( -_marginScroll < _maxMargin) _marginScroll = -2*_maxMargin +20;
			}
			_scrollElParent.stop().css('marginLeft', _marginScroll);
			return false;
		}).hover(function(){
			_hover= true;
		},function(){
			_hover= false;
		}).mouseleave(function(){
			_scrollElParent.stop();
			setTimeout(function(){
				if(_options.autoSlide) autoSlide();
			},700);
		}).mouseenter(function(e){
			mouseOverMove(Math.floor((e.pageX - $(this).offset().left)/_chapter));
		}).mousemove(function(e){
			if(e.pageX%10==0) mouseOverMove(Math.floor((e.pageX - $(this).offset().left)/_chapter));
		});

		_scrollElParent.prepend(_scrollEl.clone(true));
		_scrollElParent.append(_scrollEl.clone(true));
		_scrollElParent.css('marginLeft', -_maxMargin);
		if(jQuery.isFunction(_options.onCreate)){
			_options.onCreate.apply(_this);
		};
		function mouseOverMove(i) {
			switch(i){
				case 0:		_speed = 3;break
				case 1:		_speed = 2;break
				case 2:		_speed = 1;break
				case 3:		_speed = 0;break
				case 4:		_speed = 0;break
				case 5:		_speed = 0;break
				case 6:		_speed = 1;break
				case 7:		_speed = 2;break
				case 8:		_speed = 3;break
				default:	_speed = 0;break
			}
			if (i < 4) _direction = 1;
			else if (i >=5) _direction = 3;
			else _direction = 2;
			_scrollElParent.stop();
			animateEl();
		}

		function animateEl(){
			if (_timerOut) clearTimeout(_timerOut);
			if(_direction == 1){
				_scrollElParent.animate({marginLeft:0},{
					easing: 'linear',
					queue: false,
					duration: _sec/_speed,
					complete:function(){
						_scrollElParent.css({'marginLeft':-(2*_maxMargin)});
						_timerOut = setTimeout(function(){
							if(_hover) animateEl();
							else if(_options.autoSlide) animateEl();
						},25);
					}
				});
			};
			if(_direction == 3){
				var k = (2*_maxMargin + _curMargin)/_maxMargin;
				_scrollElParent.animate({marginLeft:-2*_maxMargin},{
					easing: 'linear',
					duration: _sec/_speed,
					queue: false,
					complete:function(){
						_scrollElParent.css({'marginLeft':-_maxMargin});
						_timerOut = setTimeout(function(){
							if(_hover) animateEl();
							else if(_options.autoSlide) animateEl();
						},25);
					}
				});
			};
		}

		function autoSlide(){
			_curMargin = parseInt(_scrollElParent.css('marginLeft'),10);
			if(_autoSlide){
				var k = (_maxMargin + _curMargin)/_maxMargin;
				if (_autoSlide && !_hover ) _speed = _options.speed;
				_scrollElParent.stop().animate({marginLeft:-2*_maxMargin},{
					easing: 'linear',
					duration: _sec,
					complete:function(){
						_scrollElParent.css({'marginLeft':-_maxMargin});
						_timerOut = setTimeout(function(){
							if(_options.autoSlide) autoSlide();
						},25);
					}
				});
			};
		};
		autoSlide();
	});
};

/*horizontal accordion*/
jQuery.fn.vvAccordion = function(_options){
	var _options = jQuery.extend({
		el: '> li',
		head: 'a.opener',
		content: 'div.ac-content',
		active: 'selected',
		event: 'click',
		onBeforeAply: null,
		onChangeStart: null,
		onChange: null,
		duration: 400
	},_options);
	return this.each(function(){
		var _this = this;
		var _t = null;
		_this.duration = _options.duration;
		_this.list = $(_options.el, _this);
		_this.list.each(function(i){
			this.opener = $(_options.head, this);
			this.slider = $(_options.content, this);
			this.width = $(this).width();
			this.height = $(this).height();
			if($(this).hasClass(_options.active)){
				_this.active = this;
			};
			this.index = i;
		});
		if(!_this.active) _this.active = _this.list[0];
		if(jQuery.isFunction(_options.onBeforeAply)){
			_options.onBeforeAply.apply(_this);
		};
		_this.list.not(_this.active).each(function(){
			$(this).css({width: '0px'});
		});
		_this.list.each(function(){
			var next = this;
			this.opener.bind(_options.event, function(){
				if(jQuery.isFunction(_options.onChangeStart)){
					_options.onChangeStart.apply(_this.list);
				};
				if(_t) clearTimeout(_t);
				_t = setTimeout(function(){
					_this.curent = next;
					$(next).animate({width: next.width},{duration: _options.duration,
					step:function(i, curObj){
						var _p = curObj.now/curObj.end;
						if(_this.active !== next){
							var _thisValue = 0;
							if (curObj.prop == 'height') {
								_thisValue = _this.active.height - (_this.active.height * _p);
							}else{
								_thisValue = curObj.end - curObj.now;
							}
							eval('$(_this.active).css({'+curObj.prop+':'+_thisValue+'})');
						}
					},
					complete: function(){
						$(_this.active).removeClass(_options.active);
						$(_this.active).css({width: 0});
						_this.active = next;
						$(_this.active).addClass(_options.active);
						$(_this.active).css({width: _this.active.width});
						if(jQuery.isFunction(_options.onChange)){
							_options.onChange.apply(_this.active);
						};
						_this.curent = false;
					}});
				},150);
				return false;
			});
		});
	});
}

//init curs popup with gallery (temp.html)
function cursPopup(){
	var _this = this;
	var _hold = $('.car-temp-menu a, a.show-box');
	var _popupClass = 'car-temp-popup';
	_this.active = null;
	_this.alink = null;
	if(_hold.length){
		_hold.each(function(){
			if($(this).attr('href')!='' && $($(this).attr('href')).length) this.popup = $($(this).attr('href'));
			$(this).click(function(){
				if($(this).hasClass('active')){
					$(this).removeClass('active');
					this.popup.removeAttr('style');
					_this.active = null;
					_this.alink = null;
				}else{
					if(_this.active){
						_this.active.removeAttr('style').removeClass(_popupClass);
						_this.alink.removeClass('active');
					};
					$(this).addClass('active');
					_this.active = this.popup;
					_this.alink = $(this);
					_this.active.find('.btn-close-pop-up').click(function(){
						if(_this.active){
							_this.active.removeAttr('style');
							_this.alink.removeClass('active');
							_this.active = null;
							_this.alink = null;
						}
						return false;
					});
					this.popup.css({
						display: 'block',
						opacity: 0,
						left:0,
						top:0
					}).animate({opacity: 1},300,function(){
						$(this).css({opacity:'auto'});
					}).addClass(_popupClass);
				};
				return false;
			});
		});
		$('html').mouseup(function(e){
			var _f = false;
			if(_this.active){
				if(!e) e = window.event;
				var _target = (e.target || e.srcElement);
				_hold.each(function(){
					if(this===_target || this === _target.parentNode) _f=true;
				});
				if(!$(_target).hasClass(_popupClass) && !$(_target).parents("."+_popupClass).length && !_f){
					_this.active.removeAttr('style').removeClass(_popupClass);
					_this.alink.removeClass('active');
					_this.active = null;
					_this.alink = null;
				}
			};
		});
	}
}

//init show-room popup with gallery (showroom.html)
function showRoomPopup(){
	var _this = this;
	var links = $('.show-room a');
	var _popupClass = 'show-room-popup';
	_this.active = null;
	_this.alink = null;
	if(links.length){
		links.each(function(){
			if($(this).attr('href')!='' && $($(this).attr('href')).length) this.popup = $($(this).attr('href'));
			$(this).click(function(){
				var _link = $(this);
				if($(this).hasClass('active')){
					$(this).removeClass('active');
					this.popup.removeAttr('style');
					_this.active = null;
					_this.alink = null;
				}else{
					if(_this.active){
						_this.active.attr('style','').removeClass(_popupClass);
						_this.alink.removeClass('active');
					};
					$(this).addClass('active');
					this.popup.css({
						display: 'block',
						opacity: 0,
						left: _link.parent().position().left + _link.parent().width()/2 - this.popup.width()/2,
						top: _link.parent().position().top + _link.parent().height()/2 - this.popup.height()/2
					}).animate({opacity: 1},300,function(){
						$(this).css('opacity','auto');
					}).addClass(_popupClass);
					_this.active = this.popup;
					_this.alink = $(this);
				};
				return false;
			})
		});
		$('html').mouseup(function(e){
			var _f = false;
			var _active = _this.active;
			var _alink = _this.alink;
			if(_active){
				if(!e) e = window.event;
				var _target = (e.target || e.srcElement);
				links.each(function(){
					if(this===_target || this === _target.parentNode) _f=true;
				});
				if(!$(_target).hasClass(_popupClass) && !$(_target).parents("."+_popupClass).length){
					_active.removeAttr('style').removeClass(_popupClass);
					_alink.removeClass('active');
					_active = null;
					_alink = null;
				}
			};
		});
	};
}

/* GalleryScroll 1.0 */
jQuery.fn.galleryScroll = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		btnPrev: 'a.link-prev',
		btnNext: 'a.link-next',
		holderList: 'div',
		scrollElParent: 'ul',
		scrollEl: 'li',
		duration : 1000,
		step: false,
		event: 'click',
		circleSlide: true,
		disableClass: 'disable',
		autoSlide:false,
		onBeforeChange: null,
		onChange: null
	},_options);

	return this.each(function(){
		var _this = this;

		var _holderBlock = jQuery(_options.holderList,_this);
		var _moover = jQuery(_options.scrollElParent,_holderBlock);
		var _liWidth = jQuery(_options.scrollEl,_moover).outerWidth(true);
		var _gWidth = _holderBlock.width();
		var _liSum = jQuery(_options.scrollEl,_moover).length * _liWidth;
		var _step = 0, _t = null, _mM=0;
//step
		if(typeof(_options.step)=='number') _step = _options.step;
		else if (!_options.step) _step = _gWidth; else _step = _options.step*_liWidth;

//prev btn
		if($(_options.btnPrev, _this)){
			$(_options.btnPrev, _this).bind(_options.event, function(){
				if(!$(this).hasClass(_options.disableClass)){
					_this.rotate(false);
				}
				return false;
			});
		}
//next btn
		if($(_options.btnNext, _this)){
			$(_options.btnNext, _this).bind(_options.event, function(){
				if(!$(this).hasClass(_options.disableClass)){
					_this.rotate(true);
				}
				return false;
			});
		}
//animate
		_this.rotate = function(direction){
			if(_t) clearTimeout(_t);
			if (jQuery.isFunction(_options.onBeforeChange)) {
				_options.onBeforeChange.apply(_this);
			}
			if(!direction){
				//prev
				jQuery(_options.btnNext,_this).removeClass(_options.disableClass);
				if(_mM - _step<0) (_mM!=0) ? _mM=0 : (_options.circleSlide ? _mM = _liSum - _gWidth : jQuery(_options.btnPrev,_this).addClass(_options.disableClass));
				else _mM -= _step;
			}else{
				//next
				jQuery(_options.btnPrev,_this).removeClass(_options.disableClass);
				if(_mM + _step >_liSum - _gWidth) (_mM!= _liSum - _gWidth) ? (_mM = _liSum - _gWidth) : (_options.circleSlide ? _mM = 0 : jQuery(_options.btnNext,_this).addClass(_options.disableClass));
				else _mM += _step;
			};
			_moover.animate({marginLeft: -_mM},{duration: _options.duration, queue: false, complete: function(){
				if (jQuery.isFunction(_options.onChange)) {
					_options.onChange.apply(_this);
				}
				_this.autoslide();
			}});
		};
//autoslide
		_this.autoslide = function(){
			if(_options.autoSlide && _liSum <= _gWidth){
				_t = setTimeout(function(){
					_this.rotate(true);
				}, _options.autoSlide);
			};
		}
		_this.autoslide();
//disable btns next/prev if need
		if (_liSum <= _gWidth) {
			jQuery(_options.btnPrev,_this).addClass(_options.disableClass).unbind(_options.event).click(function(){return false;});
			jQuery(_options.btnNext,_this).addClass(_options.disableClass).unbind(_options.event).click(function(){return false;});
		};
	});
}

/*lightbox*/
jQuery.fn.simpleLightbox = function(_options){
	// defaults options	
	var _options = jQuery.extend({
		lightboxContentBlock: '.nonelight',
		faderOpacity: 0.65,
		faderBackground: '#000000',
		closeLink:'a.btn-close, .close',
		href:true,
		onShow: null,
		onClick: null
	},_options);

	return this.each(function(i, _this){
		var _this = jQuery(_this);
		var _d = $.browser.msie ? 0 : 300;
		var _posTimer = null , _posTimer2 = null;
		if (!_options.href)
			_this.lightboxContentBlock = _options.lightboxContentBlock;
		else _this.lightboxContentBlock = _this.attr('href');
		if (_this.lightboxContentBlock != '' && _this.lightboxContentBlock.length > 1) {
			_this.faderOpacity = _options.faderOpacity;
			_this.faderBackground = _options.faderBackground;
			_this.closeLink = _options.closeLink;
			var _fader;
			var _lightbox = $(_this.lightboxContentBlock);
			if (!jQuery('div.lightbox-fader').length)
				_fader = $('body').append('<div class="lightbox-fader"></div>');
			
			_fader = jQuery('div.lightbox-fader');
			_lightbox.css('zIndex',999);
			_fader.css({
				opacity:_this.faderOpacity,
				backgroundColor:_this.faderBackground,
				display:'none',
				position:'absolute',
				top:0,
				left:0,
				zIndex:998,
				textIndent: -9999
			}).text('$nbsp');
			if(typeof(document.body.style.maxHeight) == 'undefined'){
				var _frame = $('<iframe />');
				_fader.html(_frame);
				_frame.css({
					opacity: 0,
					clear: 'both',
					position: 'absolute',
					left: 0,
					top: 0,
					width: "100%",
					height: "100%",
					zIndex: 0
				});
				var _newdiv = $('<div />');
				_newdiv.css({
					background: '#f00',
					opacity:0,
					clear: 'both',
					position: 'absolute',
					left: 0,
					top: 0,
					width: "100%",
					height: "100%",
					zIndex: '90'
				});
				_fader.append(_newdiv);
			}
			_lightbox.shownFlag = false;

			_this.click(function(){
				if (jQuery.isFunction(_options.onClick)) {
					_options.onClick.apply(_this);
				}
				if (_fader.is(":visible")) {
					$(".lightbox").each(function(){
						$(this).css("display","none");
					});
					_lightbox.shownFlag = true;
					_lightbox.fadeIn(0);
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				} else {
				_fader.fadeIn(10, function(){
					_lightbox.shownFlag = true;
					_fader.shownFlag = true; 
					_lightbox.fadeIn(20, function(){
						if (jQuery.isFunction(_options.onShow)) {
							_options.onShow.apply(_lightbox);
						}
					});
					jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				});
				}
				return false;
			});
			_lightbox.bind('lbclose',function(){
				_lightbox.fadeOut(0, function(){
					_fader.fadeOut(0);
					$(this).css('top','');
				});
			})
			jQuery(_this.closeLink, _lightbox).click(function(){
				_lightbox.trigger('lbclose');
				return false;
			});
			_fader.click(function(){
				_lightbox.trigger('lbclose');
				return false;
			});

			jQuery.fn.simpleLightbox.positionLightbox = function (_lbox) {
				if(!_lbox.shownFlag) return false;
				var _height = 0;
				var _width = 0;
				var _minWidth = $('body > div:eq(0)').outerWidth();
				_minWidth = 1000;
				if (window.innerHeight) {
					_height = window.innerHeight;
					_width = window.innerWidth;
				} else {
					_height = document.documentElement.clientHeight;
					_width = document.documentElement.clientWidth;
				}
				var _thisHeight = _lbox.outerHeight();
				var _page = $('body > div:eq(0)');
				_page.h = _page.outerHeight(true) + $('#footer').outerHeight(true);
				if (_lbox.length) {
					if (_height > _page.h) _fader.css('height',_height); else _fader.css('height',_page.h);
					if (_width < _minWidth) {_fader.css('width',_minWidth);} else {_fader.css('width','100%');}
					if (_height > _thisHeight){
						_lbox.css({position:'absolute'});
						var _top = document.documentElement.scrollTop + document.body.scrollTop;
						if(_posTimer) clearTimeout(_posTimer);
						_posTimer = setTimeout(function(){
							_lbox.animate({top: (_top + (_height - _thisHeight) / 2)}, 200);
						},300);
					}
					else {
						_lbox.css({
							position:'absolute',
							top: 0
						});
						_fader.css({
							height:_thisHeight
						});
					}
					if(_posTimer2) clearTimeout(_posTimer2);
					_posTimer2 = setTimeout(function(){
						if (_width > _lbox.outerWidth()) _lbox.css({left:(_width - _lbox.outerWidth()) / 2 + "px"});
						else _lbox.css({position:'absolute',left: 0,border:'solid thin red'});
					},300);
				}
			}
		
			jQuery(window).resize(function(){
				jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
			});
			jQuery(window).scroll(function(){
				jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
			});
			
			jQuery.fn.simpleLightbox.positionLightbox(_lightbox);
				$(document).keydown(function (e) {
				if (!e) evt = window.event;
				if (e.keyCode == 27) {
					_lightbox.trigger('lbclose');
				}
			});
		}
	});
}

/*open-close widgets*/
function initOpenClose(){
	var _holder = $('.open-close');
	var _d = 400;
	var _timer = 5000;
	var _t = null;
	var _activeClass = 'opened';
	var _el = null;
	_holder.each(function(){
		var _this = $(this);
		var _t = null;
		var _opener = $('.oc-opener', this);
		var _slider = $('.oc-slider', this);
		var _form = _opener.parents('form:eq(0)');
		var _inp = _this.find('input:text, textarea, select');
		_slider.h = _slider.outerHeight(true);
		if(!_this.hasClass(_activeClass)){
			_slider.css({
				height:'0px',
				position: 'relative',
				overflow: 'hidden'
			});
		}else{
			_slider.css({
				position: 'relative',
				overflow: 'hidden'
			});
		};
		_inp.each(function(){
			$(this).focus(function(){
				if(_t) clearTimeout(_t);
			}).blur(function(){
				hideWiget(_el);
			}).change(function(){
				if(_t) clearTimeout(_t);
				hideWiget(_el);
			});
		});
		_opener.click(function(){
			_el = $(this);
			if(_slider.height() == 0){
				_slider.animate({height: _slider.h}, _d,function(){
					_this.addClass(_activeClass);
					hideWiget(_el);
				});
				return false;
			}/* else{
				if($(this).parents('form:eq(0)').length){
					var _form = $(this).parents('form:eq(0)');
					var _inp = _form.find('input:text, textarea, select');
					var _send = true;
					_inp.each(function(){
						if($(this).attr('def') && $(this).attr('def')==$(this).attr('value')) _send = false;
					});
					if(_send) _form.submit();
					else{
						_slider.animate({height: 0}, _d,function(){
							_this.removeClass(_activeClass);
						});
					}
				}
			};
			return false; */
		});
		function hideWiget(el){
			if(_t) clearTimeout(_t);
			_t = setTimeout(function(){
				_slider.animate({height: 0}, _d,function(){
					_this.removeClass(_activeClass);
					if(_t) clearTimeout(_t);
				});
			},_timer);
		}
	});
}

/*custom selects*/
jQuery.fn.customSelect = function(_options){
	// defaults options
	var _options = jQuery.extend({
		selectStructure: '<div class="selectArea"><div class="left"></div><div class="right"></div><div class="center"><span></span></div><a href="#" class="selectButton">&nbsp;</a><div class="disabled"></div></div>',
		selectText: '.center > span',
		selectBtn: '.selectButton',
		selectDisabled: '.disabled',
		optStructure: '<div class="drop-box"><div class="t"><div class="tl"></div><div class="tr"></div><div class="tc"></div></div><div class="c"><div class="body"><ul></ul></div></div><div class="b"><div class="bl"></div><div class="br"></div></div></div>',
		optList: '.body ul:last',
		customClass: 'custom_class',
		column: 1,
		dropWidth: false,
		markOptClass: 'marked',
		disableClass: 'disable_cs',
		onChangeFunc: null,
		defSelTitle: false,
		title: '.heading'
	},_options);
	return this.each(function(){
		var cs = this;
		if(!$(cs).hasClass('outtaHere') && !$(cs).hasClass(_options.disableClass)){
			if($(cs).is(':visible')){
				var replaced = jQuery(_options.selectStructure);
				replaced.addClass($(cs).attr('class'));
				cs.selectText = replaced.find(_options.selectText);
				var selectBtn = replaced.find(_options.selectBtn);
				var selectDisabled = replaced.find(_options.selectDisabled).hide();
				var optHolder = jQuery(_options.optStructure);
				optHolder.addClass($(cs).attr('class'));
				var optList = optHolder.find(_options.optList);
				if($(cs).attr('disabled')) selectDisabled.show();
				//replace
				var _cols = Math.ceil($(cs).find('option').length/_options.column);
				$(cs).find('option').each(function(ind){
					var selOpt = $(this);
					var imgTitle = selOpt.attr("title") ? '<img src="'+selOpt.attr('title')+'" alt="img" />' : '';
					var _opt = jQuery('<li><a href="#">'+ imgTitle + selOpt.html() + '</a></li>');

					if(selOpt.attr('selected')){
						var imgTitle = $(cs).find('option:eq(0)').attr("title") ? '<img src="'+$(cs).find('option:eq(0)').attr('title')+'" alt="img" />' : '';
						cs.selectText.html(selOpt.html()).before('<em>'+imgTitle+'</em>');
						_opt.addClass('selected');
						if (jQuery.isFunction(_options.onChangeFunc)){
							_options.onChangeFunc.apply(cs);
						}
					}
					if(selOpt.attr('class')){
						cs.selectText.html(selOpt.html());
						_opt.addClass(selOpt.attr('class'));
					}
					//class to option 
					if(selOpt.hasClass(_options.markOptClass)) _opt.addClass(_options.markOptClass);
					//bind 'click' event on options
					if(_opt.children('a').length){
						_opt.children('a').click(function(){
							optHolder.find('a').removeClass('selected');
							$(cs).find('option').removeAttr('selected');
							$(this).addClass('selected');
							selOpt.attr('selected', 'selected');
							cs.selectText.html(selOpt.html());
							$(cs).change();
							optHolder.hide();
							return false;
						});
					}else{
						_opt.click(function(){
							optHolder.find('a').removeClass('selected');
							$(cs).find('option').removeAttr('selected');
							$(this).addClass('selected');
							selOpt.attr('selected', 'selected');
							cs.selectText.html(selOpt.html());
							$(cs).change();
							optHolder.hide();
							return false;
						});
					}
					if(_options.column > 1){
						if(ind==1){
							if(!optHolder.find('div.columns-holder').length) optList.wrap('<div class="columns-holder"><div class="column"></div></div>');
							optHolder.find('div.column:last ul').append(_opt);
						}else{
							if(ind!=0 && (ind)%(_cols) == 0){
								optHolder.find('div.columns-holder').append('<div class="column"><ul></ul></div>');
								optHolder.find('div.column:last ul').append(_opt);
							}else{
								optHolder.find('div.column:last ul').append(_opt);
							}
						}
					}else{
						if(ind==0) return true;
						optList.append(_opt);
					}
				});
				replaced.width($(cs).outerWidth());
				replaced.insertBefore($(cs));
				optHolder.css({
					width: _options.dropWidth ? _options.dropWidth+'px' : $(cs).outerWidth(),
					display: 'none',
					zIndex: 700,
					position: 'absolute'
				});
				jQuery(document.body).append(optHolder);

				var optTimer;
				replaced.hover(function(){
					if(!$(cs).attr('disabled')){
						if(optTimer) clearTimeout(optTimer);
						replaced.addClass('hover');
					}
				}, function() {
					optTimer = setTimeout(function() {
						optHolder.hide();
						replaced.removeClass('select-active');
						replaced.removeClass('hover');
					}, 200);
				});
				optHolder.hover(function(){
					if(optTimer) clearTimeout(optTimer);
				}, function() {
					optTimer = setTimeout(function() {
						optHolder.hide();
						replaced.removeClass('select-active');
						replaced.removeClass('hover');
					}, 200);
				});
				selectBtn.click(function(){
					if(!$(cs).attr('disabled')){
						if(optHolder.is(':visible')){
							optHolder.hide();
							replaced.removeClass('select-active');
						}
						else{
							replaced.addClass('select-active');
							optHolder.children('ul').css({height:'auto', overflow:'hidden'});
							optHolder.css({
								top: replaced.offset().top + replaced.outerHeight(),
								left: replaced.offset().left,
								display: 'block'
							});
							if(optHolder.children('ul').height() > 100) optHolder.children('ul').css({height:100, overflow:'auto'});
						}
					}
					return false;
				});
				$(cs).addClass('outtaHere');
				if(_options.defSelTitle){
					cs.selectText.html(_options.defSelTitle);
					cs.defText = _options.defSelTitle;
				}else{
					cs.defText = $(this).get(0).options[0].text;
				}
				$(cs).change(function(){
					var _selind = this.selectedIndex;
					optHolder.find('li').removeClass('selected').eq(_selind).addClass('selected');
					var _val = $(this).get(0).options[_selind].text;
					cs.selectText.html(_val);
					if (jQuery.isFunction(_options.onChangeFunc)){
						_options.onChangeFunc.apply(cs);
					}
				});
			}
		}
	});
}

/*tabslider finance_app.html*/
jQuery.fn.tabSlide = function(_options) {
    // defaults options
    var _options = jQuery.extend({
        btPrev: 'a.prev',
        btNext: 'a.next',
        tabs: 'ul.tabset a',
        holderList: 'div',
        scrollElParent: 'ul',
        scrollEl: 'li',
        duration: 1000,
        autoSlide: false,
        startAfterClick: 10000,
        otherLinks: false,
        animateContentHeight: false
    }, _options)

    return this.each(function() {
        var _this = $(this);

        var _holder = $(_options.holderList, _this);
        var _mover = $(_options.scrollElParent, _holder);
        var _scrollEl = $(_options.scrollEl, _mover);
        var _next = $(_options.btNext, _this);
        var _prev = $(_options.btPrev, _this);
        var _tabs = $(_options.tabs, _this);
        var _otherLinks = $(_options.otherLinks, _this);

        var _margin = 0;
        var _duration = _options.duration;
        var _current = 0;
        var _step = _holder.innerWidth();
        var _length = _scrollEl.length;
        var _afterTimer = false, _contentHeight, slideHeight = [];


        var _slideTimer = false;
        if (_options.autoSlide) _slideTimer = setInterval(function() { nextSlides() }, _options.autoSlide);
        _scrollEl.each(function(i, slide) {
            if (i == 0) _contentHeight = $(slide).outerHeight(true);
            slideHeight[i] = $(slide).outerHeight(true);
        });
        _holder.css({ overflow: 'hidden', height: _contentHeight });

        if (_options.btNext) {
            _next.click(function() {
                checkAutoScroll();
                nextSlides();
                return false;
            });
        }
        if (_options.btPrev) {
            _prev.click(function() {
                checkAutoScroll();
                _current -= 1;
                if (_current < 0) _current = _length - 1;
                _margin = _step * _current;
                animateTab();
                animateHeight(_current);
                setActive();
                return false;
            });
        }
        if (_options.tabs) {
            if (!_tabs.parent().filter('.active').length) {
                _tabs.eq(0).parent().addClass('active');
            }
            _tabs.each(function(i, tabLink) {
                if ($(tabLink).parent().hasClass('active')) {
                    _margin = _step * i;
                    _mover.css({ 'marginLeft': -_margin })
                    _current = i;
                }
            });
            _tabs.click(function() {
                var i = _tabs.index(this);
                checkAutoScroll();
                _tabs.parent().removeClass('active');
                _margin = _step * i;
                animateTab();
                animateHeight(i);
                _current = i;
                $(this).parent().addClass('active');
                return false;
            });
        }
        if (_options.otherLinks) {
            _otherLinks.click(function() {
                checkAutoScroll();
                _current = parseInt(this.href.substr(this.href.indexOf('#') + 1)) - 1;
                _margin = _step * _current;
                animateTab();
                animateHeight(_current);
                setActive();
                return false;
            });
        }
        function checkAutoScroll() {
            if (_slideTimer) clearInterval(_slideTimer);
            if (_afterTimer) clearTimeout(_afterTimer);
            if (_options.autoSlide && _options.startAfterClick) {
                _afterTimer = setTimeout(function() {
                    _slideTimer = setInterval(function() { nextSlides() }, _options.autoSlide);
                }, _options.startAfterClick - _options.autoSlide)
            }
        }
        function nextSlides() {
            _current += 1;
            if (_current >= _length) _current = 0;
            _margin = _step * _current;
            setActive();
            animateTab();
            animateHeight(_current);
            return false;
        }
        function animateTab() {
            _mover.animate({ 'marginLeft': -_margin }, { duration: _duration, queue: false });
        }
        function animateHeight(_index) {
            if (_options.animateContentHeight) {
                _holder.animate({ 'height': slideHeight[_index] }, { duration: _duration, queue: false });
            }
        }
        function setActive() {
            if (_options.tabs) {
                _tabs.parent().removeClass('active');
                _tabs.eq(_current).parent().addClass('active');
            }
        }
    });
}

function lightboxTabs(){
	//lightbox gallery
	var _swichTime = false;
	var _d = 700;
	var _overlayOpacity = 0.45;
	$('.lightbox .holder div.tab').each(function(){
		var _this = $(this);
		var _list = $('.big-img img', _this);
		var _btnPrev = $('.link-prev', _this);
		var _btnNext = $('.link-next', _this);
		var _linksParent = $('.visual-thumbnails > div', _this);
		var _moover = $('> ul', _linksParent);
		var _links = $('li', _moover);
		var _mM =0, _direction = false;
		var _maxMargin = _links.outerWidth(true)*_links.length - _linksParent.width();
		var _a = _list.index(_list.filter('.active'));
		if(_a==-1) _a=0;
		var _t = null;
		if(_swichTime) _swichTime +=_d;
		_list.removeClass('active').hide().eq(_a).addClass('active').show();
		_links.removeClass('active').eq(_a).addClass('active');
		var _t;
//fade
		if (_swichTime){
			_t = setTimeout(function(){
				if(_a < _list.length - 1) changeEl(_a + 1);
				else changeEl(0);
			}, _swichTime);
		}
		if (_btnPrev){
			_btnPrev.click(function(){
				var _prevItem = 0;
				if (_a > 0) _prevItem = _a-1;
				else _prevItem = _list.length-1;
				changeEl(_prevItem);
				return false;
			});
		};
		if (_btnNext){
			_btnNext.click(function(){
				var _nextItem = 0;
				if (_a < _list.length - 1) _nextItem = _a+1;
				else _nextItem = 0;
				changeEl(_nextItem);
				return false;
			});
		};
		if(_links){
			_links.click(function(){
				if(!$(this).hasClass('active')) changeEl(_links.index(this));
				return false;
			});
		};
		function changeEl(_ind){
			if(_t) clearTimeout(_t);
			if(_ind != _a){
				var _direction = getActivePosition(_ind);
				if(_direction){
					moveGallery(_ind);
				}
				_list.eq(_a).removeClass('active').css({display:'block', zIndex:5}).animate({opacity: 0}, {queue:false, duration:_d,complete: function(){
					$(this).css({zIndex: 2});
				}})
				_list.eq(_ind).addClass('active').css({display:'block', opacity: 1});
				_links.removeClass('active').eq(_ind).addClass('active');
				_a = _ind;
			}
			if (_swichTime){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, _swichTime);
			};
		};
//get Active position
		function getActivePosition(_next){
			var _curentPosition = _links.eq(_next).offset().left;
			var _ThumbsWindowPosition = _linksParent.offset().left;
			if(_curentPosition > _ThumbsWindowPosition && _curentPosition < (_ThumbsWindowPosition+_linksParent.width())){
				//we can see active thumbs now
				return false;
			}else{
				//need scroll thumbs
				return true;
			}
		}
//move thumbs
		function moveGallery(_next){
			if(_a > _next){
				_mM = _links.outerWidth(true)*_next - _linksParent.width()+_links.outerWidth(true);
				if(_mM < 0) _mM = 0;
			}else{
				_mM = _links.outerWidth(true)*_next;
				if(_mM > _maxMargin) _mM = _maxMargin;
			}
			_moover.animate({marginLeft: -_mM},{duration: _d, queue: false});
			_direction = false;
		}
	});

	//lightbox tabs
	$('.lightbox .holder').each(function(){
		var _this = this;
		var _nav = $('.visual-nav a', _this);
		var _list = $('.lb-tabholder > div.tab',_this);
		var _a = _nav.index(_nav.filter('.active'));
		if(_a==-1) _a =0;
		_list.css({opacity: 0,display: 'none'}).eq(_a).css({opacity: 1,display: 'block'}).css('opacity','auto');
		_nav.click(function(){
			var _ind = _nav.index(this);
			if(_ind!=_a && _list.length > _ind){
				if(_list.is(':animated')) _list.stop(true, true);
				_nav.removeClass('active').eq(_ind).addClass('active');
				_list.eq(_a).animate({opacity:0}, 400, function(){
					$(this).css({display:'none'});
				});
				_list.eq(_ind).css({display:'block',opacity: 0}).animate({opacity:1}, 400, function(){
					_a = _ind;
					$(this).css('opacity','auto');
				});
			};
			return false;
		});
	});
}

/*init all scripts on DOM ready*/
$(document).ready(function() {
    //IE
    ieHover('#header ul li', 'hover');

    //clear inputs
    //$('input:text, textarea, select').each(function() {
    $('input:text, select').each(function() {
        $(this).attr('def', $(this).attr('value'));
        $(this).focus(function() {
            if ($(this).attr('value') == $(this).attr('def')) $(this).attr('value', '');
        }).blur(function() {
            if ($(this).attr('value') == '') $(this).attr('value', $(this).attr('def'));
        })
    })
    //functions
    initTabs();
    cursPopup();
    showRoomPopup();
    initOpenClose();
    //lightbox tabs
    lightboxTabs();
    //lightbox
    $('a.open-lb').simpleLightbox({
        faderOpacity: 0.7,
        faderBackground: '#000',
        closeLink: 'a.btn-close-pop-up',
        onShow: null
    });
    //init gallery in cursPopup
    $('#content .temp-gallery, #content .featured-gallery').galleryScroll({
        btnPrev: 'a.link-prev',
        btnNext: 'a.link-next',
        holderList: 'div.holder:eq(0)',
        scrollElParent: '> ul',
        scrollEl: '> li',
        step: false
    });
    //init accordion
    if (typeof ($().accordion) == 'function') {
        $('ul.search-list').accordion({
            active: ".selected",
            autoHeight: false,
            header: ".opener",
            collapsible: true,
            event: "click"
        });
    };
    //init custom selects
    $('select.two-column').customSelect({
        optList: '.body ul:last',
        customClass: 'custom_class',
        column: 2,
        dropWidth: false,
        markOptClass: 'marked',
        disableClass: 'disable_cs',
        onChangeFunc: null,
        title: false
    })
    $('select').customSelect({
        optList: '.body ul:last',
        customClass: 'custom_class',
        column: 1,
        dropWidth: false,
        markOptClass: 'marked',
        disableClass: 'disable_cs',
        onChangeFunc: null,
        title: '.heading'
    })
    //init horizontal accordion
    $('.hor-accordion > ul.horacc').vvAccordion({
        el: '> li',
        head: 'a.opener',
        content: 'div.slide',
        active: 'active',
        event: 'click',
        onBeforeAply: null,
        onChangeStart: function() {
            this.each(function() {
                if ($(this).find('.staff').length) {
                    $(this).find('.staff').css({ overflow: '' });
                }
            })
        },
        onChange: function() {
            $(this).find('.staff').css({ overflow: 'auto' })
        },
        duration: 400
    });

    //init mouse gallery
    $('.mouse-gallery').mouseGallerySlide({
        scrollElParent: 'ul.gallery-list',
        scrollEl: 'li',
        onCreate: function() {
            $('a.open-media-lb', this).simpleLightbox({
                faderOpacity: 0.7,
                faderBackground: '#000000',
                closeLink: 'a.btn-close-lightbox',
                onShow: null
            });
        }
    });
    $('.mouse-gallery-autoslide').mouseGallerySlide({
        scrollElParent: 'ul',
        scrollEl: 'li',
        animateSpeed: 15000
    });

    //init color popup
    $('.open-box').each(function() {
        if ($(this).attr('rel') != '' && $($(this).attr('rel')).length) this.popup = $($(this).attr('rel'));
        $(this).click(function() {
            this.popup.css('display', 'block');
            return false;
        }).mouseleave(function() {
            this.popup.css('display', '');
        });
    });
    //widget form accordion
    $('.form-widget').each(function() {
        var _step = $('.form-step', this);
        var _btn = $('.parts-step', this);
        var _a = 0;
        _step.not(':first').css('height', '0px');
        _btn.click(function() {
            var ind = _btn.index(this) + 1;
            if (ind != _btn.length + 1) {
                _step.eq(_a).animate({ height: 0 }, 400);
                var _nextH = _step.eq(ind).css('height', '').height();
                _step.eq(ind).css('height', 0);
                _step.eq(ind).animate({ height: _nextH }, 400, function() {
                    _a = ind;
                });
                return false;
            }
        });
    });
    //finance_app page sliding block
    $('.finance-hidden-tab').each(function() {
        var _this = $(this);
        _this.css({
            height: 0,
            position: 'relative',
            overflow: 'hidden'
        });
        $('a.finance-tab-opener').click(function() {
            if (_this.height() > 0) {
                _this.animate({ height: 0 }, 400);
            } else {
                _this.animate({ height: _this.children().innerHeight(true) }, 400);
            }
            return false;
        })
    });
});
//init function on window load
$(window).bind('load', function() {
    //finance gallery (form)
    $('.finance-cont').tabSlide({
        tabs: '.finance-steps a.finance-tab',
        holderList: 'div.holder-finance-tabs',
        scrollElParent: 'div.holder-finance-items',
        scrollEl: 'ul.finance-steps a',
        duration: 1000,
        autoSlide: false,
        startAfterClick: 10000,
        otherLinks: '.holder-finance-items a.finance-tab',
        animateContentHeight: false
    });
});
