// // tjpzoom 2005.11.29 - 2005.12.02. // details/usage: http://valid.tjp.hu/zoom/ // var zoomw=160; var zoomh=120; var defzoomamount=4; var zoomamountstep=1.2; var zoomsizemin=1000; var zoomsizemax=100000; var zoomsizestep=1.2; var zoomamountmin=1; var zoomamountmax=12; function zoom_set(evt) { var evt = evt?evt:window.event?window.event:null; if(!evt){ return;} if(zoomid=='' || parseInt(document.getElementById(zoomid+'_container').style.width) == 0) {return true;} if(evt.keyCode==37 || evt.keyCode==100) {zoomw/=zoomsizestep; zoomh/=zoomsizestep; if(zoomw*zoomhzoomsizemax) {zoomh=Math.sqrt(zoomsizemax/zoomratio); zoomw=zoomh*zoomratio;} if(zoomw>objw) {zoomw=objw; zoomh=objw/zoomratio;} else if(zoomh>objh) {zoomh=objh; zoomw=objh*zoomratio} zoom_init(); zoom_move(); return; } //right if(evt.keyCode==40 || evt.keyCode==98) {zoomamount/=zoomamountstep; if(zoomamountzoomamountmax) {zoomamount=zoomamountmax;} zoom_init(); zoom_move(); return;} //up return; } function zoom_init() { document.getElementById(zoomid+'_clip').style.width=objw*zoomamount+'px'; document.getElementById(zoomid+'_clip').style.height=objh*zoomamount+'px'; setTimeout("document.getElementById('"+zoomid+"_trigger').focus();",0); } function zoom_move(evt) { if(typeof(evt) == 'object') { var evt = evt?evt:window.event?window.event:null; if(!evt){ return;} if(evt.pageX) { xx=evt.pageX - ffox; yy=evt.pageY - ffoy; } else { if(typeof(document.getElementById(zoomid)+1) == 'number') {return true;} //mert az ie egy ocska kurva // xx=evt.x - ieox; // yy=evt.y - ieoy; xx=evt.clientX - ieox; yy=evt.clientY - ieoy; } } else { xx=lastxx; yy=lastyy; } lastxx=xx; lastyy=yy; document.getElementById(zoomid+'_clip').style.margin=((yy-zoomh/2 > 0)?(zoomh/2-yy*zoomamount):(yy*(1-zoomamount)))+'px 0px 0px '+((xx-zoomw/2 > 0)?(zoomw/2-xx*zoomamount):(xx*(1-zoomamount)))+'px'; document.getElementById(zoomid+'_container').style.margin=((yy-zoomh/2 > 0)?(yy-zoomh/2):(0))+'px 0px 0px '+((xx-zoomw/2 > 0)?(xx-zoomw/2):(0))+'px'; w2=((xx+zoomw/2'; if(zoomw>objw) {zoomw=objw; zoomh=objw/zoomratio;} else if(zoomh>objh) {zoomh=objh; zoomw=objh*zoomratio} zoom_init(); zoom_move(''); if(document.all) { document.onkeydown=zoom_set; } else { window.captureEvents(Event.KEYDOWN); window.onkeydown = zoom_set; } return false; } var zoomamount=defzoomamount; var objw;var objh;var zoomid=''; var zoomratio=zoomw/zoomh; var ieox=0; var ieoy=0; var ffox=0; var ffoy=0;