
function SubmitAlpha ( alpha )
{
  document.selectusers.alpha.value = alpha ;
  document.selectusers.submit() ;
}

function SubmitScrollPages ( startat )
{
  document.selectusers.startat.value = startat ;
  document.selectusers.submit() ;
}

function SubmitFindCommentScrollPages ( startat )
{
  document.findcomment.startcommentsat.value = startat ;
  document.findcomment.submit() ;
}

function SubmitDeleteComment ( formid, comment )
{
	var form = document.getElementById(formid);
	form.deletecomment.value = comment ;
	form.submit();
}

function SubmitUserCommentScrollPages ( startat )
{
	// alert ("startat="+startat);
	document.usercomment.startcommentsat.value = startat ;
	// alert ( "before document.usercomment.onsubmit="+String(document.usercomment.onsubmit));
	document.usercomment.submit() ;
	// if (!document.getElementsByTagName) return;  
	// var forms = document.getElementsByTagName("form");  
	// for (var i=0; i<forms.length; i++) { 
	   // var formname="commentresponse";
	   // var len = formname.length;
	   // var form = form[i]; 
	   // var name = form.getAttribute("name");
		// if (name.substr(0,len) == formname) 
			// form.startcommentsat.value = startat;  
	// }
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

var result = false;

function checkemail(emailvar){
 var str=emailvar;
 //var filter=/^.+@.+\..{2,3}$/;
 // finds multiple email addresses ignoring whitespace and commas, will not detect trailing comma error
 // var filter=/^\s*(?:[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}(?:,|\s)*)+$/i;
 // finds multiple email addresses ignoring whitespace
 // var filter=/^\s*(?:[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}\s*)+$/i;
 // finds 1 email address ignoring whitespace
 var filter=/^\s*[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}\s*$/i;

 if (filter.test(str))
 {
    result=true;
 }
 else 
 {
    result=false;
 }
 return result;
}

function validate_usercomment()
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
//	alert("submit validate_usercomment\n scroll="+scroll+"\n" );
    if (document.getElementById("newcomment").value.trim() == "")
    {
        alertvalue = alertvalue + "Please enter a comment and try again." ;
		errorcount++;
        valid = false;
    }
	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}
    return valid;
}

function validate_addalbum()
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
    if (document.addalbum.albumname.value.trim() == "")
    {
        alertvalue = alertvalue + "Please enter an album name and try again." ;
		errorcount++;
        valid = false;
    }
	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}
    return valid;
}

function validate_commentresponse(controlID)
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
	// if (!document.getElementsByName) return;
	var el = document.getElementById(controlID).value.trim();
	
    if (el == "")
    {
        alertvalue = alertvalue + "Please enter a comment and try again." ;
		errorcount++;
        valid = false;
    }
	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}
 
	// var name = controlID.replace("newcomment","commentresponse");
	// var elements = document.getElementsByName(name);
	// alert ( name + "length="+elements.length );

	// for (var i=0; i<elements.length; i++) {  
		// var element = elements[i]; 
		// alert ( element + "string="+String(element.name) );
		// alert ( element + "innerHTML="+element.innerHTML );
	// }
	
    return valid;
	
}

function validate_regform()
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
	
	// validate fields
    if (document.updatereg.newpassword.value.trim() == "" || document.updatereg.newpersonname.value.trim() == "" || document.updatereg.newemailaddress.value.trim() == "")
    {
        alertvalue = alertvalue + "Password, name and email address must have a value.  Please enter missing fields and try again." ;
		errorcount++;
        valid = false;
    }

    if (document.updatereg.newpassword.value.trim() == document.updatereg.userid.value.trim())
    {
        alertvalue = alertvalue + "Your UserId and Password must be different.  Please change your password to something else." ;
		errorcount++;
        valid = false;
    }
	
    if (document.updatereg.newemailaddress.value.trim() != "" && !checkemail(document.updatereg.newemailaddress.value))
    {
		alertvalue = alertvalue + "\nPlease enter a valid email address.";
    	errorcount++;
		valid = false;
	}
	
	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}

    return valid;
}

function validate_loginform()
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
	
	// validate fields
    if (document.login.userid.value.trim() == "" || document.login.password.value.trim() == "")
    {
        alertvalue = alertvalue + "You must enter both a user id and password to login.  Please try again." ;
		errorcount++;
        valid = false;
    }
	
	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}

    return valid;
}

function validate_pswform()
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
	
	// validate fields
    if (document.getpassword.userid.value.trim() == "" && document.getpassword.emailaddress.value.trim() == "")
    {
        alertvalue = alertvalue + "You must enter either a user id or email address to retrieve your password.  Please try again." ;
		errorcount++;
        valid = false;
    }

    if (document.getpassword.emailaddress.value.trim() != "" && !checkemail(document.getpassword.emailaddress.value))
    {
		    alertvalue = alertvalue + "\nPlease enter a valid email address.";
    		errorcount++;
			valid = false;
	}

	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}

    return valid;
}

function validate_newregform()
{
    var valid = true;
	var alertvalue = "";
	var errorcount = 0;
	
	// validate fields
    if (document.register.userid.value.trim() == "" || document.register.password.value.trim() == "" || document.register.password2.value.trim() == "" || document.register.personname.value.trim() == "" || document.register.emailaddress.value.trim() == "" || document.register.captchatext.value.trim() == "")
    {
        alertvalue = alertvalue + "Required fields are marked with an *.  Please enter all required fields and try again." ;
		errorcount++;
        valid = false;
    }
	
    if (document.register.emailaddress.value.trim() != "" && !checkemail(document.register.emailaddress.value))
    {
		alertvalue = alertvalue + "\nPlease enter a valid email address.";
    	errorcount++;
		valid = false;
	}
	
    if (document.register.password.value.trim() != "" && document.register.password2.value.trim() != "" && document.register.password.value.trim() != document.register.password2.value.trim())
    {
		alertvalue = alertvalue + "\nThe two passwords you entered are not the same.  Please correct and try again.";
		errorcount++;
		valid = false;
	}
	
    if (document.register.password.value.trim() == document.register.userid.value.trim())
    {
        alertvalue = alertvalue + "\nYour UserId and Password must be different.  Please change one of these to something else." ;
		errorcount++;
        valid = false;
    }
	
    if (document.register.terms.checked != 1)
    {
		alertvalue = alertvalue + "\nYou must agree to the terms and conditions to register.";
    	errorcount++;
		valid = false;
	}
	
	if (valid == false)
	{
		alert ( errorcount + " errors found: \n\n" + alertvalue );
	}

    return valid;
}

function VerifyRemoveFriend()
{
	var agree = confirm ("Are you sure?  You cannot undo this action.")
	if (agree)
		return true;
	else
		return false;

}
function addOnloadEvent(fnc){
  if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", fnc, false );
  else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", fnc );
  }
  else {
    if ( window.onload != null ) {
      var oldOnload = window.onload;
      window.onload = function ( e ) {
        oldOnload( e );
        window[fnc]();
      };
    }
    else
      window.onload = fnc;
  }
}

function traverseDomTree(node) {
  var body_element = document.getElementById(node);
//	alert ( body_element + ", nodeName="+String(body_element.nodeName)+", nodeType="+String(body_element.nodeType)+ ", TagName="+String(body_element.TagName)+", body_element.getAttribute('class')="+String(body_element.getAttribute('class'))+", body_element.className="+String(body_element.className) );

//  var body_element = document.getElementsByTagName("body").item(0);
  traverseDomTree_recurse(body_element, 0);
//  alert("The end"); 
}

function traverseDomTree_recurse(curr_element, level) {
  var i;
  if(curr_element.childNodes.length <= 0) {
    // This is a leaf node.
		setNoScript(curr_element);
    // if(curr_element.nodeName == "#text") {
      // This is a text leaf node,
      // with the following text.
		// var node_text = curr_element.data;
     // }
  } else {
    // Expand each of the children of this node.
    for(i=0; curr_element.childNodes.item(i); i++) {
      traverseDomTree_recurse(curr_element.childNodes.item(i), level+1);
		setNoScript(curr_element.childNodes.item(i));   // check for noscript on intermediate nodes
    }
  }
}

function setNoScript(node) {
	// if (node.nodeName == "DIV") {
		// alert ( node + ", nodeName="+String(node.nodeName)+", nodeType="+String(node.nodeType)+ ", TagName="+String(node.TagName)+", node.getAttribute('class')="+String(node.getAttribute('class'))+", node.className="+String(node.className) );
		// if ( node.innerHTML ) 
			// alert ( node + " , innerHTML="+node.innerHTML );
	// }
	if (node.nodeType == 1) { /* if not text element type */
		if (node.className == "noscript") {
//			alert ("node.className="+node.className+", node attr class="+node.getAttribute("class"));
			node.style.display = 'none'; 
		}
	}
}
//addOnloadEvent(function(){ traverseDomTree("middlebody") });
//window.onload = traverseDomTree;


function expandCollapse(obj) {
  var item = document.getElementById(obj+"emoticons");
  var link = document.getElementById(obj+"link");
  if ( item.style.display != "none" ) 
  { 
	item.style.display = 'none'; 
	link.innerHTML = 'Click here to display emoticons.';
  }
  else 
  { 
	item.style.display = ''; 
	link.innerHTML = 'Click emoticon to add to comment.  Click here to hide emoticons.';
  }

}

function popUpChat(URL) {
id = "sopchat";
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=no,scrollbars=yes,location=no,statusbar=no,menubar=no,resizable=yes,width=800,height=600,left=312,top=180');");
}

function popUpPic(width,height,URL) {
day = new Date();
id = day.getTime();
width+=50;
height+=100;
// looks like using javascript: involves a urldecode which doesn't happen with onclick
//URL=encodeURIComponent(URL);
result=eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=no,scrollbars=yes,location=no,statusbar=no,menubar=no,resizable=yes,width="+width+",height="+height+",left=312,top=180');");
}