/*
# Copyright (c) 2009 Logimake, Inc.
# Orignially distributed by bugzappy at http://www.bugzappy.com/
# Bugzappy's "cyclicFade" jquery plugin Please post questions and comments at: http://www.bugzappy.com/ or send email to:	bugzappy@logimake.com
*/

// create closure
(function($) {
  // plugin definition
	$.fn.cyclicFade = function(options)
	{
		if (typeof(options) == 'string') {
			if (options=='stop') {
				$(this).stop(true);
				return this.each(function() {
					$(this).data('cyclic-fade').enabled = false;
				});
			}
			else return null;
		}
		else {
			var opts = $.extend({}, $.fn.cyclicFade.defaults, options);
			return this.each(function() {
				$(this).data('cyclic-fade', {enabled : true});
				$.fn.cyclicFade.doCycle(this,1,opts.repeat,opts.params,0);
			});
		}
	};
	
	$.fn.cyclicFade.defaults = {
		repeat: 0,
		params: [{fadeout:100, stayout:300, opout:0, fadein:100, stayin:300, opin:1.0}]
	};
	
	// this function is used internally
	$.fn.cyclicFade.doCycle = function(obj,start,finish,paramsList,paramsPos) {
		if (paramsPos >= paramsList.length) {
			paramsPos = 0;
		}
		// important: params must be a local variable (var) otherwise it gets overwritten by other
		// calls to doCycle
		var params = paramsList[paramsPos];
		if ($(obj).data('cyclic-fade').enabled) $(obj).fadeTo(params.fadeout, params.opout, function() {
			if ($(obj).data('cyclic-fade').enabled) setTimeout(function() {
				if ($(obj).data('cyclic-fade').enabled) $(obj).fadeTo(params.fadein, params.opin, function() {
					if ($(obj).data('cyclic-fade').enabled) setTimeout(function(){
						if(start!=finish) {
							// increment start only if it is bounded
							if (start<finish) {
								start++;
							}
							$.fn.cyclicFade.doCycle(obj,start,finish,paramsList,paramsPos+1);
						}
					}, params.stayin)
				})
			}, params.stayout)
		});	
	};
	
})(jQuery);  
  
$().ready(function() {

	function init() {
		$('#content').jScrollPane({scrollbarWidth:1, scrollbarMargin:10});
		Cufon.replace('h1',{hover:true});
	};
		
	init();
	
	$('.ajaxify').ajaxify({
		success: function(data, textStatus) {
			var options = this;
	    if (options.replace) {
	   		jQuery(options.update).html(data);
	    	init();
	    } else {
	      jQuery(options.update).append(data);
	    	init();
	  	}
	  }
	});
	
	$('#accordion').accordion({
  	active: false,
   	collapsible: true,
    alwaysOpen: false,        
  	fillSpace: true,
  	autoHeight: true,
  	animated: 'bounceslide'
	}).bind("accordionchange", function(event, something, ui) {
		$('.ui-accordion-content-active').jScrollPane({scrollbarWidth:1, scrollbarMargin:10});
	});


	$("#accordion h3 a").cyclicFade({
		repeat: 2,
		params: [
	   	  {fadeout:200, stayout:400, opout:0, fadein:100, stayin:100, opin:0.5},
			  {fadeout:300, stayout:300, opout:0, fadein:300, stayin:200, opin:0.75},
			  {fadeout:400, stayout:200, opout:0, fadein:400, stayin:200, opin:1.0}
	  ]
	});

});
