function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
function obfuscate(){
	var emailtickets = getElementsByClassName(document, "span", "emailtickets");
	var emails = getElementsByClassName(document, "span", "email");
	for (var i=0; i<emails.length; i++) {
	 emails[i].innerHTML = '<a href ="&#109;&#097;&#105;&#108;&#116;&#111;:&#105;&#110;&#102;&#111;&#064;&#101;&#110;&#100;&#097;&#114;&#101;&#105;&#108;&#108;&#121;&#046;&#099;&#111;&#109;">&#105;&#110;&#102;&#111;&#064;&#101;&#110;&#100;&#097;&#114;&#101;&#105;&#108;&#108;&#121;&#046;&#099;&#111;&#109;</a>'
	}
	
	for (var j=0; j<emailtickets.length; j++) {
	 emailtickets[j].innerHTML = '<a href ="&#109;&#097;&#105;&#108;&#116;&#111;:&#116;&#105;&#099;&#107;&#101;&#116;&#115;&#064;&#101;&#110;&#100;&#097;&#114;&#101;&#105;&#108;&#108;&#121;&#046;&#099;&#111;&#109;?&#115;&#117;&#098;&#106;&#101;&#099;&#116;=&#116;&#105;&#099;&#107;&#101;&#116;&#115;">&#116;&#105;&#099;&#107;&#101;&#116;&#115;&#064;&#101;&#110;&#100;&#097;&#114;&#101;&#105;&#108;&#108;&#121;&#046;&#099;&#111;&#109;</a>'
	}
}
	
	
function prepareLinks() {
  if (!document.getElementById || !document.getElementsByTagName) {
    return;
  }
/*  if (!document.getElementById("nav")) {
    return;
  }
  var list = document.getElementById("nav");
  //var links = list.getElementsByTagName("a");
  var links = getElementsByClassName(document, "a", "email");
  for (var i=0; i<links.length; i++) {
	if(links[i].getAttribute("class") != "external"){
		links[i].onclick = function() {
		  var query = this.getAttribute("href").split("?")[1];
		  var url = "pages.php?"+query;
		  return !grabFile(url);
		};
    };
  } 
*/
  var internalLinks = getElementsByClassName(document, "a", "internal");
  for (var i=0; i<internalLinks.length; i++) {
	internalLinks[i].onclick = function() {
	  var query = this.getAttribute("href").split("?")[1];
	  var url = "pages.php?"+query;
	  return !grabFile(url);
    };
  }
  
	if (document.getElementById("songlist")) {
		  var songlist = document.getElementById("songlist");
		  var songlinks = songlist.getElementsByTagName("a");
		  for (var i=0; i<songlinks.length; i++) {
			songlinks[i].onclick = function() {
			  var query = this.getAttribute("href").split("?")[1];
			  var url = "pages.php?"+query;
			  return !grabFile(url);
			};
		  }
  	}

}

function grabFile(file) {
  var request = getHTTPObject();
  if (request) {
    displayLoading(document.getElementById("pageContent"));
    request.onreadystatechange = function() {
      parseResponse(request);
    };
    request.open("GET", file, true);
    request.send(null);
    return true;
  } else {
    return false;
  }
}

function parseResponse(request) {
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
      var pageContent = document.getElementById("pageContent");
      pageContent.innerHTML = request.responseText;
      fadeUp(pageContent,230,240,255);
	  prepareLinks();
	  obfuscate();
	  pastgigs();
	  if (document.getElementById("galleryBox")) {
	  	var gal = new SWFObject("gallery.swf", "endaGallery", "480", "514", "8");
		gal.write("galleryBox");
	  }
    }
  }
}

function getHTTPObject() {
  var xhr = false;
  if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  }
  return xhr;
}

function displayLoading(element) {
  while (element.hasChildNodes()) {
    element.removeChild(element.lastChild);
  }
  var image = document.createElement("img");
  image.setAttribute("src","images/loading.gif");
  image.setAttribute("alt","Loading...");
  element.appendChild(image);
}

function fadeUp(element,red,green,blue) {
  if (element.fade) {
    clearTimeout(element.fade);
  }
  element.style.backgroundColor = "rgb("+red+","+green+","+blue+")";
  if (red == 255 && green == 255 && blue == 255) {
    return;
  }
  var newred = red + Math.ceil((255 - red)/10);
  var newgreen = green + Math.ceil((255 - green)/10);
  var newblue = blue + Math.ceil((255 - blue)/10);
  var repeat = function() {
    fadeUp(element,newred,newgreen,newblue)
  };
  element.fade = setTimeout(repeat,100);
}

