$(document).ready(function() {

	if (!Array.prototype.indexOf)
	{
	  Array.prototype.indexOf = function(elt /*, from*/)
	  {
	    var len = this.length;
	    var from = Number(arguments[1]) || 0;
	    from = (from < 0)
	         ? Math.ceil(from)
	         : Math.floor(from);
	    if (from < 0)
	      from += len;
	    for (; from < len; from++)
	    {
	      if (from in this &&
	          this[from] === elt)
	        return from;
	    }
	    return -1;
	  };
	}

	String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

	if ( jQuery.support.opacity ) { 
		$("#alternate").attr({href:"/Resources/css/png.css"});
	} else {
		$("#alternate").attr({href:"/Resources/css/gif.css"});
	}
	

	/* Change Address */
	$.address.change(function(event) {
		/* stop any animations */
		$(".gallery-frame").stop(true, true); $(".gallery-banner").stop(true, true);
		/* default values */
	    var m = prim_mnu_id; var c = 0; var g = 0; var s = ""; /* NB prim_mnu_id passed as value in javascript written from php = default menu to show if no mnu_id passed in url (below) */
       	/* parse parameters passed */
		var theID = $.address.parameter('id');  /* menu, category, gallery indexes */
		if (theID != undefined) {
           	var loc = theID.split('.'); var m = loc[0]; var c = loc[1]; var g = loc[2];
       	}
       	var theSG = $.address.parameter('sg'); /* sub gallery (minimised reference to file name) */
       	if (theSG != undefined) {
       		var baseGalleryLink = gallerylinks[galleryids.indexOf(g)].replace("index.html", "").replace("splash.html", "");
       		if ( theSG.contains("large") ) {
       			var s = baseGalleryLink + "content/" + theSG + ".html";
       		} else {
       			var s = baseGalleryLink + theSG + ".html";
       		}
      	}
       	loadMenu(m);
       	loadCategory(c);
       	loadGallery(g,s);
       	
       	trackAddressChange($.address.value());
    });
    
	/* Load Menu */
	function loadMenu(m) {
		var load_mnu_id = 'm' + m; var load_mnulist_id = 'mm' + m;
		if ( $("div.menu:visible").length < 1 ) { /* no menu visible */
			 $("#" + load_mnu_id).show("slow");
			 $("#" + load_mnulist_id).addClass("menu-select");
		} else {
			var visible_mnu_id = $("div.menu:visible").attr('id');
			if ( load_mnu_id != visible_mnu_id ) { /* swapping menu in and out */
				$("div.menu:visible").hide();
				$("#" + load_mnu_id).show("slow");
				$("#menu-list li").removeClass("menu-select");
				$("#" + load_mnulist_id).addClass("menu-select");
			}
		}
	}
	
	/* Load Category */
	function loadCategory(c) {
		$("p.accordion-head").removeClass('category-select');
		$("#c" + c).slideDown("fast").prev("p.accordion-head").addClass('category-select');
		$("#c" + c).siblings("div.accordion").slideUp("slow");
	}
	
	/* Load Gallery */
	function loadGallery(g,s) {
		var theIndex = galleryids.indexOf(g);
		if ( theIndex == -1 ) {
			loadHome();
		} else {
			$(".gallery-frame").stop(true, true); $("#frame-background img").stop(true, true);
			$("#cover-banner").fadeOut("slow"); $("#cover-frame").fadeOut("slow");
			var theBanner = bannerlinks[theIndex]; var theBackCol = backgroundcodes[theIndex];
			/* gallery */
			if ( s == "" ) { /* regular gallery */
				var theLink = gallerylinks[theIndex];
			} else { /* sub gallery */
				var theLink = s;
			}
			// establish which gallery-frame to load to; fade out the other; load to the one 
			var oneVisible = $("#gallery-frame-one:visible").length; var twoVisible = $("#gallery-frame-two:visible").length;
			var iFrameString = '<iframe id="' + Math.floor(Math.random()*10001) + '" class="iframe" allowTransparency="true" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="' + theLink + '"></iframe>';
			if ((oneVisible == 1) && (twoVisible == 1)) { // both visible
				$("#gallery-frame-one").hide(); // hide one because it is behind
				$("#gallery-frame-two").fadeOut("fast", function() { $("#frame-background img").delay(600).fadeIn("slow"); });
				$("#gallery-frame-one").html(iFrameString);
			} else if ((oneVisible == 0) && (twoVisible == 0)) { // both hidden
				$("#gallery-frame-two").html(iFrameString);
			} else { // one or two visible
				if (oneVisible == 1) { // one visible
					$("#gallery-frame-one").fadeOut("fast", function() { $("#frame-background img").delay(600).fadeIn("slow"); });
					$("#gallery-frame-two").html(iFrameString);
				} else if (twoVisible == 1) { // two visible
					$("#gallery-frame-two").fadeOut("fast", function() { $("#frame-background img").delay(600).fadeIn("slow"); });
					$("#gallery-frame-one").html(iFrameString);
				}
			}
			$("div.accordion li, div.no-accordion li").removeClass('gallery-select');
			$("#g" + g).addClass('gallery-select');
			/* banner */
			if ( $("#gallery-banner-one:visible").length == 1 ) {
				var curBanner = $("#gallery-banner-one img").attr("src");
				if ( theBanner != curBanner ) {
					$("#gallery-banner-two img").attr({src: theBanner});
					$("#gallery-banner-one").fadeOut("slow", function() {
						$("#gallery-banner-two").fadeIn("slow");
					});
				}
			} else if ( $("#gallery-banner-two:visible").length == 1 ) {
				var curBanner = $("#gallery-banner-two img").attr("src");
				if ( theBanner != curBanner ) {
					$("#gallery-banner-one img").attr({src: theBanner});
					$("#gallery-banner-two").fadeOut("slow", function() {
						$("#gallery-banner-one").fadeIn("slow");
					});
				}
			} else {
				$("#gallery-banner-one img").attr({src: theBanner});
				$("#gallery-banner-one").fadeIn("slow");
			}
			/* background color */
			$("body").css("background-color", theBackCol);
		}
	}
	
	function loadSubGallery(s) {
	}
	
		
	/* Load Home */
	function loadHome() {
		$("#cover-banner").stop(true, true); $("#cover-frame").stop(true, true);
		$("#cover-banner").fadeIn("slow");
		$("#frame-background img").delay(600).fadeIn("slow");
		/* $("#cover-frame").fadeIn("slow"); SHOW WHEN LOAD */
		$("p.accordion-head").removeClass('category-select');
		$("div.accordion").slideUp("slow");
		$("div.menu li").removeClass('gallery-select');
		$(".gallery-frame:visible").fadeOut("slow");
		$(".gallery-banner:visible").fadeOut("slow");
		$("#g0").addClass('gallery-select');
		var homeBackCol = $("#shim").css("background-color");
		$("body").css("background-color", homeBackCol);
		jQuery.each($("#cover-frame iframe"), function() {
			$(this).attr({
				src: $(this).attr("src")
			});
		});
		jQuery.each($("#cover-banner"), function() {
			$(this).attr({
				src: $(this).attr("src")
			});
		});
		return false;
	}
	
	// fade in loaded gallery from child when file in iframe is ready
	showGallery = function(galleryURL) {
		$("#frame-background img").stop(true, true);
		$("#frame-background img").fadeOut("slow");
		if ( $("#gallery-frame-one iframe").attr('src') == galleryURL ) {
			$("#gallery-frame-one").fadeIn("slow");
		} else if ( $("#gallery-frame-two iframe").attr('src') == galleryURL ) {
			$("#gallery-frame-two").fadeIn("slow");
		} else if ( $("#cover-frame iframe").attr('src') == galleryURL ) {
			$("#cover-frame").fadeIn("slow");
		}
    };

    
	$('#menu-list li:not(.menu-select)').click(function() { /* click entry in menu list   */
		var thisID = $(this).attr("id");
		if ( thisID == 'mm-user' ) {
			location.href = '/user.php';
		} else if ( thisID == 'mm-index' ) {
			location.href = '/index.php';
		} else {
			var menuID = thisID.substring(2, thisID.length);
			$.address.value('/?id=' + menuID + '.0.0'); 
		}
	});
		
	$("#g0").click(function() { /* click home */
		$.address.value('/'); 
	});
	
	$('p.accordion-head').click(function() {
		if ( $(this).next("div:visible:has(ul li.gallery-select)").length == 1 ) { /* closing last pane */
			$(this).removeClass('category-select').next("div.accordion").slideUp("slow");
			var selectedMenuID = $("#menu-list li.menu-select").attr("id");
			var menuID = selectedMenuID.substring(2, selectedMenuID.length);
			$.address.value('/?id=' + menuID + '.0.0'); 
		} else if ( $(this).next("div:visible").length == 1 ) {
			$(this).removeClass('category-select').next("div.accordion").slideUp("slow");
		} else {
			$(this).addClass('category-select').next("div.accordion").slideDown("fast").siblings("div.accordion:visible:not(:has(ul li.gallery-select))").slideUp("slow").prev('p.accordion-head').removeClass('category-select');
		}
	});

	$('p.accordion-head, p.no-accordion').hover(function() { /* hover */
		$(this).addClass('hover');
    }, function() { 
		$(this).removeClass('hover');
    }); 
 
 	$('#menu-container li').hover(function() { /* hover */
		if ( $(this).attr("class") != 'gallery-select') { 
			$(this).addClass('hover'); 
		} else {
			$(this).addClass('arrow');
		}
    }, function() { 
		$(this).removeClass('hover');
		$(this).removeClass('arrow');
    }); 
   
/*
    $(window).scroll(function () { 
    alert ( "scrolling" ); 
		var b = $("body").css("background-color");
 		$("body").css("background-color", "yellow");
    });
*/
    
/*
    $("#copyright p a").click(function() {
    	$("#style").attr("href", $(this).attr("rel"));
    	return false;
    });
*/
	
	/* google analytics event tracking of an address change */
	function trackAddressChange(ca) {
		_gaq.push(['_trackEvent', 'Gallery', 'Visit', ca]);
	}

	
});


