
/*
 * ScrollToElement 1.0
 * Copyright (c) 2009 Lauri Huovila, Neovica Oy
 *  lauri.huovila@neovica.fi
 *  http://www.neovica.fi
 *  
 * Dual licensed under the MIT and GPL licenses.
 */

(function(jQuery) {
    jQuery.scrollToElement = function( jQueryelement, speed ) {

        speed = speed || 750;

        jQuery("html, body").animate({
            scrollTop: jQueryelement.offset().top,
            scrollLeft: jQueryelement.offset().left
        }, speed);
        return jQueryelement;
    };

    jQuery.fn.scrollTo = function( speed ) {
        speed = speed || "normal";
        return jQuery.scrollToElement( this, speed );
    };
})(jQuery);

var loader = '<img src="' + themeUrl + '/img/ajax-loader_gallery.gif" style="height:15px;width:128px;border:0px solid #000;" />';
var first_gallery_loaded = false;
var first_galleryselection_loaded = false;
var imageConvUrl_thumb = themeUrl + '/imageconv.php?mode=crop&w=200&h=200&pic=';
var imageConvUrl_thumbheader = themeUrl + '/imageconv.php?mode=crop&w=80&h=80&pic=';
var imageConvUrl_big = themeUrl + '/imageconv.php?mode=size_w&w=950&format=png&pic=';
var imageConvUrl_full = themeUrl + '/imageconv.php?mode=size_w&w=1920&format=png&pic=';
var jsonUrl = themeUrl + '/gallery_json.php';
var imgPath = 'http://www.armaberokay.de/galleries/';
var goodiesParam = '';
String.prototype.startsWith = function(str){
    return (this.indexOf(str) === 0);
}

function initGalleries(titleString, initialYear) {
	jQuery("#deletenote").accordion({ header: "h3", autoHeight: false, collapsible: true, active: false });

	jQuery('#gallery').append('<h1 class="demoHeaders">' + titleString + '</h1><div id="year_selection"></div>');
	jQuery.getJSON(jsonUrl + '?mode=years' + goodiesParam, function(data) {
	   initYearSelection(data.years);
	});



	// Accordion
	/*jQuery("#year_selection_old").accordion({ header: "h2", autoHeight: false, collapsible: true });
	jQuery("#2010_gallery_selection").accordion({ header: "h3", autoHeight: false, collapsible: true });
	jQuery("#2009_gallery_selection").accordion({ header: "h3", autoHeight: false, collapsible: true });
	jQuery("#2008_gallery_selection").accordion({ header: "h3", autoHeight: false, collapsible: true });
	initYearSelection();*/

	// open 2010
	loadGallerySelection(initialYear);
}

function initYearSelection(years) {
	
	years.sort();
	years.reverse();

	var currDiv = jQuery("#year_selection");
	// add years as list
	for (var i=0;i<years.length;i++) {
		currDiv.append('<h2><a href="#">' + years[i] + '</a></h2><div id="accordion_' + years[i] + '"><div class="year_' + years[i] + ' gallery_selection">' + loader + '</div></div>');
	}
	
	// Accordion
	currDiv.accordion({ header: "h2", autoHeight: false, collapsible: true/*, active:false*/ });


	// galleries of year
	/*for (var j=0;j<years.length;j++) {
		var url = 'http://www.armaberokay.de/blog/wp-content/themes/2010_01/gallery_json.php?mode=year&year=' + years[j];
		jQuery.getJSON(url, function(data) {
		    initGallerySelection(data);
		});
	}*/


	// load pictures of gallery on open gallery event
	currDiv.bind('accordionchange', function(event, ui) {
	  if (jQuery(ui.newHeader).parent().attr('id')=='year_selection') { 
	      try {
		jQuery(ui.oldContent).html(loader);
	      } catch (ex) { }
	      try {
		var year = '';
		var classesArr = jQuery(ui.newContent).attr("class").split(" ");
		for(var j = 0;j<classesArr.length;j++) {
		  if (classesArr[j].startsWith('year')) {
		    year = classesArr[j].replace('year_', '');
		  }
		}
		loadGallerySelection(year);
	      } catch (ex) { } 
	      try {
		  //ui.newHeader.scrollTo(); // jQuery object, activated header
	      } catch (ex) {}
	  }
	});
	
	// load firstgalleryselection
	/*if (!first_galleryselection_loaded) {
	  first_galleryselection_loaded = true;
	  loadGallerySelection(years[0]);
	}*/
}

function loadGallerySelection(year) {
	var url = jsonUrl + '?mode=year&year=' + year + goodiesParam;
	jQuery.getJSON(url, function(data) {
	    initGallerySelection(data);
	});
}

function initGallerySelection(data) {

	data.galleries.sort();
	data.galleries.reverse();

	var currDiv = jQuery("#accordion_" + data.year + ' .gallery_selection');
	
	currDiv.accordion( 'destroy' );
	currDiv.html('');

	    // add galleries as list
	    for (var i=0;i<data.galleries.length;i++) {
		    currDiv.append('<h2><a href="#" id="galleryheader_' + data.year + '_' + data.galleries[i] + '"></a></h2><div id="gallery_' + data.year + '_' + data.galleries[i] + '"><div class="thumbs' + ' year_' + data.year + ' gallery_' + data.galleries[i] + '">' + loader + '</div></div>');
		    loadGalleryHeader(data.year, data.galleries[i]);
	    }
	    
	    // Accordion
	    currDiv.accordion({ header: "h2", autoHeight: false, collapsible: true, active:false });

	    // load pictures of gallery on open gallery event
	    currDiv.bind('accordionchange', function(event, ui) { 
	      try {
		jQuery(ui.oldContent).html(loader);
	      } catch (ex) { }
	      try {
		var year = data.year;
		var gallery = data.galleries[0];
		var classesArr = jQuery(ui.newContent).attr("class").split(" ");
		for(var j = 0;j<classesArr.length;j++) {
		  if (classesArr[j].startsWith('year')) {
		    year = classesArr[j].replace('year_', '');
		  } else if (classesArr[j].startsWith('gallery')) {
		    gallery = classesArr[j].replace('gallery_', '');
		  }
		}
		loadGallery(year, gallery);
	      } catch (ex) { }
	      try {
		  ui.newHeader.scrollTo(); // jQuery object, activated header
	      } catch (ex) {}
	    });
	    
	    // load first gallery
	    /*if (!first_gallery_loaded) {
	      first_gallery_loaded = true;
	      loadGallery(data.year, data.galleries[0]);
	    }*/
}

function loadGallery(year, gallery) {
	var url = jsonUrl + '?mode=gallery&year=' + year + '&gallery=' + gallery + goodiesParam;
	jQuery.getJSON(url, function(data) {
	    initGallery(data);
	});
}

function initGallery(data) {	
	var currDiv = jQuery('#gallery_' + data.year + '_' + data.gallery + ' .thumbs');
	currDiv.html('');
	// add images as list
	data.images.sort();
	for (var i=0;i<data.images.length;i++) {
		try {
		    var imgurl = imgPath + data.year + '/' + data.gallery + '/' + data.images[i];
		    currDiv.append('<a href="' + imageConvUrl_big + imgurl + '" class="lightbox" rel="' + data.year + '_' + data.gallery + '"><img alt="' + (i+1) + ' / ' + data.images.length + '" class="lightbox" src="' + imageConvUrl_thumb + imgurl + '" /></a>');
		} catch (ex) {}
	}

	//jQuery('a.lightbox').lightBox(); // Select all links with lightbox class
	jQuery('a.lightbox').fancybox({
		'imageScale'		: true,
		'enableEscapeButton' 	: true,
		'showCloseButton'	: true,
		'hideOnOverlayClick'	: true,
		'zoomSpeedIn'		: 300, 
		'zoomSpeedOut'		: 300, 
		'zoomSpeedChange'	: 100,
		//'easingIn'		: 'swing',
		//'easingOut'		: 'swing',
		'easingChange'		: 'linear',
		'overlayOpacity'	: 0,
		'overlayShow'		: true,
		'callbackOnShow'		: function() {
					    var url = jQuery('#fancy_img').attr('src').replace(imageConvUrl_big, '');
					    jQuery('#fancy_title_main > span').remove();
					    jQuery('#fancy_title_main').append('<span style="margin-left:10px;"><a href="' + url + '">Download</a></span>');
		}
	});

	//hover images
	jQuery('.thumbs img').hover(
		function() { jQuery(this).addClass('preview'); }, 
		function() { jQuery(this).removeClass('preview'); }
	);
}

function loadGalleryHeader(year, gallery) {
	var url = jsonUrl + '?mode=galleryheader&year=' + year + '&gallery=' + gallery + '&nimgs=3' + goodiesParam;
	jQuery.getJSON(url, function(data) {
	    initGalleryHeader(data);
	});
}

function initGalleryHeader(data) {	
	var currEl = jQuery('#galleryheader_' + data.year + '_' + data.gallery);
	if (data.title) {
	    var dateTime = '';
	    if (data.gallery.indexOf('Flyer')>-1) {
	      var dateTimeArr = data.gallery.split("_");
	      dateTime = dateTimeArr[2] + ' ' + dateTimeArr[0] + '.' + dateTimeArr[1] + ' ';
	    } else {
	      dateTime = data.gallery.substring(8,10) + '.' + data.gallery.substring(5,7) + '.' + ' ';
	    }
	    if (dateTime=='00.00. ') dateTime='';
	    currEl.append('<div class="caption">' + dateTime + data.title + '</div><div class="thumbs"></div><div class="description">' + data.description + '</div><div class="clear"></div>');
	}
	currEl = jQuery('#galleryheader_' + data.year + '_' + data.gallery + ' .thumbs');
	// add images as list
	for (var i=0;i<data.images.length;i++) {
		try {
		    var imgurl = imgPath + data.year + '/' + data.gallery + '/' + data.images[i];
		    currEl.append('<div class="thumb"><img alt="loading..." class="lightbox" src="' + imageConvUrl_thumbheader + imgurl + '" /></div>');
		} catch (ex) {}
	}

	//hover images
	jQuery('.ui-accordion-header img').hover(
		function() { jQuery(this).addClass('preview'); }, 
		function() { jQuery(this).removeClass('preview'); }
	);
}


