// const
function _ZOrderDynamicWindowInc() { return ++_ZOrderDynamicWindow; }
var _SAPOrderURL                  = 'ssp.festo.com/addtobasket/wrap';
    _SAPBasketDefaultURL          = 'www.festo.com/onlineshop';


// variables
var SPCOrderedPartNo,SPCOrderedQuantity,SPCOrderedQuantityUnit,SPCOrderedDesignation,
    SPCOrderedTimeOut,SPCAfterOrderDialog_Top,SPCOrderedPageType;


// utils
var _TheDoc = null;
function TheDoc() {
  if (!_TheDoc) _TheDoc = document;
  return _TheDoc;
}
function elemById(aId) {
  return TheDoc().getElementById(aId);
}
function valueById(aId) {
  return elemById(aId).value;
}
function getNumberOutOfTagId(aId) {
  return getNumberOutOfTag(elemById(aId));
}
function getNumberOutOfTag(elem) {
  var s,aPos;

  s = elem.innerHTML;
  aPos = s.indexOf('>');
  if (aPos >= 0) s = parseInt(s.substr(aPos+1)); else s = parseInt(s);
  if ( (s.length <= 0) || (/[^0-9]/).test(s) ) return '';
  return s.toString();
}
function getTextOutOfTagId(aId) {
  return getTextOutOfTag(elemById(aId));
}
function getTextOutOfTag(elem) {
  var s,aPos;

  s = elem.innerHTML;
  aPos = s.indexOf('>');
  if (aPos >= 0) s = s.substr(aPos+1); else return s;
  aPos = s.indexOf('<');
  if (aPos >= 0) s = s.substr(0,aPos);
  return s;
}


// order
function SPCOrderURL(aPartNo,aQuantity) {
  return 'http'+(document.location.protocol.toUpperCase() == 'HTTPS:'?'s':'')+ // safer then direct use of 'document.location.protocol'
         '://'+_SAPOrderURL+'?m_1='+aPartNo+'&q_1='+aQuantity;
}
function SPCExternalGET(aID,aURL) {
  var aIFrame;
  aIFrame = elemById(aID);
  aIFrame.src = '';
  SPCOrderedTimeOut = xDKIWaitSilent(30000 /* max 30 secs */,'SPCOrderTimedOut()');
  aIFrame.src = aURL;
}
function SPCOrderExternalGETLoaded() {
  var elem,aIFrame,aDoc,aSAPBasketURL_Elem,aSAPBasketURL;

  elem = elemById('SPCOrderExternalGET');
  if (!SPCOrderedTimeOut) return; // initial call
  if (!xDKIIsWaiting()) return; // canceled
  if (elem.readyState && (elem.readyState != "complete")) return; // not called by onload and not complete
  xDKIUnWait(SPCOrderedTimeOut); SPCOrderedTimeOut = 0;

  aSAPBasketURL = document.location.protocol+'//'+_SAPBasketDefaultURL;
  try {
        aIFrame = document.getElementById('SPCOrderExternalGET');
        aDoc = aIFrame.contentWindow || aIFrame.documentElement;
        if (aDoc) {
           if (aDoc.document) aDoc = aDoc.document;
           aSAPBasketURL_Elem = aDoc.getElementById('xDKIMessageBoxInternal_WK');
           if (aSAPBasketURL_Elem) aSAPBasketURL = aSAPBasketURL_Elem.href;
        }
      }
  catch(e) {} // permission denied
  SPCOrderClose();
  SPCOrderBeforeMessageBox();
  xDKIMessageBox1(TxtInformation,
                  '<span class="non_bold">'+SPCOrderedQuantity+' '+SPCOrderedQuantityUnit+' </span>'+
                  '<span class="bold">'+TxtPartNo+' '+SPCOrderedPartNo+'</span><br />'+
                  '<span class="non_bold">'+SPCOrderedDesignation+'</span><br /><br />'+
                  '<span class="bold">'+TxtOrdered+'</span>',
                  TxtBasket,aSAPBasketURL,TxtOk,xDKIMessageBoxPosition(310),SPCAfterOrderDialog_Top,310,'',
                 _ZOrderDynamicWindowInc(),'_ZOrderDynamicWindowInc()','SPCOrderAfterMessageBox');
  xDKICall('SPCLogging',document.URL,'SPCDatV1',valueById('xDKI_SessionID'),valueById('xDKI_Language'),
           'WantedOperation','LoggingOrder','PageType1','Ordered','PageType2',SPCOrderedPageType,
           'PartNo',SPCOrderedPartNo,'Quantity',SPCOrderedQuantity,'Language',valueById('xDKI_Language'));
}
function SPCOrderTimedOut() {
  xDKIUnWait(SPCOrderedTimeOut); SPCOrderedTimeOut = 0;

  SPCOrderClose();
  SPCOrderBeforeMessageBox();
  if (xDKIExist(elemById('xDKIMessageBox'))) xDKIDynamicMoveableWindow_Close('xDKIMessageBox');
  xDKIMessageBox(TxtInformation,TxtOrderTimedOutMsg,
                 TxtOk,xDKIMessageBoxPosition(300),SPCAfterOrderDialog_Top,300,'',
                 _ZOrderDynamicWindowInc(),'_ZOrderDynamicWindowInc()','SPCOrderAfterMessageBox');
}
function SPCOrderNotAllowed() {
  return valueById('OrderNotAllowed') != ''
}


// offline check
function SPCCheckOffline() {
  if (xDKIExist(elemById('xDKIMessageBox'))) xDKIDynamicMoveableWindow_Close('xDKIMessageBox');
  if (xDKIOffline()) {
     xDKIMessageBoxUrgent('',TxtOffline,TxtOk,xDKIMessageBoxPosition(300),50,300,'',
                          _ZOrderDynamicWindowInc(),'_ZOrderDynamicWindowInc()','','',false);
     return true;
  }
  else return false;
}
