var admin = {
	polls:{
		remove:function(id){
			jConfirm("Вы уверены, что хотите удалить этот опрос?","Требуется подтверждение",function(flag){
				if (!flag) return;
				$.post("/cmd/system/polls/delete",{id:id},function(data){
					if (data.code == 1){
						$("#"+id).remove();
					}
					core.showMessage(data);
				});
			});
		},
		foreverChanged:function(sender){
			if ($(sender).attr("checked")){
				$("#period").slideUp();
			}
			else $("#period").slideDown();
		},
		addVariant:function(){
			var html = "<tr><td><input type=text class='authInputs variants' name=answer style='width:250px;'><input type=hidden name=id class=variants value=''></td>";
			html += "<td><input type=text class='authInputs variants' value='0' name=votes style='width:110px;'></td>";
			html += "<td style='vertical-align:middle'><a onClick=$(this).parent().parent().remove()><span class='ui-icon ui-icon-close ui-state-default ui-corner-all'></span></a></td></tr>";
			$("#variants").append(html);
		},
		save:function(){
			var p = $.form.get("poll",false);
			p.variants = $.form.get("variants",false,true);
			p.start = p.dateStart+" "+p.hourStart+":"+p.minuteStart+":00";
			p.stop = p.dateStop+" "+p.hourStop+":"+p.minuteStop+":00";
		
			if (p.variants.answer == null){
				
				core.showMessage("Добавьте хотя бы один вариант ответа =)", "Сообщение системы",0);
				return;
			}
			for (var i = 0; i < p.variants.answer.length; i++){
				if (p.variants.answer[i].length == 0){
					core.showMessage("У одного из вариантов ответов нет текста","Сообщение системы",0);
					return;
				}
			}
			
			p = $.toJSON(p);
			$.post("/cmd/admin/admin_polls/save",{p:p},function(data){
				core.showMessage(data);
				if (data.code == 1){
					$.form.set("poll","id",data.id);
					var inputs = $(".variants[name=id]");
					var i = 0;
					$.each(inputs, function(){
						if (data.variants[i] != null){
							$(this).attr("value",data.variants[i]);
						}
						i++;
					});
					
				}
			});
		}
	},
	menu:{
		remove:function(id){
			jConfirm("Вы уверены, что хотите удалить это меню?","Требуется подтверждение",function(flag){
				if (!flag) return;
				$.post("/cmd/admin/admin_menu/delete",{id:id},function(data){
					if (data.code == 1){
						$("#"+id).remove();
					}
					core.showMessage(data);
				});
			});
		},
		removeStyle:function(id){
			jConfirm("Вы уверены, что хотите удалить этот стиль?","Требуется подтверждение",function(flag){
				if (!flag) return;
				$.post("/cmd/admin/admin_menu/deleteStyle",{id:id},function(data){
					if (data.code == 1){
						$("#"+id).remove();
					}
					core.showMessage(data);
				});
			});
		},
		saveStyle:function(){
			var p = $.form.get("style",false);
			p.style = core.editors["#text"].getCode();
			
			$.post("/cmd/admin/admin_menu/saveStyle",{p:$.toJSON(p),style:core.editors["#text"].getCode()},function(data){
				core.showMessage(data);
				if (data.code == 1)
					$.form.set("style","id",data.id);
			});
		},
		changeType:function(){
			var type = $(".module[name=type]:checked").attr("value");
			if (type == "menu"){
				$("#module_code").css("display","none");
				$("#module_menu").css("display","block");
			}
			else{
				$("#module_code").css("display","block");
				$("#module_menu").css("display","none");
			}
		},
		changeLevel:function(sender,action){
			var div = $(sender).parent().parent().parent().parent().parent();
			var currentLevel = parseInt($(div).children("input[name=level]").attr("value"));
			if (action == '-'){
				if (currentLevel == 0) return;
				$(div).children("input[name=level]").attr("value",currentLevel - 1);
				$(div).css("padding-left",20*(currentLevel - 1));
			}
			else{
				if ($(div).is(":first-child")) return;
				var prevLevel = parseInt($(div).prev().children("input[name=level]").attr("value"));
				if (prevLevel < currentLevel) return;
				$(div).children("input[name=level]").attr("value",currentLevel + 1);
				$(div).css("padding-left",20*(currentLevel + 1));
			}
			admin.menu.checkLevels();
		},
		checkLevels:function(){
			var divs = $(".punkt");
			prevLevel = 0;
			$.each(divs,function(){
				var curLevel = parseInt($(this).children("input[name=level]").attr("value"));
				if (curLevel > (prevLevel + 1)){
					curLevel = curLevel - 1;
					$(this).children("[name=level]").attr("value",curLevel);
					$(this).css("padding-left",curLevel * 20);
				}
				prevLevel = curLevel;
			});
		},
		addPunkt:function(sender){
			$('.punkts').append($("#menuSample").html());
			//admin.menu.makeDraggable();
			
		},
		punkts:[],
		save:function(){
			admin.menu.punkts = [];
			var p = $.form.get("menu",false);
			var first = $(".punkt").eq(0);
			if (first != null){
				var i = 0;
				$.each($(".punkts > div"),function(){
					var level = parseInt($(this).children("input").attr("value"));
					admin.menu.punkts[i] = {};
					var n = $(this).children("table").children("tbody").children("tr").children("td").children("input[name=name]").attr("value");
					var u = $(this).children("table").children("tbody").children("tr").children("td").children("input[name=url]").attr("value");
					var t = $(this).children("table").children("tbody").children("tr").children("td").children("input[name=target]:checked").length;
					admin.menu.punkts[i]['name'] = n;
					admin.menu.punkts[i]['url'] = u;
					admin.menu.punkts[i]['level'] = level;	
					admin.menu.punkts[i]['target'] = t;	
					i++;	
				});
				//admin.menu.getPunkts(from, admin.menu.punkts);
				p.punkts = admin.menu.punkts;
			}
			$.post("/cmd/admin/admin_menu/save",{p:$.toJSON(p)},function(data){
				core.showMessage(data);
				if (data.code == 1)
					$.form.set("menu","id",data.id);
			});
		}
	},
	makeControllerDefault:function(controller){
		jConfirm("Сделать этот контроллер загружаемым по-умолчанию?","Точно-точно? =)",function(flag){
			if (!flag) return;
			$.post("/cmd/admin_model/makeControllerDefault",{controller:controller},function(data){
				core.showMessage(data);
			});
		});
	},
	onPage:{
		selectedRow: null,
		save:function(sender){
			var id = $(sender).attr("class");
			var tr = $(sender).parent().parent();
			var p = {
				descrEssence:$(tr).children("td").children(".descrEssence").html(),
				idEssence:$(tr).children("td").children(".idEssence").html(),
				descrPage:$(tr).children("td").children("[name=descrPage]").attr("value"),
				idPage:$(tr).children("td").children("[name=idPage]").attr("value"),
				mode:$(tr).children("td").children(".mode").attr("value"),
				id:id,
				essence:$("[name=essence]").attr("value")
			};
			p = $.toJSON(p);
			$.post("/cmd/admin/admin_onpage/save",{p:p},function(data){
				if (data.code == 1){
					$(sender).parent().children("a").attr("class",data.id);
				}
				core.showMessage(data);
			});
		},
		remove:function(sender){
			var id = $(sender).attr("class");
			jConfirm("Вы уверены, что хотите удалить это правило?","Требуется подвтерждение",function(flag){
				if (!flag) return;
				$.post("/cmd/admin/admin_onpage/remove",{id:id},function(data){
					if (data.code == 1){
						$(sender).parent().parent().remove();
						admin.adminTable();
					}
					else
						core.showMessage(data);
					
				});
			});
		},
		recolorAll:function(){
			var select = $("select.mode");
			$.each(select,function(){
				var color = $(this).children("option[value="+$(this).attr("value")+"]").css("color");
				$(this).css("color",color);
			});	
		},
		recolor:function(sender){
			var color = $(sender).children("option[value="+$(sender).attr("value")+"]").css("color");
			$(sender).css("color",color);
		},
		selectPage:function(sender){
			admin.onPage.selectedRow = $(sender).parent().parent();
			$("#pagesDialog").dialog("open");
		},
		selectDefaultPage:function(){
			$("#pagesDialog").dialog("close");
			var id = $(".systemIdPage[name=idPage]").attr("value");
			var descr = $(".systemIdPage[name=idPage]").children("option[value='"+id+"']").html();
			$(admin.onPage.selectedRow).children("td").children("[name=idPage]").attr("value",id);
			$(admin.onPage.selectedRow).children("td").children("[name=descrPage]").attr("value",descr);
		},
		selectFoundedPage:function(){
			$("#pagesDialog").dialog("close");
			var id = $(".foundedPages").attr("value");
			var descr = $(".foundedPages").children("option[value='"+id+"']").html();
			$(admin.onPage.selectedRow).children("td").children("[name=idPage]").attr("value",id);
			$(admin.onPage.selectedRow).children("td").children("[name=descrPage]").attr("value",descr);
		},
		searchPage:function(){
			var p = $.form.get("searchPage");
			$.post("/cmd/admin/admin_onpage/searchPage",{p:p},function(data){
				$("#foundedPages").html(data);
			},"html");
		},
		selectEssenceDialog:function(sender){
			admin.onPage.selectedRow = $(sender).parent().parent();
			var id = $(admin.onPage.selectedRow).children("td").children(".idEssence").html();
			$(".essenceSelect").attr("value",id);
			$("#essence_dialog").dialog("open");
		},
		selectEssence:function(){
			$("#essence_dialog").dialog("close");
			var id = $(".essenceSelect").attr("value");
			var descr = $(".essenceSelect").children("option[value='"+id+"']").html();
			$(admin.onPage.selectedRow).children("td").children(".idEssence").html(id);
			$(admin.onPage.selectedRow).children("td").children(".descrEssence").html(descr);
		},
		addRow:function(){
			var tr = $("<tr></tr>");
			$(tr).append("<td><span class=descrEssence></span></td>");	
			$(tr).append("<td><span class=idEssence></span> <a onclick=admin.onPage.selectEssenceDialog(this)>[v]</a></td>");
			$(tr).append("<td><input type='text' class=authInputs name=descrPage value=''></td>");			
			$(tr).append("<td><input type='text' class=authInputs name=idPage style='width:80px;' value=''> <a onClick=admin.onPage.selectPage(this)>[v]</a></td>");	
			$(tr).append("<td><select onChange=admin.onPage.recolor(this) class='mode authSelect'><option checked value=1 style='color:green;'>Только на этой странице</option><option value=0 style='color:red;'>На всех страницах кроме этой</option></select></td>");
			$(tr).append("<td><a class='0' onclick=admin.onPage.save(this)>Сохранить</a><br><a class='0' onclick=admin.onPage.remove(this)>Удалить</a></td>");
			$("#onpages").prepend(tr);
			admin.onPage.recolorAll();
			admin.adminTable();
		}
	},
	modules:{
		save:function(){
			var p = $.form.get("module");
			$.post("/cmd/admin/admin_modules/save",{p:p,file:core.editors["#text"].getCode()},function(data){
				core.showMessage(data);
				$.form.set("module","id",data.id);	
			});
		},
		remove:function(id){
			jConfirm("Вы уверены, что хотите удалить этот модуль?","Требуется подтверждение",function(flag){
				if (!flag) return;
				$.post("/cmd/admin/admin_modules/delete",{id:id},function(data){
					core.showMessage(data);
					if (data.code == 1)	$("#"+id).remove();
				});
			});		
		}
	},
	pages:{
		address:"/",
		idPage:0,
		name:"",
		config:{
			save:function(){
				var p = $.form.get("pages_config");
				$.post("/cmd/admin/admin_pages/saveConfig",{p:p},function(data){
					core.showMessage(data);
				});
			}
		},
		frontForm:function(idPage,idParent,dialogType,pagetype){
			$.post("/cmd/pages/page_edit",{
				id:idPage,
				currentPage:idParent,
				pagetype:pagetype
			},function(data){
				if (data.code == 0){
					core.showMessage(data);
					return;
				}
				var title = "Редактирование страницы";
				if (idPage == 0) title = "Добавление страницы";
				if (dialogType == "dialog"){
					$("body").append("<div id=frontEdit>"+data.html+"</div>");
					$("#frontEdit").dialog({
						width:990,
						height:560,
						title:title,
						modal:true,
						close:function(a,b){
							$("#frontEdit").dialog("destroy").remove();
						}
					}).parent().children(".ui-dialog-titlebar").append('<a class=savePage style="position:absolute; right:4em; cursor:pointer;" class="ui-corner-all"><span>Сохранить</span></a>');
					$(".savePage").live("click",function(){
						admin.pages.save();
					});
				}
				if (dialogType == "inline"){
					$("#inlineEdit > div").html(data.html);
					$("#inlineEdit").slideDown();
				}
				if (dialogType == "fullscreen"){
					
					///core.closeLoad();
					$("body > :visible:not(.modalScreen)").addClass("i_ve_made_it_invisible").css("display","none");
					$("body").prepend("<div id=fullscreenEdit class='ui-widget-content ui-corner-all'></div>");
					
					
					$("#fullsreenEdit")
						.css("position","absolute")
						.css("top",0)
						.css("left",0)
						.css("width","100%")
						.css("height","100%");
					var close = "<a onClick=admin.pages.closeFullscreen()>Закрыть</a>";
					
					$(document).ready(function(){
						$("#fullscreenEdit").html(close+data.html+close);
					});
				}
				
				//admin.adminTable();
				core.buttons();
			});
		},
		closeFullscreen:function(){
			$("#fullscreenEdit").remove();
			$(".i_ve_made_it_invisible").show().removeClass("i_ve_made_it_invisible");
			$("body").prepend( $("#bodyDIV").html() ).remove("#bodyDIV");
		},
		inlineEditHide:function(){
			$("#inlineEdit").slideUp("fast",function(){
				$("#inlineEdit > div").empty();
			});
		},
		moveThisPage:function(){
			admin.pages.movePageDialog(admin.pages.idPage, admin.pages.name);
		},
		deleteThisPage:function(){
			admin.pages.deletePage(admin.pages.idPage, "yes");
		},
		movePageDialog:function(id,name){
			$("#pageToMove").html(name);
			$.form.set("movePage","id",id);
			$("#movePageDialog").dialog("open");
		},
		deletePage:function(id,parent){
			jConfirm("Вы действительно хотите удалить эту страницу?", "Требуется подтверждение",function(flag){
				if (!flag) return;
				admin.pages.deletePageContinue(id,parent);
			});
		},
		deletePageContinue:function(id,parent){
			var params = {id:id};
			if (parent == null){
				params.setNewParent = "no";
			}
			else {
				params.setNewParent = parent;
			}

			$.post("/cmd/pages/deletePage",params,function(data){
				if (data.code == 0){
					core.showMessage(data);
					return;
				}
				if (data.code == -1){
					$("body").append(data.html);
				}
				if (data.code == 1){
					core.showMessage(data);
					admin.pages.afterDeletePage(data.parent);
				}
			});		
		},
		deletePageSelectParent:function(){
			var parent = $('.deletePage[name=parent]').attr("value");
			
			var id = $('.deletePage[name=id]').attr("value");
			$('#deletePageDialog').dialog("destroy").remove();
			admin.pages.deletePageContinue(id,parent);
		},
		afterDeletePage:function(id){
			admin.pages.loadPages(id);
		},
		movePage:function(){
			var p = $.form.get("movePage");
			$.post("/cmd/pages/movePage",{p:p},function(data){
				core.showMessage(data);
				if (data.code == 1){
					admin.pages.loadPages(data.newParent);
					$("#movePageDialog").dialog('close');
				}
			});
		},
		pagetypeChanged:function(sender){
 			var pagetype = $(sender).attr("value");
 			var values = $.form.get("pageVariables",false,true);
			var mainForm = $.form.get("page",false);
			 
 			var p = {
 				pagetype:pagetype,
 				values:values,
 				id:mainForm.id,
 				idParent:mainForm.idParent
 			};
 			p = $.toJSON(p);
 			
 			$.post("/cmd/pages/afterPageTypeChanged",{p:p},function(data){
 				if (data.code == 1)
 					$("#pageVariables").html(data.descr);
 				else{
 					$.form.set("page","pagetype",data.pagetype);
 					core.showMessage(data);
 				}
 			});
 		},
		save:function(params){
			if (params == null){
				params = {};
			}
			var p = $.form.get("page",false);
			var variables = $.form.get("pageVariables",false,true);

			p.variables = variables;
			p = $.toJSON(p);
			$.post("/cmd/pages/save",{p:p},function(data){
				if (data.code == 1){
					if (params.success != null)
						data.descr = params.success;
					if (params.reload != null) window.location.href = window.location.href;
				}
				core.showMessage(data);
				if (data.code == 1){
					$.form.set("page","id",data.id);
					if ($("#pagesTbody").length > 0){
						admin.pages.refresh();
					}
				}
			});
		},
		deleteVariable:function(sender,code){
			jConfirm("Вы действительно хотите удалить этот параметр?","Требуется подтверждение",function(flag){
				if (!flag) return;
				var container = $(sender).parent().parent().children("td").eq(1);
				call_user_func("delete_"+code,code,container);
				$(sender).parent().parent().parent().parent().parent().remove();
			});
			
		},
		addVariableToForm:function(fieldtype,key,where,multy){
			$.post("/cmd/pages/addVariableToForm",{fieldtype:fieldtype,key:key,multy:multy},function(data){
				if (where == "up")
					$("div.variable_"+key+" > ul").prepend(data);
				else
					$("div.variable_"+key+" > ul").append(data);
			},"html");
		},
		goUp:function(){
			var address = admin.pages.address;
			var i = core.strrpos(address,"/");
			address = address.substr(0,i);
			if (address.length == 0) address = "/";
			if (address != admin.pages.address){
				$(".searchString").attr("value",address);
				admin.pages.loadPages("address");
			}
		},
		refresh:function(){
			admin.pages.loadPages(admin.pages.idPage);
		},
		edit:function(id){
			$.post("/cmd/pages/page_edit",{
				id:id,
				currentPage:admin.pages.idPage
			},function(data){
				if (data.code == 0){
					core.showMessage(data); return;
				}
				var title = "Добавление новой страницы";
				if (id != 0)
					var title = "Редактирование страницы";
				$("#editPageDialog").html(data.html)
				$("#editPageDialog").dialog("option","title",title).dialog("open");
				admin.adminTable();
			});
			
		},
		loadPages:function(from){
			if (from == "address")
				var p = {address:$('.searchString').attr("value")};
			else 
				var p = {idPage:from};
			$.post("/cmd/admin/admin_pages/loadPage",p,function(data){
				if (data.code == 0){
					core.showMessage(data);
				}
				if (data.root == 1){
					$("#infoTD").hide();
					$("#newPageButton").show();
					$("#editPageButton").hide();
					$("#movePageButton").hide();
					$("#deletePageButton").hide();
				}
				else{
					$("#infoName").html(data.name);
					admin.pages.name = name;
					$("#infoSysName").html(data.sysName);
					$("#infoPageType").html(data.pagetypeDescr);
					$("#infoDateCreate").html(data.dateCreate);
					$("#infoDateEdit").html(data.dateEdit);
					$("#infoComments").html(data.comments);
					$("#infoRating").html(data.rating);
					$("#movePageButton").show();
					$("#deletePageButton").show();
					if (data.canHaveChild == "1"){
						$("#newPageButton").show();
						$("#infoСhildrens").html(data.childs.length);
					}
					else {
						$("#newPageButton").hide();
						$("#infoСhildrens").html(data.canHaveChild);
					}
					$("#editPageButton").show();
					$("#infoTags").html("не прикрутил еще");
					$("#infoTD").show();
				}
				$("#pagesTbody").empty();
				var html = "";
				if (data.childs.length > 0){
					$.each(data.childs,function(){
						html += "<tr>";
						html += "<td onClick=admin.pages.loadPages("+this.id+")>"+this.name+"</td>";
						html += "<td onClick=admin.pages.loadPages("+this.id+")>"+this.sysName+"</td>";
						html += "<td onClick=admin.pages.loadPages("+this.id+")>"+this.dateCreate+"</td>";
						var edit = this.dateEdit;
						if (edit == null) edit = "";
						html += "<td onClick=admin.pages.loadPages("+this.id+")>"+edit+"</td>";
						html += "<td><a onClick=admin.pages.edit("+this.id+")><img style='width:25px' src='/images/wf/pages/edit.png' alt='edit'></a> ";
						html += "<a onClick=admin.pages.movePageDialog("+this.id+",$(this).parent().parent().children('td:first').html())><img style='width:25px' alt=move src='/images/wf/pages/move.png'></a> "; 
						html += "<a onClick=admin.pages.deletePage("+this.id+",'yes')><img src='/images/wf/pages/remove.png' style='width:25px' alt=delete></a></td>";
						html += "</tr>";
					});
					$("#pagesTbody").html(html);
				}
				admin.pages.address = data.address;
				admin.pages.idPage = data.id;
				$(".searchString").attr("value",data.address);
				admin.adminTable();
			});
			//alert("Пошла мазута!!!");
		}
	},
 	pagetypes:{
 		savePagetype:function(){
 			var p = $.form.get("pagetype",false);
 			p["form"] = core.editors[".pagetype[name=form]"].getCode();
			p["onCreate"] = core.editors[".pagetype[name=onCreate]"].getCode();
			p["onChange"] = core.editors[".pagetype[name=onChange]"].getCode();
			p["onDelete"] = core.editors[".pagetype[name=onDelete]"].getCode();
			p["onShow"] = core.editors[".pagetype[name=onShow]"].getCode();
			p["view"] = core.editors[".pagetype[name=view]"].getCode();
			p["search"] = core.editors[".pagetype[name=search]"].getCode();
			p["variables"] = [];
			var c = 0;
			var variables = $("#variablesTbody > tr");
			$.each(variables,function(){
				var variable = {};
				variable.name = $(this).children("td").children("[name=name]").attr("value");
				variable.key = $(this).children("td").children("[name=key]").attr("value");
				variable.fieldtype = $(this).children("td").children("[name=fieldtype]").attr("value");
				variable.multy = $(this).children("td").children("[name=multy]:checked").length;
				variable.tag = $(this).children("td").children("[name=tag]:checked").length;
				var wfSelected = $(this)
					.children("td")
					.children("div")
					.children(".wfSelected");
				variable.access = [];
				var i = 0;
				$.each(wfSelected,function(){
					variable.access[i] = $(this).children("input").attr("value");
					i++;
				});
				p["variables"][c] = variable;
				c++;
			});
			p = $.toJSON(p);
			$.post("/cmd/admin/admin_pages/pagetypes_save",{p:p},function(data){
				if (data.code == 1){
					$.form.set("fieldtype","id",data.id);
					core.load("#tab2","/cmd/admin/admin_pages/pagetypes_list");
				}
				core.showMessage(data);			
			});
 		},
 		fieldTypeChanged:function(sender){
 		//если дефолтная форма - чекбокс или радио - дизеблим возможность мультиполя
 			var value = $(sender).attr("value");
 			$.post("/cmd/pages/getDefaultFormFromFieldType",{value:value},function(data){
 				var tr = $(sender).parent().parent();
 				if (data == "5" || data == "4"){			
 					$(tr).children("td").children("[name=multy]").attr("checked","checked").attr("disabled","disabled");
 					if (data == "4")
 						$(tr).children("td").children("[name=multy]").removeAttr("checked");
 				}
 				else {
 					$(tr).children("td").children("[name=multy]").removeAttr("disabled");
 				}
 				
 			},"html");
    	},
 		addVariable:function(where){
 			$.post("/cmd/admin/admin_pages/getNewVariableRow",{},function(data){
 				if (where == "up")
 					$("#variablesTbody").prepend(data);
 				else $("#variablesTbody").append(data);
 				admin.adminTable();
 			},"html");
 		},
 		removeVariableTR:function(sender){
 			jConfirm("Точно удаляем?","Требуется подтверждение",function(flag){
 				if (!flag) return;
 				$(sender).parent().parent().remove();
 				admin.adminTable();
 			});
 		},
 		toggleAccessRights:function(sender){
 			$('.accessGroups').slideUp();
 			$('.toggleAccessRights').html("Показать");
 			var div = $(sender).parent().children("div");
 			if ($(div).css("display") == "none"){ 
 				$(div).slideDown();
 				$(sender).html("Спрятать");
 			}
 			else $(sender).html("Показать");
 		},
 		edit:function(id){
			$.post("/cmd/admin/admin_pages/pagetypes_edit",{id:id},function(data){
				$("#pagetypeDialog").dialog("open").html(data).dialog("option","title","Редактирование типа страницы");
				if (id == 0)
					$("#fieldtypeDialog").dialog("option","title","Добавление типа страницы");
					core.showLoad();
					core.codeMirror(".pagetype[name=view]","html",330);
					core.codeMirror(".pagetype[name=form]","html",330);
					core.codeMirror(".pagetype[name=onCreate]","html",330);
					core.codeMirror(".pagetype[name=onChange]","html",330);
					core.codeMirror(".pagetype[name=onDelete]","html",330);
					core.codeMirror(".pagetype[name=onShow]","html",330);
					core.codeMirror(".pagetype[name=search]","html",330);
					admin.adminTable();
			},"html");
		},
		deleteType:function(id){
			jConfirm("Уверены что хотите безвозвратно удалить этот тип полей? А вдруг что случиться?","Требуется подтверждение",function(flag){
				if (!flag) return;
				$.post("/cmd/admin/admin_pages/pagetypes_delete",{id:id},function(data){
					core.showMessage(data);
					if (data.code == 1)
					$("#pagetype_"+id).remove();
				});
			});
		},
		deleteCategory:function(id){
			jConfirm("Уверены, что хотите удалить эту категорию?","Требуется подтверждение",function(flag){
			if (flag)
			{
				$.post("/cmd/admin/admin_pages/types_deleteCategory",{id:id,type:"pagetypes"},function(data){
					core.showMessage(data);
					if (data.code == 1)
						core.load("#tab2","/cmd/admin/admin_pages/pagetypes_list");
				});
			}
			});
		},
		editCategory:function(sender){
			var id = $(sender).parent().attr("id");
			var name = $(sender).parent().children("span").html();
			$.form.set("pagetypeCategory","id",id);
			$.form.set("pagetypeCategory","name",name);
			$("#pagetypeCategoryDialog")
				.dialog("option","title","Редактирование категории")
				.dialog("open");
		},
		addCategory:function(){
			$.form.set("pagetypeCategory","id",0);
			$.form.set("pagetypeCategory","name","");
			$("#pagetypeCategoryDialog")
				.dialog("option","title","Добавление категории")
				.dialog("open");
		},
	 	saveCategory:function(){
			$.form.save({
				name:"pagetypeCategory",
		 		url:"/cmd/admin/admin_pages/types_saveCategory",
				callback:function(data){
					if (data.code == 1)
					{
						$("#pagetypeCategoryDialog").dialog("close");
						core.load("#tab2","/cmd/admin/admin_pages/pagetypes_list");
					}
				}
			});
		}
    },
    fieldtypes:{
		saveFieldtype:function(){
			var p = $.form.get("fieldtype",false);

			p["form"] = core.editors[".fieldtype[name=form]"].getCode();
			p["onCreate"] = core.editors[".fieldtype[name=onCreate]"].getCode();
			p["onChange"] = core.editors[".fieldtype[name=onChange]"].getCode();
			p["onDelete"] = core.editors[".fieldtype[name=onDelete]"].getCode();
			p["onShow"] = core.editors[".fieldtype[name=onShow]"].getCode();
			p["view"] = core.editors[".fieldtype[name=view]"].getCode();
			p["defaultView"] = core.editors[".fieldtype[name=defaultView]"].getCode();
			$.post("/cmd/admin/admin_pages/fieldtypes_save",{p:$.toJSON(p)},function(data){
			if (data.code == 1)
				$.form.set("fieldtype","id",data.id);
				core.showMessage(data);
				core.load("#tab3","/cmd/admin/admin_pages/fieldtypes_list");
			});
		},
		defaultFormSelected:function(sender){
			var value = $(sender).attr("value");
			if (value == "0") return;
			$.post("/cmd/admin/admin_pages/fieldtypes_getDefaultForm/",{id:value},function(data){
				if (data.code == 1){
					
					core.editors[".fieldtype[name=form]"].setCode(data["form"]);
					core.editors[".fieldtype[name=onCreate]"].setCode(data["onCreate"]);
					core.editors[".fieldtype[name=onChange]"].setCode(data["onChange"]);
					core.editors[".fieldtype[name=onDelete]"].setCode(data["onDelete"]);
					core.editors[".fieldtype[name=onShow]"].setCode(data["onShow"]);
					/*
					$.form.set("fieldtype","form",data["form"]);
					$.form.set("fieldtype","onCreate",data["onCreate"]);
					$.form.set("fieldtype","onChange",data["onChange"]);
					$.form.set("fieldtype","onDelete",data["onDelete"]);
					$.form.set("fieldtype","onShow",data["onShow"]);*/
					//alert(data["form"]);
				}
				else {
					core.showMessage(data);
					$(sender).attr("value","0");
				}
			});
		},
		defaultFormChanged:function(){
			var defaultForm = $(".fieldtype[name=defaultForm]:checked").attr("value");
			$(".defaultForm").slideUp();
			$("[name=defaultFormWithoutDirectory],[name=defaultFormNeedDirectory]").attr("value",0);
			if (defaultForm == 1){
				var directory = $(".fieldtype[name=directory]").attr("value");
				if (directory == 0)
					$("#withoutDirectory").slideDown();
				else
					$("#needDirectory").slideDown();
			}
		},
		deleteType:function(id){
			jConfirm("Уверены что хотите безвозвратно удалить этот тип полей? А вдруг что случиться?","Требуется подтверждение",function(flag){
				if (!flag) return;
				$.post("/cmd/admin/admin_pages/fieldtypes_delete",{id:id},function(data){
					core.showMessage(data);
					if (data.code == 1)
						$("#fieldtype_"+id).remove();
				});
			});
		},
		deleteCategory:function(id){
			jConfirm("Уверены, что хотите удалить эту категорию?","Требуется подтверждение",function(flag){
				if (flag)
				{
					$.post("/cmd/admin/admin_pages/types_deleteCategory",{id:id,type:"fieldtypes"},function(data){
						core.showMessage(data);
						if (data.code == 1)
							core.load("#tab3","/cmd/admin/admin_pages/fieldtypes_list");
					});
				}
			});
		},
		editCategory:function(sender){
			var id = $(sender).parent().attr("id");
			var name = $(sender).parent().children("span").html();
			$.form.set("fieldtypeCategory","id",id);
			$.form.set("fieldtypeCategory","name",name);
			$("#fieldtypeCategoryDialog").dialog("option","title","Редактирование категории");
			$("#fieldtypeCategoryDialog").dialog("open");
		},
		edit:function(id){
			$.post("/cmd/admin/admin_pages/fieldtypes_edit",{id:id},function(data){
				//core.showLoad();
				$("#fieldtypeDialog").dialog("open").html(data).dialog("option","title","Редактирование типа поля");
				if (id == 0)
					$("#fieldtypeDialog").dialog("option","title","Добавление типа поля");

				$(document).ready(function(){
					core.showLoad();
					
					
					
					core.codeMirror(".fieldtype[name=form]","html",200);
					core.codeMirror(".fieldtype[name=onCreate]","html",200);
					core.codeMirror(".fieldtype[name=onChange]","html",200);
					core.codeMirror(".fieldtype[name=onDelete]","html",200);
					core.codeMirror(".fieldtype[name=onShow]","html",200);
					core.codeMirror(".fieldtype[name=view]","html",200);
					core.codeMirror(".fieldtype[name=defaultView]","html",200);
					//$("#saveFieldtype").click(function(){admin.fieldtypes.saveFieldtype();});
				});
			/*
			$().ready(function(){
				core.closeLoad();
			});*/
			},"html");
		},

		addCategory:function(){
			$.form.set("fieldtypeCategory","id",0);
			$.form.set("fieldtypeCategory","name","");
			$("#fieldtypeCategoryDialog").dialog("option","title","Добавление категории");
			$("#fieldtypeCategoryDialog").dialog("open");
		},
		saveCategory:function(){
			$.form.save({
				name:"fieldtypeCategory",
				url:"/cmd/admin/admin_pages/types_saveCategory",
				callback:function(data){
					if (data.code == 1)
					{
						$("#fieldtypeCategoryDialog").dialog("close");
						core.load("#tab3","/cmd/admin/admin_pages/fieldtypes_list");
					}
				}
			});
		}
    },
    directories:{
        save:function(){
            var p = $.form.get("directory",false);
            var values = $.form.get("directoryValues",false,true);
            p.values = values;
            p = $.toJSON(p);
            $.post("/cmd/admin/admin_pages/directories_save",{p:p},function(data){
                core.showMessage(data);
                if (data.code == 1)
				{
	            	$("#directoriesDialog").dialog("close");
					core.load("#tab4","/cmd/admin/admin_pages/directories_show");
				}
            });
        },
        deleteDirectory:function(id){
            jConfirm("Вы уверены, что желаете удалить этот справочник? Хрен знает к каким последствиям это может привести, если справочник используется в каких-то страницах. На ваш страх и риск!",
                     "Требуется подтверждение",function(flag){
                        if(!flag) return;
                        $.post('/cmd/admin/admin_pages/directory_delete',{id:id},function(data){
                            core.showMessage(data);
                            if (data.code == 1)
                                $("#directory_"+id).remove();
                        });
                     });
        },
        deleteValue:function(sender){
            jConfirm("Вы уверены, что хотите удалить это поле?","Требуется подтверждение",function(flag){
                if (!flag) return;
                $(sender).parent().parent().remove();
                admin.adminTable();
            });
        },
        addValue:function(where){
            var tr = $("<tr></tr>");
            $(tr).html("<td></td><td  style='vertical-align:middle;'></td>");
            $(tr).children("td:first").html("<input type=text style='width:260px;' class='authInputs directoryValues' name='value'><input type=hidden class='authInputs directoryValues' name=id value=0>");
            $(tr).children("td:last").html("<a onclick=admin.directories.deleteValue(this)>Удалить</a>");
            if (where == 'top')
                $("#directoryValues").prepend(tr);
            else
                $("#directoryValues").append(tr);
            admin.adminTable();
        },
        showForm:function(id){
            $.post("/cmd/admin/admin_pages/directories_form",{id:id},function(data){
                if (id == 0) var title = "Создание справочника";
                else var title = "Редактирование спрачника";
                $("#directoriesDialog").html(data).dialog('option','title',title).dialog("open");
            },"html");
        }
    },
    jscss:{
		deleteFile:function(id){
			jConfirm("Уверены что хотите безвозвратно удалить этот файл?","Требуется подтверждение",function(flag){
			if (!flag) return;
			$.post("/cmd/admin/jscss/deleteFile",{id:id},function(data){
				core.showMessage(data);
				if (data.code == 1)
				$("#file_"+id).remove();
			});
			});
		},
		deleteCategory:function(id){
			jConfirm("Уверены, что хотите удалить эту категорию?","Требуется подтверждение",function(flag){
			if (flag)
			{
				$.post("/cmd/admin/jscss/deleteCategory",{id:id},function(data){
				core.showMessage(data);
				if (data.code == 1)
					window.location.reload();
				});
			}
			});
		},
		editCategory:function(sender){
			var id = $(sender).parent().attr("id");
			var name = $(sender).parent().children("span").html();
			$.form.set("category","id",id);
			$.form.set("category","name",name);
			$("#categoryDialog").dialog("option","title","Редактирование категории");
			$("#categoryDialog").dialog("open");
		},
		editFile:function(id,type){
			$.post("/cmd/admin/jscss/edit",{id:id,type:type},function(data){
			$("#fileDialog").html(data).dialog("option","title","Редактирование "+type).dialog("open");
			$(document).ready(function(){
				core.codeMirror(".jscss[name=code]",type,280);
			})
			},"html");
		},
		saveFile:function(){
			var textarea = ".jscss[name=code]";
			var p = $.form.get("jscss",false);
			p.code = core.editors[textarea].getCode();
			//p.code = core.str_replace("<","<",p.code);
			p = $.toJSON(p);
			

			$.post("/cmd/admin/jscss/saveFile",{p:p},function(data){
				//alert(data);
				core.showMessage(data);
				if (data.code == 1)
				{
					$.form.set("jscss","id",data.id);
				}
			});
		},
		addCategory:function(){
			$.form.set("category","id",0);
			$.form.set("category","name","");
			$("#categoryDialog").dialog("option","title","Добавление категории");
			$("#categoryDialog").dialog("open");
		},
		saveCategory:function(){
			$.form.save({
			name:"category",
			url:"/cmd/admin/jscss/saveCategory",
			callback:function(data){
				if (data.code == 1)
				{
				$("#categoryDialog").dialog("close");
				window.location.reload();
				}
			}
			});
		}
    
    },
    config:{
		saveMain:function(){
			var p = $.form.get("config");
			$.post("/cmd/admin/site_config/saveMain",{p:p},function(data){
				core.showMessage(data);
			});
		},
		saveDB:function(){
			var p = $.form.get("config");
			$.post("/cmd/admin/site_config/saveDB",{p:p},function(data){
				core.showMessage(data);
			})
		}
    },
    users:{
		saveEdit:function(){
			$.post("/cmd/admin/users_admin/saveEdit",{p:$.form.get('userForm')},function(data){
				core.showMessage(data);
			});
		},
		changeGroupInList:function(sender){
			var group = $(sender).attr("value");
			window.location = '/admin/users_admin/show/0/'+group;
		},
		activate:function(id,sender){
			jConfirm("Вы уверены, что хотите активировать этого пользователя?","Требуется подтверждение",function(flag){
			if (!flag) return;
			$.post('/cmd/admin/users_admin/activationSave',{id:id,value:1},function(data){
				core.showMessage(data);
				if (data.code == 1)
				$(sender).parent().html("<a onclick=admin.users.disactivate('"+id+"',this)>Активирован</a>");
			});
			});
		},
		disactivate:function(id,sender){
			jConfirm("Вы уверены, что хотите деактивировать этого пользователя?","Требуется подтверждение",function(flag){
			if (!flag) return;
			$.post('/cmd/admin/users_admin/activationSave',{id:id,value:0},function(data){
				core.showMessage(data);
				if (data.code == 1)
				$(sender).parent().html("<a onclick=admin.users.activate('"+id+"',this)>Не активирован</a>");
			});
			});
		},
		ban:function(id,sender){
			jConfirm("Хотите влепить бан этому пользователю?<br>А на сколько дней?<br><input type=text class='authInputs' name=banInput style='width:50px' value=1>",
			"Требуется подтверждение",function(flag){
			if (!flag) return;
			$.post("/cmd/admin/users_admin/ban",{id:id,value:$("[name=banInput]").attr("value")},function(data){
				core.showMessage(data);
				if (data.code == 1)
				$(sender).parent().html(data.html);
			});
			});
		},
		unban:function(id,sender){
			jConfirm("Разбанить этого пользователя?",
			"Требуется подтверждение",function(flag){
			if (!flag) return;
			$.post("/cmd/admin/users_admin/ban",{id:id,value:0},function(data){
				core.showMessage(data);
				if (data.code == 1)
				$(sender).parent().html(data.html);
			});
			});
		}
    },
    groups:{
		save:function(){
			var p = $.form.get('groups_form');
			$.post('/cmd/admin/groups_admin/save',{p:p},function(data){
			core.showMessage(data);
			if (data.go != "") window.location = data.go;
			});
		},
		del:function(id, sender){
			var a = $('a.a_group');

			var question = "Вы уверены, что хотите удалить эту группу? <br>Куда переносим контакты из неё?<br>";
			question += "<select class='delete_group authSelect' name=to><option value=0>По-умолчанию</option>";
			$.each(a,function(){
			if ($(this).attr("id") != id) question +="<option value='"+$(this).attr("id")+"'>"+$(this).html()+"</option>";
			});
			question += "</select> <br> Если вы выберите группу, то юзер будет добавлен в нее. Иначе, если удаляемая группа была его основной группой, то она заменится на группу по-умолчанию из конфига.";
			jConfirm(question,"Требуется подтверждение",function(flag){
			if (flag == true)
			{
				var to = $(".delete_group[name=to]").attr("value");
				var p = {id:id};
				if (to != "0") p.to = to;
				p = $.toJSON(p);
				$.post("/cmd/admin/groups_admin/delete",{p:p},function(data){
				if (data.code == 1)
				{
					$(sender).parent().parent().remove();
					admin.adminTable();
				}
				core.showMessage(data);
				});
			}
			});
		}
    },
    adminTable:function(){
    	var tables = $("table");
    	$.each(tables,function(){
    		$(this).children("tbody").children("tr:even").removeClass("odd").addClass("even");
    		$(this).children("tbody").children("tr:odd").removeClass("even").addClass("odd");
			$(this).attr("cellpadding",0).attr("cellspacing",1);	
    	});
		
    }
};

$(document).ready(function(){
    admin.adminTable();
});

