/**
 * Global JS file
 * @author Richard Hallows
 */

/**
 * Javascript CSS namespace
 */
$('html').addClass('js');

/**
 * Outside of jQuery on Dom ready
 */
	/**
	 * SWF (overlay trigger via ajax call)
	 */	
	var flashvars = { };
	var params = { 
		bgcolor: 121212
	};
	swfobject.embedSWF("/assets/swfs/home.swf", "flash", "942", "386", "8.0.0", "/assets/swfs/expressinstall.swf", flashvars, params);
		
	/**
	 * SIFR
	 */
	var rockwell = {
		src: '/assets/fonts/rockwell.swf'
	};
	
	sIFR.activate(rockwell);
	
	//sIFR.debug.ratios({ src: '/assets/fonts/rockwell.swf', selector: 'h2' });
	
	sIFR.replace(rockwell, {	
		selector: 'h2.sifr',
		wmode: 'opaque',
		tuneHeight: '-5',
		offsetTop: '-1', 
		antiAliasType: 'advanced',
		thickness: -60,
		sharpness: 100,
		blendMode: 'layer', 
		css: ['.sIFR-root { background-color: #121212; color: #ffffff; font-size: 22px; font-weight: normal; }'], 
		ratios: [6, 1.41, 9, 1.35, 15, 1.29, 21, 1.25, 22, 1.22, 27, 1.24, 29, 1.21, 34, 1.22, 41, 1.21, 45, 1.2, 46, 1.21, 50, 1.2, 51, 1.21, 69, 1.2, 73, 1.19, 74, 1.2, 78, 1.19, 79, 1.2, 1.19]
	});
 
/**
 * jQuery on Dom ready functionality
 */
jQuery(function($) {	

	// init
		
		// filter
		
		// toggle all init
		var $toggleAll = $('<li><div class="toggle-all deselect">Deselect all</div></li>');	
		$('#fieldset-datamaterials ol, #fieldset-datatypes ol').append($toggleAll);
		$selectAllActual = $('.toggle-all');
		
		// expanded/collapsed init
		$('#fieldset-datamaterials, #fieldset-datatypes').each(function() {
			
			var cookieName = 'filterstate'+$(this).attr('id');
			
			if ($.cookie(cookieName) == "false" 
				|| ($.cookie(cookieName) === null
					&& cookieName == 'filterstatefieldset-datamaterials')) {	
				$(this).find('ol').hide('slow');
				$(this).find('legend').removeClass('open');
			} else {
				$(this).find('legend').addClass('open');
			}
		});
		

		// debug
		/*$.gridOverlay('/assets/images/resources/', {
			imgExt: "jpg",
			gridPos: "center top"
		});*/
	
	// events
		
		// thumbnail hover 
		$('.thumbnails li div a').hover(
			function() {
				$(this).parent().parent().find('p a').addClass('hover');
			}, 
			function() {
				$(this).parent().parent().find('p a').removeClass('hover');
			}	
		);
			
		// items filter
		$selectAllActual.click(function() {
			
			// get checkboxes
			$link = $(this);
			$fieldset = $link.parents('fieldset');
			$boxes = $fieldset.find("input[@type$='checkbox']");
			
			if ($(this).hasClass('deselect')) {
				$boxes.each(function() {
					this.checked = false;
					$link.removeClass('deselect').addClass('select').html('Select all');
				});		
			} else {
				$boxes.each(function() {
					this.checked = true;
					$link.removeClass('select').addClass('deselect').html('Deselect all');			
				});	
			}
		});
		
		$('#items legend').click(function() {
			$fieldset = $(this).parents('fieldset');
			$(this).parent().find('ol').toggle('fast');
			$(this).toggleClass('open');
			var cookieName = 'filterstate'+$fieldset.attr('id')
			$.cookie(cookieName, $(this).hasClass('open').toString());	
		});

		// overlay
		
		$('.thumbnails.items a').click(function (e) {
			
			if ($(window).height() > 591 && $(window).width() > 798) {

				e.preventDefault();
				var $link = $(this);
				$('<div id="overlay-content"><div id="overlay-content-flash"></div></div>').modal({
					opacity: 90,
					onClose: function (dialog) {
						$.modal.close()
					}
				});
				
				$("html").keydown(function(e){
					if (e.keyCode == 27) {
						$.modal.close();
					}
				});
				
				$.get("/item/overlay", function(data) {
				
					data = $.parseJSON(data);
					
					var flashvars = {
						bootstrapXml: '/assets/swfs/config.xml',
						gatewayUrl: data['gatewayUrl'],
						projectId: data['projectId'],
						types: data['types'],
						materials: data['materials'],
						itemId: $link.attr('rel'),
						pageId: $('body').attr('id')
					};
					
					var params = {
						allowfullscreen: true,
						bgcolor: 121212
					};
					
					var attributes = {};
					
					// workaround for ie caching issue
					if (jQuery.browser.msie) {
						var d = new Date();
						var queryString = "?id=" + d.getTime();
					} else {
						var queryString = "";
					}

					$('#overlay-content-flash').append('Flash required.  <a href="http://get.adobe.com/flashplayer/">Download here</a>');
					
					swfobject.embedSWF("/assets/swfs/Application.swf" + queryString, "overlay-content-flash", "798", "591", "9.0.0", "/assets/swfs/expressinstall.swf", flashvars, params, attributes);	
				}
				, null, 
				"json");
			}		
		});
});