   var formHasBeenSaved=0;
   
   function implodeParam(istr, param)
   {
      var xstr = istr;
      var i=0;
      var xval;
      var e;
      var dpi;
      var dpe;
      while (i>=0 && i<param.length)
      {
         e=param.indexOf('=', i);
         if (e==-1) break;
         xname=param.substr(i, e-i);
         i=e+1;
         e=param.indexOf(',', i);
         if (e==-1) 
         {
            xval=param.substr(i)
         }
         else 
         {
            xval=param.substr(i, e-i);  
         }
         dpi=0;
         do 
         {
            dpi=xstr.indexOf(xname+'=', dpi);
            if ((dpi==0) || ((dpi>0) && (xstr.substr(dpi-1,1)==','))) break;
            if (dpi>0) dpi++;
         } while (dpi!=-1);
         
         if (dpi==-1) xstr = xstr + ','+xname+'='+xval;
         else
         {
            dpi+=xname.length+1;
            dpe=xstr.indexOf(',', dpi);
            if (dpe==-1) dpe=xstr.length;
            xstr=strDelete(xstr, dpi, dpe-1, xval);
         }
         i=e;
         if (i==-1) break;
         i++;
      }
      return xstr;
   }
   
   function newWindowA(pageName, p)
   {
      var xstr = implodeParam('scrollbars=yes,toolbar=no,status=no,menubar=no,directories=no,location=no,resizable=yes,width=600,height=420', p);
      var prodWindow = window.open(pageName, 'window'+Math.round(Math.random()*1000), xstr);
      if (prodWindow) prodWindow.focus();
   }

   function newWindowB(pageName, p, winame)
   {
      var xstr = implodeParam('scrollbars=yes,toolbar=no,status=no,menubar=no,directories=no,location=no,resizable=yes,width=600,height=420', p);
      //alert(xstr);
      open(pageName, winame, xstr);
   }

   function strDelete(xstr, i0, i1, s)
   {
      return xstr.substring(0, i0)+s+xstr.substring(i1+1);
   }

   function cc(w, h)
   {
      var ktop=(screen.availHeight-h)/2;
      var kleft=(screen.availWidth-w)/2;
      return 'top='+ktop+',left='+kleft+',width='+w+',height='+h;
   }
   
   function msg_su()
   {
      if (formHasBeenSaved) newWindowA('sumsg.html', cc(300, 100));
   }

   function confirmDeletePhoto(s) 
   {
      if (!s) s = 'фотографию';
     if (confirm('Вы действительно хотите удалить '+s+'?')) return true;
     return false;
   }
   function confirmDelete(s) 
   {
     if (confirm('Вы действительно хотите удалить '+s+'?')) return true;
     return false;
   }

   function submitDelete() 
   {
     var f=document.fm;
     f.fmDeleteRecords.value = '1';    
     f.fmUpdateActive.value='0';
     f.submit();
   }

   function nsAlert(msg)
   {
      var p = 'scrollbars=yes,toolbar=no,status=no,menubar=no,directories=no,location=no,resizable=yes,width=400,height=100';
      window.open('msgbox.php?msg='+msg, 'Message', implodeParam(p, cc(350,375)));
   }

   function changeOrder(c)
   {
      var href = '?fmSearch=1&'+c.name+'=';
      href += c.value;
      window.location.href=href;
   }
   
function mailDecode(coded, txt)
{
    cipher = "cj72F30hBWOkxLECsVUIa5bu8if6TQrHDgvyRY4ZN9KAqzpneSlt1XJoMmGPwd"
    shift=coded.length
    link=""
    for (i=0; i<coded.length; i++)
    {
        if (cipher.indexOf(coded.charAt(i))==-1)
        {
            ltr=coded.charAt(i)
            link+=(ltr)
        }
        else 
        {     
            ltr = (cipher.indexOf(coded.charAt(i))-shift+cipher.length) % cipher.length
            link+=(cipher.charAt(ltr))
        }
    }
    if (!txt) txt = link
    document.write("<a href='mailto:"+link+"'>"+txt+"</a>")
}

function addToCart(i)
{
    window.location.href="?fmAction=add&fmSubmit=1&recKey="+i+"&fmAmount=1";
}
