corefunctions = {
  init: function () 
  {
    this.loadevent(this.externallinks);
  },
  loadevent: function (func) 
  {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
      window.onload = func;
    } else {
      window.onload = function() {
        if (oldonload) {
          oldonload();
        }
        func();
      }
    }
  },
  externallinks: function () 
  {
    if ( document.getElementsByTagName ) {
       var links = document.getElementsByTagName ( 'a' );
       for (var i = 0; i < links.length; i++ ) {
		 	if(links[i].getAttribute("rel") && links[i].getAttribute("href")) {
				links[i].onclick = function() {
					var theURL = this.getAttribute("href");
					var theREL = this.getAttribute("rel");
					var relArr = theREL.split('|');
					if (relArr[0] == 'external'){
						this.target = '_blank';
					}
					if (relArr[0] == 'externalpop'){
						return corefunctions.popup(theURL,theREL);
					}
			  	}
			}
       }
	   
       var links = document.getElementsByTagName ( 'area' );
       for (var i = 0; i < links.length; i++ ) {
         var link = links[i];
				 	if(links[i].className=="external" && links[i].getAttribute("href")) {
						links[i].onclick = function() {
							var theURL = this.getAttribute("href");
							//var theREL = this.getAttribute("class");
							var theREL = this.className;
							var relArr = theREL.split('|');
							if (relArr[0] == 'external'){
								this.target = '_blank';
							}
							if (relArr[0] == 'externalpop'){
								return corefunctions.popup(theURL,theREL);
							}
					  	}
					}
       }
	   
    }//end outer if to get tag name
  },
	popup: function(theURL,theREL){
		var totalNumProps = 11;
		var reqNumProps = 4;
		var relArr = theREL.split(" ");
		
		//Check for syntax of REL string value and determine value for position. If syntax is incorrect, do not open a window.
		if(relArr.length > 2){
			//alert('INCORRECT! Too many spaces in REL tag associated with this link: '+ relArr);
			return false;
		}else if( (relArr.length == 2) && (relArr[1] != "") ){	
			var position = relArr[1];
			
		}else{
			var position = "default";	
		}
	
		//Check for syntax of remaining REL string values and set properties. If syntax is incorrect, do not open a window. 
		relArr = relArr[0];
		relArr = relArr.split("|");
		if ( (relArr.length < reqNumProps) || (relArr[relArr.length-1] == "") || (this.myParseInt(relArr[2], 0) == 0) || (this.myParseInt(relArr[3], 0) == 0) ){
			//alert('INCORRECT! Must have at least 4 initial values or there is an extra | separator or width/height is not a number!');
			return false;
		}
		
		var newArr = new Array(totalNumProps-relArr.length);
		for ( var i=0; i < newArr.length; i++) {
				newArr[i] = "0";
		}
		relArr = relArr.concat(newArr);
		var func = relArr[0]; 
		var target = relArr[1];
		var width = relArr[2];
		var height = relArr[3];			
		var toolbar = relArr[4];
		var scrollbars = relArr[5];
		var menubar = relArr[6];
		var resizable = relArr[7];
		var status = relArr[8];
		var location = relArr[9];
		var directory = relArr[10];
		
		for(var i=0; i < relArr.length; i++){
			var currProp = relArr[i];
			switch (currProp){
				case "t":
					toolbar = "1";
					break;
				case "s":
					scrollbars = "1";
					break;
				case "m":
					menubar = "1";
					break;
				case "r":
					resizable = "1";
					break;
				case "st":
					status = "1"
					break;
				case "l":
					location = "1"
					break;
				case "d":
					directory = "1";
					break;
				default: 
					break;
			}	
		}
		
		//Debug info for total number of REL tag properties
		/*var arrOutput = "There are "+relArr.length+" properties:\n";
		for ( var i=0; i < totalNumProps; i++) {
			arrOutput += relArr[i] + "\n"; 
		}
		alert(arrOutput);*/
		
		if(position != "default"){
			var commaArr = position.split(",");
			
			if((commaArr.length > 2) || ((commaArr.length == 2) && ( (this.myParseInt(commaArr[0], 0) == 0) || (this.myParseInt(commaArr[1], 0) == 0)))) {	
				//alert('To many commas or coordinate values are not numbers for position value: '+commaArr);
				return false;
			}else if (commaArr.length == 2){	
				var left = commaArr[0];
				var top = commaArr[1];
				//alert('Popup is being placed at coordinate: '+left+','+top);
			}else{
				if(position == "center"){
					//Center the popup window
					var winLeft = (screen.width - width) / 2;
						var winTop = (screen.height - height) / 2;
					var left = winLeft.toString();
					var top = winTop.toString();
					//alert('Popup is centered at '+left+','+top);
				}
				if(position == "full"){
					//Calculate fullscreen of popup window
					var width = screen.width;
						var height = screen.height;
					var left = "0";
					var top = "0";
					//alert('Popup is full size with a w='+width+' height='+height);
				}
			}
		}else{
			var left = "0";
			var top = "0";
			//alert('Popup is full size at w='+width+' height='+height+' at coordinate '+left+','+top)
		}
		
		window.open(theURL,name,"width="+width+",height="+height+",toolbar="+toolbar+",scrollbars="+scrollbars+",menubar="+menubar+",resizable="+resizable+",status="+status+",location="+location+",directory="+directory+",left="+left+",top="+top+"'");
		return false;	
	},
	myParseInt: function(str,defaultValue){
    var retValue = defaultValue;
    if(str!=null){
		if(str.length>0){
				if (!isNaN(str)){
					retValue = parseInt(str);
				}
			}
    }
    return retValue;
	}//end myParseInt
}//end corefunctions
function rolloverInit () { // find items
	var top_nav = document.getElementById('top_nav').getElementsByTagName('img');
	var bottom_nav = document.getElementById('bottom_nav').getElementsByTagName('img');
	for (i=0,len=top_nav.length; i<len; i++) {
		rollover(top_nav[i]);
	}
	for (i=0,len=bottom_nav.length; i<len; i++) {
		rollover(bottom_nav[i]);
	}
}
function rollover(e) { // add states
	if (!e.getAttribute("src").match(/_over/i)) {
		e.onmouseover = function () {
			this.src = this.getAttribute("src").replace('_over','').replace('.jpg','_over.jpg');
		}
		e.onmouseout = function () {
			this.src = this.getAttribute("src").replace('_over','');
		}
	}
}
corefunctions.init();
corefunctions.loadevent(rolloverInit);
