var car_num;
var car_max;
var arrow_pos;
var return_pos;
var scroll_amount;

Cufon.replace('#header h1, #header a, h2, .button, .news_arrow',{hover:true});

// Call functions when DOM is ready

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

$$('body').removeClass('nojs');

window.addEvent('resize',window_resize);

function window_resize() {
	Cufon.refresh();
	setReturnPos();
}

//Navigation arrow functions
	
	Cufon.refresh();
	
	setReturnPos();
	setTimeout(setReturnPos,100);
		
	$('nav_arrow').set('tween', {duration: 500,transition: Fx.Transitions.Expo.easeOut});
		
	$('nav_arrow').setStyle('margin-left',return_pos);
	
	$$('#nav a').addEvents({
		'mouseenter':arrow_scroll,
		'click':kill_arrow
	});
	$$('#nav a').addEvent('click',arrow_scroll);
	$$('#nav').addEvent('mouseleave', arrow_return);
	$$('#nav ul').addEvent('mouseleave', arrow_return);
		
//Initiate carousel, if it exists
	if($('carousel'))
		carousel_init();
	
//Set width of news_pages dynamically in order for centering to work with margin: auto

	if($('news_pages')) {
		var pages_width = $('news_pages').getSize().x;
		$('news_pages').setStyles({
			width:pages_width,
			float:'none'
		});
	}
	
	if($('char_message')) {
		$('char_message').addEvents({
			'keydown':update_length,
			'keyup':update_length
		});
	}
	
	if($$('.ccb_lightbox'))
		lightbox_init();

	if($$('form')) {
		$$('form').addEvent('submit',checkElems)
	}
});

window.addEvent('load', function(event){
	setReturnPos();
});

//Set all JS functions---------------------------------------------


	function kill_arrow() {
		$$('#nav a').removeEvent('mouseenter',arrow_scroll);
		$$('#nav').removeEvent('mouseleave', arrow_return);
		$$('#nav ul').removeEvent('mouseleave', arrow_return);
		
		var link = $(this).href;
		
		setTimeout("document.location = '"+ link +"'",250);
		
		return false;
	}
	
	
	
	function arrow_return() {
		$('nav_arrow').tween('margin-left',return_pos);
	}
	
	function arrow_scroll() {
		get_arrow_pos($(this));
		
		$('nav_arrow').tween('margin-left',arrow_pos);
	}
	
	function get_arrow_pos(el) {
		var width = el.getSize().x;
		var item_x = el.getPosition('nav').x;
		var arrow_x = ((width/2)-8) + item_x;
		
		arrow_pos = arrow_x;
	}


	function update_length() {
		var char_length = $('char_message').value.length;
		
		if(char_length > 100)
			$('char_count').setStyle('color','#f00');
		else
			$('char_count').setStyle('color','#999');
		
		if (char_length > 140) {
			$('char_message').value = $('char_message').value.substring(0, 140);
			$('char_count').innerHTML = 0;
		}
		else
			$('char_count').innerHTML = 140 - char_length;
		
		return char_length;
	}


//carousel function
	function carousel_init() {
		car_num = 1;
		car_max = $$('#car_nav li').length;
		$('itemsholder').set('tween', {duration: 1000,transition: Fx.Transitions.Quint.easeOut});
		$$('#arrowleft a').set('tween', {duration: 400,transition: Fx.Transitions.Quint.easeOut});
		$$('#arrowright a').set('tween', {duration: 400,transition: Fx.Transitions.Quint.easeOut});
		$$('#car_nav li').addEvent('click',carScrollTo);
		$$('#hitleft').addEvents({
			'mouseenter':function() {
				$$('#arrowleft a').tween('margin-left','0px');
			},
			'mouseleave':function() {
				$$('#arrowleft a').tween('margin-left','29px');
			},
			'click':carScrollTo
		});
		$$('#hitright').addEvents({
			'mouseenter':function() {
				$$('#arrowright a').tween('margin-right','0px');
			},
			'mouseleave':function() {
				$$('#arrowright a').tween('margin-right','29px');
			},
			'click':carScrollTo
		});
		
		window.addEvent('resize',readjustScroll);
	}
	
	function carScrollTo() {
	
		switch($(this).title)
		{
		case "previous image":
		  if(car_num == 1)
		  	car_num = car_max;
		  else
		  	car_num --;
		  break;
		case "next image":
		  if(car_num == car_max)
		  	car_num = 1;
		  else
		  	car_num ++;
		  break;
		default:
		  car_num = $(this).title;
		}
		
		var item = $$('.item')[1];
		var item_width = ((item.getSize().x + 28) * car_num) - (item.getSize().x + 28);
				
		scroll_amount = Math.round(- item_width);
		
		$('itemsholder').tween('margin-left',scroll_amount);
		$$('#car_nav .on').removeClass('on');
		$$('#car_nav'+car_num).addClass('on');
		
		return false;
	}
	
	function readjustScroll() {
		var item = $$('.item')[1];
		var item_width = ((item.getSize().x + 28) * car_num) - (item.getSize().x + 28);
				
		scroll_amount = Math.round(- item_width);
		$('itemsholder').setStyle('margin-left',scroll_amount);
	}

function setReturnPos() {
	if($('nav_on')) {
		get_arrow_pos($('nav_on'));
		return_pos = arrow_pos;
	}
	else {
		var home_link = $$('#nav h1');
		get_arrow_pos(home_link[0]);
		return_pos = arrow_pos;
	}
	
	$('nav_arrow').setStyle('margin-left',return_pos);
}


//Lightbox function

/*
	function lightbox_init() {
		
		$$('.ccb_lightbox').addEvent('click',start_lightbox);
	
		var lightbox = $('ccb_lightbox');
		var content_size;
		var content_height;
		var background = $('ccb_bg');
		var content = $('ccb_holder');
		var close = $('close');
		var display;
		var returnPos;
		var backgroundTween = new Fx.Tween(background);
		
		close.addEvent('click',kill_lightbox);
		$('ccb_bg').addEvent('click',kill_lightbox);
		
	
		backgroundTween.set('opacity','0');
		
		function start_lightbox() {
			
			var type;
			var rel = this.getProperty('rel');
			if(rel.contains('vimeo')) {
				type = 'vimeo';
				vidid = rel.substr(6,8);
			}
			
			switch(type) {
				case "vimeo":
					display = '<object width="940" height="529"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='+vidid+'&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=000000&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id='+vidid+'&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=000000&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="940" height="529"></embed></object>';
				break;
				default:
					display = '<img src="'+$(this).href+'" alt="" />';
				break;
			}
			
			$('display').set('html',display);
			
			
			content.set('tween',{duration: 1000,transition: Fx.Transitions.Quint.easeOut});
			
			returnPos = window.getScroll().y;
			
			var myFx = new Fx.Scroll(window).toTop().chain(function() {
				lightbox.setStyle('display','block');
				content_size = content.getSize();
				content_height = content_size.y;
				content.setStyle('margin-top',- content_height);
				backgroundTween.start('opacity','0.8');
				content.tween('margin-top','0');
			});
			
			return false;
			
		}
		
		
		function kill_lightbox() {
			var contentTween = new Fx.Tween(content);
			
			backgroundTween.start('opacity','0');
			
			var myFx = new Fx.Scroll(window).start(0,returnPos);
			
			contentTween.start('margin-top',- content_height).chain(function(){
				$('display').set('html','');
				lightbox.setStyle('display','none');		
			});
			
		}
				
		return false;
	}
	*/
function checkElems() {
	var form = $(this);
	var type;
	var value;
	var def;
	var bool = true;
	var message = "\n";
	var f = new Array();
	var n = 0;
	//get number of elements
	var elems = form.elements.length
	
	//start elements loop
	for (e=0;e<elems;e++) {		
		type = form.elements[e].type;
		title = form.elements[e].title;
		if(title == "required") {
			value 	= form.elements[e].value
			def		= form.elements[e].defaultValue
			form.elements[e].onchange = function() {
					this.style.background = "";
				}
			if(value == "") {
				f[n] = e;
				n++
				form.elements[e].style.background = "#ffcccc";
				message += form.elements[e].id+"\n";
				bool = false;
			}
			else {
				form.elements[e].style.background = "";
			}
		}
	}
	if(bool == false) {
		var f = f[0];
		if(form.elements[f].type != "select-one")
			form.elements[f].select();
		alert("Error!\nThe following field(s) are required:\n"+message+"\nPlease complete the fields and re-submit your request");
		return false;
	}
	else {
		for(n=0;n<elems;n++) {
			if(form.elements[n].type=="submit") {
				btn = form.elements[n];
			}
		}
		return true;
	}
}
