
var Quotes = {
	direction: 'out',
	timer: null,
	slide_duration: 6000,
	fade_duration: 700,
	idx: 0,
	quotes: [
		["Adlucent is the most innovative search agency we've ever worked with. They delivered exceptional results that other agencies couldn't achieve.","Buy.com"],
		["Adlucent has exceeded expectations at every turn. They continue to help us drive new revenue with our existing brands and do so profitably.","Andra Group"],
		["Results go beyond the growth of our SEM channel.<br>Adlucent grows our business.","Oriental Trading Company"],
		["Our priority was to increase revenues from paid search.<br>Adlucent delivered.","Adam &amp; Eve"],
		["Adlucent is the only search marketing firm we found that guarantees results by tying its compensation to our success.","Discount Office Items"]
//		["We wanted to learn, and to participate.<br>Adlucent was willing to do that.","Wasserstrom"]
	],
	init: function(){
		if ($('customer-quote')) {
			$('customer-quote').set('morph', {
				duration: Quotes.fade_duration,
				transition: 'cubic:out',
				onComplete: function(){
					if (Quotes.direction === 'out') Quotes.flip();
				}
			});
			Quotes.startTimer();
		}
	},
	flip: function(){
		var idx = Quotes.getNext();
		var text = Quotes.quotes[idx][0];
		var source = Quotes.quotes[idx][1];
		$('quote-text').set('html', '&ldquo;' + text + '&rdquo;');
		$('quote-source').set('html', '&mdash; ' + source);
		Cufon.refresh();
		Quotes.direction = 'in';
		$('customer-quote').fade('in');
		this.startTimer();
	},
	startTimer: function(){
		timer = setTimeout(function(){
			Quotes.direction = 'out';
			if (Browser.Engine.name === 'trident') {
				Quotes.flip();
			}
			else {
				$('customer-quote').morph({ 'opacity': 0 });
			}
		}, Quotes.slide_duration);
	},
	getNext: function(){
		if (Quotes.idx === Quotes.quotes.length - 1)  Quotes.idx = 0;
		else Quotes.idx++;
		return Quotes.idx;
	}
}

var TeamMembers = {
	start: function(){
		TeamMembers.parse();
	},
	parse: function(){
		var teammembers = $$('div#teammembers div.teammember');
		teammembers.each(function(member, i){

			var readmorecontent = member.getElement('div.readmorecontent');
			readmorecontent.addClass('closed');

			var readmorelink = member.getElement('a.toggle');
			readmorelink.addClass('shown');
			readmorelink.addEvent('click', function(event){
				TeamMembers.toggle(readmorelink, readmorecontent);
			});
		});
	},
	toggle: function(link, el){
		if (link.hasClass('readmorelink')) {
			link.removeClass('readmorelink');
			link.addClass('readlesslink');
			link.set('text', 'Read Less');
			el.addClass('open');
			el.removeClass('closed');
		}
		else if (link.hasClass('readlesslink')) {
			link.addClass('readmorelink');
			link.removeClass('readlesslink');
			link.set('text', 'Read More');
			el.removeClass('open');
			el.addClass('closed');
		}
	}
}

var CaseStudies = {
	'selectedtab': 0,
	'selectedcontent': null,
	start: function(){
		if (!$('casestudynav').hasClass('follow')) {
			CaseStudies.parse();
		}
	},
	parse: function(){

		var tabs = $$('ul#casestudynav li a');
		var selectedtab = null;
		tabs.each(function(tab, i){
			tab.addEvent('click', function(event){
				var event = new Event(event).stop();
				CaseStudies.switchtab(i);
			});
		});

		var casestudies = $$('div#casestudies div.casestudy');
		casestudies.each(function(cs, i){
			if (i == 0) {
				CaseStudies.selectedcontent = cs.getProperty('id');
				cs.addClass('csopened');
			}
		});

	},
	switchtab: function(index){

		if (index == CaseStudies.selectedtab) return false;

		var tabs = $$('ul#casestudynav li a');

		// DESELECT PREVIOUS TAB
		if (CaseStudies.selectedtab != null && CaseStudies.selectedtab != index)
			tabs[CaseStudies.selectedtab].getParent().removeClass('selected');

		// TOGGLE TABS
		if (CaseStudies.selectedtab != index) {
			tabs[index].getParent().addClass('selected');
			CaseStudies.selectedtab = index;
			CaseStudies.switchcontent(tabs[index].getProperty('rel'));
		}
		else if (CaseStudies.selectedtab == index) {
			tabs[index].getParent().removeClass('selected');
			CaseStudies.selectedtab = null;
			CaseStudies.switchcontent(tabs[index].getProperty('rel'));
		}

	},
	switchcontent: function(id){

		id = (id.charAt(0) == '/') ? id.substr(1) : id;

		// HIDE PREVIOUS CONTENT
		if (CaseStudies.selectedcontent != null && CaseStudies.selectedcontent != id)
			$(CaseStudies.selectedcontent).removeClass('csopened');

		// TOGGLE CONTENT
		if (CaseStudies.selectedcontent != id) {
			$(id).addClass('csopened');
			CaseStudies.selectedcontent = id;
		}
		else if (CaseStudies.selectedcontent == id) {
			$(id).removeClass('csopened');
		}
		
	}
}

var Expander = {
	'tabs': 'div#glancetabs ul li a',
	'selectedtab': null,
	'selectedcontent': null,
	start: function(){
		Expander.parse();
	},
	parse: function(){

		var tabs = $$('div#glancetabs.inlinecontent ul li a');
		var selectedtab = null;
		tabs.each(function(tab, i){
			tab.addEvent('click', function(event){
				var event = new Event(event).stop();
//				Expander.switchtab(i);
			});
		});

		var tabopeners = $$('a.opentab');
		tabopeners.each(function(tab, i){
			tab.addEvent('click', function(event){
				var event = new Event(event).stop();
				Expander.switchtab(tab.getProperty('rel'));
			});
		});
		
	},
	switchtab: function(index){

		// DESELECT PREVIOUS TAB
		if (Expander.selectedtab != null && Expander.selectedtab != index)
			tabs[Expander.selectedtab].getParent().removeClass('selected');

		// TOGGLE TABS
		if (Expander.selectedtab != index) {
			var tab = tabs[index];
			tab.getParent().addClass('selected');
			Expander.selectedtab = index;
			Expander.switchcontent(tab.getProperty('rel'));
		}
		else if (Expander.selectedtab == index) {
			tabs[index].getParent().removeClass('selected');
			Expander.selectedtab = null;
			Expander.switchcontent(tabs[index].getProperty('rel'));
		}

	},
	switchcontent: function(id){

		id = $$(Expander.tabs)[id].getProperty('rel');
		id = (id.charAt(0) == '/') ? id.substr(1) : id;

		// HIDE PREVIOUS CONTENT
		if (Expander.selectedcontent != null && Expander.selectedcontent != id)
			$(Expander.selectedcontent).removeClass('selected');

		// TOGGLE CONTENT
		if (Expander.selectedcontent != id) {
			$(id).addClass('selected');
			Expander.selectedcontent = id;
			var newheight = $(id).getHeight();
			Expander.expand(newheight);
		}
		else if (Expander.selectedcontent == id) {
			Expander.expand(0, id);
		}
		
	},
	expand: function(newheight, id){

		// SET UP EXPAND EFFECTS
		var expandfx = new Fx.Morph('glanceexpanded', {
			duration: 500,
			transition:Fx.Transitions.Cubic.easeOut,
			onStart: function(){
				// REMOVE AUTO HEIGHT CLASS
				$('glanceexpanded').removeClass('glanceopened');
			},
			onComplete: function(){
				// ADD AUTO HEIGHT CLASS FOR DYNAMIC COLUMN RESIZING
				if (newheight != 0) {
					$('glanceexpanded').addClass('glanceopened');
					var myFx = new Fx.Scroll(window, {
						duration: 300,
						transition:Fx.Transitions.Cubic.easeOut,
						offset: {
							'y': -17
						}
					}).toElement('glancetabs');
				}
				else if (newheight == 0 && id) {
					$(id).removeClass('selected');
					Expander.selectedcontent = null;
				}
			}
		});

		// OPEN EXPANDED INFO
		expandfx.start({
		    'height': newheight
		});

	}
};

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

	Quotes.init();

	var message = $get("message");
	if (message !== '') {
		var mess = ret_message(message);
		var cover = new Element('div', {
			'id' : 'cover'
		}).inject(document.body).setStyles({
			'opacity' : 0
		});
		var fader = new Element('div', {
			'id' : 'message',
			'html' : mess
		}).inject(cover);
		cover.fade('in')
		setTimeout(function(){
			cover.fade('out');
		}, 4000);
	}

	var smoothscroll = new Fx.SmoothScroll({
	    wheelStops: true,
		onComplete: function(){
			if ($('getintouch') && this.anchor == "getintouch") {
				$('getintouch').highlight('#ddd');
			}
		}
	});

	// INITIATE CASE STUDY SWITCHER
	CaseStudies.start();

	// INITIATE THE EXPANSION
	Expander.start();

	// INITIATE TEAM MEMBER EXPANSION
	TeamMembers.start();


	// Set up contact form ajax
	if ($('contactform')) {
		$('contactform').addEvent('submit', function(event) {

			// Update submit button
			$('contactformsubmit').set('value', 'One moment...');
			$('contactformsubmit').addClass('disabled');
			$('contactformsubmit').setProperty('disabled', 'true');

			var req = $('contactform').getElements('input.required, textarea.required');
			req.each(function(el){
				var valid = contact_validate.validate(el);
				if (!valid) {
					event.stop();
					$('contactformsubmit').set('value', 'Submit →');
					$('contactformsubmit').removeClass('disabled');
					$('contactformsubmit').removeProperty('disabled');
				}
			});

/*			new Request.HTML ({
				url: baseurl,
				method: 'post',
				update: $('contactmessage'),
				onStart: function(){
					alert(demourl)
				},
				onComplete: function() {
					$('contactformsubmit').set('value', 'Submit →');
					$('contactformsubmit').removeClass('disabled');
					$('contactformsubmit').removeProperty('disabled');
					$('contactmessage').highlight('#ddd');
				},
				onSuccess: function(){
					Cufon.refresh();
				},
				onFailure: function(item){
				}
			}).post($('contactform'));*/
		});
	}

	// Set up contact form ajax
	if ($('demoform')) {
		$('demoform').addEvent('submit', function(event) {
			event.stop();

			// Update submit button
			$('contactformsubmit').set('value', 'One moment...');
			$('contactformsubmit').addClass('disabled');
			$('contactformsubmit').setProperty('disabled', 'true');

			new Request.HTML ({
				url: demourl,
				method: 'post',
				update: $('contactmessage'),
				onStart: function(){
					alert(demourl)
				},
				onComplete: function() {
					$('contactformsubmit').set('value', 'Submit →');
					$('contactformsubmit').removeClass('disabled');
					$('contactformsubmit').removeProperty('disabled');
					$('contactmessage').highlight('#ddd');
				},
				onSuccess: function(){
					Cufon.refresh();
				},
				onFailure: function(item){
				}
			}).post($('demoform'));
		});
	}

	// Open rel="external" links in new tab
	$$('a[rel=external]').addEvent('click', function(event){
		event.stop();
		window.open(this.getProperty('href'));
	});

	// Initiate deep linking
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);
});


function formatTitle(title) {
	return (title != '/' ? title : '') + ' %E2%80%B9 Adlucent: Online Retail Internet Marketing';
}
function handleChange(event) {
	if (event.path == '/'|| event.path == '') {
		return false;
	}
	var rel, title, index, path = event.path;
	$$('div#glancetabs.inlinecontent ul li a').each(function(a, i){
		rel = a.getProperty('rel');
		if (rel == path) {
			a.getParent().addClass('selected');
			title = a.getProperty('title');
			index = i;
		}
		else {
			a.getParent().removeClass('selected');
		}
	});
	Expander.switchcontent(index);
	SWFAddress.setTitle(formatTitle(title));
}



/*
Function: $get
	This function provides access to the "get" variable scope + the element anchor

Version: 1.3

Arguments:
	key - string; optional; the parameter key to search for in the url's query string (can also be "#" for the element anchor)
	url - url; optional; the url to check for "key" in, location.href is default

Example:
	>$get("foo","http://example.com/?foo=bar"); //returns "bar"
	>$get("foo"); //returns the value of the "foo" variable if it's present in the current url(location.href)
	>$get("#","http://example.com/#moo"); //returns "moo"
	>$get("#"); //returns the element anchor if any, but from the current url (location.href)
	>$get(,"http://example.com/?foo=bar&bar=foo"); //returns {foo:'bar',bar:'foo'}
	>$get(,"http://example.com/?foo=bar&bar=foo#moo"); //returns {foo:'bar',bar:'foo',hash:'moo'}
	>$get(); //returns same as above, but from the current url (location.href)
	>$get("?"); //returns the query string (without ? and element anchor) from the current url (location.href)

Returns:
	Returns the value of the variable form the provided key, or an object with the current GET variables plus the element anchor (if any)
	Returns "" if the variable is not present in the given query string

Credits:
		Regex from [url=http://www.netlobo.com/url_query_string_javascript.html]http://www.netlobo.com/url_query_string_javascript.html[/url]
		Function by Jens Anders Bakke, webfreak.no
*/
function $get(key,url){
	if(arguments.length < 2) url =location.href;
	if(arguments.length > 0 && key != ""){
		if(key == "#"){
			var regex = new RegExp("[#]([^$]*)");
		} else if(key == "?"){
			var regex = new RegExp("[?]([^#$]*)");
		} else {
			var regex = new RegExp("[?&]"+key+"=([^&#]*)");
		}
		var results = regex.exec(url);
		return (results == null )? "" : results[1];
	} else {
		url = url.split("?");
		var results = {};
			if(url.length > 1){
				url = url[1].split("#");
				if(url.length > 1) results["hash"] = url[1];
				url[0].split("&").each(function(item,index){
					item = item.split("=");
					results[item[0]] = item[1];
				});
			}
		return results;
	}
}





function ret_message(message) {
	switch(message) {
		case 'ty':
			return "Thank you for contacting Adlucent!<br>We will be in touch soon."
		break;
	}
}



