myNewsArray = new Array();

function arrayDeleteItem( arrayName, delStr )
{
  var ar = new Array();
  for (var ii = 0; ii < arrayName.length; ii++)
  {
     if (arrayName[ii] != delStr)
      ar[ar.length] = arrayName[ii];
  }
  return ar;
}

function arrayCheck( arrayName )
{
  var ar = new Array();
  for (var ii = 0; ii < arrayName.length; ii++)
  {
     if (  (arrayName[ii].indexOf('undefined') == -1)
        && (arrayName[ii].indexOf('||') == -1)
        )
      ar[ar.length] = arrayName[ii];
  }
  return ar;
}

function myNewsItem(full_name,feed_name,channel_name)
{
   this.full_name = full_name;
   this.feed_name = feed_name;
   this.channel_name = channel_name;
}

function checkMyNewsCookie()
{
 if (myNewsCookie.found)
 {
   if (myNewsCookie.fields.length > 0)
   {
     myNewsCookie.fields = arrayCheck( myNewsCookie.fields );

     for (var iMyNews = 0; iMyNews < myNewsCookie.fields.length; iMyNews++)
     {
       tempStr = myNewsCookie.fields[iMyNews];
       leftSide = tempStr.substring(0, tempStr.indexOf('¦'))
       rightSide = tempStr.substring( leftSide.length+1 , tempStr.indexOf('¦mynews'));
       myNewsArray.length = myNewsArray.length + 1;
       myNewsArray[myNewsArray.length-1] = new myNewsItem( leftSide, rightSide )
     }
   }
 }

 myNewsCookie.write();
}

function findItem(findSection)
{
  returnVal = -1;
  for (var iFind = 0; iFind < myNewsCookie.fields.length; iFind++)
  {
    returnVal = myNewsCookie.fields[iFind].indexOf(findSection);
    if (returnVal != -1)
      return iFind;
  }
  return -1;
}

function makeHeadingName(str)
{
  maxLength = 20;
  var isSearchType = false;
  if (str.indexOf('"') > -1)
    isSearchType = true;
  
  if (str.indexOf(': ') > -1)  
    str = str.substring( str.indexOf(':')+2, str.length+1 );
  if (!isSearchType) {
  	char1 = "" + str.charAt(0);
  	char1 = char1.toUpperCase();
  	str = char1 + str.substring( 1, str.length+1 );
  }
  if (str.length < maxLength)
    return str;
  else
  {
  	if (isSearchType)
      return (str.substring(0, maxLength-1) + "...\"").toLowerCase();
    else
      return (str.substring(0, maxLength-1) + "..."); 
  }
}

function replaceSpaces(str)
{
  do
  {
    str=str.replace(" ","+")
  }
  while (str.indexOf(" ",0) != -1);

  return str;
}

function addBookmark()
{
  var tempArray = new Array();
  var tempArrayStr = "";
  var iSplice = 0;
  var msgStr;

  if ((isError) || (isFeed))
  {
    if (isSearch)
      alert("You cannot add a search to the \'Bookmarks\' menu.");
    return;
  }

  if (isSearch)
    tempArrayStr = makeHeadingName(searchString)+'¦'+replaceSpaces(searchString.substring(1, searchString.length-1))+'¦mynews';
  else
    tempArrayStr = makeHeadingName(headingName)+'¦'+sectionName+'¦mynews';

  var itemIndex = findItem(tempArrayStr)

  if ( itemIndex != -1)
  {
    if (isSearch)
      msgStr = searchString.substring(1, searchString.length-1);
    else
      msgStr = headingName;

    if (window.confirm( '"'+msgStr+'" already exists. Do you wish to remove it from My Bookmarks?' ))
    {
      myNewsCookie.fields = arrayDeleteItem( myNewsCookie.fields, tempArrayStr );
      myNewsCookie.fields.sort();
      myNewsCookie.write();
    }
    else
    {
      return;
    }
  }
  else
  {
    myNewsCookie.fields.length = myNewsCookie.fields.length + 1;
    myNewsCookie.fields[myNewsCookie.fields.length-1] = tempArrayStr;
    myNewsCookie.fields.sort();
    myNewsCookie.write();
  }
  location.reload();
}

function doMyNews(s)
{
  var tempArray = new Array();
  var tempArrayStr = "";
  var iSplice = 0;
  var msgStr;

  if (s.selectedIndex == s.length-2)
  {
    if ((isError) || (isFeed))
    {
      s.selectedIndex=0;
      if (isSearch)
        alert("You cannot add a search to the \'Bookmarks\' menu.");
      return;
    }

    if (isSearch)
      tempArrayStr = makeHeadingName(searchString)+'¦'+replaceSpaces(searchString.substring(1, searchString.length-1))+'¦mynews';
    else
      tempArrayStr = makeHeadingName(headingName)+'¦'+sectionName+'¦mynews';

    var itemIndex = findItem(tempArrayStr)

    if ( itemIndex != -1)
    {
      if (isSearch)
        msgStr = searchString.substring(1, searchString.length-1);
      else
        msgStr = headingName;

      if (window.confirm( '"'+msgStr+'" already exists. Do you wish to remove it from My Bookmarks?' ))
      {
        myNewsCookie.fields = arrayDeleteItem( myNewsCookie.fields, tempArrayStr );
        myNewsCookie.fields.sort();
        myNewsCookie.write();
      }
      else
      {
        s.selectedIndex=0;
        return;
      }
    }
    else
    {
      myNewsCookie.fields.length = myNewsCookie.fields.length + 1;
      myNewsCookie.fields[myNewsCookie.fields.length-1] = tempArrayStr;
      myNewsCookie.fields.sort();
      myNewsCookie.write();
    }
  }
  else if (s.selectedIndex == s.length-1)
  {
    if (window.confirm( 'Are you sure you want to clear the Bookmarks menu?' ))
      myNewsCookie.remove();
    else
    {
      s.selectedIndex=0;
      return;
    }
  }
  else if ((s.selectedIndex != 0) && (s.selectedIndex < s.length-3))
  {
    var d = s.options[s.selectedIndex].value;
    s.selectedIndex=0;
    window.location.href = d;
    return;
  }
  s.selectedIndex=0;
  location.reload();
}

var myNewsName = 'My Bookmarks';
var width_holder = "-------------------------------------";

if (navigator.appName == "Netscape")
  width_holder = "------------------------------------";

function drawMyNews()
{
  document.writeln('<select class="navQuickMenu" onChange="doMyNews(this)">');
  document.writeln('<option value="" selected>'+myNewsName+'</option>');

  for (var iArray = 0; iArray <= myNewsArray.length-1; iArray++)
  {
    if (myNewsArray[iArray].full_name.charAt(0) == '\"')
      document.writeln('<option value="'+homePage+'?query=' + myNewsArray[iArray].feed_name + '">' + myNewsArray[iArray].full_name + '</option>');
    else
      document.writeln('<option value="'+homePage+'?' + myNewsArray[iArray].feed_name + '">' + myNewsArray[iArray].full_name + '</option>');
  }

  document.writeln('<option value="">'+width_holder+'</option>');
  document.writeln('<option value="">add to Bookmarks</option>');
  document.writeln('<option value="">-- clear all --</option>');
  document.writeln('</select><br>');
}

function beginHeadlineMenu()
{
document.write('<FORM action=\"javascript:gotoCluster(this);\">');
document.write('<FONT face=\"Arial, Helvetica, sans-serif\" size=-2>');
document.write('<span class=\"smallHeading\">Select a news category:<\/span>');

if (navigator.appName == "Netscape")
  document.writeln('<img src=\"images/dotclear.gif\" width=\"15\" height=\"17\" border=\"0\" align=\"top\">');

drawMyNews();

if (navigator.appName == "Netscape")
  document.writeln('<hr width="139" align="left">');
else
  document.writeln('<hr width="136" align="left">');
}

function endHeadlineMenu() {
  document.write('</font>');
  document.write('</form>');
} 

checkMyNewsCookie();
