/*******
** vp **	
*******/
window.onload = function() {
	setMOhandler();
	setBlur();
	setNav('topnav');
	setTabs('revealer');
	setSearchBox();
	setRandomBanner('one');
	pagepreload();
	SetRandom('adv1');
	SetRandom('adv2');
	setLayer('adv1');
	setLayer('adv2');
}


var _POPUP_FEATURES = 'location=0,statusbar=0,menubar=0'; 

listen('load', window, function() { 
	mlisten('click', getElementsByClass('custom_popup','a'), event_popup ); 
}); 


// BEGIN : randon banner function
var settimer, settimer2;
var setnone;
var itemNumber = 0;
var counter = 0;

function setRandomTimerBanner(ID) {
	settimer = setTimeout('setRandomBanner("one")', 9000);
	settimer2 = setTimeout('setRandomTimerBanner("one")', 9000);
}

function setRandomBanner(ID) {
	var totalItems = 0;
	if (document.getElementById(ID)) {
		setnone = clearTimeout(settimer)
		setnone = clearTimeout(settimer2)
		setRandomTimerBanner('one');
		var entries = document.getElementById(ID).getElementsByTagName('div');
		for (var i=0; i<entries.length; i++) {
			if (entries[i].id) {
				totalItems++
			}
		}
		//var randomNumber = Math.floor(Math.random() * totalItems);
		//if (randomNumber == 0) randomNumber = totalItems;
		
		hideOthers(ID);
		if (counter == 0) {
			counter++;
			document.getElementById('v0').style.display = 'inline';
		}
		else if (counter > 0) {
			if (counter >= totalItems) {
				counter = 0;
				document.getElementById('v' + counter).style.display = 'inline';
			}
			else {
				document.getElementById('v' + counter).style.display = 'inline';
				counter++;
			}
		}
	}
}

function hideOthers(ID) {
	var entries = document.getElementById(ID).getElementsByTagName('div');
	for (var i=0; i<entries.length; i++) {
		if (entries[i].className.indexOf('v') != -1) {
			entries[i].style.display ='none';
		}
	}
}
// END : randon banner function 



function setSearchBox() {
	if (document.getElementById('rightbar')) {
		entries = document.getElementById('rightbar').getElementsByTagName('input');
		for (i=0; i < entries.length; i++) {
			if (entries[i].type == 'text') {
				entries[i].onfocus = function() {
					switch(this.name) {
						case 'new_email' : if(this.value == 'Your Email Address') this.value = ''; break;
					}
				}
				entries[i].onblur = function () {
					if (this.value == '') {
						switch(this.name) {
							case 'new_email' : this.value = 'Your Email Address'; break;
						}
					}
				}
			}
		}
	}
}




function getWindowWidth() {
	var windowWidth = 0;
	if (typeof(window.innerWidth) == 'number') {
		windowWidth = window.innerWidth;
	}  
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
				windowWidth = document.documentElement.clientWidth;
		} 
		else {
			if (document.body && document.body.clientWidth) {
				windowWidth = document.body.clientWidth;
			}
		}
	}
	return windowWidth;
}

function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	} 
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		} 
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

var DEFAULTCONTENTHEIGHT = 0;


function setBlur() {
	entries = document.getElementsByTagName('a');
	for (var i=0; i < entries.length; i++) {
		entries[i].onfocus = function() {this.blur()}
	}
}


var preloaded = new Array();

function setMOhandler() {
	var aEls = ['img','input']
	for(var j=0; j < aEls.length; j++){
		var entries = document.getElementsByTagName(aEls[j]);
		for (var i=0; i < entries.length; i++) {
			if (entries[i].className == 'MO') {
				var onImageSrc = entries[i].src.replace('_n.', '_o.');
				preloaded[preloaded.length] = new Image();
				preloaded[preloaded.length-1].src = onImageSrc;
				entries[i].onmouseover = function () {this.src = this.src.replace('_n.', '_o.')}
				entries[i].onmouseout = function () {this.src = this.src.replace('_o.', '_n.')}
			}
		}
	}
}

/******
** Top navigation versie 1.0 date : 28092004
******/

var SCREEN_WIDTH = 940;
var navPosition;

function setNav(ID) {
	navPosition = document.getElementById(ID).offsetLeft;
	items = document.getElementById(ID).getElementsByTagName('img');
	for (var i=1; i<items.length; i++) {
		if (items[i].id) {
			items[i].menu = document.getElementById('nav_' + items[i].id);
			items[i].menu.style.width = items[i].menu.offsetWidth + "px";
			items[i].menu.style.left = getXPos(items[i]) + "px";
			items[i].onmouseover = function (e) {
				if (top.opendropdown) closeOpen();
				this.src = this.src.replace('_n.', '_o.');
				this.menu.style.visibility = 'visible';
				top.opendropdown = this;
			};
			items[i].onmouseout = function (e) {closeNav(e) };
			items[i].menu.onmouseout = function (e) {closeNav(e)};
		}
	}
}

function getXPos(navItem) {
	xCorrection = 0;
	firstPos = navItem.offsetLeft;
	subWidth = document.getElementById('nav_' + navItem.id).offsetWidth;
	if ((firstPos + navPosition + subWidth) > SCREEN_WIDTH) {
		firstPos += (navItem.offsetWidth - subWidth);
		xCorrection = 0;
	}

	return firstPos + xCorrection;
}

function closeNav(e) {
	var to = (e) ? e.relatedTarget : event.toElement;
	if (top.opendropdown) {
		if (to) {//Do not close in response to events within the menu itself
			var tg = to.tagName.toLowerCase();
			if (tg == "ul") return false;
			if (tg == "li") return false;
			if (tg == "a") return false;
			if (to == top.opendropdown.menu) return false;
		}
		closeOpen();
		return true;
	}
}

function closeOpen () {
	top.opendropdown.src = top.opendropdown.src.replace('_o.', '_n.');
	top.opendropdown.menu.style.visibility = 'hidden';
}



/*******
** vp ** Revelear v0.4 BETA 
*******/

var navPosition;

function setTabs(ID) {
	if (document.getElementById(ID)) {
		if (document.getElementById(ID).getElementsByTagName('img')) {
			navPosition = document.getElementById(ID).offsetLeft;
			var entries = document.getElementById(ID).getElementsByTagName('img');
			for (var i=0; i<entries.length; i++) {
				if (entries[i].id) {
					//entries[i].menu = document.getElementById(entries[i].id + '_over');
					//entries[i].menu.style.width = entries[i].menu.offsetWidth + "px";
					entries[i].onmouseover = function (e) { this.src = this.src.replace('_n.', '_o.'); };
					entries[i].onclick = function (e) {
						var newID;
						if (top.test) {
							newID = top.test.menu.id.replace(/_over/, '');
							if (this.id == newID) {
								top.animating = setInterval("top.animator.pixelUp(20)", 10)
							}
							else {
								top.test.menu.style.visibility = 'hidden';
							}
							top.test.src = top.test.src.replace('_s.', '_n.');
							top.test = '';
						}
						if (this.id != newID) {
							this.src = this.src.replace('_o.', '_s.');
							this.src = this.src.replace('_n.', '_s.');
							top.animator = new Revealer(this.id + '_over', 48, 0); //obj, startY, visibleHeight
							top.animator.visibility = 'visible';
							top.animating = setInterval("top.animator.pixelDown(20)", 10);
							this.menu = document.getElementById(this.id + '_over');
							this.menu.style.visibility = 'visible';
							top.test = this; 
						}
						
					};
					entries[i].onmouseout = function (e) { this.src = this.src.replace('_o.', '_n.'); };
				}
			}
		}			
	}
}


function Revealer(obj, startY, visibleHeight) {
	this.div = document.getElementById(obj);
	this.visibleHeight = visibleHeight;
	this.startY = startY;
	this.height = this.div.offsetHeight;
	this.yClip = this.height - visibleHeight;
	this.yPos = (startY - this.height) + visibleHeight;
	this.animating = -1;
	this.div.style.top = this.yPos + "px";
	this.div.style.clip = "rect(" + this.yClip + "px auto auto auto)";
}

Revealer.prototype.pixelDown = function (amount) {
	this.yPos += amount;
	this.yClip -= amount;
	if (this.yPos > this.startY) {
		this.yPos = this.startY;
		this.yClip = 0;
		clearInterval(top.animating);
	}
	this.div.style.clip = "rect(" + (this.yClip) + "px auto auto auto)";
	this.div.style.top = this.yPos + "px";
}

Revealer.prototype.pixelUp = function (amount) {
	this.yPos -= amount;
	this.yClip += amount;
	if (this.yPos < (this.startY - this.height) + this.visibleHeight) {
		this.yPos = this.startY - this.height + this.visibleHeight;
		this.yClip = this.height - this.visibleHeight;
		clearInterval(top.animating);
	}
	this.div.style.top = this.yPos + "px";
	this.div.style.clip = "rect(" + (this.yClip) + "px auto auto auto)";
}

// Set randon item in revealer
function SetRandom(ID) {
	if (document.getElementById(ID)) {
		var entries = document.getElementById(ID).getElementsByTagName('a');
		var arr = new Array();
		for (var i=0; i<entries.length; i++) {
			if (entries[i].id) {
				arr[i] = entries[i].id;
			}
		}
		var randomNumber = Math.floor(Math.random() * arr.length);
//		if (randomNumber == 0) randomNumber = 1;
		document.getElementById(arr[randomNumber]).className = 'selected';
		document.getElementById(arr[randomNumber].substr(1)).style.display = 'block';
	}
}

/* SUB BEGIN : to open different layer items in the revealer */
function setLayer(ID) {
	if (document.getElementById(ID)) {
		var entries = document.getElementById(ID).getElementsByTagName('a');
		for (var i=0; i<entries.length; i++) {
			if (entries[i].id) {
				entries[i].onclick = function() {
					setContentVisible(this.id, ID);
					clearAllSelected(ID);
					this.className = 'selected';
				}
			}
		}
	}
}

function clearAllSelected(ID) {
	var entries = document.getElementById(ID).getElementsByTagName('a');
	for (var i=0; i<entries.length; i++) {
		entries[i].className = '';
	}
}


function setContentVisible(ID_item, ID) {
	var entries = document.getElementById(ID).parentNode.parentNode.getElementsByTagName('div')
	for (var i=0; i<entries.length; i++) {
		if (entries[i].className == 'rev_content') {
			entries[i].style.display = 'none';
		}
	}
	var pID = ID_item.substr(1);
	document.getElementById(pID).style.display = 'block';
}
/* SUB END : to open different layer items in the revealer */
/* END : Revelaler */






function pagepreload() {
	document.getElementById('con').style.visibility = 'visible';
	document.getElementById('con_footer').style.visibility = 'visible';	
	document.getElementById('preloader').style.display = 'none';

}

/* BEGIN : automatic popup resizer */
function resizePopUpWindow() {
	var differentHeight = 0;
	var browser = 'unknown';
	browser = getBrowser();

	if (document.images[0]) {
		var newWindowHeight = document.images[0].height + 75;
		window.resizeTo(document.images[0].width + 30, (newWindowHeight));
	}
	self.focus();
}



function raw_popup(url, target, features) {
    if (isUndefined(features)) features = _POPUP_FEATURES;
    if (isUndefined(target  )) target   = '_blank';
	
	/* Disabled true automatic functon in popup. Easer to handle */
	/* VP BEGIN : new code */
	/*
	target = target.toLowerCase();
	if (target.indexOf('cp_') != -1) {
		var t = target.length; 
		tr = target.substr(3, t);
		var s = tr.lastIndexOf('x');
		var h = tr.slice(s + 1);
		var w = tr.slice(0, (t-3)-s-1); //(totale length - first three characters) - point of x - x self
		features = features + ',width=' + w + ',height=' + h;
	}
	else {
		features = features + ',width=640,height=500';
	}
	*/
	features = features + ',width=10,height=10';
	/* VP END : new code */
	
    var theWindow = window.open(url, target, features);
    theWindow.focus();
    return theWindow;
}

function link_popup(src, features) {
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

function event_popup(e) {
    link_popup(e.currentTarget);
    e.preventDefault();
}

function event_popup_features(features) {
    return function(e) { link_popup(e.currentTarget, features); e.preventDefault() }
}

if (!Array.prototype.push) Array.prototype.push = function() {
    for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
    return this.length;
}

Array.prototype.find = function(value, start) {
    start = start || 0;
    for (var i=start; i<this.length; i++)
        if (this[i]==value)
            return i;
    return -1;
}

Array.prototype.has = function(value) {
    return this.find(value)!==-1;
}

// FUNCTIONAL

function map(list, func) {
    var result = [];
    func = func || function(v) {return v};
    for (var i=0; i < list.length; i++) result.push(func(list[i], i, list));
    return result;
}

function filter(list, func) {
    var result = [];
    func = func || function(v) {return v};
    map(list, function(v) { if (func(v)) result.push(v) } );
    return result;
}


// DOM

function getElem(elem) {
    if (document.getElementById) {
        if (typeof elem == "string") {
            elem = document.getElementById(elem);
            if (elem===null) throw 'cannot get element: element does not exist';
        } else if (typeof elem != "object") {
            throw 'cannot get element: invalid datatype';
        }
    } else throw 'cannot get element: unsupported DOM';
    return elem;
}

function hasClass(elem, className) {
    return getElem(elem).className.split(' ').has(className);
}

function getElementsByClass(className, tagName, parentNode) {
    parentNode = !isUndefined(parentNode)? getElem(parentNode) : document;
    if (isUndefined(tagName)) tagName = '*';
    return filter(parentNode.getElementsByTagName(tagName),
        function(elem) { return hasClass(elem, className) });
}


// DOM EVENTS

function listen(event, elem, func) {
    elem = getElem(elem);
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(event,func,false);
    else if (elem.attachEvent)  // IE DOM
        elem.attachEvent('on'+event, function(){ func(new W3CDOM_Event(elem)) } );
        // for IE we use a wrapper function that passes in a simplified faux Event object.
    else throw 'cannot add event listener';
}

function mlisten(event, elem_list, func) {
    map(elem_list, function(elem) { listen(event, elem, func) } );
}

function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    return this;
}


// MISC CLEANING-AFTER-MICROSOFT STUFF

function isUndefined(v) {
    var undef;
    return v===undef;
}


/* BEGIN : detect browser settings */
function getBrowser() {
    var mvIndex;
    var mozVers;
    var os = navigator.platform.toLowerCase(); 
    var agt = navigator.userAgent.toLowerCase(); 
    var ver = navigator.appVersion.toLowerCase();
    
    if (os.indexOf('win') != -1) {
        if (agt.indexOf("msie 6.0")!=-1) return "WIN_IE6";
        else if (agt.indexOf("msie 5.5")!=-1) return "WIN_IE55";
        else if (agt.indexOf("msie 5.0")!=-1) return "WIN_IE50";
        else if (agt.indexOf("netscape")!=-1) return "Netscape";
		else if (agt.indexOf("firefox")!=-1) return "WIN_FF";
		else if (agt.indexOf("opera")!=-1) return 'WIN_OPERA';
        else if (agt.indexOf("mozilla")!=-1) {
            var mvIndex = agt.indexOf('; rv:1.');
            var mozVers = agt.substr(mvIndex + 7, 1); 
            if (mozVers > 3) return "WINMOZ";
        }
    }
	else if (os.indexOf('mac') != -1) {
		if (agt.indexOf("opera")!=-1) return 'MAC_OPERA';
		else if (agt.indexOf("safari")!=-1) {
			var safIndex = agt.indexOf('safari/');
			var safVers = agt.substr(safIndex + 7, 3);
			if (safVers >= 312) return "MAC_SAF";
		}
		else if (agt.indexOf("netscape")!=-1) return "Netscape";
		else if (agt.indexOf("firefox")!=-1) return "MAC_FF";
		else if (agt.indexOf("mozilla")!=-1) {
			var mvIndex = agt.indexOf('; rv:1.');
			var mozVers = agt.substr(mvIndex + 7, 1); 
			if (mozVers > 3) return "MAC_MOZ";
		}
	}
}

/* END : detect browser settings */

