function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
/*
function positionMessage() {
  if (!document.getElementById) return false;
  if (!document.getElementById("firebrand-main-container")) return false;
  var elem = document.getElementById("firebrand-main-container");
  elem.style.left = "200px";
  var xpos = elem.style.left;
  alert (xpos)
}
addLoadEvent(positionMessage);
*/
function addClass(element,value) {
	if (!element.className) {
		element.className = value;
		} else {
		newClassName = element.className;
		newClassName+= " ";
		newClassName+= value;
		element.className = newClassName
		}
	}
	
function overwriteClass(element,value) {
	if (!element.className) {
		element.className = value;
		} else {
		element.className = value;
		}
	}
		

function showSection(id, divclass) {
  var divs = document.getElementsByTagName("div");
  for (var i=0; i<divs.length; i++ ) {
    if (divs[i].className.indexOf(divclass) == -1) continue;
    if (divs[i].getAttribute("id") != id) {
      divs[i].style.display = "none";
    } else {
      divs[i].style.display = "block";
    }
  }
}

function showNav(id) {
  var nav = document.getElementById("metro-menu-inline");
  //var nav = document.getElementsByClassName("menu-inline");
  var links = nav.getElementsByTagName("a");
  var items = nav.getElementsByTagName("li");
	for (var i=0; i<links.length; i++ ) 
	   {
   var sectionId = links[i].getAttribute("href").split("#")[1];  
    if (sectionId != id) {
      overwriteClass(links[i], "off");
    } else {
      overwriteClass(links[i], "on");
    }      
  } 
  
  	for (var i=0; i<items.length; i++ ) 
   {
   var sectionId = links[i].getAttribute("href").split("#")[1];  
    if (sectionId != id) {
      overwriteClass(items[i], "backoff");
    } else {
      overwriteClass(items[i], "backon");
    }      
  } 
}

/*     	overwriteClass(links[0], "on");     */

function prepareInternalnav(menu,firstDiv, divclass) {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById(menu)) return false;
	//alert("Works");
  if (!document.getElementById(firstDiv)) return false;
	var firstDiv = document.getElementById(firstDiv);
	firstDivContent = firstDiv.innerHTML;
	//alert(firstDivContent);
  var nav = document.getElementById(menu);
  var items = nav.getElementsByTagName("li");
  var links = nav.getElementsByTagName("a");
  overwriteClass(links[0], "on");
  overwriteClass(items[0], "backon"); 
  for (var i=0; i<links.length; i++ ) {
    var sectionId = links[i].getAttribute("href").split("#")[1];
    if (!document.getElementById(sectionId)) continue;
    document.getElementById(sectionId).style.display = "none";
	document.getElementById(firstDivContent).style.display = "block";
    links[i].destination = sectionId;
    links[i].onclick = function() {
		//alert(this);
		showSection(this.destination, divclass);
		//alert(this.destination);
		//window.navigate(this.destination)
		showNav(this.destination);
		//pageTracker._trackEvent('link', 'click', this.destination)
		//pageTracker._trackEvent('Side menu', this.destination, jscoursecode)
		_gaq.push(['_trackEvent', 'Side menu-inline', this.destination, jscoursecode])		
		//alert(jscoursecode)
      return false;
    }
  }
}
// Turned off by AC 011111
//addLoadEvent(prepareInternalnav);

function menuinline() {
prepareInternalnav("metro-menu-inline","firstDiv", "section")
}
addLoadEvent(menuinline);

function showLocationSection(id) {
  var divs = document.getElementsByTagName("div");
  for (var i=0; i<divs.length; i++ ) {
    if (divs[i].className.indexOf("locationsection") == -1) continue;
    if (divs[i].getAttribute("id") != id) {
      divs[i].style.display = "none";
    } else {
      divs[i].style.display = "block";
    }
  }
}

function showLocationNav(id) {
  var nav = document.getElementById("locationmenu");
  var links = nav.getElementsByTagName("a");
  var items = nav.getElementsByTagName("li");
	for (var i=0; i<links.length; i++ ) 
	   {
   var sectionId = links[i].getAttribute("href").split("#")[1];  
    if (sectionId != id) {
      overwriteClass(links[i], "off");
    } else {
      overwriteClass(links[i], "on");
    }      
  } 
  
  	for (var i=0; i<items.length; i++ ) 
   {
   var sectionId = links[i].getAttribute("href").split("#")[1];  
    if (sectionId != id) {
      overwriteClass(items[i], "backoff");
    } else {
      overwriteClass(items[i], "backon");
    }      
  } 
}

/*     	overwriteClass(links[0], "on");     */

function prepareInternalLocationnav() {
  if (!document.getElementsByTagName) return false;
  if (!document.getElementById) return false;
  if (!document.getElementById("locationmenu")) return false;
  var nav = document.getElementById("locationmenu");
  var links = nav.getElementsByTagName("a");
  overwriteClass(links[0], "on");
  for (var i=0; i<links.length; i++ ) {
    var sectionId = links[i].getAttribute("href").split("#")[1];
    if (!document.getElementById(sectionId)) continue;
    document.getElementById(sectionId).style.display = "none";
    links[i].destination = sectionId;
    links[i].onclick = function() {
      showLocationSection(this.destination);
      showLocationNav(this.destination);
      return false;
    }
  }
}

addLoadEvent(prepareInternalLocationnav);

function prepareInternalReadMorenav() {
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	var read_more = document.getElementsByTagName("a");
	for (var i=0; i<read_more.length; i++ ) {
		if (read_more[i].className == "readmore"){
			var sectionId = read_more[i].getAttribute("href").split("#")[1];
			if (!document.getElementById(sectionId)) continue;
			read_more[i].destination = sectionId;
			read_more[i].onclick = function() {
				showNav(this.destination);
				showSection(this.destination, "section");
				document.getElementById("metro-menu-inline").scrollIntoView(true);
				_gaq.push(['_trackEvent', 'Read more', this.destination, jscoursecode])		
				//scroll(0,400);
				return false;
			}
		}
	}
}
addLoadEvent(prepareInternalReadMorenav);


  function firebrandPrint(){ 
  if (!document.getElementsByTagName) return false;   
 var divs = document.getElementsByTagName("div");
  for (var i=0; i<divs.length; i++ ) {
    if (divs[i].className.indexOf("section") == -1) continue;
    divs[i].style.display = "block"; 
          }
  window.print();
}

function stripeNumberList() {
	if (!document.getElementsByTagName) return false;
	var orderList = document.getElementsByTagName("ol");
	for (var i=0; i<orderList.length; i++) {
	if (orderList[i].className.indexOf("list-stripes") == -1) continue;
		var odd = false;
		var lirows = orderList[i].getElementsByTagName("li");
		for (var j=0; j<lirows.length; j++) {
			if (odd == true) {
				addClass(lirows[j], "odd")
				odd = false
			} else {
				odd = true;
				}
			}
		}
	}
addLoadEvent(stripeNumberList);


function stripeTables() {
	if (!document.getElementsByTagName) return false;
	var tables = document.getElementsByTagName("table");
	for (var i=0; i<tables.length; i++) {
	if (tables[i].className.indexOf("firebrand-table") == -1) continue;
		var odd = false;
		var rows = tables[i].getElementsByTagName("tr");
		for (var j=0; j<rows.length; j++) {
			if (odd == true) {
				addClass(rows[j], "odd-color")
				odd = false
				} else {
				odd = true;
				}
			}
		}
	}
addLoadEvent(stripeTables);



function stripeTestimonials() {
	if (!document.getElementsByTagName) return false;
	var div = document.getElementsByTagName("div");
	for (var i=0; i<div.length; i++) {
	if (div[i].className.indexOf("testimonial-stripes") == -1) continue;
		var odd = false;
		var rows = div[i].getElementsByTagName("div");
		for (var j=0; j<rows.length; j++) {
			if (odd == true) {
				addClass(rows[j], "odd-color")
				odd = false
				} else {
				odd = true;
				}
			}
		}
	}
addLoadEvent(stripeTestimonials);
		

function externalLinks() {
	if(!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName('a');
	for(var i=0; i<anchors.length;i++) {
 		if(anchors[i].className) {
    		if(anchors[i].href && (anchors[i].className == 'external' || anchors[i].className == 'external-image')) {
       		anchors[i].target = '_blank';
    		}
		}
	}
}
addLoadEvent(externalLinks);




/***********************************************
* Random Content (from DIVs) script- by JavaScript Kit (www.javascriptkit.com)
* This notice must stay intact for usage
* Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and 100s more
***********************************************/

if (document.getElementById)
document.documentElement.className = 'jsclass'; //hide content for DOM capable browsers


var randomcontentdisplay={
	divholders:new Object(),
	masterclass: "randomcontent",

	init:function(){
		if (!document.getElementById)
			return
		var alldivs=document.getElementsByTagName("div")
		var randomcontentsearch=new RegExp(this.masterclass+"\\s+(group\\d+)", "i") //check for CSS class="randomcontent groupX" (x=integer)
		for (var i=0; i<alldivs.length; i++){
			if (randomcontentsearch.test(alldivs[i].className)){
				if (typeof this.divholders[RegExp.$1]=="undefined") //if array to hold this group of divs doesn't exist yet
					this.divholders[RegExp.$1]=new Array() //create array first
					this.divholders[RegExp.$1].push(alldivs[i]) //add this div to the array
			}
		}
	this.showone()
	},

	showone:function(){
		for (group in this.divholders){ //loop thru each array within object
			var chosenOne=Math.floor(Math.random()*this.divholders[group].length) //randomly pick one entry from array
			this.divholders[group][chosenOne].style.display="block" //display content corresponding to the chosen entry
		}
	}
}

/* Function to get mouse over working in IE on top menu */

sfHover = function() {
	if (!document.getElementById)return false
	if (!document.getElementById("nav")) return false;
	var sfEls = document.getElementById("nav").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);  

/* labels to element click */

function validateForm(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
	
    if (element.className.indexOf("first-name") != -1) {
		element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(nameRegex)) {
        alert(firstNameALert);
		element.focus();
        return false;
      }
    }
	
    if (element.className.indexOf("last-name") != -1) {
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(nameRegex)) {
        alert(lastNameALert);
		element.focus();
        return false;
      }
    }
	
	if (element.className.indexOf("email") != -1) {
	element.value = element.value.replace(/^\s+|\s+$/g, '');
     /* if(!element.value.match(emailRegex)) { */
	  if (element == "" || element.value == "epost@namn.se" || element.value == "navn@email.dk" || element.value == "navn@email.no" || element.value == "namn@epost.fi" || !element.value.match(emailRegex)) {        
		alert(emailALert);
		element.focus();
        return false;
      }
    }

	if (element.className.indexOf("phone") != -1) {
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(telRegex)) {
        alert(phoneALert);
		element.focus();
        return false;
      }
    }
	
	if (element.className.indexOf("course") != -1) {
      if (element.selectedIndex < 0) {
        alert(courseSelectALert);
		element.focus();
        return false;
      }
    }

	if (element.className.indexOf("date") != -1) {
      if (element.selectedIndex < 0) {
        alert(courseDateSelectALert);
		element.focus();
        return false;
      }
    }
    
    if (element.className.indexOf("tandccheck") != -1) {
      if (element.checked == false) {
        alert(tandcALert);
		element.focus();
        return false;
      }
    }
	
  }
  return true;
}


function resetFields(whichform) {
  for (var i=0; i<whichform.elements.length; i++) {
    var element = whichform.elements[i];
	if (element.className.indexOf("default") != -1) {
		if (element.type == "submit") continue;
		if (!element.defaultValue) continue;
		element.onfocus = function() {
			if (this.value == this.defaultValue) {
			this.value = "";
			}
			}
		element.onblur = function() {
		if (this.value == "") {
        this.value = this.defaultValue;
		}
      }
    }
  }
}


function prepareForms() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
	    resetFields(thisform);
		if (thisform.className.indexOf("validate")!= -1) {
		thisform.onsubmit = function() {
		return validateForm(this);
		}
    }
  }
}
	
addLoadEvent(prepareForms);




function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}



/* This focuses on the search box on page load*/

function getFocus() {
if (!document.getElementById)return false
if (!document.getElementById("q")) return false;
  // place the id below of the field you want to have focus upon page load
  var focusHere = document.getElementById("q");
  focusHere = focusHere.focus();
}

addLoadEvent(getFocus);



function reviewMenuClass() {
 if (!document.getElementsByTagName) return;
 var review = document.getElementsByTagName("a");
 for (var i=0; i<review.length; i++) {
 	var r = review[i];
   if (r.getAttribute("title") == "Reviews") {
     addClass(r, "review");
    }

}
}
addLoadEvent(reviewMenuClass);














/* Jan 2009 form Validation */

// Clears form for testing purpose, is called from prepare forms

function clearRB(whichform) {
	for (i=0; i < whichform.elements.length; i++) {
	var element = whichform.elements[i];
		if (element.checked == true) { // if a button in group is checked,
             element.checked = false;   // uncheck it
		} 
   }   
}

//Show inputs and radios as bad if bad after submission

function showErrorId(thisError) {
	if (!document.getElementById)return false;
	if (!document.getElementById(thisError))return false;
	var formErrors = document.getElementById(thisError);
	var elementClass = formErrors.className;
	if (elementClass.indexOf("noerror") != -1) {
		overwriteClass(formErrors,"errorshow");
	}	
}

//Show inputs as good if correct after submission

function contentGood(thisError) {
	if (!document.getElementById) return false;
	if (!document.getElementById(thisError)) return false;
	var formErrors = document.getElementById(thisError);
	var elementClass = formErrors.className;
	if (elementClass.indexOf("noerror") != -1) {
	addClass(formErrors,"contentGood");
	}	
}

//Hides all content errors, is called from validateRadioForm when submitting

function hideError() {
  if (!document.getElementsByTagName) return false;
    if (!document.getElementsByTagName("div")) return false;
  var perror = document.getElementsByTagName("div");
  for (var i=0; i<perror.length; i++) {
	if (perror[i].className.indexOf("errorshow") == -1) continue;
		overwriteClass(perror[i],"noerror");
	}
}

//Hides all radio errors, is called from validateRadioForm when submitting

function hideErrorRadio() {
	if (!document.getElementsByTagName) return false;
	if (!document.getElementsByTagName("tr")) return false;
	var perror = document.getElementsByTagName("tr");
	for (var i=0; i<perror.length; i++) {
	if (perror[i].className.indexOf("errorshow") == -1) continue;
		overwriteClass(perror[i],"noerror");
	}
}

//Focuses on first error, is called from validateRadioForm

function focusId(thisError) {
	if (!document.getElementById)return false;
	if (!document.getElementById(thisError))return false;
	var focusError = document.getElementById(thisError.substring(2)); 
	//remove first two letters from ID
	focusError.focus()
}

//Validates inputs, is called from prepare forms

function validateFormInline(whichform) {
	
hideError() //Hide all previous input errors when resubmitting
var formReturn = true // setting a default for formReturn. If any of th inputs are not satisfied then this will be set to false

  for (var i=0; i<whichform.elements.length; i++) {
	var element = whichform.elements[i];
	var emailRegex = /^.+@((.{2,})+\.)+[\w-]{2,4}$/;
	var telRegex =  /^(.{5,40})$/;
	var nameRegex = /^(.{2,})$/;
	var companyRegex = /^([0-9a-zA-ZæÆøØåÅäöüÄÖÜß\/]{1,})+(([\'\,\.\- ][a-zA-ZæÆøØåÅäöüÄÖÜß\/])?[a-zA-ZæÆøØåÅäöüÄÖÜß\/]*)*$/;
	  
	 if (element.className.indexOf("name") != -1) {
	var elementName = "name"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(nameRegex)) {
        showErrorId(elementName);
		element.focus();
		formReturn = false;
      }
	  else
		contentGood(elementName)
    }
	  	
    if (element.className.indexOf("firstname") != -1) {
	var elementName = "firstname"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(nameRegex)) {
        showErrorId(elementName);
		element.focus();
		formReturn = false;
      }
	  else
		contentGood(elementName)
    }
	
    if (element.className.indexOf("lastname") != -1) {
	var elementName = "lastname"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(nameRegex)) {
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
	  else
		contentGood(elementName)
    }
	
	if (element.className.indexOf("email") != -1) {
	  	var elementName = "email"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
     /* if(!element.value.match(emailRegex)) { */
	  if (element == "" || element.value == domainEmailJsCheck || !element.value.match(emailRegex)) {        
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
      	  else
		contentGood(elementName)
    }

	
	if (element.className.indexOf("phone") != -1) {
		var elementName = "phone"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(telRegex)) {
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
          else
		contentGood(elementName)
    }
    

	
	if (element.className.indexOf("course") != -1) {
		var elementName = "course"
      if (element.selectedIndex < 0) {
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
         else
		contentGood(elementName)
      
    }
    
    if (element.className.indexOf("instructor") != -1) {
		var elementName = "instructor";
      if (element.selectedIndex == 0) {
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
         else
		contentGood(elementName)
      
    }

	if (element.className.indexOf("date") != -1) {
      if (element.selectedIndex < 0) {
        alert(courseDateSelectALert);
		element.focus();
		formReturn = false;
      }
    }
    
    if (element.className.indexOf("tandccheck") != -1) {
      if (element.checked == false) {
        alert(tandcALert);
		element.focus();
		formReturn = false;
      }
    }  
    
	if (element.className.indexOf("payment_how") != -1) {
		var elementName = "payment_how"
      if (element.selectedIndex == 0) {
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
         else
		contentGood(elementName)
      
    }  
    
    if (element.className.indexOf("payment_cost") != -1) {
		var elementName = "payment_cost"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
      if (!element.value.match(priceRegex)) {
        showErrorId(elementName)
		element.focus();
		formReturn = false;
      }
          else
		contentGood(elementName)
    }  

	if (element.className.indexOf("location") != -1) {
	var elementName = "location";
		if (element.selectedIndex == 0) {
			showErrorId(elementName)
			formReturn = false;
		}
		else
		contentGood(elementName)  
	}   	

	if (element.className.indexOf("student_company") != -1) {
	var elementName = "student_company"
	element.value = element.value.replace(/^\s+|\s+$/g, '');
		if (!element.value.match(companyRegex)) {
		showErrorId(elementName)
		element.focus();
		formReturn = false;
		}
		else
		contentGood(elementName)
	}
	
  }  
  
  if (formReturn == false) { // If any of the inputs have not been satisfied then return false
  return false
  }
  
  return true;
}

//Validates radio buttons, is called from prepare forms

function validateRadioForm(whichform) {
var formReturn = true // setting a default for formReturn. If any of th inputs are not satisfied then this will be set to false

  	//var emailRegex = /^[\w-æÆøØåÅäöüÄÖÜß\.]+@([\w-æÆøØåÅäöüÄÖÜß]+\.)+[\w-]{2,4}$/;
	//var nameRegex = /^([a-zA-ZæÆøØåÅäöüÄÖÜß]{1,})+(([\'\,\.\- ][a-zA-ZæÆøØåÅäöüÄÖÜß])?[a-zA-ZæÆøØåÅäöüÄÖÜß]*)*$/;
	//var telRegex =  /^([0-9\ \)\(\+]{5,25})$/; 

	hideError() //Hide all previous input errors
	hideErrorRadio() //Hide all previous radio errors
	
	for (var i=0; i<whichform.elements.length; i++) {
	var element = whichform.elements[i];
	
	var focusInput = 0;
		if (element.className.indexOf("coursedate") != -1) {
		var elementName = "coursedate";
    		if (element.selectedIndex == 0) {
        		showErrorId(elementName)
				element.focus();
        		formReturn = false;
      		}
        	else
			contentGood(elementName)  
    	}
    	
    	if (element.className.indexOf("student_company") != -1) {
		var elementName = "student_company"
		element.value = element.value.replace(/^\s+|\s+$/g, '');
      		if (!element.value.match(companyRegex)) {
        	showErrorId(elementName)
        	element.focus();
			formReturn = false;
     		}
	  		else
			contentGood(elementName)
    	}
    	
    	if (element.className.indexOf("location") != -1) {
		var elementName = "location";
    		if (element.selectedIndex == 0) {
        		showErrorId(elementName)
        		formReturn = false;
      		}
        	else
			contentGood(elementName)  
    	}   	
    }	
	
	
	if (!document.getElementsByTagName) return false;
	if (!document.getElementsByTagName("tr")) return false;
	if (!document.getElementsByTagName("input")) return false;
	if (!document.getElementById) return false;
	var radios = document.getElementsByTagName("tr");
	var radioArray = new Array();
	var labelArray = new Array();
	n = 0 ;
		for (var i=0; i<radios.length; i++) {
			//radioButtons = radios[i].getAttribute("id")
			if (!radios[i].getAttribute("id") == 0) {
				if (radios[i].getAttribute("id").indexOf("rc") == 0) {
					radioArray[n] = radios[i].getAttribute("id");
					n++;
				}
			}
/*
			alert (radios[i].getAttribute("id"));
			if (!radios[i].getAttribute("id") == 0) {
				radioArray[n] = radios[i].getAttribute("id");
				n++;
			}
*/
		}

		for (var i=0; i<radioArray.length; i++) {
			var row = document.getElementById(radioArray[i])
			var radios = row.getElementsByTagName("input")
	 
			var noradiochecked = true
			for (var j=0; j<radios.length; j++){
				if(radios[j].checked == true){
					noradiochecked = false;
				}
			}
			if (noradiochecked == true) {
				// no radio button is selected
				var radioLabel = "rl" + radioArray[i].slice(2); // account for label in different tr, same id except with rl instead of rc at the front
				if (document.getElementById(radioLabel)){
					showErrorId(radioLabel)
				}
				showErrorId(radioArray[i])
				if (focusInput == 0 ) {
					focusId(radioArray[i])
				}
				focusInput = focusInput + 1	
				formReturn = false;	
			}
			else
			contentGood(radioArray[i])  
		}
		
  	if (formReturn == false) { // If any of the inputs have not been satisfied then return false
  		return false;
  	}
  return true;
}

// Fire validateFormInline function if a form with the class 'validateinline' is submitted

function prepareFormsInline() {
  for (var i=0; i<document.forms.length; i++) {
    var thisform = document.forms[i];
	    resetFields(thisform);
		if (thisform.className.indexOf("validateinline")!= -1) {
		thisform.onsubmit = function() {
		return validateFormInline(this);
		}
    }
  }
}
	
addLoadEvent(prepareFormsInline);



