$(function(){
		
	var optConf = {
			beforeSubmit: showLoading,
		    success: showResult
		},
		classBmkFolder = 'bookmark_folder',
		classBmkLink = 'bookmark_link',
		tips = $("#validateTips"),
		dlg_loading = $("#loading"),
		loading_success = $(dlg_loading).find("#success"),
		loading_error = $(dlg_loading).find("#error"),
		loading_image = $(dlg_loading).find("#image"),
		
		div_list_ntf = $("#personal_data_list"),
		inp_act_ntf = $(div_list_ntf).find("#editType"),
		inp_epage_ntf = $(div_list_ntf).find("#editPage"),
		inp_dtype_ntf = $(div_list_ntf).find("#dataType"),
		btn_toggleAll_ntf = $(div_list_ntf).find("#toggleAll"),
		btn_applyChecked_ntf = $(div_list_ntf).find("#applyChecked"),
		btn_deleteChecked_ntf = $(div_list_ntf).find("#deleteChecked"),
		btn_applyItem_ntf = $(div_list_ntf).find(".dataActions .applyItem"),
		btn_deleteItem_ntf = $(div_list_ntf).find(".dataActions .deleteItem"),
		
		dlg_edit_bmk = $("#bookmarkDialog"),
		frm_edit_bmk = $(dlg_edit_bmk).find("#bmForm"),
		opt_default = $(frm_edit_bmk).find("#defOpt"),
		inp_title_bmk = $(frm_edit_bmk).find("#title"),
		inp_titleFix_bmk = $(frm_edit_bmk).find("#titleFix"),
		inp_descr_bmk = $(frm_edit_bmk).find("#description"),
		inp_subtype_bmk = $(frm_edit_bmk).find("#subtype"),
		inp_dataType_bmk = $(frm_edit_bmk).find("#dataType"),
		lbl_inp_data_bmk = $(frm_edit_bmk).find("#lbdata"),
		inp_data_bmk = $(frm_edit_bmk).find("#data"),
		inp_act_bmk = $(frm_edit_bmk).find("#editType"),
		inp_selFold_bmk = $(frm_edit_bmk).find("#selectedFolder"),
		inp_id_bmk = $(frm_edit_bmk).find("#bmid"),
		inp_bldFldUrl_bmk = $(frm_edit_bmk).find("#buildFoldersUrl"),
		
		div_bmk = $("#bookmarks"),
		folder_type = $(div_bmk).find("#ftype").val(),
		link_type = $(div_bmk).find("#ltype").val(),
		div_list_bmk = $(div_bmk).find("#bookmarks_list"),
		btn_editView_bmk = $(div_bmk).find("#editView"),
		span_edit_bmk = $(div_list_bmk).find(".bmk_edit"),
		btn_edit_bmk = $(div_list_bmk).find(".editBmk"),
		btn_del_bmk = $(div_list_bmk).find(".deleteBmk"),
		dlg_delConfirm_bmk = $("#deleteBmConfirmation"),
		
		tree_folder_bmk = $(div_list_bmk).find(".folder"),
		bookmarks_tree = $(div_list_bmk).find("ul:first"),
		
		fix_frm_add_bmk = $("#bmFormFix"),
		fix_btn_submit = $(fix_frm_add_bmk).find("#submit"),
		fix_div_add_bmk = $("#add_bookmark_fix"),
		btn_open_fix_div = $("#open_add_fix"),
		btn_close_fix_div = $(fix_frm_add_bmk).find("#close"),
		fix_div_msg = $(fix_div_add_bmk).find("#message");
	
/** НАЧАЛО: Настройки личного кабинета **/
	// привязываем событие submit к форме
	$("#personality_settings").find(".userConfigForm").submit(function() { 
		$(this).ajaxSubmit(optConf); 
		return false;
	});

	// вызов перед передачей данных
	function showLoading(formData, jqForm, options) { 
		$(loading_success).hide();
		$(loading_error).hide();
		$(loading_image).show();
		$(dlg_loading).dialog('open');
	    return true; 
	};
	 
	// вызов после получения ответа 
	function showResult(responseText, statusText)  {
		responseText = jQuery.trim(responseText);
		$(loading_image).hide();
		if (responseText == "success"){
			$(loading_success).show();
		} else {
			$(loading_error).show();
		}
		setTimeout(function(){$(dlg_loading).dialog('close')}, 1000);
		return true;
	};
	
	$("#personality_settings").accordion({
		collapsible: true
	});
	
	$(dlg_loading).dialog({
		resizable: false,
		draggable: false,
		minHeight: 100,
		bgiframe: true,
		modal: true,
		autoOpen: false
	});
/** КОНЕЦ: Настройки линого кабинета **/
	
/** НАЧАЛО: Уведомления **/	
	$(btn_toggleAll_ntf).click(function(){
		$(div_list_ntf).find(":checkbox").each(function(){
			if ($(this).attr('checked')){
				$(this).removeAttr('checked');
			} else {
				$(this).attr('checked','checked');
			}
		});
	});
	
	$(btn_applyChecked_ntf).click(function (){
		var items = $('.personal_data_item input[type=checkbox]:checked');
		$(inp_act_ntf).val('apply');
		doAction(items);
	});
	
	$(btn_deleteChecked_ntf).click(function (){
		var items = $('.personal_data_item input[type=checkbox]:checked');
		$(inp_act_ntf).val('delete');
		doAction(items);
	});
	
	$(btn_applyItem_ntf).click(function (){
		var item = $(this).parent().parent().children(".dataChooser").children("input[type=checkbox]");
		$(inp_act_ntf).val('apply');
		doAction(item);
	});
	
	$(btn_deleteItem_ntf).click(function (){
		var item = $(this).parent().parent().children(".dataChooser").children("input[type=checkbox]");
		$(inp_act_ntf).val('delete');
		doAction(item);
	});
	
	function doAction(elements){
		elements = $(elements).add($(inp_act_ntf)).add($(inp_dtype_ntf));
		$.post($(inp_epage_ntf).val(), elements, function (){location.reload(true)});
	};
/** КОНЕЦ: Уведомления **/
	
/** НАЧАЛО: Закладки **/
	function updateTips(t) {
		tips.text(t).effect("highlight",{},2000);
	};

	$(frm_edit_bmk).validate({
	  	submitHandler: function(form) {
	  		$(form).ajaxSubmit({success: bmActionResults});
	    },
	    focusInvalid: false,
	    onfocusout: false,
	    rules: {
	      title: {
	      	required: true,
	      	minlength: 1,
	      	maxlength: 80
	      },
	      description: {
		    maxlength: 200
		  }
	    },
	    messages: {
	      title: {
	        required: "Укажите заголовок, пожалуйста.",
	        maxlength: "Заголовок не должен быть более 80 символов."
	      },
	      description: {
		    maxlength: "Описание не должно быть более 200 символов."
		  },
	      data: {
	    	required: "Укажите ссылку.",
	      	url: "Введите корректный URL."
	      }
	    }
	});
	
	function bmActionResults(responseText, statusText)  {
		responseText = jQuery.trim(responseText);
		if (responseText == "success"){
			location.reload(true);
			$(dlg_edit_bmk).dialog('close');
		} else {
			updateTips("Произошла ошибка при выполнении операции!");
			setTimeout(function(){$(dlg_edit_bmk).dialog('close')}, 1500);
		}
		return true;
	}
	
	function createFoldersSelect(options){
		$.post($(inp_bldFldUrl_bmk).val(), options, function(data){
			$(opt_default).after(data);
		});
	};
	
	$(dlg_edit_bmk).dialog({
		bgiframe: true,
		autoOpen: false,
		draggable: false,
		position: ['center',100],
		modal: true,
		show: 'highlight',
		hide: 'highlight',
		open: function (){
			if ($(inp_act_bmk).val()=="bmkedit"){
				var title = $(inp_titleFix_bmk).val(),
					selectedFolder = $(inp_selFold_bmk).val(),
					editId = $(inp_id_bmk).val();
				createFoldersSelect({dfid:editId, sfid:selectedFolder});
				if ($.browser.msie && ($.browser.version == 6 || $.browser.version == 7)){
//					$(this).children("form").children("fieldset").children("select").children("option[disabled=disabled]").remove();
					$(this).find("option[disabled=disabled]").remove();
				}
				$(inp_title_bmk).val(title);
			} else {
				createFoldersSelect({});
			}
			return true;
		},
		buttons: {
			'Отправить данные' : function() {
				$(frm_edit_bmk).submit();
			},
			'Закрыть': function() {
				$(this).dialog('close');
			}
		},
		close: function() {
			$(frm_edit_bmk).find("label[generated='true']").remove();
			$(frm_edit_bmk).find("option[class='generated']").remove();
//			$("#bmForm.generated").remove();
			$(frm_edit_bmk).find("input.error").removeClass("error");
			$(frm_edit_bmk).resetForm();
			$(inp_data_bmk).rules('remove', "required url");
			$("#tipsErrMsg").remove();
		}
	});
	
	$(div_list_bmk).find(".bmkfolder, .bmklink a").tooltip({ 
		track: true, 
	    delay: 300, 
	    showURL: true, 
	    bodyHandler: function() {
			var div, body;	
			if ($(this).is("span")){
				div = $(this).next();
				body = "<h3>Папка</h3>";
			} else if($(this).is("a")){
				div = $(this).parent("span").next();
				body = "<h3>Закладка</h3>";
			}
			if ($(div).text()){
				body += "<b>Описание:</b> "+$(div).text()+"<br/>";
			}
			body += "<b>Создана:</b> "+$(div).attr('title');
			return body;
	    },
	    fixPNG: true, 
	    opacity: 0.95
	});
	
	$(btn_editView_bmk).click(function (){
		$(this).toggleClass("current");
		if ($(span_edit_bmk).css("display") == "inline"){
			$(span_edit_bmk).hide();
		} else {
			$(span_edit_bmk).css("display", "inline");
		}
		return true;
	});
	
	$(btn_edit_bmk).click(function(){
		$(inp_act_bmk).val("bmkedit");
		var psp = $(this).parent("span").next(),
			pli = $(psp).parent("li"),
			vst;
		$(inp_id_bmk).val($(psp).attr("id"));
		$(inp_selFold_bmk).val($(psp).next().attr("id"));
		$(inp_descr_bmk).val($(psp).next().text());
		$(inp_titleFix_bmk).val($(psp).text());
		if (pli.hasClass(classBmkFolder)){
			$(inp_dataType_bmk).val(folder_type);
			$(lbl_inp_data_bmk).hide();
			$(inp_data_bmk).hide();
		} else if (pli.hasClass(classBmkLink)){
			$(inp_data_bmk).val($(psp).children("a").attr("href"));
			$(inp_dataType_bmk).val(link_type);
			$(lbl_inp_data_bmk).show();
			$(inp_data_bmk).show();
			$(inp_data_bmk).rules('add', {required: true, url: true});
		}
		$(dlg_edit_bmk).dialog('option', 'title', 'Редактирование')
						.dialog('open');
		return true;
	});
	
	$(btn_del_bmk).click(function(){
		var pspn = $(this).parent("span").next(),
			pli = $(pspn).parent("li"),
			psp = $(this).parent("span"),
			folder = 'false';
		if (pli.hasClass(classBmkFolder)){
			folder = 'true';
			$(inp_dataType_bmk).val(folder_type);
			$(dlg_delConfirm_bmk).find("p:last").show();
		} else if (pli.hasClass(classBmkLink)){
			$(inp_dataType_bmk).val(link_type);
		}
		$(inp_id_bmk).val($(pspn).attr("id"));
		$(dlg_delConfirm_bmk).dialog('option', 'open', 
				function(){
					var msg = '',
						folderMsg_p = $(dlg_delConfirm_bmk).find("p:last");
					if (folder == 'true'){
						msg = 'Вы уверены, что хотите удалить папку ';
						$(folderMsg_p).show();
					} else {
						msg = 'Вы уверены, что хотите удалить закладку ';
						$(folderMsg_p).hide();
					}
					$(dlg_delConfirm_bmk).find("p:first").append(msg+"<b>"+$(pspn).text()+"</b>?");
				}).dialog('open');
	});
	
	$(dlg_delConfirm_bmk).dialog({
		bgiframe: true,
		autoOpen: false,
		draggable: false,
		position: ['center',100],
		modal: true,
		title: 'Удаление',
		show: 'highlight',
		hide: 'highlight',
		buttons: {
		'Удалить' : function() {
			$.post($(frm_edit_bmk).attr('action'),{act:'delete',
													item:$(inp_id_bmk).val(),
													type:$(inp_dataType_bmk).val()},
				function (){
					$("#bookmarks_list span[id="+$(inp_id_bmk).val()+"]").parent("li").remove();
				});
			$(this).dialog('close');
		},
		'Отмена': function() {
			$(this).dialog('close');
		}
	},
	close: function() {
		$(this).find("p:first").empty();
	}
	});
	
	
	$(bookmarks_tree).addClass('treeview').treeview({
		 collapsed: true,
		 animated: 	"fast",
		 control:	"#bmkTreeControl",
		 persist: 	"cookie",
		 cookieId: 	"ppi_bmk_treeview"
	}); 
	
//	// вешаем событие на клик по ссылке
//	$(tree_folder_bmk).click(function () {
//		// анимация раскрытия узла и изменение состояния
//		var ul=$('ul:first',this.parentNode);
//		// если поддерево есть
//		if (ul.length) {
//			$(this.parentNode).toggleClass('open');
//			ul.slideToggle(300); //свернуть или развернуть
//		}
//	});
	
	// Открытие div'а для бобавление закладки
	$(btn_open_fix_div).click(function(){
		$(this).hide("slow");
		$(fix_div_msg).empty();
		$(this).next().show("slow");
		return true;
	});
	// Скрытие div'а для добавления закладки
	$(btn_close_fix_div).click(function(){
		$(btn_open_fix_div).show("slow");
		$(fix_div_msg).empty();
		$(fix_div_add_bmk).hide("slow");
		return true;
	});
	
	$(fix_btn_submit).click(function (){
		$(fix_frm_add_bmk).find("#data").val(window.location.href);
		$(fix_frm_add_bmk).submit();
	});
	
	$(fix_frm_add_bmk).validate({
	  	submitHandler: function(form) {
	  		$(form).ajaxSubmit({success: bmActionResultsFix});
	    },
	    focusInvalid: false,
	    onfocusout: false,
	    rules:{ title: 			{required: true, minlength: 0,maxlength: 80},
	    		description: 	{maxlength: 200}},
	    messages:{title:		{required: "Укажите заголовок, пожалуйста.",
	    		  		 		 maxlength: "Заголовок не должен быть более 80 символов."},
	    	  	  description:	{maxlength: "Описание не должно быть более 200 символов."}}
	});
	
	function bmActionResultsFix(responseText, statusText)  {
		responseText = jQuery.trim(responseText);
		if (responseText == "success"){
			$(fix_div_msg).css('color','green').text("Добавлено.").effect("highlight",{},1000);
			setTimeout(function(){$(fix_div_add_bmk).hide("slow");
								  $(fix_div_msg).empty();
								  $(btn_open_fix_div).show("slow");}, 1000);
		} else {
			$(fix_div_msg).css('color','red')
				  .text("Ошибка при добавлении закладки.")
				  .effect("highlight",{},1000);
			setTimeout(function(){}, 1500);
		}
		return true;
	}
});

function openBookmarkDialog(act, type, title, showLink){
	var form = $("#bmForm"),
		inp_action = $(form).find("#editType"),
		inp_dataType = $(form).find("#dataType"),
		inp_data = $(form).find("#data"),
		lbl_data = $(inp_data).prev();
		
	$(inp_action).val(act);
	$(inp_dataType).val(type);
	if (!showLink){
		$(inp_data).hide();
		$(lbl_data).hide();
	} else {
		$(inp_data).show();
		$(lbl_data).show();
		$(inp_data).rules('add', {required: true, url: true});
	}
	$('#bookmarkDialog').dialog('option', 'title', title)
						.dialog('open');
};

