
function SAdmin()
{
	var __json_gallery;
	
	this.build = function()
	{
		var dom = new Dom(document.getElementById('admin'));
		dom.delete_all_childs();
		
		dom.appendText(0, "\u00A0[");
		dom.appendA(0, "javascript:__sadmin.change(0)", '', '', '', '');
		dom.appendText(1, 'change');
		dom.appendText(0, ']');
			
		dom.appendText(0, "\u00A0[");
		dom.appendA(0, "javascript:__sadmin.change(1)", '', '', '', '');
		dom.appendText(1, 'change parent');
		dom.appendText(0, ']');
		
		if(document.getElementById('navi_id').value != 4)
		{
			dom.appendText(0, "\u00A0[");
			dom.appendA(0, 'javascript:__sadmin.add_child()', '', '', '', '');
			dom.appendText(1, 'add child');
			dom.appendText(0, ']');
				
			dom.appendText(0, "\u00A0[");
			dom.appendA(0, "javascript:if(confirm('Are you sure to delete this navi_id?')) __sadmin.del()", '', '', '', '');
			dom.appendText(1, 'delete');
			dom.appendText(0, ']');
		}
		else
		{
			if(document.getElementById('gallery_id'))
			{
				dom.appendText(0, "\u00A0[");
				dom.appendA(0, 'javascript:__sadmin.read_gallery()', '', '', '', '');
				dom.appendText(1, 'change gallery');
				dom.appendText(0, ']');
			}
			else
			{
				dom.appendText(0, "\u00A0[");
				dom.appendA(0, 'javascript:__sadmin.add_gallery()', '', '', '', '');
				dom.appendText(1, 'add gallery');
				dom.appendText(0, ']');
			}
		}
	}
	
	this.change = function(parent)
	{
		var navi_id = document.getElementById('navi_id').value;
		//console.log("change " + navi_id);
		
		var ajax       = new AJAX(); 
		ajax.url       = "template/php_requests/sadmin.php?task=change&navi_id="+navi_id+"&parent="+parent;
		ajax.response  = "json";
		ajax.onSuccess = _change_request;
		ajax.doRequest();
	}
	this.read_gallery = function()
	{
		var gallery_id = document.getElementById('gallery_id').value;
		
		var ajax       = new AJAX(); 
		ajax.url       = "template/php_requests/sadmin.php?task=read_gallery&gallery_id="+gallery_id;
		ajax.response  = "json";
		ajax.onSuccess = _gallery_request;
		ajax.doRequest();
	}
	/*
	this.sfi = function()
	{
		var gallery_id = __gallery.gallery_id;
		
		var ajax       = new AJAX(); 
		ajax.url       = "template/php_requests/sadmin.php?task=sfi&gallery_id="+gallery_id;
		ajax.response  = "json";
		ajax.onSuccess = _change_request;
		ajax.doRequest();
	}
	*/
	this.add_child = function()
	{
		//console.log("add_child()");
		
		var i = new Object();
		i['type']       = 'add';
		i['sort']       = 'abc';
		i['sort_place'] = '';
		i['linkname']   = '';
		i['infotext']   = '';
		i['headline']   = '';
		i['activ']      = 'yes';
		i['date']       = '';
		i['content']    = '';
		i['url']        = '';
		i['onclick']    = '';
		
		_change_request(i);
	}
	this.add_gallery = function()
	{
		var i = new Object();
		i['type']     = 'add';
		i['folder']   = '';
		i['date1']    = '';
		i['date2']    = '';
		i['headline'] = '';
		i['url']      = '';
		i['text']     = '';
		
		_gallery_request(i);
	}
	
	
	this.del = function()
	{
		var navi_id = document.getElementById('navi_id').value;
		
		var ajax       = new AJAX(); 
		ajax.url       = "template/php_requests/sadmin.php?task=del&navi_id="+navi_id;
		ajax.response  = "json";
		ajax.onSuccess = _del_return;
		ajax.doRequest();
	}
	
	
	function _del_return(json)
	{
		document.getElementById('sadmin').className = 'show_it';
		var dom = new Dom(document.getElementById('sadmin'));
		dom.delete_all_childs();
		
		__index        = undefined;
		__show_navi_id = undefined;
		
		if(json.out == 1)
			dom.appendText(0, 'Löschen war erfolgreich!');
		else
			dom.appendText(0, 'Es trat ein Fehler auf!');
		
		dom.appendBr(0);
		dom.appendBr(0);
			
		//schliessen
		dom.appendText(0, '\u00A0');
		dom.appendA(0, "javascript:__close('sadmin')", '', '', '', '');
		dom.appendText(1, 'schliessen');
	}
	
	
	function _gallery_request(json)
	{
		//console.log(json);
		__json_gallery = json;
		
		document.getElementById('overlay').className = 'show_it';
		document.getElementById('sadmin').className = 'show_it';
		var dom = new Dom(document.getElementById('sadmin'));
		dom.delete_all_childs();
		
		if(json.success == 'yes')
		{
			dom.appendH2(0);
			dom.appendText(1, 'gallery successfully saved');
			dom.appendBr(0);
		}		
		if(json.info != null)
		{
			if(json.info.text != undefined)
			{
				dom.appendText(0, json.info.text);
				dom.appendBr(0);
			}
			if(json.info.sfi != undefined)
			{
				dom.appendText(0, 'added picture to db:');
				dom.appendBr(0);
				for(var t in json.info.sfi)
				{
					dom.appendText(0, "-"+json.info.sfi[t].name);
					dom.appendBr(0);
				}
			}
			dom.appendBr(0);
		}
		
		
		
		dom.appendH1(0);
		dom.appendText(1, 'Gallery');
		dom.appendTable(0, 't1');
		var cells = new Array();
		
		//sfi
		cells = check_box('search images', 'sfi', false, '');
		dom.insertRow('t1', -1, cells);
		
		//date1
		cells = date_box('date', 'date1', json.date1, '');
		dom.insertRow('t1', -1, cells);
		
		//date2
		cells = date_box('date end', 'date2', json.date2, '');
		dom.insertRow('t1', -1, cells);
		
		//folder
		cells = text_box('folder', 'folder', json.folder, 70, '');
		dom.insertRow('t1', -1, cells);
		
		//headline
		cells = text_box('headline', 'headline', json.headline, 70, '');
		dom.insertRow('t1', -1, cells);
		
		//url
		cells = text_box('url', 'url', json.url, 70, '');
		dom.insertRow('t1', -1, cells);
		
		//text
		cells = textarea_box('text', 'text', json.text, new Array(60, 16), '');
		dom.insertRow('t1', -1, cells);
		
		if(json.type == 'change')
		{
			//delete pictures in gallery
			cells = check_box('delete all images in this gallery from db', 'delete_pics', false, '');
			dom.insertRow('t1', -1, cells);
			
			//delete gallery
			cells = check_box('delete this gallery', 'delete_gallery', false, '');
			dom.insertRow('t1', -1, cells);
			
			//picture tags
			dom.appendText(0, "tags for all pictures in this gallery");
			dom.appendBr(0);
			for(var key in json.tags)
  			{
  				dom.appendCheckbox(0, "tag_" + key, '', json.tags[key].checked);
  				dom.appendText(0, json.tags[key].name + " ");
  			}
		}
		
		//button
		dom.appendBr(0);
		dom.appendBr(0);
		dom.appendButton(0, "__sadmin.save_gallery("+json.gallery_id+",'"+json.type+"')");
		if(json.type == 'change')
			dom.appendText(1, 'save');
		else if(json.type == 'add')
			dom.appendText(1, 'add');	
		
		//schliessen
		dom.appendText(0, '\u00A0');
		dom.appendA(0, "javascript:__close('sadmin')", '', '', '', '');
		dom.appendText(1, 'close');
	}
	
	
	function _change_request(json)
	{
		//console.log('_change_request()');
		//console.log(json);
		
		document.getElementById('overlay').className = 'show_it';
		document.getElementById('sadmin').className = 'show_it';
		var dom = new Dom(document.getElementById('sadmin'));
		dom.delete_all_childs();
		
		if(json.type == 'save_add' || json.type == 'save_change')
		{
			dom.appendText(0, 'Aenderungen waren erfolgreich ');
			dom.appendBr(0);
			for(var t in json.sfi)
			{
				dom.appendText(0, json.sfi[t].name + " -> hinzugefügt");
				dom.appendBr(0);
			}
			dom.appendBr(0);
		}
		else if(json.type == 'change' || json.type == 'add')
		{
			dom.appendTable(0, 't1');
			var cells = new Array();
			
			//sort
			var d1 = new Dom();
			d1.appendText(-1, "sort");
			cells[0] = d1.get_dom();
			var d2 = new Dom(document.createElement('b') );
			d2.appendSelect(0, 'sort', 1);
			if(json.sort == 'abc')
				d2.appendOption(1, 'abc', '', true);
			else
				d2.appendOption(1, 'abc', '', false);
			d2.appendText(2, 'abc');
			if(json.sort == 'date')
				d2.appendOption(1, 'date', '', true);
			else
				d2.appendOption(1, 'date', '', false);
			d2.appendText(2, 'date');
			if(json.sort == 'any')
				d2.appendOption(1, 'any', '', true);
			else
				d2.appendOption(1, 'any', '', false)
			d2.appendText(2, 'any');
			d2.appendSpan(0, '', 'admin_comment');
			if(json.meta)
				d2.appendText(1, " " + json.meta.navi.sort.Comment);
			cells[1] = d2.get_dom();
			dom.insertRow('t1', -1, cells);
			
			//sort_place
			if(json.sort != -1)
			{
				d1 = new Dom();
				d1.appendText(-1, 'sort place');
				d2 = new Dom(document.createElement('b') );
				d2.appendInput(0, 'sort_place', json.sort_place, 5, false);
				d2.appendSpan(0, '', 'admin_comment');
				d2.appendText(1, " " + "");
				if(json.meta)
					d2.appendText(1, " " + json.meta.navi_sort.place.Comment);
				cells[0] = d1.get_dom();
				cells[1] = d2.get_dom();
				dom.insertRow('t1', -1, cells);
			}
			
			//date
			cells = date_box('date', '', json.date, json.meta.navi.date.Comment);
			dom.insertRow('t1', -1, cells);
			
			//activ
			d1 = new Dom();
			d1.appendText(-1, 'activ');
			d2 = new Dom(document.createElement('span') );
			if(json.activ == 'yes')
			{
				d2.appendRadio(0, 'yes', 'activ', '', true);
				d2.appendText(0, 'yes');
				d2.appendRadio(0, 'no', 'activ', '', false);
				d2.appendText(0, 'no');
			}
			else
			{
				d2.appendRadio(0, 'yes', 'activ', '', false);
				d2.appendText(0, 'yes');
				d2.appendRadio(0, 'no', 'activ', '', true);
				d2.appendText(0, 'no');
			}
			d2.appendSpan(0, '', 'admin_comment');
			if(json.meta)
				d2.appendText(1, " " + json.meta.navi.activ.Comment);
			cells[0] = d1.get_dom();
			cells[1] = d2.get_dom();
			dom.insertRow('t1', -1, cells);
						
			//linkname
			cells = text_box('linkname', 'linkname', json.linkname, 20, json.meta.navi_contents.linkname.Comment);
			dom.insertRow('t1', -1, cells);
			
			//infotext
			cells = text_box('info text', 'infotext', json.infotext, 60, json.meta.navi_contents.infotext.Comment);
			dom.insertRow('t1', -1, cells);
			
			//index
			if(json.index_names > 0)
			{
				d1 = new Dom();
				d1.appendText(-1, 'index');
				d2 = new Dom(document.createElement('span') );
				d2.appendSelect(0, 'index', 1);
				d2.appendOption(1, '', '', true);
				d2.appendText(2, '');
				for(var n in json.index_names)
				{
					if(n == json.index)
						d2.appendOption(1, n, '', true);
					else
						d2.appendOption(1, n, '', false);
					d2.appendText(2, json.index_names[n]);
				}
				d2.appendSpan(0, '', 'admin_comment');
				if(json.meta)
					d2.appendText(1, " " + json.meta.navi.index.Comment);
				cells[0] = d1.get_dom();
				cells[1] = d2.get_dom();
				dom.insertRow('t1', -1, cells);
			}
			
			//headline
			cells = text_box('headline', 'headline', json.headline, 60, json.meta.navi_contents.headline.Comment);
			dom.insertRow('t1', -1, cells);
			
			//content
			cells = textarea_box('content', 'content', json.content, new Array(60, 16), json.meta.navi_contents.content.Comment);
			dom.insertRow('t1', -1, cells);
			
			//url
			cells = text_box('url', 'url', json.url, 60, json.meta.navi.url.Comment);
			dom.insertRow('t1', -1, cells);
			
			//onclick
			cells = text_box('onclick', 'onclick', json.onclick, 60, json.meta.navi.onclick.Comment);
			dom.insertRow('t1', -1, cells);
						
			//button
			var navi_id = json.navi_id;
			dom.appendBr(0);
			dom.appendButton(0, "__sadmin.save_change(" + navi_id + ",'" + json.type + "')");
			if(json.type == 'change')
				dom.appendText(1, 'save');
			else if(json.type == 'add')
				dom.appendText(1, 'add');
		}
		
		//schliessen
		dom.appendText(0, '\u00A0');
		dom.appendA(0, "javascript:__close('sadmin')", '', '', '', '');
		dom.appendText(1, 'close');
	}
	
	this.save_gallery = function(gallery_id, type)
	{
		var headline       = document.getElementById('headline').value;
		var folder         = document.getElementById('folder').value;
		var url            = document.getElementById('url').value;
		var text           = document.getElementById('text').value;
		var date1          = document.getElementById('date1Y').value + "-" + document.getElementById('date1m').value + "-" + document.getElementById('date1d').value;
		var date2          = document.getElementById('date2Y').value + "-" + document.getElementById('date2m').value + "-" + document.getElementById('date2d').value;
		var sfi            = document.getElementById('sfi').checked;
		
		if(type == 'change')
		{
			var delete_pics    = document.getElementById('delete_pics').checked;
			var delete_gallery = document.getElementById('delete_gallery').checked;
			var tags_add = '';
			var tags_remove = '';
		
			for(var key in __json_gallery.tags)
			{
				if(__json_gallery.tags[key].checked == false && document.getElementById("tag_"+key).checked == true)
					tags_add += key + ",";
				else if(__json_gallery.tags[key].checked == true && document.getElementById("tag_"+key).checked == false)
					tags_remove += key + ",";
			}
			
			//console.log("tags_add: " + tags_add);
			//console.log("tags_remove: " + tags_remove);
		}
		var dom = new Dom(document.getElementById('sadmin'));
		dom.delete_all_childs();
		dom.appendText(0, 'loading ...');
		
		var ajax = new AJAX();
		if(type == 'change')
			ajax.url = "template/php_requests/sadmin.php?task=change_gallery";
		else if(type == 'add')
			ajax.url = "template/php_requests/sadmin.php?task=add_gallery";
		ajax.response  = "json";
		ajax.method    = "POST";
		ajax.params    = "gallery_id="+gallery_id+"&headline="+headline+"&folder="+folder+"&url="+url+"&text="+text+"&date1="+date1+"&date2="+date2+"&sfi="+sfi+"&delete_pics="+delete_pics+"&delete_gallery="+delete_gallery+"&tags_add="+tags_add+"&tags_remove="+tags_remove;
		ajax.onSuccess = _gallery_request;
		ajax.doRequest();
	}
	
	this.save_change = function(navi_id, type)
	{	
		//console.log("save_changes() " + navi_id);
		
		var sort_place = document.getElementById('sort_place').value;
		var linkname = document.getElementById('linkname').value;
		var headline = document.getElementById('headline').value;
		var date = document.getElementById('Y').value + "-" + document.getElementById('m').value + "-" + document.getElementById('d').value;
		if(document.getElementById('Y').value == '' || 
		   document.getElementById('m').value == '' || 
		   document.getElementById('d').value == '')
		{
			date = '0000-00-00';
		}
		
		var content = document.getElementById('content').value.replace(/\&/g,'%26');
		var url = document.getElementById('url').value;
		var onclick = document.getElementById('onclick').value;
		var infotext = document.getElementById('infotext').value;
		
		//var search_for_images = document.getElementById('search_for_images').checked;
		//console.log("sfi: " + search_for_images);
		var search_for_images = '';
		
		var activ = document.getElementsByName('activ');
		if(activ[0].checked)
			activ = 'yes';
		else
			activ = 'no';
		
		var index = '';
		if(document.getElementById('index'))
			index = document.getElementById('index').value;
				
		var sort;
    	for(var i = 0; i < document.getElementById('sort').length; i++)
    		if(i == document.getElementById('sort').selectedIndex)
    			sort = document.getElementById('sort')[i].value;
		
		var dom = new Dom(document.getElementById('sadmin'));
		dom.delete_all_childs();
		dom.appendText(0, 'loading ...');
		
		var ajax = new AJAX();
		if(type == 'change')
			ajax.url = "template/php_requests/sadmin.php?task=save_change";
		else if(type == 'add')
			ajax.url = "template/php_requests/sadmin.php?task=save_add";
		
		ajax.response  = "json";
		ajax.method    = "POST";
		ajax.params    = "navi_id="+navi_id+"&linkname="+linkname+"&sort_place="+sort_place+"&headline="+headline+"&date="+date+"&content="+content+"&activ="+activ+"&sort="+sort+"&infotext="+infotext+"&url="+url+"&onclick="+onclick+"&index="+index;
		ajax.onSuccess = _change_request;
		ajax.doRequest();
	}
	
	
	function text_box(name_long, name, value, length, comment)
	{
		var cells = new Array();
		var d1 = new Dom();
		d1.appendText(-1, name_long);
		var d2 = new Dom(document.createElement('b') );
		d2.appendInput(0, name, value, length, false);
		d2.appendSpan(0, '', 'admin_comment');
		if(comment)
			d2.appendText(1, " " + comment);
		cells[0] = d1.get_dom();
		cells[1] = d2.get_dom();
		return cells;
	}
	
	function textarea_box(name_long, name, value, size, comment)
	{
		var cells = new Array();
		var d1 = new Dom();
		d1.appendText(-1, name_long);
		var d2 = new Dom(document.createElement('b') );
		d2.appendTextArea(0, name, value, size[0], size[1]);
		d2.appendSpan(0, '', 'admin_comment');
		if(comment)
			d2.appendText(1, " " + comment);
		cells[0] = d1.get_dom();
		cells[1] = d2.get_dom();
		return cells;
	}
	
	function check_box(name_long, name, value, comment)
	{
		var cells = new Array();
		var d1 = new Dom()
		d1.appendText(-1, name_long);
		var d2 = new Dom(document.createElement('b') );
		d2.appendCheckbox(0, name);
		if(comment)
			d2.appendText(1, " " + comment);
		cells[0] = d1.get_dom();
		cells[1] = d2.get_dom();
		return cells;
	}
	
	function date_box(name_long, name, value, comment)
	{
		var cells = new Array();
		var d1 = new Dom();
		d1.appendText(-1, name_long);
		var d2 = new Dom(document.createElement('b') );
		
		if(value == null)
			value = '0000-00-00';
		
		d2.appendSelect(0, name+"d", 1);
		d2.appendOption(1, '', '', true);
		d2.appendText(2, '');
		for(var i = 1; i <= 31; i++)
		{
			if(value.slice(8, 11) == i)
				d2.appendOption(1, i, '', true);
			else
				d2.appendOption(1, i, '', false);
			d2.appendText(2, i);
		}
		d2.appendText(0, '.');
		
		d2.appendSelect(0, name+"m", 1);
		d2.appendOption(1, '', '', true);
		d2.appendText(2, '');
		for(var i = 1; i <= 12; i++)
		{
			if(value.slice(5, 7) == i)
				d2.appendOption(1, i, '', true);
			else
				d2.appendOption(1, i, '', false);
			d2.appendText(2, i);
		}
		d2.appendText(0, '.');
			
		var jetzt = new Date();
		var Y = jetzt.getFullYear();
		d2.appendSelect(0, name+"Y", 1);
		d2.appendOption(1, '', '', true);
		d2.appendText(2, '');
		for(var i = (Y - 20); i <= (Y + 10); i++)
		{
			if(value.slice(0, 4) == i)
				d2.appendOption(1, i, '', true);
			else
				d2.appendOption(1, i, '', false);
			d2.appendText(2, i);
		}
		d2.appendSpan(0, '', 'admin_comment');
		if(comment)
			d2.appendText(1, " " + comment);
		
		cells[0] = d1.get_dom();
		cells[1] = d2.get_dom();
		return cells;
	}
	
	
}