	
	
	view_ajax = function(jq_el, param) {
		if (jq_el.is('.busy')) return;
		//if (jq_el.is('.loaded')) {
		//	jq_el.toggle();
		//} else
		jq_el.toggleClass('busy').prepend("<img class='wait' src='../shared/img/wait16.gif' style='float:left' />");
		jq_el.load('?view_ajax='+param, {}, function(){
			if ($(this).is(':visible'))	$(this).fadeOut(0).fadeIn('slow');
			$(this).find("img.wait:first").hide();
			$(this).toggleClass('busy');
			$(this).toggleClass('loaded');
			load_scripts($(this));
		});
	}
	view_ajax_direct = function(jq_el) {
		if (jq_el.attr('value') == undefined) {
			view_ajax(jq_el, jq_el.text());
		}
		else
			view_ajax(jq_el, jq_el.attr('value'));
	}
	
	//  stuff
	busybutton = function(button, url, dest, funct) {
		if (button.is('.busy')) return;
		button.toggleClass('busy').find('img').toggleClass('busy');
		dest.load(url, function() {
			dest.fadeIn('slow');
			button.toggleClass('busy').find('img').toggleClass('busy');
			if (! (funct == undefined))
				funct();
		});
	};
	
	// AJAX action
	// Syntax: <div class='icon ... action_ajax' value='url' dir='[view_ajax_
	action_ajax = function(jqel, url, callback414) {
		if (jqel.hasClass('busy')) return;
		jqel.toggleClass('busy').toggleClass('a');
		$.get(url, {}, function(data, status){
			if (data.length > 0)
				alert('Operation may have failed. Message:\n'+data);
			jqel.toggleClass('busy').toggleClass('a');
			callback414();
		});
	};
	
	$(document).ready(function() {
		$('html').append("<div id='hover_ajax' style='display:none'><div class='content'></div></div>");
	});
	
	load_scripts = function(el) {
		
		custom_scripts(el);
		
		// Ajax content to load directly
		$('.view_ajax_direct', el).each(function() { view_ajax_direct($(this)); });
		
		// AJAX switch
		switch_ajax = function(jqel) {
			if (jqel.hasClass('busy')) return;
			jqel.toggleClass('busy');
			params = jqel.attr('value');
			jqel.load('?call_func_exit=db_doSwitch&'+params, {}, function(data) {
				if (data.length > 2) alert(data);
				jqel.empty().toggleClass('busy').toggleClass('on');
			});
		};
		$('.switch_ajax:not(.busy):not(.confirm)', el).click(function(){switch_ajax($(this))});
		$('.switch_ajax:not(.busy).confirm', el).click(function() {
			if (confirm("Confirm action '"+$(this).attr('value')+"'")) switch_ajax($(this));
		});
		$('.switch_ajax.check', el).each(function(){
			$(this).toggleClass('busy');
			params = $(this).attr('value');
			$.ajax({
				url: '?call_func_exit=db__getSwitch&'+params,
				context: $(this),
				success: function(data) {
					$(this).toggleClass('busy');
					if (data == '1') $(this).toggleClass('on');
			}});
		});
		
		
		
		// Hover ajax (hover triggers load)
		$('.hover_ajax', el).next().hide().addClass('hover_content');
		$('.hover_ajax', el).hover(
			function(e) {
				_left = e.pageX+16;
				_top = e.pageY;
				$(this).next().css({left:_left, top:_top}).show().fadeIn('slow');
				if (!$(this).hasClass('busy'))
					view_ajax($(this).next(), $(this).attr('value'));
			}, function(e) {
				$('.hover_ajax').next().hide();
			}
		);
		
		// Hover click (click triggers load)
		$('div.hover_click_ajax', el).next().hide().addClass('hover_content');
		$('div.hover_click_ajax', el).click(function(e){
			if ($(this).is('.busy')) return;
			if ($(this).is('.loaded')) {
				if ($(this).is('.cross')) $(this).removeClass('cross').next().hide();
				else $(this).addClass('cross').next().fadeIn('slow');
				$(this).toggleClass('bw');
				return;
			}
			$(this).addClass('busy').removeClass('bw');
			$(this).next().load('?view_ajax='+$(this).attr('value'), {}, function(data, status){
				pos = $(this).prev().position();
				$(this).css({left:pos.left+16, top:pos.top}).fadeIn('slow');
				load_scripts($(this));
				$(this).prev().removeClass('busy').addClass('loaded').addClass('cross').empty();
			});
		});
		
		// Hover HTML (displays already loaded HTML content)
		$('.hover_html', el).hover(
			function(e) {
				$('#hover_ajax > div.content').html($(this).html());
				_left = $(this).position().left + 10; //e.pageX+5;
				_top = $(this).position().top - 6; //e.pageY-20;
				$('#hover_ajax').css({left:_left, top:_top}).fadeIn('fast');
			}, function(e) {
				$('#hover_ajax > div.content').empty();
				$('#hover_ajax').hide();
			}
		);
		
	};
	