function init_forum() {
	if (!$("#forum").length)
		return;
		
	/**
	* bbCode control by subBlue design [ www.subBlue.com ]
	* Includes unixsafe colour palette selector by SHS`
	*/
	
	// Startup variables
	var imageTag = false;
	var theSelection = false;
	
	// Check for Browser & Platform for PC & IE specific bits
	// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
	var clientPC = navigator.userAgent.toLowerCase(); // Get client info
	var clientVer = parseInt(navigator.appVersion); // Get browser version
	
	var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1));
	var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1));
	
	var baseHeight;
	//onload_functions.push('initInsertions()');
	
	/**
	* Shows the help messages in the helpline window
	*/
	function helpline(help)
	{
		document.forms[form_name].helpbox.value = help_line[help];
	}
	
	/**
	* Fix a bug involving the TextRange object. From
	* http://www.frostjedi.com/terra/scripts/demo/caretBug.html
	*/ 
	function initInsertions() 
	{
		var doc;
	
		if ($("#forum #" + form_name).length)
		{
			doc = document;
		}
		else if (opener)
		{
			doc = opener.document;
		}
		else
		{
			return;
		}
	
		var textarea = doc.forms[form_name].elements[text_name];
	
	/*	if (is_ie && typeof(baseHeight) != 'number')
		{
			textarea.focus();
			baseHeight = doc.selection.createRange().duplicate().boundingHeight;
	
			if (!document.forms[form_name])
			{
				document.body.focus();
			}
		}
	*/
	}
	
	/**
	* bbstyle
	*/
	function bbstyle(bbnumber)
	{	
		if (bbnumber != -1)
		{
			bbfontstyle(bbtags[Number(bbnumber)], bbtags[Number(bbnumber)+1]);
		} 
		else 
		{
			insert_text('[*]');
			document.forms[form_name].elements[text_name].focus();
		}
	}
	
	/**
	* Apply bbcodes
	*/
	function bbfontstyle(bbopen, bbclose)
	{
		theSelection = false;
		
		var textarea = document.forms[form_name].elements[text_name];
	
		textarea.focus();
	
		if ((clientVer >= 4) && is_ie && is_win)
		{
			// Get text selection
			theSelection = document.selection.createRange().text;
	
			if (theSelection)
			{
				// Add tags around selection
				document.selection.createRange().text = bbopen + theSelection + bbclose;
				document.forms[form_name].elements[text_name].focus();
				theSelection = '';
				return;
			}
		}
		else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0))
		{
			mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);
			document.forms[form_name].elements[text_name].focus();
			theSelection = '';
			return;
		}
		
		//The new position for the cursor after adding the bbcode
		var caret_pos = getCaretPosition(textarea).start;
		var new_pos = caret_pos + bbopen.length;		
	
		// Open tag
		insert_text(bbopen + bbclose);
	
		// Center the cursor when we don't have a selection
		// Gecko and proper browsers
		if (!isNaN(textarea.selectionStart))
		{
			textarea.selectionStart = new_pos;
			textarea.selectionEnd = new_pos;
		}	
		// IE
		else if (document.selection)
		{
			var range = textarea.createTextRange(); 
			range.move("character", new_pos); 
			range.select();
			storeCaret(textarea);
		}
	
		textarea.focus();
		return;
	}
	
	/**
	* Insert text at position
	*/
	function insert_text(text, spaces, popup)
	{
		var textarea;
		
		if (!popup) 
		{
			textarea = document.forms[form_name].elements[text_name];
		} 
		else 
		{
			textarea = opener.document.forms[form_name].elements[text_name];
		}
		if (spaces) 
		{
			text = ' ' + text + ' ';
		}
		
		if (!isNaN(textarea.selectionStart))
		{
			var sel_start = textarea.selectionStart;
			var sel_end = textarea.selectionEnd;
	
			mozWrap(textarea, text, '')
			textarea.selectionStart = sel_start + text.length;
			textarea.selectionEnd = sel_end + text.length;
		}
		else if (textarea.createTextRange && textarea.caretPos)
		{
			if (baseHeight != textarea.caretPos.boundingHeight) 
			{
				textarea.focus();
				storeCaret(textarea);
			}
	
			var caret_pos = textarea.caretPos;
			caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
		}
		else
		{
			textarea.value = textarea.value + text;
		}
		if (!popup) 
		{
			textarea.focus();
		}
	}
	
	/**
	* Add inline attachment at position
	*/
	function attach_inline(index, filename)
	{
		insert_text('[attachment=' + index + ']' + filename + '[/attachment]');
		document.forms[form_name].elements[text_name].focus();
	}
	
	/**
	* Add quote text to message
	*/
	function addquote(post_id, username)
	{
		var message_name = 'message_' + post_id;
		var theSelection = '';
		var divarea = false;
	
		if (document.all)
		{
			divarea = document.all[message_name];
		}
		else
		{
			divarea = document.getElementById(message_name);
		}
	
		// Get text selection - not only the post content :(
		if (window.getSelection)
		{
			theSelection = window.getSelection().toString();
		}
		else if (document.getSelection)
		{
			theSelection = document.getSelection();
		}
		else if (document.selection)
		{
			theSelection = document.selection.createRange().text;
		}
	
		if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null)
		{
			if (divarea.innerHTML)
			{
				theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');
				theSelection = theSelection.replace(/<br\/>/ig, '\n');
				theSelection = theSelection.replace(/&lt\;/ig, '<');
				theSelection = theSelection.replace(/&gt\;/ig, '>');
				theSelection = theSelection.replace(/&amp\;/ig, '&');
				theSelection = theSelection.replace(/&nbsp\;/ig, ' ');
			}
			else if (document.all)
			{
				theSelection = divarea.innerText;
			}
			else if (divarea.textContent)
			{
				theSelection = divarea.textContent;
			}
			else if (divarea.firstChild.nodeValue)
			{
				theSelection = divarea.firstChild.nodeValue;
			}
		}
	
		if (theSelection)
		{
			insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
		}
	
		return;
	}
	
	/**
	* From http://www.massless.org/mozedit/
	*/
	function mozWrap(txtarea, open, close)
	{
		var selLength = txtarea.textLength;
		var selStart = txtarea.selectionStart;
		var selEnd = txtarea.selectionEnd;
		var scrollTop = txtarea.scrollTop;
	
		if (selEnd == 1 || selEnd == 2) 
		{
			selEnd = selLength;
		}
	
		var s1 = (txtarea.value).substring(0,selStart);
		var s2 = (txtarea.value).substring(selStart, selEnd)
		var s3 = (txtarea.value).substring(selEnd, selLength);
	
		txtarea.value = s1 + open + s2 + close + s3;
		txtarea.selectionStart = selEnd + open.length + close.length;
		txtarea.selectionEnd = txtarea.selectionStart;
		txtarea.focus();
		txtarea.scrollTop = scrollTop;
	
		return;
	}
	
	/**
	* Insert at Caret position. Code from
	* http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
	*/
	function storeCaret(textEl)
	{
		if (textEl.createTextRange)
		{
			textEl.caretPos = document.selection.createRange().duplicate();
		}
	}
	
	/**
	* Color pallette
	*/
	function colorPalette(dir, width, height)
	{
		var r = 0, g = 0, b = 0;
		var numberList = new Array(6);
		var color = '';
	
		numberList[0] = '00';
		numberList[1] = '40';
		numberList[2] = '80';
		numberList[3] = 'BF';
		numberList[4] = 'FF';
	
		document.writeln('<table cellspacing="1" cellpadding="0" border="0">');
	
		for (r = 0; r < 5; r++)
		{
			if (dir == 'h')
			{
				document.writeln('<tr>');
			}
	
			for (g = 0; g < 5; g++)
			{
				if (dir == 'v')
				{
					document.writeln('<tr>');
				}
				
				for (b = 0; b < 5; b++)
				{
					color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);
					document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');
					document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');
					document.writeln('</td>');
				}
	
				if (dir == 'v')
				{
					document.writeln('</tr>');
				}
			}
	
			if (dir == 'h')
			{
				document.writeln('</tr>');
			}
		}
		document.writeln('</table>');
	}
	
	
	/**
	* Caret Position object
	*/
	function caretPosition()
	{
		var start = null;
		var end = null;
	}
	
	
	/**
	* Get the caret position in an textarea
	*/
	function getCaretPosition(txtarea)
	{
		var caretPos = new caretPosition();
		
		// simple Gecko/Opera way
		if(txtarea.selectionStart || txtarea.selectionStart == 0)
		{
			caretPos.start = txtarea.selectionStart;
			caretPos.end = txtarea.selectionEnd;
		}
		// dirty and slow IE way
		else if(document.selection)
		{
		
			// get current selection
			var range = document.selection.createRange();
	
			// a new selection of the whole textarea
			var range_all = document.body.createTextRange();
			range_all.moveToElementText(txtarea);
			
			// calculate selection start point by moving beginning of range_all to beginning of range
			var sel_start;
			for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
			{		
				range_all.moveStart('character', 1);
			}
		
			txtarea.sel_start = sel_start;
		
			// we ignore the end value for IE, this is already dirty enough and we don't need it
			caretPos.start = txtarea.sel_start;
			caretPos.end = txtarea.sel_start;			
		}
	
		return caretPos;
	}
	
	function init_form () {
		initInsertions();
	}
	
	function init_reply_form() {
		form_name = 'reply_form_small';
		text_name = 'ADATA[MESSAGE]';
		$("#forum #form-comment-add input[TYPE=hidden]").attr("disabled", "disabled");
		$("#forum #form-comment-add #comment_ac, #forum #form-comment-add #comment_section, #forum #form-comment-add #comment_cat_tag").removeAttr("disabled");
		init_form();
	}
		
	var form_name = 'create_topics_form';
	var text_name = 'ADATA[MESSAGE]';
	var load_draft = false;
	var upload = false;

	// Define the bbCode tags
	var bbcode = new Array();
	var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]');
	var imageTag = false;

	// Helpline messages
	var help_line = {
		b: 'Bold: [b]text[/b]',
		i: 'Italic: [i]text[/i]',
		u: 'Underlined: [u]text[/u]',
		q: 'Quote: [quote]text[/quote]',
		c: 'Code: [code]code[/code]',
		l: 'List: [list]text[/list]',
		o: 'Numbered list: [list=]text[/list]',
		p: 'Insert image: [img]http://image_url[/img]',
		w: 'Insert hyperlink: [url]http://url[/url] or [url=http://url]URL text[/url]',
		a: 'Insert attachment: [attachment=]filename.ext[/attachment]',
		s: 'Font color: [color=red]text[/color] You can also use this construction: color=#FF0000',
		f: 'Font size: [size=85]small text[/size]',
		e: 'List: add an element',
		d: 'Flash: [flash=width,height]http://url[/flash]'
			}

	var panels = new Array('');
	var show_panel = '';

	$("#forum .create_topic").click(function(){
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").hide();
		$("#forum .new-topic-cancel").show();
		$("#forum #form_topics").insertAfter('#forum #forum_cat_list_end');
		$("#forum #form_topics").show();
		form_name = 'create_topics_form';
		text_name = 'DATA[MESSAGE]';
		init_form();
		$("#forum #form_topics #PICT1").attr("name","DATA[PICT1]");
		location.href = '#NEWTOPIC';
		return 1;
	});
	$("#forum .forum_subscribe").click(function(){
		if (confirm($(this).attr("rel") + ' "' + $(this).attr("title") + '"?')) {
			$("#forum #forum_subscribe_form #subscribe_topic_id").attr("value", $(this).attr("href"));
			$("#forum #forum_subscribe_form #subscribe_message").attr("value", 1);
			$("#forum #forum_subscribe_form").submit();
		}
	});
	$("#forum .forum_unsubscribe").click(function(){
		if (confirm($(this).attr("rel") + ' "' + $(this).attr("title") + '"?')) {
			$("#forum #forum_subscribe_form #subscribe_topic_id").attr("value", $(this).attr("href"));
			$("#forum #forum_subscribe_form #unsubscribe_message").attr("value", 1);
			$("#forum #forum_subscribe_form").submit();
		}
	});
	$("#forum .new-topic-cancel").click(function(){
		$("#forum #form_topics").hide();
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").show();
	});
	$("#forum .insert_smiley").click(function(){
		insert_text($(this).attr("alt"), $(this).attr("href"));
	});
	$("#forum .insert_bbcode").click(function(){
		bbstyle($(this).attr("href"));
	});
	$("#forum #create_topics_form").submit(function(){
		//apply_rich_editor_text('create_topics_form', 'MESSAGE');
		res = generic_mandatory_check($(this).attr("name"), 'FORM_VALIDATOR', 'Validation Number')
  			  + generic_mandatory_check(form_name, '$NAME_NAME', 'Topic')
 			  + generic_mandatory_check(form_name, '$MESSAGE_NAME', '$MESSAGE_CAPTION');
 		if (res!=''){
 			alert(res);
 			return false;
 		}
 		return true;
	});
	$("#forum .clear_form").click(function(){
		var parent = $(this).parents("form").get(0);
		var parent_id = '#' + $(parent).attr("id");
		$(parent_id + " textarea").attr("value", "");
	});
	$("#forum .fold").click(function(){
		$("#forum .forum_comment_content2hide").hide();
		$("#forum .forum_attach_content2hide").hide();
		setCookie('forum_posts_opened', 0, "", "/");
	});
	$("#forum .unfold").click(function(){
		$("#forum .forum_comment_content2hide").show();
		$("#forum .forum_attach_content2hide").show();
		setCookie('forum_posts_opened', 1, "", "/");
	});
	if (!isNaN(getCookie('forum_posts_opened')))
	{
		if (getCookie('forum_posts_opened')=='1') {
			$("#forum .forum_comment_content2hide").show();
			$("#forum .forum_attach_content2hide").show();
		}
	}
	$("#forum .s-msg-cancel").click(function(){
		var parent = $(this).parents("div.forum_post").get(0);
		var parent_id = '#' + $(parent).attr("id");
		$("#forum #form-comment-edit, #form-comment-add").hide();
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").show();
	});
	$("#forum .add_new_post_button").click(function(){
		init_reply_form();
		$("#forum #form-comment-add #comment_catid").removeAttr("disabled");
		$("#forum #form-comment-add #comment_catid").attr("value", $(this).attr("rel"));
		$("#forum #form-comment-add #comment_ac").attr("value", "insert");
		$("#forum #form-comment-add #comment_MESSAGE").attr("value", "");
		$("#forum #form-comment-add").insertAfter('#forum #topic_posts_bar');
		$("#forum #form-comment-add").show();
		$("#forum #form-comment-add #PICT1").attr("name","ADATA[PICT1]");
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").hide();
		location.href = '#write-comment';
	});
	$("#forum .s-msg-reply").click(function(){
		init_reply_form();
		var parent = $(this).parents("div.forum_post").get(0);
		var parent_id = '#' + $(parent).attr("id");
		$("#forum " + parent_id + " .forum_comment_content2hide").toggle();
		$("#forum " + parent_id + " .forum_attach_content2hide").toggle();
		$("#forum #form-comment-add #comment_PARENT_ID, #forum #form-comment-add #comment_LEVEL, #forum #form-comment-add #comment_subject, #forum #form-comment-add #comment_username, #forum #form-comment-add #comment_catid").removeAttr("disabled");
		$("#forum #form-comment-add #comment_PARENT_ID").attr("value", $("#ID_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add #comment_LEVEL").attr("value", parseInt($("#LEVEL_" + $(parent).attr("id")).attr("value")) + 1);
		$("#forum #form-comment-add #comment_ac").attr("value", "insert");
		$("#forum #form-comment-add #comment_MESSAGE").attr("value", "");
		$("#forum #form-comment-add").insertAfter('#forum #attach' + $("#ID_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add").show();
		$("#forum #form-comment-add #PICT1").attr("name","ADATA[PICT1]");
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").hide();
		location.href = '#write-comment';
	});
	$("#forum .s-msg-quote").click(function(){
		init_reply_form();
		var parent = $(this).parents("div.forum_post").get(0);
		var parent_id = '#' + $(parent).attr("id");
		$("#forum " + parent_id + " .forum_comment_content2hide").toggle();
		$("#forum " + parent_id + " .forum_attach_content2hide").toggle();
		$("#forum #form-comment-add #comment_PARENT_ID, #forum #form-comment-add #comment_LEVEL, #forum #form-comment-add #comment_subject, #forum #form-comment-add #comment_username, #forum #form-comment-add #comment_catid").removeAttr("disabled");
		$("#forum #form-comment-add #comment_PARENT_ID").attr("value", $("#ID_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add #comment_LEVEL").attr("value", parseInt($("#LEVEL_" + $(parent).attr("id")).attr("value")) + 1);
		$("#forum #form-comment-add #comment_ac").attr("value", "insert");
		$("#forum #form-comment-add #comment_MESSAGE").attr("value", "[quote=" + $("#AUTHOR_" + $(parent).attr("id")).attr("value") + "]" + $("#CODE_" + $(parent).attr("id")).attr("value") + "[/quote]");
		$("#forum #form-comment-add").insertAfter('#forum #attach' + $("#ID_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add").show();
		$("#forum #form-comment-add #PICT1").attr("name","ADATA[PICT1]");
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").hide();
		location.href = '#write-comment';
	});
	$("#forum .s-msg-edit").click(function(){
		init_reply_form();
		var parent = $(this).parents("div.forum_post").get(0);
		var parent_id = '#' + $(parent).attr("id");
		$("#forum " + parent_id + " .forum_comment_content2hide").toggle();
		$("#forum " + parent_id + " .forum_attach_content2hide").toggle();
		$("#forum #form-comment-add #edit_ID").removeAttr("disabled");
		$("#forum #form-comment-add #edit_ID").attr("value", $("#ID_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add #comment_ac").attr("value", "update");
		$("#forum #form-comment-add #comment_MESSAGE").attr("value", $("#CODE_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add").insertAfter('#forum #attach' + $("#ID_" + $(parent).attr("id")).attr("value"));
		$("#forum #form-comment-add").show();
		$("#forum #form-comment-add #PICT1").attr("name","ADATA[PICT1]");
		$("#forum .s-msg-edit, #forum .s-msg-quote, #forum .s-msg-reply, #forum .add-new-topic, #forum .add_new_post_button, #forum .s-msg-del, #forum .create_topic").hide();
		location.href = '#write-comment';
	});
	$("#forum .post_header").click(function(){
		var parent = $(this).parents("div.forum_post").get(0);
		var parent_id = $(parent).attr("id");
		$("#forum #comment" + $("#ID_" + parent_id).attr("value")).toggle();
		$("#forum #attach" + $("#ID_" + parent_id).attr("value")).toggle();
	});
	
}

function init_comments() {
	if (!$("#comments").length)
		return;
	$("#comments").init_bbcode({
			form_name: 'COMMENTS_FORM', 
			text_name: 'DATA[COMMENT]',
			bbcode_buttons:	'.insert_bbcode'
	});
	$(".s-msg-reply").click(function(){
		var parent = $(this).parents("div.info").get(0);
		var parent_id = '#' + $(parent).attr("id");
		$("#COMMENT").html('[quote=' + $("#AUTHOR_" + $(parent).attr("id")).text() + ']' + $("#SOURCE_" + $(parent).attr("id")).text() + '[/quote]');
		$("#comment_PARENT_ID").attr("value", $("#ID_" + $(parent).attr("id")).text());
		$("#comment_LEVEL").attr("value", parseInt($("#LEVEL_" + $(parent).attr("id")).text() + 1));
		$("#comment_PARENT_ID").removeAttr("disabled");
		$("#comment_LEVEL").removeAttr("disabled");
		$("#form-comment-add").insertAfter('#comment' + $("#ID_" + $(parent).attr("id")).text());
		$(".s-msg-reply, .s-msg-add, .s-msg-top").hide();
		$("#form-comment-add").show();
		return false;
	});
	
	$(".s-msg-add").click(function(){
		$("#comment_PARENT_ID").attr("disabled", "disabled");
		$("#comment_LEVEL").attr("disabled", "disabled");
		$("#comment_PARENT_ID").attr("value", "");
		$("#comment_LEVEL").attr("value", "");
		$("#COMMENT").html("");
		$("#form-comment-add").insertAfter('#comments_form_start_position');
		$(".s-msg-reply, .s-msg-add, .s-msg-top").hide();
		$("#form-comment-add").show();
		return false;
	});
	$(".s-msg-cancel").click(function(){
		$("#comment_PARENT_ID").attr("disabled", "disabled");
		$("#comment_LEVEL").attr("disabled", "disabled");
		$("#comment_PARENT_ID").attr("value", "");
		$("#comment_LEVEL").attr("value", "");
		$("#COMMENT").html("");
		$("#form-comment-add").hide();
		$("#form-comment-add").insertAfter('#comments_form_start_position');
		$(".s-msg-reply, .s-msg-add, .s-msg-top").show();
		return false;
	});
}

function init_lightbox() {
	$.each($("a"),function(i,obj){
		if ($(obj).attr('rel') == 'lightbox')
			$(obj).lightBox();
	});
	$(".lightbox").lightBox();
}

function init_after_login_return() {
	$('.after_login_return').click(function() {
		//alert("You should login");
		setCookie('after_login_return_url',document.location.href,'','/');
		//location.href="/login/";
	});
}

function init_after_logout_return() {
	$('.after_logout_return').click(function() {
		//alert("You should login");
		setCookie('after_logout_return_url',document.location.href,'','/');
		//location.href="/login/";
	});
}

function init_non_auth_message() {
	$(".non_auth").click(function(){
		alert($(this).attr("title"));
		location.href = $(this).attr("href");
	});
}

function init_gallery() {
	//if (typeof(serialScroll) != "undefined") {
		jQuery.easing.easeOutQuart = function (x, t, b, c, d) {
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		};
		jQuery(function( $ ){
			$('div.gallery_full_list').serialScroll({
				//target:'.gallery_full_list',
				items:'li', // Selector to the items ( relative to the matched elements, '#sections' in this case )
				prev:'.gallery_nav_prev',// Selector to the 'prev' button (absolute!, meaning it's relative to the document)
				next:'.gallery_nav_next',// Selector to the 'next' button (absolute too)
				axis:'x',// The default is 'y' scroll on both ways
				//navigation:'#greybox_m img.nav_first, #navigation_hidden a, #greybox_m img.nav_last',
				duration:700,// Length of the animation (if you scroll 2 axes and use queue, then each axis take half this time)
				force:true, // Force a scroll to the element specified by 'start' (some browsers don't reset on refreshes)
				
				//queue:false,// We scroll on both axes, scroll both at the same time.
				//event:'click',// On which event to react (click is the default, you probably won't need to specify it)
				//stop:false,// Each click will stop any previous animations of the target. (false by default)
				//lock:true, // Ignore events if already animating (true by default)		
				//start: 0, // On which element (index) to begin ( 0 is the default, redundant in this case )		
				//cycle:true,// Cycle endlessly ( constant velocity, true is the default )
				//step:1, // How many items to scroll each time ( 1 is the default, no need to specify )
				//jump:false, // If true, items become clickable (or w/e 'event' is, and when activated, the pane scrolls to them)
				//lazy:false,// (default) if true, the plugin looks for the items on each event(allows AJAX or JS content, or reordering)
				//interval:1000, // It's the number of milliseconds to automatically go to the next
				//constant:true, // constant speed
				
				onBefore:function( e, elem, $pane, $items, pos ){
					 //those arguments with a $ are jqueryfied, elem isn't.
					e.preventDefault();
					if( this.blur )
						this.blur();
				},
				onAfter:function( elem ){
					//'this' is the element being scrolled ($pane) not jqueryfied
				}
			});
		});
	//}
}

function init_confirmations() {
	$(".confirmation").dialog({
		bgiframe: true,
		resizable: false,
		height: 350,
		autoOpen: false,
		modal: true,
		overlay: {
			backgroundColor: '#000',
			opacity: 0.5
		},
		buttons: {
			'I agree to terms and conditions': function() {
				$("#" + $(this).attr("rel")).attr('checked','checked');
				$(this).dialog('close');
			},
			Cancel: function() {
				$("#" + $(this).attr("rel")).removeAttr('checked');
				$(this).dialog('close');
			}
		}
	});
	$(".open_confirmation")
		.css({'cursor':'pointer'})
		.click(function() {
			$("#" + $(this).attr("rel")).dialog('open');
			return false;
		});
}

function init_msgbox() {
	$(".msgBox").dialog({
		height: 350,
		width: 600,
		autoOpen: false
	});
	$(".open_msgBox")
		.css({'cursor':'pointer'})
		.click(function() {
			$("#" + $(this).attr("rel")).dialog('open');
			return false;
		});
}

function init_slideshow() {
	$VisualLightBoxParams$ = {autoPlay:true,borderSize:39,enableSlideshow:true,overlayOpacity:0,startZoom:true};
	init_lightslideshow();
	$(".start_slideshow_here").click();
	$(".start_gallery_slideshow")
		.css({'cursor':'pointer'})
		.click(function(){
			$("#firstimg").click();
		});
}

function init_on_focus_replace() {
	$('input.on_focus_replace')
		.focus(function() {
			$(this).attr('value',($(this).attr('value')==$(this).attr('title')?'':$(this).attr('value')));
		})
		.blur(function() {
			$(this).attr('value',($(this).attr('value')==''?$(this).attr('title'):$(this).attr('value')));
		});
	$.each($('input.on_focus_replace'),function(i,obj){
		$(obj).attr('value',($(obj).attr('value')==''?$(obj).attr('title'):$(obj).attr('value')));
	});
		
}

function init_fading_tabs() {
	$.each($('.green_baner .tabs_listing'),function(i,obj){
		$(obj).innerfade({
			speed: 2000,
			timeout: 15000,
			containerheight: $(obj).css("height"),
			el: i
		});
	});
	$.each($('.left_side_right .tabs_listing'),function(i,obj){
		$(obj).innerfade({
			speed: 2000,
			timeout: 4000,
			containerheight: $(obj).css("height"),
			el: i + '_' + i
		});
	});
	$.each($('#tabs_index_list'),function(i,obj){
		$(obj).innerfade({
			speed: 500,
			timeout: 6000,
			containerheight: $(obj).css("height"),
			el: i + '_' + i + '_' + i
		});
	});

}

function correct_zindex4menu(selector4_zindex_correction){
	$(selector4_zindex_correction).css({'z-index':'20'});
	$(selector4_zindex_correction +' li:not('+selector4_zindex_correction +' li li)').css({'z-index':'20'});
	$(selector4_zindex_correction +' li ul:not('+selector4_zindex_correction +' li ul ul)').css({'z-index':'30'});
}


function get_parent_div_of_class(element, class_name){
	while ($(element).parent().length){
		element = $(element).parent();
		if ($(element).hasClass(class_name))
			break;
	}
	/*while(pp = $(element).parent().length){
		
	}*/
	return element;
}



/////////////////////////////////////
///Mandatory fields validation
////////////////////////////////////

function init_form_validation(){
	
	if (!$("FORM:has(INPUT.mandatory)").length)
		return;
	$("FORM:has(INPUT.mandatory), FORM:has(SELECT.mandatory), FORM:has(TEXTAREA.mandatory)").submit(function(){
		$(this).find("INPUT, SELECT, TEXTAREA").removeClass('mandatory_selected');
		$(this).find("DIV.form_err_message").hide();
		
		$("INPUT[name='FORM_VALIDATOR']").addClass('mandatory');
		
		var msg = '';
			

		if ($(this).find("INPUT.mail, INPUT#EMAIL").length){
			email_filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

			$(this).find("INPUT.mail, INPUT#EMAIL").each(function(){
				if(($(this).attr('value')!='')&& !email_filter.test($(this).attr('value'))){
					$(this).addClass('mandatory_selected');
					if (msg=='')
						msg = 'Entered e-mail is wrong';
				}
			});
		}

		$(this).find("DIV.form_err_message SPAN.form_email_error").hide();
		if (msg!='')
			$(this).find("DIV.form_err_message SPAN.form_email_error").show();
		

		$(this).find("DIV.form_err_message SPAN.form_password_error").hide();		
		$(this).find("DIV.form_err_message SPAN.form_mandatory_error").hide();		
		
		if (($(this).find("INPUT[TYPE=password]").length>1) &&
			$(this).find("INPUT#PASSWORD1").length &&
			$(this).find("INPUT#PASSWORD2").length &&
			($(this).find("INPUT#PASSWORD1").attr('value') != $(this).find("INPUT#PASSWORD2").attr('value'))
		){

			$(this).find("INPUT#PASSWORD1").addClass('mandatory_selected');
			$(this).find("INPUT#PASSWORD2").addClass('mandatory_selected');
			$(this).find("DIV.form_err_message SPAN.form_password_error").show();
			if (msg) msg+='<br>';
			msg+= 'Пароли не совпадают, попробуйте ещё раз...';
		}

		if ($(this).find("INPUT.mandatory[value=''], SELECT.mandatory[value=''], TEXTAREA.mandatory[value='']").length){
			if (msg) msg+='<br>';
			msg+= 'Заполние поля, обязательные для ввода';
			$(this).find("DIV.form_err_message SPAN.form_mandatory_error").show();
		}
		if (msg=='')
			return true;
		$(this).find("INPUT.mandatory[value=''], SELECT.mandatory[value=''], TEXTAREA.mandatory[value='']").addClass('mandatory_selected');
		$(this).find("INPUT.mandatory[value='']:first, SELECT.mandatory[value='']:first, TEXTAREA.mandatory[value='']:first").focus();
		if (!$(this).find("DIV.form_err_message").length){
			$(this).prepend('<div class="form_err_message error_mesage">'+msg+'</div>');
		}
		$(this).find("DIV.form_err_message").show();
		if ($(this).find("DIV.form_err_message").html()=='')
			$(this).find("DIV.form_err_message").html(msg);

		return false;
	});
	$("TD.form_title + TD.form_field:has(INPUT.mandatory)").prev().find("SPAN").text('*').css('color','red');
	$("TD.form_title + :not(TD.form_field:has(INPUT.mandatory))").prev().find("SPAN").html('&nbsp; ').css('padding-left','2px');
}

function init_job_offers_menu() {
	$(".seemore")
		.css({'cursor':'pointer'})
		.click(function(){
			var parent = $(this).parents("div.left_items_container").get(0);
			$(parent).find("div.hidden").removeClass("hidden");
			parent = $(this).parents("div").get(0);
			$(parent).addClass("hidden");
		});
	$(".search_submit_link")
		.css({'cursor':'pointer'})
		.click(function(){
			var id = $(this).attr("rel");
			$("#" + id).attr("value", $(this).text());
			$("#search_frm").submit();
		});
}

/******* DIALOG RELATED ****************/

function updateTips(t) {
	tips.text(t).effect("highlight",{},1500);
}

		

function checkLength(o,n,min,max) {
	if ( o.val().length > max || o.val().length < min ) {
		o.addClass('ui-state-error');
		updateTips("Length of " + n + " must be between "+min+" and "+max+".");
		return false;
	}
	return true;
}

function checkRegexp(o,regexp,n) {
	if ( !( regexp.test( o.val() ) ) ) {
		o.addClass('ui-state-error');
		updateTips(n);
		return false;
	}
	return true;
}

function init_form_dialog(){

	if ($('.deal_login_dialog_open').length){
			$('.deal_login_dialog_open').click(function() {
				alert("You should login to post your offer!");
				setCookie('after_login_return_url',document.location.href,'','/');
				location.href="/login/";
			});
		return;
	}
	
	if (!$('#offer_dialog').length || !$('.deal_dialog_open').length)
		return;
	
	var name = $("#dialog_author"),
		email = $("#dialog_email"),
		password = $("#dialog_text"),
		allFields = $([]).add(name).add(email).add(password),
		tips = $("#validateTips");
			
	$("#offer_dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		height: 400,
		modal: true,
		buttons: {
			'Submit': function() {
				var bValid = true;
				allFields.removeClass('ui-state-error');

				bValid = bValid && checkLength(name,"Name",3,50);
				bValid = bValid && checkLength(email,"Email",6,80);
				bValid = bValid && checkLength(password,"Details",5,255);

				//bValid = bValid && checkRegexp(name,/^[a-z]([0-9a-z_])+$/i,"Username may consist of a-z, 0-9, underscores, begin with a letter.");
				// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
				bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"eg. info@bankingconnects.com ");
				/*" ))))*/
				//bValid = bValid && checkRegexp(password,/^([0-9a-zA-Z])+$/,"Password field only allow : a-z 0-9");
			
				if (bValid) {
					$("#SENDER_NAME").attr("value", $("#dialog_author").attr("value"));
					$("#SENDER_EMAIL").attr("value", $("#dialog_email").attr("value"));
					$("#COMMENTS").html($("#dialog_text").attr("value"));
					$(this).dialog('close');
					$("#post_offer").submit();
				}
			},
			Cancel: function() {
				$(this).dialog('close');
			}
		},
		close: function() {
			allFields.val('').removeClass('ui-state-error');
		}
	});
		
	$('.deal_dialog_open').click(function() {
		var deal_id = $(this).attr("rel");
		$("#SRC_TAG").attr("value", $("#deal_tag_" + deal_id).text());
		$("#SRC_ID").attr("value", $("#deal_id_" + deal_id).text());
		$("#AUTHOR_EMAIL").attr("value", $("#deal_email_" + deal_id).text());
		$("#dialog_author").attr("value", $("#CURRENT_USER_NAME").text());
		$("#dialog_email").attr("value", $("#CURRENT_USER_EMAIL").text());
		$('#offer_dialog').dialog('open');
	});

}

function callback() {}
function remove_hovering($el){$el.removeClass("hovering");}
function set_top_margin($el){var min=0;if($.browser.mozilla) min=4;$el.find("UL:first").css({'margin-top':(-1*$el.find("UL:first").attr("rel")*21-21-min) + 'px'});}
function init_mega_menu(){
	$.each($(".right_menu UL.mega_menu DIV.submenu LI.parent.sel"),function(i,obj){
		var parent_ul = $(obj).parents("ul").get(0);
		if ($(obj).find("ul.sel").length > 0)
			$("#" + $(parent_ul).attr("id") + " LI.unsel a.right_menu_tip:not(#" + $(parent_ul).attr("id") + " LI LI a)").removeClass("right_menu_tip");
	});
	$('.with_dd UL.mega_menu LI').hoverIntent(
		{    
	     interval: 250,
	     timeout: 250,
	     sensitivity: 4,
	     over: function () {$(this).addClass("hovering");$(this).find("div.submenu").fadeIn(500);}, /* show('blind',{},250,callback) */
	     out: function (){ $(this).find("div.submenu").fadeOut(500);var $el=$(this);setTimeout(function(){remove_hovering($el);},250);} /* hide('blind',{},250,callback) */
		}
	);
	$('.right_menu UL.mega_menu DIV.submenu LI.current_unsel a.right_menu_tip:not(.right_menu UL.mega_menu DIV.submenu LI.current_unsel LI.unsel a.right_menu_tip)').hoverIntent(
		{    
	     interval: 250,
	     timeout: 250,
	     sensitivity: 4,
	     over: function () {
	     	var parent_li = $(this).parents("li").get(0);
	     	var parent_ul = $(this).parents("ul").get(0);
	     	var open_this = false;
	     	if (!$(this).hasClass("opened"))
	     		open_this = true;
	     	$(parent_ul).find("li.hovering UL:first").hide('blind',{},250,callback);
	     	$(parent_ul).find("li.hovering a.opened").removeClass("opened");
	     	$(parent_ul).find("li.hovering").removeClass("hovering");
	     	if (open_this) {
				if ($(parent_li).hasClass("top-opening"))
					set_top_margin($(parent_li));
		     	$(parent_li).find("UL:first").show('blind',{},250,callback);
		     	$(parent_li).addClass("hovering");
		     	$(this).addClass("opened");
	     	}
	     },
	     out: function (){}
		}
	);
	$.each($("LI.sel.top-opening"),function(i, obj){
		set_top_margin($(obj));
	});
	$(".mega_menu_wrop ul.mega_menu li a.header").click(function(){ return false; });
}

function init_round_corners() {
	$('.right_menu UL.mega_menu LI.sel DIV.submenu').corner("5px");
	$('ul.myCorner').each(function(i,obj){
		var select = 'first';
		if ($(obj).attr("data-corner").search("bottom") > -1)
			select = 'last';
		$(obj).find("li:" + select).corner($(obj).attr("data-corner"));
	});
	//$('.right_menu UL.mega_menu LI.sel DIV.submenu LI.hovering UL').corner("3px");
}

function init_calendar_selectors(){
	
	if (!$('#calendar_month').length)
		return;	
	if (!$('#calendar_month_selector').length)
		return;
	if (!$('#calendar_year').length)
		return;	
	if (!$('#calendar_year_selector').length)
		return;
		
	$('#calendar_month_selector_close').click(function(){
		$('#calendar_month_selector').hide();
	});
	
	$('#calendar_year_selector_close').click(function(){
		$('#calendar_year_selector').hide();
	});

	$('#calendar_month').click(function (e){
		el = $('#calendar_month_selector');
		el.css('position', 'absolute');
		el.css('left', $(this).offset().left);
		el.css('top', e.pageY - el.height()/2);
		el.show();
	})
	$('#calendar_year').click(function (e){
		el = $('#calendar_year_selector');
		el.css('position', 'absolute');
		el.css('left', $(this).offset().left);
		el.css('top', e.pageY - el.height()/2);
		el.show();
	})
}

function init_categories_index_list() {
	//if (typeof(serialScroll) != "undefined") {
		jQuery.easing.easeOutQuart = function (x, t, b, c, d) {
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		};
		jQuery(function( $ ){
			$('div.box_in').serialScroll({
				//target:'.gallery_full_list',
				items:'li', // Selector to the items ( relative to the matched elements, '#sections' in this case )
				prev:'#categories_index_prev',// Selector to the 'prev' button (absolute!, meaning it's relative to the document)
				next:'#categories_index_next',// Selector to the 'next' button (absolute too)
				axis:'x',// The default is 'y' scroll on both ways
				//navigation:'#greybox_m img.nav_first, #navigation_hidden a, #greybox_m img.nav_last',
				duration:500,// Length of the animation (if you scroll 2 axes and use queue, then each axis take half this time)
				force:true, // Force a scroll to the element specified by 'start' (some browsers don't reset on refreshes)
				cycle:false, //don't pull back once you reach the end
				//queue:false,// We scroll on both axes, scroll both at the same time.
				//event:'click',// On which event to react (click is the default, you probably won't need to specify it)
				//stop:false,// Each click will stop any previous animations of the target. (false by default)
				//lock:true, // Ignore events if already animating (true by default)		
				//start: 0, // On which element (index) to begin ( 0 is the default, redundant in this case )
				exclude:3,//Exclude n elements before end		
				//cycle:true,// Cycle endlessly ( constant velocity, true is the default )
				step:4, // How many items to scroll each time ( 1 is the default, no need to specify )
				//jump:false, // If true, items become clickable (or w/e 'event' is, and when activated, the pane scrolls to them)
				//lazy:false,// (default) if true, the plugin looks for the items on each event(allows AJAX or JS content, or reordering)
				//interval:1000, // It's the number of milliseconds to automatically go to the next
				//constant:true, // constant speed
				
				onBefore:function( e, elem, $pane, $items, pos ){
					 //those arguments with a $ are jqueryfied, elem isn't.
					e.preventDefault();
					if( this.blur )
						this.blur();
				},
				onAfter:function( elem ){
					//'this' is the element being scrolled ($pane) not jqueryfied
				}
			});
		});
	//}
}

function init_date_pickers(){
	//alert($(".date_picker").eq(0).attr('value'));
	$(".date_picker").datepicker({showOn: 'button', buttonImage: 'img/show-calendar.gif', buttonImageOnly: true});
	
}

function init_accordion() {
	$(".accordion").accordion();
}

var Timeout;
var Hovering_el;
var MegaMenuLocation;
right_menu_hover_timer_start = function() {
	var parent_li = $(MegaMenuLocation + ".mega_menu ." + Hovering_el).parents("li").get(0);
	var block = $(parent_li).find("UL.level_3");
	if ($(block).css("display")=='none'){
		$("UL.level_3").hide("slow");
		if ($(parent_li).hasClass("top-opening"))
			$(block).css({'margin-top':(-1*$(block).attr("rel")*21-19) + 'px'});
		$(block).show("slow");
		$(MegaMenuLocation + ".mega_menu ." + Hovering_el).addClass('opened_tip');
	} else {
		$(block).hide("slow");
		$(MegaMenuLocation + ".mega_menu ." + Hovering_el).removeClass('opened_tip');
	}
}
function init_right_menu_tips() {
	$(".right_menu_tip:not(.mega_menu_wrop .right_menu_tip, li.sel .right_menu_tip)").hover(
		function() {
			var mega_menu_wrop = $(this).parents("div.mega_menu_wrop");
			var content = $(this).parents("div.content");
			MegaMenuLocation = content.length?'div.content ':(mega_menu_wrop.length?'div.mega_menu_wrop ':'')
			Hovering_el = $(this).attr("id");
			Timeout = setTimeout(right_menu_hover_timer_start,500);
		},
		function() {
			clearTimeout(Timeout);
		}
	);
	$.each($("LI.sel"),function(i,obj){
		if ($(obj).hasClass("top-opening"))
			$(obj).find("UL:first").css({'margin-top':(-1*$(obj).find("UL:first").attr("rel")*21-19) + 'px'}).show("slow");
		$(obj).addClass('opened_tip');
		$(obj).find("UL:first").show();
	});
	//$(".mega_menu_wrop li UL.opened").show();
}

function preload_menu_images () {
	if ($(".with_dd").length)
		$.preloadImages(['img/menu_bg_dd1_bot.png', 'img/menu_bg_dd1_top.gif', 'img/menu_bg_dd1_cor.gif','img/menu_bg_dd2_bot.png', 'img/menu_bg_dd2_top.gif', 'img/menu_bg_dd2_cor.gif','img/menu_bg_dd3_bot.png', 'img/menu_bg_dd3_top.gif', 'img/menu_bg_dd3_cor.gif']);
}
jQuery.preloadImages = function() {
	for(var i = arguments.length -1; i > 0; i--) {
			$('<img>').attr("src",arguments[i]);
			$('<div>').css({"background":arguments[i]});
			$('<div>').css({"background":"url(" + arguments[i] + ")"});
	}
}

function init_sifr() {
	$('.tabs_short_desc_testimonial .text').sifr({
		//debug: false,
		font: 'GothamBold.swf',
		path: '/css/sifr',
		zoom: 1,
		overY: 1,
		version: 3
	});
	
	
	
	$('.tabs_author_testimonial').sifr({
		//debug: false,
		font: 'GothamNarrowBold.swf',
		path: '/css/sifr',
		zoom: 1,
		overY: 1,
		version: 3
	});
	
	
	$('.pict_with_text_big').sifr({
		//debug: false,
		font: 'GothamBold.swf',
		path: '/css/sifr',
		zoom: 1,
		overY: 1,
		version: 3
	});
		
	
	
	$('.pict_with_text_small').sifr({
		//debug: false,
		font: 'GothamNarrowBold.swf',
		path: '/css/sifr',
		zoom: 1,
		overY: 1,
		version: 3
	});
		
	
	/*$('.tabs_short_desc_testimonial .qts ').sifr({
		//debug: false,
		font: 'Georgia.swf',
		style: {'font-weight':'bold','line-height':'20px'},
		path: '/css/sifr',
		height : 100,
		zoom: 1,
		overY: 1,
		version: 3
	});*/
	
	
}


function list_news(selector) {
	var els = new Array();
	var y = 0;
	var a = 0;
	$.each($(selector),function(i, obj){
		if($(obj).css("display") != 'none')
			a = y;
		$(obj).hide();
		els[y] = obj;
		y++;
	});
	if (a == y - 1)
		a = 0;
	else
		a++;
	//$(els[Math.floor(Math.random()*els.length)]).show("slide");
	$(els[a]).show("slide");
	setTimeout('list_news("' + selector + '")', 5000);
}

function init_news_listing() {
	$("ul.latestnews li:first").show();
	if ($("ul.latestnews li").length > 1)
		setTimeout('list_news("ul.latestnews li")', 5000);
} 

//main jquery hook-up function
$(document).ready(
	function() {
		
		init_sifr();
		init_form_validation();
		init_lightbox();
		init_comments();
		init_forum();
		init_form_dialog();
		init_after_login_return();
		init_after_logout_return();
		init_non_auth_message();
		$(".jqueryui_tabs").tabs();
		
		init_mega_menu();
		init_fading_tabs();
		
		//Patch, that fixes z-index issue. Must be after init_fading_tabs
		correct_zindex4menu('UL.mega_menu');
		
		init_gallery();
		init_confirmations();
		init_msgbox();
		init_slideshow();
		init_on_focus_replace();
		init_job_offers_menu();
		
		init_date_pickers();
		
		init_calendar_selectors();
		
		init_categories_index_list();
		init_accordion();
		preload_menu_images();
		//init_right_menu_tips();
		init_round_corners();
		init_news_listing();
	}
);