var lsShoppingBagTimerId1 = null;
var lsShoppingBagTimerId2 = null;

function GetRequeryVal()
{
var d = new Date();
return d.getTime();
}

function getCheckedValueRadio(radioObj) {
  if(!radioObj)
    return "";
  var radioLength = radioObj.length;
  if(radioLength == undefined)
    if(radioObj.checked)
      return radioObj.value;
    else
      return "";
  for(var i = 0; i < radioLength; i++) {
    if(radioObj[i].checked) {
      return radioObj[i].value;
    }
  }
  return "";
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function lsShoppingBagAjaxProccesReturn(requestname, http_request, waitingtext) {
var elementid = '';

elementid = 'ajaxproccessdiv';
if (http_request.readyState == 4) {
    irequest = GetRunningRequest(requestname);
    RemoveRunningRequest(irequest);
    if (http_request.status == 200) {
        result = RemoveDocType(http_request.responseText);
        if (requestname == 'reloadshoppingbag') {
        document.getElementById('shoppingbag').innerHTML = result;
        } else if (requestname == 'reloadshoppingbag2') {
        document.getElementById('shoppingbag').innerHTML = result;
        lsShoppingBagReloadShoppingBagInLineTotal();
        } else {
        changeOpac(100, elementid);
        document.getElementById(elementid).style.display = 'block';
        document.getElementById(elementid).innerHTML = result;
        if (result != 'OK') {
           alert(result);
        } else {
           if (requestname == 'saveaddressdetail') {
              if (lsShoppingBagTimerId1 != null) {
              clearTimeout(lsShoppingBagTimerId1);
              }
              if (lsShoppingBagTimerId2 != null) {
              clearTimeout(lsShoppingBagTimerId2);
              }
              changeOpac(100, elementid);
              document.getElementById(elementid).style.display = 'block';
              document.getElementById(elementid).innerHTML = 'Your data is saved.';
              lsShoppingBagTimerId1 = setTimeout("opacity('" + elementid + "', 100, 0, 500)",100);
           }
           if (requestname == 'saveaddressdetailandcontinueshopping') {
              if (lsShoppingBagTimerId1 != null) {
              clearTimeout(lsShoppingBagTimerId1);
              }
              if (lsShoppingBagTimerId2 != null) {
              clearTimeout(lsShoppingBagTimerId2);
              }
              changeOpac(100, elementid);
              document.getElementById(elementid).style.display = 'block';
              document.getElementById(elementid).innerHTML = 'Your data is saved. You will be redirected back to shop in 1sec.';
              lsShoppingBagTimerId1 = setTimeout("opacity('" + elementid + "', 100, 0, 200)",700);
              lsShoppingBagTimerId2 = setTimeout("window.location='index.php?subpage=3';",1000);
           }
           if (requestname == 'saveaddressdetailandproceed') {
              if (lsShoppingBagTimerId1 != null) {
              clearTimeout(lsShoppingBagTimerId1);
              }
              if (lsShoppingBagTimerId2 != null) {
              clearTimeout(lsShoppingBagTimerId2);
              }
              changeOpac(100, elementid);
              document.getElementById(elementid).style.display = 'block';
              document.getElementById(elementid).innerHTML = 'Your data is saved.';
              lsShoppingBagTimerId1 = setTimeout("opacity('" + elementid + "', 100, 0, 500)",100);
              lsShoppingBagStep3(false);
           }
           if (requestname == 'addtoshoppingbag') {
              if (lsShoppingBagTimerId1 != null) {
              clearTimeout(lsShoppingBagTimerId1);
              }
              if (lsShoppingBagTimerId2 != null) {
              clearTimeout(lsShoppingBagTimerId2);
              }
              changeOpac(100, elementid);
              document.getElementById(elementid).style.display = 'block';
              if (document.getElementById('shoppingbag') == null) {
              document.getElementById(elementid).innerHTML = 'Item added to your shopping bag.<br/> You will be redirected to shopping bag in 1sec.';
              lsShoppingBagTimerId1 = setTimeout("opacity('" + elementid + "', 100, 0, 200)",700);
              lsShoppingBagTimerId2 = setTimeout("window.location='index.php?subpage=7';",1000);
              } else {
              document.getElementById(elementid).innerHTML = 'Item added to your shopping bag.';
              lsShoppingBagTimerId1 = setTimeout("opacity('" + elementid + "', 100, 0, 500)",2000);
              }
           }
           if (requestname == 'removefromshoppingbag') {
              if (lsShoppingBagTimerId1 != null) {
              clearTimeout(lsShoppingBagTimerId1);
              }
              if (lsShoppingBagTimerId2 != null) {
              clearTimeout(lsShoppingBagTimerId2);
              }
              changeOpac(100, elementid);
              document.getElementById(elementid).style.display = 'block';
              document.getElementById(elementid).innerHTML = 'Item removed from your shopping bag.';
              lsShoppingBagTimerId1 = setTimeout("opacity('" + elementid + "', 100, 0, 500)",2000);
           }
           if (requestname == 'removefromshoppingbag') {
              lsShoppingBagReloadShoppingBag();
           }
           if (requestname == 'addtoshoppingbag') {
              lsShoppingBagReloadShoppingBag();
           }
        }
        }
    } else {
        alert(http_request.responseText);
        changeOpac(100, elementid);
        document.getElementById(elementid).style.display = 'block';
        document.getElementById(elementid).innerHTML = 'error';
    }
} else {
   if ((requestname == 'reloadshoppingbag') || (requestname == 'reloadshoppingbag2')) {
   document.getElementById('shoppingbag').innerHTML = waitingtext;
   } else {
   changeOpac(100, elementid);
   document.getElementById(elementid).style.display = 'block';
   document.getElementById(elementid).innerHTML = waitingtext;
   }
}
}

function lsShoppingBagAddToShoppingBag(itemid,userdescription)
{
makeRequest('addtoshoppingbag', 'subpages/lsshoppingbag.php', '?action=addtomybag&itemid=' + itemid + '&requeryval=' + GetRequeryVal() + '!POST?&userdescription=' + encodeURIComponent(userdescription), lsShoppingBagAjaxProccesReturn, 'adding to your shopping bag...', -1);
}

function lsShoppingBagRemoveFromShoppingBag(id)
{
makeRequest('removefromshoppingbag', 'subpages/lsshoppingbag.php', '?action=removeformmybag&id=' + id + '&requeryval=' + GetRequeryVal(), lsShoppingBagAjaxProccesReturn, 'remove from your shopping bag...', -1);
}

function lsShoppingBagReloadShoppingBag()
{
lsShoppingBagReloadShoppingBagInLineTotal()
if (document.getElementById('shoppingbag') != null) {
  makeRequest('reloadshoppingbag', 'subpages/lsshoppingbag.php', '?action=getshoppingbag&requeryval=' + GetRequeryVal(), lsShoppingBagAjaxProccesReturn, 'Reloading shopping bag...', -1);
}
}

function lsShoppingBagReloadShoppingBagInLineTotal()
{
if (document.getElementById('shoppingbaginlinetotal') != null) {
inlinetotal = makeRequestSynch('subpages/lsshoppingbaginlinetotal.php?action=reload&requeryval=' + GetRequeryVal(), '');
document.getElementById('shoppingbaginlinetotal').innerHTML = inlinetotal;
}
}

function lsShoppingBagStep2()
{
if (document.getElementById('shoppingbag') != null) {
  makeRequest('reloadshoppingbag', 'subpages/lsshoppingbag.php', '?action=getshoppingbagstep2&requeryval=' + GetRequeryVal(), lsShoppingBagAjaxProccesReturn, 'Loading form...', -1);
}
}

function lsShoppingBagStep3(savebefore)
{
if (document.getElementById('shoppingbag') != null) {
  if (savebefore) {
    lsShoppingBagSaveAddressDetailForm('step3');
  } else {
    if (lsShoppingBagValidateForm()) {
    makeRequest('reloadshoppingbag', 'subpages/lsshoppingbag.php', '?action=getshoppingbagstep3&requeryval=' + GetRequeryVal(), lsShoppingBagAjaxProccesReturn, 'Loading form...', -1);
    }
  }
}
}

function lsShoppingBagSendOrder()
{
makeRequest('reloadshoppingbag2', 'subpages/lsshoppingbag.php', '?action=sendorder&requeryval=' + GetRequeryVal(), lsShoppingBagAjaxProccesReturn, 'Sending your order...', -1);
}

function lsShoppingBagPostFormAjax()
{
  actionstringpost = '';
  formel = document.getElementById('addressdetailform');
  tmpformelements = formel.elements;
  for (iformel = 0; iformel < tmpformelements.length; iformel++) {
    formelname = '';
    if ((tmpformelements[iformel].type == 'text') || (tmpformelements[iformel].type == 'textarea')) {
    formelname = tmpformelements[iformel].name;
    formelvalue = tmpformelements[iformel].value;
    }
    if ((tmpformelements[iformel].type == 'select-one')) {
    formelname = tmpformelements[iformel].name;
    formelvalue = tmpformelements[iformel].options[tmpformelements[iformel].selectedIndex].value;
    }
    if ((tmpformelements[iformel].type == 'radio')) {
    formelname = tmpformelements[iformel].name;
    formelvalue = getCheckedValueRadio(document.getElementsByName(tmpformelements[iformel].name));
    }
    if ((tmpformelements[iformel].type == 'checkbox')) {
    formelname = tmpformelements[iformel].name;
    if (tmpformelements[iformel].checked) {
    formelvalue = 1;
    } else {
    formelvalue = 0;
    }
    }
	if (formelname != '') {
    actionstringpost = actionstringpost + formelname + "=" + encodeURIComponent(formelvalue) + "&";
	}
  }
  makeRequest('reloadshoppingbag', 'subpages/lsshoppingbag.php', '?action=saveaddressdetailandoutputstep3&requeryval=' + GetRequeryVal() + '!POST?' + actionstringpost, lsShoppingBagAjaxProccesReturn, 'Saving data and loading form...', -1);
}

function lsShoppingBagValidateForm()
{
if (document.getElementById('shoppingbag') != null) {
  formel = document.getElementById('addressdetailform');
  tmpformelements = formel.elements;
  filterrequiregroup = 1;
  for (iformel = 0; iformel < tmpformelements.length; iformel++) {
    if (parseInt(tmpformelements[iformel].getAttribute('MinLength')) > 0) {
        minlength = parseInt(tmpformelements[iformel].getAttribute('MinLength'));
        if (isNaN(minlength)) { minlength = 0;}
        requiregroup = parseInt(tmpformelements[iformel].getAttribute('RequireGroup'));
        if (isNaN(requiregroup)) { requiregroup = 1;}
        if (filterrequiregroup == requiregroup) {
        formelname = tmpformelements[iformel].name;
        formelvalue = tmpformelements[iformel].value;
        if (tmpformelements[iformel].getAttribute('VALIDATIONTYPE') == 'EMAIL') {
          if (ValidateField(tmpformelements[iformel], 'email', minlength, 255) != true) {
             alert('Invalid email!');
             return false;
          }
        } else {
          if (formelvalue.length < minlength) {
             alert('Please fill require fields!');
             return false;
          }
        }
        }
    }
  }
  if (document.getElementById('billingadressdiv').style.display != 'none') {
  filterrequiregroup = 2;
  for (iformel = 0; iformel < tmpformelements.length; iformel++) {
    if (parseInt(tmpformelements[iformel].getAttribute('MinLength')) > 0) {
        minlength = parseInt(tmpformelements[iformel].getAttribute('MinLength'));
        if (isNaN(minlength)) { minlength = 0;}
        requiregroup = parseInt(tmpformelements[iformel].getAttribute('RequireGroup'));
        if (isNaN(requiregroup)) { requiregroup = 1;}
        if (filterrequiregroup == requiregroup) {
        formelname = tmpformelements[iformel].name;
        formelvalue = tmpformelements[iformel].value;
        if (tmpformelements[iformel].getAttribute('VALIDATIONTYPE') == 'EMAIL') {
          if (ValidateField(tmpformelements[iformel], 'email', minlength, 255) != true) {
             alert('Invalid email!');
             return false;
          }
        } else {
          if (formelvalue.length < minlength) {
             alert('Please fill require fields!');
             return false;
          }
        }
        }
    }
  }
  }
}
return true;
}

function lsShoppingBagSaveAddressDetailForm(actionafter)
{
if (document.getElementById('shoppingbag') != null) {
  actionstringpost = '';
  formel = document.getElementById('addressdetailform');
  tmpformelements = formel.elements;
  for (iformel = 0; iformel < tmpformelements.length; iformel++) {
    if ((tmpformelements[iformel].type == 'text') || (tmpformelements[iformel].type == 'textarea')) {
    formelname = tmpformelements[iformel].name;
    formelvalue = tmpformelements[iformel].value;
    }
    if ((tmpformelements[iformel].type == 'select-one')) {
    formelname = tmpformelements[iformel].name;
    formelvalue = tmpformelements[iformel].options[tmpformelements[iformel].selectedIndex].value;
    }
    if ((tmpformelements[iformel].type == 'radio')) {
    formelname = tmpformelements[iformel].name;
    formelvalue = getCheckedValueRadio(document.getElementsByName(tmpformelements[iformel].name));
    }
    if ((tmpformelements[iformel].type == 'checkbox')) {
    formelname = tmpformelements[iformel].name;
    if (tmpformelements[iformel].checked) {
    formelvalue = 1;
    } else {
    formelvalue = 0;
    }
    }
    actionstringpost = actionstringpost + formelname + "=" + formelvalue + "&";
  }
  if (actionafter == 'continueshopping') {
  makeRequest('saveaddressdetailandcontinueshopping', 'subpages/lsshoppingbag.php', '?action=saveaddressdetail&requeryval=' + GetRequeryVal() + '!POST?' + actionstringpost, lsShoppingBagAjaxProccesReturn, 'Saving your data...', -1);
  }
  if (actionafter == 'step3') {
  makeRequest('saveaddressdetailandproceed', 'subpages/lsshoppingbag.php', '?action=saveaddressdetail&requeryval=' + GetRequeryVal() + '!POST?' + actionstringpost, lsShoppingBagAjaxProccesReturn, 'Saving your data...', -1);
  }
  if (actionafter == '') {
  makeRequest('saveaddressdetail', 'subpages/lsshoppingbag.php', '?action=saveaddressdetail&requeryval=' + GetRequeryVal() + '!POST?' + actionstringpost, lsShoppingBagAjaxProccesReturn, 'Saving your data...', -1);
  }
}
}

function lsShoppingBagContinueShopping()
{
lsShoppingBagSaveAddressDetailForm('continueshopping');
}