if (typeof(MWO) === 'undefined')
	var MWO = {};

if (!console) {
    var console = {log: function(){}};
}

MWO = {
	runDelayedFunctions: true,
	newsScrollStopped: false,
	
	nav: {
		'0': ['our_work', 'projects', 'project'],
		'1': ['archive'],
		'2': ['who_we_are'],
		'3': ['how_we_work', 'work_clients', 'brand_response', '7_stages'],
		'4': ['contacts']
	},
	
	video: {
		flashvars: {
			vidWidth: "480",
			vidHeight: "270",
			vidPath: null,
			thumbPath: "/img/video_1st_frame.jpg",
			autoPlay: "false",
			autoLoop: "false",
			watermark: "hide",
		 	seekbar: "show"
		},
		params: {
			menu: "true",
			allowfullscreen: "true",
			allowscriptaccess: "always",
			wmode: "transparent"
		},
		attributes: {
		  id: "playerLite",
		  name: "playerLite"
		}
	},
	
	init: function(options) {
		var movieContainer;
		var url;
		var links;
		var container = document.body;
		 
		MWO.runDelayedFunctions = true;
			
		// embed intro movie
		MWO.video.flashvars.vidPath = "/design/mwo_reel.flv";
		swfobject.embedSWF("/video/swf/player.swf", "mainVideo", MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
			
		// google analytics
		links = document.getElementsByTagName('a');
		YAHOO.util.Event.addListener(links, 'click', function() {
			var type = (YAHOO.util.Dom.hasClass('pageLink') || YAHOO.util.Dom.hasClass('previewLink')) ? 'Internal' : 'External'; 
			
			_gaq.push(['_trackEvent', type, 'click', this.href]);
		});
		
		// set navigation & links for async fetching
		links = YAHOO.util.Dom.getElementsByClassName('first-level', 'li', 'nav');
		url = (window.location.href.indexOf('?')>=0) ? window.location.href.substr(0, window.location.href.indexOf('?')) : window.location.href;
		
		for (var a in MWO.nav) {
			for (var b in MWO.nav[a]) {
				if (url.indexOf(MWO.nav[a][b])>=0){
					YAHOO.util.Dom.addClass(links[a], 'active');			
				}
			}
		}
		
		links = document.getElementById('nav').getElementsByTagName('a');
		for (var i=0; i<links.length; i++) {
			links[i].onclick = MWO.loadPage;
		}
			
		links = YAHOO.util.Dom.getElementsByClassName('pageLink', 'a', container);
		for (i in links) {
			links[i].onclick = MWO.loadPage;
		}
			
		links = YAHOO.util.Dom.getElementsByClassName('previewLink', 'a', container);
		for (i in links) {
			links[i].onclick = MWO.loadPreview;
		}
		
		links = YAHOO.util.Dom.getElementsByClassName('personLink', 'a', container);
		for (i in links) {
			links[i].onclick = MWO.loadPerson;
		}
			
		// animate navigation
		links = YAHOO.util.Dom.getElementsByClassName('parent', 'li', 'nav');
		for (i in links) {
			YAHOO.util.Event.addListener(YAHOO.util.Dom.getFirstChild(links[i]), 'mouseover', MWO.showSubmenu);	
		}
			
		// scroll news
		MWO.scrollNewsList();
		
		// switch category images
		if (document.getElementById('workMain')) {
			MWO.switchCategoryImages('tv');
			YAHOO.lang.later(400, this, MWO.switchCategoryImages, 'print');
			YAHOO.lang.later(800, this, MWO.switchCategoryImages, 'digital');
		}
			
		// show movies
		movieContainer = document.getElementById('detailWorkImg');		
		if (movieContainer && YAHOO.util.Dom.hasClass(movieContainer, 'video')) {
			MWO.video.flashvars.vidPath = movieContainer.innerHTML;
			MWO.video.flashvars.vidWidth = "480"
			MWO.video.flashvars.vidHeight = "270"
			MWO.video.flashvars.autoPlay = "false"
			
			swfobject.embedSWF("/video/swf/player.swf", movieContainer.id, MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
		}
		movieContainer = document.getElementById('previewWorkImg');		
		if (movieContainer && YAHOO.util.Dom.hasClass(movieContainer, 'video')) {
			MWO.video.flashvars.vidPath = movieContainer.innerHTML;
			MWO.video.flashvars.vidWidth = "270"
			MWO.video.flashvars.vidHeight = "152"
			MWO.video.flashvars.autoPlay = "true"
		
			swfobject.embedSWF("/video/swf/player_nocomands.swf", movieContainer.id, MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
		}
	},
	
	loadPage: function(e, url, noHistory) {
		var url = (url) ? url : this.href;
		var historyUrl;
		var anim;
		var container = 'content';
		var parent = this.parentNode;

		container = document.getElementById(container);
		while (parent && !(YAHOO.util.Dom.hasClass(parent, 'first-level'))) {
			parent = parent.parentNode;
		}

		url = url.replace(/http:\/\//g, '');
		url = url.substr(url.indexOf('/'));
		historyUrl = (noHistory) ? null : url;
		
		url = (url!='/') ? '/async' + url : '/async/home.htm';

		anim = new YAHOO.util.Anim(container, {opacity: {to: 0}}, .3);
		anim.onComplete.subscribe(function(){
			MWO.runDelayedFunctions = false;
			container.innerHTML = '';
			YAHOO.util.Dom.setStyle(container, 'opacity', '1');
			N2.util.sendRequest(url, null, MWO.onPageLoaded, {obj: parent, indicator: 'content', url: url, historyUrl: historyUrl});
		});
		anim.animate();
		
		return false;
	},
	
	loadPreview: function() {
		var url;
		var anim;
		var container = 'displayWork';
		var parent = this.parentNode;
		
		container = document.getElementById(container);
		while (parent && parent.nodeName.toLowerCase()!='li') {
			parent = parent.parentNode;
		}

		url = this.href.replace(/http:\/\//g, '');
		url = '/async' + url.substr(url.indexOf('/'));
		url = url.substr(0, url.indexOf('-')) + '_preview' + url.substr(url.indexOf('-'));

		anim = new YAHOO.util.Anim(container, {opacity: {to: 0}}, .3);
		anim.onComplete.subscribe(function(){
			container.innerHTML = '';
			YAHOO.util.Dom.setStyle(container, 'opacity', '1');
			N2.util.sendRequest(url, null, MWO.onPreviewLoaded, {obj: parent, indicator: container.id});
		});
		anim.animate();

		return false;
	},
	
	loadPerson: function() {
		var url;
		var anim;
		var container = 'peopleDesc';
		var parent = this.parentNode;
		
		container = document.getElementById(container);
		while (parent && parent.nodeName.toLowerCase()!='li') {
			parent = parent.parentNode;
		}

		url = this.href;

		anim = new YAHOO.util.Anim(container, {opacity: {to: 0}}, .3);
		anim.onComplete.subscribe(function(){
			container.innerHTML = '';
			YAHOO.util.Dom.setStyle(container, 'opacity', '1');
			N2.util.sendRequest(url, null, MWO.onPersonLoaded, {obj: parent, indicator: container.id});
		});
		anim.animate();

		return false;
	},
	
	changePageFromHistory: function(state) {
		var historyUrl = YAHOO.util.History.getCurrentState(N2.history.object);
		
		MWO.loadPage(state, historyUrl, true);
	},
	
	onPageLoaded: function(o) {
		var params = o.argument[1];
		var anim;
		var container = 'content';
		var links = YAHOO.util.Dom.getElementsByClassName('first-level', 'li', 'nav');
		var movieContainer;
		var url = (params.url.indexOf('?')>=0) ? params.url.substr(0, params.url.indexOf('?')) : params.url;
		
		var checkNewsScrolling = function() {
			if (MWO.newsScrollStopped!=true) {
				YAHOO.lang.later(250, this, checkNewsScrolling);
			}
			else {
				MWO.runDelayedFunctions = true;
				MWO.scrollNewsList();
			}
		}
		
		container = document.getElementById(container);
		
		YAHOO.util.Dom.setStyle(container, 'opacity', '0');
		container.innerHTML = o.responseText;
		anim = new YAHOO.util.Anim(container, {opacity: {to: 1}}, .3);
		anim.animate();
		
		YAHOO.util.Dom.removeClass(links, 'active');
		for (var a in MWO.nav) {
			for (var b in MWO.nav[a]) {
				if (url.indexOf(MWO.nav[a][b])>=0){
					YAHOO.util.Dom.addClass(links[a], 'active');			
				}
			}
		}
		
		// google analytics
		links = document.getElementsByTagName('a');
		YAHOO.util.Event.addListener(links, 'click', function() {
			var type = (YAHOO.util.Dom.hasClass('pageLink') || YAHOO.util.Dom.hasClass('previewLink')) ? 'Internal' : 'External'; 
			
			_gaq.push(['_trackEvent', type, 'click', this.href]);
		});
		
		links = YAHOO.util.Dom.getElementsByClassName('pageLink', 'a', container);
		for (var i in links) {
			links[i].onclick = MWO.loadPage;
		}
		links = YAHOO.util.Dom.getElementsByClassName('previewLink', 'a', container);
		for (var j in links) {
			links[j].onclick = MWO.loadPreview;
		}
		links = YAHOO.util.Dom.getElementsByClassName('personLink', 'a', container);
		for (var j in links) {
			links[j].onclick = MWO.loadPerson;
		}
		
		movieContainer = document.getElementById('mainVideo');
		if (movieContainer) {
			MWO.video.flashvars.vidPath = '/design/mwo_reel.flv';
			MWO.video.flashvars.vidWidth = "480"
			MWO.video.flashvars.vidHeight = "270"
			MWO.video.flashvars.autoPlay = "false"
			MWO.video.flashvars.thumbPath = ""
			
			swfobject.embedSWF("/video/swf/player.swf", movieContainer.id, MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
		}
		
		movieContainer = document.getElementById('detailWorkImg');		
		if (movieContainer && YAHOO.util.Dom.hasClass(movieContainer, 'video')) {
			MWO.video.flashvars.vidPath = movieContainer.innerHTML;
			MWO.video.flashvars.vidWidth = "480"
			MWO.video.flashvars.vidHeight = "270"
			MWO.video.flashvars.autoPlay = "false"
			MWO.video.flashvars.thumbPath = ""
			
			swfobject.embedSWF("/video/swf/player.swf", movieContainer.id, MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
		}
		movieContainer = document.getElementById('previewWorkImg');		
		if (movieContainer && YAHOO.util.Dom.hasClass(movieContainer, 'video')) {
			MWO.video.flashvars.vidPath = movieContainer.innerHTML;
			MWO.video.flashvars.vidWidth = "270"
			MWO.video.flashvars.vidHeight = "152"
			MWO.video.flashvars.autoPlay = "true"
			MWO.video.flashvars.thumbPath = ""
			
			swfobject.embedSWF("/video/swf/player_nocomands.swf", movieContainer.id, MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
		}
		
		if (document.getElementById('news-content')) {
			checkNewsScrolling();
		}
		
		if (document.getElementById('workMain')) {
			MWO.runDelayedFunctions = true;
			
			MWO.switchCategoryImages('tv');
			YAHOO.lang.later(400, this, MWO.switchCategoryImages, 'print');
			YAHOO.lang.later(800, this, MWO.switchCategoryImages, 'digital');
		}
		
	},
	
	onPreviewLoaded: function(o) {
		var anim;
		var container = 'displayWork';
		var links = document.getElementById('categoryList').getElementsByTagName('li');
		var movieContainer = 'previewWorkImg';
		
		container = document.getElementById(container);
		
		YAHOO.util.Dom.setStyle(container, 'opacity', '0');
		container.innerHTML = o.responseText;
		anim = new YAHOO.util.Anim(container, {opacity: {to: 1}}, .3);
		anim.animate();
		
		YAHOO.util.Dom.removeClass(links, 'active');
		YAHOO.util.Dom.addClass(o.argument[1].obj, 'active');
		
		// google analytics
		var links = document.getElementsByTagName('a');
		YAHOO.util.Event.addListener(links, 'click', function() {
			var type = (YAHOO.util.Dom.hasClass('pageLink') || YAHOO.util.Dom.hasClass('previewLink')) ? 'Internal' : 'External'; 
			
			_gaq.push(['_trackEvent', type, 'click', this.href]);
		});
		
		links = YAHOO.util.Dom.getElementsByClassName('pageLink', 'a', container);
		for (var i in links) {
			links[i].onclick = MWO.loadPage;
		}
		
		movieContainer = document.getElementById(movieContainer);		
		if (movieContainer && YAHOO.util.Dom.hasClass(movieContainer, 'video')) {
			MWO.video.flashvars.vidPath = movieContainer.innerHTML;
			MWO.video.flashvars.vidWidth = "270"
			MWO.video.flashvars.vidHeight = "152"
			MWO.video.flashvars.autoPlay = "true"
			MWO.video.flashvars.thumbPath = ""
			
			swfobject.embedSWF("/video/swf/player_nocomands.swf", movieContainer.id, MWO.video.flashvars.vidWidth, MWO.video.flashvars.vidHeight, "9.0.0","/video/swf/expressInstall.swf", MWO.video.flashvars, MWO.video.params, MWO.video.attributes);
		}
	},
	
	onPersonLoaded: function(o) {
		var anim;
		var container = 'peopleDesc';
		var links = document.getElementById('peoplePic').getElementsByTagName('li');
		
		container = document.getElementById(container);
		
		YAHOO.util.Dom.setStyle(container, 'opacity', '0');
		container.innerHTML = o.responseText;
		anim = new YAHOO.util.Anim(container, {opacity: {to: 1}}, .3);
		anim.animate();
		
		YAHOO.util.Dom.removeClass(links, 'active');
		YAHOO.util.Dom.addClass(o.argument[1].obj, 'active');
	},
	
	scrollNewsList: function() {
		var container = document.getElementById('news-content');
		var list;
		var entries;
		
		if (!container) {
			return false;
		}
		
		list = document.getElementById('news').getElementsByTagName('ul')[0];
		entry = container.getElementsByTagName('li')[0];
		
		var animate = function(entry) {
			var node; 
			
			if (MWO.runDelayedFunctions!=true) {
				MWO.newsScrollStopped = true;
				
				return false;
			}
			
			var position = YAHOO.util.Dom.getStyle(list, 'top').replace(/px/g, '')*1;
			
			if (YAHOO.util.Dom.getRegion(list).height < YAHOO.util.Dom.getRegion(container).height) {
				return false;
			}

			if (YAHOO.util.Dom.getPreviousSibling(entry)) {
				node = YAHOO.util.Dom.getPreviousSibling(entry).cloneNode(true);
				list.appendChild(node);
				
				YAHOO.util.Dom.setStyle(list, 'top', (position + YAHOO.util.Dom.getRegion(YAHOO.util.Dom.getPreviousSibling(entry)).height + 10) + 'px');
				list.removeChild(YAHOO.util.Dom.getPreviousSibling(entry));
				
				node.getElementsByTagName('a')[0].onclick = MWO.loadPage;
			}

			position = YAHOO.util.Dom.getStyle(list, 'top').replace(/px/g, '');
			position = position - YAHOO.util.Dom.getRegion(entry).height - 10; 

			var anim = new YAHOO.util.Anim(list, {top: {to: position}}, .55, YAHOO.util.Easing.easeIn);
			anim.animate();
		
			entry = YAHOO.util.Dom.getNextSibling(entry);
		
			MWO.newsScrollStopped = false;
			YAHOO.lang.later(4500, this, animate, entry);

		}
		
		YAHOO.lang.later(4500, this, animate, entry);
	},
	
	showSubmenu: function() {
		var obj = YAHOO.util.Dom.getNextSibling(this);
		var anim;

		YAHOO.util.Dom.setStyle(obj, 'opacity', '0');

		anim = new YAHOO.util.Anim(obj, {opacity: {to: 1}}, .4);
		anim.animate();
	},
	
	switchCategoryImages: function(category) {
		var container = 'content';
		var category = (!category) ? 'tv' : category;
		var images;
		
		if (YAHOO.util.Dom.getElementsByClassName(category+'-images', 'div', container).length==0) {
			return false;
		}
		
		images = YAHOO.util.Dom.getElementsByClassName(category+'-images', 'div', container)[0].getElementsByTagName('img');
		
		var animate = function(i) {
			var i = (!i || i==images.length) ? 0 : i;
			var anim;
			
			if (MWO.runDelayedFunctions!=true) {
				return false;
			}
			
			anim = new YAHOO.util.Anim(images[i], {opacity: {to: 0}}, .4);
			anim.onComplete.subscribe(function(){
				var anim;
				YAHOO.util.Dom.addClass(images[i], 'hidden')

				i = (i==images.length-1) ? 0 : i+1;

				YAHOO.util.Dom.setStyle(images[i], 'opacity', '0');
				YAHOO.util.Dom.removeClass(images[i], 'hidden')
					
				anim = new YAHOO.util.Anim(images[i], {opacity: {to: 1}}, .4);
				anim.animate();
									
				YAHOO.lang.later(2800, this, animate, i);
			});
			anim.animate();
		}
		
		if (images.length>1) {
			YAHOO.lang.later(1000, this, animate);
		}
	}
}
