// addDOMLoadEvent
addDOMLoadEvent=(function(){var load_events=[],load_timer,script,done,exec,old_onload,init=function(){done=true;clearInterval(load_timer);while(exec=load_events.shift())
exec();if(script)script.onreadystatechange='';};return function(func){if(done)return func();if(!load_events[0]){if(document.addEventListener)
document.addEventListener("DOMContentLoaded",init,false);if(/WebKit/i.test(navigator.userAgent)){load_timer=setInterval(function(){if(/loaded|complete/.test(document.readyState))
init();},10);}
old_onload=window.onload;window.onload=function(){init();if(old_onload)old_onload();};}
load_events.push(func);}})();

el = function(id) {
	return document.getElementById(id);
};

inviteFormFocus = function(elem, b, str) {
	if(b && elem.value == str) {
		elem.value = '';
	}
	else if(!b && elem.value == '') {
		elem.value = str;
	}
};
inviteShowCal = function() {
	var elem = document.getElementById('invite-date');
	if(document.createEvent) {
		var evObj = document.createEvent('MouseEvents');
	  	evObj.initEvent('click', true, false );
	  	elem.dispatchEvent(evObj);
	} 
	else if(document.createEventObject ) {
	  	elem.fireEvent('onclick');
	}
};
inviteInit = function() {
	var allCards = document.getElementById('cards').getElementsByTagName('label');
	for(var i = 0; i < allCards.length; i++) {
		allCards[i].onmousedown = function() {
			inviteToggle(this);	
		}
	}
};
inviteToggle = function(elem) {
	var labelFor = elem.id.replace(/\-label/, '');
	var allCards = document.getElementById('cards').getElementsByTagName('input');
	for(var i = 0; i < allCards.length; i++) {
		if(allCards[i].id != labelFor) {
			allCards[i].parentNode.className=allCards[i].parentNode.className.replace(new RegExp(' selected\\b'), '');
		}
		else {
			allCards[i].parentNode.className+= ' selected';
		}
	}
};

inviteValidate = function() {
	// Card selected?
	var ok = false;
	var cardEls = el('cards').getElementsByTagName('input');
	for(var i = 0; i < cardEls.length; i++) {
		if(cardEls[i].checked) {
			ok = true;
		}
	}
	if(!ok) {
		alert('Please select a card');
		return false;
	}
	// Valid emails?
	var emailRegex=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(!emailRegex.test(el('from-email').value) || !emailRegex.test(el('to-email').value)) {
		alert('Please enter a valid email address');
		return false;
	}
	// Fields filled in?
	var fieldEls = {
		'from-name': 'Enter your name',
		'from-email': 'Enter your name',
		'to-name': 'Enter your friend\'s name',
		'to-email': 'Enter your friend\'s email',
		'comment': 'Add a comment',
		'invite-date': 'Got the date?',
		'invite-time': 'Got the time?',
		'invite-place': 'Got the place?',
	};
	for(var x in fieldEls) {
		if(el(x).value == '' || el(x).value == fieldEls[x]) {
			alert('Please complete all fields');
			return false;
		}
	}
	return true;
};

// OnDomReady
addDOMLoadEvent(function(){
	if(document.getElementById('cards')) {
		inviteInit();
	}
});