/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// alert('LAODING FLRT_API');
var FLRT_API = ( function() {
	
	var defaultDelay	= 0.0;
	var defaultDuration	= 0.15;
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: addEvent() /////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function api_addEvent(element, ev, handler)  {
		var doHandler = function(e) {
			return handler(e||window.event);
		}
		if (element.addEventListener) { 
			element.addEventListener(ev, doHandler, false); 
		} else if (element.attachEvent) { 
			element.attachEvent("on" + ev, doHandler); 
		}
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// DEEPLINKING //////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	var init_string			= new String(document.location);
	var init_search			= "#/";
	var init_search_result	= init_string.search(init_search); // if "#/" does not exist, will return -1
	var _request_url		= "";
	var _request_url_id		= null;
	function init_DeepLink(param_1, param_2) {
		var param_1 = (param_1 == null) ? null : param_1; // default link
		var param_2 = (param_2 == null) ? null : param_2; // 
		if(init_search_result != -1) {	
			init_start_result = init_string.slice( (init_string.search(init_search) + init_search.length ) ); // slice the URL string at the first instance of the '#/'
			url_parts = init_start_result.split('/');
			_request_url = "";
			if(url_parts.length > 0) {
				for(var i=0, j=(url_parts.length); i<j; i++) {
					_request_url += url_parts[i];
					if(i == 0) {
						url_search = url_parts[i].split(':');
						_request_url_param = url_search[0]; // "id"
						_request_url_id = url_search[1];	// id passed
					}
					if(i < (url_parts.length-1)) {
						_request_url += "/";
					}
				}
			}
		} else {
			_request_url = param_1;
		}
		// alert(_request_url);
		return _request_url;
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: init_BkgdImg() /////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Create an image, using 'param_1' as the source, and once loaded, fade out the 'body_fog' element in the layout
	function init_BkgdImg(param_1, param_2) {
		var img = new Image();
		var param_1 = (param_1 == null) ? null : param_1; // image source
		var param_2 = (param_2 == null) ? null : param_2; // if request Page is a Category
		
		if( param_1) {
			$(img).css({'id':'background_img', 'display' : 'none'});
			$(img).attr({'src' : param_1})
			.bind("load", function() { 
				$('#body_background').append(this);
				$(this).bkgdImage({
					overflow:			'auto',
					position:			'absolute',
					zIndex:				-10,
					align_Vertical:		'top',
					align_Horizontal:	'left',
					image_min_height: 	'70.0em',
					image_min_width: 	'100.0em'
				});
				$(this).fadeIn(1500, function() {
					if(param_2 == true) {
						$('#body_content_fog').fadeIn(0, function() {	});
					}
					$('#body_fog').fadeOut(650, function() {	});
				});
			})
			.error(function () {
				$('#body_fog').fadeOut(650, function() {
					
				});
			});
			
			// IE HACKS
			if ($.browser.msie) {
				$(img).css({'height':'100%', 'width':'100%'});
				if( parseInt($.browser.version) < 8) {
					
				}
			}
			
		} else {
			$('#body_fog').fadeOut(650, function() {
				
			});
		}
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: init_ScrollerVertical() ////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function init_ScrollerVertical(param_1) {
		var param_1 = (param_1 == null) ? "content_scroller" : param_1; // element id
		var scrollbarMargin_val = 10;
		if(param_1 == 'biography_scroller') {
			var scrollbarMargin_val = 10;
		}
		
		if( $('#'+param_1) ) {
			$('#'+param_1).jScrollPane({
				scrollbarWidth: '20',
				scrollbarMargin: scrollbarMargin_val,
				dragMinHeight: '40',
				dragMaxHeight: '40'
			});
			$('.jScrollPaneDrag').mousedown( function(event) {
				$('.jScrollPaneDrag').css({"background-position":"0.0em -4.0em"});
			});
			$('body').mouseup( function(event) {
				$('.jScrollPaneDrag').css({"background-position":"0 0"});
			});
		}
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: init_ScrollerHorizontal() //////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function init_ScrollerHorizontal(param_1) {
		var param_1 = (param_1 == null) ? null : param_1;
		if( $("#horizontal_scroller") ) {
			$("#horizontal_scroller").smoothDivScroll( {
				scrollingSpeed: 8,
				mouseDownSpeedBooster: 3,
				autoScroll: null,			// "onstart"
				autoScrollDirection: null,	// "endlessloop"
				autoScrollSpeed: null,		// 2
				visibleHotSpots: "onstart",
				hotSpotsVisibleTime: 9,
				startAtElementId: "startAtMe"
			});
		}
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: slideshow_LoadLayer() //////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	var press_display = false;
	function press_LoadLayer(param1) {
		var param1 = (param1 == null) ? null : param1;
			slide_showing = param1;
		if(press_display == false) {
			press_display = true;
			$('div#load_layer_fog').css({"display":"block"});
			$('div#load_layer').css({"display":"block"});
			$('div#load_layer div#load_layer_data').append( $('#'+param1) );
			$('#'+param1).css({"display":"block"});
		} else {
			press_display = false;
			$('#'+param1).css({"display":"none"});
			$('div#load_layer').append( $('#'+param1) );
			$('div#load_layer div#load_layer_data').html("");
			$('div#load_layer').css({"display":"none"});
			$('div#load_layer_fog').css({"display":"none"});
		}
		
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: map_LoadLayer() ////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* used on Pages that include the quick tag for either NY or LA maps */
	var map_display = false;
	function map_LoadLayer(param_1) {
		var param_1 = (param_1 == null) ? null : param_1;
			map_showing = param_1;
			slide_showing = param_1;
		if(map_display == false) {
			map_display = true;
			$('div#load_layer_fog').css({"display":"block"});
			$('div#load_layer').css({"display":"block"});
			$('div#load_layer div#load_layer_data').append( $('#'+param_1) );
			$('#'+param_1).css({"display":"block"});
			
		} else {
			map_display = false;
			$('#'+param_1).css({"display":"none"});
			$('div#load_layer').append( $('#'+param_1) );
			$('div#load_layer div#load_layer_data').html("");
			$('div#load_layer').css({"display":"none"});
			$('div#load_layer_fog').css({"display":"none"});
		}
		
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: slideshow_LoadLayer() //////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	slide_display = false;
	slide_auto_play = false;
	function close_LoadLayer() {
		if(slide_display == true && slide_auto_play == true) {
			slide_play = setTimeout("slide_player()", slide_timer);
		}
		$('#'+slide_showing).css({"display":"none"});
		$('div#load_layer').append( $('#'+slide_showing) );
		$('div#load_layer div#load_layer_data').html("");
		$('div#load_layer').css({"display":"none"});
		$('div#load_layer_fog').css({"display":"none"});
		slide_display = false;
		press_display = false;
		map_display = false;
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: init_BiographyLinkState() //////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	var biography_display = false;
	var biography_time	  = 100;
	function init_BiographyLinkState() {
		if( $('.biography_link') ) {
			$('.biography_link').click( function(event) {
				event.preventDefault();
				if(biography_display == false ) {
					$('div#biography_content').fadeIn(biography_time, function() {
						biography_display = true;
						$('.nav_side').css({'display' : 'none'});
						init_ScrollerVertical('biography_scroller');
					});
				} else {
					$('div#biography_content').fadeOut(biography_time, function() {
						biography_display = false;
						$('.nav_side').css({'display' : 'block'});
					});
				}
			}); // close click()
		}
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// FUNCTION: INIT() /////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	function api_init() {
	//	init_DeepLink();
	}
	
	
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// RETURN FUNCTIONS /////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
	return {
		addEvent 				: api_addEvent,
		init_DeepLink			: init_DeepLink,
		init_BkgdImg			: init_BkgdImg,
		init_ScrollerVertical	: init_ScrollerVertical,
		init_ScrollerHorizontal	: init_ScrollerHorizontal,
		init_BiographyLinkState	: init_BiographyLinkState,
		press_LoadLayer 		: press_LoadLayer,
		map_LoadLayer			: map_LoadLayer,
		close_LoadLayer 		: close_LoadLayer,
		api_init 				: api_init
	};
	
	
})();

// INITIALIZE THE API SCRIPTS
FLRT_API.addEvent(window, "load", FLRT_API.api_init);

