var html;
var pageFadeComplete = false;
var pageLoadComplete = false;
var pageRefreshTimer = null;
var currentLocationThumb = 1;
var currentPageMenu = '';
var site_url = "http://www.xllounge.net";
var gallery_url = site_url + "/images/gallery/";
var top_menu_img_dir = "images/menu/top-menu/";

var top_menu_img_on_ar = [
	top_menu_img_dir + 'menu-buffer.png', 
	top_menu_img_dir + 'menu-contact-us-on.png', 
	top_menu_img_dir + 'menu-directions-on.png', 
	top_menu_img_dir + 'menu-events-on.png', 
	top_menu_img_dir + 'menu-gallery-on.png', 
	top_menu_img_dir + 'menu-main-on.png', 	
	top_menu_img_dir + 'menu-venue-on.png', 
	top_menu_img_dir + 'menu-vip-services-on.png', 
	top_menu_img_dir + 'menu-video-on.png',
	'images/buttons/player/mute.png'
];

var gallery_count = 0;
var gallery_menu_count = 0;
var gallery_id = 1
var gallery_pos_id = 4;
var gallery_page = 0;
var gallery_menu_page = 0;
var gallery_pages = 0;
var gallery_menu_pages = 0;
var gallery_items_per_page = 4;
var gallery_menu_items_per_page = 10;

var video_url = site_url + "/video/";
var video_img_url = site_url + "/images/video/";
var video_count = 0;
var video_page = 0;
var video_pages = 0;
var video_items_per_page = 4;
var video_id = 0;
var video_selected = 0;

var event_img_url = site_url + "/images/flyers/";
var event_count = 0;
var event_page = 0;
var event_pages = 0;
var event_items_per_page = 10;
var event_id = 0;
var event_selected = 0;
var event_featured_id = 0;
var event_upcoming_slot_count = 3;

var player = null;

var playItem = 0;
var jplayer_playing = false;
var jplayer_was_paused = false; // if the video player is played while music is playing it needs to resume when going to another page.
// if someone pauses the jplayer then jplayer_was_paused becomes true. this is only toggled when jplayer is paused or played.
// the initial setting should be true until the jplayer changes it. right now it is false because i didn't update the code yet.

var jplayer_muted = false;

var myPlaylistText = '';
var myPlaylist = [];
var newPlaylist = true;

// Local copy of jQuery selectors, for performance.
var jpPlayTime;
var jpTotalTime;

var video_json = {
	    playlist: [
	    	{
				url: ""
			},
	   		{
	       	 url: "",
	       	 autoPlay: false,
	       	 autoBuffering: true
	    	}
	    ]
};

var video_list_json;

var section = '';

var arDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var arMonths = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var arOrdinal = ["st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th", "th"
	, "th", "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th", "th", "st"];
	
	function initPlayList() {
			$.ajax({
				url: site_url + '/data/audio_playlist.js',
				async: false,
				cache: false,
				success: playListInitialized,
				complete: playlistComplete,
				error:function (xhr, ajaxOptions, thrownError){
					alert(xhr.status);
					alert(thrownError);
				},
				dataType: "text"
			});
	}
	
	function playlistComplete(xhr, textStatus) {
		if (textStatus == "notmodified") return;
	}
	
	function playListInitialized(data) {
		if (data != myPlaylistText) {
			myPlaylistText = data;
			data = jQuery.parseJSON(data);
			myPlaylist = data["audio"];
			newPlaylist = true;
		}

	}
	
	function displayPlaylist() {
		$("#jplayer_playlist ul").empty();
		for (i=0; i < myPlaylist.length; i++) {
			var listItem = (i == myPlaylist.length-1) ? "<li class='jplayer_playlist_item_last'>" : "<li>";
			listItem += "<a href='#' id='jplayer_playlist_item_"+i+"' tabindex='1'>"+ myPlaylist[i].name +"</a></li>";
			$("#jplayer_playlist ul").append(listItem);
			$("#jplayer_playlist_item_"+i).data( "index", i ).click( function() {
				var index = $(this).data("index");
				if (playItem != index) {
					playListChange( index );
				} else {
					$("#jquery_jplayer").jPlayer("play");
				}
				$(this).blur();
				return false;
			});
		}
	}

	function playListInit(autoplay) {
		if( autoplay ) {
			playListChange( playItem );
			if ( autoplay ) $("#jquery_jplayer").jPlayer("play");
		} else {
			playListConfig( playItem );
		}
	}

	function playListConfig( index ) {
		$("#jplayer_playlist_item_"+playItem).removeClass("jplayer_playlist_current").parent().removeClass("jplayer_playlist_current");
		$("#jplayer_playlist_item_"+index).addClass("jplayer_playlist_current").parent().addClass("jplayer_playlist_current");
		playItem = index;
		$(".jp-track-title").html(myPlaylist[playItem].name);
		$("#jquery_jplayer").jPlayer("setMedia", myPlaylist[playItem]);
	}

	function playListChange( index ) {
		playListConfig( index );
		if ( jplayer_playing ) $("#jquery_jplayer").jPlayer("play");
	}

	function playListNext() {
		var index;
		
		if ( !playlistCheck() ) {
			index = (playItem+1 < myPlaylist.length) ? playItem+1 : 0;
		} else {
			index = 0;
		}
		
		playListChange( index );
	}

	function playListPrev() {
		var index;
		
		if ( !playlistCheck() ) {
			index = (playItem-1 >= 0) ? playItem-1 : myPlaylist.length-1;
		} else {
			index = 0;
		}
		
		playListChange( index );
	}
	
	function playlistCheck() {
		initPlayList();
		if (newPlaylist) {
			newPlaylist = false;
			return true;
			displayPlaylist();
		}
		
		return false;
	}

function demoInstanceInfo(myPlayer, myInfo) {
	var jPlayerInfo = "<p>This jPlayer instance is running in your browser using ";

	if(myPlayer.jPlayer("getData", "usingFlash")) {
		jPlayerInfo += "<strong>Flash</strong> with ";
	} else {
		jPlayerInfo += "<strong>HTML5</strong> with ";
	}
	
	if(myPlayer.jPlayer("getData", "usingMP3")) {
		jPlayerInfo += "<strong>MP3</strong>";
	} else {
		jPlayerInfo += "<strong>OGG</strong>";
	}
	
	
	jPlayerInfo += " files.<br />This instance is using the constructor options:<br /><code>$(\"#" + myPlayer.jPlayer("getData", "id") + "\").jPlayer({<br />";
	
	jPlayerInfo += "&nbsp;&nbsp;&nbsp;nativeSupport: " + myPlayer.jPlayer("getData", "nativeSupport");
	jPlayerInfo += ", oggSupport: " + myPlayer.jPlayer("getData", "oggSupport");
	jPlayerInfo += ", customCssIds: " + myPlayer.jPlayer("getData", "customCssIds");
	
	jPlayerInfo += "<br />});</code></p>";
	myInfo.html(jPlayerInfo);
}

function demoStatusInfo(myPlayer, myInfo) {
	var jPlayerStatus = "<p>jPlayer is ";
	jPlayerStatus += (myPlayer.jPlayer("getData", "diag.isPlaying") ? "playing" : "stopped");
	jPlayerStatus += " at time: " + Math.floor(myPlayer.jPlayer("getData", "diag.playedTime")) + "ms.";
	jPlayerStatus += " (tt: " + Math.floor(myPlayer.jPlayer("getData", "diag.totalTime")) + "ms";
	jPlayerStatus += ", lp: " + Math.floor(myPlayer.jPlayer("getData", "diag.loadPercent")) + "%";
	jPlayerStatus += ", ppr: " + Math.floor(myPlayer.jPlayer("getData", "diag.playedPercentRelative")) + "%";
	jPlayerStatus += ", ppa: " + Math.floor(myPlayer.jPlayer("getData", "diag.playedPercentAbsolute")) + "%)</p>"
	myInfo.html(jPlayerStatus);
}

function setVenueSubSection(name) {


$("#venue-menu #" + name).addClass("venue-menu-item-over");
	$("#venue-menu #" + name + "-menu-icon").addClass("venue-menu-icon-on");
	
	return;
	
	
	switch (name) {
		case 'about-us':
			
			break;
	}
}

	function startPageRefreshTimer() {
		pageRefreshTimer = setInterval(checkPageRefreshTimer, 500);
	}
		
	function checkPageRefreshTimer() {
		
		//alert(pageLoadComplete + " " + pageFadeComplete);
		if (pageLoadComplete && pageFadeComplete) {
		
			if ( pageRefreshTimer != undefined && pageRefreshTimer != null ) {
				clearInterval(pageRefreshTimer);
			}
		
			pageLoadComplete = false;
			pageFadeComplete = false;
			
			//alert(html);
			
			$("#page-body").replaceWith(html);
			
			section = $("#page-metadata #section").html();
			subsection = $("#page-metadata #sub-section").html();

			
			if (section == 'venue') {
				setVenueSubSection(subsection);
			} else if ( section == 'gallery' ) {
				loadGalleryList();
			} else if ( section == "video" ) {
				loadVideoList($(".video-menu-item:first"));
			} else if ( section == "events" ) {
					loadEventList($(".event-menu-item:first"));
			} else if ( section == "main" ) {
					//player = flowplayer("a.vplayer", "http://releases.flowplayer.org/swf/flowplayer-3.2.6.swf", {
						//playlist:[{'url': site_url + '/video/front.mp4','autoPlay':true,'autoBuffering':true}],
						//onLoad: function () {
						// this.setVolume(0);
						//}
						//});
			}
				
			$("#page-container").fadeIn(1000, function() {
				$("#page-footer").show();
			});
			
		}
	}
	
	function ajaxUpdated(data) {
		html = data;
		pageLoadComplete = true;	
	}
	
	function setMainMenuItem(id) {
		
		if (currentPageMenu == id) {
			return false;
		}
		
		$("#" + currentPageMenu + "-img img").attr('src', top_menu_img_dir + currentPageMenu + ".png");
		$("#" + id + "-img img").attr('src', top_menu_img_dir + id + "-on.png");
		currentPageMenu = id;
	
	}
	
	function loadPage(obj) {
			var href = $(obj).attr('href');
			href = href.replace(site_url + "/", "");
						
			var url = "pages/" + href;
			window.location.hash = "!/" + href;		
		
			if ($("#player-object")) $("#player-object").hide();
			
			$.ajax({
				url: url,
				success: ajaxUpdated,
				error:function (xhr, ajaxOptions, thrownError){
						alert(xhr.status);
						alert(thrownError);
					} ,
				dataType: "html"
			});

			$("#page-footer").hide();
			$("#page-container").fadeOut(700, function() {
				pageFadeComplete = true;
			});
		
			if (href == "index.php") {
				setMainMenuItem("menu-main");
			}
			
			return false;
		}


(function($) {
	$.fn.preload = function() {
	    this.each(function(){
	        $('<img/>')[0].src = this;
	    });
	}
	
  $.fn.outerHTML = function() {
    return $(this).wrap('<div></div>').parent().html();
  }

	$.fadeIn = function(delay,callbk,out) {
		
		this.show();
		
		return;
		
	    var _this = this;
	    _this.style.zoom = 1; // for ie, set haslayout
	    _this.style.display="block"; 
	    for (i = 1; i <= 100; i++) {
	      (function(j) {
	            setTimeout(function() {  
	                  if (out==true) j=100-j;
	                  opacityto(_this, j);
	                  if (j==100&&callbk!=undefined) {callbk.call(_this);}
	                  else if (out==true&&callbk!=undefined&&j==0) {callbk.call(_this);}
	                  },j*delay/100);

	        })(i);     
	    }
	};

	$.fadeOut = function(delay,callbk) {
		this.hide();
		
		return;
	    $.fadeIn(delay,callbk,true);
	};
	
	
})(jQuery);

$(document).ready(function() {
	
	$('.image-thumb-img').load(function() {

		if ( gallery_pages > 1 ) $("#gallery-thumb-list-menu").fadeIn(500);
		if ( this.complete ) {
			$("#" + $(this).attr("id")).fadeIn();
		}

	});
	
	$("#jp-vol, #jp-vol-set").click( function(e) {
		var vol = parseInt((e.pageX - $(this).offset().left) / $("#jp-vol").width() * 100) / 100;
		$("#jquery_jplayer").jPlayer("volume", vol);
		
	});
	
	$("#jp-scrubber, #jp-scrubber-played").click( function(e) {
		var seekX = parseInt((e.pageX - $(this).offset().left) / $("#jp-scrubber").width() * 100);
		$("#jquery_jplayer").jPlayer("playHead", seekX);
		
	});
	
	$("#jplayer_previous").click( function() {
		playListPrev();
		$(this).blur();
		return false;
	});

	$("#jplayer_next").click( function() {
		playListNext();
		$(this).blur();
		return false;
	});

	$("#jplayer_stop").click( function() {
		$("#jquery_jplayer").jPlayer("stop");
		jplayer_playing = false;
		$("#jp_interface #jplayer_play img").attr("src", "images/buttons/player/play.png");
		return false;
	});

	$("#jplayer_play").click( function() {
		if ( jplayer_playing ) {
			$("#jquery_jplayer").jPlayer("pause");
			jplayer_playing = false;
			$("#jp_interface #jplayer_play img").attr("src", "images/buttons/player/play.png");
			return false;	
		} else {	
			$("#jquery_jplayer").jPlayer("play");
			jplayer_playing = true;
			$("#jp_interface #jplayer_play img").attr("src", "images/buttons/player/paused.png");
			return false;
		}
	});
	
	$("#jplayer_vol").click( function () {
		if ( jplayer_muted ) {
			$("#jplayer_vol img").attr("src", "images/buttons/player/volume.png");
			$("#jquery_jplayer").jPlayer("unmute");
			jplayer_muted = false;
		} else {
			$("#jplayer_vol img").attr("src", "images/buttons/player/mute.png");
			$("#jquery_jplayer").jPlayer("mute");

			jplayer_muted = true;
		}
		
	})
	
	var src_dir = "images/menu/top-menu/"
	$(top_menu_img_on_ar).preload();
	
	
	$(".page-link, .venue-menu-link, .venue-link, .footer-link").live('click', function() {
	
		if ( $("#vplayer").attr("id") != undefined && $("#vplayer").attr("id") != null ) {
			setVideoPlayer(video_json, false);
		}
		
			
		if ( pageRefreshTimer != undefined && pageRefreshTimer != null ) {
			clearInterval(pageRefreshTimer);
		}
			
		startPageRefreshTimer();
		
		return loadPage(this);

	});
	
		
	$(".top-menu-btn").live('click', function() {
		//alert("#" + $(this).attr('id'));
		var id = $(this).attr('id');
		setMainMenuItem(id);
	
	});
	
	$(".top-menu-btn").live('mouseover', function() {
		if (currentPageMenu != $(this).attr("id")) {
			$("#" + $(this).attr("id") + "-img img").attr('src', top_menu_img_dir + $(this).attr("id") + "-on.png");
		}
	});
	

	$(".top-menu-btn").live('mouseout', function() {
		if (currentPageMenu != $(this).attr("id")) {
		$("#" + $(this).attr("id") + "-img img").attr('src', top_menu_img_dir + $(this).attr("id") + ".png");
		
		}
	});
	
	$(".footer-btn").live('mouseover', function() {
		$("#" + $(this).attr("id")).addClass($(this).attr("id") + "-on");
	});
	
	
	$(".footer-btn").live('mouseout', function() {
		$("#" + $(this).attr("id")).removeClass($(this).attr("id") + "-on");
	});
	
	$("").live('click', function() {
		return loadPage(this);
	});
	
	// venue....
	
	$("#vip-form #form-submit #submit-btn").live('click', function() {
		//alert($("#vip-form textarea.#comments").val());
	});
	
	
	$(".venue-menu-item").live('mouseover', function() {
		if ($("#venue-menu #" + $("#page-metadata #sub-section").html()).attr('id') == $(this).attr('id')) return;
		
		$(this).addClass("venue-menu-item-hover");
		$("#" + $(this).attr('id') + "-menu-icon").addClass("venue-menu-icon-on");
	});
	
	$(".venue-menu-item").live('mouseout', function() {
		if ($("#venue-menu #" + $("#page-metadata #sub-section").html()).attr('id') == $(this).attr('id')) return;
		
		$(this).removeClass("venue-menu-item-hover");
		$("#" + $(this).attr('id') + "-menu-icon").removeClass("venue-menu-icon-on");
	});
	
	$(".venue-menu-item").live('mouseover', function() {
		if ($("#venue-menu #" + $("#page-metadata #sub-section").html()).attr('id') == $(this).attr('id')) return;
		
		$(this).addClass("venue-menu-item-hover");
		$("#" + $(this).attr('id') + "-menu-icon").addClass("venue-menu-icon-on");
	});
	
	$(".lounge-photo-items").live('click', function() {
		var ar = $(this).attr('id').split("-");
		var thumbId = parseInt(ar[1]);
		if ( thumbId == currentLocationThumb ) return;
		
		ar[1] = currentLocationThumb;
		$("#" + ar.join("-")).removeClass("lounge-photo-items-on");
		src = $("#" + $(this).attr('id') + " .venue-location-img").attr("src");
		src = src.replace(site_url + "/", "");
		var path = src.split("/");
		img = path[path.length - 1].split("_")[1];

		var new_path = path[0] + "/" + path[1] + "/";
		
		$("#venue-main-img").attr("src", new_path + img);

		currentLocationThumb = thumbId;
	});
	
	$(".lounge-photo-items").live('mouseover', function() {
		$("#" + $(this).attr("id")).addClass("lounge-photo-items-on");
	});
	
	$(".lounge-photo-items").live('mouseout', function() {
		var thumbId = parseInt($(this).attr('id').split("-")[1]);
		
		if ( thumbId != currentLocationThumb ) {
			$("#" + $(this).attr("id")).removeClass("lounge-photo-items-on");
		}
	});
	
	
	// events...
	
	$("#event-featured-image, .event-upcoming-slot img").live('click', function() {
			var ar = $(this).attr("src").split("_");
			var src = "images/flyers/flyer_" + ar[ar.length -1];
			$("#event-flyer-window-content-image").attr("src", src);
			$("#event-flyer-window").show();
	});
	
	$("#event-close-button").live('click', function() {
			$("#event-flyer-window").hide();
			$("#event-flyer-window-content-image").attr("src", "images/flyers/flyer_empty.png");
	});

	$(".event-menu-item").live('mouseover', function() {
		
		if ($("#event-menu #" + $("#page-metadata #sub-section").html()).attr('id') == $(this).attr('id')) return;
		
		$(this).addClass("event-menu-item-hover");
		$("#" + $(this).attr('id') + " .event-menu-icon").addClass("event-menu-icon-on");
	});
		
	$(".event-menu-item").live('mouseout', function() {
		
		$(this).removeClass("event-menu-item-hover");
		if ("event-" + event_id != $(this).attr('id')) {
			$("#" + $(this).attr('id') + " .event-menu-icon").removeClass("event-menu-icon-on");
		}
	});
	
	$(".event-menu-item").live('click', function() {
		removeEventSelected();
		event_id = $(this).attr('id').split("-")[1];
		var counter = $("#event-list #event-" + event_id + " .event-info").attr("id");
		var events = event_list_json;

		var date = getDate(new Date(events[counter].date));
		var src = "images/flyers/flyer_" + getDateStr(date, "file") + ".jpg";

		$("#event-flyer-window-content-image").attr("src", src);
		$("#event-flyer-window").show();
		addEventSelected();
		return;
	});
	
	$('#event-list-buttons .menu-prev').live('click', function() {
		var eventItems = "#event-list-items";
		
		updateEventItems(eventItems, true, false);
		return;
	});
	
	$('#event-list-buttons .menu-next').live('click', function() {
		var eventItems = "#event-list-items";
		
		updateEventItems(eventItems, true, true);
		return;
	});
	
	// gallery...
	$(".gallery-menu-item").live('mouseover', function() {
		
		if ($("#gallery-menu #" + $("#page-metadata #sub-section").html()).attr('id') == $(this).attr('id')) return;
		
		$(this).addClass("gallery-menu-item-hover");
		$("#" + $(this).attr('id') + " .gallery-menu-icon").addClass("gallery-menu-icon-on");
	});
	
	$(".gallery-menu-item").live('mouseout', function() {
		//if ($("#gallery-menu #" + $("#page-metadata #sub-section").html()).attr('id') == $(this).attr('id')) return;
		
		$(this).removeClass("gallery-menu-item-hover");
		if ("gallery-" + gallery_pos_id != $(this).attr('id')) {
			$("#" + $(this).attr('id') + " .gallery-menu-icon").removeClass("gallery-menu-icon-on");
		}
	});
	
	$(".gallery-menu-item").live('click', function() {
		removeGallerySelected();
		loadGallery($(this));
		return;
	});
	
	$('#gallery-thumb-list-menu .menu-prev').live('click', function() {
		var galleryItems = "#gallery-thumb-list #gallery-thumb-list-items";
		
		updateGalleryItems(galleryItems, true, false);
		return;
	});
	
	$('#gallery-thumb-list-menu .menu-next').live('click', function() {
		var galleryItems = "#gallery-thumb-list #gallery-thumb-list-items";
		
		updateGalleryItems(galleryItems, true, true);
		return;
	});
	
	
	$(".image-thumb").live('click', function() {
		var thumbId = parseInt($(this).attr('id').split("-")[2]);
		var offset = ((gallery_page - 1) * gallery_items_per_page);
		var curThumbId = thumbId + offset;
		
		if ( curThumbId > gallery_count ) return;
		
		loadGalleryImage(curThumbId);
	});
	
	
		// video page...
	$(".video-menu-item").live('mouseover', function() {
		//if (curVideoId == $(this).attr('id')) return;
		
		$(this).addClass("video-menu-item-hover");
		$("#" + $(this).attr('id') + " .video-menu-icon").addClass("video-menu-icon-on");
	});
	
	$(".video-menu-item").live('mouseout', function() {
		$(this).removeClass("video-menu-item-hover");
		
		if ( video_selected != $("#" + $(this).attr('id') + " .video-info").attr("id")) {
			$("#" + $(this).attr('id') + " .video-menu-icon").removeClass("video-menu-icon-on");
		}
	});
	
	$(".video-menu-item").live('click', function() {
		
		$("#video-" + video_id).removeClass("video-menu-item-hover");
		$("#video-" + video_id).removeClass("video-menu-item-on");		
		$("#video-" + video_id + ' a .video-menu-icon').removeClass('video-menu-icon-on');
		
		video_id = $(this).attr('id').split("-")[1];
		video_selected = $("#" + $(this).attr("id") + " .video-info").attr("id");
		
		$("#video-" + video_id).removeClass("video-menu-item-hover");
		$("#video-" + video_id).addClass("video-menu-item-on");		
		$("#video-" + video_id + ' a .video-menu-icon').addClass('video-menu-icon-on');
		
		loadVideo(video_selected);
		return;
	});
	
	
	
	// final page js updates
	
	section =  $("#page-metadata #section").html();
	
	if (section == "contact-us" || section == "directions") {
		setMainMenuItem('menu-' + $("#page-metadata #sub-section").html());
	} else if (section == "gallery" ) {
		loadGalleryList();
	} else if ( section == "video" ) {
		loadVideoList($(".video-menu-item:first"));
	} else if ( section == "events" ) {
				loadEventList($(".event-menu-item:first"));
	} else {
		if ( section == "main" ) {
		//	player = flowplayer("a.vplayer", "http://releases.flowplayer.org/swf/flowplayer-3.2.6.swf", {
			//	playlist:[{'url': site_url + '/video/front.mp4','autoPlay':true,'autoBuffering':true}],
			//	onLoad: function () {
				  //this.setVolume(0);
			//	}(new Date()).getTime()
			//	});
		}
		setMainMenuItem('menu-' + $("#page-metadata #section").html());
	}
	
	setVenueSubSection($("#page-metadata #sub-section").html());
	
	var jpPlayTime = $("#jplayer_play_time");
	var jpTotalTime = $("#jplayer_total_time");
								
	$("#jquery_jplayer").jPlayer({
		ready: function (event) {
				initPlayList();
				newPlaylist = false;
				displayPlaylist();
				//playListInit(true); // Parameter is a boolean for autoplay.
				playListInit(true);
				var  divWidth = $("#jp-vol").css("width").split("px")[0];
				var vol = parseInt(event.jPlayer.status.volume * divWidth);
				vol = (vol > divWidth) ? divWidth : vol;
				$("#jp-vol-set").css("width", vol + "px");
		},
		play: function() {
			jplayer_playing = true;
			$("#jp_interface #jplayer_play img").attr("src", "images/buttons/player/paused.png");
			$("#jp-scrubber-played").css("width", "0px");
		},
		paused: function() {
			jplayer_playing = false;
			$("#jp_interface #jplayer_play img").attr("src", "images/buttons/player/play.png");
		},
		ended: function() {
			playListNext();	
		},
		timeupdate: function(event) {
			jpPlayTime.text($.jPlayer.convertTime(event.jPlayer.status.currentTime));
			jpTotalTime.text($.jPlayer.convertTime(event.jPlayer.status.duration));
			var  divWidth = $("#jp-scrubber").css("width").split("px")[0] - 2;
			var time = parseInt((event.jPlayer.status.currentTime / event.jPlayer.status.duration) * divWidth);
			if (time > divWidth - 2 ) time = divWidth - 2;
			
			$("#jp-scrubber-played").css("width", (time) + "px");
		},
		volumechange: function(event) {
			var  divWidth = $("#jp-vol").css("width").split("px")[0];
			var vol = parseInt(event.jPlayer.status.volume * divWidth) - 2;
			if (vol < 0) vol = 0;
			
			vol = (vol > divWidth) ? divWidth : vol;
			$("#jp-vol-set").css("width", vol + "px");
		},
			swfPath: "../swf",
			supplied: "mp3, oga",
			volume: .7
		}
	);
	//$("#jplayer_inspector").jPlayerInspector({jPlayer:$("#jquery_jplayer")});

	
});

function updateGalleryItems(obj, bOut, bNext) {
	if (bOut) {
		$(obj).fadeOut(900, function() {
			//alert(gallery_count + " " + gallery_page);
			
			var newPage = (bNext) ? gallery_page + 1 : gallery_page - 1;
			loadGalleryPage(newPage, false);
			updateGalleryItems(obj, false, bNext);
		});		
	} else {
		$(obj).fadeIn(900);
	
	}
}
	
function removeGallerySelected() {
	$("#gallery-" + gallery_pos_id).removeClass("gallery-menu-item-on");		
	$("#gallery-" + gallery_pos_id + ' a .gallery-menu-icon').removeClass('gallery-menu-icon-on');
	
}

function addGallerySelected() {
	$("#gallery-" + gallery_pos_id).addClass("gallery-menu-item-on");		
	$("#gallery-" + gallery_pos_id + ' a .gallery-menu-icon').addClass('gallery-menu-icon-on');
}

function loadGallery(obj) {
	//$('.image-thumb-img, #gallery-thumb-list-menu').fadeOut();
		
	gallery_pos_id = obj.attr('id').split("-")[1];
	gallery_id = $("#gallery-list #gallery-" + gallery_pos_id + " .gallery-info").attr("id");
	
	$("#gallery-" + gallery_pos_id).removeClass("gallery-menu-item-hover");
	$("#gallery-" + gallery_pos_id).addClass("gallery-menu-item-on");		
	$("#gallery-" + gallery_pos_id + ' a .gallery-menu-icon').addClass('gallery-menu-icon-on');
//	$("#gallery-" + gallery_pos_id).addClass("gallery-menu-item-on");

	gallery_count = gallery_list_json[gallery_id - 1].count;
	gallery_page = 1;
	gallery_pages = parseInt(gallery_count / gallery_items_per_page) + ((gallery_count % gallery_items_per_page == 0) ? 0 : 1);
	
	if ( gallery_pages < 2 ) {
		$("#gallery-thumb-list-menu").fadeOut();
	} else {
			$("#gallery-thumb-list-menu").fadeIn();
	}
	
	loadGalleryPage(gallery_page, true);


	/*
	var url = site_url  + "/images/gallery/" + gallery_id + "/metadata.txt";
	
	$.ajax({
		url: url,
		success: ajaxGalleryMetaDataLoaded,
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(thrownError);
		},
		dataType: "text"
	});
	*/
}


function ajaxGalleryMetaDataLoaded(data) {

}

function loadGalleryPage(page, bUpdateFirstImage) {
	
	page = (page < 0) ? 0 : page;
	if ( page > gallery_pages ) {
		page = 1;
	} else if ( page < 1 ) {
		page = gallery_pages;
	}
	
	gallery_page = page;
	
	addGallerySelected();
	
	var offset = (gallery_page - 1) * gallery_items_per_page;
	
	for (var i = 1; i <= gallery_items_per_page; i++) {
	
		if ( i + offset <= gallery_count ) {
			$('#image-thumb-' + i + ' .image-thumb-img').attr('src', gallery_url + '/' + gallery_id + '/thumbs/gallery_thumb_' + gallery_id + '_' + (i + offset ) + '.jpg');
			$('#image-thumb-' + i + ' .image-thumb-img').removeClass('gallery-image-thumb-off');
			$('#image-thumb-' + i + ' .image-thumb-img').addClass('gallery-image-thumb-on');
			
		} else {
			$('#image-thumb-' + i + ' .image-thumb-img').attr('src', gallery_url + '/gallery_empty_thumb.png');
			$('#image-thumb-' + i + ' .image-thumb-img').removeClass('gallery-image-thumb-on');
			$('#image-thumb-' + i + ' .image-thumb-img').addClass('gallery-image-thumb-off');
		}
		
		//alert($('#image-thumb-' + i + ' .image-thumb-img').attr('src'));
	}
	
	if ( bUpdateFirstImage ) loadGalleryImage(1);


}

function loadGalleryImage(i) {
		$('#gallery-image-large img').attr('src', gallery_url + gallery_id + '/gallery_' + gallery_id + '_' + i + '.jpg');

}

function loadGalleryList() {

	var url = site_url  + "/data/galleries.js?" + (new Date()).getTime();
	
	$.ajax({
		url: url,
		success: ajaxGalleryListMetaDataLoaded,
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(thrownError);
		},
		dataType: "json"
	});
}

function ajaxGalleryListMetaDataLoaded(data) {
	gallery_menu_count = data.galleries.length;
	gallery_list_json = data.galleries;
	gallery_menu_page = 1;
	
	gallery_menu_pages = parseInt(gallery_menu_count / gallery_menu_items_per_page) + ((gallery_menu_count % gallery_menu_items_per_page == 0) ? 0 : 1);
	if ( gallery_menu_pages > 1 ) $("#gallery-list-menu").show();
	createGalleryListHtml();
	loadGallery($(".gallery-menu-item:first"));
}

function createGalleryListHtml() {	
	// what i need to do:
	// get first event-1 element from inside event-list
	// fill it in with the data... event-thumb img src, event-info event-title inner text, event-info event-descr inner text
	var gallery_item;
	
	var gallery_prefix = $("#gallery-list #gallery-1").attr("id").split("-")[0];
	
	var counter = 0;
	var menu_items = ( gallery_menu_count > gallery_menu_items_per_page ) ? gallery_menu_items_per_page : gallery_menu_count;
	
	for (var i = menu_items; i > 0; i-- ) {
		tmp_gallery_id = gallery_prefix + "-" + (i);
		if ( i > 1 ) {
			gallery_item = $("#gallery-list #gallery-1").clone();
			gallery_item.attr("id", tmp_gallery_id);
			$("#gallery-list #gallery-1").before(gallery_item.outerHTML());
		}
		
		if ( counter > gallery_menu_count - 1 ) break;
		
		var gallery = gallery_list_json[counter];
		var date = getDate(new Date(gallery_list_json[counter].date));
		$("#gallery-list #" + tmp_gallery_id + " .gallery-info .gallery-date").text(getDateStr(date, "long-view"));
		$("#gallery-list #" + tmp_gallery_id + " .gallery-info").attr("id", counter + 1);
		$("#gallery-list #" + tmp_gallery_id + " .gallery-info .gallery-title").text(gallery_list_json[counter].title);
		
		counter++;
	}
	
	gallery_id = menu_items;

	$("#gallery-" + gallery_id).removeClass("gallery-menu-item-hover");
	$("#gallery-" + gallery_id).addClass("gallery-menu-item-on");		
	$("#gallery-" + gallery_id + ' a .gallery-menu-icon').addClass('gallery-menu-icon-on');
	
	//alert($("#gallery-list").html());
}



function loadFeaturedEventDescr(dtStr) {
	var url = site_url  + "/data/events/event_" + dtStr + ".php";
	
	$.ajax({
		url: url,
		success: ajaxFeaturedEventDescrMetaDataLoaded,
		error:function (xhr, ajaxOptions, thrownError){
		},
		dataType: "text"
	});
}

function ajaxFeaturedEventDescrMetaDataLoaded(data) {
	$("#featured-event-info").html(data);
}



function loadEventList(obj) {
	event_id = obj.attr('id').split("-")[1];

	var url = site_url  + "/data/events.js?" + (new Date()).getTime();
	
	$.ajax({
		url: url,
		success: ajaxEventMetaDataLoaded,
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(thrownError);
		},
		dataType: "json"
	});
}

function ajaxEventMetaDataLoaded(data) {
	event_count = data.events.length;
	event_list_json = data.events;
	event_page = 1;
	
	event_pages = parseInt(event_count / event_items_per_page) + ((event_count % event_items_per_page == 0) ? 0 : 1);
	if ( event_pages > 1 ) $("#event-list-buttons").show();
	createEventListHtml();
	
	loadFeaturedEvent();
	loadUpcomingEvents();
}

function loadFeaturedEvent() {
	var events = event_list_json;
	var today = getDate(new Date());
	
	for (var i = 0; i < events.length; i++) {
		var date = getDate(new Date(events[i].date));
		var prev_date;	
				
		if ( events[i].featured == true ) {
			event_featured_id = i;
			break;
		}
		
		if ( today.toString() === date.toString() ) {
			event_featured_id = i;
			break;
		}
		
		if (i+1 < events.length) {
			 prev_date = getDate(new Date(events[i + 1].date));	
			
			if ( prev_date < today ) {
				event_featured_id = i;
				break;
			}
		}

	}
	
	var event = events[i];
	var dtStr = getDateStr(date, "file");
	
	$("#event-featured-image").attr("src", "images/flyers/flyer_" + dtStr + ".jpg");
	if ( event.show_description ) loadFeaturedEventDescr(dtStr);
}

function updateEventItems(obj, bOut, bNext) {
	//alert("test " + bOut + " " + bNext);
	if (bOut) {
		$(obj).fadeOut(900, function() {
		//	alert("test " + event_count + " " + event_page);
			
			var newPage = (bNext) ? event_page + 1 : event_page - 1;
			loadEventPage(newPage);
			updateEventItems(obj, false, bNext);
		});		
	} else {
		$(obj).fadeIn(900);
	
	}
}

function loadEventPage(page) {
	page = (page < 0) ? 0 : page;
	if ( page > event_pages ) {
		page = 1;
	} else if ( page < 1 ) {
		page = event_pages;
	}
		
	event_page = page;
//	alert("@@@@" + event_page + " " + event_pages);

	
	var offset = (event_page - 1) * event_items_per_page;
	
	var event_item;
	
	var event_prefix = $("#event-list #event-1").attr("id").split("-")[0];
	
	var counter = 0;
	removeEventSelected();
	
	for (var i = event_items_per_page; i > 0; i-- ) {
		tmp_event_id = event_prefix + "-" + (i);
		
	//	alert(counter + " " + offset + " " + event_count);
		if ( counter + offset < event_count ) {
			var date = getDate(new Date(event_list_json[counter + offset].date));
			$("#event-list #" + tmp_event_id + " .event-info .event-date").text(getDateStr(date, "long-view"));
			$("#event-list #" + tmp_event_id + " .event-info").attr("id", counter + offset);
			if (event_selected == counter + offset ) addEventSelected();
			$("#event-list #" + tmp_event_id + " .event-info .event-title").text(event_list_json[counter + offset].title);
			$("#event-list #" + tmp_event_id).removeClass('event-list-item-off');

		} else {
			$("#event-list #" + tmp_event_id + " .event-info .event-date").text("");
			$("#event-list #" + tmp_event_id + " .event-info").attr("id", "");
			$("#event-list #" + tmp_event_id + " .event-info .event-title").text("");
			$("#event-list #" + tmp_event_id).addClass('event-list-item-off');
		}
		
		counter++;
	}
	
	return;

}

function getDateStr(date, str) {
	var yr = date.getFullYear().toString().substr(2,2);
	var mn =  (date.getMonth() + 1).toString();
	if ( mn.length == 1 ) mn = 0 + mn;
	var dy =  date.getDate().toString();
	if ( dy.length == 1 ) dy = 0 + dy;
	
	switch (str) {
		case "file":
			return yr + "" + mn + "" + dy;
			break;
		case "view":
			return mn + "/" + dy + "/" + yr;
			break;
			case "long-view":
				var ordinal;

				switch (dy.substr(dy.length-1, 1).toString()) {
					case '1':
						ordinal = "st";
						break;
					case '2':
						ordinal = "nd";
						break;
					case '3':
						ordinal = "rd";
						break;
					default:
						ordinal = "th";
				}
				
				return arDays[date.getDay()] + " - " + arMonths[date.getMonth()] + " " + 
					date.getDate() + ordinal + ", " + date.getFullYear().toString();
				break;			
	}
	

}

function getDate(d1) {
	return new Date(d1.getFullYear(), d1.getMonth(), d1.getDate());
}


function removeEventSelected() {
		$("#event-" + event_id).removeClass("event-menu-item-on");		
		$("#event-" + event_id + ' a .event-menu-icon').removeClass('event-menu-icon-on');

	}

function addEventSelected() {
		event_selected = $("#event-" + event_id + " .event-info").attr("id");
		//alert(event_selected);
		$("#event-" + event_id).addClass("event-menu-item-on");		
		$("#event-" + event_id + ' a .event-menu-icon').addClass('event-menu-icon-on');

	}


function loadUpcomingEvents() {
	var events = event_list_json;
	var slots = event_upcoming_slot_count;
	var today = getDate(new Date());
	var date;
	var slot_pointer = 0;
	var current_pointer;
	var i;
	
	if ( events.length >= event_upcoming_slot_count ) {
		for (i = 0; i < events.length; i++) {
			date = getDate(new Date(events[i].date));
			
			if (date.getTime() >= today.getTime()) {
				current_pointer = i;
				continue;
			}
			
			slot_pointer = i;
			break;
		}
		
		if ( current_pointer && current_pointer >= event_upcoming_slot_count - 1) {
			slot_pointer = current_pointer;
		} else {
			if ( slot_pointer < event_upcoming_slot_count - 1) {
				slot_pointer = event_upcoming_slot_count - 1;
			}
		}	
		
	} else {
		slot_pointer = events.length - 1;
	}
	
	for ( i = 1; i <= event_upcoming_slot_count; i++ ) {
		date = getDate(new Date(events[slot_pointer--].date));
		
		$("#event" + i + " .event-upcoming-header").html(arDays[date.getDay()]);
		$("#event" + i + " img").attr("src", "images/flyers/flyer_" + getDateStr(date, "file") + ".jpg");
		$("#event" + i + " .event-upcoming-footer").html(getDateStr(date, "view"));
		
	}
	
}



function createEventListHtml() {	
	// what i need to do:
	// get first event-1 element from inside event-list
	// fill it in with the data... event-thumb img src, event-info event-title inner text, event-info event-descr inner text
	var event_item;
	
	var event_prefix = $("#event-list #event-1").attr("id").split("-")[0];
	
	var counter = 0;
	
	for (var i = event_items_per_page; i > 0; i-- ) {
		tmp_event_id = event_prefix + "-" + (i);
		if ( i > 1 ) {
			event_item = $("#event-list #event-1").clone();
			event_item.attr("id", tmp_event_id);
			$("#event-list #event-1").before(event_item.outerHTML());
			 
		}

		var event = event_list_json[counter];
		var date = getDate(new Date(event_list_json[counter].date));
		$("#event-list #" + tmp_event_id + " .event-info .event-date").text(getDateStr(date, "long-view"));
		$("#event-list #" + tmp_event_id + " .event-info").attr("id", counter);
		$("#event-list #" + tmp_event_id + " .event-info .event-title").text(event_list_json[counter].title);
		$("#event-list #" + tmp_event_id + " .event-info").attr("id", counter);
		
		counter++;
	}
	
	event_id = event_items_per_page;

	$("#event-" + event_id).removeClass("event-menu-item-hover");
	$("#event-" + event_id).addClass("event-menu-item-on");		
	$("#event-" + event_id + ' a .event-menu-icon').addClass('event-menu-icon-on');
	
	//alert($("#event-list").html());
}

function loadVideoList(obj) {
	video_id = obj.attr('id').split("-")[1];

	var url = site_url  + "/video/metadata.txt";
	
	$.ajax({
		url: url,
		success: ajaxVideoMetaDataLoaded,
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(thrownError);
		},
		dataType: "json"
	});
}

function ajaxVideoMetaDataLoaded(data) {
	video_count = data.videos.length;
	video_list_json = data.videos;
	video_page = 1;
	video_pages = parseInt(video_count / video_items_per_page) + ((video_count % video_items_per_page == 0) ? 0 : 1);
	
	createVideoListHtml();
	
	loadVideo(0);
}

function loadVideo(i) {
	if ( i < 0 ) {
		i = video_count - 1;
	} else if (i >= video_count ) {
		i = 0;
	}
	
	var video = video_list_json[i].video;
	var ar = video.split(".");
	var image = ar[0] + ".jpg";
		
	
	video_json.playlist[1].url = video_url + video;
	video_json.playlist[0].url = video_img_url + image;
//	alert(video_json.playlist[1].url);
//alert(JSON.stringify(video_json));

	//player = flowplayer("a.vplayer", "http://releases.flowplayer.org/swf/flowplayer-3.2.6.swf", video_json);
	setVideoPlayer(video_json, true);
}

function setVideoPlayer(json, bool) {	
		var flashvars = {};
			flashvars.src = json.playlist[1].url;
			flashvars.poster = json.playlist[0].url;
			if ( bool ) flashvars.javascriptCallbackFunction = 'onJavaScriptBridgeCreated';
		var params = {};
			params.movie = "StrobeMediaPlayback.swf";
			params.allowfullscreen = "true";
			params.allowscriptaccess = "always";
			params.bgcolor = "#000000";
		var attributes = {};
		
		// Embed the player SWF:
		
		swfobject.embedSWF
			( "StrobeMediaPlayback.swf" //swf file name
			, "vplayer" // targeted div
			, "576", "340" // width, height
			, "10.0.0" // Flash version
			, "expressInstall.swf" //location of expressinstall script
			, flashvars
			, params
			, attributes
			);	
		
			player = $("#vplayer");
	
}

function onJavaScriptBridgeCreated() {
	player = player = document.getElementById("vplayer");
	
	if ( player != undefined && player != null) {
		var state = player.getState();
	
		switch (state) {
			case "playing":
				if (jplayer_playing) $("#jquery_jplayer").jPlayer("pause");
				jplayer_playing = false;
				$("#jp_interface #jplayer_play img").attr("src", "images/buttons/player/play.png");
				break;
			
			case "paused":
				break;
		}

	}
	
}

function vPlayerPlaying() {
	alert("!!");
	
}

function createVideoListHtml() {

	var video_item;
	
	var video_prefix = $("#video-list #video-1").attr("id").split("-")[0];
	
	var counter = 0;
	
	for (var i = video_items_per_page; i > 0; i-- ) {
		video_id = video_prefix + "-" + (i);
		if ( i > 1 ) {
			video_item = $("#video-list #video-1").clone();
			video_item.attr("id", video_id);
			$("#video-list #video-1").before(video_item.outerHTML());
			 
		}
			
		var video = video_list_json[counter].video;
		var ar = video.split(".");
		var thumb = ar[0] + "_thumb" + ".jpg";
	
		$("#video-list #" + video_id + " .video-thumb img").attr('src', video_img_url + "/thumbs/" + thumb);
		$("#video-list #" + video_id + " .video-info .video-title").text(video_list_json[counter].title);
		$("#video-list #" + video_id + " .video-info .video-descr").text(video_list_json[counter].descr);
		$("#video-list #" + video_id + " .video-info").attr("id", counter);
		
		counter++;
	}
	
	video_id = video_items_per_page;

	$("#video-" + video_id).removeClass("video-menu-item-hover");
	$("#video-" + video_id).addClass("video-menu-item-on");		
	$("#video-" + video_id + ' a .video-menu-icon').addClass('video-menu-icon-on');
	
	//alert($("#video-list").html());

}






