//umoznuje presouvani polozek a pak potvrzeni presunuti

/** HLAVNI OBEKT
	*	Priklad pouziti:
	*	  var	mm=new MoovMan('mc','/','onums');
	*	  mm.AddItem('a','1','item1');
	*	  mm.AddItem('b','2','item2');
	*	  mm.AddItem('c','3','item3');
	*	  mm.AddItem('d','4','item4');
	*	  mm.UpdateView();
	*/
function MovMan(	id,						// id elementu do ktereho se vlozi seznam (obsah bude prepsan)
									url,					// url na ktere se postem odesle formular snastavenyma poradima
									postname	// nazev pro asociativni pole ve kterem bude seznam onum
								)
{
	this.url=decodeURL(url);
	this.id=id;
	this.mytag=document.getElementById(id);	
	this.items=new Array();
	this.postname=postname;
	this.UpdateView=UpdateView;
	this.AddItem=AddItem;								///< metoda pomoci niz se pridavaji do seznamu polozky
	this.actionMovUp=actionMovUp;
	this.actionMovDowm=actionMovDown;
	
	//button up a down
	this.bup=document.createElement('a');
	this.bup.innerHTML='up '
	this.bup.style.cursor="pointer";
	
	this.bdown=document.createElement('a');
	this.bdown.innerHTML='down '
	this.bdown.style.cursor="pointer";
	
	//hlavni tag seznamu
	this.list=document.createElement('ul');
	
	//jestli uzavritdo formulare
	this.useform=true;
}

function AddItem(postid,postonum,content)
{
	this.items[this.items.length]=new Item(postid,postonum,content);
}

function UpdateView()
{
	if (!this.mytag) return false;
	//document.clear();
	this.mytag.innerHTML='';
	var parent=this.list.cloneNode(true);
	this.mytag.appendChild(parent);
	for(var i=0;i<this.items.length;i++)
	{
		var item=this.items[i];
		var elem=document.createElement('li');
		if (!item || !elem) continue;
		
		//vytvorime tlacitko up
		var bup=this.bup.cloneNode(true);
		bup.setAttribute("onclick","actionMovUp(this)");		
		elem.appendChild(bup);
		
		//vytvorime tlacitko down
		var bdown=this.bdown.cloneNode(true);
		bdown.setAttribute("onclick","actionMovDown(this)");
		elem.appendChild(bdown);
		
		//vytvorime checkbox pro onum
		var onum='<input name="'+this.postname+'['+item.postid+']" type="checkbox" style="visibility: hidden;" value="'+item.postonum+'" checked />';
		elem.innerHTML+=onum;
						
		elem.innerHTML+='<span class="content">'+item.content+'</span>';		
		parent.appendChild(elem);
		//this.mytag.innerHTML+='<li id="'+this.id+'_item_'+i+'">'+this.items[i].content;
		//document.getElementById(this.id+'_item_'+i).onclick="alert('"+this.items[i].content+"')";		
		//alert(this.mytag.innerHTML);		
	}
	
	if (this.useform)
	{
		//ted pridame formular s tlacitkem pro odeslani
		var submit=document.createElement('input');
		submit.setAttribute('type','submit');
		submit.setAttribute('value','Ulozit zmeny');
		var elem=document.createElement('li');
		elem.appendChild(submit);

		this.mytag.appendChild(elem);
		var tf=document.createElement('form');
		tf.setAttribute('method','post');
		//tf.setAttribute('action',this.url);
		tf.action=this.url;
		tf.innerHTML=this.mytag.innerHTML;
		this.mytag.innerHTML='';
		this.mytag.appendChild(tf);
		//this.mytag.innerHTML=
		//	+'<form method="post" action="'+this.url+'" >'
		//	+ this.mytag.innerHTML
		//	+ '</form>';
	}
	
	this.mytag.innerHTML=
			'<div class="bold">TIP: usporadejte hodnoty a pak naraz ulozte :)</div><br/>'
			+ this.mytag.innerHTML;
			
	//alert(this.mytag.innerHTML);
}

function actionMovDown(button)
{
	var elem=button.parentNode;
	var next=elem.nextSibling;
	if (next)
	{
		var el1=elem.cloneNode(true);		
		var el2=next.cloneNode(true);
		
		//zmenime u nich onum
		var onum1=el1.getElementsByTagName('input')[0];
		var onum2=el2.getElementsByTagName('input')[0];
		var pom=onum1.value;
		onum1.value=onum2.value;
		onum2.value=pom;
		
		//nefunguje ve FF
		//next.replaceNode(el1);
		//elem.replaceNode(el2);
		
		next.innerHTML=el1.innerHTML;
		elem.innerHTML=el2.innerHTML;
	}
	//alert(document.getElementsByTagName('ul')[0].innerHTML);
}

function actionMovUp(button)
{
	var elem=button.parentNode;
	var prev=elem.previousSibling;
	if (prev)
	{
		var el1=elem.cloneNode(true);		
		var el2=prev.cloneNode(true);
		
		//zmenime u nich onum
		var onum1=el1.getElementsByTagName('input')[0];
		var onum2=el2.getElementsByTagName('input')[0];
		var pom=onum1.value;
		onum1.value=onum2.value;
		onum2.value=pom;
		
		//nefunguje ve FF
		//prev.replaceNode(el1);
		//elem.replaceNode(el2);
		
		prev.innerHTML=el1.innerHTML;
		elem.innerHTML=el2.innerHTML;
	}	
	//alert(document.getElementsByTagName('ul')[0].innerHTML);
}

function Item(postid,postonum,content)
{
	this.postid=postid;
	this.postonum=postonum;
	this.content=content;
	this.bup='up';
	this.bdown='down';
}