floatX      = 20;
floatY      = 190;
layerwidth  = 100;
layerheight = 130;
halign      = "left";
valign      = "top";
delayspeed  = 3;

// This script is copyright (c) Henrik Petersen, NetKontoret
// Feel free to use this script on your own pages as long as you do not change it.
// It is illegal to distribute the script as part of a tutorial / script archive.
// Updated version available at: http://www.echoecho.com/toolfloatinglayer.htm
// This comment and the 4 lines above may not be removed from the code.

NS6 = false;
IE4 =( document.all);
if(!IE4) {
  NS6=(document.getElementById);
}
NS4 =(document.layers);

function adjust() {
  if((NS4) || (NS6)) {
    if(lastX==-1 || delayspeed==0) {
      lastX=window.pageXOffset + floatX;
      lastY=window.pageYOffset + floatY;
    }
    else {
      var dx=Math.abs(window.pageXOffset+floatX-lastX);
      var dy=Math.abs(window.pageYOffset+floatY-lastY);
      var d=Math.sqrt(dx*dx+dy*dy);
      var c=Math.round(d/10);
      if (window.pageXOffset+floatX>lastX) {lastX=lastX+delayspeed+c;}
      if (window.pageXOffset+floatX<lastX) {lastX=lastX-delayspeed-c;}
      if (window.pageYOffset+floatY>lastY) {lastY=lastY+delayspeed+c;}
      if (window.pageYOffset+floatY<lastY) {lastY=lastY-delayspeed-c;}
    }
    
    if (NS4){
      document.layers['floatlayer'].pageX = lastX;
      document.layers['floatlayer'].pageY = lastY;
    }
    
    if (NS6){
      document.getElementById('floatlayer').style.left=lastX;
      document.getElementById('floatlayer').style.top=lastY;
    }
  }
  else if (IE4){
    if (lastX==-1 || delayspeed==0) {
      lastX=document.body.scrollLeft + floatX;
      lastY=document.body.scrollTop + floatY;
    }
    else {
      var dx=Math.abs(document.body.scrollLeft+floatX-lastX);
      var dy=Math.abs(document.body.scrollTop+floatY-lastY);
      var d=Math.sqrt(dx*dx+dy*dy);
      var c=Math.round(d/10);
      if (document.body.scrollLeft+floatX>lastX) {lastX=lastX+delayspeed+c;}
      if (document.body.scrollLeft+floatX<lastX) {lastX=lastX-delayspeed-c;}
      if (document.body.scrollTop+floatY>lastY) {lastY=lastY+delayspeed+c;}
      if (document.body.scrollTop+floatY<lastY) {lastY=lastY-delayspeed-c;}
    }
    document.all['floatlayer'].style.posLeft = lastX;
    document.all['floatlayer'].style.posTop = lastY;
  } 
  setTimeout('adjust()',50);
}

function define() {

  if ((NS4) || (NS6)) { 
    if (halign=="left") {floatX=ifloatX};
    if (halign=="right") {floatX=window.innerWidth-ifloatX-layerwidth-20};
    if (halign=="center") {floatX=Math.round((window.innerWidth-20)/2)-Math.round(layerwidth/2)};
    if (valign=="top") {floatY=ifloatY};
    if (valign=="bottom") {floatY=window.innerHeight-ifloatY-layerheight};
    if (valign=="center") {floatY=Math.round((window.innerHeight-20)/2)-Math.round(layerheight/2)};
  }
  if (IE4) {
    if (halign=="left") {floatX=ifloatX};
    if (halign=="right") {floatX=document.body.offsetWidth-ifloatX-layerwidth-20}
    if (halign=="center") {floatX=Math.round((document.body.offsetWidth-20)/2)-Math.round(layerwidth/2)}
    if (valign=="top") {floatY=ifloatY};
    if (valign=="bottom") {floatY=document.body.offsetHeight-ifloatY-layerheight}
    if (valign=="center") {floatY=Math.round((document.body.offsetHeight-20)/2)-Math.round(layerheight/2)}
  }
  
}

function writit(text,id) { 
  if (document.getElementById) { 
    x = document.getElementById(id); 
    x.innerHTML = ''; 
    x.innerHTML =  text; 
    x.style.visibility = "visible"; 
  
  } 
  else if (document.all) { 
    x = document.all[id]; 
    x.innerHTML = ''; 
    x.innerHTML =  text; 
    x.style.visibility = "visible"; 
  } 
  else if (document.layers) { 
    x = document.layers[id]; 
    text2 = '<P CLASS="testclass">' + text + '</P>'; 
    x.document.open(); 
    x.document.write(text2); 
    x.document.close(); 
    x.style.visibility = "visible"; 
  } 
} 

function clearit(id) { 
  if (document.getElementById) { 
    x = document.getElementById(id); 
    x.innerHTML = ''; 
    x.style.visibility = "visible"; 
  } 
  else if (document.all) { 
    x = document.all[id]; 
    x.innerHTML = ''; 
    x.style.visibility = "visible"; 
  } 
  else if (document.layers) { 
    x = document.layers[id]; 
    text2 = ''; 
    x.document.open(); 
    x.document.write(text2); 
    x.document.close(); 
    x.style.visibility = "visible"; 
  } 
} 

function addToCart(theForm) { 
  var req = new XMLHttpRequest(); 

  if (req) { 
    clearit('sc_div');
    req.onreadystatechange = function() { 
      
      writit('<p class=tdsmall>Updating Shopping Cart. Please wait...</p>','sc_div'); 
      
      if(req.readyState == 4){
        if(req.statusText != 'OK'){
          writit('ERROR: '+req.statusText,'sc_div');
        }
      }

      if (req.readyState == 4 && req.status == 200) { 
        writit(req.responseText,'sc_div'); 
      } 
    }; 

    req.open('POST', '/shopping_cart_app.php'); // many server-side scripts require the Content-Type to be set: 
    req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso8859-1'); 
    var post_text = 'action=' + theForm.action.value + '&productdetailid=' + theForm.productdetailid.value + '&quantity=' + theForm.quantity.value; 
    
    req.send(post_text); 

  } 
  
  return false;

}

/*=================================================================
  Function: ShowAbility
  Purpose:  position, draw, and display Ability element
  Input:    fArg - indexes text array to display
  ==================================================================*/
function ShowAbility(fArg) {
  // Get a reference to the button (srcElement) and the Ability
  var eSrc = window.event.srcElement;
  var eTip = document.all[fArg];


  if ('object' != typeof(eTip)) return;


  // Get the top and left coordinates to place the tip
  // It goes at the top left corner of the button
  // Walk eSrc.offsetParent to get the cumulative offset
  var iTipLeft = eSrc.offsetLeft;
  var iTipTop = (eSrc.offsetTop - eTip.offsetHeight);
  while (eSrc.offsetParent) {
    eSrc = eSrc.offsetParent;
    iTipLeft += (eSrc.offsetLeft);
    iTipTop += (eSrc.offsetTop);
  }

  // If we don't fit at the top, position below the button
  if (iTipTop < document.body.scrollTop) {
    eSrc = window.event.srcElement;
    iTipTop += (eTip.offsetHeight + eSrc.offsetHeight);
  }

  // Set the tip's position and turn visibility on
  eTip.style.posLeft =  iTipLeft;
  eTip.style.posTop = iTipTop;
  eTip.style.visibility = "visible";
}


/*=================================================================
  Function: HideAbility
  Purpose:  set visibility attribute of Ability to hidden
  ==================================================================*/
function HideAbility(fArg) {
  var eTip = document.all[fArg];

  if ('object' != typeof(eTip)) return;
  eTip.style.visibility = "hidden";
}