firefox compatibility

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • inteli
    New Member
    • Nov 2007
    • 1

    firefox compatibility

    Hey anybody can help me out wid this code..Its working well in IE but nt in firefox.The problem lies in offset,clientX, clientY part but I dnt know how to resolve it ..

    [CODE=javascript]var zxcDockAry=new Array();
    var zxcBdy,zxcObj,z xcWDone,zxcWDCn t,zxcXos,zxcYos ,zxcTD,zxcDiv;
    var zxcDragDo=false ;

    function zxcInit(){
    zxcBdy = document.getEle mentsByTagName( 'BODY')[0];
    zxcdocks=zxcBdy .getElementsByT agName('TR');
    for (zxc1=0;zxc1<zx cdocks.length;z xc1++){
    if (zxcdocks[zxc1].className=='Ti leDock'){
    zxcdocks[zxc1].spell=zxcdocks[zxc1].title;
    zxcdocks[zxc1].removeAttribut e('title');
    zxcdocks[zxc1].ary=new Array();
    zxctds=zxcdocks[zxc1].getElementsByT agName('TD');
    for (zxc2=1;zxc2<zx ctds.length;zxc 2++){
    if (zxctds[zxc2].className=='Do ck'){
    zxcDockAry[zxcDockAry.leng th]=zxctds[zxc2];
    }
    zxctds[zxc2].style.position ='relative';
    zxctds[zxc2].spell='';
    zxcdocks[zxc1].ary[zxcdocks[zxc1].ary.length]=zxctds[zxc2];
    }
    }
    }

    }
    function zxcMouseDown(e) {
    if (!document.all) { zxcobj=e.target ; zxcparent='HTML '; }
    else { zxcobj=event.sr cElement; zxcparent='BODY '; }
    if (!zxcobj.classN ame){ return; }
    while (zxcobj.tagName !=zxcparent&&zx cobj.className! ='drag'){
    if (!document.all) { zxcobj=zxcobj.p arentNode; }
    else { zxcobj=zxcobj.p arentElement; }
    }
    var divobj = document.getEle mentById("cente rcontent");
    var divobj_width = parseInt(divobj .style.width);
    var divobj_height = parseInt(divobj .style.height);
    if (( zxcobj.classNam e=='drag') &&
    ( ( zxcPos(zxcobj)[0] > zxcPos(divobj)[0] && (zxcPos(zxcobj)[0] < (zxcPos(divobj)[0] + divobj_width ) ) ) &&
    ( zxcPos(zxcobj)[1] > zxcPos(divobj)[1] && (zxcPos(zxcobj)[1] < (zxcPos(divobj)[1] + divobj_height) ) ) ) )
    {
    zxcDragDo=true;
    zxcObj=zxcobj;
    zxcObj.style.po sition='absolut e';
    zxcObj.style.le ft=zxcObj.offse tLeft+'px';
    zxcObj.style.to p=zxcObj.offset Top+'px';
    zxcXos=zxcObj.o ffsetLeft-zxcMse(e)[0];
    zxcYos=zxcObj.o ffsetTop-zxcMse(e)[1];
    document.onmous emove=zxcDrag;
    return true;
    } else if (zxcobj.classNa me=='drag') {
    zxcDragDo=true;
    zxcObj=zxcobj.c loneNode(true);
    zxcBdy.appendCh ild(zxcObj);
    zxcObj.style.po sition='absolut e';
    zxcObj.style.le ft=(zxcPos(zxco bj)[0])+'px';
    zxcObj.style.to p=(zxcPos(zxcob j)[1])+'px';
    zxcXos=zxcObj.o ffsetLeft-zxcMse(e)[0];
    zxcYos=zxcObj.o ffsetTop-zxcMse(e)[1];
    document.onmous emove=zxcDrag;
    return true;
    }
    }



    function zxcDrag(e){
    if (zxcDragDo){
    zxcObj.style.le ft=(zxcMse(e)[0]+zxcXos)+'px';
    zxcObj.style.to p=(zxcMse(e)[1]+zxcYos)+'px';

    return false;
    }
    }

    function zxcMse(e){
    if (!document.all) { return [e.clientX,e.cli entY] }
    else { return [event.clientX,e vent.clientY]; }

    }

    function zxcMseUp(){
    var divobj = document.getEle mentById("cente rcontent");
    var divobj_width = parseInt(divobj .style.width);
    var divobj_height = parseInt(divobj .style.height);

    if ( ( (zxcPos(zxcobj)[0] > zxcPos(divobj)[0]) && (zxcPos(zxcobj)[0] < (zxcPos(divobj)[0] + divobj_width ) ) ) &&
    ( (zxcPos(zxcobj)[1] > zxcPos(divobj)[1]) && (zxcPos(zxcobj)[1] < (zxcPos(divobj)[1] + divobj_height) ) ) )
    {
    zxcMseUpNotAdd( );
    }
    else
    {
    zxcMseUpAdd();
    }


    }


    function zxcMseUpAdd(){
    zxcDragDo=false ;
    var divobj = document.getEle mentById("cente rcontent");
    var divobj_width = parseInt(divobj .style.width);
    var divobj_height = parseInt(divobj .style.height);
    zxcTD=zxcDockCk ();
    if (zxcTD){
    id = zxcObj.id;
    add_product(id) ;
    zxcDiv=zxcTD.ge tElementsByTagN ame('DIV');
    zxcDiv=zxcTD.ge tElementsByTagN ame('DIV')[0];
    zxcimg=zxcDiv.g etElementsByTag Name('IMG');
    if (zxcimg.length) { zxcDiv.removeCh ild(zxcimg[0]); }

    }
    else
    {
    //alert('bracelet ');
    if (((zxcPos(zxcOb j)[0] > zxcPos(divobj)[0]) && (zxcPos(zxcObj)[0] < (zxcPos(divobj)[0] + divobj_width))) &&
    ((zxcPos(zxcObj )[1] > zxcPos(divobj)[1]) && (zxcPos(zxcObj)[1] < (zxcPos(divobj)[1] + divobj_height)) ))

    { alert('bracelet out');
    zxcObj.style.le ft='-1200px';
    zxcMseUpRemove( );
    }
    else
    { alert('bracelet ');
    zxcObj.style.le ft='-1200px';
    }

    }

    }

    function zxcMseUpNotAdd( ){
    zxcDragDo=false ;
    var divobj = document.getEle mentById("cente rcontent");
    var divobj_width = parseInt(divobj .style.width);
    var divobj_height = parseInt(divobj .style.height);
    if (((zxcPos(zxcOb j)[0] > zxcPos(divobj)[0]) && (zxcPos(zxcObj)[0] < (zxcPos(divobj)[0] + divobj_width))) &&
    ((zxcPos(zxcObj )[1] > zxcPos(divobj)[1]) && (zxcPos(zxcObj)[1] < (zxcPos(divobj)[1] + divobj_height)) ))

    {
    zxcTD=zxcDockCk ();
    if (zxcTD){
    zxcDiv=zxcTD.ge tElementsByTagN ame('DIV');
    zxcDiv=zxcTD.ge tElementsByTagN ame('DIV')[0];
    zxcimg=zxcDiv.g etElementsByTag Name('IMG');

    }

    }
    else
    {
    // zxcObj.style.le ft='-1200px';
    // zxcMseUpRemove( );
    }
    }


    function zxcMseUpRemove( ){
    zxcDragDo=false ;
    id = zxcObj.id;
    document.onmous eup=doBuyNowGet ('ajax_shopping _cart.php?actio n=remove_produc t_ajax&products _id='+id);
    id.style.left='-1200px';
    }

    function add_product(id)
    {
    document.onmous eup=doBuyNowGet ('ajax_shopping _cart.php?actio n=buy_now&produ cts_id='+id);

    zxcDiv=document .getElementsByT agName('DIV');
    zxcDiv=document .getElementsByT agName('DIV')[0];
    zxcimg=document .getElementsByT agName('IMG');

    //return id;
    }

    function zxcDockCk(){
    for (zxc0=0;zxc0<zx cDockAry.length ;zxc0++){
    if (zxcPos(zxcObj)[0]>zxcPos(zxcDock Ary[zxc0])[0]&&
    zxcPos(zxcObj)[0] + zxcObj.offsetWi dth < zxcPos(zxcDockA ry[zxc0])[0]+zxcDockAry[zxc0].offsetWidth &&
    zxcPos(zxcObj)[1]>zxcPos(zxcDock Ary[zxc0])[1]&&
    zxcPos(zxcObj)[1]+zxcObj.offsetH eight<zxcPos(zx cDockAry[zxc0])[1]+zxcDockAry[zxc0].offsetHeight){
    return zxcDockAry[zxc0];
    }
    }
    return false
    }

    function zxcPos(zxc){
    zxcl=zxc.offset Left;
    zxct=zxc.offset Top;
    while(zxc.offse tParent!=null){
    zxcp=zxc.offset Parent;
    zxcl+=zxcp.offs etLeft;
    zxct+=zxcp.offs etTop;
    zxc=zxcp;
    }
    return [zxcl,zxct];
    }

    document.onmous edown=zxcMouseD own;
    document.onmous eup=new Function('zxcMs eUp();');
    window.onload=z xcInit;[/CODE]
    Last edited by gits; Nov 18 '07, 08:59 AM. Reason: added code tags
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    Perhaps you may want to take a look at this and see if it helps you solve your problem.

    Comment

    Working...