// Heide Museum of Modern Art - Supporting JavaScript

$(document).ready(function($) {


		var DatePickerObj = {

			pickerSelector: "#datepicker-two",
			currentDate: IniDateVals.currentDate,
			selDay: IniDateVals.selDay,
			selMonth: IniDateVals.selMonth,
			selYear: IniDateVals.selYear,

			iniDayBGs: function(mth, yr)
			{
				mth	= parseInt(mth);
				yr	= parseInt(yr);
				var dayLogger = "";

				$(this.pickerSelector +' a').each(function(index)
				{
					if($(this).hasClass('ui-state-active') == true) $(this).removeClass('ui-state-active');
					if($(this).hasClass('ui-state-highlight') == true) $(this).removeClass('ui-state-highlight');
				});

				$(this.pickerSelector +' a').each(function(index)
				{
					var td = $(this).text();
					var intDay = parseInt($(this).text());
					//dayLogger += td+", "

					$(this).filter( function (index) { return $(this).text() == td;}).css({ 
					'background-image' : 'url('+BasePath.webImg+'cal/cal'+td+'.gif)' });

					if(DatePickerObj.selYear == yr && DatePickerObj.selMonth == mth && intDay == DatePickerObj.selDay)
					{
						$(this).addClass('ui-state-highlight');
						$(this).addClass('ui-state-active');
						$(this).css({ 'background-image' : 'url('+BasePath.webImg+'cal/cal'+intDay+'o.gif)'});
					}
				});
			},

			createPicker: function()
			{
				$(this.pickerSelector).datepicker({
					dateFormat: 'yy-mm-dd',
					dayNamesMin: ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'], 
					monthNames: ['JANUARY','FEBUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DECEMBER'],
					showOn: 'both',
					defaultDate: DatePickerObj.currentDate,
					onSelect: function(dateText, inst)
					{
						DatePickerObj.currentDate = dateText;
						DatePickerObj.runCycle(1);
						JScripts.eventDateSel(dateText);
					},
					onChangeMonthYear: function(yr, mth, inst)
					{
						mth = parseInt(mth);
						if(mth < 10) mth = "0"+mth;
						DatePickerObj.currentDate = yr+"-"+mth+"-01";
						DatePickerObj.runCycle(0);
						DatePickerObj.iniDayBGs(mth, yr);
					}
				});

				this.iniDayBGs(this.selMonth, this.selYear);
			},

			updateDateVals: function()
			{
				var dateSplit = this.currentDate.split('-');
				this.selDay = parseInt(dateSplit[2]);
				this.selMonth = parseInt(dateSplit[1]);
				this.selYear = parseInt(dateSplit[0]);
			},

			destroyPicker: function()
			{
				$(this.pickerSelector).datepicker('destroy');
			},

			runCycle: function(updateVals)
			{
				if(updateVals == 1) this.updateDateVals();
				this.destroyPicker();
				this.createPicker();
			}
		};


		var PopupObj = {

			active: false,
			preLoad: [],
			imgData: [],

			update: function(data)
			{
				this.imgData = data;
			},


			jsonCall: function(jsonData)
			{
				$.post(BasePath.web+"api/imgPopup.json.php", { "postData": jsonData },
				function(data)
				{
					if(data.success == false) alert(data.errorMsg);
					else PopupObj.update(data.imgData);
				},
				"json");
			}
		}; // eof PopupObj



		var NavInfo = {

			menuHTML: ""
		};


		var JScripts = {

			active: false,


			scrollerIni: function()
			{
				var winHigh = $(window).height() - 258;
				var winWidth = $(window).width() - 50;
				$('#allContentScroll').filter(function(index)
				{
					$('#allContentScroll').css({"height":winHigh, "width":winWidth});
				});
			},


			superMenu: function()
			{
				$('ul.sf-menu').superfish();
			},


			initSuperMenu: function()
			{
				NavInfo.menuHTML = $('#header-navigation').html();
				this.superMenu();
			},


			clearPopup: function()
			{
				// move off stage
				$('#popUp').css({ 'top': -1000, 'left': -1000 });
				// clear old data
				$('#popUp #popImg').html("");
				$('#popUp #detail').html("");
			},


			imgLink: function()
			{
				$('#iframe-content img').filter(function(index)
				{
					var src = $(this).attr("src");
					var uri = src.replace(BasePath.web, "");
					var uri_arr = uri.split("/");

					if(uri_arr[0] == "assets") $(this).addClass("artistDets");

					PopupObj.preLoad[index] = {
						src: src
					};

					PopupObj.active = true;
				});

				PopupObj.jsonCall($.toJSON(PopupObj.preLoad));

				$(".artistDets").hover(function()
				{
					var src = $(this).attr("src");
					var ImgDetail = false;

					if(PopupObj.imgData.length > 0)
					{
						$.each(PopupObj.imgData, function(i, d)
						{
							if(src == PopupObj.imgData[i].src) ImgDetail = PopupObj.imgData[i];
						});
					}

					if(ImgDetail != false)
					{
						var image = "<img src='"+BasePath.web+"assets/images/"+ImgDetail.details.img_family_location+
						"215-"+ImgDetail.details.image_file+"' /><br /><img src=\""+BasePath.webImg+"clear.gif\" width=\"215\" height=\"1\" />";
						var html = "";
						if(ImgDetail.details.image_artist_name != "")		html += "<h5>"+ ImgDetail.details.image_artist_name +"</h5>";
						//html += "<i>";
						if(ImgDetail.details.image_name_title != "")		html += ImgDetail.details.image_name_title;
						if(ImgDetail.details.image_production_date != "")	html += "<br />"+ ImgDetail.details.image_production_date;
						if(ImgDetail.details.image_media != "")				html += "<br />"+ ImgDetail.details.image_media;
						if(ImgDetail.details.Image_measurement != "")		html += "<br />"+ ImgDetail.details.Image_measurement;
						if(ImgDetail.details.image_collection != "")		html += "<br />"+ ImgDetail.details.image_collection;
						if(ImgDetail.details.image_copyright != "")			html += "<br />"+ ImgDetail.details.image_copyright;
						if(ImgDetail.details.image_other != "")				html += "<br />"+ ImgDetail.details.image_other;
						//html += "</i>";
						// add image
						$('#popUp #popImg').html(image);
						// add text
						$('#popUp #detail').html(html);

						var pos = $(this).position();
						$('#popUp').css({ 'top': pos.top+278, 'left': pos.left+70 });
						//$('#popUp').css({ 'top': pos.top+20, 'left': pos.left+20 });
					}
				});

				$("#popUp").mouseleave(function()
				{
					JScripts.clearPopup();
				});
			},


			iLink: function(section)
			{
				var linkage;
				var firstRun = false;

				switch(section)
				{
					case "all":			linkage = ".iLink";						break;
					case "template":	linkage = "#content-template .iLink";	break;
					case "navigation":	linkage = "#header-navigation .iLink";	break;
					case "breadcrumb":	linkage = "#menuBC .iLink";				break;
					default:			linkage = ".iLink";						break;
				}

				JScripts.active = true;

				//if(section != "template")
				//{
					$(linkage).click(function(e)
					{
						var url = $(this).attr('href');
						var apiUrl = "";
						JScripts.clearPopup();
	
						if(url != "javascript:void(0);")
						{
							apiUrl = url.replace(BasePath.web, "/");
							BasePath.uri = url.replace(BasePath.web, "/");
							$.history.load(apiUrl, firstRun);
							JScripts.active = true;
							e.preventDefault();
						}
					});
				//}

				$('#SiteSearch').submit(function() {
				  var getData = $(this).serialize();
		
				  if(getData != "qry=")
				  {
					  JScripts.searchSite(getData);
				  }

				  return false;

				});
			},


			eventDateSel: function(date)
			{
				var baseUri = BasePath.uri;
				JScripts.clearPopup();

				var apiUri = BasePath.eventsBase +"edate/"+date+"/";
				$.history.load(apiUri, false);
			},


			searchSite: function(getData)
			{
				var baseUri = "/site-search/";
				JScripts.clearPopup();

				var apiUri = baseUri + "&" + getData;
				$.history.load(apiUri, false);
			},


			switch_tabs: function(obj)
			{
				$('.tab-content').hide();
				$('.tabs a').removeClass("selected");
				var id = obj.attr("rel");
			 
				$('#'+id).show();
				obj.addClass("selected");
			},


			fireOff: function(jscript)
			{
				var JScriptsParent = this;

				if(jscript == "datepicker")
				{
					DatePickerObj.createPicker();
				}

				if(jscript == "content-tabs")
				{
					$(function() {
						$('.tabs a').click(function(){
							JScriptsParent.switch_tabs($(this));
						});
						JScriptsParent.switch_tabs($('.defaulttab'));
					});
				}
			},


			jscriptSet: function()
			{
				$('#JScriptExec').filter(function(index)
				{
					jscript = $(this).attr("rel");
					JScripts.fireOff(jscript);
				});
			}

		}; // eof JScripts



		$.history.init(function(url) {

			if(JScripts.active == true)
			{
				url = "api/content.hijax.php?uri=" + url;

				$('#content-template').load(BasePath.web+url, function()
				{
					JScripts.iLink("template");

					if($('h1#status span').text() != "") $(document).attr("title", BasePath.titleBase+" - "+$('h1#status span').text());

					$("#content-template").fadeIn(300);
					JScripts.imgLink();
					JScripts.jscriptSet();
					JScripts.scrollerIni();
				});
			}
		}, { unescape: "/" });



		$('.introLink').click(function(e)
		{
			var url =  $(this).attr('href');
			if(url == BasePath.web)
			{
				$("#qm0").fadeOut(200);
				$("#footer").fadeOut(200);
				$("#footer-siteby").fadeOut(200);
				$("#iframe-content").fadeOut(200);
				$('#iframe-content').remove();
				$("#IntroBttnBox").fadeOut(200);
			}

			if(url == BasePath.defPage)
			{
				$("#qm0").fadeIn(600);
				$("#IntroBttnBox").fadeOut(200);

			}
			e.preventDefault();
		});



		$('#SiteSearch').submit(function() {
		  var getData = $(this).serialize();

		  if(getData != "qry=")
		  {
			  JScripts.searchSite(getData);
		  }

		  return false;

		});


		//JScripts.initSuperMenu();
		JScripts.iLink("all");
		JScripts.imgLink();
		JScripts.jscriptSet();
		JScripts.scrollerIni();



	//LOAD MENU AND DISPLAY. 
	//STITCH IN HERE WITH CURRENT SETUP..
	$('#menu').fadeIn('slow');
	var menuStatus = 1; // on 
	var menuInit = 0; // has menu been interacted with

	function menuOff(){ 
		menuStatus = 0; // off
	}
	// INITIALISE MEU
	function menuStart(){ 
		menuInit = 1; // menu used
		menuStatus = 1; // on
		// clear all breadcrumbs
		$('#l1breadcrumbs li, #l2breadcrumbs li, #l3breadcrumbs li').each(function(index){
			$(this).html('');
		});
		// hide real nav
		$('#menu').fadeOut('fast', function() {
			// timeout to be able to view again.
			setTimeout ( menuOff, 800 );
		});
	}

	/// RESET SCROLL IF NEEDED<
	$('#qm0').click(function(){
		$('#allContentScroll').scrollTop(0);
	});
	// HIDE ON MOUSE LEAVE ANY PART OF UL OR NESTED
	$('#qm0').mouseleave(function(){
		//$('#status').html('leave' + menuInit+menuStatus);
		if(menuInit==1){
			if(menuStatus==1){
				$('#menuBC').fadeIn('fast'); 
				$('#menu').fadeOut('fast', function() {
    				menuStatus = 0; // on 
  				});	
			}
		}
	});
	// SHOW MENU ON MOUSE OVER BC1
	$('#l1breadcrumbs').mouseenter(function(){
		//$('#status').html('enter'+ menuInit+menuStatus);
		if(menuInit==1){
			if(menuStatus==0){
				$('#menuBC').fadeOut('fast'); 
				$('#menu').fadeIn('fast', function() {
    				menuStatus = 1; // on 
  				});	
			}
		}
		
	});

	var ulString = '<ul';
	if($.browser.msie) ulString = '<UL';


	// ACTION LEVEL 1
	$('.l11, .l12, .l13, .l14, .l15, .l16, .l17, .l18').click(function(){
		$('#l1breadcrumbs li').html("");
		menuStart();
		var cont = $(this).parent().html();
		var contArr = cont.split(ulString); // dont bring nested UL's push it to the class asssoc div id
		var classS = $(this).attr("class");
		var classArr = classS.split(' ');
		var className = classArr[1]; // iLink first
		$("#"+className).html(contArr[0]); 
		$('ul.sf-menu1').superfish({ delay:0, speed:'fast'}); // hides 2nd level.

		var indexPoint = 0;
		$("#l1breadcrumbs .navUnselected").removeClass("navUnselected");
		$("#l1breadcrumbs .navSelected").removeClass("navSelected");

		$('#qm0 > li').each(function(index, element) {
			indexPoint++;
			var href;
			var linkTxt;

			if($('#l1breadcrumbs #l1'+indexPoint).html() == "")
			{
				$('#l1breadcrumbs #l1'+indexPoint).html($(this).html());
				$('#l1breadcrumbs #l1'+indexPoint).addClass("navUnselected");
			} else $('#l1breadcrumbs #l1'+indexPoint).addClass("navSelected");
		});

		JScripts.iLink("breadcrumb");
	});

	// ACTION LEVEL 2 - 1		
	$('.l21, .l22, .l23, .l24, .l25, .l26, .l27, .l28').click(function(){
		$('#l1breadcrumbs li').html("");
		menuStart();
		//Level 2 content
		var cont = $(this).parent().html();
		var classS = $(this).attr("class");
		var classArr = classS.split(' ');
		var className = classArr[1]; // iLink first
		$("#"+className).html(cont);
		// level 1 content
		var cont2 = $(this).parent().parent().parent().html();

		var contArr2 = cont2.split(ulString); // dont bring nested UL's
		var classS2 = $(this).parent().parent().parent().attr("rel").substr(1);
		//$('#status').html('cs2='+classS2);
		$("#"+classS2).html(contArr2[0]); 
		//init the new menu		
		$('ul.sf-menu2').superfish({ delay:0, speed:'fast'});

		var indexPoint = 0;
		$("#l1breadcrumbs .navUnselected").removeClass("navUnselected");
		$("#l1breadcrumbs .navSelected").removeClass("navSelected");

		$('#qm0 > li').each(function(index, element) {
			indexPoint++;
			var href;
			var linkTxt;

			if($('#l1breadcrumbs #l1'+indexPoint).html() == "")
			{
				$('#l1breadcrumbs #l1'+indexPoint).html($(this).html());
				$('#l1breadcrumbs #l1'+indexPoint).addClass("navUnselected");
			} else $('#l1breadcrumbs #l1'+indexPoint).addClass("navSelected");
		});

		JScripts.iLink("breadcrumb");
	});		

	// ACTION LEVEL 3 - 2 - 1
	$('.l31, .l32, .l33, .l34, .l35, .l36, .l37, .l38').click(function(){
		$('#l1breadcrumbs li').html("");
		menuStart();
		//Level 3 content
		var cont = $(this).parent().html();
		var classS = $(this).attr("class");
		var classArr = classS.split(' ');
		var className = classArr[1]; // iLink first
		$("#"+className).html(cont);
		//Level 2 content
		var cont2 = $(this).parent().parent().parent().html();
		var contArr2 = cont2.split(ulString); // dont bring nested UL's	
		var classS2 = $(this).parent().parent().parent().attr("rel").substr(1);
		var classArr2 = classS2.split(' ');
		var className2 = classArr2[0]; // iLink first
		$("#"+className2).html(cont2);
		// level 1 content
		var cont2 = $(this).parent().parent().parent().parent().parent().html();
		var contArr2 = cont2.split(ulString); // dont bring nested UL's
		var classS2 = $(this).parent().parent().parent().parent().parent().attr("rel").substr(1);
		//$('#status').html('cs2='+classS2);
		$("#"+classS2).html(contArr2[0]);
		//init the new menu		
		$('ul.sf-menu2').superfish({ delay:0, speed:'fast'});
		$('ul.sf-menu3').superfish({ delay:0, speed:'fast'});

		var indexPoint = 0;
		$("#l1breadcrumbs .navUnselected").removeClass("navUnselected");
		$("#l1breadcrumbs .navSelected").removeClass("navSelected");

		$('#qm0 > li').each(function(index, element) {
			indexPoint++;
			var href;
			var linkTxt;

			if($('#l1breadcrumbs #l1'+indexPoint).html() == "")
			{
				$('#l1breadcrumbs #l1'+indexPoint).html($(this).html());
				$('#l1breadcrumbs #l1'+indexPoint).addClass("navUnselected");
			} else $('#l1breadcrumbs #l1'+indexPoint).addClass("navSelected");
		});

		JScripts.iLink("breadcrumb");
	});



	// ACTION LEVEL 1	
	/*$('.l11, .l12, .l13, .l14, .l15, .l16, .l17, .l18').click(function(){
		menuStart();
		var cont = $(this).parent().html();
		var contArr = cont.split(ulString); // dont bring nested UL's
		// push it to the class asssoc div id
		var classS = $(this).attr("class");
		var classArr = classS.split(' ');
		var className = classArr[1]; // iLink first
		$("#"+className).html(contArr[0]); 
		$('ul.sf-menu1').superfish({ delay:0, speed:'fast'}); // hides 2nd level.
		JScripts.iLink("breadcrumb");
	});

	// ACTION LEVEL 2 - 1		
	$('.l21, .l22, .l23, .l24, .l25, .l26, .l27, .l28').click(function(){
		menuStart();
		//Level 2 content
		var cont = $(this).parent().html();
		var classS = $(this).attr("class");
		var classArr = classS.split(' ');
		var className = classArr[1]; // iLink first
		$("#"+className).html(cont);
		// level 1 content
		var cont2 = $(this).parent().parent().parent().html();
	
		var contArr2 = cont2.split(ulString); // dont bring nested UL's
		var classS2 = $(this).parent().parent().parent().attr("rel").substr(1);
		//$('#status').html('cs2='+classS2);
		$("#"+classS2).html(contArr2[0]); 
		//init the new menu		
		$('ul.sf-menu2').superfish({ delay:0, speed:'fast'});
		JScripts.iLink("breadcrumb");
	});		
	
	// ACTION LEVEL 3 - 2 - 1
	$('.l31, .l32, .l33, .l34, .l35, .l36, .l37, .l38').click(function(){
		menuStart();
		//Level 3 content
		var cont = $(this).parent().html();
		var classS = $(this).attr("class");
		var classArr = classS.split(' ');
		var className = classArr[1]; // iLink first
		$("#"+className).html(cont);
		//Level 2 content
		var cont2 = $(this).parent().parent().parent().html();
		var contArr2 = cont2.split(ulString); // dont bring nested UL's	
		var classS2 = $(this).parent().parent().parent().attr("rel").substr(1);
		var classArr2 = classS2.split(' ');
		var className2 = classArr2[0]; // iLink first
		$("#"+className2).html(cont2);
		// level 1 content
		var cont2 = $(this).parent().parent().parent().parent().parent().html();
		var contArr2 = cont2.split(ulString); // dont bring nested UL's
		var classS2 = $(this).parent().parent().parent().parent().parent().attr("rel").substr(1);
		//$('#status').html('cs2='+classS2);
		$("#"+classS2).html(contArr2[0]);
		//init the new menu		
		$('ul.sf-menu2').superfish({ delay:0, speed:'fast'});
		$('ul.sf-menu3').superfish({ delay:0, speed:'fast'});
		JScripts.iLink("breadcrumb");	
	});*/
				
				
    var menu = $("#header");
    
    menu.find("ul.sf-menu")
        .superfish({
            delay:         0,
            speed:         'fast'
        });


});
