var LazyLoader = function($) {
	$.lazy({ src: '/javascripts/jquery.jclock.js',
		name: 'jclock', cache: true });
	$.lazy({ src: '/javascripts/nop.js',
		dependencies: { js: ['/javascripts/jquery-ui.js'] },
		name: 'draggable', cache: true });
	$.lazy({ src: '/javascripts/ui/ui.tabs.js',
		dependencies: { js: ['/javascripts/jquery-ui.js'] },
		name: 'tabs', cache: true });
	$.lazy({ src: '/javascripts/ui/ui.sortable.js',
		dependencies: { js: ['/javascripts/jquery-ui.js'] },
		name: 'sortable', cache: true });
	$.lazy({ src: '/javascripts/ui/ui.resizable.js',
		dependencies: { js: ['/javascripts/jquery-ui.js'] },
		name: 'resizable', cache: true });
	$.lazy({ src: '/javascripts/ui/ui.dialog.js',
		dependencies: { js: ['/javascripts/jquery-ui.js'] },
		name: 'dialog', cache: true });
	$.lazy({ src: '/javascripts/jquery/ui/ui.accordion.js',
		dependencies: { js: ['/javascripts/jquery-ui.js'] },
		name: 'accordion', cache: true });
	$.lazy({ src: '/javascripts/jquery.jeditable.js',
		name: 'editable', cache: true });
};
LazyLoader(jQuery);

// TODO use jquery.cookies.js (http://code.google.com/p/cookies/)
function readCookie(name) {
	var nameEQ = name + "=",
		ca = document.cookie.split(';');

	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}

	return null;
}
function renderState() {
	this.states = String(readCookie('state')).split('+');
	this.is = function(stateName) {
		var result = false;
		$.each(renderState.states, function(index, state) {
			if (state != stateName) return true;

			result = true;
			return false;
		});
		return result;
	};
	return this;
};
function rewriteByState(callback) {
	if(!jQuery.rewriteByStateCallbacks) {
		jQuery.rewriteByStateCallbacks = [];
		jQuery(function() {
			if($('head ._vizardDependency').length > 0) return;
			jQuery.each(jQuery.rewriteByStateCallbacks, function() { this.call(document, renderState.call(renderState)); });
		});
	}
	jQuery.rewriteByStateCallbacks.push(callback);
};
rewriteByState(function(state) {
	if(!state.is('authenticated')) return;
	$('.requiresAuth').each(function() { $(this).show(); });
});

if ( window.console ) {
	window.p = function(message) { return console.log(message); };
} else {
	window.p = function(message) { return message; };
}

jQuery(function(){

  // fixes line appearing near image links
  $('a > img:only-child').parent().css({'text-decoration': 'none'});

  //display solistenensemble
  $('.prependtop20 ul > li > a').each(function(i) {
    if($(this).attr('href') == '/was/module/solistenensemble.de' && ($(location).attr('href').indexOf('/chor.de') > -1 || $(location).attr('href').indexOf('/solistenensemble.de') > -1)) {
      $(this).addClass('calendar');
    }else if($(location).attr('href').indexOf('/solistenensemble.de') > -1 && $(this).attr('href') == '/was/module/solistenensemble.de'){
      $(this).addClass('calendar active');
    }else if($(this).attr('href') == '/was/module/solistenensemble.de'){
      $(this).remove();
    }
  });


  $('.prependtop20 ul > li > a').each(function(i) {
    if($(this).attr('href') == '/was/module/musik-mobil-kalender.de' && ($(location).attr('href').indexOf('/musik-mobil.de') > -1 || $(location).attr('href').indexOf('/musik-mobil-kalender.de') > -1)) {
      $(this).addClass('calendar');
		}else if($(location).attr('href').indexOf('/musik-mobil-kalender.de') > -1 && $(this).attr('href') == '/musik-mobil-kalender.de'){
      $(this).addClass('calendar active');
		}else if($(this).attr('href') == '/was/module/musik-mobil-kalender.de'){
      $(this).remove();
		}
  });

});
