// Global Gallery Function for DNN websites
// version : 1.0
// notes: some parameter are missing 
// -> this function works only with arrows 
function PwS_DNN_Gallery(targetBig,targetThumbs,thumbsPerGroup,custom_settings) {
// SETTINGS
	var arrayImages = mediaList;
	var settings = {
		thumbsFormat : 'mini',		// possible value for sizes : mini (90px/60px), thumb_is (180px/120px), normal (450px/300px), big (?? / ??)
		bigFormat : 'normal',			// possible value for sizes : mini (90px/60px), thumb_is (180px/120px), normal (450px/300px), big (?? / ??)
		mediaIcon : true,					// generating <span> for media's icon (VTO icon, Map icon,...)
		orientation: 'horizontal ',
		
		pagingPosition: 'none',		// 'none', 'before' and 'after' 
		arrowsPosition: 'menu',		// 'menu', 'before', 'after' and 'side'
		prevText : '',						// 'previous' text to display in button zone, if thumbsMenu=false -> this text will be used as title attribut on a <a> tag
		nextText : '',						// 'next' text to display in button zone, if thumbsMenu=false -> this text will be used as title attribut on a <a> tag

		effectSpeed : 500,				// speed in miliseconds
		printBig : false,					// add a special zone right before <body> closure, with class="printOnly"
		
		itemText : false
	};
	$.extend(settings, custom_settings);
	var VTOThumbsSizes = {'mini':'width=90&height=60','thumb_is':'width=180&height=120'},		// special sizes for Vitual Tours (VTO)
	
// THUMBNAILS
	thumbsPanel = $('#'+targetThumbs);
	thumbsPanel.html('\n<div id="'+targetThumbs+'-list">\n<div></div>\n</div>\n'); 	// add a <div> to prepare the sliding effect
	// THUMBNAILS - Groups
	var thumbsListContent = '\n<ul class="thumbs-group">\n';
	jQuery.each(arrayImages, function(imageKey, imageParam) {
		// Split Group
		if(imageKey%thumbsPerGroup==0 && imageKey!=0) { thumbsListContent+= '</ul>\n<ul class="thumbs-group">\n';  }
		// Generate Thumbnails
		thumbsListContent += '<li rel="'+imageKey+'" class="media-type-'+imageParam[0];
		if(imageKey==0) { thumbsListContent += ' current-thumb';}
		thumbsListContent += '"><img src="';
		// CASE of media Types
		switch (imageParam[0]) {
			case 'VTO': thumbsListContent += 'http://images.previsite.net/getimage.asp?id='+imageParam[1].split("/")[1]+'&path=thumb&'+VTOThumbsSizes[settings.thumbsFormat]+'" />';
				break;
			default: thumbsListContent += 'http://resourcehandler.immostreet.ch/GetImage.ashx?source=portia&filename='+imageParam[1]+'&mode=fit&format='+settings.thumbsFormat+'" />';
				break;
		}
		if(settings.mediaIcon)  { thumbsListContent += '<span class="media-icon"></span>' ; }
		thumbsListContent += '</li>\n';
	});
	thumbsListContent += '</ul>\n';
	$('#'+targetThumbs+'-list div').append(thumbsListContent);
	// THUMBNAILS - Menu
		var pagingContent = '';
		var prevArrow = '';
		var nextArrow = ''; 
		// 1) paging
		if(settings.pagingPosition !='none' && arrayImages.length > thumbsPerGroup) {
			numberPanel = ((arrayImages.length-(arrayImages.length%thumbsPerGroup))/thumbsPerGroup)+1;
			if(numberPanel>1) {
				for(var i=0; i < numberPanel ; i++) {
					pagingContent += '<a href="#" id="'+targetThumbs+'-menu-Num-'+(i+1)+'" class="number';
					if(i==0) { pagingContent += ' current'; }
					pagingContent += '" rel="'+(i+1)+'">'+(i+1)+'</a>';	
				}
			}
		}
		// 2) arrows
		if(arrayImages.length > thumbsPerGroup) {
			prevArrow = '<a href="#" id="'+targetThumbs+'-menu-prev" class="hidden"><span>'+settings.prevText+'</span></a>';
			nextArrow = '<a href="#" id="'+targetThumbs+'-menu-next"><span>'+settings.nextText+'</span></a>';
		}
		// 3) generate
		var beforeListContent = '';
		var afterListContent = '';
		if(settings.arrowsPosition=='menu' || settings.arrowsPosition==settings.pagingPosition) {
			if(settings.pagingPosition=='before') { 	beforeListContent = '<div id="'+targetThumbs+'-menu">'+prevArrow+pagingContent+nextArrow+'</div>\n'; }
			else { afterListContent = '\n<div id="'+targetThumbs+'-menu">'+prevArrow+pagingContent+nextArrow+'</div>'; }
		}
		else if (settings.arrowsPosition=='side') {
			if(settings.pagingPosition=='before') { beforeListContent = '<div id="'+targetThumbs+'-menu">'+pagingContent+'</div>\n'+prevArrow+'\n'; afterListContent = '\n'+nextArrow; }
			else { beforeListContent = prevArrow+'\n'; afterListContent = '\n'+nextArrow+'\n<div id="'+targetThumbs+'-menu">'+pagingContent+'</div>'; }
		}
		else {
			if(settings.pagingPosition=='before') { 
				beforeListContent = '<div id="'+targetThumbs+'-menu">'+pagingContent+'</div>\n'; 
				afterListContent = '\n<div id="'+targetThumbs+'-arrows">'+prevArrow+nextArrow+'</div>'; }
			else { 
				beforeListContent = '<div id="'+targetThumbs+'-arrows">'+prevArrow+nextArrow+'</div>\n';
				afterListContent = '\n<div id="'+targetThumbs+'-menu">'+pagingContent+'</div>'; 
				} 
		}
		$('#'+targetThumbs+'-list').before(beforeListContent);
		$('#'+targetThumbs+'-list').after(afterListContent);
		// 4) generate big image
		PwS_DNN_Gallery_big('0',targetBig,settings.itemText);
	// BEHAVIORS
		var maxSlidePosition = Math.round(arrayImages.length/thumbsPerGroup);
		if(arrayImages.length%thumbsPerGroup>0 && (arrayImages.length%thumbsPerGroup)<(thumbsPerGroup/2)) { maxSlidePosition = maxSlidePosition+1; }
		maxSlidePosition = '-'+( $('#'+targetThumbs+' ul').css('width').replace('px','') * (maxSlidePosition-1))+'px';
		// next Button
		$('#'+targetThumbs+'-menu-next').click(function() {
			if(!$(this).hasClass('disable') && !$(this).hasClass('hidden')) {
				$('#'+targetThumbs+' a').addClass('disable');				
				$('#'+targetThumbs+'-list div').animate({left: '-='+$('#'+targetThumbs+'-list ul').css('width')}, settings.effectSpeed, function() {
					if($('#'+targetThumbs+'-list div').css('left') ==  maxSlidePosition) { $('#'+targetThumbs+'-menu-next').addClass('hidden'); } 		
					if($('#'+targetThumbs+'-menu-prev').hasClass('hidden')) { $('#'+targetThumbs+'-menu-prev').removeClass('hidden'); }
					$('#'+targetThumbs+' a').removeClass('disable');
				});
			};
		});
		// previous Button
		$('#'+targetThumbs+'-menu-prev').click(function() {
			if(!$(this).hasClass('disable') && !$(this).hasClass('hidden')) {
				$('#'+targetThumbs+' a').addClass('disable');
				$('#'+targetThumbs+'-list div').animate({left: '+='+$('#'+targetThumbs+'-list ul').css('width')}, settings.effectSpeed, function() {
					if($('#'+targetThumbs+'-list div').css('left') ==  '0px') { $('#'+targetThumbs+'-menu-prev').addClass('hidden'); } 
					if($('#'+targetThumbs+'-menu-next').hasClass('hidden')) { $('#'+targetThumbs+'-menu-next').removeClass('hidden'); }
					$('#'+targetThumbs+' a').removeClass('disable');
				});
			};
		});
		// Thumbnails
		$('#'+targetThumbs+'-list li').click(function() { 
			$('#'+targetThumbs+'-list li').removeClass('current-thumb');
			$(this).addClass('current-thumb');
			PwS_DNN_Gallery_big($(this).attr("rel"),targetBig,settings.itemText);		
		});
		
}
// BIG Image Function for DNN websites (Gallery function)
// version : 1.0
function PwS_DNN_Gallery_big(imageId,targetBig,itemTextActive) {
	var arrayImages = mediaList;
	var visualContent = '';
	// PREVISITE (Virtual Tours)
	if(arrayImages[imageId][0]=='VTO') { 	
		URLvisualContent = arrayImages[imageId][1].replace('http://', '').split("/")[0] +'&image='+ arrayImages[imageId][1].replace('http://', '').split("/")[1];
		visualContent += '<iframe src="http://tour.previsite.com/index.php?id='+URLvisualContent+'&techno=flash2&at=0&opts=zoom,1"';
		visualContent += ' width="450" height="260" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>';
	}
	// IMAGES
	else {
		visualContent = '<img src="http://resourcehandler.immostreet.ch/GetImage.ashx?source=portia&filename='+arrayImages[imageId][1]+'&mode=fit&format=normal_is_old" />';
		}
	// TEXTS
	if(itemTextActive) {
		visualContent+= '<div id="itemText">';
		if(arrayImages[imageId][2]) { visualContent+= "<h3>"+arrayImages[imageId][2]+"</h3>"; }
		if(arrayImages[imageId][3]) { visualContent+= "<p>"+arrayImages[imageId][3]+"</p>"; }
		visualContent+= '</div>';
	}
	$('#'+targetBig).html(visualContent);
}
