
function getel(a){
	return document.getElementById?document.getElementById(a):null
}

var objekt={}; //objekt
var stickies=new Array();
objekt.browser=navigator.userAgent;
objekt.gecko=objekt.browser.indexOf("Gecko")!=-1;
objekt.opera=objekt.browser.indexOf("Opera")!=-1;
objekt.safari=objekt.browser.indexOf("Safari")!=-1;

objekt.urob=function(a,b){
	return function(){
		return a[b].apply(a,arguments)
	}
};

objekt.ofset=function(a,b){
	// zistime ofset divu (bud left alebo top podla b)
	var c=0;
	var sirka=0;
	var sirkastlpca=0;
	while(a!=null){
			sirkastlpca=objekt.tabulka.offsetWidth/objekt.pocetstlpcov;
		if(b==true) { 
			if(a.align=="center") {
				// k ccku treba pripocitat polku sirky divu
						c = a.offsetWidth/2;
						c=c+a.offsetLeft;	}
				else {
					if(a.align=="right"){
						c = a.offsetWidth+a.offsetLeft;
					}
					else {
						c=c+a.offsetLeft;	
					}
				}				
			 }else
			c+=a["offsetTop"];
		a=a.offsetParent
	}
	return c
};

objekt.rozhoddivy=function(a){
	// funkcia popremiestnuje divy aby zodpovedali novemu obsahu (napr. vytvori miesto pre presuvany div)
	for(var b=0;b<objekt.nalepky.length;b++){
		var c=objekt.nalepky[b];
		c.tag.pagePosLeft=objekt.ofset(c.tag,true);
		c.tag.pagePosTop=objekt.ofset(c.tag,false)
	}
};

objekt.ramcek=function(){
	if(!objekt.ram){
		objekt.ram=document.createElement("DIV");
		objekt.ram.className="modbox";
		objekt.ram.backgroundColor="";
		objekt.ram.style.border="2px dashed #aaa";
		objekt.ram.innerHTML="&nbsp;"
	}
	return objekt.ram
};


var objekt_def={
	obj:null,init:function(a,b){
		a.onmousedown=objekt_def.start;
		a.obj=b;
		if(isNaN(parseInt(b.style.left)))b.style.left="0px";
		if(isNaN(parseInt(b.style.top)))b.style.top="0px";
		b.onDragStart=new Function;
		b.onDragEnd=new Function;
		b.onDrag=new Function
	},uninit:function(a,b){
		window.clearInterval(b.ga);
		a.onmousedown=null;
		a.obj=null;
		b.onDragStart=null;
		b.onDragEnd=null;
		b.onDrag=null
	},start:function(a){
		var b=objekt_def.obj=this.obj;
		a=objekt_def.evtfix(a);
		if(a.which!=1)return true;
		b.onDragStart();
		b.lastMouseX=a.clientX;
		b.lastMouseY=a.clientY;
		g=a.clientX;
		h=a.scrollHeight+a.clientY;
		b.style.left=g+"px";
		b.style.top=h+"px";
		if(objekt.safari)b.lastMouseY-=document.body.scrollTop;
		document.onmouseup=objekt_def.end;
		document.onmousemove=objekt_def.drag;
		return false
	},drag:function(a){
		a=objekt_def.evtfix(a);
		if(a.which==0)return objekt_def.end();
		var b=objekt_def.obj,c=a.clientY;
		if(objekt.safari)c-=document.body.scrollTop;
		var d=a.clientX;
		if(b.lastMouseX==d&&b.lastMouseY==c)return false;
		var g,h;
		g=document.body.scrollLeft+a.clientX;
		h=document.body.scrollTop+a.clientY;
		b.style.left=g+"px";
		b.style.top=h+"px";
		b.lastMouseX=d;
		b.lastMouseY=c;
		b.onDrag(g,h);
		return false
	},end:function(a){
		a=objekt_def.evtfix(a);
		document.onmousemove=null;
		document.onmouseup=null;
		var b=objekt_def.obj.onDragEnd();
		objekt_def.obj=null;
		return b
	},evtfix:function(a){
		if(typeof a=="undefined")a=window.event;
		if(typeof a.layerX=="undefined")a.layerX=a.offsetX;
		if(typeof a.layerY=="undefined")a.layerY=a.offsetY;
		if(typeof a.which=="undefined")a.which=a.button;
		return a
	}
}

function vyskavnut(){
	if(window.innerHeight<document.body.clientHeight)return window.innerHeight;
	return document.body.clientHeight
}

function vyska(){
	if(document.body.scrollHeight>document.documentElement.clientHeight)return document.body.scrollHeight;
		else return document.documentElement.clientHeight
};

function tahanie_start(){
	if(!this.priehladnost){
		this.tag.style.filter="alpha(opacity=50)";
		this.tag.style.opacity=0.5;
		this.priehladnost=true;
	}
	//vypocitame nove rozmiestnenie divov
	objekt.rozhoddivy(this);
		var ramik = objekt.ramcek(this);
		var vyskadivu=this.tag.offsetHeight;
		var sirkadivu = this.tag.offsetWidth;
	// naplnime do d,e hodnoty left,top pre div
	var d=objekt.ofset(this.tag,true),e=objekt.ofset(this.tag,false);
	this.tag.style.position="absolute";
	//ramik.style.width=sirkadivu+"px";
	ramik.style.height=vyskadivu+"px";
	this.tag.parentNode.insertBefore(ramik,this.tag.nextSibling);
	this.tag.style.zIndex=100;
	this.tag.style.left=d+"px";
	this.tag.style.top=e+"px";
	return false
}

function tahanie(a,b){
	//nastavime priehladnost objektu
	if(!this.priehladnost){
		this.tag.style.filter="alpha(opacity=50)";
		this.tag.style.opacity=0.5;
		this.priehladnost=true;
	}
	var c=null,d=10000000000;
	for(var e=0;e<objekt.nalepky.length;e++){

		var f=objekt.nalepky[e];
		
		var g=Math.sqrt(Math.pow(a-f.tag.pagePosLeft,2)+Math.pow(b-f.tag.pagePosTop,2));
		
		if(g<d){
			d=g;
			c=f;
		}
	//	if((a >= f.tag.offsetLeft) && (a <= (f.tag.offsetLeft+f.tag.offsetWidth))) {
		// sme horizontalne tam kde je tag
		//	if ((b >= f.tag.offsetTop) && (b <= (f.tag.offsetTop+f.tag.offsetHeight))) {
				//sme vertikalne tam kde je tag
			//	c = f;
	
//			}
	//	}
		/*if((a >= f.tag.pagePosLeft) && (a <= (f.tag.pagePosLeft+f.tag.offsetWidth)) && (b >= f.tag.pagePosTop) && (b <= (f.tag.pagePosTop+f.tag.offsetHeight))) 
			c = f;	*/
	}
	//this.k=null;
		if(c!=null){
		var i=objekt.ramcek();
		c.tag.parentNode.insertBefore(i,c.tag);
}

	
		if(objekt.opera){
			document.body.style.display="none";
			document.body.style.display=""
		}
}

function tahanie_stop(){
	this.priehladnost=false;;
	if(this.tahaniepoloz())return true;
	return true;
}

function tahanie_poloz(){
	var a=false;
	this.tag.style.position="";
	this.tag.style.width="";
	this.tag.style.zIndex="";
	this.tag.style.filter="";
	this.tag.style.opacity="";
	var b=objekt.ramcek();
	if(b.parentNode!=null){
		if(b.nextSibling!=this.origNextSibling){
			b.parentNode.insertBefore(this.tag,b.nextSibling);
			a=true
		}
		b.parentNode.removeChild(b)
	}
	if(objekt.G){
		document.body.style.display="none";
		document.body.style.display=""
	}
	
	$bunkaid=0;
	$count=0;
	delete stickies;
    var stickies=new Array();
	for (i = 0; i < objekt.pocetnalepiek; ++ i)
	stickies[i] = new Array(4);
	for(var f=0;f<objekt.pocetriadkov;f++){
		for(var i=0;i<objekt.tabulka.tBodies[0].rows[f].cells.length;i++){
			$bunkaid++;
			$poradie=0;
			// idem po jednotlivych bunkach
			for(var j=0;j<objekt.tabulka.tBodies[0].rows[f].cells[i].childNodes.length;j++){
			//idem v bunke po tagoch
			if(objekt.tabulka.tBodies[0].rows[f].cells[i].childNodes[j].tagName=="DIV") {
						$poradie++;
					$nazov_nalepky=objekt.tabulka.tBodies[0].rows[f].cells[i].childNodes[j].id.split("_");
					if($nazov_nalepky[0]!=""){
						stickies[$count][0]=$nazov_nalepky[0];
						stickies[$count][1]=$nazov_nalepky[1];
						stickies[$count][2]=$bunkaid;
						stickies[$count][3]=$poradie;
						//alert(stickies[$count][0] + " " + 	stickies[$count][1] + " " + stickies[$count][2] + " " + stickies[$count][3]);
						$count++;
					}
			}
			
			}
		
		}		
	}
	
	//urob variable pre form
	obsahwr="";
	for(var $ic=0; $ic<$count; $ic++){
	obsah = stickies[$ic][0] + "," + 	stickies[$ic][1] + "," + stickies[$ic][2] + "," + stickies[$ic][3] +";";
	obsahwr += obsah;
	document.varform.stickpos.value=obsahwr;
	}
	
	return a
}

function nalepka(tag){
	this._dragStart=tahanie_start;
	this._drag=tahanie;
	this._dragEnd=tahanie_stop;
	this.tahaniepoloz=tahanie_poloz;
	this.tag=tag;
	this.tagel=getel(tag.id+"_drag");
	if(this.tagel){
		objekt_def.init(this.tagel,this.tag);
		this.tag.onDragStart=objekt.urob(this,"_dragStart");
		this.tag.onDrag=objekt.urob(this,"_drag");
		this.tag.onDragEnd=objekt.urob(this,"_dragEnd");
	}	
}

var tahaj=function(tabulka){
	objekt.tabulka = tabulka;
	objekt.nalepky = [];
	objekt.pocetriadkov=objekt.tabulka.tBodies[0].rows.length;
	maxj=0;
	var nalepky_count=0;
	for(var f=0;f<objekt.pocetriadkov;f++){
		for(var i=0;i<objekt.tabulka.tBodies[0].rows[f].cells.length;i++){
			// idem po jednotlivych bunkach
			for(var j=0;j<objekt.tabulka.tBodies[0].rows[f].cells[i].childNodes.length;j++){
			//idem v bunke po tagoch
			if(objekt.tabulka.tBodies[0].rows[f].cells[i].childNodes[j].tagName=="DIV") {
					objekt.nalepky[nalepky_count] = new nalepka(objekt.tabulka.tBodies[0].rows[f].cells[i].childNodes[j]);
					nalepky_count ++
					if(j>maxj) maxj=j;
			}
			
			}
		
		}
		
	}
	objekt.pocetstlpcov=maxj-1;
	objekt.pocetnalepiek=nalepky_count;
	
};
