// ============================================== //

		// TIMER FUNCTIONS //

// ============================================== //

jQuery.fn.extend({everyTime:function(interval,label,fn,times,belay){return this.each(function(){jQuery.timer.add(this,interval,label,fn,times,belay)})},oneTime:function(interval,label,fn){return this.each(function(){jQuery.timer.add(this,interval,label,fn,1)})},stopTime:function(label,fn){return this.each(function(){jQuery.timer.remove(this,label,fn)})}});jQuery.extend({timer:{guid:1,global:{},regex:/^([0-9]+)\s*(.*s)?$/,powers:{'ms':1,'cs':10,'ds':100,'s':1000,'das':10000,'hs':100000,'ks':1000000},timeParse:function(value){if(value==undefined||value==null)return null;var result=this.regex.exec(jQuery.trim(value.toString()));if(result[2]){var num=parseInt(result[1],10);var mult=this.powers[result[2]]||1;return num*mult}else{return value}},add:function(element,interval,label,fn,times,belay){var counter=0;if(jQuery.isFunction(label)){if(!times)times=fn;fn=label;label=interval}interval=jQuery.timer.timeParse(interval);if(typeof interval!='number'||isNaN(interval)||interval<=0)return;if(times&&times.constructor!=Number){belay=!!times;times=0}times=times||0;belay=belay||false;if(!element.$timers)element.$timers={};if(!element.$timers[label])element.$timers[label]={};fn.$timerID=fn.$timerID||this.guid++;var handler=function(){if(belay&&this.inProgress)return;this.inProgress=true;if((++counter>times&&times!==0)||fn.call(element,counter)===false)jQuery.timer.remove(element,label,fn);this.inProgress=false};handler.$timerID=fn.$timerID;if(!element.$timers[label][fn.$timerID])element.$timers[label][fn.$timerID]=window.setInterval(handler,interval);if(!this.global[label])this.global[label]=[];this.global[label].push(element)},remove:function(element,label,fn){var timers=element.$timers,ret;if(timers){if(!label){for(label in timers)this.remove(element,label,fn)}else if(timers[label]){if(fn){if(fn.$timerID){window.clearInterval(timers[label][fn.$timerID]);delete timers[label][fn.$timerID]}}else{for(var fn in timers[label]){window.clearInterval(timers[label][fn]);delete timers[label][fn]}}for(ret in timers[label])break;if(!ret){ret=null;delete timers[label]}}for(ret in timers)break;if(!ret)element.$timers=null}}}});if(jQuery.browser.msie)jQuery(window).one("unload",function(){var global=jQuery.timer.global;for(var label in global){var els=global[label],i=els.length;while(--i)jQuery.timer.remove(els[i],label)}});

(function($){ 
	
	// ============================================== //

		// MOVIE FUNCTIONS //

	// ============================================== //

	$.fn.initialiseMovie = function (){
		qtWriteHtml = function(mov_path) {
			var qtHTML = "";
			qtHTML = QT_GenerateOBJECTText_XHTML(mov_path , '320', '195', '');
			return qtHTML;
			//
		};
		//
		var movPath = $('#movie_player a').attr('href');
		//
		$('#movie_player').prepend('<div id="movie_overlay"><a href="'+movPath+'">Click to play movie<\/a><\/div>');
		//
		$('#movie_overlay').css({
			display:	'block',
			opacity:	0
		});
		//
		$('#movie_overlay a').hover(function() {
			$(this).parent().parent().parent().find('#movie_player a img').css({border: '1px solid #b1341f'});
			$(this).parent().animate({opacity: 0.99}, 150);
		}, function() {
			$(this).parent().parent().parent().find('#movie_player a img').css({border: '1px solid #333'});
			$(this).parent().animate({opacity: 0}, 250);
		}).bind('click', function(){
			$('#movie_player').css({
				width: 320,
				height:195,
				border:'1px solid #333'
			}).html(qtWriteHtml(movPath));
			return false;							   
		});
	}; 
	
	
	// ============================================== //

		// MOVIE FUNCTIONS //

	// ============================================== //

	$.fn.initialiseQuotes = function (){
		
		var speed = 6000;
		var quoteTotal = $('#box_frame_inner p').length;
		var quoteItem = 0;
		
		$("#box_frame_inner p:not(:first)").animate({ opacity: 0 }, 0.001);
		
		startTimer = function(){
			$('#box_frame_inner').oneTime(speed, function() {
				$('#box_frame_inner p').eq(quoteItem).animate({ opacity: 0 }, 500, advanceQuote);
			});
		};
		
		advanceQuote= function(){
			$('#box_frame_inner p').eq(quoteItem).hide();
			if(quoteItem<(quoteTotal-1)){
				quoteItem++;
			}else{
				quoteItem=0;
			};
			$('#box_frame_inner p').eq(quoteItem).show().animate({ opacity: 1 }, 500, startTimer);																	
		};
		
		startTimer();

	};
	
	// ============================================== //

		// HEAD QUOTE FADE //

	// ============================================== //

	$.fn.initHeadQuote = function (){
		$('#illy_quote_a').animate({ opacity: 0 }, 0.001, function(){
			$(this).css('display', 'block');								   
		});
		
		$('#illy_quote_b').animate({ opacity: 0 }, 0.001, function(){
			$(this).css('display', 'block');								   
		});
		
		$('#quote_link_a').hover(function () {
    		$('#illy_quote_a').stop().animate({ opacity: 1 }, 200);
 		}, function () {
			$('#illy_quote_a').stop().animate({ opacity: 0 }, 300);
  		});
		
		$('#quote_link_b').hover(function () {
    		$('#illy_quote_b').stop().animate({ opacity: 1 }, 200);
 		}, function () {
			$('#illy_quote_b').stop().animate({ opacity: 0 }, 300);
  		});
	};
	
})(jQuery);

//
$(document).ready(function(){
	//$('#movie_player').html(qtWriteHtml("movies/joe_wilby_comfort_bilingual.mov"));
	if ($('#movie_player').length) {
		$('#movie_player').initialiseMovie();
	};
	//
	if ($('#box_frame_inner p').length>1) {
		$('#box_frame_inner').initialiseQuotes();
	};
	//
	if($('#illy_quote_a').length){
		$('#illy_quote_a').initHeadQuote();
	};
	
});
