// Global settings
var global_settings = [];
global_settings['headers'] = 'on';
global_settings['header_xml'] = '';
global_settings['easing_updown'] = 'easeOutBack';
global_settings['easing_prevnext'] = 'jswing';
global_settings['speed_updown'] = 1000;
global_settings['speed_prevnext'] = 1000;
global_settings['current_header_nr'] = 1;
global_settings['previous_header_nr'] = 0;
global_settings['current_header_pos_width'] = 0;
global_settings['current_header_pos_height'] = 0;
global_settings['content_down_pos'] = 529;
global_settings['content_up_pos'] = 299;
global_settings['header_amount'] = 1;
global_settings['active_item_width'] = 2450;
global_settings['active_item_height'] = 529;
global_settings['case_btn_src'] = './gfx/btn_bekijk_case.png';
global_settings['case_btn_width'] = 215;
global_settings['case_btn_height'] = 48;
global_settings['case_btn_top_up'] = 157;
global_settings['case_btn_top_down'] = 370;
global_settings['content_pos'] = 'up';

// Init
$(function(){

	/**
	 * Setup
	 */
	
	if (typeof(header_pos) != 'undefined') {

		global_settings['content_pos'] = header_pos;
	}

	if (typeof(header_subject_id) != 'undefined') {
		
		global_settings['header_xml'] = 'data/xml/headers.php?hsid='+header_subject_id;
	
		// Run
		main_settings = set_up_main ();
		
		// Re-setup by window resize
		$(window).bind('resize', function() {
			
			// Renew main settings
			main_settings = set_up_main ();
			
			// Set new header pos
			set_current_header_pos_width ();
		});
		
		/**
		 * Header - Content UP/DOWN
		 */
		
		// Down
		$('#btn_content_down').click (function (){
			
			// Case
			$('div#container').stop().animate({'top':global_settings['content_down_pos']+'px'}, global_settings['speed_updown'], global_settings['easing_updown']);
			$('img#btn_content_up').fadeIn();
			$('img#btn_content_down').fadeOut();
			
			// Elements
			$('.header_item_small_btn').stop().animate({'top':global_settings['case_btn_top_down']+'px'}, global_settings['speed_updown'], global_settings['easing_updown']);
			
			// Content pos
			global_settings['content_pos'] = 'down';
			
			// Set case element
			set_case_el ();
		});
		
		// Up
		$('#btn_content_up').click (function (){
			
			// Case
			$('div#container').stop().animate({'top':global_settings['content_up_pos']+'px'}, global_settings['speed_updown'], global_settings['easing_updown']);
			$('img#btn_content_up').fadeOut();
			$('img#btn_content_down').fadeIn();
			
			// Elements
			$('.header_item_small').stop().fadeOut('fast');
			$('.header_item_small_btn').stop().animate({'top':global_settings['case_btn_top_up']+'px'}, global_settings['speed_updown'], global_settings['easing_updown']);
	
			// Content pos
			global_settings['content_pos'] = 'up';
		});
		
		/**
		 * Header - PREV/NEXT
		 */	
	
		// Previous
		$('#btn_header_prev').click (function (){
			
			if (global_settings['current_header_nr'] > 1) {
				
				// New case settings
				global_settings['previous_header_nr'] = global_settings['current_header_nr'];
				global_settings['current_header_nr']--;
				global_settings['current_header_pos_height'] += parseInt(global_settings['active_item_height']);
				
				// New case
				$('div#header_items').stop().animate({'marginTop':global_settings['current_header_pos_height']+'px'}, global_settings['speed_prevnext'], global_settings['easing_prevnext']);
				
				// Set case element
				set_case_el ();
				
				// Set prev/next button pos
				set_prevnext_btn_pos();
			}	
		});
		
		// Next
		$('#btn_header_next').click (function (){
			
			if (global_settings['current_header_nr'] < global_settings['header_amount']) {
				
				// New case settings
				global_settings['previous_header_nr'] = global_settings['current_header_nr'];
				global_settings['current_header_nr']++;
				global_settings['current_header_pos_height'] -= parseInt(global_settings['active_item_height']);
				
				// New case
				$('div#header_items').stop().animate({'marginTop':global_settings['current_header_pos_height']+'px'}, global_settings['speed_prevnext'], global_settings['easing_prevnext']);
				
				// Set case element
				set_case_el ();
				
				// Set prev/next button pos
				set_prevnext_btn_pos();
			}
		});
		
		/**
		 * Headers
		 */
		
		// Turn on loader
		$('img#header_loader').fadeIn('fast');
		
		// Read headers XML
		$.ajax({
			
			type: 'GET',
			url: global_settings['header_xml'],
			dataType: 'xml',
			success: function(xml) {
				
				// Expected header count
				global_settings['header_amount'] = $(xml).find('header').length;
				var header_counter = 0;
				var header_handled_counter = 0;
				
				// Go through every header
				$(xml).find('header').each(function(){
					
					header_counter++;
					
					// Set header values
					var id = $(this).find('id').text();
					var src = $(this).find('src').text();
					var width = $(this).find('width').text();
					var height = $(this).find('height').text();
					var type = $(this).find('type').text();
					var src_small = $(this).find('src_small').text();
					var width_small = $(this).find('width_small').text();
					var height_small = $(this).find('height_small').text();
					var case_url = $(this).find('case_url').text();
					
					// Set active item width
					global_settings['active_item_width'] = width;
					global_settings['active_item_height'] = height;
					
					// Set current header pos
					if (header_counter == global_settings['current_header_nr']) {
						
						set_current_header_pos_width ();
					}
					
					// Create graphic object container
					var header_item_html = '';
					header_item_html += '<div id="header_item_'+id+'" class="header_item"></div>';
					$('#header_items').append(header_item_html);
					
					// Case elements
					var header_item_small_html = '';
					header_item_small_html += '<div id="header_item_small_'+id+'" class="header_item_small"></div>';
					header_item_small_html += '<div id="header_item_small_btn_'+id+'" class="header_item_small_btn"><a id="header_item_small_btn_link_'+id+'" href="'+case_url+'"></a></div>';
					$('#header_wrapper').append(header_item_small_html);
					
					// Load case elements
					$('#header_item_small_'+id).gfx_object(src_small, width_small, height_small, 'image', function(){});
					
					if (case_url != '') {
						
						$('#header_item_small_btn_link_'+id).gfx_object(global_settings['case_btn_src'], global_settings['case_btn_width'], global_settings['case_btn_height'], 'image', function(){});
					}
					
					// Load graphic object into container
					$('#header_item_'+id).gfx_object(src, width, height, type, function(){
	
						header_handled_counter++;
	
						// At the end
						if (header_handled_counter == 1) {
							
							// Turn off loader
							$('img#header_loader').fadeOut('fast');
							
							// Set case element
							set_case_el ();
							
							// Set prev/next button pos
							set_prevnext_btn_pos();
						}
					});		
				});
				
				if (header_counter > 1) {
					
					$('#header_next_prev_btn_con').fadeIn('fast');
				}
			}
		});
	}
});

// Set up main settings
function set_up_main () {
	
	// Settings
	var settings = [];
	settings['window_width'] = $('#header').width();
	
	// Content pos
	if (global_settings['content_pos'] == 'down') {
		
		// Case
		$('div#container').css('top',global_settings['content_down_pos']+'px');
		$('img#btn_content_up').css('display','block');
		$('img#btn_content_down').css('display','none');
		
	} else {
		
		// Case
		$('div#container').css('top',global_settings['content_up_pos']+'px');
		$('img#btn_content_up').css('display','none');
		$('img#btn_content_down').css('display','block');
	}
	
	return settings;
}

// Set current header pos
function set_current_header_pos_width () {
	
	global_settings['current_header_pos_width'] = parseInt(0-((global_settings['active_item_width'] - main_settings['window_width']) / 2));
	$('div#header_items').css('marginLeft',global_settings['current_header_pos_width']+'px');
}

// Set case elements
function set_case_el () {

	// Set top position of the case button dependent on content pos
	if (global_settings['content_pos'] == 'down') {
		
		$('.header_item_small_btn').css('top',global_settings['case_btn_top_down']+'px');	
		
	} else {
		
		$('.header_item_small_btn').css('top',global_settings['case_btn_top_up']+'px');		
	}
	
	// Change previous elements
	if (global_settings['previous_header_nr'] > 0) {
		
		$('#header_item_small_'+global_settings['previous_header_nr']).fadeOut('fase');
		$('#header_item_small_btn_'+global_settings['previous_header_nr']).fadeOut(1);
	}
	
	// Change current elements
	if (global_settings['content_pos'] == 'down') {
		
		$('#header_item_small_'+global_settings['current_header_nr']).fadeIn('fase');
	}
	
	$('#header_item_small_btn_'+global_settings['current_header_nr']).fadeIn(1);
}

// Bounce buttons
setInterval ( 'bounce_updown_btn()', 4000 );
setInterval ( 'bounce_prevnext_btn()', 6000 );

function bounce_updown_btn () {
	
	$('div#content_up_down_btn_con').stop().animate({'top':'-30px'}, 200, 'jswing');
	$('div#content_up_down_btn_con').animate({'top':'-20px'}, 400, 'easeOutBounce');
}

function bounce_prevnext_btn () {
	
	$('div#header_next_prev_btn_con').stop().animate({'top':'-65px'}, 1200, 'easeInElastic');
	$('div#header_next_prev_btn_con').animate({'top':'-58px'}, 1400, 'easeOutElastic');
}

// Set Gfx Object
$.fn.gfx_object = function(src, width, height, type, f){
	
	// Image object
	if (type == 'image') {
		
		return this.each(function(){
			
			var i = new Image(width, height);
			i.src = src;
			i.onload = f;
			$(this).html(i);
		});
		
	// Swf object
	} else if (type == 'flash') {

		return this.each(function(){
			
			// Determine browser
			var useragent = navigator.userAgent.toLowerCase();
			var browser = useragent.indexOf('msie 6') > 0 || useragent.indexOf('msie 7') > 0 ? false : true;		
			
			if (!browser) {
				
				// Object
				var obj = '<embed src="' + src + '" width="' + width + '" height="' + height + '"></embed>';
				
				// Add new content
				$(this).innerHTML = obj;
	
			} else {
				
				// Object
				var obj = document.createElement('object');
				obj.setAttribute('type', 'application/x-shockwave-flash');
				obj.setAttribute('wmode', 'transparent');
				obj.setAttribute('width', width);
				obj.setAttribute('height', height);
				obj.setAttribute('data', src);
				
				// Param
				var param_a = document.createElement('param');
				param_a.setAttribute('name', 'movie');
				param_a.setAttribute('value', src);
				obj.appendChild(param_a);			
				
				// Embed
				var embed = document.createElement('embed');
				embed.setAttribute('width', width);
				embed.setAttribute('height', height);
				embed.setAttribute('type', 'application/x-shockwave-flash');
				embed.setAttribute('src', src);
				obj.appendChild(embed);
				
				// Add new content
				$(this).html(obj);
			}
		});
	}
}

// Set prev/next button pos
function set_prevnext_btn_pos () {
	
	if (global_settings['current_header_nr'] == 1) {
		
		$('#btn_header_prev').css('background-position','0 27px');
		
	} else {

		$('#btn_header_prev').css('background-position','0 0');
	}
	
	if (global_settings['current_header_nr'] == global_settings['header_amount']) {
		
		$('#btn_header_next').css('background-position','0 27px');
		
	} else {
		
		$('#btn_header_next').css('background-position','0 0');
	}
}
