var pictures = new Array();
var jobs = new Array();
var loadedImage = 1;
var displayThumb = 4;
var loadedThumbs = 8;
var displayPicture = 0;
var currentJob;
var selectedImg = 0;
var descToggle = false;
var curJob = false;
var maxImage = 0;


function addThumbs(start, end) {
	for (var i = start; i <= end; i++) {
		var curWidth = jQuery("#qpgallery .thumb_list").css("width").replace("px", "");
		if (curWidth == "auto") {
			jQuery("#qpgallery .thumb_list").css("width", "110px");
		} else {
			curWidth = parseInt(curWidth);
			curWidth += 110;
			jQuery("#qpgallery .thumb_list").css("width", curWidth + "px");
		}
		jQuery("#qpgallery .gallery_thumbs .thumb_list").append("<li class='thumb' id='thumb_" + i + "'><div class='loader'></div></li>");
		
	}
	preloadThumb(start, end);
}

function preloadThumb(start, end) {
	var curThumb = new Image();
	curThumb.onload = function() {
		jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + loadedImage + " .loader").addClass("content");
		jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + loadedImage + " .loader").removeClass("loader");
		if (curThumb.height > curThumb.width) {
			jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + loadedImage + " .content").append("<a id='" + loadedImage + "' href='javascript: void(0);' onclick='showImage(this.id, false); return false;'><img src='" + curThumb.src + "' height='101'/></a>");
		} else {
			jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + loadedImage + " .content").append("<a id='" + loadedImage + "' href='javascript: void(0);' onclick='showImage(this.id, false); return false;'><img src='" + curThumb.src + "' width='101'/></a>");
		}
		jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + loadedImage + " .content").show();
		loadedImage++;
		if (loadedImage <= end) {
			preloadThumb(loadedImage, end)
		}
	};
	curThumb.src = pictures[start - 1]["thumb"];
}

function showImage(imageNum, start) {
	// fix for using this gallery in an external iframe
	if (typeof isGallery == "undefined") {isGallery = false;}
	
	displayPicture++;

	if (!start && isGallery) {
		refreshFrames();
	}
	var curImage = new Image();
	curImage.onload = function() {
		jQuery("#qpgallery .gallery_image .content").hide();
		if (curImage.width > curImage.height) {
			
			if (!curJob) {
				var newHeight = (((488  * 100) / curImage.width) * curImage.height) / 100;
				if (newHeight <= 350) {
					jQuery("#qpgallery .gallery_image .content").html("<img src='" + curImage.src + "' width='488px'/>");
				} else {
					jQuery("#qpgallery .gallery_image .content").html("<img src='" + curImage.src + "' height='350px'/>");
				}
			} else {
				jQuery("#qpgallery .gallery_image .content").html("<a href='" + curJob["link"] + "' target='_blank' title='" + curJob["desc"] + "'><img src='" + curImage.src + "' width='488px'/></a>");
			}
		} else {
			if (!curJob) {
				var newWidth = (((350  * 100) / curImage.height) * curImage.width) / 100;
				if (newWidth <= 488) {
					jQuery("#qpgallery .gallery_image .content").html("<img src='" + curImage.src + "' height='350px'/>");
				} else {
					jQuery("#qpgallery .gallery_image .content").html("<img src='" + curImage.src + "' width='488px'/>");
				}
			} else {
				jQuery("#qpgallery .gallery_image .content").html("<a href='" + curJob["link"] + "' target='_blank' title='" + curJob["desc"] + "'><img src='" + curImage.src + "' height='350px'/></a>");
			}
		} 
		curJob = false;
		jQuery("#qpgallery .gallery_image .content").fadeIn("slow");
	};
	
	var job = checkJobs();

	
	if (job == null || job["type"] == "banner") {

		
		jQuery("#qpgallery .gallery_image .container .desc").show();

	
		jQuery("#qpgallery .desc .desc_content .text").html(pictures[imageNum - 1]["desc"]);
		jQuery("#qpgallery .desc .desc_content .text").fadeIn("slow");
	
		var rights = "<ul>";
		var cssClass = 1;
		if (pictures[imageNum - 1]["autor"] != "") {
			rights +="<li class=" + cssClass + ">Bildautor:<span>" + pictures[imageNum - 1]["autor"] + "</span></li>";
			cssClass++;
		}
		if (pictures[imageNum - 1]["rights"] != "") {
			rights +="<li class=" + cssClass + ">Bildrechte:<span>" + pictures[imageNum - 1]["rights"] + "</span></li>";
		}
		rights += "</ul>";
		jQuery("#qpgallery .desc .desc_content .rights").html(rights);
		jQuery("#qpgallery .desc .desc_content .rights").fadeIn("slow");
		
		jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + selectedImg).removeClass("selected");
		selectedImg = imageNum;
		curImage.src = pictures[imageNum - 1]["pic"];
		
		jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + selectedImg).addClass("selected");
		jQuery("#qpgallery .picture_app .count").html("Bild " + selectedImg + " / " + maxImage);
		
		/* Bildpartnerlink */
		if (typeof(qpgallery_mmslink) != "undefined") {
			jQuery("#qpgallery .picture_app .mms").attr("href",qpgallery_mmslink.replace(/#orderid#/g,pictures[imageNum - 1]["orderid"]));
		}
		if (typeof(qpgallery_orderlink) != "undefined") {
			jQuery("#qpgallery .picture_app .addcart").attr("href",qpgallery_orderlink.replace(/#orderid#/g,pictures[imageNum - 1]["orderid"]));
		}
		if (typeof(qpgallery_warenkorblink) != "undefined") {
			jQuery("#qpgallery .picture_app .cart").attr("href",qpgallery_warenkorblink);
		}
		
		if (descToggle) {
			toggleDesc(false);
		}
		
		/* AUFRUF DES ZAEHLERS */
		if (typeof(qpgalleryClicks) != "undefined") {
			qpgalleryClicks.sendPI(pictures[imageNum - 1]["id"]);
		}
		/* ENDE AUFRUF DES ZAEHLERS */
		
	} else {
		jQuery("#qpgallery .gallery_image .container .desc").hide();
		jQuery("#qpgallery .gallery_thumbs .thumb_list #thumb_" + selectedImg).removeClass("selected");
		curJob = job;
		curImage.src = job["url"];
		
		/* AUFRUF DES ZÄHLERS */
		if (typeof(qpgalleryClicks) != "undefined") {
			qpgalleryClicks.sendAdStatistic(job["id"]);
		}
		/* ENDE AUFRUF DES ZÄHLERS */

	}
}

function showNext() {
	if ((parseInt(selectedImg) + 1) <= maxImage) {
		if ((parseInt(selectedImg) + 1) > displayThumb) {
			showThumbsNext()
		}
		showImage((parseInt(selectedImg) + 1), false);
	}
}

function showPrev() {
	if ((parseInt(selectedImg) - 1) > 0) {
		if ((parseInt(selectedImg) - 1) < (displayThumb - 3)) {
			showThumbsPrev()
		}
		showImage((parseInt(selectedImg) - 1), false);
	}
}

function showThumbsNext() {

	if (parseInt(displayThumb) < parseInt(maxImage)) {
		
		jQuery("#qpgallery .thumb_list").animate({ 
			left: "-=436px"
		}, 500 );
		
		
		if (displayThumb == (loadedThumbs - 4) && loadedThumbs < maxImage) {
			var add = 4;
			if (loadedThumbs + 4 > maxImage) {
				add = maxImage - loadedThumbs;
			}
			addThumbs(loadedThumbs + 1, loadedThumbs + add);
			loadedThumbs +=add;
		}
		displayThumb += 4;
		
	}
	
}

function showThumbsPrev() {
	if (displayThumb > 4) {
		
		jQuery("#qpgallery .thumb_list").animate({ 
			left: "+=436px"
		    }, 500 );
			
		displayThumb -= 4;
	}
}

function checkJobs() {
	var jobFound = null;

	
	for (var i = 0; i < jobs.length; i++) {
		var jobClicks = parseInt(jobs[i]["click"]);
		jobClicks++;
		jobs[i]["click"] = jobClicks;

		if (parseInt(jobs[i]["start"]) == parseInt(jobs[i]["click"]) && !jobs[i]["started"] || parseInt(jobs[i]["iter"]) == parseInt(jobs[i]["click"]) && jobs[i]["started"]) {
			
			jobs[i]["started"] = true;
			if (jobs[i]["flash"] == "-1" || (parseInt(jobs[i]["views"]) < parseInt(jobs[i]["flash"])) ) {
				jobFound = jobs[i];
				jobs[i]["click"] = 0;
				if (jobs[i]["type"] == "banner") {
					showBanner(jobs[i]);
				} 
				jobs[i]["views"]++;
			} else {
				if (jobs[i]["type"] == "banner") {
					hideBanner(jobs[i]);
				}
			}
		} else {
			if (jobs[i]["type"] == "banner") {
				jobs[i]["display"] = false;
			}
		}
	}
	return jobFound;
	
}

function showBanner(job) {
	
	if (!job["display"]) {
		job["display"] = true;
		jQuery(".gallery_header .content").hide();
		jQuery(".gallery_header .content").html("<a href='" + job["link"] + "' target='_blank' title='" + job["desc"] + "'><img src='" + job["url"] + "'/></a>");
		jQuery(".gallery_header .content").fadeIn();
	} 
}
function hideBanner(job) {
	
	job["display"] = false;
	jQuery(".gallery_header .content").fadeOut("slow", function() { jQuery(".gallery_header .content").html("");});
	

}

function toggleDesc(tween) {
	var ie6Check = false;
	var descHeight = 0;
	jQuery("#qpgallery .gallery_image .container .desc").css("height", "auto");
	if(!Liferay.Browser.isIe()) {
		
		var toggleHeight = jQuery("#qpgallery .gallery_image .container .desc").height() - 17;
		descHeight = 17;
	} else {
		if (Liferay.Browser.getMajorVersion() > 7) {
			var toggleHeight = jQuery("#qpgallery .gallery_image .container .desc").height() - 17;
			descHeight = 17;
		} else if (Liferay.Browser.getMajorVersion() == 7) {
			var toggleHeight = jQuery("#qpgallery .gallery_image .container .desc").height() - 11;
			descHeight = 11;
		} else {
			ie6Check = true;
			descHeight = 11;
		}
	}
	if (tween) {
		if (!descToggle) {
			jQuery("#qpgallery .gallery_image .container .desc .desc_icon").removeClass("min");
			jQuery("#qpgallery .gallery_image .container .desc .desc_icon").addClass("max");
			if (!ie6Check) {
				jQuery("#qpgallery .gallery_image .container .desc").animate({ 
					bottom: "-=" + toggleHeight + "px" 
					}, 500 );
			} else {
				jQuery("#qpgallery .gallery_image .container .desc").css("height", descHeight + "px");
			}
			
			descToggle = true;
		} else {
			jQuery("#qpgallery .gallery_image .container .desc .desc_icon").addClass("min");
			jQuery("#qpgallery .gallery_image .container .desc .desc_icon").removeClass("max");
			if (!ie6Check) {
				jQuery("#qpgallery .gallery_image .container .desc").css("bottom", "-" + toggleHeight + "px"); 
				jQuery("#qpgallery .gallery_image .container .desc").animate({ 
					bottom: "0" 
					}, 500 );
			} else {
				jQuery("#qpgallery .gallery_image .container .desc").css("height", "auto");
			}
			
			descToggle = false;
		}
	} else {
		if (descToggle) {
			if (!ie6Check) {
				jQuery("#qpgallery .gallery_image .container .desc").css("bottom", "0");
			}
			jQuery("#qpgallery .gallery_image .container .desc").css("height", descHeight + "px");
		}
	}
}