// If user reads message and confirms function will return otherwise it won't!
function confirmMessage(message) {
	if (confirm(message)) {
		return true;
	} else {
		return false;
	}
}

// Wrapper function for confirm.
function confirmDelete() {
	var msg = "Are you sure you want to delete this message?";
	return confirmMessage(msg);
}

// Wrapper function for confirm.
function confirmBlock(user) {
	var msg = "Are you sure you want to delete this message and block future "
		+ "messages from " + user + "?\n\n"
		+ "Users can be unblocked by removing them from the blocked users list in "
		+ "your settings.";
	return confirmMessage(msg);
}

////////////////////////////////////////////////////////////////////////////////
// OLD STUFF!
////////////////////////////////////////////////////////////////////////////////

// Core Javascript functions
var showing = '';

function clearval(i) {
  if (i.defaultValue==i.value) {i.value = "";}
}

var DHTML = (document.getElementById || document.all || document.layers);
function getObj(name) { 
	if (document.getElementById) { 
		this.obj = document.getElementById(name); 
		this.style = document.getElementById(name).style; 
	} else if (document.all) { 
		this.obj = document.all[name];
		this.style = document.all[name].style; 
	}
}

function layerDisp(lyr,flag) {
	if(!DHTML) return; 
	var x = new getObj(lyr); 
	x.style.display = (flag)? 'block' : 'none';
} 

function OnOff(lyr) { 
	if(!DHTML) return; 
	var x = new getObj(lyr);
	var flag = (x.style.display == 'none')? 1 : 0;
	layerDisp(lyr,flag); 
}

function ftyqlink(context,p) {
        document.write('<span class="yplink"><form action="http://yq.search.yahoo.com/search" method="post" style="display:inline">');
        document.write('<input type="hidden" name="context" value="' + p + ' ' + context + ' photos" />');
        document.write('<input type="hidden" name="p" value="' + p + '" />');
        document.write('<input type="hidden" name="c2" value="<div align=\'center\'><iframe scrolling=\'no\' border=\'0\' frameborder=\'0\' src=\'http://www.fotothing.com/yqadframe.php?hints=' + escape(p) + '\' width=234 height=60>">');
        document.write('<input type="hidden" name="sourceOrder" value="c2,y,c3">');
        document.write('</form>');
        document.write('<a href="#" onClick="activateYQinl(this)" class="orangebutton" title="Find related web pages on Yahoo">&nbsp;R&nbsp;</a></span>');
}


function showinfo(id) {
        if (showing) {
                //document.getElementById('showing').style.display='none';
                obj2 = document.getElementById(showing) ;
                obj2.style.display = 'none';
        }
        obj = document.getElementById(id);
        obj.style.display = '';
        obj3 = document.getElementById('infocontainer');
        obj3.style.display = '';
        showing = id;
}

function hideinfo() {
        obj = document.getElementById('infocontainer');
        obj.style.display = 'none';
}

function commentOn(commentId,infoText) {
	var commentId;
	var infoText;
	obj = document.getElementById('info');
	location.href = '#addcomment';
	document.form1.inreplyto.value = commentId;
	obj.innerHTML = infoText + ' <br><a href="jav' + 'ascript:clearComment()"><img src="http://static.fotothing.com/images/clear.gif" border="0" alt="Clear"></a>';
}


function uploadPhoto() {
	if (document.form1.filename.value == '') {
		alert ('You must select a photo to upload!');
		return false;
	} else {
		obj = document.getElementById('uploadbox');
		obj.style.display = 'none';
		obj2 = document.getElementById('statusbox');
		obj2.innerHTML = '<div align="center"><br><div class="errormsg">Uploading....<br>Please wait. This may take a while.</div><br></div>';
		return true;
	}
}

function clearComment() {
	obj = document.getElementById('info');
	obj.innerHTML = '';
	document.form1.inreplyto.value = '';

}

function DoPreview(field,x1,x2,id) {
//  if (navigator.appName != "Netscape")  {
        var filename = field.value;
	if (filename) {
                var Img = new Image();
                obj=document.getElementById(x1)
                obj.src = filename;
	            document.getElementById(x2).innerHTML='preview of photo '+id;
	}
	document.form1.filename.value = filename;
//  }
}



function addfavourite(nick,photo_id,id)
{
    report=new Image();
    report.src='/addfavourite.php?nick='+nick+'&photo_id='+photo_id+'&id='+id;
    alert("Photo has been added to your favourites");
}

function emailCheck (emailStr) {
/* The following pattern is used to check if the entered e-mail address
   fits the user@domain format.  It also is used to separate the username
   from the domain. */
var emailPat=/^(.+)@(.+)$/
/* The following string represents the pattern for matching all special
   characters.  We don't want to allow special characters in the address. 
   These characters include ( ) < > @ , ; : \ " . [ ]    */
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
/* The following string represents the range of characters allowed in a 
   username or domainname.  It really states which chars aren't allowed. */
var validChars="\[^\\s" + specialChars + "\]"
/* The following pattern applies if the "user" is a quoted string (in
   which case, there are no rules about which characters are allowed
   and which aren't; anything goes).  E.g. "jiminy cricket"@disney.com
   is a legal e-mail address. */
var quotedUser="(\"[^\"]*\")"
/* The following pattern applies for domains that are IP addresses,
   rather than symbolic names.  E.g. joe@[123.124.233.4] is a legal
   e-mail address. NOTE: The square brackets are required. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
/* The following string represents an atom (basically a series of
   non-special characters.) */
var atom=validChars + '+'
/* The following string represents one word in the typical username.
   For example, in john.doe@somewhere.com, john and doe are words.
   Basically, a word is either an atom or quoted string. */
var word="(" + atom + "|" + quotedUser + ")"
// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
/* The following pattern describes the structure of a normal symbolic
   domain, as opposed to ipDomainPat, shown above. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")


/* Finally, let's start trying to figure out if the supplied address is
   valid. */

/* Begin with the coarse pattern to simply break up user@domain into
   different pieces that are easy to analyze. */
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
  /* Too many/few @'s or something; basically, this address doesn't
     even fit the general mould of a valid e-mail address. */
	alert("Email address seems incorrect (check @ and .'s)")
	return false
}
var user=matchArray[1]
var domain=matchArray[2]

// See if "user" is valid 
if (user.match(userPat)==null) {
    // user is not valid
    alert("The username doesn't seem to be valid.")
    return false
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
   host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {
	        alert("Destination IP address is invalid!")
		return false
	    }
    }
    return true
}

// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
	alert("The domain name doesn't seem to be valid.")
    return false
}

/* domain name seems valid, but now make sure that it ends in a
   three-letter word (like com, edu, gov) or a two-letter word,
   representing country (uk, nl), and that there's a hostname preceding 
   the domain or country. */

/* Now we need to break up the domain to get a count of how many atoms
   it consists of. */
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>4) {
   // the address must end in a two letter or three letter word.
   alert("The address must end in a three or four-letter domain, or two letter country.")
   return false
}

// Make sure there's a host name preceding the domain.
if (len<2) {
   var errStr="This address is missing a hostname!"
   alert(errStr)
   return false
}

// If we've gotten this far, everything's valid!
return true;
}

function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
countfield.value = maxlimit - field.value.length;
}