var LIST = 0;

var PARTSEARCH = function()
{
  var wizardSpanProvider;
  var wizardSpanProviderID;
  var wizardCountryCode;

  return {

    timerKeyPress: 0,
    wizardPasteEmotion: 0,
    wizardSPNotice: 0,
    validForm: 0,

    ///////////////////////////////////////////////////////////////////////////////

    dynSubmit: function(s_path, obj) {
      //(obj.formID || obj.formData), obj.loaderID, obj.loaderMSG, obj.resHandler
      this.loader = new cls_loader(obj.loaderID);
      this.loader.loading(obj.loaderMSG);
      this.formID = obj.formID;
      this.resHandler = obj.resHandler;
        if (this.formID) {
          data = $(this.formID).serialize(true);
          data.form_id = this.formID;
        }
      if(obj.formData){data = obj.formData;}
        new Ajax.Request(s_path,
        {
          method: 'post',
          parameters: data,
          onSuccess: function(response) {
            this.loader.testar = 'Andy';
            PARTSEARCH.dynSubmitSuccess(response);
          }.bind(this),
          onComplete: function() {
            if (this.loader.exist) {
              if(this.loader.status == 'loading'){this.loader.failed('Någonting gick fel');}
            }
          }.bind(this)
        }
        );
    },

    ///////////////////////////////////////////////////////////////////////////////

    dynSubmitSuccess: function(response)
    {
      if (response.responseXML) {
        eval(this.resHandler+'(response.responseXML.documentElement, this.loader)');
      } else {
        eval(this.resHandler+'(response.responseJSON, this.loader)');
      }
    },

    ///////////////////////////////////////////////////////////////////////////////

    executeReturn: function(xRoot, loader)
    {
      var xmlRes = new cls_xmlResult(xRoot);
      if(xmlRes.failed){loader.failed('Could not load data');return false;}

        if(xmlRes.statusCode())
        {
          loader.success(xmlRes.statusLoader());
        }
        else
        {
          loader.failed(xmlRes.statusLoader());
        }

      //redirect?
      if(sURL = xmlRes.statusRedirect()){setTimeout(function(){document.location.href = sURL;}, 500);}
    },

    ///////////////////////////////////////////////////////////////////////////////

    subForm: function(fIndex, fLink) {
      document.forms[0].target = '_self';
      document.forms[0].action = '/index.php';
      document.forms[0].index.value = fIndex;
      document.forms[0].link.value = fLink;
      document.forms[0].submit();
    },

    ///////////////////////////////////////////////////////////////////////////////
    
    customSubmit: function(sFormID) {
      $(sFormID).submit();
    },
    
    ///////////////////////////////////////////////////////////////////////////////
    
    customNewSearch: function(sSearchmode, sQuery) {
      switch (parseInt(sSearchmode)) {
        case 2:
          document.location.href = '/?index=default&link=search&searchmode=2&pagesize=25&regnr='+ sQuery;
        break;
        case 3:
          document.location.href = '/?index=default&link=list&searchmode='+ sSearchmode +'&pagesize=25&query='+ sQuery;
        break;
        case 6:
        case 7:
          document.location.href = '/?index=default&link=search&searchmode='+ sSearchmode +'&pagesize=25&query='+ sQuery;
        break;
      }
    },
    
    ///////////////////////////////////////////////////////////////////////////////

    subFormQS: function(fIndex, fLink) {
      myDiv = document.getElementById('submitQS');
      r_input = document.getElementsByTagName('input');
      s_qs = window.location.search;
      s_qs = s_qs.substring(1);
      var arr1 = new Array();
      arr1 = s_qs.split("&");
      var arr2 = new Array();

        for(i=0;i<arr1.length;i++) {
          arr2[i] = arr1[i].toString().substring(arr1[i].toString().indexOf("=") + 1);
          arr1[i] = arr1[i].toString().substring(0,arr1[i].toString().indexOf("="));
        }

        for(i=0;i<arr1.length;i++) {
          b_found = false;
          for(j=0;j<r_input.length;j++){if(unescape(arr1[i]) == r_input[j].name){b_found = true;}}
          if (!b_found) {
            var eInput = document.createElement('input');
            eInput.setAttribute('type', 'hidden');
            eInput.setAttribute('name', unescape(arr1[i]));
            //set page to 1
            if (unescape(arr1[i]) != 'page'){eInput.setAttribute('value', unescape(arr2[i]));}else{eInput.setAttribute('value', 1);}
            //>
            myDiv.appendChild(eInput);
          }
        }
      PARTSEARCH.subForm(fIndex, fLink);
    },

    ///////////////////////////////////////////////////////////////////////////////

    onEnterKey: function(myEvent, myBtn) {
      if (myEvent.keyCode == 13) {
        objName = document.forms[0].elements[myBtn];
          if (typeof objName == 'object') {
            objName.onclick();
          } else {
            objID = document.getElementById(myBtn);
            if (isObject(objID)) objID.onclick();
          }
      }
    },

    ///////////////////////////////////////////////////////////////////////////////

    startpageSearchmode: function(index, company_id, group_id, query) {
      if (!query) return false;
      iSM = null;
      cLink = { 3: 'list', 6: 'search', 7: 'search' };
      $A(document.forms[0].searchmode).each(function(item){if (item.checked) iSM = item.value;});
      sURL = '/?index='+ index +'&company_id='+ company_id +'&group_id='+ group_id +'&link='+ cLink[iSM] +'&searchmode='+ iSM +'&query='+ query;
      document.location.href = sURL;
    },

    ///////////////////////////////////////////////////////////////////////////////

    catalougePartCode: function(action, element) {
      parameters = document.forms[0].catalouge_query_string.value.toQueryParams();
        switch(action) {
          case 'parttype':
            PARTSEARCH.catalougePartCodeDOMParttype(element);
            parameters.type = 'parttype';
          break;
          case 'query':
            parameters.type = 'query';
            parameters.ptextsearch = element.value;
          break;
        }
      parameters = new Hash(parameters);

      bFound = false;
      cPTID = $('fbt').getInputs('checkbox', 'parttype_id[]');
      cPTID.each(function(item) { if (item.checked==true) { parameters.set('parttype_id['+ item.value +']', item.value); bFound = true; } });
      if (!$('divCatalougePartCodeSearchID')) bFound = true;
      if (!bFound) { $('div_pc1_error').style.display = 'block'; return false; } else { $('div_pc1_error').style.display = 'none'; }

      cLoader = new cls_loader('divResultID');
      cLoader.loading();
      new Ajax.Request('/global/web/partsearch.v2/scripts/json/default/catalouge.part_code.json.php', {
        method: 'get',
        parameters: parameters,
        onSuccess: function(transport) { PARTSEARCH.catalougePartCodeDOMList(transport.responseJSON); },
        onComplete: function() { cLoader.holder.hide(); }
      });
    },

    ///////////////////////////////////////////////////////////////////////////////

    catalougePartCodeDOMParttype: function(element) {
      i_ptid = element.value;
      eSpan = $('circle_'+ i_ptid);
        if (element.checked) {
          eSpan.className = eSpan.className.replace('bgCircleParttype_x', 'bgCircleParttype_'+ i_ptid);
        } else {
          eSpan.className = eSpan.className.replace('bgCircleParttype_'+ i_ptid, 'bgCircleParttype_x');
        }
      b_found = false;
    },

    ///////////////////////////////////////////////////////////////////////////////

    catalougePartCodeDOMList: function(response) {
      eUL = $('ulCatalougePC1ID');
      eUL.innerHTML = '';

      if (!response.status && response.message) { eUL.innerHTML = '<li>'+ response.message +'</li>'; return false; }

      response.result.each(function(item) {
        eLI = new Element('li', { id: 'link_'+item.pc1, style: 'cursor: pointer; ' }).addClassName('bdrSldBtm');

        eLI.onmouseover = function() {
          PARTSEARCH.catalougePC1DOMImage(this, { pc1: item.pc1, pc: item.pc, type: item.type });
        }

        eAnchor = new Element('a', { href: 'javascript:void(0);', style: 'text-deocration: none; ' }).addClassName('invert');
        if (!item.exist) eAnchor.addClassName('noExist color1Med');
        eAnchor.appendChild(document.createTextNode(item.text));
        eLI.appendChild(eAnchor);
        eUL.appendChild(eLI);
      });
    },

    ///////////////////////////////////////////////////////////////////////////////

    catalougePC1DOMImage: function(element, options) {
      commonFunction = {
        onclick: function() {
          if (this.tagName == 'LI') this.childNodes[0].href = 'javascript:void(0)';//remove href link
          sQPT = ''; bAll = true;
          sLocation = this.sURL +'&pc1='+ options.pc1;
            if (options.pc) {
              sLocation = sLocation.replace('s14', 's15');
              sLocation += '&pc[]='+ options.pc;
            }
          cPTID = $('fbt').getInputs('checkbox', 'parttype_id[]');
          cPTID.each(function(item) { if (item.checked==true) { sQPT += '&parttype_id[]='+ item.value; } else { bAll = false; } });
          if (!bAll) sLocation += sQPT;
          document.location.href = sLocation;
        },
        onmouseover: function() {
          this.eHolder.innerHTML = '';
          this.eHolder.appendChild(imgCatalougePC1[options.pc1]);
          this.eImage.toggleClassName('catImageMark');
          if (this.eLink) this.eLink.toggleClassName('catTextMark');
        },
        onmouseout: function() {
          this.eHolder.innerHTML = '';
          this.eHolder.appendChild(imgCatalougePC1[0]);
          this.eImage.toggleClassName('catImageMark');
          if (this.eLink) this.eLink.toggleClassName('catTextMark');
        },
        eHolder: $('divCatalougePC1ImageID'),
        eLink: $('link_'+ options.pc1),
        eImage: $('image_'+ options.pc1),
        sURL: document.forms[0].catalouge_query_string.value
      };
      Object.extend(element, commonFunction);
      element.onmouseover();
    },

    ///////////////////////////////////////////////////////////////////////////////

    getZipPostalCity: function(iZip, iCountryID, sName)
    {
      var eHolder = $('spanZipID');
      var eInput = eHolder.getElementsByTagName('input')[0];

      if(!iZip || !iCountryID || !sName){return false;}

      new Ajax.Request('/global/web/fbt.v2/script/company/xml/get_zip.php',
      {
        method: 'get',
        parameters: {zip: iZip, country_id: iCountryID},
        onSuccess: function(response)
        {
          xRoot = response.responseXML.documentElement;
          eStatus = xRoot.getElementsByTagName('status')[0];
          if(parseInt(eStatus.getAttribute('code')) == 1)
          {
            eResult = xRoot.getElementsByTagName('result')[0];
              if(eResult.hasChildNodes())
              {
                if(eResult.childNodes.length > 1)
                {
                  //multiple
                  eHolder.removeChildren();
                  var eNewSelect = document.createElement('select');
                  eNewSelect.setAttribute('name', sName);

                    for(var i=0; i<eResult.childNodes.length;i++)
                    {
                      var eZip = eResult.childNodes[i];
                      var eNewOption = document.createElement('option');
                      var eNewText = document.createTextNode(eZip.firstChild.firstChild.nodeValue +', '+ eZip.childNodes[1].firstChild.nodeValue);
                      eNewOption.setAttribute('value', eZip.firstChild.firstChild.nodeValue);
                      eNewOption.appendChild(eNewText);
                      eNewSelect.appendChild(eNewOption);
                    }

                  eHolder.appendChild(eNewSelect);

                }
                else
                {
                  //single
                    if(!eInput)
                    {
                      eHolder.removeChildren();
                      var eNewInput = document.createElement('input');
                      eNewInput.setAttribute('name', sName);
                      eNewInput.setAttribute('title', 'Postort');
                      eNewInput.setAttribute('alt', '1:0');
                      eHolder.appendChild(eNewInput);
                      eInput = eNewInput;
                      eInput.className = 'text nobg';
                    }
                  ePostalcity = eResult.getElementsByTagName('postalcity')[0];
                  eInput.value = ePostalcity.firstChild.nodeValue;
                }
              }
          }
          else
          {
              if(!eInput)
              {
                eHolder.removeChildren();
                var eNewInput = document.createElement('input');
                eNewInput.setAttribute('name', sName);
                eNewInput.setAttribute('title', 'Postort');
                eNewInput.setAttribute('alt', '1:0');
                eHolder.appendChild(eNewInput);
                eInput = eNewInput;
              }
            eInput.className = 'text nobg';
            eInput.value = '';
          }
        }
      }
      );
    },

    ///////////////////////////////////////////////////////////////////////////////

    cartItemAdd: function(iPostID)
    {
      var eCart = $('ulCartID');
      var eTBody = $('tbodyCartID');
      var eSmallCart = $('divSmallCart'+ iPostID +'ID');
      var eTRLoader = $('trLoaderID');
      var eBtnInquiry = $('aButtonInquiryID');
      var eBtnOrder = $('aButtonOrderID');

      eBtnInquiry.hide();
      eBtnOrder.hide();

      if(eSmallCart){eSmallCart.style.display = 'none';}
      eCart.style.display = 'inline-block';

        if(!eTBody)
        {
          var eNewTBody = document.createElement('tbody');
          eNewTBody.setAttribute('id', 'tbodyCartID');
          $('tableCartID').appendChild(eNewTBody);
          eTBody = eNewTBody;
        }

      if(eTBody.childNodes.length){eTRLoader.className = 'rndPadLftSml rndPadRgtSml bdrDTop bdrClrGray';}else{eTRLoader.className = '';}
      eTRLoader.show();

      //>
      PARTSEARCH.dynSubmit('/global/web/execute/partsearch.v2/execute.php', {formData: {execute: 'cart_item_load', action: 'add', post_id: iPostID}, loaderID: 'divResultID', loaderMSG: '', resHandler: 'PARTSEARCH.cartItemResultLoad'})
      //>

    },

    ///////////////////////////////////////////////////////////////////////////////

    cartItemRemove: function(iPostID)
    {
      var eRow = $('trCart'+iPostID+'ID');
      var eTBody = $('tbodyCartID');
      var eTRLoader = $('trLoaderID');
      var eBtnInquiry = $('aButtonInquiryID');
      var eBtnOrder = $('aButtonOrderID');

      eBtnInquiry.hide();
      eBtnOrder.hide();

      eRow.remove();

      if(eTBody.childNodes.length){eTRLoader.className = 'rndPadLftSml rndPadRgtSml bdrDTop bdrClrGray';}else{eTRLoader.className = 'rndPadLftSml rndPadRgtSml';}
      eTRLoader.show();

      //>
      PARTSEARCH.dynSubmit('/global/web/execute/partsearch.v2/execute.php', {formData: {execute: 'cart_item_load', action: 'remove', post_id: iPostID}, loaderID: 'divResultID', loaderMSG: '', resHandler: 'PARTSEARCH.cartItemResultLoad'})
      //>
    },

    ///////////////////////////////////////////////////////////////////////////////

    cartItemResultLoad: function(xRoot, loader)
    {
      var xmlRes = new cls_xmlResult(xRoot);
      var eTBody = $('tbodyCartID');
      var eCart = $('ulCartID');
      var eBtnInquiry = $('aButtonInquiryID');
      var eBtnOrder = $('aButtonOrderID');

      eBtnInquiry.hide();
      eBtnOrder.hide();

      if(xmlRes.failed){loader.failed('Could not load data');return false;}

        if(!eTBody)
        {
          var eNewTBody = document.createElement('tbody');
          eNewTBody.setAttribute('id', 'tbodyCartID');
          $('tableCartID').appendChild(eNewTBody);
          eTBody = eNewTBody;
        }

      $('tbodyCartID').removeChildren();

        if(xmlRes.statusCode())
        {
          $('trLoaderID').hide();

          var eResult = xmlRes.getResult();
          var eList = eResult.getElementsByTagName('list')[0];

            if(eRemove = eResult.getElementsByTagName('remove')[0])
            {
              var eCartAdd = $('divSmallCart'+ eRemove.firstChild.nodeValue +'ID');
              if(eCartAdd){eCartAdd.show();}
            }

            if(eList.childNodes.length)
            {
              //show / hide company buttons>
              var iStatusInquiry = parseInt(eResult.getElementsByTagName('inquiry')[0].getAttribute('status'));
              var iStatusOrder = parseInt(eResult.getElementsByTagName('order')[0].getAttribute('status'));

                if(iStatusInquiry)
                {
                  var iLoc = eBtnInquiry.href.indexOf('post_id=');
                  eBtnInquiry.href = eBtnInquiry.href.substr(0, iLoc);
                  eBtnInquiry.href += 'post_id='+ eResult.getElementsByTagName('inquiry')[0].firstChild.nodeValue;
                  eBtnInquiry.show();
                }
                if(iStatusOrder)
                {
                  var iLoc = eBtnOrder.href.indexOf('post_id=');
                  eBtnOrder.href = eBtnOrder.href.substr(0, iLoc);
                  eBtnOrder.href += 'post_id='+ eResult.getElementsByTagName('order')[0].firstChild.nodeValue;
                  eBtnOrder.show();
                }
              if(!iStatusInquiry && !iStatusOrder){$('divErrorID').show();}else{$('divErrorID').hide();}
              //>

                for(var i=0;i<eList.childNodes.length;i++)
                {
                  var sPostid = eList.getElementsByTagName('postid')[i].firstChild.nodeValue;
                  var sPartitem = eList.getElementsByTagName('partitem')[i].firstChild.nodeValue;
                  var sArticle = eList.getElementsByTagName('article')[i].firstChild.nodeValue;
                  var sCost = eList.getElementsByTagName('cost')[i].firstChild.nodeValue;

                  //create row>
                  PARTSEARCH.cartitemNewRow(sPostid, sPartitem, sArticle, sCost);
                  //>
                }
            }
            else
            {
              eCart.hide();
            }
        }
        else
        {
          loader.failed(xmlRes.statusLoader('ajdå'));
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    cartitemNewRow: function(iPostID, sPartitem, sArticle, sCost)
    {
      var eTBody = $('tbodyCartID');
      var eNewTR = document.createElement('tr');
      eNewTR.setAttribute('id', 'trCart'+ iPostID +'ID');
      if(eTBody.childNodes.length){eNewTR.className = 'rndPadLftSml rndPadRgtSml bdrDTop bdrClrGray';}else{eNewTR.className = 'rndPadLftSml rndPadRgtSml';}

      var eNewTDAction = document.createElement('td');
      var eNewIMGAction = document.createElement('img');
      eNewIMGAction.setAttribute('src', '/global/images/fbt.v2/ico/action_delete_small_16x16.png');
      eNewIMGAction.setAttribute('alt', 'remove');
      eNewIMGAction.setAttribute('style', 'cursor: pointer; height: 16px; width: 16px; vertical-align: middle; ');
      eNewIMGAction.onclick = function()
      {
        PARTSEARCH.cartItemRemove(iPostID);
      }
      eNewTDAction.appendChild(eNewIMGAction);

      var eNewTDPartitem = document.createElement('td');
      var eNewPartitemText = document.createTextNode(sPartitem);
      eNewTDPartitem.className = 'fntBld';
      eNewTDPartitem.appendChild(eNewPartitemText);

      var eNewTDArticle = document.createElement('td');
      var eNewArticleText = document.createTextNode(sArticle);
      eNewTDArticle.setAttribute('style', 'padding-left: 5px; ');
      eNewTDArticle.appendChild(eNewArticleText);

      var eNewTDCost = document.createElement('td');
      var eNewCostText = document.createTextNode(sCost);
      eNewTDCost.className = 'fntRgt fntClrRed';
      eNewTDCost.setAttribute('style', 'padding-left: 5px; ');
      eNewTDCost.appendChild(eNewCostText);
      //>

      eNewTR.appendChild(eNewTDAction);
      eNewTR.appendChild(eNewTDPartitem);
      eNewTR.appendChild(eNewTDArticle);
      eNewTR.appendChild(eNewTDCost);

      eTBody.appendChild(eNewTR);
    },

    ///////////////////////////////////////////////////////////////////////////////

    cartItemLoadBasket: function(iCompanyID)
    {
      PARTSEARCH.dynSubmit('/global/web/execute/partsearch.v2/execute.php', {formData: {execute: 'cart_item_load', company_id: iCompanyID}, loaderID: 'divResultID', loaderMSG: '', resHandler: 'PARTSEARCH.cartItemResultLoad'})
    },

    ///////////////////////////////////////////////////////////////////////////////

    searchmodeRegnrInput: function(e, o) {
      o.value = o.value.toUpperCase();

      var r_reg = new Array();

      r_reg[1] = '[a-zA-Z]{1}';
      r_reg[2] = '[a-zA-Z]{2}';
      r_reg[3] = '[a-zA-Z]{3}';
      r_reg[4] = '([a-zA-Z]{3}[0-9]{1})';
      r_reg[5] = '([a-zA-Z]{3}[0-9]{2})';
      r_reg[6] = '([a-zA-Z]{3}[0-9]{3})';
      s_test = new RegExp(r_reg[o.value.length]);

        if (s_test.test(o.value)) {
          o.value=o.value.toUpperCase().replace(/([^0-9A-Z])/g,"");
        } else {
          o.value = o.value.substring(0,((o.value.length)-1));
          e.returnValue = false;
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    partItemSave: function(post_id, element) {
      eSpan = $('partsearch_saved_parts_count');
      //new Ajax.Request('/global/web/execute/partsearch.v2/execute.php', {
      new Ajax.Request('/index.php', {
        method: 'get',
        parameters: $H({execute: 'saved_parts_add', post_id: post_id, output: 'json'}),
        onSuccess: function(transport) {
          eSpan.innerHTML = transport.responseJSON.result;
          element.src='/global/images/layout/partsearch.v2/ico/ico_folder_add_disabled.png';
        }
      });
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardGetPhoneLabel: function(iCountryID)
    {
      rCountry = new Array();
      rCountry[056] = '(+32)';//Belgien
      rCountry[208] = '(+45)';//Danmark
      rCountry[233] = '(+372)';//Estland
      rCountry[246] = '(+358)';//Finland
      rCountry[250] = '(+33)';//Frankrike
      rCountry[276] = '(+49)';//Tyskland
      rCountry[352] = '(+354)';//Island
      rCountry[364] = '(+98)';//Iran
      rCountry[380] = '(+39)';//Italien
      rCountry[528] = '(+31)';//Holland
      rCountry[578] = '(+47)';//Norge
      rCountry[643] = '(+7)';//Ryssland
      rCountry[724] = '(+34)';//Spanien
      rCountry[752] = '(+46)';//Sverige (default)
      rCountry[826] = '(+44)';//England
      rCountry[840] = '(+1)';//USA

      $('spanPhoneID').innerHTML = rCountry[iCountryID];
      if($('spanCellularID')){$('spanCellularID').innerHTML = rCountry[iCountryID];}

    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardCheckSubmitInfo: function(iWizardStep)
    {
      switch(iWizardStep)
      {
        case 1://privat
          document.forms[0].execute.value = 'register_user';
            if(PARTSEARCH.wizardCheckFormError())
            {
              PARTSEARCH.wizardCheckBusyEmail(1, document.forms[0].user_email)
            }
        break;

        case 2://company
          document.forms[0].execute.value = 'register_company';
            if(document.forms[0].company_user[0].checked)
            {
              PARTSEARCH.wizardSubmitInfo();
              return;
            }
            if(PARTSEARCH.wizardCheckFormError())
            {
              PARTSEARCH.wizardCheckBusyEmail(2, document.forms[0].company_email)
            }
        break;

        case 3://order
          document.forms[0].execute.value = 'order';
            if(PARTSEARCH.wizardCheckFormError())
            {
              PARTSEARCH.wizardSubmitInfo();
            }
        break;

        case 4://shippingprovider
          document.forms[0].execute.value = 'shippingprovider';
          PARTSEARCH.wizardSubmitInfo();
        break;

        case 5://paymentprovider
          document.forms[0].execute.value = 'paymentprovider';
          PARTSEARCH.wizardSubmitInfo();
        break;

        case 6://request
          document.forms[0].execute.value = 'request';
            if(PARTSEARCH.wizardCheckFormError())
            {
              PARTSEARCH.wizardSubmitInfo();
            }
        break;

        case 7://intranet
          document.forms[0].execute.value = 'intranet';
            if(PARTSEARCH.wizardCheckFormError())
            {
              PARTSEARCH.wizardSubmitInfo();
            }
        break;
      }
      //>
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardCheckFormError: function()
    {
      //ALT = [1] = Must, [2] = Numeric

      bError = false;
      var eHolder = $('divFormID');
      var eErrorHolder = $('divBoxErrorID');
      var eUL = $('ulErrorID');
      eErrorHolder.hide();
      eUL.removeChildren();


      //eSelect = eHolder.getElementsByTagName('select');
      //eText = eHolder.getElementsByTagName('input');
      //var eInput = [].concat(Array.prototype.slice.call(eSelect), Array.prototype.slice.call(eText));

      var eInput = $('fbt').getElements();

        for(var i=0;i<eInput.length;i++)
        {
          var eItem = eInput[i];

          if(sAlt = eItem.getAttribute('alt'))
          {
            rAlt = sAlt.split(':');
            eItem.className = 'text';

            //[Must]>
            if(parseInt(rAlt[0]))
            {
              if(!eItem.value.length)
              {
                bError = true;
                eItem.className += ' error_text';
                var eLI = document.createElement('li');
                var eSpan = document.createElement('span');
                eSpan.className = 'fntBld';
                eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                eLI.appendChild(eSpan);
                eLI.appendChild(document.createTextNode(' '+ LANGUAGE.label('måste fyllas i')));
                eUL.appendChild(eLI);
              }
            }
            //>

            //[Numeric]>
            if(parseInt(rAlt[1]))
            {
              if(eItem.value.length)
              {
                if(!eItem.value.match('^[0-9]+$'))
                {
                  bError = true;
                  eItem.className += ' error_text';
                  var eLI = document.createElement('li');
                  var eSpan = document.createElement('span');
                  eSpan.className = 'fntBld';
                  eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                  eLI.appendChild(eSpan);
                  eLI.appendChild(document.createTextNode(' '+ LANGUAGE.label('får endast vara siffror')));
                  eUL.appendChild(eLI);
                }
              }
            }
            //>

            //[Special]>
            switch(parseInt(rAlt[2]))
            {
              case 1://email
                if(eItem.value.length && !eItem.value.match('^[a-zA-Z0-9\.\_\-]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}$'))
                {
                  bError = true;
                  eItem.className += ' error_text';
                  var eLI = document.createElement('li');
                  var eSpan = document.createElement('span');
                  eSpan.className = 'fntBld';
                  eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                  eLI.appendChild(eSpan);
                  eLI.appendChild(document.createTextNode(' '+ LANGUAGE.label('är inte ifyllt korrekt')));
                  eUL.appendChild(eLI);
                }
              break;

              case 2://phone
                var eArea = document.forms[0].user_phone_areacode;
                var eSubs = document.forms[0].user_phone_subscriptno;
                var eCell = document.forms[0].user_cellular;

                  if(eCell.value)
                  {
                    if(eCell.value.length < 10)
                    {
                      bError = true;
                      eCell.className += ' error_text';
                      var eLI = document.createElement('li');
                      var eSpan = document.createElement('span');
                      eSpan.className = 'fntBld';
                      eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                      eLI.appendChild(eSpan);
                      eLI.appendChild(document.createTextNode(' - '+ LANGUAGE.label('Fyll i ett korrekt mobilnummer, eller lämna blankt')));
                      eUL.appendChild(eLI);
                    }
                  }
                  if(!(eArea.value && eSubs.value) && !eCell.value)
                  {
                    bError = true;
                    document.forms[0].user_phone_areacode.className += ' error_text';
                    document.forms[0].user_phone_subscriptno.className += ' error_text';
                    document.forms[0].user_cellular.className += ' error_text';
                    var eLI = document.createElement('li');
                    var eSpan = document.createElement('span');
                    eSpan.className = 'fntBld';
                    eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                    eLI.appendChild(eSpan);
                    eLI.appendChild(document.createTextNode(' - '+ LANGUAGE.label('Ni måste fylla i minst ett telefonnummer')));
                    eUL.appendChild(eLI);
                  }
              break;

              case 3://password
                if(document.forms[0].user_pwd.value != document.forms[0].user_pwdcomp.value)
                {
                  bError = true;
                  eItem.className += ' error_text';
                  var eLI = document.createElement('li');
                  var eSpan = document.createElement('span');
                  eSpan.className = 'fntBld';
                  eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                  eLI.appendChild(eSpan);
                  eLI.appendChild(document.createTextNode(' - '+ LANGUAGE.label('Lösenorden matchar inte')));
                  eUL.appendChild(eLI);
                }
              break;

              case 4://modelyear
                if(eItem.value.length && !eItem.value.match('^((19|20)[0-9]{2})$'))
                {
                  bError = true;
                  eItem.className += ' error_text';
                  var eLI = document.createElement('li');
                  var eSpan = document.createElement('span');
                  eSpan.className = 'fntBld';
                  eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                  eLI.appendChild(eSpan);
                  eLI.appendChild(document.createTextNode(' '+ LANGUAGE.label('är inte ifyllt korrekt')));
                  eUL.appendChild(eLI);
                }
              break;

              case 5://vat-number
                if(eItem.value.length && !eItem.value.match('^([A-Z]{2}[0-9]{8,})$'))
                {
                  bError = true;
                  eItem.className += ' error_text';
                  var eLI = document.createElement('li');
                  var eSpan = document.createElement('span');
                  eSpan.className = 'fntBld';
                  eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                  eLI.appendChild(eSpan);
                  eLI.appendChild(document.createTextNode(' '+ LANGUAGE.label('är inte ifyllt korrekt')));
                  eUL.appendChild(eLI);
                }
              break;

              case 6://verify email
                if(document.forms[0].user_email.value != document.forms[0].user_email_verify.value)
                {
                  bError = true;
                  eItem.className += ' error_text';
                  var eLI = document.createElement('li');
                  var eSpan = document.createElement('span');
                  eSpan.className = 'fntBld';
                  eSpan.appendChild(document.createTextNode(eItem.getAttribute('title')));
                  eLI.appendChild(eSpan);
                  eLI.appendChild(document.createTextNode(' - '+ LANGUAGE.label('E-posten matchar inte')));
                  eUL.appendChild(eLI);
                }
              break;

            }
            //>
          }
        }

        if(bError)
        {
          eErrorHolder.show();
          return false;
        }
        else
        {
          return true;
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardCheckBusyEmail: function(iType, oEmail)
    {
      oQuery = window.location.search.toQueryParams();
      new Ajax.Request('/global/web/fbt.v2/script/user/xml/get_email.php',
      {
        method: 'get',
        parameters: {u: iType, q: oEmail.value, token: oQuery.token},
        onSuccess: function(response)
        {
          xRoot = response.responseXML.documentElement;
          var xmlRes = new cls_xmlResult(xRoot);
            if(xmlRes.statusCode())
            {
              var eErrorHolder = $('divBoxErrorID');
              var eUL = $('ulErrorID');
              eErrorHolder.hide();
              eUL.removeChildren();

              oEmail.className += ' error_text';
              var eLI = document.createElement('li');
              var eSpan = document.createElement('span');
              eSpan.className = 'fntBld';
              eSpan.appendChild(document.createTextNode(oEmail.getAttribute('title')));
              eLI.appendChild(eSpan);
              eLI.appendChild(document.createTextNode(' '+ LANGUAGE.label('är upptagen')));
              eUL.appendChild(eLI);

              eErrorHolder.show();
              return;
            }
          PARTSEARCH.wizardSubmitInfo();
        }
      }
      );
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardSubmitInfo: function()
    {
      PARTSEARCH.dynSubmit('/global/web/execute/partsearch.v2/wizard.execute.php', {formID: 'fbt', loaderID: 'divResultID', loaderMSG: LANGUAGE.label('Skickar information'), resHandler: 'PARTSEARCH.executeReturn'});
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardFocusCompanyCNo: function()
    {
      var eHolder = $('divFormID');
      eTR = eHolder.getElementsByTagName('tr');
        for(var i=0;i<eTR.length;i++)
        {
          if(eTR[i].className == 'hideMe1'){eTR[i].className = 'hideMe1 trHidden1';}
          if(eTR[i].className == 'hideMe2'){eTR[i].className = 'hideMe2 trHidden2';}
        }
      document.forms[0].register_company_id.value = '';
      document.forms[0].company_user[0].checked = false;
      document.forms[0].company_branch_id.value = '';
      $('inputWizardNextID').style.visibility = 'hidden';
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardSetCompanyOrgData: function(iCountryID, iOrgNo)
    {
      var eHolder = $('divFormID');

      document.forms[0].register_company_id.value = '';
      document.forms[0].company_user[0].checked = false;
      $('inputWizardNextID').style.visibility = 'hidden';

      eTR = eHolder.getElementsByTagName('tr');

        for(var i=0;i<eTR.length;i++)
        {
          if(eTR[i].className == 'hideMe1'){eTR[i].className = 'hideMe1 trHidden1';}
          if(eTR[i].className == 'hideMe2'){eTR[i].className = 'hideMe2 trHidden2';}
        }

      if(!iOrgNo)
      {
        document.forms[0].company_cno.className += ' error_text';
        document.forms[0].company_branch_id.value = '';
        return;
      }

      if(iCountryID != 752)
      {
        for(var i=0;i<eTR.length;i++){if(eTR[i].className == 'hideMe1 trHidden1'){eTR[i].className = 'hideMe1';}}
        $('inputWizardNextID').style.visibility = 'visible';
        return false;
      }
      else
      {
        new Ajax.Request('/global/web/fbt.v2/script/company/xml/get_orgno.php',
        {
          method: 'get',
          parameters: {q: iOrgNo},
          onSuccess: function(response)
          {
            if(xRoot = response.responseXML.documentElement)
            {
              var xmlRes = new cls_xmlResult(xRoot);
                if(xmlRes.statusCode())
                {
                  eResult = xmlRes.getResult();

                    if(!eResult.getElementsByTagName('company')[0].getAttribute('id'))
                    {
                      //[new company]>
                      sZip = (eResult.getElementsByTagName('zip')[0].firstChild) ? eResult.getElementsByTagName('zip')[0].firstChild.nodeValue : '';//not in cdata...
                      document.forms[0].company_name.value = eResult.getElementsByTagName('name')[0].firstChild.nodeValue;
                      document.forms[0].company_address.value = eResult.getElementsByTagName('street')[0].firstChild.nodeValue;
                      document.forms[0].company_zip.value = sZip;
                      document.forms[0].company_postalcity.value = eResult.getElementsByTagName('postalcity')[0].firstChild.nodeValue;

                      for(var i=0;i<eTR.length;i++){if(eTR[i].className == 'hideMe1 trHidden1'){eTR[i].className = 'hideMe1';}}
                      $('inputWizardNextID').style.visibility = 'visible';
                      //>
                    }
                    else
                    {
                      //[user @ company]>

                      document.forms[0].register_company_id.value = eResult.getElementsByTagName('company')[0].getAttribute('id');

                      var sText = '<b>'+ eResult.getElementsByTagName('name')[0].firstChild.nodeValue +'</b>';
                      sText += '<br />'+ eResult.getElementsByTagName('street')[0].firstChild.nodeValue;
                      sText += '<br />'+ eResult.getElementsByTagName('zip')[0].firstChild.nodeValue +' '+ eResult.getElementsByTagName('postalcity')[0].firstChild.nodeValue;

                      eBox = $('divCompanyExistID');
                      eBox.innerHTML = sText;

                      for(var i=0;i<eTR.length;i++){if(eTR[i].className == 'hideMe2 trHidden2'){eTR[i].className = 'hideMe2';}}
                      //>
                    }


                }
                else
                {
                  for(var i=0;i<eTR.length;i++){if(eTR[i].className == 'hideMe1 trHidden1'){eTR[i].className = 'hideMe1';}}
                  $('inputWizardNextID').style.visibility = 'visible';
                }
            }
          }
        }
        );
      }
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardShippingProviderNext: function(oElement, iSPID, sPartClass, sToken)
    {
      oElement.className = 'bdrDTop bdrClrGray';

      var eSpan = oElement.firstChild.firstChild;
      eSpan.className = 'provider_16 loading_16';

      new Ajax.Updater('divShippingProviderID', '/global/web/partsearch.v2/scripts/dynamic/default/wizard_provider.php',
      {
        method: 'post',
        parameters: { shippingprovider_id: iSPID, partclass: sPartClass, token: sToken },
        onComplete: function() {
          eSpan.className = 'provider_16 shipping'+ iSPID +'_16';
          $('tableShippingProviderID').hide();
          $('divShippingProviderID').show();
            switch(parseInt(iSPID)) {
              case 3://Posten
                $('inputNextID').hide();
                $('divStartHereID').onmouseover();
                $('divStartHereID').onclick();
              break;
              case 4://DHL ServicePoint
                PARTSEARCH.dynSubmit('/global/web/partsearch.v2/scripts/xml/get_servicepoint.php',
                {
                  formData: { token: sToken },
                  loaderID: 'divResultDHLID',
                  loaderMSG: 'Hämtar utlämningsställen',
                  resHandler: 'PARTSEARCH.wizardDHLServicePoint'
                });
              break;

              default:
                $('inputNextID').show();
              break;
            }
        }
      });
    },
    
    ///////////////////////////////////////////////////////////////////////////////
    
    wizardShippingProviderNotice: function(element, option) {
      extendElement = {
        onclick: function() {
          this.focus();
          this.show(this.option.notice_type_id);
          this.collection.notice.value = this.option.notice_type_id;
            if (this.option.notice_type_id == 1) {
              if (this.collection.cellular.value.length==10) { this.collection.next.show(); } else { this.collection.next.hide(); }
            } else {
              this.collection.next.show();
            }
        },
        focus: function() {
          if (PARTSEARCH.wizardSPNotice) PARTSEARCH.wizardSPNotice.blur();
          this.removeClassName('bgColor6');
          this.addClassName('bgColor7');
          PARTSEARCH.wizardSPNotice = this;
        },
        blur: function() {
          PARTSEARCH.wizardSPNotice = 0;
          this.removeClassName('bgColor7');
          this.addClassName('bgColor6');
          this.hide(this.option.notice_type_id);
        },
        show: function(what) {
          this.collection[what].show();
        },
        hide: function(what) {
          this.collection[what].hide();
        },
        onmouseover: function() { },
        option: option,
        collection: { 1: $('divSMSID'), 2: $('divBrevID'), notice: $('inputNoticeID'), next: $('inputNextID'), cellular: $('inputUserCellularID') }
      }
      Object.extend(element, extendElement);
    },

    ///////////////////////////////////////////////////////////////////////////////

    //wizardPaymentProviderNext: function(oElement, iPPID, iPaymentCost, iVAT, sPartClass, sCheckSum, sToken)
    wizardPaymentProviderNext: function(oElement, iPPID, iPaymentCost, sPartClass, sCheckSum, sToken)
    {
      oElement.className = 'bdrDTop bdrClrGray';

        //[reset providers]>
        if(PARTSEARCH.wizardSpanProvider){PARTSEARCH.wizardSpanProvider.className = 'provider_16 payment_'+ PARTSEARCH.wizardSpanProviderID +'_16';}
        //>

        switch(iPPID) {
          case 8://faktura
          case 13://MotFaktura
            var eSpan = oElement.firstChild.firstChild;
            eSpan.className = 'provider_16 loading_16';

            new Ajax.Updater('divPaymentProviderID', '/global/web/partsearch.v2/scripts/dynamic/default/wizard_provider.php', {
              method: 'post',
              parameters: { paymentprovider_id: iPPID, partclass: sPartClass, token: sToken },
              onComplete: function() {
                eSpan.className = 'provider_16 payment'+ iPPID +'_16';
                $('tablePaymentProviderID').hide();
                $('divPaymentProviderID').show();
                $('inputNext2ID').hide();
              }
            });
          break;

          default:
            var eSpan = oElement.firstChild.firstChild;
            eSpan.className = 'provider_16 loading_16';

            var oData = new Object();
            oData.execute = 'paymentprovider';
            oData.paymentprovider_id = iPPID;
            oData.paymentcost = iPaymentCost;
            //oData.vat = iVAT;
            oData.partclass = sPartClass;
            oData.checkval = sCheckSum;
            oData.token = sToken;

            new Ajax.Request('/global/web/execute/partsearch.v2/wizard.execute.php',
            {
              method: 'post',
              parameters: oData,
              onSuccess: function(response)
              {
                //[save changes]>
                PARTSEARCH.wizardSpanProvider = eSpan;
                PARTSEARCH.wizardSpanProviderID = iPPID;
                //>

                var xmlRes = new cls_xmlResult(response.responseXML.documentElement);
                  if(!xmlRes.failed)
                  {
                    if(xmlRes.statusCode())
                    {
                      eSpan.className = 'provider_16 valid_16';
                      $('inputNext2ID').show();
                    }
                    else
                    {
                      eSpan.className = 'provider_16 error_16';
                    }
                  }
                  else
                  {
                    eSpan.className = 'provider_16 error_16';
                  }
              }
            });
          break;
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardProviderBack: function(sProvider)
    {
      $('div'+ sProvider +'ProviderID').hide();
      $('table'+ sProvider +'ProviderID').show();
      $('inputNextID').hide();
    },

    ///////////////////////////////////////////////////////////////////////////////
    
    wizardPaymentFortusCheckPNo: function(pno, country, token) {
      regexp = new RegExp(/^([0-9]{6}-[0-9]{4})$/);
      collection = { valid: $('divFortusValidID'), error: $('divFortusErrorID'), next: $('inputNextID') };
      collection.valid.hide();
      collection.error.hide();
      collection.next.hide();
      
        if (!regexp.test(pno)) {
          collection.error.innerHTML = 'Felaktigt format på nummer';
          collection.error.show();
          return;
        }

      new Ajax.Request('/global/web/partsearch.v2/scripts/json/default/wizard.fortus.json.php', {
        method: 'post',
        parameters: $H({ action: 'pno', pno: pno, country: country, token: token }),
        onSuccess: function(transport) {
          response = transport.responseJSON;
            if (response.status) {
              eTable = $('divFortusValidID').getElementsByTagName('table')[0];
              eTR = eTable.getElementsByTagName('tr');
              eTR[0].lastChild.innerHTML = response.result.firstname;//firstname
              eTR[1].lastChild.innerHTML = response.result.lastname;//lastname
              eTR[2].lastChild.innerHTML = response.result.address;//address
              eTR[3].lastChild.innerHTML = response.result.zip;//zip
              eTR[4].lastChild.innerHTML = response.result.postalcity;//postalcity
              collection.valid.show();
              collection.next.show();
              
              document.forms[0].fortus_firstname.value = response.result.firstname;
              document.forms[0].fortus_lastname.value = response.result.lastname;
              document.forms[0].fortus_address.value = response.result.address;
              document.forms[0].fortus_zip.value = response.result.zip;
              document.forms[0].fortus_postalcity.value = response.result.postalcity;
              
            } else {
              collection.error.innerHTML = response.message;
              collection.error.show();
              collection.next.hide();
            }
        },
        onComplete: function() {
        }
      });
    },
    
    ///////////////////////////////////////////////////////////////////////////////
    
    wizardPaymentFortusCheckCredit: function(type, token) {
      loader = new cls_loader('divResultID');
      loader.loading('Kontrollerar kreditvärdighet');
      new Ajax.Request('/global/web/partsearch.v2/scripts/json/default/wizard.fortus.json.php', {
        method: 'post',
        parameters: $H({ action: 'credit', token: token }),
        onSuccess: function(transport) {
          response = transport.responseJSON;
            if (response.status) {
              loader.clean();
              document.forms[0].execute.value='finish_'+ type;
              document.forms[0].transaction_payment.value = response.result.invoiceid;
              PARTSEARCH.dynSubmit('/global/web/execute/partsearch.v2/wizard.execute.php', {
                formID: 'fbt',
                loaderID: 'divResultID',
                loaderMSG: 'Sparar information',
                resHandler: 'PARTSEARCH.executeReturn'
              });
            } else {
              alert('Tyvärr kunde ni inte godkännas som fakturakund, var vänlig och välj ett annat betalningsalternativ');
              loader.failed('Var god och välj ett annat betalningsalternativ');
            }
        }
      });
    },
    
    ///////////////////////////////////////////////////////////////////////////////

    wizardDHLServicePoint: function(xRoot, loader)
    {
      var xmlRes = new cls_xmlResult(xRoot);
      if(xmlRes.failed){loader.failed('Could not load data');return false;}
      var eButton = $('inputNextID');
      var eHolder = $('tableSPHolderID');
      var eHolderTBody = $('tbodySPHolderID');
      var eOtherHolder = $('divOtherSP');

        if(xmlRes.statusCode())
        {
          loader.success('Utlämningsställen hämtade');
          loader.holder.hide();
          eHolderTBody.removeChildren();
          eHolder.show();
          eOtherHolder.show();
          eButton.show();

          iVIE = parseInt(vIE());

          eResult = xmlRes.getResult();
            if(eResult.hasChildNodes())
            {
              for(var i=0;i<eResult.childNodes.length;i++)
              {
                var eSP = eResult.childNodes[i];

                var eTR = document.createElement('tr');
                eTR.className = 'bdrDBtm bdrClrGray';

                var eTD1 = document.createElement('td');

                eTD1.style.verticalAlign = 'middle';
                eTD1.style.width = '30px';
                  if(iVIE < 0 || iVIE >= 8)
                  {
                    var eInput = document.createElement('input');
                    eInput.setAttribute('type', 'radio');
                    eInput.setAttribute('name', 'servicepoint_id');
                    eInput.setAttribute('value', eSP.getAttribute('id'));
                    if(!i){eInput.setAttribute('checked', true);}
                  }
                  else
                  {
                    //crappy shit
                    if(!i)
                    {
                      var eInput = document.createElement('<input type="radio" name="servicepoint_id" value="'+ eSP.getAttribute('id') +'" checked>');
                    }
                    else
                    {
                      var eInput = document.createElement('<input type="radio" name="servicepoint_id" value="'+ eSP.getAttribute('id') +'">');
                    }
                    //>
                  }
                eTD1.appendChild(eInput);

                var eTD2 = document.createElement('td');
                var eName = document.createElement('span');
                eName.className = 'fntBld';
                eName.appendChild(document.createTextNode(eSP.getElementsByTagName('displayname')[0].firstChild.nodeValue));
                var eBR = document.createElement('br');
                var eAddress = document.createElement('span');
                eAddress.className = 'fntSml fntClrGray';
                eAddress.appendChild(document.createTextNode(eSP.getElementsByTagName('address')[0].firstChild.nodeValue));

                var eTD3 = document.createElement('td');
                eTD3.className = 'fntSml fntBld fntRgt';
                eTD3.appendChild(document.createTextNode(eSP.getElementsByTagName('distance')[0].firstChild.nodeValue +' Km'));

                eTD2.appendChild(eName);
                eTD2.appendChild(eBR);
                eTD2.appendChild(eAddress);
                eTR.appendChild(eTD1);
                eTR.appendChild(eTD2);
                eTR.appendChild(eTD3);
                eHolderTBody.appendChild(eTR);

                if(i>3){break;}

              }
            }

        }
        else
        {
          loader.failed(xmlRes.statusLoader());
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardUploadPicture: function(sMsg)
    {
      var oLoader = new cls_loader('divPictureResultID');
      var eForm = document.forms[0];
      oLoader.loading(sMsg);
      eForm.action = '/global/web/execute/partsearch.v2/wizard.execute.php';
      eForm.target = 'wizardFileUpload';
      document.forms[0].execute.value='file_upload';
      eForm.submit();
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardSetPicture: function(result)
    {
      var oLoader = new cls_loader('divPictureResultID');
        if(parseInt(result.status)==1)
        {
          oLoader.success(result.success);
        }
        else
        {
          oLoader.failed(result.error);
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardRequestVC: function()
    {
      var eLoader = $('divRequestLoaderID');
      var eVC1 = $('selectRequestVC1ID');
      var eVC2 = $('selectRequestVC2ID');
      var eVC = $('selectRequestVCID');
      var eSpan = $('spanRequestResetID');

      eLoader.hide();
      eVC2.hide();
      eVC.hide();
      eSpan.hide();

      //[create extend]>
      oFill = {
        fill: function(sGet, iVC)
        {
          eSpan.hide();
          eLoader.show();
          this.options.length = 1;
          new Ajax.Request('/global/web/partsearch.v2/scripts/xml/vc.php',
            {
              method: 'get',
              parameters: {get: sGet, vc: iVC},
              onSuccess: function(response)
              {
                xRoot = response.responseXML;
                  if(xRoot.hasChildNodes())
                  {
                    xResult = xRoot.getElementsByTagName('result')[0];
                      for(var i=0;i<xResult.childNodes.length;i++)
                      {
                        xOption = xResult.childNodes[i];
                        this.optionCreate(xOption.getAttribute('value'), xOption.firstChild.nodeValue);
                      }
                    this.show();
                    eLoader.hide();
                    eSpan.show();
                  }
              }.bind(this)
            }
          );
        },

        optionCreate: function(sValue, sText)
        {
          var eOption = document.createElement('option');
          eOption.setAttribute('value', sValue);
          eOption.appendChild(document.createTextNode(sText));
          this.appendChild(eOption);
        }
      }
      //>

      Object.extend(eVC1, oFill);
      Object.extend(eVC2, oFill);
      Object.extend(eVC, oFill);

      eVC1.onchange = function()
      {
        if(this.value)
        {
          this.hide();
          eVC2.fill('vc2', this.value);
        }
      }

      eVC2.onchange = function()
      {
        if(this.value)
        {
          this.hide();
          eVC.fill('vc', eVC1.value +''+ this.value);
        }
      }

      eSpan.onclick = function()
      {
        eVC1.selectedIndex = 0;
        eVC2.selectedIndex = 0;
        eVC.selectedIndex = 0;
        eLoader.hide();
        eVC2.hide();
        eVC.hide();
        eSpan.hide();
        eVC1.show();
      }
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardRegisterPaste: function() {
      eImg = $('imgRegisterEmotionID');
      eImg.src = '/global/images/partsearch.v2/ico/devil_16x16.png';
      PARTSEARCH.wizardPasteEmotion = 1;
      eImg.style.visibility = 'visible';
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardRegisterPasteKP: function() {
      if (!PARTSEARCH.wizardPasteEmotion) return false;
      eImg = $('imgRegisterEmotionID');
      eImg.src = '/global/images/partsearch.v2/ico/smiley_16x16.png';
      PARTSEARCH.wizardPasteEmotion = 0;
    },

    ///////////////////////////////////////////////////////////////////////////////

    wizardRegisterPasteBlur: function() {
      eImg = $('imgRegisterEmotionID');
      eImg.style.visibility = 'hidden';
    },

    ///////////////////////////////////////////////////////////////////////////////

    intranetReturnMessage: function(xRoot, loader)
    {
      var xmlRes = new cls_xmlResult(xRoot);
      if(xmlRes.failed){loader.failed('Could not load data');return false;}

        if(xmlRes.statusCode())
        {
          loader.success();
          //loader.holder.hide();
          var eHolder = $('divMessageHolderID');

          var xResult = xmlRes.getResult();

          sAuthor = xResult.getElementsByTagName('author')[0].firstChild.nodeValue;
          sDate = xResult.getElementsByTagName('date')[0].firstChild.nodeValue;
          sContent = xResult.getElementsByTagName('content')[0].firstChild.nodeValue;

          var eDivHolder = document.createElement('div');
          var eDivAuthor = document.createElement('div');
          var eDivContent = document.createElement('div');

          eDivHolder.className = 'mgnBtmMed';
          eDivAuthor.className = 'padMed bdrDBtm bdrClrGray fntSml fntClrGray';
          eDivContent.className = 'padMed fntVer lneMed';

          eDivAuthor.innerHTML = '<img src="/global/images/fbt.v2/ico/contact_message_16x16.png" alt="meddelande" style="margin-right: 6px; width: 16px; height: 16px; vertical-align: middle; " />&nbsp;<span class="fntBld">'+ sAuthor +'</span>, <span class="fntIta">'+ sDate +'</span>';
          eDivContent.innerHTML = sContent;

          eDivHolder.appendChild(eDivAuthor);
          eDivHolder.appendChild(eDivContent);

          eHolder.insertBefore(eDivHolder, eHolder.firstChild);
          $('textareaMessageID').value = '';
          //PARTSEARCH.showHide('divMessageID');
          if($('divMessageBlankID')){$('divMessageBlankID').hide();}

        }
        else
        {
          loader.failed('Kunde inte skicka meddelandet');
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    showHide: function(sID)
    {
      obj = $(sID);
        if(obj.style.display == 'none')
        {
          switch(obj.tagName)
          {
            case 'DIV':
              obj.style.display = 'block';
            break;
          }
        }
        else
        {
          obj.style.display = 'none';
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    disableEnterKey: function(event) {
      if (event.keyCode == 13) return false;
    },

    ///////////////////////////////////////////////////////////////////////////////

    runKeyPressTimer: function(s_function, i_minkeys, i_timeout, s_value) {
      if (s_value.length > i_minkeys || s_value.length == 0) {
        clearTimeout(PARTSEARCH.timerKeyPress);
        PARTSEARCH.timerKeyPress = setTimeout(s_function, i_timeout);
      }
    },

    ///////////////////////////////////////////////////////////////////////////////

    returnSendInquiry: function(response) {
      divError = $('div_form_error');
      divResult = $('div_form_result');
      divData = $('div_form_data');

        if(response.responseText)
        {
          if(response.responseText == 'error')
          {
            divError.style.display = 'block';
            divData.style.display = 'block';
            divResult.style.display = 'none';
          }
          else
          {
            divResult.innerHTML = response.responseText;
          }
        }
        else
        {
          divResult.innerHTML = '<div class="fntSml color1Med">Failed</div>';
        }
    },

    ///////////////////////////////////////////////////////////////////////////////

    setInquiry: function() {
      divError = $('div_form_error');
      divResult = $('div_form_result');
      divData = $('div_form_data');

      divError.style.display = 'none';
      divData.style.display = 'none';

      divResult.style.display = 'block';
      divResult.innerHTML = '<img src="/global/images/ajax/ajax_loader_bg_white.gif" alt="loading" />';


      //Data
      i_post_id = document.forms[0].form_post_id.value;
      s_name = escape(document.forms[0].form_name.value);
      s_email = escape(document.forms[0].form_email.value);
      s_phone = escape(document.forms[0].form_phone.value);
      s_message = escape(document.forms[0].form_message.value);
      //>

      new Ajax.Request('/global/web/partsearch.v2/scripts/dynamic/default/return_send_inquiry.php?post_id='+ i_post_id +'&name='+ s_name +'&email='+ s_email +'&phone='+ s_phone +'&message='+ s_message, {method: 'get', onSuccess: PARTSEARCH.returnSendInquiry});
    }

    ///////////////////////////////////////////////////////////////////////////////
  }
}();

function vIE(){return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;}

