/* 
###########################################################################
Brandhaard website basic javascript calls
date:   March 2007
author: Anti-Kriss
author: ---
########################################################################### 
*/

window.onload = init;

//------------------------------------------------------
// init

function init(){
	if(arguments.callee.done){return};
	arguments.callee.done=true;
	linkHandler(); // generate specific popups
	fontHandler(); // handle specific fonts by replacing them with images
	flashHandler(); // Makes flash movies handle normal
}

// End init
//------------------------------------------------------


//------------------------------------------------------
// Fix for the onload problem

/* for Mozilla */
if (document.addEventListener) {
   document.addEventListener("DOMContentLoaded", init, false);
}

// for Internet Explorer (using conditional comments)
/*@cc_on @*//*@if (@_win32)document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		init(); // call the onload handler
	}
};
/*@end @*/

/* safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
	var _timer = setInterval(function() {
		if (/loaded|complete/.test(document.readyState)) {
			clearInterval(_timer);
			init(); // call the onload handler
		}
	}, 10);
}

// End onload fix
//------------------------------------------------------


//------------------------------------------------------
// Global variables

var image=new Array;

// End global variables
//------------------------------------------------------

//------------------------------------------------------
// General script & functions

function escapeText(text){if(typeof(encodeURIComponent)!='undefined'){return encodeURIComponent(text).replace(/\'/g,'%27');}else{return escape(text).replace(/\+/g,'%2B');}}

function flashHandler(){var FO;var elements=getElementsByClassName(document,"span","flashmovie");for(var j=0;j<elements.length;j++){var m=elements[j].getAttribute('rel');if(m!=null){FO={movie:m,width:"425",height:"350",majorversion:"7",build:"40",wmode:"transparent"};UFO.create(FO,elements[j].id);}}}

function fontHandler(){
	var elements=getElementsByClassName(document,"*","fontReplace");
	for(var j=0;j<elements.length;j++){
		if(!elements[j]){continue;}
		var text=extractText(elements[j]);
		while(elements[j].hasChildNodes()){elements[j].removeChild(elements[j].firstChild);}
		if(elements[j].className=='fontReplace'){var tokens=text.split(' ');}else{var tokens=[text];}
		for(var k=0;k<tokens.length;k++){
			var url="/images/replace.php?text="+escapeText(tokens[k]+' ')+"&selector="+escapeText(elements[j].className);
			image[k]=new Image();
			image[k].className="replacement";
			image[k].alt=tokens[k];
			image[k].src=url;
			elements[j].appendChild(image[k]);
		}
	}
}

function linkHandler() {
	var a=document.getElementsByTagName('A');
	for(n=0;n<a.length;n++) {
		if(a[n].className.indexOf('popup')>-1){
			a[n].onclick=function(){return !linkPopup(this,popupTypes.type_one);}
		}else if(a[n].className.indexOf('back')>-1){
			a[n].onclick=function(){history.back(-1);}
		}else if(a[n].className.indexOf('smiley')>-1){
			a[n].onclick=function(){this.href="javascript:void(0);";smile(this.getAttribute('rel')+' ');}
		}else if(a[n].className.indexOf('download')>-1){
			a[n].onclick=function(){urchinTracker(this.getAttribute('rel'));}
		}
	}
}

/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/
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);
}

/* This function extracts the text from an element */
function extractText(element){if(typeof element=="string"){return element;}else if(typeof element=="undefined"){return element;}var text="";var kids=element.childNodes;for(var i=0;i<kids.length;i++){if(kids[i].nodeType==1){text+=extractText(kids[i]);}else if(kids[i].nodeType==3){text+=kids[i].nodeValue;}}return text;}

function smile(code){document.getElementById("message").value+=code; document.getElementById("message").focus();}

// End General script & functions
//------------------------------------------------------


//------------------------------------------------------
// Classname & node handlers

function addCSSClass(elem,cn){elem.className=(elem.className+" "+cn).trim();}
function removeCSSClass(elem,cn){elem.className=elem.className.replace(cn,"").trim();}
String.prototype.trim=function(){return this.replace( /^\s+|\s+$/, "" );}
function switchClassName(e,a,b){e.className=e.className.replace(a,"").trim();e.className=(e.className+" "+b).trim();}
function fpd(elem,e){var o=elem;while(o.parentNode.nodeName!=e.toUpperCase()){o=o.parentNode;}return o.parentNode;}
function fps(elem,e){var o=elem;while(o.previousSibling.nodeName!=e.toUpperCase()){o=o.previousSibling;}return o.previousSibling;}
function fns(elem,e){var o=elem;while(o.nextSibling.nodeName!=e.toUpperCase()){o=o.nextSibling;}return o.nextSibling;}
function fcd(elem,e){var o=elem;if(o.firstChild.nodeName==e.toUpperCase()){return o.firstChild;}else{while(o.nextSibling.nodeName!=e.toUpperCase()){o=o.nextSibling;}return o.nextSibling;}}

// End Classname & node handlers
//------------------------------------------------------


//------------------------------------------------------
// Basic popup script

var popupTypes={
	type_one:new PopupType(650,480,"windowname")
}
function PopupType(width, height, windowName){this.width=width;this.height=height;this.windowName=windowName;}
function openPopup(aUrl,aType,aName) {
  var aWidth,aHeight;
  if(typeof aType=='undefined'||!(aType.width&&aType.height)){aType=popupTypes.normal;}
  aWidth=aType.width;aHeight=aType.height;
  var optionString="toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=1, resizable=0, width="+aWidth+", height="+aHeight
  if(aName=='external'){var aWindow=window.open(aUrl);}else{var aWindow=window.open(aUrl,(aName) ? aName : "_blank", optionString);}
  if(aWindow){aWindow.focus();return true;}else{return false;}
}
function linkPopup(src,aType){var result;var rel=src.getAttribute('rel');for(var i in popupTypes){if((popupTypes[i].windowName).indexOf(rel)>-1){aType=eval("popupTypes."+i);break;}}return openPopup(src.getAttribute('href'),aType,(rel||'_blank'));}

// END: Basic popup script
//------------------------------------------------------


//------------------------------------------------------
// Prototype push if missing

if(typeof Array.push=='undefined'){Array.prototype.push=function(){var arg,i=0;while(arg=arguments[i++]){this[this.length]=arg;}return this.length;}}

// END Prototype push if missing
//------------------------------------------------------
