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]
[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]
Comment