var basehref = $('base').attr('href');

var fancySettings = {
	'hideOnContentClick': true,
	'cyclic'		:	true,
	'margin'		:	20,
	'centerOnScroll':	true,
	'overlayOpacity':	0.8,
	'overlayColor'	:	'#b4b0af',
	'speedIn'		:	600, 
	'speedOut'		:	200, 
	'overlayShow'	:	true,
	
	'titleShow'		: false,		// Toggle title
	'titlePosition'	: 'over'	// The position of title. Can be set to 'outside', 'inside' or 'over'

}

var numClass = function(count){
	//return count >= 10 ? 'double' : 'single';
}

// init & start
$(function() {
	
	// media config
	//$.fn.media.defaults.flvPlayer = 'gui/swf/flvplayer.swf';
	//$.fn.media.defaults.params = { wmode: 'transparent' };
	//$.fn.media.mapFormat('mpg', 'winmedia');
	
	// override default plugin settings
	$.fn.media.defaults.flvPlayer = 'gui/swf/anarchy_media/flvplayer3.swf';//flowplayer-3.2.2.swf';//flvplayer.swf';
	$.fn.media.defaults.params = { wmode: 'transparent' };
	$.fn.media.mapFormat('mpg', 'winmedia');

	// fancybox
	$('a.enlarge').fancybox(fancySettings);
	
	// fancybox content
	fancyboxContent('a.fancycontent');
	
	// gallery cycle
	addCycle('#placeholder .folder.images.image',false,true);
	
	// products cycle
	sideProducts();
	
	// PIR font replacement
	if(!$('body.homepage').length){ // not on home
		doPir('h2',"GillSansStd-Light.otf",false);
	}
	
	// prep "order"links
	$('a.orderlink').appendTo('#tabs ul.sectionsmenu').wrap('<li/>');
	
	// dynamic tabs
	tabinit('#tabs','ul.sectionsmenu li a');
	
	// load flv movies
	loadMovies( $('div.media.type_flv') );
	
	// menu hover style
	$('li > ul').hover(function(){
		$(this).parent().addClass('hover');
	},function(){
		$(this).parent().removeClass('hover');
	});
	
});

function sideProducts(){
	
	var loop = function(){

			timeout = setTimeout(function(){
			
				animateSide();
			
			},2000);
			

		}
		
	if( $('#side .boxcontent').length > 2 ){
		
		var timeout;
		
		loop();
		
		$('#side').hover(
		  function () {
			clearTimeout(timeout);
			$('#side .boxcontent').stop(false,false);
		  }, 
		  function () {
			animateSide();
		  }
		);
		
		function animateSide(){
			
			$('#side .boxcontent:first')
			.css({'position':'relative','z-index':1,'margin-top': '0px'})
			.animate({'margin-top': '-255px'},3000,"linear", function() {
				// Animation complete.
				$(this)
				.appendTo( $('#side') )
				.css({'margin-top': '0px'});
				
				loop();
			});
		}
		
		
		
	}
}

function doPir(elem,font,wrap){
	
	var disp = $(elem).css('display');
	var doPir = true;
	
	if( $(elem).parent('div.boxcontent').parent('.containerxhr').length ){
		if(disp == 'none'){
			doPir = false;
		}
	}
	
	if(doPir){
		$(elem).pir({
			'php':			basehref+"pir/",
			'font':			font, 
			'wrap':			wrap
			//casing:		'uppercase',
			//'prettyPrint':	true
		});
	}
}

function fancyboxContent(anchorclass){
			
	var fancyContentSettings = fancySettings;
	fancyContentSettings['height'] = 'auto';
	fancyContentSettings['titleShow'] = false;
	fancyContentSettings['hideOnContentClick'] = false;
	fancyContentSettings['autoDimensions'] = false;
	fancyContentSettings['width'] = 640;
	fancyContentSettings['height'] = 370;
	fancyContentSettings['onComplete'] = function(){	
		
		doPir('#fancybox-inner h2',"GillSansStd-Light.otf",true);
		if( $('form',$('#fancybox-inner')).length ){
			$.fancybox.resize();
		}
		dobind();
			
	};
	$(anchorclass).attr('href',function(){
		return $(this).attr('href').replace(controller + '/','xhr/')
	}).fancybox(fancySettings);
	
	function dobind(){
		
		// bind form using 'ajaxForm' 
		$('form',$('#fancybox-inner')).ajaxForm({ 
			target:        '#fancybox-inner',   // target element(s) to be updated with server response 
			success:       function(){
				doPir('#fancybox-inner h2',"GillSansStd-Light.otf",true);
				$.fancybox.resize();
				dobind();
				
			}  // post-submit callback 
		}); 
	}
}

function tabinit(tabs,links){
	
	// redirect if landed on tabbed page
	var currenturl = window.location.href;
	if( $(tabs+' '+links + '[href="'+ currenturl +'"]').length ){
	
		var tab = $(tabs+' '+links + '[href="'+ currenturl +'"]');
		
		window.location = basehref + controller + '/' + tab.attr('rel') + '.html#' + tab.attr('title');
	}
	currenturl = currenturl+'.html';
	if( $(tabs+' '+links + '[href="'+ currenturl +'"]').length ){
	
		var tab = $(tabs+' '+links + '[href="'+ currenturl +'"]');
		
		window.location = basehref + controller + '/' + tab.attr('rel') + '.html#' + tab.attr('title');
	}
	
	// dynamic tabs
	$(tabs+' '+links).attr('href',function(){
		
		var href = $(this).attr('href');

		if( stristr(href,'order/product',true) ){
			// doe niks; ga naar url...
			$(this).addClass('bluetab');
			return $(this).attr('href');
		} else {
			if( stristr(href,'http:',true) ){
				return $(this).attr('href').replace(controller + '/','xhr/');
			} else {
				return $(this).attr('href').replace(pageuri,'');
			}
		}
	});
	
	$(tabs).tabs({
		select: function(event, ui) {
		
			var url = $.data(ui.tab, 'load.tabs');
			
			// doe niks; ga naar url...
			if( stristr(url,'order/product',true) ){
				location.href = url + '#naw';
				return false;
			}
			return true;
		},
		load: function(event, ui) {
			
			// track page
			if (typeof _gaq != 'undefined'){
				//_gaq.push(['_trackPageview','/'+controller+'/'+ui.tab.title+'.html']);
				_gaq.push(
					['_setAccount', account_a],
					['_trackPageview','/'+controller+'/'+ui.tab.title+'.html'],
					['b._setAccount', account_b],
					['b._trackPageview','/'+controller+'/'+ui.tab.title+'.html']
				);
			}
			
			// fancybox
			$('a.enlarge',$(ui.panel)).fancybox(fancySettings);
			
			// PIR font replacement
			doPir($('h2',$(ui.panel)),"GillSansStd-Light.otf",false);
			
			// load movies
			loadMovies( $('div.media.type_flv',$(ui.panel)) );
		}
	});
}


function loadMovie(elem,autoplay,thumb){
	
	wc('load movie '+ $(elem).attr('id') + (autoplay ? ' autoplay' : ' preview') );
	
	var into =  $('p:first',$(elem));
	
	var dimensions = thumb ? thumb : '600x380';
	var iSeekpoint = '0.1';
	var controlHeight = 18;//18;
	var srcanchor = $('a:first',into);
	var src = $(srcanchor).attr('href');
	
	$('embed',elem).remove();
	$('object',elem).remove();
	$('div:first',elem).remove();
	
	var aDimensions = dimensions.split('x');

	if( $('a:first',into).attr('class') ){
		
		var classes = $('a:first',into).attr('class').split(' ');
		
		for (var i = 0; i < classes.length; i++){
			
			var theSclass = classes[i];
			
			if( !thumb && stristr(theSclass,'dimensions_',true) ){
				
				aDimensions = theSclass.replace('dimensions_','').split('x');
				
				if(!aDimensions[1]){
					aDimensions = dimensions.split('x');
				} 
			} 
			
			if( stristr(theSclass,'seekpoint_',true) ){
				iSeekpoint = theSclass.replace('seekpoint_','');
			} 
		}
		
		//wc(aDimensions);
	}
	
	$(into).media({ 
		width:     aDimensions[0], 
		height:    ((aDimensions[1]/1) +controlHeight), 
		autoplay:  autoplay, 
		src:      src,
		bgColor:	'#111111', // background color 
		flashvars:{
			'seekpoint':iSeekpoint,
			'video':src,
			'autoplay':autoplay,
			'autoStart':autoplay
		},
		params:	{
			'z-index':1,
			'wmode':'transparent',
			'controller':false,
			'ShowControls':false,
			'ShowStatusBar':true,
			'ShowDisplay':true,
			'windowlessVideo':true,
			'uiMode':'none',
			'autoStart':autoplay
		},
		attrs:	{
			'scale':'aspect',
			'class':'movie',
			'z-index':1,
			'wmode':'transparent',
			'controller':false,
			'ShowControls':false,
			'ShowStatusBar':true,
			'ShowDisplay':true,
			'windowlessVideo':true,
			'uiMode':'none',
			'autoStart':autoplay
		},
		caption:   false // supress caption text 
	});
	
	$(elem)
	.addClass(function(){
		
		return autoplay ? 'playing' : 'thumb';
	})
	.addClass('vidloaded')
	.prepend( 
		$(srcanchor)
		.parent()
		.css({
			'position':'absolute',
			'left':'-4000px'
		}) 
	);
	
	return false;
}

function loadMovies(elem){
	
	var thumbsize = '120x80';
	
	function showMovie(id,holder,autoplay){
		
		wc('showmovie: '+id);
		
		$('.playing').each(function(){
			
			$(this).removeClass('playing');
			
			//loadMovie($(this),false,thumbsize);
		});
		
		
		$('.video#'+id,$(holder))
		.each(function(){
			
			var hasthumb = $(this).parent('a.moviethumb').length;
			
			if(hasthumb){
				$(this).unwrap();
			}
			
			if(autoplay){
				loadMovie($(this),true);
			} else {
				loadMovie($(this),false);
			}
			
		});
		
		$('.video:not("#'+id+')',$(holder))
		.each(function(){
			
			var id = $(this).attr('id');
			var hasthumb = $(this).parent('a.moviethumb').length;
			
			if(hasthumb){
			
				wc('has thumb: '+id);
			
			} else {
				
				wc('no thumb: '+id);
				
				$(this)
				.wrap(function() {
					return $('<a/>')
					.addClass('moviethumb')
					.mousedown(function(){
						showMovie(id,holder,true);
						return false;
					});
				});
				
				loadMovie($(this),false,thumbsize);
				
				//$('#'+id).parent('a').appendTo(holder);
			}
			
			//	$(this).parent('a').appendTo(holder);
			
		});
		
		wc('prepend to holder: '+id);
		$('#'+id).prependTo(holder);
		
		return false;
	}
	
	$('.folder.group.video.normal').each(function(){
		if( $('.video',$(this)).length > 1 ){
			
			showMovie($('.video:first',$(this)).attr('id'),$(this),false);
			 
		} else {
			
			$(elem,$(this)).each(function(){
				loadMovie( $(this),false);
			});

		}
	});
	
	$(elem).not('.vidloaded').each(function(){
		loadMovie($(this),false);
	});
}

function addCycle(holder,showdescription,pager){
	
	var first = true;
	
		if( $(holder).length && $('a',holder).length ){

		var enlargeH = $('<span/>')
		.addClass('slidenav')
		.addClass('enlargeBtn')
		.append( 
			$('<a/>') 
		).click(function(){
			if( $('a',holder).length > 1 ){
				$(".actslide").trigger('click');
			} else {
				$('a:first',holder).trigger('click');
			}
		});
		
		if( $('a',holder).length > 1 ){
		
			var prevH = $('<span/>')
			.addClass('slidenav')
			.addClass('prevBtn')
			.append( 
				$('<a/>') 
			);
			
			var nextH = $('<span/>')
			.addClass('slidenav')
			.addClass('nextBtn')
			.append( 
				$('<a/>') 
			);
			
			var pauzeH = $('<span/>')
			.addClass('slidenav')
			.addClass('pauzeBtn')
			.append( 
				$('<a/>') 
			)
			.toggle(function() {
				$(holder).cycle('pause'); 
				$(this).addClass('active');
			}, function() {
				$(holder).cycle('resume',true); 
				$(this).removeClass('active');
			});
			
			var title  = $('a:first',holder).attr('title');
			var output = showdescription ? $('<p/>').addClass('description').html(title) : '';
			var pagernav = pager ? $('<div/>').attr('id','slidenav') : '';
			
			$(holder)
			.css({'margin':'0px','padding':'0px','with':'auto'});
			
			var count = $('a',holder).length;
				
			var wrapper = $('<div/>')
			.addClass('easyslideWrapper');
			
			var imgholder = $(holder)
			.addClass('easyslideHolder')
			.wrap( wrapper );
			
			$(imgholder)
			.after(enlargeH)
			.after(nextH)
			.after(pauzeH)
			.after(prevH)
			.after(pagernav)
			.after(output)
			.cycle({ 
				fx:			'fade', 
				pager:		pagernav ? '#slidenav' : false,
				pause:		false,
				pauseOnPagerHover:true,
				delay:		-2500,
				timeout:	6000,
				next:		'.nextBtn', 
				prev:		'.prevBtn',
				after:		onAfter,
				before:		onBefore 
			});
		
		} else {
			
			$(holder)
			.append(enlargeH);
			
		}
	}
	
	function onBefore() { 
		
		title  = $(this).attr('title');
		
		var prevc = $(this).prevAll('a').length;
		var nextc = (prevc + 2);
		
		prevc = (prevc == 0) ? count : prevc;
		nextc = (nextc > count) ? 1 : nextc;
		
		$('a',prevH)
		.html(Math.abs(prevc))
		.removeClass('double')
		.addClass(function(){
			return numClass(prevc);
		});
		
		$('a',nextH)
		.html(Math.abs(nextc))
		.removeClass('double')
		.addClass(function(){
			return numClass(nextc);
		});
		
		if(!first && showdescription){
		
			output
			.fadeOut('fast',function(){
			
				output
				.html(title) 
				.fadeIn('slow',function(){}); 
				
			});
			
		} else {
		
			$(prevH).addClass('active');
			$(nextH).addClass('active');
			
			first = false;
		}
		
		//$(this).removeClass('actslide');
		$('a',holder).removeClass('actslide');
	} 
	
	function onAfter() { 
	
		$(this).addClass('actslide');
		
	}
	
}

function stristr (haystack, needle, bool) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfxied by: Onno Marsman
    // *     example 1: stristr('Kevin van Zonneveld', 'Van');
    // *     returns 1: 'van Zonneveld'
    // *     example 2: stristr('Kevin van Zonneveld', 'VAN', true);
    // *     returns 2: 'Kevin '
    var pos = 0;

    haystack += '';
    pos = haystack.toLowerCase().indexOf((needle + '').toLowerCase());
    if (pos == -1) {
        return false;
    } else {
        if (bool) {
            //return haystack.substr(0, pos);
            return true;
        } else {
            return haystack.slice(pos);
        }
    }
}

function wc()
{
	if(window.console)
	{
		for(var i = 0; i < arguments.length; i++)
		{
			window.console.log(arguments[i]);
		}
	}
}
