/**
 * @author Chris Yap Exobi Interactive
 * NAV CONTROLLER
 */

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

var NavController = Class.create();

Object.extend(NavController.prototype, {
	initialize: function(){

		// set rollover events for secondary level and below
		var navs = new Array('global-nav');

		for (var i=0;i<navs.length;i++){

			var nav = $(navs[i]);
			var lis = nav.getElementsByTagName('li');
			var sniffer = new Object();
			sniffer.agent = navigator.userAgent.toLowerCase();
			sniffer.iswin = (sniffer.agent.indexOf('win')!=-1)?true:false;
			sniffer.isie6 = (sniffer.agent.indexOf('msie 6')!=-1)?true:false;
			this.firstMouseover = true;
			for (var j=0;j<lis.length;j++){

				// set mouseover event to add hover
				Event.observe(lis[j], 'mouseover', function() {
					Element.addClassName(this.item, 'hover');
//					alert(this);
					if (sniffer.iswin && sniffer.isie6) {
						if (this.item.parentNode.id == 'global-nav' && this.item.getElementsByTagName('ul').length > 0) {
							var iFrame = document.createElement('iframe');
							curUL = this.item.getElementsByTagName('ul')[0];
							var currentLeft = this.item.offsetLeft;
							if (this.obj.firstMouseover) {
								currentLeft -= 15;
							}
							var currentTop = this.item.offsetHeight;
							var currentWidth = curUL.offsetWidth;
							var currentHeight = curUL.offsetHeight;
							iFrame.style.width = currentWidth + 'px';
							iFrame.style.height = currentHeight + 'px';
							iFrame.style.left = currentLeft + 'px';
							iFrame.style.top = currentTop + 'px';
							iFrame.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity=0)';
							iFrame.style.borderWidth = '0'
							iFrame.style.position = 'absolute';
							iFrame.src = "javascript:;";
							$('global-nav').style.position = 'relative';
							$('global-nav').appendChild(iFrame);
							this.obj.firstMouseover = false;	
						}
					}
				}
				.bindAsEventListener({obj:this, item:lis[j]}));

				// set mouseoff event to remove hover
				Event.observe(lis[j], 'mouseout', function() {
					Element.removeClassName(this.item, 'hover');
					var iFrames = $('global-nav').getElementsByTagName('iframe');
					for (var k=0; k<iFrames.length; k++) {
						$('global-nav').removeChild(iFrames[k]);
					}
				}
				.bindAsEventListener({obj:this, item:lis[j]}));
			}
		};

//		this.fixMacNavs();

//		this.initFormsFix();
	},

	fixMacNavs: function(){

		var global_lis = $('global-nav').getElementsByTagName('li');
		var last_global_li_child = $A(global_lis).last();
		var last_global_li = (last_global_li_child.parentNode).parentNode;
		Element.addClassName(last_global_li, 'last');
		var last_global_li_a = last_global_li.getElementsByTagName('a')[0];
		last_global_li_a.id = 'nav-global-last-a';

		var sniffer = new Object();
		sniffer.agent = navigator.userAgent.toLowerCase();
		sniffer.iswin = (sniffer.agent.indexOf('win')!=-1)?true:false;
		sniffer.ismac = (sniffer.agent.indexOf('mac')!=-1)?true:false;
		sniffer.issafari = (sniffer.agent.indexOf("safari")!=-1)?true:false;
		sniffer.isfirefox = (sniffer.agent.indexOf("firefox")!=-1)?true:false;

		if (sniffer.issafari || (sniffer.ismac && sniffer.isfirefox)){
			var as = $('global-nav').getElementsByTagName('a');
			for (var i=0;i<as.length;i++){
				as[i].style.paddingRight = "18px";
			}
			$('nav-global-last-a').style.paddingRight = "8px";
		}

	},

	initFormsFix: function() {
		var sniffer = new Object();
		sniffer.agent = navigator.userAgent.toLowerCase();
		sniffer.iswin = (sniffer.agent.indexOf('win')!=-1)?true:false;
		sniffer.isie6 = (sniffer.agent.indexOf('msie 6')!=-1)?true:false;
		if (sniffer.iswin && sniffer.isie6) {
			var ieULs = $('global-nav').getElementsByTagName('ul');

			for (i=0; i<ieULs.length; i++) {

				var iFrame = document.createElement('iframe');
				var currentTop = ieULs[i].parentNode.offsetHeight;
				var currentWidth = ieULs[i].offsetWidth;
				var currentHeight = ieULs[i].offsetHeight + currentTop;
				var currentLeft = ieULs[i].parentNode.offsetLeft;
				iFrame.style.width = currentWidth + 'px';
				iFrame.style.height = currentHeight + 'px';
				iFrame.style.left = currentLeft + 'px';
				iFrame.style.top = currentTop + 'px';
				iFrame.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity=0)';
				iFrame.style.borderWidth = '0'
				iFrame.style.position = 'absolute';
				iFrame.style.backgroundColor = 'transparent';
				iFrame.style.zIndex = '-1';
				$('global-nav').style.position = 'relative';
				$('global-nav').appendChild(iFrame)		

			}
			
		}

		//$('loadingPanel').style.display = 'none';

/*		ieULs[i].style.zIndex = 100;
		var currentWidth = ieULs[i].offsetWidth;
		var currentHeight = ieULs[i].offsetHeight;
		var iframeVar = document.createElement('iframe');
		iframeVar.style.width = currentWidth + 'px';
		iframeVar.style.height = currentHeight + 'px';
		iframeVar.style.zIndex = 99;
		ieULs[i].appendChild(iframeVar);
*/
	}

});

// On load functions: 
addLoadEvent (function() {
	curFlickr = 0;
	var flickrs = $('flickr').getElementsByTagName('div');
	var flickrLinks = $('flickr').getElementsByTagName('a')
	for (i = 0; i < flickrLinks.length; i++) {
		flickrLinks[i].target = '_blank';
	}
	$('flickr-rewind').onclick = function() {
		if (rewindReady) {
			rewindReady = false;
			for (i = 0; i<flickrs.length; i++) {
				if (i<flickrs.length-1) {
	    			new Effect.Move (flickrs[i],{ x: 105, y: 0, mode: 'relative', duration: 0.2});
				} else {
	    			new Effect.Move (flickrs[i],{ x: 105, y: 0, mode: 'relative', duration: 0.2, afterFinish: function() { rewindReady = true } });
				}
			}
			curFlickr--;
			if (curFlickr == 0) {
				$('flickr-rewind').style.display = 'none';
				$('flickr-ffwd').style.display = 'inline';
			} else if (curFlickr > 0) {
				$('flickr-rewind').style.display = 'inline';
				$('flickr-ffwd').style.display = 'inline';
			}
		}
	}
	$('flickr-ffwd').onclick = function() {
		if (ffwdReady) {
			ffwdReady = false;
			for (i = 0; i<flickrs.length; i++) {
				if (i<flickrs.length-1) {
	    			new Effect.Move (flickrs[i],{ x: -105, y: 0, mode: 'relative', duration: 0.2});
				} else {
	    			new Effect.Move (flickrs[i],{ x: -105, y: 0, mode: 'relative', duration: 0.2, afterFinish: function() { ffwdReady = true } });
				}
			}
			curFlickr++;
			if (curFlickr == flickrs.length-1) {
				$('flickr-ffwd').style.display = 'none';
				$('flickr-rewind').style.display = 'inline';
			} else if (curFlickr < flickrs.length) {
				$('flickr-ffwd').style.display = 'inline';
				$('flickr-rewind').style.display = 'inline';
			}
		}
	}
	$('flickr-ffwd').style.display = 'inline';
})
