//add url Hash access to open/close states
//add persistence/memory to open close state(s)?
//SWFAddress for project overlays
//Incorporate AJAX load of project data as well as loading animation/slide-in

//Fix toggle state for otherEl morph...CANNOT figure out how to do it on the same link as the myVerticalSlide.toggle(); design hacked for now.

//7/29 @ 4:30PM | 10 hours and counting...

window.addEvent('domready', function() {

	var status = {'true': '<img src=images/minus.gif>', 'false': '<img src=images/plus.gif>'};

	var myVerticalSlide = new Fx.Slide('mainMessaging', {duration: 0});
	var otherEl = $('projectMenu');
/*
	$('v_toggle').addEvent('click', function(e){
		e.stop();
		myVerticalSlide.toggle();
		otherEl.morph('.projectMenuClose');
	});
*/
	$('v_close').addEvent('click', function(e){
		e.stop();
		myVerticalSlide.slideOut();
		otherEl.morph('.projectMenuClose');
		Cookie.write('myVerticalSlide', 'closed');
	});

	$('v_open').addEvent('click', function(e){
		e.stop();
		myVerticalSlide.slideIn();
		otherEl.morph('.projectMenuOpen');
		Cookie.write('myVerticalSlide', 'opened');
	});

	if(Cookie.read('myVerticalSlide') == 'closed') {
		$('vertical_status').set('html', '<img src=images/plus.gif>');
		myVerticalSlide.slideOut();
		otherEl.setStyle('padding-top', 100);
	} else {
		$('vertical_status').set('html', '<img src=images/minus.gif>');
		myVerticalSlide.slideIn();
		otherEl.setStyle('padding-top', 151);
	}

	var myVerticalSlide = new Fx.Slide('mainMessaging', {duration: 500});

	// When Vertical Slide ends its transition, we check for its status
	// note that complete will not affect 'hide' and 'show' methods
	myVerticalSlide.addEvent('complete', function() {
		$('vertical_status').set('html', status[myVerticalSlide.open]);
	});

	function getFlashMovie(movieName) {
		var isIE = navigator.appName.indexOf("Microsoft") != -1;
		return (isIE) ? window[movieName] : document[movieName];
	}
	function loadSite(uid) {
		getFlashMovie("widget").loadSite(uid);
	}

	// We are setting the opacity of the element to 0.5 and adding two events
	$$('div.mouseElementContainer').each(function(el){
		var rollOver = el.getElement('.mouseElement');
		rollOver.set('morph', {duration: 500, transition: Fx.Transitions.Quint.easeOut});
		el.addEvents({
			mouseenter: function(){
				// This morphes the opacity and backgroundColor
				rollOver.morph({
					'opacity': 1,
					'margin-top': '0px'
				});
			},
			mouseleave: function(){
				// Morphes back to the original style
				rollOver.morph({
					'opacity': 0,
					'margin-top': '0px'
				});
			}
		});
	});



	/*var status = {
		'true': '&and;',
		'false': '&or;'
	};*/

	//var myProjectSlide = new Fx.Slide('projectOverlayContainer').hide();
	//var myProjectMorph = $('projectOverlayContainer').fade(0);
/*
*/

	$$('.project_open').addEvent('click', function(el){
		SWFAddress.setTitle("Tolleson Design - " + this.name);
		SWFAddress.setValue("project/" + this.id);
		el.stop();
	});

	$$('.client_open').addEvent('click', function(el){
		SWFAddress.setTitle("Tolleson Design - " + this.name);
		SWFAddress.setValue("client/" + this.id);
		el.stop();
	});

	$$('.discipline_open').addEvent('click', function(el){
		SWFAddress.setTitle("Tolleson Design - " + this.name);
		SWFAddress.setValue("discipline/" + this.id);
		el.stop();
	});
/*

	DISCONNECTED MAIN MENU

*/
	$$('.content_open').addEvent('click', function(el){
		SWFAddress.setTitle("Tolleson Design " + this.title);
		SWFAddress.setValue(this.id);
		el.stop();
	});
	function closeOverlay() {
		SWFAddress.setTitle('Tolleson Design');
		SWFAddress.setValue('');
	}
	
	var overlayContainerMorph = new Fx.Morph('overlayContainer', {
		duration: 500,
		transition: Fx.Transitions.Quint.easeOut,
		link: 'cancel'
	});
	
	var myRequest = new Request.HTML({
		method: 'get',
		link: 'cancel',
		update: $('overlayContainer'),
		onSuccess: function(response) {
			overlayContainerMorph.start({'opacity': 1});
			$('loaderDing').setStyle('visibility', 'hidden');
		}, 
		onRequest: function() {
			overlayContainerMorph.start({'opacity': 0});
			$('loaderDing').setStyle('visibility', 'visible');
		}
	});
	
	var loadingContainerMorph = new Fx.Morph('loadingContainer', {
		duration: 250,
		transition: Fx.Transitions.Quint.easeOut,
		link: 'cancel',
		onStart: function() {
		},
		onComplete: function() {
			myRequest.send();
		}
	});
	
	var mainMessagingUpdate = new Request.HTML({
		method: 'get',
		link: 'cancel',
		url: 'loadContent.php',
		update: $('mainMessaging')
	});
	
	function resetTransition() {
		myRequest.cancel();
		loadingContainerMorph.cancel();
		overlayContainerMorph.cancel();
	}
	
	function loadProject(options) {
		myRequest.setOptions({'url': 'loadProject.php', 'data': {'uid': options.id}});
		loadingContainerMorph.start('.showLoader');
		//mainMessagingUpdate.setOptions({'data': {'uid': options.id}}).send();
	}

	function loadClient(options) {
		myRequest.setOptions({'url': 'loadClient.php', 'data': {'uid': options.id}});
		loadingContainerMorph.start('.showLoader');
	}

	function loadContent(options) {
		if(options.data) {
			myRequest.setOptions({'url': options.url, 'data': options.data});
		} else myRequest.setOptions({'url': options.url});
		loadingContainerMorph.start('.showLoader');
	}

	function loadDiscipline(options) {
		myRequest.setOptions({'url': 'loadDiscipline.php', 'data': {'discipline': options.id}});
		loadingContainerMorph.start('.showLoader');
	}

	function changeProject(options) {
		myProjectStorySlide.slideOut();
		$('project_title').set({'html': ''});
		$('project_client').set({'html': ''});
		$('project_category').set({'html': ''});
		$('project_url').set({'html': ''});
		$('project_body').set({'html': ''});
		var loadingContainerMorph = new Fx.Morph('loadingContainer', {
			duration: 1000,
			transition: Fx.Transitions.Quint.easeOut,
			link: "cancel",
			onComplete: function() {
				loadSite(options.id);
				var myRequest = new Request({
					url: "data.php?uid=" + options.id,
					async: false,
					autoCancel: true,
					onSuccess: function(responseText) {
						var responseJSON = JSON.decode(responseText);

						$('project_title').set({'html': responseJSON.title});
						$('project_client').set({'html': responseJSON.client});
						$('project_category').set({'html': responseJSON.category.split(",").join("<br />")});
						if(responseJSON.url) {
							$('project_url').set({'html': responseJSON.url});
						} else $('project_url').set({'html': '', 'visibility': 'hidden'});
						$('project_body').set({'html': responseJSON.body});
			
						//$('project-overlay').setStyle('top', 250);
			
						myProjectStorySlide.slideIn();
			
						var loadingContainerMorph = new Fx.Morph('loadingContainer', {duration: 250, transition: Fx.Transitions.Quint.easeOut, link: "cancel"}).start('.hideLoader');
						var projectOverlayContainerMorph = new Fx.Morph('projectOverlayContainer', {duration: 250, transition: Fx.Transitions.Quint.easeOut, link: "cancel"}).start({'opacity': 1});
					}
				}).send();
			}
		}).start('.showLoader');
	}

	function toTitleCase(str) {
	    return str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase();
	}      

	function formatTitle(title) {
	    return (title != '/' ? ' / ' + toTitleCase(title.substr(1, title.length - 2).replace(/\//g, ' / ')) : '');
	}

	function handleChange(event) {

		/*
	    var index, rel, links = document.getElementsByTagName('a');
	    for (var i = 0, l; link = links[i]; i++) {
	        index = link.rel.indexOf('?');
	        rel = (index > -1) ? link.rel.substr(0, index) : link.rel;
	        link.className = rel == event.path ? 'selected' : '';
	    }
	    var parameters = '';
	    for (var p in event.parameters) {
	        parameters += '&' + p + '=' + event.parameters[p];
	    }
	    var xhr = getTransport();
	    xhr.onreadystatechange = function() {
	        updateChange(xhr);
	    }
	    xhr.open('get', 'datasource.php?swfaddress=' + event.path + parameters, true);
	    xhr.send('');
	    */
	    
		//parsed_path = event.path.split("/");

		parsed_path = SWFAddress.getValue().split("/");
		page_function = parsed_path[1];
		page_uid = parsed_path[2];

		// -> $('backButton').setStyles({opacity: ((page_function) ? 100 : 0)});
		
		// UNDO UNDO UNDO
		//var overlayContainerMorph = new Fx.Morph('overlayContainer', {duration: 250, transition: Fx.Transitions.Quint.easeOut, link: "cancel"}).start({'opacity': 0});
		//var loadingContainerMorph = new Fx.Morph('loadingContainer', {duration: 250, transition: Fx.Transitions.Quint.easeOut, link: "cancel"}).start('.hideLoader');
		
		
		//if($chk($('widget'))) $('widget').set('html', '');
		if (document.getElementById("widget")) {
			swfobject.removeSWF("widget");
		}

		$$(".discipline_open").each(function(el){
			el.setStyle('color', '');
		});

		$$(".main_menu").each(function(el){
			el.setStyle('color', '');
		});

		resetTransition();

		switch(page_function) {
			case "project":
				loadProject({id: page_uid, ignoreSWFAddress: true});
				//mainMessagingUpdate.setOptions({'data': {'uid': 'ADE530'}}).send();
				break;
			case "client":
				loadClient({id: page_uid, ignoreSWFAddress: true});
				//mainMessagingUpdate.setOptions({'data': {'uid': 'B9EAFE'}}).send();
				break;
			case "clientList":
				$(page_function).setStyle('color', 'white');
				loadContent({url: 'loadClientList.php'});
				mainMessagingUpdate.setOptions({'data': {'uid': 'F7005F'}}).send();
				break;
			case "whatWeDo":
				$(page_function).setStyle('color', 'white');
				loadContent({url: 'whatWeDo.php'});
				mainMessagingUpdate.setOptions({'data': {'uid': 'A630C5'}}).send();
				break;
			case "studio":
				$(page_function).setStyle('color', 'white');
				loadContent({url: 'studio.php'});
				mainMessagingUpdate.setOptions({'data': {'uid': 'C1EC5F'}}).send();
				break;
			case "news":
				$(page_function).setStyle('color', 'white');
				loadContent({url: 'news.php', data: {'year': page_uid}});
				mainMessagingUpdate.setOptions({'data': {'uid': 'AB5380'}}).send();
				break;
			case "discipline":
				$$(".discipline_open").each(function(el){
					if(el.id == page_uid) {
						el.setStyle('color', '#E5E5E5');
					}
				});
				loadDiscipline({id: page_uid, ignoreSWFAddress: true});
				mainMessagingUpdate.setOptions({'data': {'uid': (page_uid == 'Branded Stories') ? 'B5CB6E' : 'DC7F87'}}).send();
				// branded stories digital media
				break;
			default:
				SWFAddress.setTitle("Tolleson Design");
				$('overlayContainer').set('html', '');
				//$('loadingContainer').morph('.hideLoader');
				$("loadingContainer").fade("hide");
				mainMessagingUpdate.setOptions({'data': {'uid': 'ADE530'}}).send();
				//new Fx.Morph('loadingContainer', {duration: 250, transition: Fx.Transitions.Quint.easeOut}).start({'opacity': 0, 'visibility': hidden});
				//SWFAddress.setValue("/");
				//$('projectOverlayContainer').morph({duration: 500, transition: Fx.Transitions.Quint.easeOut, 'opacity': 0});
				//myProjectSlide.slideOut();
				//myProjectMorph.fade(0);
		}
	}

	//$('loadingContainer').morph({duration: 0, transition: Fx.Transitions.Quint.easeOut, 'opacity': 0});
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
	handleChange();
	//var loadingContainerMorph = new Fx.Morph('loadingContainer', {duration: 250, transition: Fx.Transitions.Quint.easeOut, link: "cancel"}).start('.hideLoader');
	$('site').setStyles({display: 'block', opacity: 0});
	var siteMorph = new Fx.Morph('site', {duration: 1000, transition: Fx.Transitions.Quint.easeOut, link: "cancel"}).start({'opacity': 1});
	//$('projectOverlayContainer').set({'opacity': 0});



});