//inArray - prototype that extends the DOM Array object (needed for Sweet Titles) and also used for any further array objects so no clashes occur

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
}

//

// Add Load Event - runs multiple functions after page has finished loading 

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
		oldonload();
		func();
		}
	}
}

//

// Popup Window Function for links with class="opennewwindow" which adds title attribute

function PopUpWin() {
var findpopups = document.getElementsByTagName("a");
for (var i=0; i<findpopups.length; i++) {
	if (findpopups[i].className == "opennewwindow") {
		findpopups[i].setAttribute("title", "Open in new window");
		findpopups[i].onclick = function() {
		window.open(this.href,"popup","width=400, height=400, scrollbars=yes"); return false;
			}
		}
	}
}

addLoadEvent(PopUpWin);

//

//Get elements by classname function

document.getElementsByClassName = function(name) {
  var results = new Array();
  var elems = document.getElementsByTagName("*");
  for (var i=0; i<elems.length; i++) {
    if (elems[i].className.indexOf(name) != -1) {
      results[results.length] = elems[i];
    }
  }
  return results;
};


//rounded corners

function insertCorners(element) {
  var corners = new Array("northwest","northeast","southeast","southwest");
  for (var i=0; i<corners.length; i++) {
    var span = document.createElement("span");
    span.className = corners[i];
    element.appendChild(span);
  }
}

function roundCorners() {
  var elements = document.getElementsByClassName("rounded");
  for (var i=0; i<elements.length; i++) {
     insertCorners(elements[i]);
  }
}

addLoadEvent(roundCorners);

//

//rounded top corners for news/events images with caption

function insertTopCorners(element) {
  var corners = new Array("northwest","northeast");
  for (var i=0; i<corners.length; i++) {
    var span = document.createElement("span");
    span.className = corners[i];
    element.appendChild(span);
  }
}

function roundTopCorners() {
  var elements = document.getElementsByClassName("round-img-top");
  for (var i=0; i<elements.length; i++) {
     insertTopCorners(elements[i]);
  }
}

addLoadEvent(roundTopCorners);

//

// Fade-up higlighted text and error messages (code by Jeremy Keith 'http://www.adactio.com')

function fadeUp(element,red,green,blue) {
	if (element.fade) {
		clearTimeout(element.fade);
	}
	if (red == 255 && green == 255 && blue == 255) {
		element.style.backgroundColor = "transparent";
		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);
	element.style.backgroundColor = "rgb("+newred+","+newgreen+","+newblue+")";
	element.fade = setTimeout(function() { fadeUp(element,newred,newgreen,newblue) },100);
}
function fadeUpTextback() {
	var feedback = document.getElementsByClassName("fadeback");
	for (var i=0 ; i<feedback.length; i++) {
		fadeUp(feedback[i],255,255,115);
	}
}

addLoadEvent(fadeUpTextback);
function fadeUpErrors() {
	var errors = document.getElementsByClassName("errorMSG");
	for (var i=0 ; i<errors.length; i++) {
		fadeUp(errors[i],255,255,115);
	}
}

addLoadEvent(fadeUpErrors);