function changeMiniPanel(panel, obj) {
	if(panel == active_mini_panel) {
		return false;
	}
	
	var tabs = $(obj).up('ul');
	var tags = tabs.getElementsByTagName('li');
	var x;
	for(x=0;x<tags.length;x++) {
		if(tags[x].className != 'back')
			tags[x].className = "";
	}
	
	$(obj).up().className = "active";
	
	$(active_mini_panel).style.display = "none";
	$(panel).style.display = "block";
	active_mini_panel = panel;
	
	return false;
}

function showEmailDetails() {
	$('email_to_details').style.display = "block";
	$('emailfieldwrapper').className = 'norounded';
}

function hideEmailDetails() {
	$('email_to_details').style.display = "none";
	$('emailfieldwrapper').className = '';
}

function emailKeyPress(event, box) {
	var divs = $('emails').getElementsByTagName('div');
	var d = null;
	if(divs.length > 0) {
		var d = divs[divs.length-1];
	}
	
	if(divs.length == 5) {
		$('msg1').style.display = "none";
		$('msg2').style.display = "block";
	} else {
		$('msg2').style.display = "none";
		$('msg1').style.display = "block";
	}
	
	if(event.keyCode == 9 || event.keyCode == 44 || event.charCode == 44 || event.keyCode == 13 || event.keyCode == 3 || event.keyCode == 32 || event.charCode == 32) {
		if(box.value.length > 0 && isValidEmail(box.value)) {
			var e = document.createElement('div');
			var input = document.createElement('input');
			var a = document.createElement('a');
			input.setAttribute('type', 'hidden');
			input.setAttribute('name', 'emails[]');

			var onclick = function(event) {
				var element = event.element();
				$(element).up().remove();
				evaluateSize();
			}

			$(a).observe('click', onclick);
			a.innerHTML = "x";

			input.value = box.value;
			e.innerHTML = "<span>"+box.value+"</span>";
			e.className = "email";
			e.appendChild(a);
			e.appendChild(input);
			insertEmail(e);
			evaluateSize();
			box.value = "";
		}
		if(event.keyCode == 9) {
			return true;
		} else {
			return false;
		}
	} else if(event.keyCode == 8 && box.value.length == 0) {
		if(d != null) {
			if(d.className == 'email highlight') {
				$(d).remove();
				evaluateSize();
			} else {
				d.className = 'email highlight';
			}
			return false;
		} else {
			return true;
		}
	} else {
		if(d != null) {
			d.className = "email";
		}
		if(divs.length == 5) {
			return false;
		} else {
			return true;
		}
	}
}

function insertEmail(obj) {
	var i = $('tin');
	i.remove();
	
	$('emails').appendChild(obj);
	$('emails').appendChild(i);
	$('tinin').focus();
}

function evaluateSize() {
	var box = $('tinin');
	var wrap = $('emailfieldwrapper');
	
	var divs = $('emails').getElementsByTagName('div');
	if(divs.length == 0) {
		wrap.style.height = "19px";
		box.style.width = "250px !important";
		$(box).up().style.width = "250px !important";
		return;
	}
	
	var x;
	var div;
	var cwidth = 0;
	var cheight = 19;
	for(x=0;x<divs.length;x++) {
		cwidth += $(divs[x]).getWidth();
		if(cwidth + 75 > wrap.getWidth()) {
			cwidth = $(divs[x]).getWidth();
			cheight += 19;
		}
	}
	
	wrap.style.height = cheight + "px";


	var nw = wrap.getWidth() - cwidth - 30;
	
	box.style.width = nw + "px !important";
	$(box).up().style.width = nw + "px !important";

	$('tinin').focus();
	
	if(divs.length == 5) {
		$('msg1').style.display = "none";
		$('msg2').style.display = "block";
		$('emailmessage').focus();
	}
}

function validatEmailForm(e) {
	if($('emailto').value == 'multi') {
		var divs = $('emails').getElementsByTagName('div');
		if(divs.length == 0) {
			alert('You must enter at least one e-mail address to send to.');
			e.returnValue = false;
			return false;
		}
		
		if(divs.length > 5) {
			alert('You may only send up this photo to up to 5 people at a time.');
			e.returnValue = false;
			return false;
		}
	} else {
	if(!isValidEmail($('emailto').value)) {
		alert('Please enter a valid email address to send to');
		e.returnValue = false;
		return false;
	}
	}
		
	if(!isValidEmail($('emailfrom').value)) {
		alert('Please enter your e-mail address');
		e.returnValue = false;
		return false;
	}
}

function isValidEmail(str){
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(str.match(emailRegEx)){
		return true;
	} else {
		return false;
	}
}

function closeThis(obj) {
	new Effect.BlindUp(obj, {duration: .2});
	return false;
}

function selectAll(obj) {
	obj.focus();
	obj.select();
}

function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('maxlength');
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			Event.observe(x[i], 'keyup', checkMaxLength);
			Event.observe(x[i], 'keydown', checkMaxLength);
			Event.observe(x[i], 'keypress', checkMaxLength);
			Event.observe(x[i], 'blur', checkMaxLength);
		}
	}
}

function checkMaxLength(event) {
	var element = Event.element(event);
	var maxLength = element.getAttribute('maxlength');
	var currentLength = element.value.length;
	if (currentLength > maxLength) {
		element.value = element.value.truncate(800);
	}
	element.relatedElement.firstChild.nodeValue = currentLength;
}
