var init_functions = [];

$(document).ready(function(){
	
	if(window.init)
	{
		init();
	}

	if($.fn.slideMenu)
	{
		$('ul.slidemenu,ul.slidemenu_vertical').slideMenu({
			activateDelay: 0,
			showDelay: 0,
			hideDelay: 0,
			offsetX: 0,
			offsetY: 0,
			easing: 'easeOutQuad',
			onAnimate: function(show){show ? jQuery(this).fadeIn(100) : jQuery(this).fadeOut(100)}
		})
	}

	if($.fn.disableTextSelect) $('#content p').disableTextSelect();
	if($.fn.noContext) $('img').noContext();
});

function init(context)
{
	if(!context) context = null;
	lang = $('body').attr('lang');
	
	if($.fn.fixPNG)
	{
		$('img[src$=png],:image[src$=png], .png',context).each(function(){
			$(this).fixPNG();
		});
	}
	
	$('a.player',context).each(function(){
		var pid = $(this).attr('id');
		flowplayer(pid,{
			src: LIB_DIR + '/flowplayer/flowplayer.swf',
			wmode: 'opaque'
		},{
			clip:{
				autoPlay: false,
				autoBuffering: false
			}
		});
	})
	
	$('.flash',context).each(function(){
		var f = $(this);
		var fp = {}; var fv = {};
		parse_str(f.attr('data-flashparams'),fp);
		parse_str(f.attr('data-flashvars'),fv);
		fp.flashvars = fv;
		fp.src = f.attr('data-flash');
		fp.width = f.width();
		fp.height = f.height();
		f.flash(fp,{expressInstall: true});
	})

	$('a.openimage',context).zoomimage({
		easing: 'easeOutQuad',
		centered: true,
		duration: 200,
		hideSource: true,
		caption: true,
		controls: false
	});

	$(".tip[title]",context).qtip({style: 'cream'});
	
	$('.tabs',context).tabs();

	$('a.ajax',context).click(function(){
		var target_id = '#' + $(this).attr('data-ajaxtarget');
		var href = $(this).attr('href');
		if(href == '#') href = '';
		var file = $(this).attr('data-ajaxurl');
		if(href) file += 'url=' + escape(href);
		var callback = $(this).attr('data-ajaxcallback');
		$.drawLoading();
		var target = $(target_id);
		target.load(file,function(){
			$.removeLoading();
			if(window.init) init(this);
			if(callback)
			{
				var fn = new Function("term", "return " + callback + "(term);");
				fn(this);
			}
		});
		return false;
	})

	$('*[class*=openform]',context).click(function(){
		var name = $(this).text();
		var cls = $(this).attr('class');
		var id = ( preg = /openform([a-zA-Z0-9_]+)/.exec(cls) ) ? preg[1] : '';
		var file = $(this).attr('data-file');
		var params = $(this).attr('data-openformparams');
		if(!file) file = MODULE_DIR + '/Form/Form_modal.php?lang=' + lang + '&id=' + id;
		if(params) file += '&' + params;
		$.drawLoading();
		var d = $('<div title="' + name + '"></div>');
		d.load(file,function(){
			$.removeLoading();
			$(this).dialog({
				width: 500,
				open: function(){
					if(window.init) init(d);
					$(this).find(':input:visible:first').focus();
				}
			});
		});
		return false;
	})

	$('*[class*=open],*[class*=close],*[class*=toggle]',context).click(function(){
		var aclasses = $(this).attr('class').split(' ');
		for(i in aclasses)
		{
			if(preg = /^open([\w_]+)$/.exec(aclasses[i]))
			{
				var obj = $('#' + preg[1]);
				if(!obj.size()) return true;
				obj.show();
			}
			else if(preg = /^close([\w_]+)$/.exec(aclasses[i]))
			{
				var obj = $('#' + preg[1]);
				if(!obj.size()) return true;
				obj.hide();
			}
			else if(preg = /^toggle([\w_]+)$/.exec(aclasses[i]))
			{
				var obj = $('#' + preg[1]);
				if(!obj.size()) return true;
				obj.toggle();
			}
		}
		var result = $(this).is(':input');
		if(!result) $(this).blur();
		return result;
	})

	$('a.emailimg',context).mouseover(function(){
		var email = $(this).find('img').attr('src').replace(/^.+\?u=/g,'').replace(/&d=/g,'@');
		$(this).attr('href','mailto:' + email);
		return false;
	})
	
	$('.submit,.confirm').click(function(){
		var obj = $(this);
		var href = obj.is('a') ? obj.attr('href') : false;
		var text = obj.attr('title');
		open_dialog_box(text,function(cont){
			if(href) self.location.href = href;
			else obj.get(0).form.submit();
		});
		return false;
	});

	for(i in init_functions)
	{
		if(init_functions[i]) init_functions[i](context);
	}
}
