em = function(name1,name2,text,subject,domain) {
  if (!domain) {domain='laureamko.fi'}
  if (!name2) { name=name1; } else { name=name1+'.'+name2}
  if (!text) {
  	 if (!name2) {text=name1+'&#64;'+domain; }
	 else { text=name1+'.'+name2+'&#64;'+domain; }
  }
  if (!subject) {document.write('<a href="mailto:'+name+'&#64;'+domain+'">'+text+'</a>');}
  else {document.write('<a href="mailto:'+name+'&#64;'+domain+'?subject='+escape(subject)+'">'+text+'</a>');}
}


$(document).ready(function() {
	
	var oHeight = 0;
	
	$("a[rel=lightbox-gallery]").fancybox({ 'zoomSpeedIn': 300, 'zoomSpeedOut': 300, 'overlayShow': false });
	$("a[class=lightbox-gallery]").fancybox({ 'zoomSpeedIn': 300, 'zoomSpeedOut': 300, 'overlayShow': false });
	
	function megaHoverOver(){
		$(this).find("ul").stop().fadeTo('fast', 1).show();
		$(this).find("a").addClass("active");
		//Calculate width of all ul's
		(function($) { 
			jQuery.fn.calcSubWidth = function() {
				rowWidth = 0;
				//Calculate row
				//alert ($(this).find("sub_li").length);
				$(this).find("li").each(function() {					
					// test
					biggestSubRow = 0;
					rowWidth2 = 0;
					if ($(this).find("ul li").length > 0 ) {
						$(this).find("ul li a").each(function() {					
							rowWidth2 = $(this).outerWidth();
							if(rowWidth2 > biggestSubRow) {
								biggestSubRow = rowWidth2;
							}
						});
					}
					//alert ("suurin alirivi: "+biggestSubRow+" tamarivi"+$(this).width());
					if ($(this).width() > biggestSubRow) {
						rowWidth += $(this).outerWidth();
					} else {
						$(this).css('width',biggestSubRow+'px');
						rowWidth += biggestSubRow;
					}
				});
			};
		})(jQuery);
		
		if ( $(this).find("ul").length > 0 ) { //If row exists...
			var biggestRow = 0;
			//Find height
			if ($(this).find("li ul").length > 0 ) {
				subHeight = 0;
				subHeight = $(this).find("li ul").height();
				oHeight = subHeight;
				subHeight = subHeight + 50;
				$(this).find("ul").css('height',subHeight+'px');
			}
			//Calculate each row
			$(this).find("ul").each(function() {				   
				$(this).calcSubWidth();
				//Find biggest row
				//if(rowWidth > biggestRow) {
					biggestRow = rowWidth;
				//}
			});
			//Set width
			//$(this).find("ul").css('position','absolute');
			//$(this).find("ul.sub").css({'width' :biggestRow});
			
		} else { //If row does not exist...
			$(this).calcSubWidth();
			//Set Width
			$(this).find("ul").css({'width' : rowWidth});
			$(this).find("ul").css('position','absolute');
		}
	}
	
	function megaHoverOut(){
	  child = $(this).isChildOf("#topnav > ul > li");
	  if (!child) {
		  $(this).find("ul").stop().fadeTo('fast', 0, function() {
			  $(this).find("ul").css('height',oHeight+'px');
			  $(this).hide();
		  });
		  $(this).find("a").removeClass("active");
	  }
	}
 
 
	var config = {    
		 sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
		 interval: 200, // number = milliseconds for onMouseOver polling interval    
		 over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
		 timeout: 500, // number = milliseconds delay before onMouseOut    
		 out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
	};
	// Menu
	$("ul#nav li ul").css({'opacity':'0'});
	$("#topnav li").hoverIntent(config);
	
	jQuery.fn.isChildOf = function(b){
		return (this.parents(b).length > 0);
	};
	
	// Calendar
	if ($('#cal_table').length) {
		var calendar = function () {
			$('#cal_table .kk-left img').attr("src","/images/arrow_left.gif");
			$('#cal_table .kk-right img').attr("src","/images/arrow_right.gif");
			$("#cal_table .kk").find("a").each(function(i) {
				$(this).click(function() {
					$('#kalenteri').append('<div class="loading"></div>');
					 $("#kalenteri .loading").ajaxStart(function(){
					   $(this).show();
					});
					 $.ajax({ url: this.href+'&get_page_html=1',
						success: function(data) {
							$('#kalenteri').html(data);
							calendar();
							happen();
						}
					 });
					$("#kalenteri .loading").ajaxStop(function(){
					   $(this).hide();
					});
					 return false;
				});										 
			});
		}
		var happen = function () {
			$("#cal_table1").find("a").each(function(i) {
				$(this).click(function() {
					$('#kalenteri_tapahtumat').append('<div class="loading"></div>');
					 $("#kalenteri_tapahtumat .loading").ajaxStart(function(){
					   $(this).show();
					});
					 $.ajax({ url: this.href+'&get_page_html=1',
						success: function(data) {
							$('#kalenteri_tapahtumat').html(data);
						}
					 });
					 $("#kalenteri_tapahtumat .loading").ajaxStop(function(){
					   $(this).hide();
					});
					$('#middle-text').css('height','auto');
					return false;
				});										 
			});
		}
		
		if ($('#kalenteri-listaus').length) {
			var happen_list = function () {
				$("#kalenteri-listaus").find("a").each(function(i) {
					$(this).click(function() {
						$('#kalenteri_tapahtumat').append('<div class="loading"></div>');
						 $("#kalenteri_tapahtumat .loading").ajaxStart(function(){
						   $(this).show();
						});
						 $.ajax({ url: this.href+'&get_page_html=1',
							success: function(data) {
								$('#kalenteri_tapahtumat').html(data);
							}
						 });
						 $("#kalenteri_tapahtumat .loading").ajaxStop(function(){
						   $(this).hide();
						});
						$('#middle-text').css('height','auto');
						return false;
					});										 
				});
			}
		}
		calendar();
		happen();
		happen_list();
	}
	/*
	if ($('#accordion').length) {
		$("#accordion").accordion({ active: false, header: 'div.head', autoHeight: false });	
	}
	*/
	if ($('#accordion').length) {
		 $('#accordion div.content').hide();
		 $('#accordion .head').click(function(){
				   $('#accordion div.content').slideUp("fast");
				   $(this).next().slideDown("fast");
				   $('#middle-text').css('height','auto');
				   return false;
		  });
	}

	
	// Haku
	$("#search a").click(function() { 
		$("#showSearch").fadeIn();
	});
	$("#search-close").click(function() { 
		$("#showSearch").fadeOut();
	});
	
	$(window).load(function() {
		check_h();
		$(":input").each(function(i) {
			type = this.type;
			if (type == "submit" || type == "button") {
				this.className = "button";
			}
			if (type == "checkbox" || type == "radio") {
				this.className = "no-border";
			}
		 });
	});
	
	function check_h() {
		var rh = $('#right').height();
		var mh = $('#middle-text').height();
		mf = 0;
		if ($('#middle-footer').length) {
			mf = $('#middle-footer').height();
		}
		var mho = mh+28+mf;
		var rho = rh-41-mf;
		if(mho<rh) {
			$('#middle-text').animate({ height: rho+'px'},500);
		}
	}	
});
