var selectedgateway = 1;
var active = false;
var reqObj = new reqObject();
var cur_gateway = '';
var step = 0;
var last_gateway = 0;
var loading;

var base_url = new String(window.location.href);
var chunks = base_url.split("/");
chunks.pop();
base_url = chunks.join("/");
if (base_url.charAt(base_url.length - 1) != "/")
  base_url += "/";
//console.log(base_url);

function reqObject () 
{
  var req = false;
  if (window.XMLHttpRequest)
  {
    try 
    {
      req = new XMLHttpRequest();
    }catch (e) 
    {
      req = false;
    }
  } 
  else if(window.ActiveXObject)
  {
    try 
    {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try { req = new ActiveXObject("Microsoft.XMLHTTP"); }
      catch(e) { req = false; }
    }
  }
  else 
  {
    alert ("Your browser does not support this cart");
    return false;
  }
  return req;
}

function getaway(gateway,act) 
{
  /*
  gateway == gateway name ("PayPal", etc) or operation ("login", "register", etc)

  act == 1
    click payment gateway
  act == 2
    click login/register
  */
  if (!gateway || (gateway == selectedgateway && act == 1) || active)
    return;
  cur_gateway = gateway;
  step = act;
  var overlay = document.getElementById("bottomsect");
  var box = document.getElementById("box_content");
  loading = document.getElementById("loading");
  winH = 600; 
  winW = 800;
  if (navigator.appName.indexOf("Microsoft")!=-1) 
  {
    winW = document.body.offsetWidth + 10;
    winH = document.body.offsetHeight + 10;
  }
  if (navigator.appName=="Netscape") 
  {
    winW = window.innerWidth + "px";
    winH = window.innerHeight + "px";
  }
  overlay.style.width = winW;
  overlay.style.height = winH;
  box.innerHTML = '';
  overlay.style.display = "block";
  loading.style.display = "block";
  setTimeout("sendReq()",500);
}

function sendReq()
{
  last_gateway = cur_gateway;
  if(step == 1)
  {
    var ship = document.getElementById("shipping-select");
    var val = ship.options[ship.options.selectedIndex].value;
    //var query = base_url + "ajax.php?_a=cart&gateway=" + cur_gateway + "&val=" + val;
    // need to redirect to the gateway page and quit 
    // val is shipping - need to add check for val on gateway.inc.php
    var query = base_url + "index.php?_g=co&_a=step3&gateway=" + cur_gateway + "&shipkey=" + val + "&cart_order_id=" + cart_order_id;
    window.location.href = query;
    return;
  }
  else if (step == 2)
    var query = base_url + "ajax.php?_a=cart&do=" + cur_gateway;
  else
    return;
  if (reqObj)
  {
    reqObj.open("GET",query,true);
    reqObj.onreadystatechange = process_;
    active = true;
    reqObj.send("");
    setTimeout("check()",20000);
  }
}

function process_()
{
  var box = document.getElementById("box_content");
  // only if req shows "loaded"
  if (reqObj.readyState == 4) 
  {
    // only if "OK"
    if (reqObj.status == 200) 
    {
      results = reqObj.responseText;
      if (results != "nothing")
      {
        box.innerHTML = results;
        active = false;
        box.style.display = 'block';
        selectedgateway = cur_gateway; 
        cur_gateway = 1;
        loading.style.display = "none";
      }
      else 
        box.innerHTML = "<b> Your shopping cart is empty </b>";
    }
  }
  return;
}

function checkDefaultGateway() 
{
  try 
  {
    for (var i=0; i < gatewaycount; i++)
    {
      var radio = document.getElementById("gateway"+i);
      if (radio.checked)
      {
        getaway(radio.value,1);
        return;
      }
    }
  }
  catch(e) {}
}

function check() 
{
  var box = document.getElementById("box_content");
  if (active == false)
    return;
  var len = box.innerHTML.length;
  if (cur_gateway == last_gateway)
  {
    alert("Operation timeout\nPlease try again");
    box.style.display = "none";
    var overlay = document.getElementById("bottomsect");
    overlay.style.display = "none";
    loading.style.display = "none";
    reset();
  }
}

function reset()
{
  cur_gateway = '';
  last_gateway = 0;
  active = false;
  selectedgateway = 1;
}
