var options = false;
var setting_width = 700;
var setting_posts = 3;
var setting_expand = 'l';
var setting_collapse = 'y';
var mbox_open = new Array();
var numnews=0;
var pageloaded=false;

    
function strcmp (str1, str2)
{
   return ( ( str1 == str2 ) ? 0 : ( ( str1 > str2 ) ? 1 : -1 ) );
}
	
function $()
{
   var elements = new Array();
   for (var i=0; i<arguments.length; i++)
   {
      var element = arguments[i];
      if (typeof element == "string")
      {
         element = document.getElementById(element);
      }
      if (arguments.length == 1)
      {
         return element;
      }
      elements.push(element);
   }
   return elements;
}

function hide (obj)
{
   $(obj).style.display = "none";
}

function show (obj)
{
   $(obj).style.display = "";
}
    
function toggle (obj)
{
   var e = $(obj);
   if (e.style.display == "none")
   {
      e.style.display = "";
   }
   else
   {
      e.style.display = "none";
   }
}

function is_mbox_open (mboxnum)
{
   if ($("mbox_"+mboxnum).style.display == "none")
   {
      return false;
   }
   return true;
}

function is_mbox_removed (mboxnum)
{
   if ($("mbox_"+mboxnum+"_container").style.display == "none")
   {
      return true;
   }
   return false;
}
 
function change_text (id, text)
{
   var obj = document.getElementById(id);
   obj.firstChild.nodeValue = text;
}
		
function save_settings ()
{
   var width = document.options_form.page_width.value/1;
   var s = document.options_form.num_entries;
   var v = s.options[s.selectedIndex].value/1;
   var s2 = document.options_form.expand;
   var v2 = s2.options[s2.selectedIndex].value;
   var s3 = document.options_form.collapse;
   var v3 = s3.options[s3.selectedIndex].value;
   var cvalue;
      
   if (!v || v < 1 || v > 10)
   {
      alert ("Number of news items shown must be in range of 1-10!");
      return false;
   }
   width = Math.round(width);
   if (!width || width < 700 || width > 1200)
   {
      alert ("Page width must be in range of 700-1200 pixels!");
      return false;
   }
   if (!v2 || !(v2 == 'l' || v2 == 'a' || v2 == 'n'))
   {
      alert ("Expand setting must be latest, none or all!");
      return false;
   }
   if (!v3 || !(v3 == 'y' || v3 == 'n'))
   {
      alert ("Collapse setting must be yes or no!");
      return false;
   }
   
   // All ok, you can submit
   return true;
}
		
function delete_settings ()
{
   document.cookie = "options=; expires=1";  
   window.location.reload();
}
		
function close_all_mbox ()
{
   for (i=1; i<mbox_open.length; i++)
   {
      if (mbox_open[i])
      {
         close_mbox (i);
      }
   }
}

// TODO: see if user starts from bottom or top, also do not open new news if no news are currently open
function remove_mbox (mboxnum)
{ 
   hide ("mbox_"+mboxnum+"_container");
   close_mbox (mboxnum);
     
   // If user has 'auto-expand latest' enabled, we will open the latest article available for him
   if (setting_expand == 'l')
   {
      for (i=1; i<=numnews; i++)
      {
         if (!is_mbox_removed (i))
         {
            open_mbox (i);
            return;
         }
      }
   }
}
		
function close_mbox (mboxnum)
{
   mboxeval = "document.images.mbox_img_"+mboxnum+".src = \"png/exp.png\";";
   eval (mboxeval);
		   
   hide ("mbox_"+mboxnum);
   mbox_open[mboxnum] = false;
}
		
function open_mbox (mboxnum)
{
   mboxeval = "document.images.mbox_img_"+mboxnum+".src = \"png/col.png\";";
	 eval (mboxeval);
		   
   show ("mbox_"+mboxnum);
   mbox_open[mboxnum] = true;
}
		
function toggle_mbox (mboxnum)
{	
   if (mbox_open[mboxnum])
   {
      close_mbox (mboxnum);
   }
   else
   {
      close_options ();
      
      if (setting_collapse == 'y' && setting_expand == 'l')
      {
         close_all_mbox ();
      }
      open_mbox (mboxnum);
   }
}

function select_by_value (selectobj, value)
{
   len = selectobj.length;
   
   for (i=0; i<len; i++)
   {
      if (selectobj[i].value == value)
      {
         selectobj.selectedIndex = i;
         return;
      }
   }
}

function open_options ()
{      
   document.images.opt_img.src = "png/col.png";
   show ("options_box");
   options = true;
}
        
function close_options ()
{
   document.images.opt_img.src = "png/exp.png";
   hide ("options_box");
   options = false;
}
    
function toggle_options ()
{
   if (options)
   {
      for (i=1; i<=numnews; i++)
      {
         show ("mbox_"+i+"_container");
      } 
      close_options ();
   }
   else
   {
      for (i=1; i<=numnews; i++)
      {
         hide ("mbox_"+i+"_container");
      }  
      open_options ();
   }
}

function body_onload()
{ 
   for (i=1; i<numnews; i++)
   {
      if (is_mbox_open (i))
      {
         mbox_open[i] = true;
      }
   }
   pageloaded = true;
}