function clearDefault(el) {
if (el.defaultValue==el.value) el.value = ""
}

function gradient(id, level)
{
	var box = document.getElementById(id);
	box.style.opacity = level;
	box.style.MozOpacity = level;
	box.style.KhtmlOpacity = level;
	box.style.filter = "alpha(opacity=" + level+ ")";
	box.style.display="block";
	return;
}


function fadein(id) 
{
	var level = 0;
	while(level <= 1)
	{
		setTimeout( "gradient('" + id + "'," + level + ")", (level*
1000) + 10);
		level += 0.01;
	}
}


// Open the lightbox

function openbox(formtitle, fadin, column)
{
  var columnbox = column+"box";
  var box = document.getElementById(columnbox); 
  document.getElementById('filter').style.display='block';

  var btitle = document.getElementById(column);
  btitle.innerHTML = formtitle;
  
  if(fadin)
  {
	 gradient("box", 0);
	 fadein("box");
  }
  else
  { 	
    box.style.display='block';
  }  	
}	

// Close the lightbox

function closebox(column)
{
   document.getElementById(column).style.display='none';
   document.getElementById('filter').style.display='none';
}

function showform(form)
{
  document.getElementById(form).style.display='block';
}

function hideform(form)
{
  document.getElementById(form).style.display='none';
}

function updateForm(form)
{
  var myform = document.getElementById(form);

  var titleblock = "";
  var urlblock = "";
  titleblock = document.getElementById(form+"title");
  urlblock = document.getElementById(form+"url");

  var selected = myform.systemfeeds.options.selectedIndex;
  var feedurl = myform.systemfeeds.value;

  if (selected == "0")
  {
  	titleblock.style.display="block";
  } 
  else 
  {
  	titleblock.style.display="none";
  }
  urlblock.innerHTML = 'URL: <input type="text" name="url" size="50" value="' + feedurl + '">';

/*
for(i=0; i<myform.elements.length; i++)
{
document.write("The field name is: " + myform.elements[i].name + " and it’s value is: " + myform.elements[i].value + ".<br />");
}
*/
}

function validateFormOnSubmit(theForm) 
{
var reason = "";

  reason += validateUsername(theForm.username);
  reason += validateEmail(theForm.email);
  //reason += validateEmpty(theForm.from);
      
  if (reason != "") {
    alert("Some fields need correction:\n" + reason);
    return false;
  }

  return true;
}

function validateEmpty(fld) {
    var error = "";
 
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "The required field has not been filled in.\n"
    } else {
        fld.style.background = 'White';
    }
    return error;  
}

function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
 
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = "You didn't enter a username.\n";
    } else if ((fld.value.length < 3) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow'; 
        error = "The username is the wrong length.\n";
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow'; 
        error = "The username contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter an email address.\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The email address contains illegal characters.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function displayRSS(block,feedid)
{
        //call the right constructor for the browser being used
        if (window.ActiveXObject)
                var xhr = new ActiveXObject("Microsoft.XMLHTTP");
        else if (window.XMLHttpRequest)
                var xhr = new XMLHttpRequest();
        else
                alert("not supported");

	var url = "/fetch/" + feedid;
	document.getElementById(block).innerHTML = "\r<center><img src='/images/loading.gif' width='80px' style='padding:60px 0px 60px 0px'></center>\r";

        //prepare the xmlhttprequest object
        xhr.onreadystatechange = function() {
		//document.getElementById(block).innerHTML = "state changed, status is " + xhr.readyState;
                if (xhr.readyState == 4)
                {
                        if (xhr.status == 200)
                        {
                                if (xhr.responseText != null)
				{
					document.getElementById(block).innerHTML = xhr.responseText;
					if (block == "featuredblock")
						new Control.Tabs('feaTabs');
				}
                                else
                                {
					document.getElementById(block).innerHTML = "Failed to receive RSS file from the server - file not found.";
                                        return false;
                                }
                        }
                        else
			{
				document.getElementById(block).innerHTML = "Error code " + xhr.status + " received: " + xhr.statusText;
			}
                }
        }

        //send the request
        xhr.open("GET",url,true);
        xhr.send(null);
	return;
}

