function Dmove(dtop,dleft,move,time,eid){
	var element = getObj(eid);
	element.TimeToMove=time;
	if(element == null)
		return;
	if(element.MoveState == null){
		element.MoveState = 0;
	}
	if(element.OrigLeft == null){
    	element.OrigLeft = element.offsetLeft;
        element.OrigTop = element.offsetTop;
    }
    
	if(element.MoveState == 1){
		element.DestTop=(element.OrigTop+element.DestTop)-element.offsetTop+dtop;
        element.DestLeft=(element.OrigLeft+element.DestLeft)-element.offsetLeft+dleft;
	    element.OrigLeft = element.offsetLeft;
        element.OrigTop = element.offsetTop;
		element.MoveTimeLeft = element.TimeToMove;
	}else{
		element.MoveTimeLeft = element.TimeToMove;
		element.DestTop=dtop;
        element.DestLeft=dleft;
		element.OrigTop=element.offsetTop;
        element.OrigLeft=element.offsetLeft;
		element.MoveState=1;
	}
	setTimeout("animateMove(" + new Date().getTime() + ",'" + eid + "')", 33);
}

function animateMove(lastTick, eid){
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = getObj(eid);
	if(element.MoveTimeLeft <= elapsedTicks){
        element.style.left= (element.OrigLeft+element.DestLeft)+ 'px';
        element.style.top= (element.OrigTop+element.DestTop)+ 'px';
		element.MoveState=0;
		return;
	}
	
	element.MoveTimeLeft -= elapsedTicks;
	var newOpVal = element.MoveTimeLeft/element.TimeToMove;
	element.style.left=(element.OrigLeft+Math.round((1-newOpVal)*element.DestLeft))+'px';
    element.style.top=(element.OrigTop+Math.round((1-newOpVal)*element.DestTop))+'px';
	setTimeout("animateMove(" + curTick + ",'" + eid + "')", 33);
}


function Dfade(fade,time,eid){
	var element = getObj(eid);
	element.TimeToFade=time;
	if(element == null)
		return;
	if(element.FadeState == null){
		element.FadeState = -2;
	}
	if(element.FadeState == 1 || element.FadeState == -1){
		if(fade == 'inv'){
			element.FadeState = element.FadeState == 1 ? -1 : 1;
			element.FadeTimeLeft = element.TimeToFade - element.FadeTimeLeft;
		}else if(fade == 'in' && element.FadeState == -1){
			element.FadeState = 1;
			element.FadeTimeLeft = element.TimeToFade - element.FadeTimeLeft;
		}else if(fade == 'out' && element.FadeState == 1){
			element.FadeState = -1;
			element.FadeTimeLeft = element.TimeToFade - element.FadeTimeLeft;
		}
	}else{
		if(fade == 'inv'){
			element.FadeState = element.FadeState == 2 ? -1 : 1;
		}else if(fade == 'in'){
			element.FadeState = element.FadeState == -2 ? 1: 2;
		}else if(fade == 'out'){
			element.FadeState = element.FadeState == 2 ? -1: -2;
		}
		element.FadeTimeLeft = element.TimeToFade;
	}
	element.style.visibility='visible';
	setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
}

function animateFade(lastTick, eid){
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = getObj(eid);
	
	if(element.FadeTimeLeft <= elapsedTicks){
		if(element.FadeState == 1 || element.FadeState == -1){
			element.style.opacity = element.FadeState == 1 ? '1' : '0';
			element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
			element.style.visibility=(element.FadeState == 1 ? 'visible' : 'hidden');
			element.FadeState = element.FadeState == 1 ? 2 : -2;

		}
		return;
	}
	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft/element.TimeToFade;
	if(element.FadeState == 1 || element.FadeState == -1){
		if(element.FadeState == 1){
			newOpVal = 1 - newOpVal;
		}
		element.style.opacity = newOpVal;
		element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
	}
	setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}




function fademove(dtop,dleft,move,fade,time,eid){
	 Dfade(dtop,dleft,'move',fade,time,eid);
	 Dmove(dtop,dleft,move,time,eid);
	 
}

function getObj(name){
  if (typeof(name) == 'string'){
    if(document.getElementById){
        return document.getElementById(name);
    }else if(document.all){
        return document.all[name];
    }else if(document.layers){
        return document.layers[name];
    }else{
        alert("You will not be able to view this page.");
    }
  }else{
    return name
  }
}

function sleeping(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}


function write2div(div, val, clear){
	fa=getObj(div)
	if(clear == 0){
	   fa.innerHTML = val;
	}else{
	   fa.innerHTML = fa.innerHTML+val;
	}
}


function mcm_window(id, width, height){
    fa=getObj('root');
    wd=getObj('raw');
    var clone = wd.cloneNode(true);
    clone.id = id;
    //clone.style.position='relative';
    fa.appendChild(clone);
    clone=getObj(id);
    clone.style.width=width+'px';
	clone.style.height=height+'px';
	clone.style.border='solid 2px #e2dfdc';
	clone.style.zIndex='990';
	clone.style.visibility='hidden';
	clone.style.filter = 'alpha(opacity = 0)';
	return clone;
}




function getadmin(element,plokk, pid, state, del, edi, url){
    var nimi='adminlink-'+plokk+'-'+pid;
    panel=getObj(nimi);
    if(!panel){
        panel=mcm_window(nimi, 45, 12);
        if(edi == 1){
            write2div(nimi, '<a href="'+url+'&amp;mcm_eid='+pid+'&amp;mcm_p='+plokk+'"><img style="z-index="991";padding-right:1px;padding-left:1px;" border="0" src="mcm/edi.png"></a>',1);
        }
        if(del == 1){
            write2div(nimi, '<a href="'+url+'&amp;mcm_a=delete&amp;mcm_did='+pid+'&amp;mcm_p='+plokk+'" onclick="javascript:return confirm(\'Olete kindel, et soovite seda kustutada?\')"><img style="z-index="991";padding-right:1px;padding-left:1px;" border="0" src="mcm/del.png"></a>',1);
        }
        var pos = getAbsolutePosition(element);
        panel.style.left= (pos.x)+ 'px';
        panel.style.top= (pos.y)+ 'px';
    }
    if(state == 1){
        Dfade('in',200,nimi);
    }else{
        Dfade('out',1700,nimi);
    }
}

function dontgo(element,state){
    if(state == 1){
        Dfade('in',0,element);
    }else{
        Dfade('out',1700,element);
    }
}

function getAbsolutePosition(element, first) {
  var r = { x: element.offsetLeft, y: element.offsetTop };
  if (element.offsetParent) {
    var tmp = getAbsolutePosition(element.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};


function submitform(nimi)
{
    see=getObj(nimi);
    see.submit();
}

function setform(vorm, field, val)
{
    try{
    see=getObj(vorm);
    see[field].value=val;
    }catch(err){
    
    }
}

