

//
// check email
//

function isEmail (s){

var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz";
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var validDomainNameChars = digits + uppercaseLetters + lowercaseLetters + "-_.";
var whitespace = " \t\n\r";
var defaultEmptyOK = false;

    if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    if (isWhitespace(s)) return false;
    var atloc = 0;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++ }
    if ((i >= sLength) || (s.charAt(i) != "@")) {alert (s + "  is not a valid email address"); return false}
//    if ((i >= sLength) || (s.charAt(i) != "@")) {alert ("no @ sign"); return false}
    else atloc = i;
    j = i+1;
    i += 1;
    while ((j < sLength) && (validDomainNameChars.indexOf(s.charAt(j)) != -1))
    { j++ }
    if (j < sLength) {alert(s + "  is not a valid email address"); return false};
//    if (j < sLength) {alert("invalid character in domain name: "+s.charAt(j)); return false};
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++ }
    if (i == sLength) {alert(s + "  is not a valid email address"); return false}
//    if (i == sLength) {alert("no . in domain name"); return false}
    if (i == (atloc +1)) {alert(s + "  is not a valid email address"); return false}
//    if (i == (atloc +1)) {alert("not enough space between @ and ."); return false}
    k = atloc+1;
    while (k < sLength){
      if ((s.charAt(k) == ".") && (s.charAt(k+1) == ".")) {alert(s + "  is not a valid email address"); return false}
//      if ((s.charAt(k) == ".") && (s.charAt(k+1) == ".")) {alert("too many .'s"); return false}
      k++
    }
    l = sLength;
    while ((i < sLength -2) && (l != i) && (s.charAt(l) != "."))
    { l = l-1 }
    if ((i >= sLength - 2) || (s.charAt(i) != ".") || (l >= sLength - 2)) {alert(s + "  is not a valid email address"); return false}
//    if ((i >= sLength - 2) || (s.charAt(i) != ".") || (l >= sLength - 2)) {alert("not enough chars after ."); return false}
    else return true;


function isEmpty(s) {
    return ((s == null) || (s.length == 0))
}

function isWhitespace(s) {
    var i;

    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false; // not whitespace
    }
    return true;
}

}

//
// Portfolio links
//

function assemlinks(A,B,C,D,E,F,G,H) {
document.write("	<a ' href='index.html'>Statement</a><br><br>");
document.write("	<b>Assemblages</b><br>");
document.write("	<a class='"+ A +"' href='yosemitefalls.html'>Yosemite Falls</a><br>");
document.write("	<a class='"+ B +"' href='broderick.html'>Mt. Broderick</a><br>");
document.write("	<a class='"+ C +"' href='hetchhetchy.html'>Hetch Hetchy</a><br>");
document.write("	<a class='"+ D +"' href='fortpoint.html'>Fort Point</a><br>");
document.write("	<a class='"+ E +"' href='goldengate.html'>The Golden Gate</a><br>");
document.write("	<a class='"+ F +"' href='montgomery.html'>Montgomery Street</a><br>");
document.write("	<a class='"+ G +"' href='meadow.html'>Meadow</a><br>");
document.write("	<a class='"+ H +"' href='oaks.html'>Oaks</a><br>");
}



//
//FUNCTIONALITY
//

function stopSpam(mail1, sbj) {
  var displaytext = "click here&nbsp;&raquo;."; // Enter text to display on page
  var mail1 = mail1; // Enter first part of e-mail address
  var mail2 = "thomasbachand.com"; // Enter second part of e-mail address
  var subject = sbj; // enter subject for e-mail
  document.write("<a href=" + "mail" + "to:" + mail1 + "@" + mail2 + subject + ">" + displaytext + "</a>");
}





/* Google Analytics Async Tracking Code */
 var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-6325832-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  
/* Google Analytics Async Outbound Link tracking */
  function recordOutboundLink(link, category, action) {
  try {
    var pageTracker=_gat._getTracker("UA-6325832-1");
    pageTracker._trackEvent(category, action);
    setTimeout('document.location = "' + link.href + '"', 100)
  }catch(err){}
}


