$(document).ready(function(){
	// styling for alternated colored table rows
	$("table.complex-table tr:not(.header,.captions):odd").addClass("odd");
	$("table.complex-table tr:not(.header,.captions):even").addClass("even");

	$("table.mini-table").each(function(){
		$("tr:not(.captions):even", this).addClass("even");
		$("tr:not(.captions):odd", this).addClass("odd");
	});
	
	// resize all table columns to the same size (min size: 90px)
	$(".campaign-preview-body").each(function(){
		var tables = $("> div > div.inner", this);
		if (tables.length > 0){
			var max = 90;
			tables.each(function(){
				if (max < $(this).height()){
					max = $(this).height();
				}
			});
			tables.each(function(){
				$(this).height(max);
			});
		}
	});
	
	// set the left and right column of the dynamics page to the same size (min size: 250px)
	var leftColumn = $(".dynamics-teaser > div.left");
	var rightColumn = $(".dynamics-teaser > div.right");
	var minHeight = 250;
	
	if (leftColumn.height() < minHeight && rightColumn.height() < minHeight){
		leftColumn.height(minHeight);
		rightColumn.height(minHeight);
	} else {
		(leftColumn.height() > rightColumn.height()) ? rightColumn.height(leftColumn.height()) : leftColumn.height(rightColumn.height());
	}
	
	// add error classes to input fields
	//$(".forms .EditingFormTable td:has(.EditingFormErrorLabel) input, .forms .EditingFormTable td:has(.EditingFormErrorLabel) textarea").addClass("errorField");
	//$(".profile .EditingFormTable td:has(.EditingFormErrorLabel:not(:empty)) input").addClass("errorField");
	
	// selecting "Switzerland" in country selectors
	$(".EditingFormTable .DropDownField option[value='Austria']").attr("selected", "selected");
	$(".EditingFormTable .EditingFormControlNestedControl:has(input[type=text])").each(function(){
		if($("input[type=text]", this).length == 2){
			$("input[type=text]:eq(1)", this).css({ width:"143px" });
		}
	});
	
	buildTeaserBox();
	paginateDownloads();
	buildDownloadMenu();
});

function buildDownloadMenu(){
	var menu = $(".download-menu > ul");

	//$("> li:has(> ul)", menu).prepend("<img src='/App_Themes/pmfch/images/layout/more.gif' alt='+' /> ").addClass("first has-sub");
	//$("ul li:has(> ul)", menu).prepend("<img src='/App_Themes/pmfch/images/layout/disc_plus.gif' alt='+' /> ").addClass("has-sub");
	$("> li", menu).addClass("first").each(function() {
		var uls = $("> ul", this);
		if (uls.length <= 0) {
			$(this).addClass("empty");
		}
	});
	
	$("> li:has(> ul)", menu).prepend("<div class='list-icon-big closed'></div> ").addClass("has-sub");
	$("ul li:has(> ul)", menu).prepend("<div class='list-icon-small closed'></div> ").addClass("has-sub");
	
	$("ul", menu).hide();

	menu.delegate("li div", "click", function() {
	    var div = $(this);

	    var speed = 0;
	    if (div.parent().find("> ul").is(':hidden')) {
	        div.parent().find("> ul").stop(true, true).show(speed, function() {
	            div.removeClass("closed");
	        });
	    } else {
	        div.parent().find("> ul").stop(true, true).hide(speed, function() {
	            div.addClass("closed");
	        });
	    }
	});
	
	$("ul:has(.CMSListMenuLinkHighlighted)", menu).show();
	$("ul:visible div").removeClass("closed");
	$("div:has(~ul:hidden)").addClass("closed");

	if ($("a[rel=#overlay]").length > 0) {
		$("a[rel=#overlay]").overlay({
			mask: {color: '#fff', opacity: 0.8 },
			onBeforeLoad: function() {
				var wrap = this.getOverlay().find(".overlay-content");
				//wrap.load(this.getTrigger().attr("href"));
				wrap.html("<iframe scrolling='no' border='0' src='"+this.getTrigger().attr("href")+"'></iframe>");
			}
		});
	}
}

// pagination settings
var items = null;
var max_page_items = 10;
var pages = 0;
var cur_page = 1;

function paginateDownloads(){
	items = $(".download-area .complex-table tr:not(.header,.captions)");
	pages = Math.ceil(items.length/max_page_items);
	
	// return if not on download page
	if (items.length <= 0|| pages <= 1){
		return;
	}
	
	// building pagination
	items.hide();
	var pagination = $("<ul class='pagination'></ul>");
	for(var i = 0; i < pages; i++){
		pagination.append("<li><a rel='"+ (i+1) +"' href='#p"+ (i+1) +"'>"+ (i+1) +"</a></li>");
	}
	pagination.prepend("<li class='prev' style='display:none'><a href='#p1' rel='1'>&lt;</a></li>");
	pagination.append("<li class='next'><a href='#p2' rel='2'>&gt;</a></li>");
	
	$(".pagination-container").append(pagination);
	$(".pagination-container .pagination a").live("click", function(){
		showPage($(this).attr("rel"));
	});
	
	// jump to first page
	showPage(1);
}

function showPage(p){
	// set the page to a valid number
	p = (p < 1) ? 1 : p;
	
	// show only rows that are on the current page
	items.hide();
	var i = 0;
	var bottom = max_page_items * (p - 1);
	items.each(function(){
		if (i >= bottom && i < (max_page_items * p)){
			$(this).show();
		}
		i++;
	});
	
	// show prev and next links
	if (p > 1){
		var li = $(".pagination-container .pagination li.prev").show();
		var temp = parseInt(p) - 1;
		li.find("a").attr("href", "#p" + temp).attr("rel", temp);
	} else {
		$(".pagination-container .pagination li.prev").hide();
	}
	
	if (p < pages){
		var li = $(".pagination-container .pagination li.next").show();
		var temp = parseInt(p) + 1;
		li.find("a").attr("href", "#p" + temp).attr("rel", temp);
	} else {
		$(".pagination-container .pagination li.next").hide();
	}
	
	$(".pagination-container .pagination li a.current").removeClass("current");
	$(".pagination-container .pagination li a[rel="+p+"]").addClass("current");
}

/* generates the teaser box out of a ul */
function buildTeaserBox(){
	$("#teaser-box li img").hide();
	$("#teaser-box li a").hide();
	
	$("#teaser-box .mask").click(function(){
		$("#teaser-box li.active a").trigger("click");
	});
	
	$('#teaser-box li').click(function(){
		var a = $(this).find('a');
		//document.location.href = a.attr('href');
		if (a.attr("target") == "_blank"){
			var popUp = window.open(a.attr("href"), "", "");
			popUp.focus();
		} else {
			document.location.href = a.attr('href');
		}
	});
	
	$("#teaser-box li").bind("mouseover", function(){
		$("#teaser-box li.active").removeClass("active");
		var img = $(this).addClass("active").find("img");
		$("#teaser-image").attr("src", img.attr("src")).attr("alt", img.attr("alt"));
	});
	
	$("#teaser-box ul li:first-child").trigger("mouseover");
}

