$(document).ready(function(){
	footerDrop();
	initLightBox();
	initPopups();
});
function initLightBox(){
	var _speed = 300;
	var _ieVersion = 7;
	var _opener = $('a.lightbox-opener');
	var _lay = $('<div class="overlay"></div>').appendTo($('body'));
		if (jQuery.browser.msie && jQuery.browser.version < _ieVersion){_lay.css({opacity:0.7}).hide();
		}else{_lay.css({opacity:0}).hide();	}
	
	_opener.click(function(){
		var _light = $($(this).attr('href')).appendTo($('body'));
		var _body = $('body'); 
		var _wrap = $('#wrapper'); 
		Position();
		if (jQuery.browser.msie && jQuery.browser.version < _ieVersion){
			_light.show();
			_lay.show();
		}else{
			_light.css({opacity:0}).show().animate({opacity:1}, {queue:false, duration:_speed});
			_lay.show().animate({opacity:0.7}, {queue:false, duration:_speed});
		}

		_lay.click(function(){	Close();return false;	});
		_light.find('.link-close, .btn-close, .close').click(function(){	Close();return false;	});
		function Close(){
			if (jQuery.browser.msie && jQuery.browser.version < _ieVersion){
				_light.hide();
				_lay.hide();
			}else{	
				_light.animate({opacity:0}, {queue:false, duration:_speed, complete:function(){$(this).hide();}});
				_lay.animate({opacity:0}, {queue:false, duration:_speed, complete:function(){$(this).hide();}});
			}
		}

		$(window).resize(function(){	Position();	});
		$(window).scroll(function(){	Position();	});
		
		function Position(){
			var _w = _light.outerWidth(true);
			var _h = _light.outerHeight(true);
			if (window.innerHeight){var _wx = window.innerWidth; var _wy = window.innerHeight;}
			else{_wx = document.documentElement.clientWidth; _wy = document.documentElement.clientHeight;};
			if (_body.height() < _wy){	_lay.css({height:_wy})	}
			else{	_lay.css({height:_body.height()});	};
			if (_wx < _wrap.width()){	_lay.css({width:_wrap.width()})	}
			else{	_lay.css({width:'100%'});	};
			var _top = (_wy-_h)/2+$(document).scrollTop();
			if(_top + _h > _body) _top = _body - _h - 8;
			_light.css({left:(_wx-_w)/2, top:_top});
		};
		return false;
	});
};

function footerDrop(){
	var holder = $('div.dropdown');
	var link = $('a.open-close', holder);
	var drop = $('div.dropdown-box', holder);
	
		link.click(function(){
			if(holder.hasClass('active-drop')){
			holder.removeClass('active-drop');
			}
				else{
				holder.addClass('active-drop');
			}
			return false;
			})
			
				$('a.open-close', drop).click(function(){
				holder.removeClass('active-drop');
				return false;
			})
			
			$('body').click(function(){
			if(holder.hasClass('active-drop')){
			holder.removeClass('active-drop');
		}
	})
}

// popups function
function initPopups() {
	var _zIndex = 1000;
	var _fadeSpeed = 350;
	var _faderOpacity = 0.65;
	var _faderBackground = '#000';
	var _faderId = 'lightbox-overlay';
	var _closeLink = 'a.btn-close, a.close, a.cancel';
	var _fader;
	var _lightbox = null;
	var _ajaxClass = 'ajax-load';
	var _openers = jQuery('a.open-popup');
	var _page = jQuery(document);
	var _minWidth = jQuery('body > div:eq(0)').outerWidth();
	var _scroll = false;

	// init popup fader
	_fader = jQuery('#'+_faderId);
	if(!_fader.length) {
		_fader = jQuery('<div />');
		_fader.attr('id',_faderId);
		jQuery('body').append(_fader);
	}
	_fader.css({
		opacity:_faderOpacity,
		backgroundColor:_faderBackground,
		position:'absolute',
		overflow:'hidden',
		display:'none',
		top:0,
		left:0,
		zIndex:_zIndex
	});

	// IE6 iframe fix
	if(jQuery.browser.msie && jQuery.browser.version < 7) {
		if(!_fader.children().length) {
			var _frame = jQuery('<iframe src="javascript:false" frameborder="0" scrolling="no" />');
			_frame.css({
				opacity:0,
				width:'100%',
				height:'100%'
			});
			var _frameOverlay = jQuery('<div>');
			_frameOverlay.css({
				top:0,
				left:0,
				zIndex:1,
				opacity:0,
				background:'#000',
				position:'absolute',
				width:'100%',
				height:'100%'
			});
			_fader.empty().append(_frame).append(_frameOverlay);
		}
	}

	// lightbox positioning function
	function positionLightbox() {
		if(_lightbox) {
			var _windowHeight = jQuery(window).height();
			var _windowWidth = jQuery(window).width();
			var _lightboxWidth = _lightbox.outerWidth();
			var _lightboxHeight = _lightbox.outerHeight();
			var _pageHeight = _page.height();

			if (_windowWidth < _minWidth) _fader.css('width',_minWidth);
				else _fader.css('width','100%');
			if (_windowHeight < _pageHeight) _fader.css('height',_pageHeight);
				else _fader.css('height',_windowHeight);

			_lightbox.css({
				position:'absolute',
				zIndex:(_zIndex+1)
			});

			// vertical position
			if (_windowHeight > _lightboxHeight) {
				if (jQuery.browser.msie && jQuery.browser.version < 7) {
					_lightbox.css({
						position:'absolute',
						top: parseInt(jQuery(window).scrollTop()) + (_windowHeight - _lightboxHeight) / 2
					});
				} else {
					_lightbox.css({
						position:'fixed',
						top: (_windowHeight - _lightboxHeight) / 2
					});
				}
			} else {
				var _faderHeight = _fader.height();
				if(_faderHeight < _lightboxHeight) _fader.css('height',_lightboxHeight);
				if (!_scroll) {
					if (_faderHeight - _lightboxHeight > parseInt(jQuery(window).scrollTop())) {
						_faderHeight = parseInt(jQuery(window).scrollTop())
						_scroll = _faderHeight;
					} else {
						_scroll = _faderHeight - _lightboxHeight;
					}
				}
				_lightbox.css({
					position:'absolute',
					top: _scroll
				});
			}

			// horizontal position
			if (_fader.width() > _lightbox.outerWidth()) _lightbox.css({left:(_fader.width() - _lightbox.outerWidth()) / 2});
			else _lightbox.css({left: 0});
		}
	}

	// show/hide lightbox
	function toggleState(_state) {
		if(!_lightbox) return;
		if(_state) {
			_fader.fadeIn(_fadeSpeed,function(){
				_lightbox.fadeIn(_fadeSpeed);
			});
			_scroll = false;
			positionLightbox();
		} else {
			_lightbox.fadeOut(_fadeSpeed,function(){
				_fader.fadeOut(_fadeSpeed);
				_scroll = false;
			});
		}
	}

	// popup actions
	function initPopupActions(_obj) {
		if(!_obj.get(0).jsInit) {
			_obj.get(0).jsInit = true;
			// close link
			_obj.find(_closeLink).click(function(){
				_lightbox = _obj;
				toggleState(false);
				return false;
			});
		}
	}

	// lightbox openers
	_openers.each(function(){
		var _opener = jQuery(this);
		var _target = _opener.attr('href');

		// popup load type - ajax or static
		if(_opener.hasClass(_ajaxClass)) {
			_opener.click(function(){
				// ajax load
				if(jQuery('div[rel*="'+_target+'"]').length == 0) {
					jQuery.ajax({
						url: _target,
						type: "POST",
						dataType: "html",
						success: function(msg){
							// append loaded popup
							_lightbox = jQuery(msg);
							_lightbox.find('img').load(positionLightbox)
							_lightbox.attr('rel',_target).hide().css({
								position:'absolute',
								zIndex:(_zIndex+1),
								top: -9999,
								left: -9999
							});
							jQuery('body').append(_lightbox);

							// init js for lightbox
							initPopupActions(_lightbox);

							// show lightbox
							toggleState(true);
						},
						error: function(msg){
							alert('AJAX error!');
							return false;
						}
					});
				} else {
					_lightbox = jQuery('div[rel*="'+_target+'"]');
					toggleState(true);
				}
				return false;
			});
		} else {
			if(jQuery(_target).length) {
				// init actions for popup
				var _popup = jQuery(_target);
				initPopupActions(_popup);
					// open popup
					_opener.click(function(){
					if(_lightbox) {
						_lightbox.fadeOut(_fadeSpeed,function(){
							_lightbox = _popup.hide();
							toggleState(true);
						})
					} else {
						_lightbox = _popup.hide();
						toggleState(true);
					}
					return false;
				});
			}
		}
	});

	// event handlers
	// jQuery(window).resize(positionLightbox);
	// jQuery(window).scroll(positionLightbox);
	jQuery(document).keydown(function (e) {
		if (!e) evt = window.event;
		if (e.keyCode == 27) {
			toggleState(false);
		}
	})
	_fader.click(function(){
		if(!_fader.is(':animated')) toggleState(false);
		return false;
	})
}
