document.observe("dom:loaded", function() {

	function fckeditor_link_buttons(text) {
		var val = $$(text);

		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();
				if (element.getAttribute('ed') != undefined && element.getAttribute('func') != undefined) 
					FCKeditorGetEditor(element.getAttribute('ed')).Commands.GetCommand(element.getAttribute('func')).Execute();
			});
		}
	}
	
	fckeditor_link_buttons('.fck_func');

	if ($('question_tematics')) {
		$('question_tematics').observe('click', function() {
			new Effect.toggle($('rav_check'), 'appear', {duration: 0.5, delay: 0});
		});
	}
	
	$('rav_check_div_close').observe('click', function() {
		new Effect.toggle($('rav_check'), 'appear', {duration: 0.5, delay: 0});
	});
	
	$('rav_check_div_close_1').observe('click', function() {
		new Effect.toggle($('rav_check'), 'appear', {duration: 0.5, delay: 0});
	});
	
	if ( $('question_answer_click')) {
		$('question_answer_click').observe('click', function() {
			var params = new Hash();
			
			var val = $$('.check_cat');
			var _check = 0;

			for (var i = 0; i < val.length; i++) {
				params.set(val[i].name, val[i].getValue());
				if (val[i].getValue()) _check = 1;
			}

			if (! _check) {
				alert('Выберите категорию');
				return;
			}
			
			params.set('question_save', $('question_save').getValue());
			var text = FCKeditorGetValue('question_text');
			if (text == '') {
				alert('Введите текст ответа');
				return;
			}
			
			params.set('question_text', text);
			params.set('question_id', $('question_id').getValue());
			
			new Ajax.Request($('question_add_answer_sid').getValue(), {
				method: 'post',
				parameters: params,
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON();
					
					if (json.result == 'true') {
						window.location.reload();
					}
				}
			});
		});
	}

	if ( $('question_save_click')) {
		$('question_save_click').observe('click', function() {
			var params = new Hash();
			
			var val = $$('.check_cat');
			var _check = 0;

			for (var i = 0; i < val.length; i++) {
				params.set(val[i].name, val[i].getValue());
				if (val[i].getValue()) _check = 1;
			}

			if (! _check) {
				alert('Выберите категорию');
				return;
			}
			
			params.set('question_save', $('question_save').getValue());
			var text = FCKeditorGetValue('question_text');
			if (text == '') {
				alert('Введите текст ответа');
				return;
			}
			
			params.set('question_text', text);
			params.set('question_id', $('question_id').getValue());
			params.set('question_only_save', 1); // !!!!!!!!!!!!!!!!!
			
			new Ajax.Request($('question_add_answer_sid').getValue(), {
				method: 'post',
				parameters: params,
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON();
					
					if (json.result == 'true') {
						alert('Сохранено');
					}
				}
			});
		});
	}
	
	{ // добавить комментарий
		var val = $$('.add_comment_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				new Ajax.Request($('question_add_comment_sid').getValue(), {
					method: 'post',
					parameters: { 'answer_id': element.getAttribute('answerid'), 'parent_id': element.getAttribute('parentid'), 'type': 'form'},
					onSuccess: function(transport) {
						var json = transport.responseText.evalJSON();
						
						if (json.id && json.form) {
							$(json.id).innerHTML = json.form;
							
							fckeditor_link_buttons('#' + json.id + ' .fck_func');

							$(json.id + '_link_cancel').observe('click', function(event) {
								var element = event.element();
								new Effect.BlindUp($(element.getAttribute('divid')), 'appear', {duration: 0.5, delay: 0});
							});

							$(json.id + '_link_submit').observe('click', function(event) {
								var element = event.element();
								var elem = element.getAttribute('divid');
								
								new Ajax.Request($('question_add_comment_sid').getValue(), {
									method: 'post',
									parameters: {
										text: FCKeditorGetValue(elem + '_text'),
										answer_id: $(elem + '_a').getValue(),
										parent_id: $(elem + '_p').getValue()
									},
									onSuccess: function(transport) {
										var json = transport.responseText.evalJSON();
										
										if (json.result == 'true') {
											window.location.reload();
										}
									}
								});
							});

							new Effect.BlindDown($(json.id), 'appear', {duration: 0.5, delay: 0});
						}
					}
				});
			});
		}
	}

	{ // редактировать комментарии
		var val = $$('.edit_comment_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				new Ajax.Request($('question_edit_comment_sid').getValue(), {
					method: 'post',
					parameters: { 'answer_id': element.getAttribute('answerid'), 'cid': element.getAttribute('cid'), 'type': 'form'},
					onSuccess: function(transport) {
						var json = transport.responseText.evalJSON();
						
						if (json.id && json.form) {
							$(json.id).innerHTML = json.form;

							fckeditor_link_buttons('#' + json.id + ' .fck_func');
							
							$(json.id + '_link_cancel').observe('click', function(event) {
								var element = event.element();
								new Effect.BlindUp($(element.getAttribute('divid')), 'appear', {duration: 0.5, delay: 0});
							});

							$(json.id + '_link_submit').observe('click', function(event) {
								var element = event.element();
								var elem = element.getAttribute('divid');
								
								new Ajax.Request($('question_edit_comment_sid').getValue(), {
									method: 'post',
									parameters: {
										text: FCKeditorGetValue(elem + '_text'),
										cid: $(elem + '_p').getValue()
									},
									onSuccess: function(transport) {
										var json = transport.responseText.evalJSON();
										
										if (json.result == 'true') {
											window.location.reload();
										}
									}
								});
							});

							new Effect.BlindDown($(json.id), 'appear', {duration: 0.5, delay: 0});
						}
					}
				});
			});
		}
	}

	{ // удалить комментарии
		var val = $$('.delete_comment_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				if (confirm('Вы уверены что хотите удалить ответ и все комментарии к нему ?')) {
					new Ajax.Request($('question_delete_comment_sid').getValue(), {
						method: 'post',
						parameters: { 'answer_id': element.getAttribute('answerid'), 'cid': element.getAttribute('cid')},
						onSuccess: function(transport) {
							var json = transport.responseText.evalJSON();
							if (json.id) {
								new Effect.BlindUp($(json.id), {duration: 0.5, delay: 0});
							}
						}
					});
				}
			});
		}
	}	

	{ // редактировать ответы
		var val = $$('.edit_answer_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				new Ajax.Request($('question_edit_answer_sid').getValue(), {
					method: 'post',
					parameters: { 'answer_id': element.getAttribute('answerid'), 'type': 'form'},
					onSuccess: function(transport) {
						var json = transport.responseText.evalJSON();
						
						if (json.id && json.form) {
							$(json.id).innerHTML = json.form;

							fckeditor_link_buttons('#' + json.id + ' .fck_func');
							
							$(json.id + '_link_cancel').observe('click', function(event) {
								var element = event.element();
								new Effect.BlindUp($(element.getAttribute('divid')), 'appear', {duration: 0.5, delay: 0});
							});

							$(json.id + '_link_submit').observe('click', function(event) {
								var element = event.element();
								var elem = element.getAttribute('divid');
								
								new Ajax.Request($('question_edit_answer_sid').getValue(), {
									method: 'post',
									parameters: {
										text: FCKeditorGetValue(elem + '_text'),
										answer_id: $(elem + '_a').getValue()
									},
									onSuccess: function(transport) {
										var json = transport.responseText.evalJSON();
										
										if (json.result == 'true') {
											window.location.reload();
										}
									}
								});
							});

							new Effect.BlindDown($(json.id), 'appear', {duration: 0.5, delay: 0});
						}
					}
				});
			});
		}
	}

	{ // редактировать свои ответы
		var val = $$('.edit_own_answer_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				new Ajax.Request($('question_edit_own_answer_sid').getValue(), {
					method: 'post',
					parameters: { 'answer_id': element.getAttribute('answerid'), 'type': 'form'},
					onSuccess: function(transport) {
						var json = transport.responseText.evalJSON();
						
						if (json.id && json.form) {
							$(json.id).innerHTML = json.form;

							fckeditor_link_buttons('#' + json.id + ' .fck_func');
							
							$(json.id + '_link_cancel').observe('click', function(event) {
								var element = event.element();
								new Effect.BlindUp($(element.getAttribute('divid')), 'appear', {duration: 0.5, delay: 0});
							});

							$(json.id + '_link_submit').observe('click', function(event) {
								var element = event.element();
								var elem = element.getAttribute('divid');
								
								new Ajax.Request($('question_edit_own_answer_sid').getValue(), {
									method: 'post',
									parameters: {
										text: FCKeditorGetValue(elem + '_text'),
										answer_id: $(elem + '_a').getValue()
									},
									onSuccess: function(transport) {
										var json = transport.responseText.evalJSON();
										
										if (json.result == 'true') {
											window.location.reload();
										}
									}
								});
							});

							new Effect.BlindDown($(json.id), 'appear', {duration: 0.5, delay: 0});
						}
					}
				});
			});
		}
	}
	
	{ // удалить ответы
		var val = $$('.delete_answer_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				if (confirm('Вы уверены что хотите удалить ответ и все комментарии к нему ?')) {
					new Ajax.Request($('question_delete_answer_sid').getValue(), {
						method: 'post',
						parameters: { 'answer_id': element.getAttribute('answerid')},
						onSuccess: function(transport) {
							var json = transport.responseText.evalJSON();
							if (json.id) {
								new Effect.BlindUp($(json.id), {duration: 0.5, delay: 0});
							}
						}
					});
				}
			});
		}
	}

	{ // удалить свои ответы
		var val = $$('.delete_own_answer_click');
		for (var i = 0; i < val.length; i++) {
			val[i].observe('click', function(event) {
				var element = event.element();

				if (confirm('Вы уверены что хотите удалить ответ и все комментарии к нему ?')) {
					new Ajax.Request($('question_delete_own_answer_sid').getValue(), {
						method: 'post',
						parameters: { 'answer_id': element.getAttribute('answerid')},
						onSuccess: function(transport) {
							var json = transport.responseText.evalJSON();
							if (json.id) {
								new Effect.BlindUp($(json.id), {duration: 0.5, delay: 0});
							}
						}
					});
				}
			});
		}
	}
	
	// редактировать вопрос
	if ($('question_edit_click')) {
		$('question_edit_click').observe('click', function(event) {
			var element = event.element();
			new Ajax.Request($('question_edit_sid').getValue(), {
				method: 'post',
				parameters: { 'q_id': element.getAttribute('qid'), 'type': 'form'},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON();
					
					if (json.id && json.form) {
						$(json.id).innerHTML = json.form;

						fckeditor_link_buttons('#' + json.id + ' .fck_func');
						
						$(json.id + '_link_cancel').observe('click', function(event) {
							var element = event.element();
							new Effect.BlindUp($(element.getAttribute('divid')), 'appear', {duration: 0.5, delay: 0});
						});

						$(json.id + '_link_submit').observe('click', function(event) {
							var element = event.element();
							var elem = element.getAttribute('divid');

                            var params = {
                                text: FCKeditorGetValue(elem + '_text'),
                                q_id: $(elem + '_a').getValue(),
                                tags: $(elem + '_tags').getValue(),
                                save: $(elem + '_save').getValue()
                            };

                            var val1 = $$('.check_edit_cat');
                            for (var j = 0; j < val1.length; j++) {
                                if (val1[j].getValue() == 'on') params[val1[j].name] = 1;
                            }

							new Ajax.Request($('question_edit_sid').getValue(), {
								method: 'post',
								parameters: params,
								onSuccess: function(transport) {
									var json = transport.responseText.evalJSON();
									
									if (json.result == 'true') {
										window.location.reload();
									}
								}
							});
						});

						new Effect.BlindDown($(json.id), 'appear', {duration: 0.5, delay: 0});
					}
				}
			});
		});
	}
	
	if ($('question_delete_click')) {
		$('question_delete_click').observe('click', function(event) {
			var element = event.element();
			if (confirm('Вы уверены что хотите удалить вопрос ?')) {
				new Ajax.Request($('question_delete_sid').getValue(), {
					method: 'post',
					parameters: {
						q_id: element.getAttribute('qid')
					},
					onSuccess: function(transport) {
						var json = transport.responseText.evalJSON();
						
						if (json.result == 'true') {
							location.href = '/lenta/';
						}
					}
				});
			}
		});
	}

	if ($('question_reserved_click')) {
		$('question_reserved_click').observe('click', function(event) {
			var element = event.element();
			new Ajax.Request($('question_reserved_sid').getValue(), {
				method: 'post',
				parameters: {
					q_id: element.getAttribute('qid')
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON();
					
					if (json.result == 'true') {
						alert('Забронировано');
					}
				}
			});
		});
	}

	if ($('question_add_favorite_click')) {
		$('question_add_favorite_click').observe('click', function(event) {
			var element = event.element();
			new Ajax.Request($('question_add_favorite_sid').getValue(), {
				method: 'post',
				parameters: {
					q_id: element.getAttribute('qid')
				},
				onSuccess: function(transport) {
					var json = transport.responseText.evalJSON();
					
					if (json.result == 'true') {
						alert('Добавлено в избранное');
					}
				}
			});
		});
	}
});
