function typicalPage(){}

/**
* метод скрывает или выводит блок с типом
*/
typicalPage.showOrHideType = function(element) {
	if($(element).val() == 'on') {
		if($('#eventTypes').length) {
			$('#eventTypes').show();
		}
		else {
			var strToAppend = '<div id="eventTypes">' +
			  addDelete.convertHtmlToLine(typicalPage.addEventType('TypicalPage[EventType]'), 0) +
			  '<a href="#" onclick="addDelete.addElement(\'typicalPage.addEventType\', \'eventTypes\', \'TypicalPage[EventType]\', true);return false;">Добавить</a>' +
			'</div>';
			$(element).after(strToAppend);
		}
	}
  else
    $('#eventTypes').hide();
};

/**
* метод скрывает или выводит блок с типом
*/
typicalPage.showOrHideType = function(element) {
	if($(element).val() == 'on') {
		if($('#guideTypes').length) {
			$('#guideTypes').show();
		}
		else {
			var strToAppend = '<table id="guideTypes" cellpadding="0" cellspacing="0">' +
			  addDelete.convertHtmlToLine(typicalPage.addType('TypicalPage[GuideType]'), 0) +
			  '<tr><td colspan="2"><a href="#" onclick="addDelete.addElement(\'typicalPage.addType\', \'guideTypes\', \'TypicalPage[GuideType]\', true);return false;">Добавить</a></td>' +
			'</table>';
			$(element).after(strToAppend);
		}
	}
  else
    $('#guideTypes').hide();
};

/**
* метод скрывает или выводит блок с сервисом
*/
typicalPage.showOrHideService = function(element) {
	if($(element).val() == 'on') {
		if($('#guideServices').length) {
			$('#guideServices').show();
		}
		else {
			var strToAppend = '<table id="guideServices" cellspacing="0" cellpadding="0">' +
			  addDelete.convertHtmlToLine(typicalPage.addService('TypicalPage[GuideService]'), 0) +
			  '<tr><td colspan="2"><a href="#" onclick="addDelete.addElement(\'typicalPage.addService\', \'guideServices\', \'TypicalPage[GuideService]\', true);return false;">Добавить</a></td></tr>' +
			'</table>';
			$(element).after(strToAppend);
		}
	}
  else
    $('#guideServices').hide();
};

/**
* html-Код, добавляющий тип
*/
typicalPage.addType = function(nameStart) {
	var retStr = '<tr class="collectionRow" elementNumber="str_replace">' +
	  '<td><input type="text" class="standardText" maxlength="32" value="" name="' + nameStart + '[str_replace][guide_type_name]" />' +
	  	'<input type="hidden" value="" name="' + nameStart + '[str_replace][sort_num]" class="sort_num" />' +
	    '</td><td><a href="#" onclick="addDelete.deleteRowElement(\'guideTypes\', str_replace);return false;">Удалить</a>' +
	  '</td>' +
  '</div>';
	return retStr;
};

typicalPage.updateSort = function(id) {
	$("#"+id).tableDnD({
    onDrop: function(table, row) {
			typicalPage.setSortNums(id);
    }
	});
	typicalPage.setSortNums(id);
}

typicalPage.setSortNums = function(id) {
	var els = $("#"+id).find(".sort_num").get();
	var i=0;
	$.each(els, function() {
		$(this).val(i);
		i++;
	});
}
/**
* html-Код, добавляющий тип
*/
typicalPage.addEventType = function(nameStart) {
	var retStr = '<div class="collectionRow" elementNumber="str_replace">' +
	  '<p><input type="text" class="standardText" maxlength="32" value="" name="' + nameStart + '[str_replace][event_type_name]" />' +
	    '<a href="#" onclick="addDelete.deleteRowElement(\'eventTypes\', str_replace);return false;">Удалить</a>' +
	  '</p>' +
  '</div>';
	return retStr;
};
/**
* html-Код, добавляющий cсерис
*/
typicalPage.addService = function(nameStart) {
	var retStr = '<tr class="collectionRow" elementNumber="str_replace">' +
	  '<td><input type="text" class="standardText" maxlength="32" value="" name="' + nameStart + '[str_replace][guide_service_name]" />' +
	  '<input type="hidden" value="" name="' + nameStart + '[str_replace][sort_num]" class="sort_num" />' +
	    '</td><td><a href="#" onclick="addDelete.deleteRowElement(\'guideServices\', str_replace);return false;">Удалить</a>' +
	  '</td>' +
  '</tr>';
	return retStr;
};



typicalPage.noisFolder = function(){
	if($('#TypicalPage_is_object:checked').val() == 'on')
		$("#TypicalPage_page_menu_name").parent().parent().show();
	$("#TypicalPage_no_comments").parent().parent().show();
	$("#TypicalPage_no_marks").parent().parent().show();
	$("#TypicalPage_description").parent().parent().show();
	$("#TypicalPage_str_tags").parent().parent().show();
	$("#TypicalPage_annotation").parent().parent().show();
	$("#TypicalPage_show_after").parent().parent().show();
	$("#TypicalPage_show_until").parent().parent().show();
	$("#TypicalPage_pic").parent().parent().show();
	$("#TypicalPage_is_object").parent().parent().show();

	$("#TypicalPage_is_category").attr("onClick", "typicalPage.isFolder();");
}

typicalPage.isFolder = function(){
	$("#TypicalPage_no_comments").parent().parent().hide();
	$("#TypicalPage_no_marks").parent().parent().hide();
	$("#TypicalPage_page_menu_name").parent().parent().hide();
	$("#TypicalPage_description").parent().parent().hide();
  if($("#TypicalPage_str_tags").attr('secondLevel') != '1') $("#TypicalPage_str_tags").parent().parent().hide();
	$("#TypicalPage_annotation").parent().parent().hide();
	$("#TypicalPage_show_after").parent().parent().hide();
	$("#TypicalPage_show_until").parent().parent().hide();
	$("#TypicalPage_pic").parent().parent().hide();
	$("#TypicalPage_is_object").parent().parent().hide();

	$("#TypicalPage_is_category").attr("onClick", "typicalPage.noisFolder();");
}

typicalPage.noisObject = function(pageType){
	if(pageType == 2){
		$("#event_start_date").parent().parent().hide();
		$("#event_end_date").parent().parent().hide();
		$("#TypicalPage_several_day").parent().parent().hide();
		$("#TypicalPage_peoples_count").parent().parent().hide();
		$("#TypicalPage_place").parent().parent().hide();
		$("#TypicalPage_price").parent().parent().hide();
		$("#TypicalPage_event_type").parent().parent().hide();
		$("#TypicalPage_event_comment").parent().parent().hide();
		$("#TypicalPage_organizer").parent().parent().hide();
	}
	if(pageType == 3){
		$("#TypicalPage_hotel").parent().parent().hide();
		$("#TypicalPage_transport").parent().parent().hide();
	}
	$("#TypicalPage_page_menu_name").parent().parent().hide();
	$("#TypicalPage_is_object").attr("onClick", "typicalPage.isObject(" + pageType + ");");
}

typicalPage.isObject = function(pageType){
	if(pageType == 2){
		$("#event_start_date").parent().parent().show();
		$("#event_end_date").parent().parent().show();
		$("#TypicalPage_several_day").parent().parent().show();
		$("#TypicalPage_peoples_count").parent().parent().show();
		$("#TypicalPage_place").parent().parent().show();
		$("#TypicalPage_price").parent().parent().show();
		$("#TypicalPage_event_type").parent().parent().show();
		$("#TypicalPage_event_comment").parent().parent().show();
		$("#TypicalPage_organizer").parent().parent().show();
	}
	if(pageType == 3){
		$("#TypicalPage_hotel").parent().parent().show();
		$("#TypicalPage_transport").parent().parent().show();
	}
	$("#TypicalPage_page_menu_name").parent().parent().show();
	$("#TypicalPage_is_object").attr("onClick", "typicalPage.noisObject(" + pageType + ");");
}

typicalPage.openTip = function(item, id, x, y){
//	id = '#addBlock';
	var iLeft = $(item).offset().left;
	var iTop = $(item).offset().top;
	$(id).css('left', (iLeft + x));
	$(id).css('top', iTop + y);
	$('body').append($(id));

	$(".addBlockLower").hide();
//	$(id).css('display', 'block');
	$(id).show();
}

typicalPage.openCalendarTip = function(item, id, content, date){
	$('#calendarTip').css('display', 'none');
	$('#putContentHere').empty();
	$('#caledarData').empty();
	var iLeft = $(item).offset().left;
	var iTop = $(item).offset().top;
	$('#calendarTip').css('left', iLeft - 260);
	$('#calendarTip').css('top', iTop + 15);
	$('#putContentHere').append(content);
	$('#caledarData').append(date);
	$('#calendarTip').show();

}

typicalPage.closeDiv = function(id){
	$(id).css('display', 'none');
}
typicalPage.changeStatus = function(id, status){
	$.post(
			W_AJAX + "changeStatus",
			{
				idPage : id,
				status : status
			},
			'',
			"json"
		);
	if(status == 2){
		$(".statusImg" + id).attr("src", W_IMAGES + "icons/hidden.gif");
		$(".statusImg" + id).attr("title", "Опубликовано. Нажмите, чтобы скрыть.");
		$(".statusA" + id).attr("href", "javascript:typicalPage.changeStatus(" + id + ", 3);");
	}
	if(status == 3){
		$(".statusImg" + id).attr("src", W_IMAGES + "icons/publish.gif");
		$(".statusImg" + id).attr("title", "Скрыто. Нажмите, чтобы опубликовать.");//снято
		$(".statusA" + id).attr("href", "javascript:typicalPage.changeStatus(" + id + ", 2);");
	}
}

typicalPage.Move = function(destinationRootId, idPage, newSortNum){
	//alert('destinationRootId-'+destinationRootId.attr('id')+' idPage-'+idPage.attr('id')+' newSortNum-'+newSortNum);
	if(destinationRootId.attr('id') != idPage.attr('rootid')){ //если это НЕ в рамках одной папки
		if(confirm("Вы уверены, что хотите перенести статью в другой раздел?")){
			$(idPage).attr("rootid", destinationRootId.attr('id'));
			$.post(
					W_AJAX + "moveTypicalPage",
					{
						destinationRootId : destinationRootId.attr('id'),
						idPage : idPage.attr('id'),
						newSortNum : newSortNum
					},
					'',
					"json"
				);
		}
		else{
			window.location.reload();
		}
	}
	else{
			/*при это ID родителя вообще не меняем*/
			$.post(
					W_AJAX + "moveTypicalPage",
					{
						destinationRootId : idPage.attr('rootid'),
						idPage : idPage.attr('id'),
						newSortNum : newSortNum
					},
					'',
					"json"
				);
	}
}

typicalPage.setShowPage = function(link){

	var typicalPageId = $(link).attr("typicalPageId");
	$(link).append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	//$(element).after('<img src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	$.ajax({
  	type: "GET",
    url: W_AJAX + "set_value/typical_page/" + typicalPageId + "/1",
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
	    	$(link).attr('onClick', 'typicalPage.setHidePage(this);return false;');
	    	$(link).html('<img title="Страница отображается, нажмите, чтобы скрыть" src="' + W_IMAGES + 'icons/lock.png"/>');
	    }
	    else {

    		alert(arrInfo['err_text']);
    		$(link).find('img.ajaxImage').remove();
    	}
    }
  });
}

typicalPage.setHidePage = function(link){

	var typicalPageId = $(link).attr("typicalPageId");
	$(link).append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	//$(element).after('<img src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	$.ajax({
  	type: "GET",
    url: W_AJAX + "set_value/typical_page/" + typicalPageId + "/0",
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
	    	$(link).attr('onClick', 'typicalPage.setShowPage(this);return false;');
	    	$(link).html('<img title="Страница скрыта, нажмите, чтобы отображать" src="' + W_IMAGES + 'icons/unlock.png"/>');
	    }
	    else {

    		alert(arrInfo['err_text']);
    		$(link).find('img.ajaxImage').remove();
    	}
    }
  });
}



typicalPage.toggle = function(idOpen, newLink, idLink){
	$("#" + idOpen).slideToggle();
	/*$("#" + idLink).empty();
	$("#" + idLink).append("Форму редактирования статьи");
	$("#" + idLink).attr("href", "javascript:typicalPage.toggle(\'editForm\', \'Открыть форму редактирования\', \'openForm\');");	*/
}

typicalPage.deletePage = function(idPage, pageType){
	var pageTypeName = typicalPage.getNameByPageType(pageType);

	if(confirm("Вы уверены, что хотите удалить страницу?")){
		 ajaxPage = W_AJAX + "deleteTypicalPage";
		  $.ajax({
		    type: "POST",
		    url: ajaxPage,
		    data: "idPage=" + idPage,
		    idPage: idPage,
		    success: function(responseText){
		      alert("Вы успешно удалили страницу");
			    if(pageTypeName == 'guide') pageTypeName = 'guides';
		      document.location.href= W_ABSPATH + pageTypeName + '/list';
		    }
		  });
	}
}

  /**
   * получение имя типа страницы
   *
   */
typicalPage.getNameByPageType = function(pageType){
  var superscript = false;
	switch (pageType){
		case 0: return (superscript ? 'A' : 'a') + 'rticle'; break;
		case 1: return (superscript ? 'G' : 'g') + 'uide'; break;
		case 2: return (superscript ? 'E' : 'e') + 'vent'; break;
		case 3: return (superscript ? 'S' : 's') + 'ervice'; break;
		case 11: return (superscript ? 'H' : 'h') + 'ead'; break;
		case 12: return (superscript ? 'I' : 'i') + 'ndividual'; break;
		default: return (superscript ? 'A' : 'a') + 'rticle'; break;
 	}
}

typicalPage.filter = function(){}

typicalPage.filter.pressDatedown = function(){
	var tempSearch = $("#mFilter").attr("value");
	if (tempSearch == 'Поиск статей' || tempSearch == 'Поиск событий' || tempSearch == 'Поиск фотографий' || tempSearch == 'Поиск услуг')
		value = $("#mFilter").attr("value", '');
	$(".articleDateSortHidden").attr("value", "dateUp");
	$("#sortForm").submit();
}

typicalPage.filter.pressDateup = function(){
	var tempSearch = $("#mFilter").attr("value");
	if (tempSearch == 'Поиск статей' || tempSearch == 'Поиск событий' || tempSearch == 'Поиск фотографий' || tempSearch == 'Поиск услуг')
		value = $("#mFilter").attr("value", '');
	$(".articleDateSortHidden").attr("value", "dateDown");
	$("#sortForm").submit();
}

typicalPage.filter.pressRatingdown = function(){
	var tempSearch = $("#mFilter").attr("value");
	if (tempSearch == 'Поиск статей' || tempSearch == 'Поиск событий' || tempSearch == 'Поиск фотографий' || tempSearch == 'Поиск услуг')
		value = $("#mFilter").attr("value", '');
	$(".articleDateSortHidden").attr("value", "ratingUp");
	$("#sortForm").submit();
}

typicalPage.filter.pressRatingup = function(){
	var tempSearch = $("#mFilter").attr("value");
	if (tempSearch == 'Поиск статей' || tempSearch == 'Поиск событий' || tempSearch == 'Поиск фотографий' || tempSearch == 'Поиск услуг')
		value = $("#mFilter").attr("value", '');
	$(".articleDateSortHidden").attr("value", "ratingDown");
	$("#sortForm").submit();
}

typicalPage.typicalBlock = function(){}

typicalPage.typicalBlock.setShowBlock = function(link){

	var blockType = $(link).attr("blockType");
	var blockId = $(link).attr("blockId");
	$(link).append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	//$(element).after('<img src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	$.ajax({
  	type: "GET",
    url: W_AJAX + "set_value/typical_block/" + blockType + "/" + blockId + "/1",
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
	    	$(link).attr('onClick', 'typicalPage.typicalBlock.setHideBlock(this);return false;');
	    	$(link).html('<img title="Опубликовано. Нажмите, чтобы скрыть." src="' + W_IMAGES + 'icons/hidden.gif"/>');
	    }
	    else {

    		alert(arrInfo['err_text']);
    		$(link).find('img.ajaxImage').remove();
    	}
    }
  });
}

typicalPage.typicalBlock.setHideBlock = function(link){

	var blockType = $(link).attr("blockType");
	var blockId = $(link).attr("blockId");
	$(link).append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	//$(element).after('<img src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	$.ajax({
  	type: "GET",
    url: W_AJAX + "set_value/typical_block/" + blockType + "/" + blockId + "/0",
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
	    	$(link).attr('onClick', 'typicalPage.typicalBlock.setShowBlock(this);return false;');
	    	$(link).html('<img title="Скрыто. Нажмите, чтобы опубликовать." src="' + W_IMAGES + 'icons/publish.gif"/>');
	    }
	    else {

    		alert(arrInfo['err_text']);
    		$(link).find('img.ajaxImage').remove();
    	}
    }
  });
}

typicalPage.typicalBlock.remove = function(link){
	if(confirm('Вы действительно хотите удалить?')){
	var blockType = $(link).attr("blockType");
	var blockId = $(link).attr("blockId");
	var typicalPageId = $(link).attr("typicalPageId");
	$(link).append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	$("#block_list").find("tbody").find("tr").each(function(){
		$(this).attr("noDrag", "true");
	});
	$.ajax({
  	type: "GET",
    url: W_AJAX + "remove/typical_block/" + blockType + "/" + blockId + "/" + typicalPageId,
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
	    	$("#block_list").find('tr[@blockType="' + arrInfo['blockType'] + '"]').filter(function(){return $(this).attr('blockId')==arrInfo['blockId']}).remove();
	    	var j=1;
				$("#block_list").find("tbody").find("tr").each(function(){
					$(this).attr("noDrag", "false");
					$(this).attr("sort_num", j);
					j++;
				});
	    }
	    else {

    		alert(arrInfo['err_text']);
    		$(link).find('img.ajaxImage').remove();
    	}
    }
  });
	}
}

typicalPage.typicalBlock.sortBlocks = function(table, row){

  	var essenceId = row.id;
  	var essenceType = $(row).attr("blockType");
  	var typicalPageId = $(row).attr("typicalPageId");
  	var oldSortNumForCheck = $(row).attr("sort_num");
  	if($(row).prev().attr("sort_num")){
  		var newSortNum = $(row).prev().attr("sort_num");

  		var newSortNumForCheck = newSortNum;
  		newSortNumForCheck++;
  	}
  	else{
  		var newSortNum = 0;
  		var newSortNumForCheck = 1;
  	}

  	if($(row).attr("noDrag" != "true")){
/*    	var rows = table.tBodies[0].rows;
    	var rowsOldSortNum = 0;
    	for(var i=0; i<$(rows).size(); i++){
    		if($(rows[i]).attr("blockType") == essenceType)
    			if($(rows[i]).attr("id") == essenceId)
    				rowsOldSortNum = i;

    				alert($(rows[i]).attr("id"));
    				alert (rowsOldSortNum);

    	}*/
//    	alert(newSortNumForCheck);
//    	alert(oldSortNumForCheck);
    	if(oldSortNumForCheck != newSortNumForCheck){


//  	alert("id блока: " + essenceId + " тип блока: " + essenceType + " страница: " + typicalPageId + " new_sort_number: " + newSortNum);









//	alert('destinationRootId-'+destinationRootId.attr('id')+' idPage-'+idBlock.attr('id')+' newSortNum-'+newSortNum);
$("#block_list").append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
$("#block_list").find("tbody").find("tr").each(function(){
	$(this).attr("noDrag", "true");
});
	$.ajax({
  	type: "GET",
    url: W_AJAX + "sortBlocks/" + essenceType + "/" + essenceId + "/" + typicalPageId + "/" + newSortNum,
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
	    	var j=1;
				$("#block_list").find("tbody").find("tr").each(function(){
					$(this).attr("noDrag", "false");
					$(this).attr("sort_num", j);
					j++;
				});
	    	$("#block_list").find('img.ajaxImage').remove();


	    }
	    else {
    		alert(arrInfo['err_text']);
    	}
    }
	});
  	}
//  	else alert("нет перемещения");
  	}
}

typicalPage.typicalBlock.preview = function(link, previewOrClose){
	var blockType = $(link).attr("blockType");
	var blockId = $(link).attr("blockId");
	var typicalPageId = $(link).attr("typicalPageId");
	if(previewOrClose == 0){
	$(link).append('<img class="ajaxImage" src="' + W_IMAGES + 'icons/ajax.gif" alt="Подождите. Выполняется операция." />');
	$("#block_list").find("a.preview_link").each(function(){
		$(this).attr("onClick", "typicalPage.typicalBlock.preview(this, 1); return false;");
	});

	$.ajax({
  	type: "GET",
    url: W_AJAX + "preview/" + blockType + "/" + blockId + "/" + typicalPageId,
    success: function(responseText){
    	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    else var arrInfo = JSON.parse(responseText);
	    if(arrInfo['result'] == 'OK') {
				$("#block_list").after("<br />" + arrInfo['preview']);
				$(link).find('img.ajaxImage').remove();
				if(arrInfo['jsInit']) eval(arrInfo['jsInit']);

	    }
	    else {

    		alert(arrInfo['err_text']);
    		$(link).find('img.ajaxImage').remove();
    	}
    }
  });
	}
	else{

		$("div.preview_div").each(function(){
			$(this).remove()
		});
	$("#block_list").find("a.preview_link").each(function(){
		$(this).attr("onClick", "typicalPage.typicalBlock.preview(this, 0); return false;");
	});
	}

}

typicalPage.typicalBlock.addObjectInfoBlockController = function(form){
//	var select = $(form).find("select#metro_select");
//	$(select).each(function(){
//		alert($(this).options);
//	});
	var num = 0;
	var select = form.objectInfo_metro;
	var size = select.length;
	$("div#metro").empty();
	for(i=0; i<size; i++){
		if(select.options[i].selected){
			var selectedOption = select.options[i];
			var value = selectedOption.value;
			var text = selectedOption.text;
			var html = '<div elementnumber="' + num + '" class="collectionRow"><input id="ObjectInfo_Metro_' + num + '_ID_metro" type="hidden" value="' + value + '" name="ObjectInfo[Metro][' + num + '][ID_metro]"/><input type="hidden" value="' + text + '" name="ObjectInfo[Metro][' + num + '][metro_name]" id="ObjectInfo_Metro_' + num + '_metro_name"/><input type="hidden" value="selected" name="ObjectInfo[Metro][' + num + '][selected]" id="ObjectInfo_Metro_' + num + '_selectd"/></div>';
			$("div#metro").append(html);
			num++;
			//alert(select.options[i].text);
		}
	}
}

typicalPage.typicalBlock.setNoHeader = function(showHeaderField, type, headerName, headerTypeName, checkboxName){
	if(!headerName)
		headerName = 'header';
	if(!headerTypeName)
		headerTypeName = 'header_type';
	if(!checkboxName)
		checkboxName = 'no_header';
	switch(type){
		case'Album':
		{
			headerName = 'album_name';
			break;
		}
		case'Map':
		{
			headerName = 'map_name';
			break;
		}
	}
	if(!showHeaderField){
		$("#"+type+"_"+headerName).parent().parent().show();
		$("#"+type+"_"+headerTypeName).parent().parent().show();
		$("#"+type+"_"+checkboxName).attr("onClick", "typicalPage.typicalBlock.setNoHeader(1, '"+type+"', '"+headerName+"', '"+headerTypeName+"', '"+checkboxName+"');");
	}
	else{
		$("#"+type+"_"+headerName).parent().parent().hide();
		$("#"+type+"_"+headerTypeName).parent().parent().hide();
		$("#"+type+"_"+checkboxName).attr("onClick", "typicalPage.typicalBlock.setNoHeader(0, '"+type+"', '"+headerName+"', '"+headerTypeName+"', '"+checkboxName+"');");
	}
}


// функции для заполнения блока таблица
typicalPage.table = function(){}
typicalPage.table.init = function(){
	$("table.editTable").find("td").each(function(){
		$(this).dblclick(typicalPage.table.initTBforTD);
	});
//	typicalPage.table.tableSizeController($("table.editTable"));
	var old_row_count = $("input#Table_row_count").val();
	var old_column_count = $("input#Table_column_count").val();

	$("input#Table_row_count").keyup(function(e){
		if($(this).val() != old_row_count && (e.which == 8 || e.which == 46 || (48 <= e.which && e.which <= 57))){
			typicalPage.table.tableSizeController($("table.editTable"));
			old_row_count = $(this).val();
		}
	});

	$("input#Table_column_count").keyup(function(e){
		if($(this).val() != old_column_count && (e.which == 8 || e.which == 46 || (48 <= e.which && e.which <= 57))){
			typicalPage.table.tableSizeController($("table.editTable"));
			old_column_count = $(this).val();
		}
	});
}

typicalPage.table.tableSizeController = function(table){
	var i = 0;
	var table_row_count = $(table).find("tr").size();
	var table_column_count = $(table).find("tr").eq(0).find("td").size();
//	alert(table_row_count + "        " + table_column_count);
	var arrTableHtml = new Array(table_row_count);
//	alert($(table).html());
	$(table).find("tr").each(function(){
		var j = 0;
		arrTableHtml[i] = new Array(table_column_count);
		$(this).find("td").each(function(){
			arrTableHtml[i][j] = $(this).html();
//			alert(i+"_"+j+" after write: " + arrTableHtml[i][j]);
//			alert(i+"_"+j+"   _  "+$(this).html());
			j++;
		});
		i++;
	});

/*	for(i=0; i<table_row_count;i++){
		for(j=0;j<table_column_count;j++)
			alert(arrTableHtml[i][j]);
	}*/
//	alert(print_r(arrTableHtml));
	var new_table_row_count = $("input#Table_row_count").val();
	var new_table_column_count = $("input#Table_column_count").val();

	if(new_table_row_count != table_row_count || new_table_column_count != table_column_count){
		$(table).find("tr").remove();
		var new_table = '';
//		alert(new_table_row_count+" < > " + new_table_column_count);
		for(i=0; i<new_table_row_count; i++){
			new_table += '<tr>';
			for(j=0; j<new_table_column_count; j++){
				new_table += "<td attrRowNumber='"+i+"' attrColumnNumber='"+j+"' id='"+i+"_"+j+"'>";
				if(isset(arrTableHtml[i]) && isset(arrTableHtml[i][j]))
					new_table += arrTableHtml[i][j];
				else
					new_table += "<input type='hidden' value='' name='Table[table_field]["+i+"]["+j+"][text]' />"
				new_table +="</td>";
			}
			new_table += "</tr>";
		}
		$(table).append($(new_table));
		$(table).find("td").each(function(){
			$(this).dblclick(typicalPage.table.initTBforTD);
		});
	}
}

typicalPage.table.initTBforTD = function(){
//	$(this).css("height", "190px");
//	alert("DBLclick");
	var tdContent = $(this).find("input:hidden").val();
//	alert(tdContent);
//	$(this).html("<div id='TB_div'><textarea class='wysiwygComment' id='td_textarea'></textarea><input type='submit' id='submitTableField' attrTDid='"+$(this).attr("id")+"' onClick='typicalPage.table.closeTB(this);return false;'/></div>");


	tb_show("Редактирование содержимого ячейки", "#TB_inline?height=480&amp;width=750&amp;inlineId=  &amp;modal=false", false);
	$("#TB_ajaxContent").html("<textarea class='wysiwygComment' id='td_textarea'></textarea><input type='submit' id='submitTableField' attrTDid='"+$(this).attr("id")+"' onClick='typicalPage.table.closeTB(this);return false;'/>");
	$("#TB_ajaxContent").find("textarea").text(tdContent);
	$("#TB_ajaxContent").find("textarea").css({width: "70%", height: "200px", margin: "100px 0 0 100px"});
  $("#TB_window").find("textarea.wysiwygComment").wysiwyg({ debug : true, wysiwygType : 'comment' });
  $("#TB_ajaxContent").find("div.wysiwyg").css({height: "200px", margin: "100px 0 0 100px"});
  $("#TB_ajaxContent").find("textarea").css({margin: "10px 0 0 100px"});
  $("#TB_ajaxContent").find("input:submit#submitTableField").css({margin: "10px 0 0 100px"});

//  $("#TB_window").find("input#submitTableField").onclick();
/*  var curElement = $(this);
    $(this).parents('form').submit( function() {
      $(curElement).val($( $('#' + $(curElement).attr('id') + 'IFrame').document() ).find('body').html());
    });*/
}

typicalPage.table.closeTB = function(e){
	var td = $("td#"+$(e).attr("attrTDid"));
	var rowNumber = $(td).attr("attrRowNumber");
	var columnNumber = $(td).attr("attrColumnNumber");
	var text = $( $('#td_textareaIFrame').document() ).find('body').html();
//	alert(text);
//	alert($(td).html());
	$(td).find("input:hidden").remove();
	$(td).html('');
//	alert("clear");
	$(td).html("<input type='hidden' name='Table[table_field][" + rowNumber + "][" + columnNumber + "][text]' value='"+text+"'/>"+text);
//	alert(text);
//	$(td).html(text);
	$("#TB_window").find("#TB_ajaxContent").html("");
	tb_remove();

//	var commentText = $( $('#' + $('#textCommentText_'+rootComment).attr('id') + 'IFrame').document() ).find('body').html(); // for wysiwyg
}




typicalPage.moveEventCalendarDate = function (monthes, years, oneMonth) {
	var month = monthes + parseInt($('#calendarHiddenMonth').val());
	var year = years + parseInt($('#calendarHiddenYear').val());
	if(month == 13){
		month = 1;
		year++;
	}
	if(month == 0){
		month = 12;
		year--;
	}
	//alert('Moving to ' +  month + ' ' + year);
	//if(oneMonth){
	if(true){
		$('#calendarHiddenMonth').val(month);
		$('#calendarHiddenYear').val(year);
		 var newName = typicalPage.getMonthName(month);
		 var newName2 = typicalPage.getMonthName(month + 1);
		  $("#mainName").empty();
		  $("#mainName").append(newName + " " + year);
		  $("#mainName1").text(newName + " " + year);
		  $("#mainName2").text(newName2 + " " + (month + 1 == 13 ? year + 1 : year));

	  $.post(
				W_AJAX + "getCalendar",
				{
					month : month,
					year : year,
					oneMonth : oneMonth
				},
				typicalPage.CalendarInsert,
				"json"
			);
	}
	else{
		var firstMonth = monthes + parseInt($('#calendarHiddenMonth').val());
		var firstYear = years + parseInt($('#calendarHiddenYear').val());
		var secondMonth = firstMonth++;
		var secondYear = firstYear;
		if(firstMonth == 13){
			firstMonth = 1;
			firstYear++;
		}
		if(firstMonth == 14){
			firstMonth = 2;
			firstYear++;
		}
		if(firstMonth == 0){
			firstMonth = 12;
			firstYear--;
		}
		if(firstMonth == -1){
			firstMonth = 11;
			firstYear--;
		}
		if(secondMonth == 13){
			secondMonth = 1;
			secondYear++;
		}
		if(secondMonth == 4){
			secondMonth = 2;
			secondYear++;
		}
		if(secondMonth == 0){
			secondMonth = 12;
			secondYear--;
		}
		if(secondMonth == -1){
			secondMonth = 11;
			secondYear--;
		}
		//alert('Moving to ' +  month + ' ' + year);
			$('#calendarHiddenMonth').val(firstMonth);
			$('#calendarHiddenYear').val(firstYear);
			 switch (firstMonth) {
			  	case 1: var newFirstName =  "январь"; break;
			  	case 2: var newFirstName =  "февраль"; break;
			  	case 3: var newFirstName =  "март"; break;
			  	case 4: var newFirstName =  "апрель"; break;
			  	case 5: var newFirstName =  "май"; break;
			  	case 6: var newFirstName =  "июнь"; break;
			  	case 7: var newFirstName =  "июль"; break;
			  	case 8: var newFirstName =  "август"; break;
			  	case 9: var newFirstName =  "сентябрь"; break;
			  	case 10: var newFirstName =  "октябрь"; break;
			  	case 11: var newFirstName =  "ноябрь"; break;
			  	case 12: var newFirstName =  "декабрь"; break;
			  }
			 switch (secondMonth) {
			  	case 1: var newSecondName =  "январь"; break;
			  	case 2: var newSecondName =  "февраль"; break;
			  	case 3: var newSecondName =  "март"; break;
			  	case 4: var newSecondName =  "апрель"; break;
			  	case 5: var newSecondName =  "май"; break;
			  	case 6: var newSecondName =  "июнь"; break;
			  	case 7: var newSecondName =  "июль"; break;
			  	case 8: var newSecondName =  "август"; break;
			  	case 9: var newSecondName =  "сентябрь"; break;
			  	case 10: var newSecondName =  "октябрь"; break;
			  	case 11: var newSecondName =  "ноябрь"; break;
			  	case 12: var newSecondName =  "декабрь"; break;
			  }
		  $("#mainName1").empty();
		  $("#mainName1").append(newFirstName + " " + firstYear);
		  $("#mainName2").empty();
		  $("#mainName2").append(newSecondName + " " + secondYear);
	}
}

typicalPage.CalendarInsert = function (obj) {
	var str = "" + obj.retur;
	$("#eventsCalendar_1").remove();
	$("#eventsCalendar_2").remove();
	if($("#mainPageCalendar").length)
		$("#mainPageCalendar").append(str);
	else if($("#eventsPageCalendar").length) {
		$("#eventsPageCalendar").append(str);
	}
	else {
		$("#mainEventsPageRightCalendar").append(str);
	}
}

typicalPage.getMonthName = function (month) {
	switch (month) {
  	case 1:case 13: return  "январь"; break;
  	case 2: return  "февраль"; break;
  	case 3: return  "март"; break;
  	case 4: return  "апрель"; break;
  	case 5: return  "май"; break;
  	case 6: return  "июнь"; break;
  	case 7: return  "июль"; break;
  	case 8: return  "август"; break;
  	case 9: return  "сентябрь"; break;
  	case 10: return  "октябрь"; break;
  	case 11: return  "ноябрь"; break;
  	case 12: return  "декабрь"; break;
  }
}

typicalPage.showSuccessAdding = function(objLink, added) {
    if ($("#successAdding").length)
      $("#successAdding").remove();
  	var strEl = '<div class="pop-up" id="successAdding">' +
			        '<table cellspacing="0" class="pmain" cellpadding="0" border="0">' +
			          '<tr><td class="tl"/><td class="t"/><td class="tr"/></tr>' +
			          '<tr>' +
			            '<td class="l"/>' +
			            '<td class="body">' +
			              '<div class="content" style="display: block;">' +
			               (added ? 'Добавлено' : 'Удалено') + '</div>' +
			            '</td><td class="r"/>' +
			         '</tr>' +
			          '<tr><td class="bl"/><td class="b"/><td class="br"/></tr>' +
			        '</table>' +
			      '</div>';
  //$(objLink).parent().prepend(strEl);
  $(".additionalLinks").prepend(strEl);
  $("#successAdding").css("left", $(".additionalLinks").offset().left).fadeIn(1000);
  //alert(1);
  $("#successAdding").fadeOut(2000);
}

typicalPage.showSuccessDeleteFromIMap = function(objLink, added) {
    if ($("#successAdding").length)
      $("#successAdding").remove();
  	var strEl = '<div class="pop-up" id="successAdding">' +
			        '<table cellspacing="0" class="pmain" cellpadding="0" border="0">' +
			          '<tr><td class="tl"/><td class="t"/><td class="tr"/></tr>' +
			          '<tr>' +
			            '<td class="l"/>' +
			            '<td class="body">' +
			              '<div class="content" style="display: block;">' +
			               (added ? 'Добавлено' : 'Удалено') + '</div>' +
			            '</td><td class="r"/>' +
			         '</tr>' +
			          '<tr><td class="bl"/><td class="b"/><td class="br"/></tr>' +
			        '</table>' +
			      '</div>';
  $(objLink).parent().prepend(strEl);
  //$(".additionalLinks").prepend(strEl);
  $("#successAdding").css("left", $(objLink).offset().left - 80).fadeIn(1000);
  //alert(1);
  $("#successAdding").fadeOut(2000, function(){$(objLink).parent().remove()});
}

typicalPage.showPopUpActionResult = function(text, objLink) {
  if ($("#popUpNotification").length) $("#popUpNotification").remove();
  	var strEl = '<div class="pop-up" id="popUpNotification">' +
			        '<table cellspacing="0" class="pmain" cellpadding="0" border="0">' +
			          '<tr><td class="tl"/><td class="t"/><td class="tr"/></tr>' +
			          '<tr>' +
			            '<td class="l"/>' +
			            '<td class="body">' +
			              '<div class="content" style="display: block;">' +
			               text + '</div>' +
			            '</td><td class="r"/>' +
			         '</tr>' +
			          '<tr><td class="bl"/><td class="b"/><td class="br"/></tr>' +
			        '</table>' +
			      '</div>';
  $(objLink).parent().prepend(strEl);
  //$(".additionalLinks").prepend(strEl);
  //$("#popUpNotification").css("left", $(".additionalLinks").offset().left).fadeIn(1000);
  $("#popUpNotification").css("left", $(objLink).offset().left).fadeIn(1000);
  $("#popUpNotification").fadeOut(2000);
}

typicalPage.ratingTitle = function(objLink, plus, minus) {
    if ($("#successAdding").length) $("#successAdding").remove();
  	var strEl = '<div class="pop-up" id="successAdding">' +
			        '<table cellspacing="0" class="pmain" cellpadding="0" border="0">' +
			          '<tr><td class="tl"/><td class="t"/><td class="tr"/></tr>' +
			          '<tr>' +
			            '<td class="l"/>' +
			            '<td class="body">' +
			              '<div class="content" style="display: block;">' +
			               'За: ' + plus + ' | Против: ' + minus  + '</div>' +
			            '</td><td class="r"/>' +
			         '</tr>' +
			          '<tr><td class="bl"/><td class="b"/><td class="br"/></tr>' +
			        '</table>' +
			      '</div>';
  $(objLink).parent().prepend(strEl);
  $("#successAdding").css('position','absolute');
  $("#successAdding").css("left", $(objLink).offset().left + $(objLink).width());
  $("#successAdding").css("top", $(objLink).offset().top + $(objLink).height());
  $("#successAdding").fadeIn(1000);
  //$("#successAdding").fadeOut(3000);
}

/* Общие операции по добавлению страниц-объектов и услуг в туры и маршруты */
//Добавление/удаление площадки из изранных
typicalPage.toggleToOwnList = function(objLink, id, pageType, objImapData, addByIcon) {
  if (pageType != 1 && pageType != 2) {
    alert('Нельзя добавлять в личные списки элементы даннного типа');
    return false;
  }
  var processData = [
    {},
    {list: 'route', link_add: 'Добавить в мой маршрут', link_remove: 'Удалить из моего маршрута', added: 'Объект успешно добавлен в Ваш маршрут', removed: 'Объект успешно удалён из Вашего маршрути'}, //для объекта
    {list: 'tour', link_add: 'Добавить в мой тур', link_remove: 'Удалить из моего тура', added: 'Событие успешно добавлено в Ваш тур', removed: 'Событие успешно удалено из Вашего тура'} //Для события
  ];
  if ($(objLink).attr("pressed") == "pressed")
    return false;
  $(objLink).attr("pressed", "pressed"); //Добавляем защиту от повторных нажатий
  if (($(objLink).html() == processData[pageType].link_add) || (isset(addByIcon) && addByIcon) ) {
    $.ajax({
    	type: "POST",
      url: W_AJAX + processData[pageType].list + '/add/',
      data: 'idObjectPage=' + id,
      success: function(responseText){
      	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
  	    else var arrInfo = JSON.parse(responseText);
  	    if(arrInfo['result'] == 'OK') {
  	      if (!isset(addByIcon)) $(objLink).html(processData[pageType].link_remove);
  	      if (isset(addByIcon) && addByIcon) { //если это форированное (не toggle) добавление по иконке
  	        $(objLink).attr('title', 'В Моём Маршруте')
  	      }
  	      //alert(processData[pageType].added);
  	      //typicalPage.showSuccessAdding(objLink, true);
  	      $(objLink).parent().find("img").attr('src', W_IMAGES + 'icons/favorite_in.gif').parent().attr('href', W_ABSPATH + 'i-map/#myRouteList');
  	      if (isset(objImapData) && objImapData) { //если доабвление - с режима И-Карты
  	        if ($("#emptyRouteNotice").length) $("#emptyRouteNotice").remove();
  	        var strNewContent = '<div class="my_route_element">';
  	        if (isset(objImapData.i)) {
  	          var arrCurGuide = objMaps.get(0).pointsInfo[objImapData.num]['clustered'][objImapData.i];
  	          var idPoint = arrCurGuide['ID_typical_page'];
  	          //var pointTitle = arrCurGuide['page_name'];
  	          var pointTitle = arrIMapPointsData[idPoint]['page_name'];
/*  	          var pointPrices = arrCurGuide['str_prices'];*/
  	          //var pointServices = arrCurGuide['str_guide_services'];
              //var pointTypes = arrCurGuide['str_guide_types'];
              var pointServices = arrIMapPointsData[idPoint]['str_guide_services'];
              var pointTypes = arrIMapPointsData[idPoint]['str_guide_types'];
/*              var pointAddress = arrCurGuide['adress'];*/
  	        } else {
  	          var arrCurGuide = objMaps.get(0).pointsInfo[objImapData.num];  	          
              var idPoint = arrCurGuide['ID_point'];
              
              //var pointTitle = arrCurGuide['title'];
              var pointTitle = arrIMapPointsData[idPoint]['page_name'];
/*              var pointPrices = arrCurGuide['prices'];*/
              //var pointServices = arrCurGuide['services'];
              //var pointTypes = arrCurGuide['types'];
              var pointServices = arrIMapPointsData[idPoint]['str_guide_services'];
              var pointTypes = arrIMapPointsData[idPoint]['str_guide_types'];
/*              var pointAddress = arrCurGuide['address'];*/
  	        }
    	        arrCurGuide['url'] = arrIMapPointsData[idPoint]['url'];
    	        arrCurGuide['pic_folder'] = arrIMapPointsData[idPoint]['pic_folder'];
    	        arrCurGuide['pic_file'] = arrIMapPointsData[idPoint]['pic_file'];
    	        arrCurGuide['crumbs'] = arrIMapPointsData[idPoint]['crumbs'];
    	        arrCurGuide['marks_plus'] = arrIMapPointsData[idPoint]['marks_plus'];
    	        arrCurGuide['marks_minus'] = arrIMapPointsData[idPoint]['marks_minus'];
    	        arrCurGuide['all_description'] = $(objLink).parent().parent().find('.description_text').html();
  	          strNewContent += '<img class="close" src="' + W_IMAGES + 'icons/close_del.gif" width="14" height="13" onclick="typicalPage.removeObjFromListByID(this, ' + idPoint + ');return false;">';
              strNewContent += '<div class="top_info">';
        	      strNewContent += '<a href="' + W_ABSPATH + 'guide/' + arrCurGuide['url'] + '" class="title"><img class="avatar" src="' + W_IMAGES + arrCurGuide['pic_folder'] + 's_' + arrCurGuide['pic_file'] + '" width="48" height="32" alt=""></a>';
        	      if (!isset(objImapData.i)) {
          	      strNewContent += '<div class="breadCrumbs">';
          	        strNewContent += arrCurGuide['crumbs'];
          	      strNewContent += '</div>';
        	      }
        	      strNewContent += '<a href="' + W_ABSPATH + 'guide/' + arrCurGuide['url'] + '" class="title">' + pointTitle + '</a>';
        	      strNewContent += '&nbsp;&nbsp;&nbsp;&nbsp;<span class="green-text" style="font-weight:bold;">+' + arrCurGuide['marks_plus'] + '</span><span class="gray-text">/</span><span class="red-text" style="font-weight:bold;">-' + arrCurGuide['marks_minus'] + '</span>';
      	      strNewContent += '</div>';
              strNewContent += arrCurGuide['all_description'];// + '<br />';
    	        /*strNewContent += '<strong>Адрес:</strong> ' + pointAddress;
      	      if (arrCurGuide['phone'] != '') strNewContent += '. <strong>Телефон:</strong> ' + arrCurGuide['phone'];
      	      strNewContent += '<br />';
              if (pointPrices != '') strNewContent += '<span class="label">Уровень цен: </span>' + pointPrices + '<br />';*/

              if (pointTypes && pointTypes != '')
                strNewContent += '<span class="label">Тип: </span>' + pointTypes + '<br />';
              if (pointServices && pointServices != '')
                strNewContent += '<span class="label">Услуги: </span>' + pointServices + '<br />';
            strNewContent += '</div>';
  	        $("#myRouteListElements").append(strNewContent);
  	      }
  	      $(objLink).attr('href', W_ABSPATH + 'i-map/#myRouteList').attr('onclick', '').attr('title', 'В Моем Маршруте');
  	      if (!isset(addByIcon)) $(objLink).text('В Моем Маршруте')
  	      $(objLink).parent().find(".ico").attr('onclick', '');
  	      var lastRoutesAmount = parseInt($("#routeAmount").text());
  	      $("#routeAmount").text(lastRoutesAmount + 1);
  	      typicalPage.showPopUpActionResult('Вы добавили объект в свой маршрут', objLink);
  	    }
  	    else {
      		typicalPage.showPopUpActionResult(arrInfo['err_text'], objLink);
      		$(objLink).attr('pressed', 'no');
      	}
      }
    });
  }
  else {
    $.ajax({
    	type: "POST",
      url: W_AJAX + processData[pageType].list + '/remove/',
      data: 'idObjectPage=' + id,
      success: function(responseText){
      	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
  	    else var arrInfo = JSON.parse(responseText);
  	    if(arrInfo['result'] == 'OK') {
          $(objLink).html(processData[pageType].link_add);
  	      //alert(processData[pageType].removed);
  	      typicalPage.showSuccessAdding(objLink, false);
  	      var lastRoutesAmount = parseInt($("#routeAmount").text());
  	      $("#routeAmount").text(lastRoutesAmount - 1);

  	    }
  	    else {
      		typicalPage.showPopUpActionResult(arrInfo['err_text'], objLink);
      		$(objLink).attr('pressed', 'no');
      	}
      }
    });
  }
  $(objLink).removeAttr("pressed");
}


//Добавление/удаление площадки из избранных (просто удаление, для случая наличия только кнопки "удаление" - список маршрутов)
typicalPage.removeObjFromListByID = function(objLink, id) {
  if ($(objLink).attr("pressed") == "pressed")
    return false;
  $(objLink).attr("pressed", "pressed"); //Добавляем защиту от повторных нажатий
  	$.ajax({
    	type: "POST",
      url: W_AJAX + 'route/remove/',
      data: 'idObjectPage=' + id,
      success: function(responseText){
      	if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
  	    else var arrInfo = JSON.parse(responseText);
  	    if(arrInfo['result'] == 'OK') {
  	    	typicalPage.showSuccessDeleteFromIMap(objLink, false);
  	      var lastRoutesAmount = parseInt($("#routeAmount").text());
  	      $("#routeAmount").text(lastRoutesAmount - 1);
  	    }
  	    else {
      		$(objLink).attr('pressed', 'no');
      		alert(arrInfo['err_text']);
      	}
      }
    });
  $(objLink).removeAttr("pressed");
}



//последовательное прохождение по эл-там к текущему открытому - Админ-меню
typicalPage.goStepToPathAdmin = function(arrPath) {
  $("#leftAdmin li[@id=" + arrPath.pop() + "]").attr("pathToGo", "[" + arrPath.join(',') + "]")
                                               .attr("nextToGo", "1")
                                               .find("img.trigger")
                                               .click();
}



///////////////Фильтр объектов и всё что с ним связано/////////////

function objectFilter () {}
//Обработка нажатия по ссылке показать/спрятать карту
objectFilter.toggleMap = function(objLink) {
  if ($(objLink).text() == 'Показать на карте') {
    $(objLink).text('Свернуть карту');
    $("#map_filter_block").slideDown("slow");
    if (!parseInt($("#map_filter_block").attr("activated"))) { //если карта не активирована
      $("#map_filter_block").attr("activated", 1);
      $("#showFilterMap").val(1);
      objMaps.get(0).init(0); //инициализируем карту (без точек) - один раз.
      objMaps.get(0).parsePointsArray(jsonArrPoints);
    } else {}

  }
  else {
    $(objLink).text('Показать на карте');
    $("#map_filter_block").slideUp("slow");
    $("#showFilterMap").val(0);
  }
}
//Применение параметров сортироки
objectFilter.changeSorting = function(objLink) {
  var sBy = $(objLink).parent().attr("sBy");
  var sDir = $(objLink).parent().attr("sDir");
  $("#filterSortBy").attr("value", sBy);
  $("#filterSortDirection").attr("value", sDir);
  $("form#formObjectFilter").submit();
}
//Применить фильтр
objectFilter.apply = function(objForm) {
  if ($(".pop-up").length) {
    alert('Вы ещё не закончили установку параметров фильтра');
    return false;
  }
  return true;
  //alert('Фильтр применён');
}
/*Районы*/
//Выбор по id
objectFilter.getDistrictsById = function(id) {
  var arrD = ["Адмиралтейский",
              "Василеостровский",
              "Выборгский",
              "Калининский",
              "Кировский",
              "Колпинский",
              "Красногвардейский",
              "Красносельский",
              "Кронштадтский",
              "Курортный",
              "Ломоносовский",
              "Московский",
              "Невский",
              "Павловский",
              "Петроградский",
              "Петродворцовый",
              "Приморский",
              "Пушкинский",
              "Фрунзенский",
              "Центральный",
              "Бокситогорский",
              "Волосовский",
              "Волховский",
              "Всеволожский",
              "Выборгский",
              "Гатчинский",
              "Кингисеппский",
              "Киришский",
              "Кировский",
              "Лодейнопольский",
              "Ломоносовский",
              "Лужский",
              "Подпорожский",
              "Приозерский",
              "Сланцевский",
              "Тихвинский",
              "Тосненский"];
  return arrD[id];
}
//Выбор по id [0..5]
objectFilter.getPricesImgsById = function(id) {
  return "filter/price_" + id + ".gif";
}
//Выбор по id [0..5]
objectFilter.getPricesById = function(id) {
  //var arrD = ["Бесплатно", "Дешево", "Средне", "Дорого", "Очень дорого", "VIP"];
  var arrD = ["Не указано", "Эконом", "Средние", "Высокие", "", ""];
  return arrD[id];
//  return "<img src='" + W_IMAGES + objectFilter.getPricesImgsById(id) + "' class='priceImg'>";
}
//Тип опции фильтра по ID
objectFilter.getOptionNameById = function(id) {
  switch (id) {
    case 0: return 'Type';
    case 1: return 'Districts';
    case 2: return 'Service';
    case 3: return 'Prices';
  }
}
//Тип опции фильтра по ID
objectFilter.getPopupWidthById = function(id) {
  switch (id) {
    case 0: return '300';
    case 1: return '420';
    case 2: return '300';
    case 3: return '300';
  }
}
//Обновление всплыващего окна с районами при открытии
objectFilter.updatePopUpOption = function (optionId) {
  var option = objectFilter.getOptionNameById(optionId);
  var objForm = $("#obj" + option + "SelectForm");
  var jsonText = $("#objectFilter_json" + option + "").val();
  if (navigator.userAgent.indexOf ("Opera") != -1) var arrIDs = eval('(' + jsonText + ')');
    else var arrIDs = JSON.parse(jsonText);
  var checkedCnt = 0;
  $(objForm).find("input:checkbox").removeAttr("checked").each(function(i) {
    var curDtVal = parseInt($(this).val());
    if (in_array(curDtVal, arrIDs)) {
      checkedCnt++;
      $(this).attr("checked", "checked");
    }
  });
  if ($(objForm).find("input:checkbox").length == checkedCnt) { //если выделены все элементы, выделяем галочку "выделить всё"
    $(".selAllOptions").attr("checked", "checked");
  }
}
//Обновление ссылок с районами при закрытии окна
objectFilter.updateFilterOption_getStr = function (optionId) {
  var option = objectFilter.getOptionNameById(optionId);
  var objForm = $("#obj" + option + "SelectForm");
  var checked = $(objForm).find("input:checkbox:checked");
  var strLinks = "";
  if (optionId == 1) {
    jQuery.expr[":"].inSPb = function (elem) { return ((jQuery(elem).val() >= 0) && (jQuery(elem).val() <= 19)) };
    if ($(checked).length == 0) {
      checked = $(objForm).find("input:checkbox:inSPb");
      //alert('Вы не выбрали ни одного района для поиска. Поиск будет осуществлён по всем районам Санкт-Петербурга');
    }
  }
  if (optionId == 3) {
    if ($(checked).length == 0) {
      checked = $(objForm).find("input:checkbox");
      //alert('Вы не выбрали ни одной ценовой категории. Поиск будет осуществлён без учёта данного параметра');
    }
  }
  if ($(checked).length) {
    $(checked).each(function(i) {
      var curDtVal = parseInt($(this).val());
      var strFx2Call = "objectFilter.get" + option + "ById(" + curDtVal + ")";
      strLinks += "<a href='#' title='Указать' class='popup-option" + (optionId == 3 ? " no-dashed" : "") + "' onclick='popup.open(this, \"#obj" + option + "Out\",{type: 1, w: \"" + objectFilter.getPopupWidthById(optionId) + "px\", xf: 0, yf: 0});objectFilter.updatePopUpOption(" + optionId + ");return false;'>" + eval(strFx2Call) + "</a>";
      if (i != $(checked).length - 1)
        strLinks += ', ';
    });
  }
  else if (in_array(optionId, [0,2])) {
    strLinks += "<a href='#' title='Указать' class='popup-option' onclick='popup.open(this, \"#obj" + option + "Out\",{type: 1, w: \"" + objectFilter.getPopupWidthById(optionId) + "px\", xf: 0, yf: 0});objectFilter.updatePopUpOption(" + optionId + ");return false;'><strong>не указано</strong></a>";
    $("#objectFilter_json" + option + "").val("[]");
  } else {}
  return strLinks;
}

//Выделить-снять всё выделение в фильтре
objectFilter.toggleSelectAll = function (objEl, checkboxName) {
  if ($(":checkbox[@name='" + checkboxName + "']:checked").length) { //если есть отмеченные
    $("input:checkbox[@name='" + checkboxName + "']").removeAttr("checked");
    $(objEl).removeAttr("checked");
  } else {
    $("input:checkbox[@name='" + checkboxName + "']").attr("checked", "checked");
    $(objEl).attr("checked", "checked");
  }
}

//Применение списка
objectFilter.applyOption = function(optionId) {
  var option = objectFilter.getOptionNameById(optionId);
  var strLinks = objectFilter.updateFilterOption_getStr(optionId); //обновляем ссылки в фильтре
  //alert($("#objDistrictsSelectForm").html());
  var objForm = $("#obj" + option + "SelectForm");
  var jsonStr = '[';
  var checked = $(objForm).find("input:checkbox:checked");
  $(checked).each(function(i) {
    jsonStr += $(this).val();
    if (i != $(checked).length - 1)
      jsonStr += ', ';
  });
  jsonStr += ']';
  //if ((optionId == 1) && (jsonStr == '[]')) jsonStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]';
  //if ((optionId == 3) && (jsonStr == '[]')) jsonStr = '[0,1,2,3,4,5]';
  $("#objectFilter_json" + option + "").val(jsonStr);
  //alert('Районы обновлены');
  popup.close();
  //$("#objectFilter" + option + "List").html(strLinks);
  $("form#formObjectFilter").submit(); //автоматически отправляем форму
}




///////////////Фильтр событий и всё что с ним связано/////////////
function eventFilter () {}
//Применить фильтр
eventFilter.apply = function(objForm) {
  if ($(".pop-up").length) {
    alert('Вы ещё не закончили установку параметров фильтра');
    return false;
  }
  return true;
  //alert('Фильтр применён');
}
//Применение параметров сортироки
eventFilter.changeSorting = function(objLink) {
  var sBy = $(objLink).parent().attr("sBy");
  var sDir = $(objLink).parent().attr("sDir");
  $("#filterSortBy").attr("value", sBy);
  $("#filterSortDirection").attr("value", sDir);
  $("#formEventFilter").get(0).submit(); //автоматически отправляем форму
}

/*Районы*/
//Выбор по id
/*eventFilter.getTypeById = function(id) {
  var arrD = ["",
              "Василеостровский",
              "Концерт",
              "Дискотека"];
  return arrD[id];
}*/

//Тип опции фильтра по ID
eventFilter.getPopupWidthById = function(id) {
  switch (id) {
    case 0: return '300';
  }
}

//Тип опции фильтра по ID
eventFilter.getOptionNameById = function(id) {
  switch (id) {
    case 0: return 'Type';
  }
}

//Обновление всплыващего окна с районами при открытии
eventFilter.updatePopUpOption = function (optionId) {
  var option = eventFilter.getOptionNameById(optionId);
  var objForm = $("#obj" + option + "SelectForm");
  var jsonText = $("#eventFilter_json" + option + "").val();
  if (navigator.userAgent.indexOf ("Opera") != -1) var arrIDs = eval('(' + jsonText + ')');
    else var arrIDs = JSON.parse(jsonText);
  var checkedCnt = 0;
  $(objForm).find("input:checkbox").removeAttr("checked").each(function(i) {
    var curDtVal = parseInt($(this).val());
    if (in_array(curDtVal, arrIDs)) {
      checkedCnt++;
      $(this).attr("checked", "checked");
    }
  });
  if ($(objForm).find("input:checkbox").length == checkedCnt) { //если выделены все элементы, выделяем галочку "выделить всё"
    $(".selAllOptions").attr("checked", "checked");
  }
}
//Обновление ссылок с районами при закрытии окна
eventFilter.updateFilterOption_getStr = function (optionId) {
  var option = eventFilter.getOptionNameById(optionId);
  var objForm = $("#obj" + option + "SelectForm");
  var checked = $(objForm).find("input:checkbox:checked");
  var strLinks = "";
  if (optionId == 0) {}
  if ($(checked).length) {
    $(checked).each(function(i) {
      var curDtVal = parseInt($(this).val());
      var strFx2Call = "eventFilter.get" + option + "ById(" + curDtVal + ")";
      strLinks += "<a href='#' title='Указать' class='popup-option" + (optionId == 3 ? " no-dashed" : "") + "' onclick='popup.open(this, \"#obj" + option + "Out\",{type: 1, w: \"" + eventFilter.getPopupWidthById(optionId) + "px\", xf: 0, yf: 0});eventFilter.updatePopUpOption(" + optionId + ");return false;'>" + eval(strFx2Call) + "</a>";
      if (i != $(checked).length - 1)
        strLinks += ', ';
    });
  }
  else if (in_array(optionId, [0])) {
    strLinks += "<a href='#' title='Указать' class='popup-option' onclick='popup.open(this, \"#obj" + option + "Out\",{type: 1, w: \"" + eventFilter.getPopupWidthById(optionId) + "px\", xf: 0, yf: 0});eventFilter.updatePopUpOption(" + optionId + ");return false;'><strong>не указано</strong></a>";
    $("#eventFilter_json" + option + "").val("[]");

  } else {}
  return strLinks;
}

//Применение списка
eventFilter.applyOption = function(optionId) {
  var option = eventFilter.getOptionNameById(optionId);
  var strLinks = eventFilter.updateFilterOption_getStr(optionId); //обновляем ссылки в фильтре
  //alert($("#objDistrictsSelectForm").html());
  var objForm = $("#obj" + option + "SelectForm");
  var jsonStr = '[';
  var checked = $(objForm).find("input:checkbox:checked");
  $(checked).each(function(i) {
    jsonStr += $(this).val();
    if (i != $(checked).length - 1)
      jsonStr += ', ';
  });
  jsonStr += ']';
  //if ((optionId == 0) && (jsonStr == '[]')) jsonStr = '[0,1,2]';
  $("#eventFilter_json" + option + "").val(jsonStr);
  //alert('Районы обновлены');
  popup.close();
  //$("#eventFilter" + option + "List").html(strLinks);
  $("#formEventFilter").get(0).submit(); //автоматически отправляем форму
}


//Выделить-снять всё выделение в фильтре
eventFilter.toggleSelectAll = function (objEl, checkboxName) {
  if ($(":checkbox[@name='" + checkboxName + "']:checked").length) { //если есть отмеченные
    $("input:checkbox[@name='" + checkboxName + "']").removeAttr("checked");
    $(objEl).removeAttr("checked");
  } else {
    $("input:checkbox[@name='" + checkboxName + "']").attr("checked", "checked");
    $(objEl).attr("checked", "checked");
  }
}
