$(document).ready(function() {

	// Preview
	$('.jmark-image .jmarker').live('mouseenter',
		function(){
			$('.jpreview',this).stop(true,true).slideDown();//show();
			return true;
		}
	);

	$('.jmark-image .jmarker').live('mouseleave',
		function(){
			$('.jpreview',this).stop(true,true).hide();
			return true;
		}
	);

	$('.jmark-image .jmarker a.markerLib').live('click',
		function(){
			return false;
		}
	);

//
	$('a#mark-hide').live('click',
		function(){
			SetCookie('markeroverlay', '0');
			$('div.jmarker').remove();
			$(this).hide();
			$('a#mark-show').show();
			return false;
		}
	);

	$('a#mark-show').live('click',
		function(){
			SetCookie('markeroverlay', '1');
			$('div.jmarker').remove();
			$('a.mark-overlay').hide();
			jm_load( $('div.jmark-image img.highslide-image').attr('src') );
			return false;
		}
	);

	$('.jmark-image .jmarker a.highslide').live('mouseenter',function(){
		var falseDiv = $('#highslide-hidden-gallery');
		var origDiv = $(this).parents('.jmark-corner').offset();
		var origText = $(this).parents('.jmark-corner').find('span').html();
		falseDiv.css({
			'top': origDiv.top,
			'left': origDiv.left
		});

		//console.log($('#highslide-hidden-gallery').offset(),origDiv);

		var href = $(this).attr('href');
		var group = jm_group(href);
		$('div#highslide-hidden-gallery a.highslide.'+group+'[href$="' + href + '"]').parents('.jmark-corner').find('span').html(origText).parents('.jmark-corner').show();
	});

	$('#highslide-hidden-gallery .jmark-corner').live('mouseleave',function(){
		$('div#highslide-hidden-gallery').css({
			'top': -9999+'px',
			'left': -9999+'px'
		});
		$(this).hide();
	});

	$('#highslide-hidden-gallery a.highslide').live('click',function(){
		$('div#highslide-hidden-gallery').css({
			'top': -9999+'px',
			'left': -9999+'px'
		});
		$(this).parents('.jmark-corner').hide();
	});

});

hs.Expander.prototype.onAfterExpand = function () {
	if( this.src != undefined && this.src != '' ){
		jm_heading(this.thumb.alt);
		jm_load(this.src);
	}
}

hs.Expander.prototype.onInit = function (sender) {
//	console.log(sender);
	jSlideshow.slideshowGroup = jm_group(sender.a.href);
   //console.log(jSlideshow);
}
/*

hs.Expander.prototype.onAfterClose = function (sender) {
    //jm_clear_gallery();
	//console.log(sender.slideshowGroup);
}
*/
hs.allowMultipleInstances = false;
hs.wrapperClassName = 'jmark-image';
hs.dynamicallyUpdateAnchors = true;
hs.graphicsDir = '/templates/highslide/graphics/';
hs.showCredits = false;
hs.outlineType = 'custom';
hs.dimmingOpacity = 0.75;
hs.fadeInOut = true;
hs.align = 'center';
hs.padToMinWidth = true;
hs.marginBottom = 105;
hs.headingEval = 'this.thumb.alt';
hs.headingId = 'the-heading';
hs.allowSizeReduction = false;
hs.transitions = ["expand", "crossfade"];

// Add the slideshow controller
hs.addSlideshow({
	slideshowGroup: 'group1',
	interval: 5000,
	repeat: true,
	useControls: true,
	fixedControls: 'fit',
	overlayOptions: {
		className: 'large-dark',
		opacity: '0.5',
		position: 'bottom center',
		offsetX: '0',
		offsetY: '-20',
		hideOnMouseOut: true
	},
	thumbstrip: {
		mode: 'horizontal',
		position: 'bottom center',
		relativeTo: 'viewport'
	}

});

// gallery config object
var config1 = {
	slideshowGroup: 'group1',
	numberPosition: 'caption'
};

jSlideshow = {
	slideshowGroup: 'jgroup',
	interval: 5000,
	repeat: true,
	useControls: true,
	fixedControls: 'fit',
	overlayOptions: {
		className: 'large-dark',
		opacity: '0.5',
		position: 'bottom center',
		offsetX: '0',
		offsetY: '-20',
		hideOnMouseOut: true
	},
	thumbstrip: {
		mode: 'horizontal',
		position: 'bottom center',
		relativeTo: 'viewport'
	}

};

hs.addSlideshow(jSlideshow);

jconfig = {
	slideshowGroup: 'jgroup',
	numberPosition: 'caption'
};

// Russian language strings
hs.lang = {
	cssDirection: 'ltr',
	loadingText: 'Загружается...',
	loadingTitle: 'Нажмите для отмены',
	focusTitle: 'Нажмите чтобы поместить на передний план',
	fullExpandTitle: 'Развернуть до оригинального размера',
	creditsText: 'Использует <i>Highslide JS</i>',
	creditsTitle: 'Перейти на домашнюю страницу Highslide JS',
	previousText: 'Предыдущее',
	nextText: 'Следующее',
	moveText: 'Переместить',
	closeText: 'Закрыть',
	closeTitle: 'Закрыть (esc)',
	resizeTitle: 'Изменить размер',
	playText: 'Слайдшоу',
	playTitle: 'Начать слайдшоу (пробел)',
	pauseText: 'Пауза',
	pauseTitle: 'Приостановить слайдшоу (пробел)',
	previousTitle: 'Предыдущее (стрелка влево)',
	nextTitle: 'Следующее (стрелка вправо)',
	moveTitle: 'Переместить',
	fullExpandText: 'Оригинальный размер',
	number: 'Изображение %1 из %2',
	restoreTitle: 'Нажмите чтобы закрыть изображение, нажмите и перетащите для изменения местоположения. Для просмотра изображений используйте стрелки.'
};


/*
 *  Функции маркера
 */

function jm_attr(image){
	var attr = {'table':null,'id':null};
	var pathArray = image.split('/');
	var pathLength = pathArray.length;
	for(var index in pathArray) {//console.log(parseInt(index) + 2);
		if ( !pathArray.hasOwnProperty(index) ) continue;
		if( pathArray[index] == 'files' && pathLength > parseInt(index) + 2 ){
			attr.table = pathArray[parseInt(index) + 1].toString();
			attr.id = pathArray[parseInt(index) + 2].toString();
		}
	}
	//console.log(attr);
	return attr;
}

function jm_load(image){

	//$('div#highslide-hidden-gallery').html('');
	var attr = jm_attr(image);
	//jGalleryGroupe = attr.table+attr.id;
	//console.log(jGalleryGroupe);

	var param = {
		'file':'getmark',
		'table': attr.table,
		'id': attr.id
	};

	$.ajax({
		type: "POST",
		url: "/ajax.php",
		dataType: 'json',
		data: $.param(param),
		context: document.body,
		success: function(data){
			if(data.mark){
				var markoverlay = GetCookie('markeroverlay');
				if( markoverlay == '0'){
					$('a#mark-hide').hide();
					$('a#mark-show').show();
				}else{
					$.each(data.mark, function(){
						jm_draw(this);
					});
					$('a#mark-show').hide();
					$('a#mark-hide').show();
				}
			}
			if(data.gallery){
				$.each(data.gallery, function(){
					jm_gallery(this);
				});
			}
		}
	});

	hs.updateAnchors();

	//console.log(jGalleryGroupe,jconfig);
}

function jm_preview(data){

	var preview = '';
	var content = '';

	if( data.alt == undefined || data.alt == '' ){
		data.alt = data.text;
	}
	if( data.type == 'info' ){
		content = '<span>'+data.text+'</span>';

	}else if( data.type == 'link' ){
		content = '<div class="jpreview-image"><a target="_blank" href="'+data.link+'" title="'+data.alt+'"><img src="'+data.img+'" alt="'+data.alt+'"/></a></div><a target="_blank" href="'+data.link+'" title="'+data.alt+'">'+data.text+'</a>';

	}else if( data.type == 'photo' ){
		content = '<div class="jpreview-image"><a class="highslide" href="'+data.link+'" title="'+data.alt+'"><img src="'+data.img+'" alt="'+data.alt+'"/></a></div><span>'+data.text+'</span>';
	}

	preview = '<div class="jpreview"><div class="jpreview-arrow">&nbsp;</div><div class="jmark-corner">'+content+'</div></div>';

	return preview;
}

function jm_draw(data){

	if( data.alt == undefined || data.alt == '' ){
		data.alt = data.text;
	}
	var preview = jm_preview(data);

	var marker = $('<div class="jmarker" style="left:' + data.xpos +'px;top:' + data.ypos +'px;"><a href="" title="' + data.alt + '" class="markerLib ' + data.type + '"></a>'+preview+'</div>');

	$('.jmark-image').append(marker);

}

function jm_heading(data){
	$('div#jheadmark').html(data);
}

function jm_clear_gallery(){
	$('div#highslide-hidden-gallery').html('');
}

function jm_group(link){
	var attr = jm_attr(link);
	group = attr.table.toString().substr(0,5)+ attr.id.toString();
	return group;
}

function jm_gallery(data){
	var thumbs = '';
	if(data.config){
		//if( ! $('div#highslide-hidden-gallery a.highslide').hasClass(data.config) )
		//$('div#highslide-hidden-gallery a.'+data.config).parents('div.jmark-corner').remove();
		if( data.thumb && (!$('div#highslide-hidden-gallery a.highslide').hasClass(data.config)) ){
			$.each(data.thumb, function(){
				thumbs += '<div class="jmark-corner"><div class="jpreview-image"><a class="highslide '+data.config+'" onclick="return hs.expand( this, {slideshowGroup:\''+data.config+'\',numberPosition: \'caption\'})" href="'+this.link+'" title="'+this.text+'"><img src="'+this.img+'" alt="'+this.text+'"/></a></div><span>'+this.text+'</span></div>';
			});
			 $('div#highslide-hidden-gallery').addClass(data.config).append(thumbs);
			/*var gallery = $('div#highslide-hidden-gallery');
			if( $(gallery).hasClass(data.config)){
				//$(gallery).html('').addClass(data.config).append(thumbs);
			}else{
				$(gallery).addClass(data.config).append(thumbs);
			}*/
		}
	}
}
