﻿ $(document).ready(function() {
   
   // ~~~~~ PARSE SITEMAP XML AND MAKE TOPMENU HTML ~~~~~ //
	
	// Some vars for drop down
	var timeout = 500;
	var closetimer = 0;
	var ddmenuitem = 0;
	
	// Append div#topmenu to the body
	var menuDiv = document.createElement("div"); menuDiv.id = "topMenu";
	$("#page").append(menuDiv);
	
	// Append div#submenu to the body
	var subMenuDiv = document.createElement("div"); subMenuDiv.id = "subMenu";
	$("#columnLeft > div:eq(0)").prepend(subMenuDiv);
	
	// Get XML file
	$.ajax({
		type: "GET",
		url: "_sitemap/sitemap.xml",
		dataType: "xml",
		success: parseXml
	});
	
	// Parse XML for menu
	function parseXml(xml) {
		$(xml).children().each(function(i) { 
			$(parseNode($(this)[i])).appendTo($("#topMenu"));
			var menuObj;
			if (0 < ($($(this)[i]).find("[url^='"+getAbsolutePath("docName")+"']:eq(0)").parents('menuItem')).length) {
				menuObj = $($(this)[i]).find("[url^='"+getAbsolutePath("docName")+"']:eq(0)").parents("menuItem").last();
			}  else {
				menuObj = $($(this)[i]).find("[url^='"+getAbsolutePath("docName")+"']:eq(0)");
			}
			$(parseNode(menuObj)).appendTo($("#subMenu"));
		});		
		initHover(); // Call drop down hover function
		setActiveMenuItem();
	}
	
	// Function for recursive parsing of nodes within XML and making HTML Unordered List from them
	function parseNode(node) {
		if (0 < $(node).children().length) { 
			var objUl = document.createElement("ul");
			$(node).children().each(function(i) { 
                var name = $(this).attr("name"); 
                var url = $(this).attr("url"); 
                var objLi = document.createElement("li");
				var objA = document.createElement("a");
				var objTxt = document.createTextNode(name);
				objA.setAttribute("href", url);
				objA.appendChild(objTxt);
				objLi.appendChild(objA);
				objUl.appendChild(objLi);
				if (0 < $(this).children().length) { 
					$(parseNode($(this))).appendTo(objLi);
				}
            });
			return objUl;
        } 
    }
	
	// Drop Down Functions
	function ddMenu_open() {
		ddMenu_canceltimer();
		ddMenu_close();
		ddmenuitem = $(this).find('ul:eq(0)').css('display', 'block');
	}
	function ddMenu_close() {
		if(ddmenuitem) ddmenuitem.css('display', 'none');
	}
	function ddMenu_timer() {
		closetimer = window.setTimeout(ddMenu_close, timeout);
	}
	function ddMenu_canceltimer() {
		if(closetimer) {
			window.clearTimeout(closetimer);
			closetimer = null;
		}
	}
	function initHover() {
		$('#topMenu > ul > li').hover(ddMenu_open, ddMenu_timer);
		$('#subMenu > ul > li').hover(ddMenu_open, ddMenu_timer);	
	}
	
	function setActiveMenuItem() {
		if (getAbsolutePath("docName") != "") {
			$("#topMenu a[href^='"+getAbsolutePath("docName")+"']").parents("li").addClass("selected");
			$("#subMenu a[href^='"+getAbsolutePath("docName")+"']").parents("li").addClass("selected");
		} else {
			if(getAbsolutePath("pathName") == "/") {
				$("#topMenu a[href^='"+'index.html'+"']").parents("li").addClass("selected");
			}
		}
	}
	
	function getAbsolutePath(returnString) {
		var loc = window.location;
		// Return Strings:
		// locName 		=	http://www.ecrr.org/folder/page.html
		// pathName	=	/folder/
		// absPath	=	http://www.ecrr.org/
		// docName	=	page.html
		var locName = loc.toString();
		var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
		var absPath = loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
		var docName = location.href.substr(absPath.length);
		if (0 < locName.indexOf("#")) locName = locName.substr(0, locName.indexOf("#"));
		if (0 < docName.indexOf("#")) docName = docName.substr(0, docName.indexOf("#"));
		if (returnString == "loc") {
			return loc;
		} else if (returnString == "pathName") {
			return pathName;
		} else if (returnString == "absPath") {
			return absPath;
		} else {
			return docName;
		}
	}

	
	
	// ~~~~~ SET HEIGHT OF THE 3 COLUMNS ~~~~~ //
	$(window).resize(function() {
		setColumnheights();	
	});
	setColumnheights();
	function setColumnheights() {
		var paddingBottom = 30; // Not being detected, Set in CSS
		var footerHeightPlusMarginsOfColumns = 50; // Not being detected, Set in CSS
		var minimalHeightforColumns= 400; // Minimal 400
		var topbarHeight = 0; // Will be detected after
		var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();
		if(0 < $("#barHeader").length) topbarHeight = $("#barHeader").outerHeight(true);
		var columnsHeightValue = viewportHeight - topbarHeight - paddingBottom;
		if (columnsHeightValue < (minimalHeightforColumns + footerHeightPlusMarginsOfColumns)) {
			columnsHeightValue = minimalHeightforColumns + "px";
		} else {
			columnsHeightValue = columnsHeightValue - footerHeightPlusMarginsOfColumns + 'px';
		}
		$("#columnLeft, #columnRight, #columnContent").css({'min-height' : columnsHeightValue, 'height' : columnsHeightValue});
		arrHeights = [$("#columnLeft").height(), $("#columnContent").height(), $("#columnRight").height()];
		var largestHeight = Math.max.apply(Math, arrHeights);
		largestHeight = largestHeight + 'px';
		$("#columnLeft, #columnRight, #columnContent").css({'min-height' : largestHeight, 'height' : largestHeight});
	}
	
	
	// ~~~~~ INIT JCAROUSELS - UP TO 1 MAX. ~~~~~ //
	if (0 < $('#myCarousel').length) $('#myCarousel').jcarousel();
	if (0 < $('#myCarousel2').length) $('#myCarousel2').jcarousel();
	if (0 < $('#myCarousel3').length) $('#myCarousel3').jcarousel();
	
	// ~~~~~ INIT PRETTYPHOTO ~~~~~ //
	$("a[rel^='prettyPhoto']").prettyPhoto({
			animation_speed: 'fast', /* fast/slow/normal */
			slideshow: false, /* false OR interval time in ms */
			autoplay_slideshow: false, /* true/false */
			opacity: 0.80, /* Value between 0 and 1 */
			show_title: true, /* true/false */
			allow_resize: true, /* Resize the photos bigger than viewport. true/false */
			default_width: 500,
			default_height: 344,
			counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */
			theme: 'facebook', /* light_rounded / dark_rounded / light_square / dark_square / facebook */
			hideflash: true, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */
			wmode: 'opaque', /* Set the flash wmode attribute */
			autoplay: false, /* Automatically start videos: True/False */
			modal: false, /* If set to true, only the close button will close the window */
			overlay_gallery: false, /* If set to true, a gallery will overlay the fullscreen image on mouse over */
			keyboard_shortcuts: true /* Set to false if you open forms inside prettyPhoto */
		});

 });
 
