
String.prototype.trim = function() {

 // skip leading and trailing whitespace
 // and return everything in between
  var x=this;
  x=x.replace(/^\s*(.*)/, "$1");
  x=x.replace(/(.*?)\s*$/, "$1");
  return x;
}



function myLinkySelect(form, limit, sortby)
{
	var categories = form.getElementsByTagName("select");
	var categoryList ="";
	var namesList ="";
	for(var k=0; k<=limit;k++)
	{
		if(k>0) categoryList += ",";
		if(k>0) namesList += ",";
		categoryList += categories[k].options[categories[k].selectedIndex].value;
		namesList += categories[k].options[categories[k].selectedIndex].text;
		if(categories[k].options[categories[k].selectedIndex].value == "")
		return;
	}
	form.category.value = categoryList;
	form.name.value = namesList;
	if(sortby != "" && sortby != undefined)
	{
		form["sort"].value = sortby;
	}
	form.submit();
}

function show(elid)
{
		var el = document.getElementById(elid);
		setStyle(el, "visibility", "visible");
}

function hide(elid)
{
		var el = document.getElementById(elid);
		setStyle(el, "visibility", "hidden");
}

function setStyle(element, rule, value)
{
	element.style[rule] = value;
}

function myLinkySetSelect(form, limit, value)
{
	form.getElementsByTagName("select")[limit].selectedIndex = value;
	myLinkySelect(form,limit);
}

function headerImages()
{
	var now = new Date();
	var rightnow = String(now.getHours());
	document.getElementById("logo").style.backgroundImage="url('/images/linky_logo_"+rightnow+".jpg')";
	document.getElementById("header").style.backgroundImage="url('/images/linky_tile_"+rightnow+".jpg')";
	document.getElementById("header").style.backgroundRepeat="repeat-x";
	var t=setTimeout('headerImages()',60000);
}

function validateSearch(form)
{	
	if(form.searchkey.value.trim() == "")
	{
		return false;
	}
	return true;
}

function validateLogin(form)
{
	if(form.user.value.trim() == "")
	{
		alert("You didn't enter a user name.");
		form.user.style.border = "2px solid red";
		return false;
	}
	if(form.pass.value.trim() == "")
	{
		alert("You didn't enter a password.");
		form.pass.style.border = "2px solid red";
		return false;
	}
	return true;
}

function validateRegister(form)
{
	var username = form.newuser.value.trim();
	var userinput = form.newuser;
	var password = form.newpassword.value.trim();
	var passinput = form.newpassword;
	var email = form.newemail.value.trim();
	var emailinput = form.newemail;
	var terms = form.terms;
	if(username == "")
	{
		alert("You didn't enter a user name.");
		userinput.style.border = "2px solid red";
		return false;
	}
	if (username.length > 16) {
		alert("User name must be 16 characters or less.");
		userinput.style.border = "2px solid red";
		return false;
	}
	var illegalChars = /\W/;
  	// allow only letters, numbers, and underscores
    if (illegalChars.test(username)) {
		alert("The user name contains illegal characters.");
		userinput.style.border = "2px solid red";
		return false;
    } 
	if(password == "")
	{
		alert("You didn't enter a password.");
		passinput.style.border = "2px solid red";
		return false;
	}
	if (password.length > 10) {
		alert("Password must be 10 characters or less.");
		passinput.style.border = "2px solid red";
		return false;
	}
	if (illegalChars.test(password)) {
		alert("Password contains illegal characters.");
		passinput.style.border = "2px solid red";
		return false;
    } 
	if(email == "")
	{
		alert("You didn't enter an email address.");
		emailinput.style.border = "2px solid red";
		return false;
	}
	var emailFilter=/^.+@.+\..{2,3}$/;
	if (!(emailFilter.test(email))) { 
		alert("You didn't enter a valid email address.");
		emailinput.style.border = "2px solid red";
		return false;
	}
	
	if(!terms.checked)
	{
		alert("You must agree to the Terms of Service.");
		return false;
	}
	
	return true;
}

function validateLink(form)
{
	if(form.name.value.trim() == "")
	{
		alert("You didn't enter a link name.");
		form.name.style.border = "2px solid red";
		return false;
	}
	if(form.url.value.trim() == "")
	{
		alert("You didn't enter a link url.");
		form.url.style.border = "2px solid red";
		return false;
	}	
	if(form.url.value.trim().indexOf("http://") !=0 && form.url.value.trim().indexOf("https://") !=0 )
	{
		alert("Please enter a valid url.\nValid urls begin with 'http://' or 'https://'.");
		form.url.style.border = "2px solid red";
		return false;
	}
	if(form.category.value.trim() == "")
	{
		alert("Please enter at least one category.");
		form.category.style.border = "2px solid red";
		return false;
	}	
	return true;
}

function pauseAndSend(url, ms)
{

setTimeout("window.location='"+url+"'",ms);

}

 function addCategory(form)
 {
	var startString = form.category.value;
	var newString = form.category_select.options[form.category_select.selectedIndex].text;
	if(newString == "")
		return;
	if(startString != "")	
		startString += ", ";
	startString += newString;
	form.category.value = startString;
 }

function deleteThisLink(form)
 {
	var del=confirm("Warning! Your are about to permanently remove the link \""+form.name.value+"\".")
	if (!del)
	{
		return;
	}
	else
	{
		form.action.value="delete";
		form.submit();
	}
 }
		 

function removeThisCategory(form)
{

var cb = form.getElementsByTagName("input");
var catids = "";
var count = 0;
for (var i=0; i<cb.length; i++)
{
	if(cb[i].checked == true)
	{
		if(count>0)
		catids += ",";
		catids += cb[i].value;
		count++;
	}
}
if(catids != "" && count > 0)
{
	var confirmString = "Warning! Your are about to permanently remove "+count;	
	if (count>1)
		confirmString += " categories.";
		else 
			confirmString += " category.";
	var del=confirm(confirmString);
	if (!del)
	{
		return;
	}
	else
	{
	form.catids.value=catids;
	form.action.value="delete";
	form.submit();
	}
}
else
	alert("Nothing was selected.");
}
				
				
function validateRecover(form)
{	
	var username = form.recoveruser.value.trim();
	var userinput = form.recoveruser;
	if(username == "")
	{
		alert("You didn't enter a user name.");
		userinput.style.border = "2px solid red";
		return false;
	}
	if (username.length > 16) {
		alert("User name must be 16 characters or less.");
		userinput.style.border = "2px solid red";
		return false;
	}
	return true;
}

function validateChangePass(form)
{	
	var oldpass = form.oldpass.value.trim();
	var oldinput = form.oldpass;
	var newpass = form.newpass.value.trim();
	var newinput = form.newpass;
	var illegalChars = /\W/;
	if(oldpass == "")
	{
		alert("You didn't enter your old password.");
		oldinput.style.border = "2px solid red";
		return false;
	}
	if (oldpass.length > 10) {
		alert("Password must be 10 characters or less.");
		oldinput.style.border = "2px solid red";
		return false;
	}
  	// allow only letters, numbers, and underscores
    if (illegalChars.test(oldpass)) {
		alert("Password contains illegal characters.");
		oldinput.style.border = "2px solid red";
		return false;
    } 	
	if(newpass == "")
	{
		alert("You didn't enter a new password.");
		newinput.style.border = "2px solid red";
		return false;
	}
	if (newpass.length > 10) {
		alert("New password must be 10 characters or less.");
		newinput.style.border = "2px solid red";
		return false;
	}
  	// allow only letters, numbers, and underscores
    if (illegalChars.test(newpass)) {
		alert("New password contains illegal characters.");
		newinput.style.border = "2px solid red";
		return false;
    } 
	return true;
}
