// A 1x1 pixel image used to fix Safari bug with image replacement
preload_1px_safari_fix = new Image();
preload_1px_safari_fix.src = 'images_system/1px_safari_fix.jpg';



////////////////////////////////////////////////////////////////////////////////////////////


function set_image2(ismall, ilarge)
{
   if (!ilarge) ilarge = 'large_photo'

   d=document;

   var s1=document.getElementById(ismall).src, s2=document.getElementById(ilarge).src;

   // fix for safari
   if (navigator.userAgent.indexOf('Safari')!=-1)
   {
       document.getElementById(ilarge).src = 'images_system/1px_safari_fix.jpg';
   }

   document.getElementById(ilarge).src = _file_path(s2) + _file_name(s1);


   document.getElementById(ilarge).alt = document.getElementById(ismall).alt;

   if (document.getElementById("large_photo_title") != null)
   {
       document.getElementById("large_photo_title").innerHTML = document.getElementById(ismall).alt;
   }
}


function _file_name(s)
{
    s = (s.lastIndexOf("/") == -1) ? s : s.substr(s.lastIndexOf("/")+1);
    s = s.replace('_thumb_', '_detail_');
    return s;
}

function _file_path(s)
{return (s.lastIndexOf("/") == -1) ? '' : s.substr(0, s.lastIndexOf("/")+1);}

////////////////////////////////////////////////////////////////////////////////////////////



function confirmDeleteUpload(what) 
{
  if (!what) what = 'file';

  if (confirm('Are you sure you want to delete this '+what+'?')) return true;

  return false;
}



/*

checked = true, false

*/


function selectAll(formObject, checked)
{
   re = /^fmRecKey\[[^\]]*\]$/;

   for (var i=0; i < formObject.elements.length; i++)
   {
       if (re.exec(formObject.elements[i].name))
       {
           formObject.elements[i].checked = checked;
       }
   }
}



/*
 
Opens a noname window (in fact it has a name, but it is just a random string)
Example: <a href="javascript:newWindow('?do=user_details', center_on_screen(450,450));">Add new</a>

*/

function newWindow(url, windowFeatures)
{
    var xstr = implodeParam('scrollbars=yes,toolbar=no,status=no,menubar=no,directories=no,location=no,resizable=yes,width=600,height=420', windowFeatures);
    var prodWindow = window.open(url, 'window'+Math.round(Math.random()*1000), xstr);
    if (prodWindow) prodWindow.focus();
}


/*
 
Opens a window with specified <windowName>
Example: <a href="javascript:newWindow('?do=user_details', 'user_details', center_on_screen(450,450));">Add new</a>

*/

function newWindowName(url, windowName, windowFeatures)
{
    var xstr = implodeParam('scrollbars=yes,toolbar=no,status=no,menubar=no,directories=no,location=no,resizable=yes,width=600,height=420', windowFeatures);
    open(url, windowName, xstr);
}

/*


*/


function deleteRecords(formObject)
{
    // проверяем чтобы был как минимум один чекбокс с именем fmRecKey в состоянии checked.
    has_checked_records = false;

    re = /^fmRecKey\[[^\]]*\]$/;

    for (var i=0; i < formObject.elements.length; i++)
    {
        if (re.exec(formObject.elements[i].name))
        {
            if (formObject.elements[i].checked)
            {
                has_checked_records = true;
                break;
            }
        }
    }

    if (has_checked_records)
    {
        if (confirm('Are you sure that you want to delete these records?')) 
        {
            formObject.fmFormMode.value = 'delete';    
            formObject.submit();
        }  
    }
    else
    {
        alert('You didn\'t select any records!');
    }
}


function searchRecords(formObject)
{
    formObject.fmFormMode.value = 'search';    
    formObject.submit();
}


function switchSubmit(formObject)
{
  if (formObject.fmFormSubmissionEnabled.checked)
  {
      formObject.fmFormSubmit.disabled = false;
      formObject.fmFormSubmit.style.backgroundColor = 'D4D0C8';
  }
  else
  {
      formObject.fmFormSubmit.disabled = true;
      formObject.fmFormSubmit.style.backgroundColor = 'FF8888';
  }
}


function submitForm(formObject)
{
  if (formObject.fmFormSubmissionEnabled.checked)
  {
      return true;
  }
  else
  {
      return false;
  }
}


/* ============================================================================== */

function center_on_screen(width, height)
{
   var ktop=(screen.availHeight-height)/2;
   var kleft=(screen.availWidth-width)/2;
   return 'top='+ktop+',left='+kleft+',width='+width+',height='+height;
}


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 strDelete(xstr, i0, i1, s)
{
   return xstr.substring(0, i0)+s+xstr.substring(i1+1);
}


//    Прокручивает массив картинок влево или вправо (щелчки на элементах с id = id_prev  id_next	
//    Изначально показываемые картинки имеют id c префиксом id_position_prefix (например, если 
//    префикс = 'position', то id первой картинки будет id="position1". Количество позиций равно
//    num_positions. Step = шаг прокрутки (положительный или отрицательный). Последний параметр - 
//    собственно массив картинок (имена файлов) для прокрутки (только имя файла с расширением без 
//    пути)
//    Например, для вызова прокрутки влево на элемент необходимо повесить функцию:
//    onclick="scroll_images('prev','next','position',2,-1,arr_images)"
//    Для прокручивания вправо:
//    onclick="scroll_images('prev','next','position',2,1,arr_images)"
function scroll_images(id_prev,id_next,id_position_prefix,num_positions,step,array_of_images)
{
    if(step==0) return;
    var str = id_position_prefix+'1';
    var first_im = document.getElementById(str);
    if (first_im==null) 
    {
        alert('Cant find first position image');
        return;
    }
    var first_im_src = first_im.src;
    var last = first_im_src.lastIndexOf('/');
    first_im_src = first_im_src.substr(last+1);

    var first_ind = 0;
    for(i=0;i<array_of_images.length;i++)
    {
        if((array_of_images[i]).indexOf(first_im_src)!= -1)
        {
            first_ind = i;	
        }
    }
    // left button enabled ?
    if((first_ind+step)>0)
    {
        document.getElementById(id_prev).style.display = 'inline';	
    }
    else
    {
        document.getElementById(id_prev).style.display = 'none';	
    }
    // right button enabled ?
    if((first_ind+num_positions+step)<(array_of_images.length))
    {
        document.getElementById(id_next).style.display = 'inline';	
    }
    else 
    {
        document.getElementById(id_next).style.display = 'none';	
    }
    var postfix='1';
    for(j=(first_ind + step);j<(first_ind + step + num_positions);j++)
    {
        var pic_element = document.getElementById(id_position_prefix+postfix);
   		
        if (navigator.userAgent.indexOf('Safari')!=-1)
        {
            pic_element.src = 'images_system/1px_safari_fix.jpg';
            pic_element.src = array_of_images[j];
        }
        else
        {
            pic_element.src = array_of_images[j];
        }
		
        
		postfix++; 
    }
}	 

