// наследовать аяксовый класс и переопределить методы в нем
function CustomAjaxClass () {}
CustomAjaxClass.prototype = generalAjaxRequest;
var obCustomAjaxClass = new CustomAjaxClass();
obCustomAjaxClass.success = function (data) {
	$(".applications_list").html(data);
	generalAjaxRequest.success();
}

function AjaxLoadIndicator(show) {
	if (show) {
		$(".ajax_loader").show();
	} else {
		$(".ajax_loader").hide();
	}
}

function changeListSort(event, ui) {
	var pos_old = ui.item.attr("sort");
	var next_el = ui.item.next();
	if(next_el.length){
		var pos_new = next_el.attr("sort")-(-1);
	} else {
		var pos_new = 1;
	}
	obCustomAjaxClass.success = function (data) {
		$(".left-collum").html(data);
		generalAjaxRequest.success();
	}
	obCustomAjaxClass.clear_params();
	obCustomAjaxClass.params.action = "sort";
	obCustomAjaxClass.params.eid = ui.item.attr("id");
	obCustomAjaxClass.params.pos_new = pos_new;
	obCustomAjaxClass.params.pos_old = pos_old;
	obCustomAjaxClass.get_link(document.location.href);
	obCustomAjaxClass.submit();
}

function changeFolderSort(event, ui) {
	var pos_old = ui.item.attr("sort");
	var prev_el = ui.item.prev();
	if(prev_el.length){
		var pos_new = prev_el.attr("sort")-(-1);
	} else {
		var pos_new = 1;
	}
	obCustomAjaxClass.success = function (data) {
		$(".right-collum").html(data);
		generalAjaxRequest.success();
	}
	obCustomAjaxClass.clear_params();
	obCustomAjaxClass.params.action = "sort_folder";
	obCustomAjaxClass.params.type = "folder";
	obCustomAjaxClass.params.fid = ui.item.attr("id");
	obCustomAjaxClass.params.pos_new = pos_new;
	obCustomAjaxClass.params.pos_old = pos_old;
	obCustomAjaxClass.get_link(document.location.href);
	obCustomAjaxClass.submit();
}

function addGetParam (href, name, val){

	var query_string, pos, arParams, curParam, url;
	var params = {};
	var paramsStr = "";

	pos = href.indexOf("?");

	// если параметры есть
	if ( pos != -1 ) {

		query_string = href.slice(pos-(-1));//только параметры
		url = href.slice(0, pos);//только url

		// если много параметров
		if( query_string.indexOf("&") != -1 ) {
			arParams = query_string.split("&");

			for( var i=0; i<arParams.length; i++ ) {

				curParam = arParams[i].split("="); // разбить на ключ - значение
				params[curParam[0]]=curParam[1];
			}
		// если один параметр
		} else {

			curParam = query_string.split("=");
			params[curParam[0]]=curParam[1];
		}
	// если параметров нет
	}else{
		url = href;
	}
	params[name]=val;
	for(var k in params){
		
		if(paramsStr.length){
			var d = "&";
		} else {
			var d = "";
		}
		paramsStr = k+"="+params[k]+d+paramsStr
	}
	
	return url+"?"+paramsStr;;

}

$(document).ready(function(){

	/*-- Удаление элемента списка --*/
	$(".delete").live("click", function(){
		if(confirm("Удалить элемент?")){
			var delBut = $(this);
			obCustomAjaxClass.success = function (data) {
				// delBut.parents(".list_item").remove();
				$(".left-collum").html(data);
				generalAjaxRequest.success();
			}
			obCustomAjaxClass.clear_params();
			obCustomAjaxClass.url = document.location.href;
			obCustomAjaxClass.params.action = "delete";
			obCustomAjaxClass.params.eid = $(this).parents(".list_item").attr("id");
			obCustomAjaxClass.submit();
		}
		return false;
	})

	/*-- Редактирование элемента списка--*/
	$(".edit").live("click", function(){
		var trEl = $(this).parents("div.list_item");
		var editBlock = $("#edit_form");
		editBlock.find(".eid").val(trEl.attr("id"));
		var text = trEl.find("h1").text();
		$(".element_list").find(".edit_form_inner").remove();
		$(".list_item_inner").show();
		trEl.append(editBlock.html());
		// Добавить в инпут название элемента
		trEl.find(".input_text").val(text).focus();
		trEl.find(".list_item_inner").hide();
		return false;
	})

	/*-- Редактирование элемента денег --*/
	$(".edit_money").live("click", function(){
		// Удалить старые
		$(".element_list").find(".edit_form_tr").remove();
		$("tr.list_item").show();

		// строка текста
		var trEl = $(this).parents("tr.list_item");
		// таблица с формой
		var editBlock = $("#edit_form").find("tbody");
		// Данные
		var textName = trEl.find(".money-table-content-info").text();
		var textVal = trEl.find(".money-table-content-amount .abs_val").text();
		var floatVal = parseFloat(textVal.replace(/\,/g,""))
		var textType = trEl.find(".money-table-content-amount").attr("typ");
		// Показать форму
		trEl.after(editBlock.html());

		$(".element_list").find("select.money_Type").val(textType);
		$(".element_list").find(".eid").val(trEl.attr("id"));
		$(".element_list").find("input.money_Name").val(textName).focus();
		$(".element_list").find("input.money_Value").val(floatVal);
		trEl.hide();
		return false;
	})

	/*-- Отправка формы редактирования --*/
//	$(".edit_form_inner form").live("submit",function(){
//		obCustomAjaxClass.get_form_params($(this));
//		obCustomAjaxClass.params.eid = $(this).parents(".list_item").attr("id");
//		obCustomAjaxClass.submit();
//		return false;
//	});

	/*-- Отмена редактирования списка--*/
	$(".change_edit").live("click",function(){
		var trEl = $(this).parents("div.list_item");
		trEl.find(".edit_form_inner").remove();
		trEl.find(".list_item_inner").show();
		return false;
	})

	/*-- Отмена редактирования денег--*/
	$(".change_edit_money").live("click",function(){
		$(".element_list").find(".edit_form_tr").remove();
		$("tr.list_item").show();
		return false;
	})

	/*-- Изменение цвета--*/
	$(".change_color").live("click",function(){
		var color = $(this).attr("color");
		var colorLink = $(this);
		obCustomAjaxClass.success = function (data) {
			colorLink.parents(".list_item").css("background-color",color);
			generalAjaxRequest.success();
		}
		obCustomAjaxClass.clear_params();
		obCustomAjaxClass.url = document.location.href;
		obCustomAjaxClass.params.action = "color";
		obCustomAjaxClass.params.color = color;
		obCustomAjaxClass.params.eid = $(this).parents(".list_item").attr("id");
		obCustomAjaxClass.submit();
		return false;
	})

	/*-- Количество элементов на странице --*/
	$(".page_elements").live("change",function(){
		var url = addGetParam(document.location.href, "onpage", $(this).val())
		document.location.href = url;
		return false;
	});

	/*-- Типы элементов на странице --*/
	$(".type_elements").live("change",function(){
		var url = addGetParam(document.location.href, "type", $(this).val())
		document.location.href = url;
		return false;
	});

	/*-- добавление папки --*/
	$(".add-folder").live("click", function(){
		$(".folder-list-menu").find(".folder_add_inner").remove();
		$(".list_item_inner ").show();
		$(".folder_add_inner").find("input").val("");
		$(this).hide();
		$(".folder_add_inner").show();
		return false;
	})

	/*-- Отмена добавления папки --*/
	$(".chancel_create_folder").live("click", function(){
		$(".folder_add_inner").hide();
		$(".add-folder").show();
		$(".list_item_inner").show();
		return false;
	})

	/*-- Удаление папки --*/
	$(".delete_folder").live("click", function(){
		if(confirm("Удалить папку?")){
			
			var delBut = $(this);
			obCustomAjaxClass.success = function (data) {
				// delBut.parents(".list_item").remove();
				document.location.reload();
				generalAjaxRequest.success();
			}
			obCustomAjaxClass.clear_params();
			obCustomAjaxClass.url = document.location.href;
			obCustomAjaxClass.params.action = "delete_folder";
			obCustomAjaxClass.params.type = "folder";
			obCustomAjaxClass.params.fid = $(this).parents(".list_item").attr("id");
			obCustomAjaxClass.submit();
		}
		return false;
	})

	/*-- Редактирование папки--*/
	$(".edit_folder").live("click", function(){
		$(".folder_add_inner").hide();
		$(".add-folder").show();
		$(".folder-list-menu").find(".folder_add_inner").remove();
		$(".list_item_inner ").show();

		var trEl = $(this).parents("li.list_item");
		var editBlock = $(".folderadd");
		var text = trEl.find(".folder_name").text();
		var pos = text.lastIndexOf("(");
		var t = text.substr(0, pos);
		var id = trEl.attr("id");
		
		
		trEl.append(editBlock.html());
		trEl.find(".input_text").val(t).focus();
		trEl.find(".fid").val(id);
		trEl.find(".folder_add_inner").show();
		trEl.find(".list_item_inner").hide();
		return false;
	})

	/*иконки редактирования при наведении*/
	$(".folder-list-menu .list_item").live("mouseover",function(){
		$(this).find(".edit_block").show();
	}).live("mouseout",function(){
		$(this).find(".edit_block").hide();
	})

	/*значения по умолчанию*/
	$(".default_input").setDefaultValue({ css : 'default-text'});

});


