//------- EzAction.JS ------ // var xmin = 0 var ymin = 0 var xmax = 800 var ymax = 600 var snaps = 20 var tempo = 20 // milliseconds for steps function move(ob,mx,my) { var x = parseInt(ob.style.left) var y = parseInt(ob.style.top) x = (x + mx + (xmax-xmin))%(xmax-xmin) + xmin y = (y + my + (ymax-ymin))%(ymax-ymin) + ymin ob.style.left = x ob.style.top = y } function jump(ob,jx,jy) { ob.style.left = jx ob.style.top = jy } function walkto(ob,ticks,x,y) { walk(ob,[left(ob),top(ob),ticks,x,y]) } function fade(ob,start,finish,ticks) { //=== only works on objects with an ID === var steps = 0 if (ticks) { steps = ticks } for (s=0; s<=steps; s++) { setTimeout( ob.id + ".style.filter='alpha(opacity="+Math.floor(start+(finish-start)*(s/steps))+")'", tempo*s ) } } function walk(ob,path) { var s = new Array(left(ob),top(ob)) path = s.concat(path) var p = 0 var t = 0 while (p+4 < path.length) { for (s = 1; s <= path[p+2]; s++) { var x = (path[p+3]-path[p])/path[p+2]*s + path[p]; var y = (path[p+4]-path[p+1])/path[p+2]*s + path[p+1]; setTimeout(ob.id + ".style.left = " + x + ";" + ob.id + ".style.top = " + y + ";" , tempo*(s+t) ) } t = t + path[p+2]; p = p + 3; } } function left(ob) { return parseInt(ob.style.left) } function top(ob) { return parseInt(ob.style.top) } function snap(ob,hori,vert) { var x = parseInt(ob.style.left) + hori/2; var y = parseInt(ob.style.top) + vert/2; ob.style.left = x - x % hori; ob.style.top = y - y % vert; } function distance(ob,px,py) { return Math.pow( Math.pow(parseInt(ob.style.top)-py,2) + Math.pow(parseInt(ob.style.left)-px,2),0.5 ) } function distance(obja,objb) { return Math.pow( Math.pow(parseInt(obja.style.top)-parseInt(objb.style.top),2) + Math.pow(parseInt(obja.style.left)-parseInt(objb.style.left),2),0.5 ) } function drag(ob,sx,sy) { DragDrop(ob,event) if (!DragDrop.active) { if (sx && sy) { snap(ob,sx,sy) } else { snap(ob,snaps,snaps) } if (ob.ondrop ) { ob.ondrop() ;} } } function dragnear(ob,tx,ty,d) { DragDrop(ob,event) if (!DragDrop.active) { alert(distance(ob,tx,ty)) if (distance(ob,tx,ty) elementToDrag.style.zIndex = 999; elementToDrag.style.left = (parseInt(elementToDrag.style.left) - 5) + "px"; elementToDrag.style.top = (parseInt(elementToDrag.style.top) - 5) + "px"; var deltaX = event.clientX - parseInt(elementToDrag.style.left); var deltaY = event.clientY - parseInt(elementToDrag.style.top); if (document.addEventListener) { document.addEventListener("mousemove", moveHandler, true); document.addEventListener("mouseup", upHandler, true); } else if (document.attachEvent) { document.attachEvent("onmousemove", moveHandler); document.attachEvent("onmouseup", upHandler); } else { var oldmovehandler = document.onmousemove; var olduphandler = document.onmouseup; document.onmousemove = moveHandler; document.onmouseup = upHandler; } if (event.stopPropagation) event.stopPropagation(); else event.cancelBubble = true; if (event.preventDefault) event.preventDefault(); else event.returnValue = false; } else {elementToDrag.style.left = (parseInt(elementToDrag.style.left) + 5) + "px"; elementToDrag.style.top = (parseInt(elementToDrag.style.top) + 5) + "px"; elementToDrag.style.cursor = DragDrop.saveCursor; //default cursor - e.g. arrow elementToDrag.style.border = DragDrop.saveBorder; // DROP elementToDrag.style.zIndex = 100; // needs more control - need a standard idea } // e.g. dragable > 100, fixed < 100 function moveHandler(e) { if (!e) e = window.event; elementToDrag.style.left = (e.clientX - deltaX) + "px"; elementToDrag.style.top = (e.clientY - deltaY) + "px"; if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true; } function upHandler(e) { if (!e) e = window.event; if (document.removeEventListener) { document.removeEventListener("mouseup", upHandler, true); document.removeEventListener("mousemove", moveHandler, true); } else if (document.detachEvent) { document.detachEvent("onmouseup", upHandler); document.detachEvent("onmousemove", moveHandler); } else { document.onmouseup = olduphandler; document.onmousemove = oldmovehandler; } if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true; } } DragDrop.active = false; function shade(ob,p) { if (p>=0 && p<=100) { ob.style.filter="alpha(opacity="+p+")" } } function drop() { return !DragDrop.active; } function hide(ob) { ob.style.visibility = "hidden" } function show(ob) { ob.style.visibility = "visible" } function position(ob,x,y) { return ((parseInt(ob.style.left)==x) && (parseInt(ob.style.top)==y)) } function near(obja,objb) { if (distance(obja,objb)=0) { if (p.substring(0,2)=="on") { par[p] = new Function(obj[p]) obj[p] = null } else { par[p] = obj[p] obj[p] = null } } } } } textalreadyfixed = true } fixtext()