/*
 * Facebox (for jQuery) version: 1.2 (05/05/2008)
 * @requires jQuery v1.2 or later
 *
 * Examples at http://famspam.com/facebox/
 * Licensed under the MIT: http://www.opensource.org/licenses/mit-license.php
 * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ]
 *
 * Modifed by Vladimir 'Vii' Varankin, 2009
 * Webway IT Labs | www.webway.ru
 *
 */
$.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);

(function($) {

	$.facebox = function(data, klass) {
		$.facebox.loading();

		if (data.ajax)
			fillFaceboxFromAjax(data.ajax);
		else if (data.image)
			fillFaceboxFromImage(data.image);
		else if (data.div)
			fillFaceboxFromHref(data.div);
		else if ($.isFunction(data))
			data.call($);
		else
			$.facebox.reveal(data, klass);
	}

	/*
	 * Public, $.facebox methods
	 */

	$.extend($.facebox, {
		settings : {
			opacity : 0.42,
			overlay : true,
			loadingImage : '',
			closeImage : '',
			imageTypes : ['png', 'jpg', 'jpeg', 'gif'],
			faceboxHtml : '\
			<div id="facebox" style="display:none;"> \
				<div class="sh-wrap popup"><div class="shadowed rc-fbx rc-shape fleft"> \
					<div class="c popup-body"> \
						<div class="popup-content"></div> \
					</div> \
					<i class="b-popup-close"><i class="popup-close">Закрыть</i></i> \
					<i class="t tl"></i><i class="t tr"></i><i class="b bl"></i><i class="b br"></i> \
				</div></div> \
			</div>',
    		bodyO : !$.browser.msie6 ? 'body' : '#iepage'
		},

		loading : function() {
			init();

			if ($('#facebox .loading').length == 1) {
				return true;
			}

			showOverlay();

			$('#facebox').css({
				visibility: 'hidden'
			});

			$('#facebox .popup-content').empty();
			$('#facebox .popup-body').children().hide();

			$('#facebox').css({
				top : getPageScroll()[1] + (getPageHeight() / 10) + 'px',
				left : 10
			}).show();

			$(document).bind('keydown.facebox', function(e) {
				if (e.keyCode == 27) {
					$.facebox.close();
				}

				return true;
			});
			
			$(document).trigger('loading.facebox')
		},

		reveal : function(data, klass) {
			if(!$('body').hasClass('faceboxed')){
				$('body').addClass('faceboxed')
				
				$(document).trigger('beforeReveal.facebox');


				if (klass) {
					$('#facebox .popup').addClass( klass );
				}
				sdata = gerPopapFunc(data)
	
				$('#facebox .popup-content').append( sdata )
		
				//$('#facebox .loading').remove();
				//$('#facebox .popup-body').children().fadeIn('normal');
				$('#facebox .popup-body').children().show();

				initSubPage()
				
				$('#facebox').css({
					left : ($(window).width() / 2 - ($('#facebox .popup').width() / 2)) + 'px',
					visibility : 'visible'
				});

				$(document).trigger('reveal.facebox').trigger('afterReveal.facebox');


			}
		},

		close : function() {
			$(document).trigger('close.facebox');

			return false;
		}
	})

	/*
	 * Public, $.fn methods
	 */

	$.fn.facebox = function(settings) {
		init(settings);

		function clickHandler() {
			$.facebox.loading(true);

			// support for rel="facebox.inline_popup" syntax, to add a class
			// also supports deprecated "facebox[.inline_popup]" syntax
			var klass = this.rel.match(/facebox\[?\.(\w+)\]?/);
			if (klass) {
				klass = klass[1];
			}

			fillFaceboxFromHref(this.href, klass);
			return false;
		}

		return this.click(clickHandler);
	}

	/*
	 * Private methods
	 */

	// called one time to setup facebox on this page
	function init(settings) {
		if ($.facebox.settings.inited) {
			return true;
		} else {
			$.facebox.settings.inited = true;
		}

		$(document).trigger('init.facebox');
		makeCompatible();

		var imageTypes = $.facebox.settings.imageTypes.join('|');
		$.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i');

		if (settings) {
			$.extend($.facebox.settings, settings);
		}

		$($.facebox.settings.bodyO).append($.facebox.settings.faceboxHtml);

		// Vii: adding iframe to hide select-elements
		if( !$.support.boxModel ) {
			$_frame = $('<iframe id="facebox_frame" scrolling="0" border="0"></iframe>').hide();

			$('#facebox').before( $_frame );
			$_frame.css({
				'width' : $(window).width(),
				'height' : $(window).height(),
				'opacity' : 0
			});
		}

		var preload = new Image();
		//preload.src = $.facebox.settings.closeImage;
		//preload[1].src = $.facebox.settings.loadingImage

		/*$('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
			preload.push(new Image())
			preload.slice(-1).src = $(this).css('background-image').replace(
					/url\((.+)\)/, '$1')
		})*/

		$('#facebox .popup-close').click($.facebox.close);
	}

	// getPageScroll() by quirksmode.com
	function getPageScroll() {
		var xScroll, yScroll;

		if(self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} else if(document.documentElement && document.documentElement.scrollTop) {
			// Explorer 6 Strict
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} else if(document.body) {
			// all other Explorers
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;
		}

		//return new Array(xScroll, yScroll);
		return [xScroll, yScroll];
	}

	// Adapted from getPageSize() by quirksmode.com
	function getPageHeight() {
		var windowHeight;

		if(self.innerHeight) {
			// all except Explorer
			windowHeight = self.innerHeight;
		} else if(document.documentElement && document.documentElement.clientHeight) {
			// Explorer 6 Strict
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) {
			// other Explorers
			windowHeight = document.body.clientHeight;
		}

		return windowHeight;
	}

	// Backwards compatibility
	function makeCompatible() {
		var $s = $.facebox.settings;

		//$s.loadingImage = $s.loading_image || $s.loadingImage
		$s.closeImage = $s.close_image || $s.closeImage
		$s.imageTypes = $s.image_types || $s.imageTypes
		$s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
	}

	// Figures out what you want to display and displays it
	// formats are:
	// div: #id
	// image: blah.extension
	// ajax: anything else
	function fillFaceboxFromHref(href, klass) {
		if(href.match(/#/)) {
			// div
			var url = window.location.href.split('#')[0],
			target = href.replace(url, '');

			$.facebox.reveal($(target).clone().show(), klass);

		} else if(href.match($.facebox.settings.imageTypesRegexp)) {
			// image
			fillFaceboxFromImage(href, klass);
		} else {
			// ajax
			fillFaceboxFromAjax(href, klass);
		}
	}

	function fillFaceboxFromImage(href, klass) {
		var image = new Image();

		image.onload = function() {
			$.facebox.reveal('<div class="pop-image"><img src="' + image.src + '" /></div>', klass);
		}

		image.src = href;
	}

	function fillFaceboxFromAjax(href, klass) {
		// Vii: no cache for request
		var random = new Date().getTime(),
		sQuerySep;

		href.lastIndexOf('?') != -1 ? sQuerySep = '&' : sQuerySep = '?';
		href += sQuerySep + 'dynamic=' + random;

		$.get(href, function(data) {
			$.facebox.reveal(data, klass);
		})

	}

	function skipOverlay() {
		return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null;
	}

	function showOverlay() {
		$('#facebox_frame').show();

		if (skipOverlay()) {
			return;
		}

		if ($('#facebox_overlay').length == 0) {
			$($.facebox.settings.bodyO).append('<div id="facebox_overlay" class="facebox_hide"></div>');
		}

		if(!$.browser.msie){
		
			$('#facebox_overlay').hide().addClass("facebox_overlayBG").css(
					'opacity', $.facebox.settings.opacity).click(function() {
						$(document).trigger('close.facebox')
					}).fadeIn(200);		
		}else{
			$('#facebox_overlay').addClass("facebox_overlayBG").css(
					'opacity', $.facebox.settings.opacity).click(function() {
						$(document).trigger('close.facebox')
					}).show();

			var abslayout = $('#abslayout')

			if($.browser.msie6){
					if($('#layout').length){
						$('#facebox_overlay').height(-$('#iepage').offset().top + $('#layout').offset().top + $('#layout').height())			
					}else{
						$('#facebox_overlay').height(abslayout.height() - $('#iepage').offset().top - abslayout.offset().top)		
					}
				
			}

		}


		return false;
	}

	function hideOverlay() {
		$('#facebox_frame').hide();

		if (skipOverlay()) {
			return;
		}

		$('#facebox_overlay').fadeOut(200, function() {
			/*$("#facebox_overlay").removeClass("facebox_overlayBG");
			$("#facebox_overlay").addClass("facebox_hide")
			$("#facebox_overlay").remove()*/
			
			$("#facebox_overlay").removeClass("facebox_overlayBG")
				.addClass("facebox_hide")
				.remove();
				endSubPage()
		});

		return false;
	}

	/*
	 * Bindings
	 */

	$(document).bind('close.facebox', function() {
		$(document).unbind('keydown.facebox');
		
		$('body').removeClass('faceboxed')
		
		if($.browser.msie){
			$('#facebox').hide()
		}
		$('#facebox').fadeOut(200,function() {
			$('#facebox .popup-content').removeClass().addClass('popup-content');
			hideOverlay();
			//$('#facebox .loading').remove()
		})
	})

})(jQuery);


// Vii: Init plugin on DOM-Load
jQuery(document).ready(function(){
	jQuery('a[rel*=facebox]').facebox()

});

function gerPopapFunc(data){

	var tmp = data
	var gerPopUp
	var ttm
	var setter

	var modeFaq = $('#mode_faq',$(tmp))
	var modeKitchen = $('#mode_kitchen',$(tmp))
	var modeСookbooks = $('#mode_cookbooks',$(tmp))
	var modePage = $('#mode_page',$(tmp))
	var modeNews = $('#mode_news',$(tmp))
	var modeProjects = $('#mode_projects',$(tmp))


	if(modeFaq.length){
	//	ttm = $('.hdpart:first .sname',modeFaq).add($('.cnt:first',modeFaq))
		ttm = $('.cnt:first',modeFaq).html()
		gerPopUp = $('<div class="scnt"></div>').append(ttm)

	}else if(modeKitchen.length){
		setter = modeKitchen
		
		ttm = $('<h2 class="sname">' + $('.hdpart:first .subname',setter).html() + '</h2>')
		ttm = ttm.add($($('.isimmwr:first',setter)))
		ttm = ttm.add($('.sectswr:first',setter))

		gerPopUp = $('<div class="scnt"></div>').append(ttm)

	}else if(modeСookbooks.length){
		setter = modeСookbooks
		
		ttm = $('<h2 class="sname">' + $('.hdpart:first .subname',setter).html() + '</h2>')
		ttm = ttm.add($($('.isimmwr:first',setter)))
		ttm = ttm.add($('.sectswr:first',setter))

		gerPopUp = $('<div class="scnt"></div>').append(ttm)

	}else if(modePage.length){
		setter = modePage
		
		ttm = $('<h2 class="sname">' + $('.hdpart:first .w_name',setter).html() + '</h2>')
		ttm = ttm.add($($('.gallery:first',setter)))
		ttm = ttm.add($('.sectswr:first',setter))

		gerPopUp = $('<div class="scnt"></div>').append(ttm)

	}else if(modeNews.length){
		setter = modeNews
		
		ttm = $('<h2 class="sname">' + $('.hdpart:first .subname',setter).html() + '</h2>')
		ttm = ttm.add($($('.gll:first',setter)))
		ttm = ttm.add($('.sectswr:first',setter))

		gerPopUp = $('<div class="scnt newscnt"></div>').append(ttm)

	}else if(modeProjects.length){
		setter = modeProjects
		
		ttm = $('<h2 class="sname">' + $('.hdpart:first .sname',setter).html() + '</h2>')
		ttm = ttm.add($($('.gll:first',setter)))
		ttm = ttm.add($('.sectswr:first',setter))

		gerPopUp = $('<div class="scnt"></div>').append(ttm)

	}else{
		gerPopUp = $('.scnt:first',$(tmp))
	}


	if(gerPopUp.length){
		tmp = gerPopUp;
	}
	

//log(tmp)

	return tmp
}

function initSubPage(){

	$('#facebox .gallery:first').PageredCarusel({nums : true})

	$('#facebox .swr_cont').PageredCaruselSingle({
			gallered: '.vert',
			gallery: 'li',
			pagerNext : '.rarrow',
			pagerPrev : '.larrow',
			singleGage:18,
			maxHeight:5,
			hSetter:'body',
			contHeight:'#facebox .sh-wrap:first',
			afterInit:subFanc
		})	

	$('#facebox .swr_cont2').PageredCaruselSingle({
			gallered: '.vert',
			gallery: 'li',
			singleGage:18,
			maxHeight:3,
			hSetter:'body',
			contHeight:'#facebox .sh-wrap:first',
			pagerDiv : '.spager',
			pagerO : '<span class="href"></span>',
			pagerActive : '<span class="corcolor"></span>',
			afterInit:subFanc
		})

$('#iefixed').animate({scrollTop:0},300,function(){});	

function subFanc(){

	var sftwr = $('.sftwr:first'),
	abslayout = $('#abslayout')
	
	var elsHeight = $(document).height()

//setTimeout(function() {
	if(sftwr.length && !$.browser.msie6){

		sftwr.css({
			bottom: (abslayout.offset().top+ abslayout.height() -elsHeight)
		})
	}
//},0)
}
	

	
}
function endSubPage(){
	var sftwr = $('.sftwr:first')

	if(sftwr.length){
		sftwr.css({bottom: 0})
	}
}
