var lang = readCookie('lang')||'ru';
$(document).ready(function() {changeLang(lang)});

function changeLang(l) {
    if (!l) l=(lang=='ru'?'en':'ru');
    lang = l;
    setCookie("lang",lang);
    $('.langRu').css({display:lang=='ru'?'inline':'none'});
    $('.langEn').css({display:lang=='en'?'inline':'none'});
}
function l(ru,en) {
    return "<span class='langRu'>"+ru+"</span><span class='langEn'>"+en+"</span>";
}
function inputDigit(input) {
    input.value = input.value.replace(/[^\d,]/g, '');
}
function $q(str){
    if (str == undefined) return '';
    return String(str).replace(/\'/g,"&#39;").replace(/\"/g,"&quot;").replace(/\</g,"&lt;").replace(/\>/g,"&gt;"); //';
}

function setCookie(name, value, exp){
    var today = new Date();
    expires = new Date(today.getTime() + 100*24*60*60*1000);
//    alert(siteServerName);
    document.cookie = name + "=" + escape(value) +"; path=/;  expires=" +expires;
    
}
function deleteCookie(name){
    var expireAt = new Date("01 January, 1970 00:00:01");
    document.cookie = name + "=0; path=/;  expires=" + expireAt.toGMTString();
}
function readCookie(name) {
    var cook = document.cookie;
    var arr = cook.split("; ");
    var arr2;
    var i;
    for (i=0;i<arr.length;i++) {
        arr2 = arr[i].split("=");
        if (arr2[0] == name) return unescape(arr2[1]);
    }
    return "";

}



$(document).ready(resize);
$(window).resize(resize);
function resize(){
    var height = $(window).height()-$(".tabloid").offset().top-40;
//    try{$(".tabloid").css({"height":height});}catch(e){}
    
    $(".tabloid tr:odd").css({"background-color":"#f5f5f5"});
    $(".tabloid tr:even").css({"background-color":"#ffffff"});
    if (typeof cardId != "undefined"){
	$(".tabloid tr").css({"height":height/18});
	$(".tabloid tr td").css({"width":"20%"});
    } else {
	$(".tabloid tr").css({"height":height/19});
    }
    
//    $(".tabloid td").css({"height":($(window).height()-$(".tabloid").offset().top-40)/19});
}

function signup() {
    var html = "";
    html += "<table>"+
    "<tr><td>"+l("Логин",'Login')+"</td><td><input id='reg_login'></td></tr>"+
    "<tr><td>"+l("Пароль",'Password')+"</td><td><input id='reg_password1' type=password></td></tr>"+
    "<tr><td>"+l("Повторите пароль",'Repeat password')+"</td><td><input id='reg_password2' type=password></td></tr>"+
    "<tr><td>"+l("Имя",'Name')+"</td><td><input id='reg_name'></td></tr>"+
    "<tr><td>"+l("Почта",'E-mail')+"</td><td><input id='reg_mail'></td></tr>"+
    "</table>";
    
    
    $(html).dialog({title:l('Регистрация','Sign up'), modal:true, buttons:
    {
	//l('Регистрация','Sign Up'): function(){
	'Регистрация': function(){
	    $.post('/ajax/signup',{login:$('#reg_login').val(),  pass:$('#reg_password1').val(),pass1:$('#reg_password2').val(), name:$('#reg_name').val(), mail:$('#reg_mail').val()}, 
		function (a) {
		    if(a.ok) {
			location.reload();
		    } else {
			alert(a.error);
		    }
		},"json"
	    );
	},
	'Cancel':function(){$( this ).dialog( "close" );}
    }});
}


function signin() {
    $.post('/ajax/signin',{login:$('#login').val(),  pass:$('#password').val()}, 
	function (a) {
	    if(a.ok) {
		location.reload();
	    } else {
		alert(l('Пользователь не найден','User not found'));
	    }
	},"json"
    );
    
}
function signout() {
    $.post('/ajax/signout',{}, 
	function (a) {
	    location.reload();
	},"json"
    );
}

function cardCreate(vid,callback) {
	if (vid == undefined && typeof vidId != 'undefined') {
	    vid = vidId;
	}
	var html = "<input id=\"cardCreateUrl\">URL<br>"+
	"Тип визитки: <select id=cardCreateSelectVid></select>";
	dialogCardCreate = $("<div>"+html+"</div>").dialog({
	    title:l('Создание новой визитки','New card creating'), 
	    modal:true,
	    width:700,
	    buttons:{
		'Ok': function() {
		    //classId=$('input[name="searchClassPunkt"]:checked').val();
		    //if (classId <= 0) if (!confirm("Не выбран пункт классификатора.\nПродолжить?")) {return;}
		    $.post('/ajax/card/create',{vid:$('#cardCreateSelectVid').val(), url:$('#cardCreateUrl').val()},function(a){
			if(a.ok) {
			    if (typeof callback == 'function') callback(a.id);
			    else if (typeof callback == 'string') window[callback](a.id);
			    else location.href=a.location;
			    dialogCardCreate.dialog( "close" );
			}
			else alert(a.error);
		    },"json");
		},
		'Cancel': function(){$( this ).dialog( "destroy" );}
	    },
	    close : function () {
		$(this).remove();
	    }
	});
	
	cardCreateSelectVid(vid);
}
function cardCreateSelectVid(id) {
    $.post('/ajax/vid/list',{},function(a){
	var html = "";
	for(var i=0; i<a.length; i++) {
	    html+= "<optgroup label='"+a[i].name+"'>";
	    for(var j=0; j<a[i].items.length; j++) {
		html += "<option "+(a[i].items[j].id == id ?"selected":"")+" value="+a[i].items[j].id+" >"+a[i].items[j].name+"</option>";
	    }
	    html += "</optgroup>";
	}
	$('#cardCreateSelectVid').html(html);
    },"json");
}

function cardInit() {
/*
    $("[num]").tooltip({
	delay:0,
	track: true, 
        delay: 0, 
        showURL: false, 
        opacity: 1, 
	bodyHandler: function() { 
            return $(this).find(".cardItemValueRu").html().substr(0,100)+"..."; 
        } 
    });

    $('[num]').each(function(i) {
	if (!$(this).find(".cardItemValueRu").html()) {
	    $(this).css({'color':'#BBB'});
	}
    });
*/
    if (userAccess == 0) {
      $("#classificator").css({display:"none"});
/*
      $("[num]").click(function (){
	dialog = $("<div>"+$(this).find(".cardItemValueRu").html()+"</div>").dialog({title:$(this).find(".cardItemNameRu").html(), modal:true,
	    buttons:{
		'Close': function(){dialog.dialog( "close" ); }
	    }, 
	    close : function () {
		$(this).remove();
	    }
	});
      });
*/
    } else {
/*
      CKFinder.setupCKEditor( null, '/static/ckfinder/' );
      $("[num]").click(function (){
	var html = "<div id=CKeditorToolbar></div><textarea id=cardItemValueInputRu></textarea><br><textarea id=cardItemValueInputEn></textarea>";
	html += "<input id=cardItemId type=hidden>";
	dialog = $("<div>"+html+"</div>").dialog({
	    title:$(this).find(".cardItemNameRu").html(), 
	    modal:true,
	    width:"1000",
	    position:"top",
	    buttons:{
		'Сохранить': function() {
		    $.post('/ajax/card/modify',{id:cardId, item:$('#cardItemId').val(), valueRu:$("#cardItemValueInputRu").val(), valueEn:$("#cardItemValueInputEn").val()},function(a){
			if(a.ok) {
			    $("[num="+$('#cardItemId').val()+"] .cardItemValueRu").html($("#cardItemValueInputRu").val());
			    $("[num="+$('#cardItemId').val()+"] .cardItemValueEn").html($("#cardItemValueInputEn").val());
			    dialog.dialog( "close" );
			}
			else alert(a.error);
		    },"json");
		},
		'Отмена': function(){dialog.dialog( "close" ); },
		'Редактировать название поля': function () {
		    var id = $("#cardItemId").val();
		    dialog.dialog('close');
		    modifyVid(vidId, id);
		    
		}
	    }, close : function () {
		$("#cardItemValueInputRu").ckeditor(function(){this.destroy();});
		$("#cardItemValueInputEn").ckeditor(function(){this.destroy();});
		
		$(this).remove();
	    }
	});
	$("#cardItemValueInputRu").val($(this).find(".cardItemValueRu").html());
	$("#cardItemValueInputEn").val($(this).find(".cardItemValueEn").html());
	$("#cardItemId").val($(this).attr("num"));
	$("#cardItemValueInputRu").ckeditor();
	$("#cardItemValueInputEn").ckeditor();
      });

*/    

      $("#classificator").sortable({
	update: function () {
	    $.post('/ajax/vid/order',{url:location.href.replace(/http:\/\/.+?(\/.+)\/.+/,"$1"), order:$("#classificator").sortable("toArray")},function(a){},"json");
	}
      });
    
      document.write("<div id=vidInfo>"+
	"Описание<br>"+
	"<textarea id=vidDescriptionRu></textarea>Рус<br>"+
	"<textarea id=vidDescriptionEn></textarea>Eng<br>"+
	"<button onClick=\"$.post('/ajax/vid/description',{vidId: vidId, descriptionRu:$('#vidDescriptionRu').val(), descriptionEn:$('#vidDescriptionEn').val() },function(a){alert('Ok')},'json');\">Сохранить</button>"+
      "</div>");
      $("#vidDescriptionRu").val(vidDescriptionRu);
      $("#vidDescriptionEn").val(vidDescriptionEn);
      
      document.write("<div id=classCard></div>");
      displayClassOnCard();
    }

    $('.cardTable img[rel!=lightboxed]').each(function(i) {
	$(this).before('<a href="'+$(this).attr('src')+'" class=lightbox><img src="/ajax/thumb?file='+$(this).attr('src')+'" rel="lightboxed"></a>');
	$(this).remove();
	//alert($(this).attr('src'));
    });
    $('.lightbox').lightbox({
	    fitToScreen: true
//	    jsonData: [{url: $(this).attr('src'), title: 'Image 1 loaded using JSON data' }]
    });
    
}
function saveUrl() {
    $.post('/ajax/card/saveurl',{id:cardId, url:$("#cardUrl").val()},function(a){
	if(a.ok) {document.location.href=$("#cardUrl").val();}
	else alert(a.error);
    },"json");
}
function cardDelete() {
    if(confirm('Удалить эту визитку?'))
    $.post('/ajax/card/delete',{id:cardId},function(a){
	if(a.ok) {document.location.href='/admin';}
	else alert(a.error);
    },"json");
}



function adminEditClass(n) {
    vidId = n;
    
    $.post('/ajax/class/view',{vidId:n},function(a){
	classObject = a;
//	$("#adminEditClass").html("");
	if (typeof dialogAC == "undefined") dialogAC = $("<div id=adminEditClass><ul>"+adminEditClassR(0)+"</ul></div>").dialog({
		title:l('классификатор','class'), 
		modal:true,
		width:600,
		buttons:{
		    'Close': function(){dialogAC.dialog( "close" ); }
		}, close : function () {
		    $(this).remove();
		    dialogAC = undefined;
		}
	});
	
	
	$("#adminEditClass ul").sortable({
	    stop: function (event, ui) {
		$.post('/ajax/class/sort',{order: $(this).sortable('toArray').join(";").replace(/li/g,"")}, function (a){},"html");
	    }
	});
    },"json");
}

function adminEditClassR(n){
    var out = "";
    var flag = 0;
    var a = classObject;
    for (var i=0;i<a.length;i++) {
	if (a[i].parent == n) {
	    out += "";
	    out += "<li id='li"+a[i].id+"' style='position:relative;'>"+
	    "<a href='javascript:classModify("+a[i].id+",0)'>"+(a[i].nameru||'<i><small>---пусто---</small></i>')+"</a>";
	    var z = adminEditClassR(a[i].id);
	    if (z) out += "<ul id='ul"+a[i].id+"'>"+z+"</ul>";
	    out += "</li>\n";
	    flag = 1;
	}
    }
    if (flag || n==0) out += "<li'><i><a href=javascript:classModify(0,"+n+")>["+l("Добавить","Add")+"]</a></i></li>";
    else {out += "<li ><a href=javascript:classModify(0,"+n+")><small>[ветвить]</small></a></li>";}
    return out;
}


function adminEditCard(n) {
    $.post('/ajax/card/view',{id:n},function(a){
	var html = "<table border=1>";
	for (var i=1; i<=40; i++) {
	    html += "<tr><td>"+a.labelRu[i]+"</td><td><textarea id=adminEditCardRu"+i+">"+(a.textRu[i]==undefined?'':a.textRu[i])+"</textarea></td><td><textarea  id=adminEditCardEn"+i+">"+(a.textEn[i]==undefined?'':a.textEn[i])+"</textarea></td></tr>";
	}
	html += "</table>";
	dialogEC = $(html).dialog({
	    title:l('Визитка','Card'), 
	    modal:true,
	    width:600,
	    buttons:{
		'Save': function() {
		    var arg = {id:n};
		    for (var i=1; i<=40; i++) {
			arg["valueRu"+i] = $("#adminEditCardRu"+i).val();
			arg["valueEn"+i] = $("#adminEditCardEn"+i).val();
		    }
		    $.post('/ajax/card/saveall',arg,function(a){
			if(a.ok) {
			    dialogEC.dialog( "close" );
			}
			else alert(a.error);
		    },"json");

		},
		'Close': function(){dialogEC.dialog( "close" ); }
	    }, 
	    close : function () {
		$(this).remove();
		dialogEC = undefined;
	    }
	});
	
    },"json");
    
}




function displayClassOnCard(){
    $.post('/ajax/card/classview',{cardId:cardId},function(a){
	classObject = a;
	$("#classCard").html(classOnCard(0));
	$(".datePicker").datepicker({
	    changeMonth: true,
	    changeYear: true,
	    yearRange: '1900:2020',
	    dateFormat: "yy-mm-dd"
	});
    },"json");
    

}


function classOnCard(n){
    var out = "";
    var flag = 0;
    var a = classObject;
    for (var i=0;i<a.length;i++) {
	if (a[i].parent == n) {
	    out += "";
	    out += "<div class='cardClass'>"+
	    "<div class='cardClassName'><a href='javascript:classModify("+a[i].id+",0)'>"+a[i].nameru+"</a></div>";
	    
	    out += "<div class='cardClassValue'>";
	    if (a[i].nicht == 1) out += "<input id=cardItemNicht_"+a[i].id+" "+(a[i].nichtvalue==1?"checked":"")+" type=checkbox  onChange=\"cardItemClassSave("+a[i].id+",0)\">НЕТ ";
	    if (!a[i].type || a[i].type==0) out += "";
	    if (a[i].type == 1) out += 	"<input id=cardItemClass_ru_"+a[i].id+"_"+a[i].type+" value='"+$q(a[i].class1ru)+"' onChange=\"cardItemClassSave("+a[i].id+","+a[i].type+",'ru')\">"+
					"<input id=cardItemClass_en_"+a[i].id+"_"+a[i].type+" value='"+$q(a[i].class1en)+"' onChange=\"cardItemClassSave("+a[i].id+","+a[i].type+",'en')\">";
	    if (a[i].type == 2) out += "<input id=cardItemClass_"+a[i].id+"_"+a[i].type+" value='"+$q(a[i].class2)+"' onChange=\"inputDigit(this); cardItemClassSave("+a[i].id+","+a[i].type+")\" >";
	    if (a[i].type == 3) out += "<input id=cardItemClass_"+a[i].id+"_"+a[i].type+" value='"+$q(a[i].class3)+"' onChange=\"cardItemClassSave("+a[i].id+","+a[i].type+")\" class=datePicker>";
	    if (a[i].type == 4) out += "<input id=cardItemClass_"+a[i].id+"_"+a[i].type+" "+(a[i].class4==1?"checked":"")+" onChange=\"cardItemClassSave("+a[i].id+","+a[i].type+")\" type=checkbox> ДА";
	    out += "</div>";
	    out += classOnCard(a[i].id);
	    out += "</div>\n";
	    flag = 1;
	}
    }
    if (flag || n==0) out += "<div class='cardClass'><a href=javascript:classModify(0,"+n+")>["+l("Добавить","Add")+"]</a></div>";
    else {out += "<div style='position:absolute; left:40px; top:13px;' ><a href=javascript:classModify(0,"+n+")><small>[ветвить]</small></a></div>";}
    return out;
}
function cardItemClassSave(id,type,lang) {
    var val = "";
    if (type==0) {
	val = $("#cardItemNicht_"+id).attr("checked")?1:0;
    } else if(type==4) {
	val = $("#cardItemClass_"+id+"_"+type).attr("checked")?1:0;
    } else {
	val = $("#cardItemClass_"+(lang?lang+"_":"")+id+"_"+type).val();
    }
    $.post('/ajax/card/classmodify',{cardId:cardId, classId:id, type:type, value:val, lang:lang},function(a){
	if(a.ok) {
	    alert(id);
	}
	else alert(a.error);
    },"json");
}

function classDeleteFile(n) {
	    $.post('/ajax/class/deletefile',{classId:n},function(a){
		if(a.ok) {
		    alert(l("Удалено","Deleted"));
		}
		else alert(a.error);
	    },"json");

}

function classModify(n,nn) {
    var k;
    for (k=0;k<classObject.length; k++ ) {
	if (classObject[k].id == n) break;
    }
    var html = "<input id=classItemNameInputRu>Рус<br><input id=classItemNameInputEn>Eng<br>"+
    "<input type=radio name=classItemType id=classItemType0 checked value=0> пусто<br>"+
    "<input type=radio name=classItemType id=classItemType1 value=1> Текст<br>"+
    "<input type=radio name=classItemType id=classItemType2 value=2> Число<br>"+
    "<input type=radio name=classItemType id=classItemType3 value=3> Дата<br>"+
    "<input type=radio name=classItemType id=classItemType4 value=4> Чекбокс<br>"+
    "<input type=checkbox id=classItemNicht> Может иметь \"НЕТ\"<br>"+
    "<input id=classItemCardId value=0 disabled size=5>привязка визитки <button onClick=\"dialogSearch(function(a){$('#classItemCardId').val(a)})\">Поиск</button>"+
    " <button onClick=\"cardCreate(undefined,function(a){$('#classItemCardId').val(a);adminEditCard(a);})\">Создать</button>"+
    " <button onClick=\"adminEditCard($('#classItemCardId').val())\">Редактировать</button>"+
    "</i><br>"+
    
    "<iframe src=/static/blank.html style='display:none' name=uploadFrame id=uploadFrame></iframe>"+
    (classObject[k] && classObject[k].file == 1?"<img src=/img/class/middle_"+n+".jpg> <button onClick=classDeleteFile("+n+")>Удалить ИЗО</button>":"")+
    "<form action=/ajax/class/upload method=POST  enctype=\"multipart/form-data\" target=uploadFrame >Изображение <input type=file name=ff><input type=submit><input type=hidden name=img value=1><input type=hidden name=classId value="+n+"></form>"+
    "Описание<br>"+
    "<textarea id=classItemDescriptionRu></textarea>Рус<br>"+
    "<textarea id=classItemDescriptionEn></textarea>Eng";
    
    
    dialog = $("<div>"+html+"</div>").dialog({
	title:l('Пункт классификатора','class'), 
	modal:true,
	width:500,
	buttons:{
		'Сохранить': function() {
		    $.post('/ajax/class/modify',{id:n, parent:nn, type:$('input[name="classItemType"]:checked').val(), vidId:vidId, nameRu:$("#classItemNameInputRu").val(), nameEn:$("#classItemNameInputEn").val(), cardId:$("#classItemCardId").val(), descriptionRu:$("#classItemDescriptionRu").val(), descriptionEn:$("#classItemDescriptionEn").val(), nicht:($("#classItemNicht").attr("checked")?1:0)},function(a){
			if(a.ok) {
			    if (typeof cardId == 'numeric') displayClassOnCard();
			    else adminEditClass(vidId);
			    dialog.dialog("close");
			}
			else alert(a.error);
		    },"json");
		},
		'Удалить': function() {
		    if (confirm("Удалить?")) {
			$.post('/ajax/class/delete',{id:n},function(a){
			    if(a.ok) {
				if (typeof cardId == 'numeric') displayClassOnCard();
				else adminEditClass(vidId);
				dialog.dialog("close");
			    }
			    else alert(a.error);
			},"json");
		    }
		},
		'Отмена': function(){dialog.dialog( "close" ); }
	}, close : function () {
	    $(this).remove();
	}
    });

    var I = -1;
    if (n > 0) {
	for (var i=0; i<classObject.length; i++) {
	    if (classObject[i].id == n) {I = i;break;}
	}
    }
    if (I >= 0) {
	$("#classItemNameInputRu").val(classObject[I].nameru);
	$("#classItemNameInputEn").val(classObject[I].nameen);
	$("#classItemDescriptionRu").val(classObject[I].descriptionru);
	$("#classItemDescriptionEn").val(classObject[I].descriptionen);
	$("#classItemCardId").val(classObject[I].cardid || 0);
	$("#classItemType"+classObject[I].type).attr("checked",1);
	$("#classItemNicht").attr("checked",classObject[I].nicht=="1");
    }
}
function dialogSearch(callback) {
	dialogSearchCallback = callback;
	dialogS = $("<div><input id=dialogSearchQuery><button onClick='dialogSearchSubmit()'>Искать</button><div id=dialogSearchResults></div></div>").dialog({
	    title:l('Поиск визитки','Searching card'), 
	    modal:true,
	    buttons:{
		'Close': function(){dialogS.dialog( "close" ); }
	    }, close : function () {
		$(this).remove();
	    }
	});
}
function dialogSearchSubmit() {
    $.post('/ajax/search/json',{query:$("#dialogSearchQuery").val()}, function(a) {
	var html = "";
	for(i=0;i<a.length;i++) {
	    html += "<a href='javascript:"+(typeof dialogSearchCallback=='function'?'dialogSearchCallback':dialogSearchCallback)+"("+a[i].id+");dialogS.dialog(\"close\" );'>"+a[i].name+"</a><br>";
	}
	$("#dialogSearchResults").html(html);
    },"json");
}


function modifyVid(id, item) {
	var html = "<input id=cardItemNameInputRu>Рус<br><input id=cardItemNameInputEn>Eng<br><input id=cardItemNameInputLevel>Уровень";
	html += "<input id=vid type=hidden>";
	dialog = $("<div>"+html+"</div>").dialog({title:l('Изменение названия пункта','Changing item name'), modal:true,
	    buttons:{
		'Ok': function() {
		    $.post('/ajax/vid/modify',{id:id, item:item, nameRu:$("#cardItemNameInputRu").val(), nameEn:$("#cardItemNameInputEn").val(), level:$("#cardItemNameInputLevel").val()},function(a){
			if(a.ok) {
			    $("[num="+item+"] .cardItemNameRu").html($("#cardItemNameInputRu").val());
			    $("[num="+item+"] .cardItemNameEn").html($("#cardItemNameInputEn").val());
			    dialog.dialog( "close" );
			}
			else alert(a.error);
		    },"json");
		},
		'Cancel': function(){dialog.dialog( "close" ); }
	    }, close : function () {
		$(this).remove();
	    }
	});
	$("#cardItemNameInputRu").val($("[num="+item+"] .cardItemNameRu").html());
	$("#cardItemNameInputEn").val($("[num="+item+"] .cardItemNameEn").html());
	$("#cardItemNameInputLevel").val($("[num="+item+"]").attr('level'));
	
	

}


function searchForm(){
//    $.post('/ajax/class/view',{vidId:vidId},function(a){
//	classObject = a;

//	$("#searchForm").html("<ul>"+searchFormRecursion(0)+"</ul>");
	$(".datePicker").datepicker({
	    changeMonth: true,
	    changeYear: true,
	    yearRange: '1900:2020',
	    dateFormat: "yy-mm-dd"
	});
//	$("#searchForm").jstree({
//	    "plugins" : ["themes","html_data","ui"],
//	    "ui": {
//		select_limit: 0
//	    }
//	});
	$("#searchForm").treeview({
		collapsed: true,
		animated: "medium",
//		control:"#sidetreecontrol",
		persist: "location"
	});

	$("").tooltip({
	delay:0,
	track: true, 
        delay: 0, 
        showURL: false, 
        opacity: 1, 
	bodyHandler: function() { 
            return $(this).html(); 
        } 
	});

	$(".searchItemClassAutocomplete").focus(function() {
	    window.focusedAutocompleteT = $(this).attr("par_type");
	    window.focusedAutocompleteC = $(this).attr("par_classId");
	});
	$(".searchItemClassAutocomplete").autocomplete({
	    source:function( request, response ) {
		request.type=window.focusedAutocompleteT;
		request.classId=window.focusedAutocompleteC;
		$.getJSON( "/ajax/search/autocomplete", request, function( data, status, xhr ) {
		    response( data );
		});
	    }
	});
//    },"json");
    search();

}

/*
function searchFormRecursion(n){
    var out = "";
    var flag = 0;
    var a = classObject;
    for (var i=0;i<a.length;i++) {
	if (a[i].parent == n) {
	    out += "";
	    out += "<li>"+
//	     "<input type=radio name=searchClassPunkt style='position:absolute; left:7px' value='"+a[i].id+"' onClick='search()'>"+
	    "<table border=0 cellpadding=0 cellspacing=0><tr><td width=300>"+
	    (a[i].url? "<a href='/card/"+a[i].vidurl+'/'+a[i].url+"'>"+a[i].nameru+"</a>":a[i].nameru)+
	    "<br><i>"+a[i].descriptionru+"</i>"+

	    "</td><td width=50>"+
	    (a[i].file?"<img src=/img/class/small_"+a[i].id+".jpg>":"")+
	    "</td><td width=50>";
	    
	    
//	    out += "<div>";
	    
	    if (a[i].nicht=='1') out += "<input class=searchItemClass id='search_"+a[i].id+"_nicht' onChange=\"search();$('#classSearchTd_"+a[i].id+"').css({'visibility':this.checked?'hidden':''})\" type=checkbox>НЕТ ";

	    out += "</td><td id=classSearchTd_"+a[i].id+">";

	    if (!a[i].type || a[i].type==0) out += "";
	    if (a[i].type == 1) out += "<input class='searchItemClass searchItemClassAutocomplete' id='search_"+a[i].id+"_"+a[i].type+"ru' par_classId="+a[i].id+" par_type="+a[i].type+"  onChange=\"search()\">";
	    if (a[i].type == 2) out += "<input class=searchItemClass id='search_"+a[i].id+"_"+a[i].type+"' onChange=\"inputDigit(this); search()\" >";
	    if (a[i].type == 3) out += "<input class=searchItemClass id='search_"+a[i].id+"_"+a[i].type+"' onChange=\"search()\" class=datePicker>";
	    if (a[i].type == 4) out += "<input class=searchItemClass id='search_"+a[i].id+"_"+a[i].type+"' onChange=\"search()\" type=checkbox>ДА";
	    
//	    out += "</div>";
	    out += "</td></tr></table>";
	    var z = searchFormRecursion(a[i].id);
	    if (z) out += "<ul>"+z+"</ul>";
	    out += "</li>\n";
	    flag = 1;
	}
    }
    return out;
}
*/
function search() {
    var s = {};
    s.vidId=vidId;
    $(".searchItemClass").each( function () {
	if ($(this).val() != "") s[$(this).attr('id')] = $(this).attr("type")=="checkbox"?$(this).attr('checked'):$(this).val();
    });
    
    $.post("/ajax/search",s,function (a) {
	$('#searchResult').html(a);
    },"html");
}




function addVid(rootId) {
	var html = "<input id=vidNameRu>Рус<br><input id=vidNameEn>Eng<br><input id=vidUrl>Url";
	dialog = $("<div>"+html+"</div>").dialog({title:l('Добавление нового вида','Adding new вид'), modal:true,
	    buttons:{
		'Ok': function() {
		    $.post('/ajax/root/addvid',{rootId:rootId, nameRu:$("#vidNameRu").val(), nameEn:$("#vidNameEn").val(), url:$("#vidUrl").val()},function(a){
			if(a.ok) {
			    location.reload();
			}
			else alert(a.error);
		    },"json");
		},
		'Cancel': function(){dialog.dialog( "close" ); }
	    }, close : function () {
		$(this).remove();
	    }
	});
    
}



function editVid(id) {
    $.post('/ajax/vid/load',{id:id},function(a){
//    alert(a);
	var html = "<input id=vidNameRu>Рус<br><input id=vidNameEn>Eng<br><input id=vidUrl>Url<br><br>";
	html += "Описание<br>"+
	"<textarea id=vidDescriptionRu></textarea>Рус<br>"+
	"<textarea id=vidDescriptionEn></textarea>Eng<br>";

	dialog = $("<div>"+html+"</div>").dialog({title:l('Изменение вида','Edit вид'), modal:true,
	    buttons:{
		'Ok': function() {
		    $.post('/ajax/root/editvid',{id:id, nameRu:$("#vidNameRu").val(), nameEn:$("#vidNameEn").val(), descriptionRu:$("#vidDescriptionRu").val(), descriptionEn:$("#vidDescriptionEn").val(), url:$("#vidUrl").val()},function(a){
			if(a.ok) {
			    location.reload();
			}
			else alert(a.error);
		    },"json");
		},
		'Cancel': function(){dialog.dialog( "close" ); }
	    }, close : function () {
		$(this).remove();
	    }
	});
	
	$('#vidNameRu').val(a.nameru);
	$('#vidNameEn').val(a.nameen);
	$('#vidDescriptionRu').val(a.descriptionru);
	$('#vidDescriptionEn').val(a.descriptionen);
	$('#vidUrl').val(a.url);
	
    },"json");
    

}

function addRoot() {
	var html = "<input id=rootNameRu>Рус<br><input id=rootNameEn>Eng<br>";
	dialog = $("<div>"+html+"</div>").dialog({title:l('Добавление нового корня','Adding new root'), modal:true,
	    buttons:{
		'Ok': function() {
		    $.post('/ajax/root/addroot',{ nameRu:$("#rootNameRu").val(), nameEn:$("#rootNameEn").val()},function(a){
			if(a.ok) {
			    location.reload();
			}
			else alert(a.error);
		    },"json");
		},
		'Cancel': function(){dialog.dialog( "close" ); }
	    }, close : function () {
		$(this).remove();
	    }
	});

}

function editRoot(id,nameRu, nameEn) {
	var html = "<input id=rootNameRu>Рус<br><input id=rootNameEn>Eng<br>";
	dialog = $("<div>"+html+"</div>").dialog({title:l('Изменение корня','Edit root'), modal:true,
	    buttons:{
		'Ok': function() {
		    $.post('/ajax/root/editroot',{id:id, nameRu:$("#rootNameRu").val(), nameEn:$("#rootNameEn").val()},function(a){
			if(a.ok) {
			    location.reload();
			}
			else alert(a.error);
		    },"json");
		},
		'Cancel': function(){dialog.dialog( "close" ); }
	    }, close : function () {
		$(this).remove();
	    }
	});
	
	$('#rootNameRu').val(nameRu);
	$('#rootNameEn').val(nameEn);


}


