/*$(document).ready(function(){
	new AjaxUpload('upload_button', {action: 'upload.php'});
});*/
	
//$( InitPage );

// Init the page.
function InitPage_Forum_Posts_List(){
	var jInput = $( ".cb_publish_post" );

	// Bind the onchange event of the inputs to flag
	// the inputs as being "dirty".
	jInput.change(
		function( objEvent ){
			// Add dirtry flag to the input in
			// question (whose value has changed).
			//$( this ).addClass( "dirty" );
			//alert("is_publish: "+$( this ).attr("checked"));
			$.ajax({
				url: "/ajax/forum/change_flags.php",
				type: 'POST', // data distribution methods 
				data: "publish="+( $( this ).attr( 'checked' ) ? 1 : 0 ) + "&id=" + $( this ).attr( 'id' ).substring( 11 ),
				dataType: "json", // accept the data format 
				//beforeSend: function(){$("#loading").show("fast");}, //show loading just when link is clicked
				//complete: function(){ $("#loading").hide("fast");}, //stop showing loading when the process is complete
				success: function( json){
					if ( json.result_status == 0 ) {
						alert("обновлено\nпост №"+json.post_id+" теперь "+( json.post_publish_state == 1 ? 'опубликован' : 'не опубликован' ));
					}
				},
				error: function( XMLHttpRequest, textStatus, errorThrown){
					alert("ERROR\nXMLHttpRequest:"+XMLHttpRequest+"\ntextStatus:"+textStatus+"\nerrorThrown:"+errorThrown)
				}
			}); //close $.ajax(
		}
	);
}

var Init_block = {
	announce: function( ){
/*		$("[id^=announce_] .more").bind("mouseenter", function(){
			$(this).hide().closest("[id^=announce_]").find(".announce_full_text").fadeIn().bind("mouseleave", function(){
				$(this).hide().closest("[id^=announce_]").find(".more").fadeIn();
			});
		})*/
		$("[id^=announce_] .more").bind("click", function(e){
			if( $(this).closest("[id^=announce_]").find(".announce_text").queue("fx").length == 0 && $(this).closest("[id^=announce_]").find(".announce_full_text").queue("fx").length == 0 ){
				if( $(this).hasClass("more_up")){
					$(this).closest("[id^=announce_]").find(".announce_full_text").hide();
					$(this).closest("[id^=announce_]").find(".announce_text").fadeIn();
				} else {
					$(this).closest("[id^=announce_]").find(".announce_text").hide();
					$(this).closest("[id^=announce_]").find(".announce_full_text").fadeIn();
				}
				$(this).toggleClass("more_up")
			}
		});
	}
}

var Init_page = {
	forum_topic_id:null,
	forum_posts: function( ){
		id = $( "[id^='forum_topic_']" ).attr('id').split('_');
		forum_topic_id = id[id.length-1];
		max_message_length = 1000;
		// edit posts
		$( ".e_show_details" ).bind('mouseenter', function() {
			id = $(this).attr('id').split('_');
			$( "[id^='pminfo_']").mouseleave();
			$( "#pminfo_"+id[id.length-1]).fadeIn('fast').one('mouseleave', {id:id[id.length-1]}, function(event) {
				$(this).fadeOut('fast');
			});
			
		});
		$( "[id^='b_edit_massage_']" ).bind('click', function() {
			id = $(this).attr('id').split('_');
			id = id[id.length-1];
			el = $("#text_message_"+id);
			$( el ).before( '<form id="edit_text_message_'+id+'" action="/ajax/forum/send.php"><input type="hidden" name="action" value="edit" /><input type="hidden" name="topic_id" value="'+forum_topic_id+'" /><input type="hidden" name="message_id" value="'+id+'" /><textarea name="post_text">'+$("#text_message_"+id).text()+'</textarea><div style="text-align:right"><div class="counter">Залишилось <span class="counter_num">0</span> &nbsp;символів</div><div class="error_info hide"></div><input type="button" name="cancel" class="button" value="Скасувати" style="margin:10px" /><input type="button" name="submit" class="button" value="Зберегти" style="margin:10px" /></div></form>' );
			$("#edit_text_message_"+id).hide().fadeIn('fast');
			$( el ).hide();

			$( this ).closest('li').find('.allow_edit').hide();
			
			// text length cheker
			el_content = $( this ).closest('li').find('.content');
			el_counter = $( this ).closest('li').find('.counter_num');
			$("#edit_text_message_"+id+" [name=post_text]").bind('keyup keydown', function(){
				App.check_input_length( this, max_message_length, el_content, el_counter );
			});
			// cancel edit
			$("#edit_text_message_"+id+" [name=cancel]").bind('click', function(){
				$( el ).fadeIn('fast');
				$( this ).closest('li').find('.information').fadeIn('fast');
				$("#edit_text_message_"+id).remove();
				App.all_error_info_hide( el_content );
				
			});
			// save edit message
			$("#edit_text_message_"+id+" [name=submit]").bind('click', function(){
				App.all_error_info_hide( el_content, true );
				App.send_form( "edit_text_message_"+id, "li_post_"+id);
//				$( el ).fadeIn('fast');
//				$( this ).closest('li').find('.information').fadeIn('fast');
//				$("#edit_text_message_"+id).remove();
			});

		});
		
		// add post
		el_content_send = $( '#send_message_form .content');
		el_counter_send = $( '#send_message_form .counter_num');
		$("#send_message_form [name=post_text]").bind('keyup keydown', function(){
			App.check_input_length( this, max_message_length, el_content_send, el_counter_send );
		});
		$( "#send_message_form [name=add_post]" ).bind('click', function(){
			App.all_error_info_hide( el_content_send, true );
			App.send_form( "send_message_form", "send_message_form");
		});
		
		// print posts
		
		// Dialog			
		$('#print_dialog').dialog({
			autoOpen: false,
			width: 600,
			modal: true,
			buttons: {
				"Друкувати": function() { 
					$('#printed_content').jqprint(); 
				}, 
				"Повернутися до форуму": function() { 
					$(this).dialog("close"); 
				} 
			}
		});
		
		// Dialog Link
		$('[id^=button_print_post_]').click(function(){
			id = $(this).attr('id').split('_');
			id = id[id.length-1];
			$("#print_dialog").html('<div id="printed_content"><div>Повідомлення у темі форума:<b><br />'+$('#topic_name').html()+'</b></div><div>Дата: <b>'+$('#post_date_'+id).html()+'</b></div><div>Автор: <b>'+$('#a_sd_'+id).html()+'</b></div><div class="body">'+$('#text_message_'+id).html()+'</div></div>').dialog("open");

			return false;
		});

	},
	blog_posts: function( ){
		// redirect to edit posts
		$( "[id^='b_edit_massage_']" ).bind('click', function() {
			id = $(this).attr('id').split('_');
			id = id[id.length-1];
			$.cookie('tmp_action', 'edit', { path: '/'});
			App.redirect( '/ua/blog_post/'+id );
		});
	},
	blog_post: function( element_id ){
		var element_id = element_id;
		// edit posts
		$( "[id^='b_edit_massage_']" ).bind('click', function() {
			id = $(this).attr('id').split('_');
			id = id[id.length-1];
			$( "#blog_post_"+id+" .post_data" ).before( '<form id="edit_text_message_'+id+'" action="/ajax/blogs/send.php"><label>тема</label><input class="text" type="text" maxlength="254" value="'+$("#text_subject_"+id).text()+'" name="post_name"><input type="hidden" name="action" value="edit" /><input type="hidden" name="message_id" value="'+id+'" /><label>повідомлення</label><textarea name="post_text">'+$("#text_message_"+id).text()+'</textarea><div style="text-align:right"><div class="error_info hide"></div><input type="button" name="cancel" class="button" value="Скасувати" style="margin:10px" /><input type="button" name="submit" class="button" value="Зберегти" style="margin:10px" /></div></form>' );
			$("#edit_text_message_"+id).hide().fadeIn('fast');
			//$( "#text_message_"+id+", #text_subject_"+id ).hide();
			$( "#blog_post_"+id+" .post_data" ).hide();

			$( this ).closest('.block_info').find('.allow_edit').hide();
			
			// cancel edit
			$("#edit_text_message_"+id+" [name=cancel]").bind('click', function(){
				//$( "#text_message_"+id+", #text_subject_"+id ).fadeIn('fast');
				$( "#blog_post_"+id+" .post_data" ).fadeIn('fast');
				$( this ).closest('.content').find('.block_info .allow_edit').fadeIn('fast');
				$("#edit_text_message_"+id).remove();
				App.all_error_info_hide( "#blog_post_"+id );
				
			});
			// save edit message
			$("#edit_text_message_"+id+" [name=submit]").bind('click', function(){
				App.all_error_info_hide( "blog_post_"+id, true );
				App.send_form( "edit_text_message_"+id, "blog_post_"+id);
			});

		});
		// if edit post now
		if ( $.cookie('tmp_action') == 'edit' ){
			$.cookie('tmp_action', null, { path: '/'});
			$( "[id^='b_edit_massage_']" ).click();
		}
		
		// Dialog			
		$('#add_comment_dialog').dialog({
			autoOpen: false,
			width: 600,
			modal: true,
			buttons: {
				"Додати": function() { 
					App.all_error_info_hide( "add_comment_dialog", true );
					App.send_form( "add_comment_form", "add_comment_dialog");
				}, 
				"Скасувати": function() { 
					$(this).dialog("close"); 
				} 
			}
		});
		
		max_message_length = 1000;
		// Dialog Link
		$('#button_add_comment').click(function(){
			id = $(this).attr('id').split('_');
			id = id[id.length-1];
			$("#add_comment_dialog").html('<div class="content"><form id="add_comment_form" action="/ajax/comments/send.php"><input type="hidden" name="action" value="send" /><input type="hidden" name="elements_id" value="48" /><input type="hidden" name="element_id" value="'+element_id+'" /><textarea name="post_text" style="width:565px;"></textarea><div class="counter">Залишилось <span class="counter_num">'+max_message_length+'</span> &nbsp;символів</div><div class="block_info"></div></form></div>').dialog("open");
			$("#add_comment_form [name=post_text]").focus();
			// text length cheker
			$("#add_comment_form [name=post_text]").bind('keyup keydown', function(event){
				 if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
				 {
				 	App.all_error_info_hide( "add_comment_dialog", true );
					App.send_form( "add_comment_form", "add_comment_dialog");
				 }
				App.check_input_length( this, max_message_length, 'add_comment_form', '#add_comment_form .counter_num' );
			});

			return false;
		});
	},
	event_comment: function( element_id ){
		var element_id = element_id;
		
		// Dialog			
		$('#add_comment_dialog').dialog({
			autoOpen: false,
			width: 600,
			modal: true,
			buttons: {
				"Скасувати": function() { 
					$(this).dialog("close"); 
				},
				"Додати": function() { 
					App.all_error_info_hide( "add_comment_dialog", true );
					App.send_form( "add_comment_form", "add_comment_dialog");
				}
			}
		});
		
		max_message_length = 1000;
		// Dialog Link
		$('#button_add_comment').click(function(){
			id = $(this).attr('id').split('_');
			id = id[id.length-1];
			$("#add_comment_dialog").html('<div class="content"><form id="add_comment_form" action="/ajax/comments/send.php"><input type="hidden" name="action" value="send" /><input type="hidden" name="elements_id" value="21" /><input type="hidden" name="element_id" value="'+element_id+'" /><textarea name="post_text" style="width:565px;"></textarea><div class="counter">Залишилось <span class="counter_num">'+max_message_length+'</span> &nbsp;символів</div><div class="block_info"></div></form></div>').dialog("open");
			$("#add_comment_form [name=post_text]").focus();
			// text length cheker
			$("#add_comment_form [name=post_text]").bind('keyup keydown', function(event){
				 if((event.ctrlKey) && ((event.keyCode == 0xA)||(event.keyCode == 0xD)))
				 {
				 	App.all_error_info_hide( "add_comment_dialog", true );
					App.send_form( "add_comment_form", "add_comment_dialog");
				 }
				App.check_input_length( this, max_message_length, 'add_comment_form', '#add_comment_form .counter_num' );
			});

			return false;
		});
		
	}
	
}

var App = {
	ActivePMInfo: null,
	redirect_url: null,
	err: null,
	
	check_input_length: function( jelement, max, control_id, jelement_counter ){
		if(typeof(err)== 'undefined')
			err='';
		if( $( jelement).val().length > max)
		{
			if( typeof(err)!='object')
			{
				err = App.error_info_show( control_id, "Увага! Ваше повідомлення перевищує максимальну кількість знаків і буде надіслано не повністю.<br />Обмежте його "+max+" символів.");
			}
			$( jelement).val( $( jelement).val().substr(0,max) );
		} else {
			if( $( jelement).val().length < max ){
				App.error_info_hide( err);
				err='';
			}
		}

//alert($(jelement_counter).html());
		$( jelement_counter).html( max - $( jelement).val().length );
		
	},
	
	ttt: function( ){
		alert('ok');
	},
	
    display_infobox_pack: function( pack){
        if( typeof(pack.info) == 'object'){
            for( var i in pack.info) {
            	alert(pack.info[ i]);
                App.infobox( pack.info[ i], 'info');
            }
        }
        if( typeof(pack.warning) == 'object'){
            for( var i in pack.warning) {
                App.infobox( pack.warning[ i], 'warning');
            }
        }
        if( typeof(pack.error) == 'object'){
            for( var i in pack.error) {
            	alert(pack.error[ i]);
                App.infobox( pack.error[ i], 'error');
            }
        }
    },
    
    display_infobox: function( msg, status){
        if( typeof(msg) == 'undefined'){
            $( '#infobox' ).html( '' );
            return;
        }
        type = typeof( type ) != 'undefined' ? type : 'info';
        alert( type + "\n" + msg);
        $( '#infobox' ).append( '<div class="' + status + '"><p><strong>' + msg + '</strong></p></div>' );
    },
	
	infobox: function( message, type){
		if ( typeof( message ) == 'undefined' ){
			$( "#infobox" ).html('');
			return false;
		}
		type = typeof( type ) != 'undefined' ? type : 'info';
		switch( type) {
			case 'error':
				$( "#infobox" ).append('<dl class="error"><dt>Помилка:</dt><dd>' + message + '</dd><dl>');
				break;
				
			default:
				$( "#infobox" ).append('<dl class="info"><dt>Інформація:</dt><dd>' + message + '</dd><dl>');
		}
		return true;
	},

	ShowBlock: function( id) {
		$( "#"+id ).removeClass("hide");
		$( "#"+id+"_sw" ).addClass("hide");
	},
	
	ShowPMInfo: function( id) {
		$( "#pminfo_"+id ).removeClass("hide");
		$( "#pminfo_"+id ).mouseleave(
			function(){ 
				$( this).addClass("hide"); 
			}
		);
	},
	
	StartCreateBlog: function( id) {
		$( "#addon_panel" ).html( 'Назвіть свій блог<br /><input class="lite w50" id="create_blog_input" type="text" value=""> <a href="javascript:;" onmousedown="App.SubmitCreateBlog()">Створити</a>' );
		$( "#addon_panel" ).removeClass( 'hide' );
	},
	
	SubmitCreateBlog: function( ) {
		if( $( "#create_blog_input" ).val() != '' )
		{
			$.ajax({
				url: "/ajax/blogs/add_blog.php",
				type: 'POST', // data distribution methods 
				data: "blog_name="+$( "#create_blog_input" ).val(),
				dataType: "json", // accept the data format 
				//beforeSend: function(){$("#loading").show("fast");}, //show loading just when link is clicked
				//complete: function(){ $("#loading").hide("fast");}, //stop showing loading when the process is complete
				success: function( json){
					if ( json.result_status == 0 ) {
						$( "#addon_panel" ).html( json.message);
						window.location.replace( json.url );
					} else {
						alert("err " + json.result_status + "\n" + json.error);
					}
				},
				error: function( XMLHttpRequest, textStatus, errorThrown){
					alert("ERROR\nXMLHttpRequest:"+XMLHttpRequest+"\ntextStatus:"+textStatus+"\nerrorThrown:"+errorThrown)
				}
			}); //close $.ajax(
		}

	},
	
	SubmitCreateBlogPost: function( ) {
		var err = false;
		App.infobox();
		if( $.trim( $( "#add_post_name" ).val()) == '' ) {
			err = App.infobox('Порожня тема повідомлення', 'error');
		} else if( $( "#add_post_name" ).val().length > 254 ) {
			err = App.infobox('Тема повідомлення не повинна перевищувати 256 символів', 'error');
		}
		if( $.trim( $( "#add_post_text" ).val()) == '' ) {
			err = App.infobox('Порожнє повідомлення', 'error');
		}
		if( err ) 
			return;
		
		App.infobox( "Повідомлення додається.<br> Зачекайте.");
			
		$.ajax({
			url: "/ajax/blogs/add_post.php",
			type: 'POST', // data distribution methods 
			data: {
				post_name: $( "#add_post_name" ).val(),
				post_text: $( "#add_post_text" ).val()
			},
			//data: "post_name="+$( "#add_post_name" ).val(),
			dataType: "json", // accept the data format 
			//beforeSend: function(){$("#loading").show("fast");}, //show loading just when link is clicked
			//complete: function(){ $("#loading").hide("fast");}, //stop showing loading when the process is complete
			success: function( json){
				if ( json.result_status == 0 ) {
					App.infobox( json.message+"<br />Блог зараз оновиться. Зачекайте." );
					window.location.replace( json.url );
				} else {
					err = App.infobox( json.error, 'error');
				}
			},
			error: function( XMLHttpRequest, textStatus, errorThrown){
				alert("ERROR\nXMLHttpRequest:"+XMLHttpRequest+"\ntextStatus:"+textStatus+"\nerrorThrown:"+errorThrown)
			}
		}); //close $.ajax(

	},
	
	StartRenameBlog: function( id) {
		var blog_name = $( "#"+id ).html();
		var blog_name_width = $( "#"+id ).width();
		$( "#"+id +"_rename_button" ).addClass("hide");
		$( "#"+id ).html( '<input class="renaming" id="input_' + id +'" type="text" value="' + blog_name + '"><a class="renaming" href="javascript:;" onmousedown="App.SubmitRenameBlog(\'' + id + '\')">Перейменувати</a>');
		$( "#input_"+id ).focus();
	},
	

	Vote: function( id, control_id) {
		App.display_infobox();
		//alert( $("#control_Poll > .content").html() );

		//this.loading_show( control_id);
		//App.loading_show( control_id);
		var poll_option_id = $("input[name='poll_"+id+"']:checked").val();
		if( poll_option_id*1 > 0)
		{
		$.ajax({
			url: "/ajax/polls/vote.php",
			type: 'POST', // data distribution methods 
			data: {
				poll_id: id,
				poll_option_id: poll_option_id
			},
			//data: "post_name="+$( "#add_post_name" ).val(),
			dataType: "json", // accept the data format 
			beforeSend: function(){App.loading_show( control_id);}, //show loading just when link is clicked
			//complete: function(){App.loading_hide( control_id);}, //stop showing loading when the process is complete
			success: function( response){
				if ( response.status == 'success' ) {
					if( response.content !=''){
						$("#"+control_id+" > .content").html( response.content );
						App.loading_hide( control_id );
					}
					//alert(777);
				} else if(response.status == 'error'){
					App.loading_hide( control_id);
					App.display_infobox_pack( response.message );
				}
				
			},
			error: function( XMLHttpRequest, textStatus, errorThrown){
				App.loading_hide( control_id);
				alert("ERROR\nXMLHttpRequest:"+XMLHttpRequest+"\ntextStatus:"+textStatus+"\nerrorThrown:"+errorThrown)
			}
		}); //close $.ajax(
		}
		//poll_submit_
	},
	
	Login: function( control_id) {
		App.display_infobox();
		App.all_error_info_hide(control_id);
		
		var pb_number = $("#party_member_number").val();
		var u_pass = $("#password").val();
		var keep = ( $( '#save_me' ).attr( 'checked' ) ? 1 : 0 );
		if( pb_number != '' && u_pass != '' )
		{ 
			$.ajax({
				url: "/ajax/user/login.php",
				type: 'POST', // data distribution methods 
				data: {
					party_member_number: pb_number,
					ups: u_pass,
					keep: keep
				},
				dataType: "json", // accept the data format 
				beforeSend: function(){App.loading_show( control_id);}, //show loading just when link is clicked
				//complete: function(){App.loading_hide( control_id);}, //stop showing loading when the process is complete
				success: function( response){
					if ( response.status == 'success' ) {
						if( response.content !='')
						{
							$("#"+control_id+" > .content").html( response.content );
							
						}
						App.loading_hide( control_id );
						if( response.redirect.url !='')
						{
							if( parseInt( response.redirect.delay) > 0 )
							{
								App.redirect_url = response.redirect.url;
								setTimeout( function(){
									App.redirect( App.redirect_url );
								}, response.redirect.delay*1000);
							} else {
								App.redirect( response.redirect.url );
							}
						}
						App.information_show( control_id, response.message.info);
					} else if(response.status == 'error'){
						App.loading_hide( control_id);
						App.error_info_show( control_id, response.message.error);
						//App.display_infobox_pack( response.message );
					} else {
						$("#Enter").submit();
						//App.loading_hide( control_id );
					}
					
				},
				error: function( XMLHttpRequest, textStatus, errorThrown){
					$("#Enter").submit();
					//App.loading_hide( control_id);
					//alert("ERROR\nXMLHttpRequest:"+XMLHttpRequest+"\ntextStatus:"+textStatus+"\nerrorThrown:"+errorThrown);
				}
			}); //close $.ajax(
			return false;
		}
		return false;
	},
	
	redirect: function( url ) {
		window.location = url;
	},
	
	
	error_info_show: function( control_id, msg) {
		return $('<div class="error_info hide">'+msg+'</div>').prependTo( $( typeof(control_id) == 'object' ? control_id  : "#"+control_id).find(".block_info")).slideDown();
	},
	
	error_info_hide: function( loading_element) {
		$(loading_element).slideUp('fast',function(){$(this).remove()});
	},
	
	all_error_info_hide: function( control_id, force) {
		if( typeof(force) != undefined && force == true){
			$( typeof(control_id) == 'object' ? control_id  : "#"+control_id).find(".block_info .error_info").remove();
		}
		else
			$( typeof(control_id) == 'object' ? control_id  : "#"+control_id).find(".block_info .error_info").slideUp('fast',function(){$(this).remove()});
//		$("#"+control_id).find(".block_info > .error_info").slideUp('fast',function(){$(this).remove()});
	},
	
	information_show: function( control_id, msg, delay) {
		var el;
		el = $('<div class="information hide">'+msg+'</div>').prependTo( $("#"+control_id).find(".block_info")).slideDown();
		if( typeof(delay) != 'undefined')
			$(el).delay( delay).slideUp('fast',function(){$(this).remove()});
		return el;
//		$("#"+control_id).prepend('<div class="information hide">'+msg+'</div>');
//		$("#"+control_id+" > .information").slideDown();
	},
	
	information_hide: function( loading_element) {
		$(loading_element).slideUp('fast',function(){$(this).remove()});
	},
	
	loading_show: function( control_id) {
		$("#"+control_id).prepend('<div class="loading">Зачекайте...</div>');
		var control_content = $("#"+control_id+" .content");
//		var control_content = $("#"+control_id+" > .content");
		$("#"+control_id+" > .loading").height( control_content.innerHeight() ).width( control_content.innerWidth() ).fadeIn('fast');
	},
	
	loading_hide: function( control_id) {
		$("#"+control_id+" > .loading").fadeOut('fast', function(){$(this).remove()});
	},
	
	loading_in_background_show: function( control_id,msg) {
		return $('<div class="information hide bloader">'+msg+'</div>').prependTo( $("#"+control_id).find(".block_info")).slideDown();
		//$("#"+control_id+"").append('<div class="information hide bloader">'+msg+'</div>');
		//$("#"+control_id+" > .information").slideDown()
	},
	loading_in_background_hide: function( loading_element) {
		$(loading_element).slideUp('fast',function(){$(this).remove()});
	},
	
	set_value: function( form_id, element_name, value){
		$("#"+form_id+" [name="+element_name+"]").val(value);
	},
	send_form: function( form_id, control_id, in_background, is_auto_save){
		App.all_error_info_hide( control_id);
		var form_data = new Array();
		var loading_element;
		if( typeof(in_background) == 'undefined')
			in_background = 0;
		else
			in_background = 1;
		$("#"+form_id+" input[type!=button][type!=checkbox],#"+form_id+" textarea,#"+form_id+" input:checkbox:checked").each(function(n){
			form_data[$(this).attr('name')] = $(this).val();
//alert( $(this).attr('name') + " "+ $(this).val() );
		});
		$.ajax({
			url: $("#"+form_id).attr('action'),
			type: 'POST', // data distribution methods 
			data: {
				form_data: $.serialize( form_data)
			},
			dataType: "json", // accept the data format 
			beforeSend: function(){ if( in_background ==0 ) App.loading_show( control_id); else loading_element = App.loading_in_background_show( control_id, 'Збереження чернетки');}, //show loading just when link is clicked
			//complete: function(){App.loading_hide( control_id);}, //stop showing loading when the process is complete
			success: function( response){
				if( in_background ==0 ) App.loading_hide( control_id ); else App.loading_in_background_hide( loading_element);
				if( response.redirect.url !='')
				{
					if( parseInt( response.redirect.delay) > 0 )
					{
						App.redirect_url = response.redirect.url;
						setTimeout( function(){
							App.redirect( App.redirect_url );
						}, response.redirect.delay*1000);
					} else {
						App.redirect( response.redirect.url );
					}
				}
				if ( response.status == 'success' ) {
					if( typeof( response.result ) == 'object')
					{
						for( var i in response.result) {
							if( $("#"+form_id+" [name="+i+"]").length == 0 )
							{
								$("#"+form_id).append('<input type="hidden" name="'+i+'" value="'+response.result[ i]+'" />');
							}else{
								if( $("#"+form_id+" input:checkbox[name="+i+"]").size() > 0)
								{
									$("#"+form_id+" input:checkbox[name="+i+"]").attr('checked',( response.result[ i] ? true : false ));
								} else {
									$("#"+form_id+" [name="+i+"]").val( response.result[ i]);
								}

							}
						}
					}
					if( response.content !='')
					{
						$("#"+control_id+" > .content").html( response.content );
						
					}
					if( response.redirect.url !='')
					{
						if( parseInt( response.redirect.delay) > 0 )
						{
							App.redirect_url = response.redirect.url;
							setTimeout( function(){
								App.redirect( App.redirect_url );
							}, response.redirect.delay*1000);
						} else {
							App.redirect( response.redirect.url );
						}
					}
					App.information_show( control_id, response.message.info,3000);
				} else if(response.status == 'error'){
//alert(response.message.error);
					App.error_info_show( control_id, response.message.error);
					//App.display_infobox_pack( response.message );
				} else {
//					$("#Enter").submit();
					//App.loading_hide( control_id );
				}
				
			},
			error: function( XMLHttpRequest, textStatus, errorThrown){
				App.error_info_show( control_id, "ERROR<br />XMLHttpRequest:"+XMLHttpRequest+"<br />textStatus:"+textStatus+"<br />errorThrown:"+errorThrown);
				App.loading_hide( control_id );
			}
		}); //close $.ajax(
	}
}
