/*
 *	Global functions
 *	Author:	  Petro Salema
 *	Contact:  petro@petrosalema.com
 *
 *	REQUIRES!: http://www.petrosalmea.com/assets/petrofied.js  <--- !!!
 *
 ****************************************************************************/



function showProjectModule(caller, module)
{
	var modules = Util.getElementsByClassName('work_module');

	for(var i=0, j=modules.length; i<j; i++)
	{
		modules[i].style.display = 'none';
	}

	document.getElementById('module_' + module).style.display = 'block';

	var tabs = document.getElementById('work_tabs').getElementsByTagName('li');

	for(var i=0, j=tabs.length; i<j; i++)
	{
		tabs[i].className = '';
	}

	/* caller is an 'a' element so parent is the 'li' element */
	caller.parentNode.className = 'current';
}


function submitForm()
{
	var form = document.getElementById('contactForm');

	/* Make input safe */
	form.name.value = form.name.value.strip().stripTags();
	form.subject.value = form.subject.value.strip().stripTags();
	form.message.value = form.message.value.strip().stripTags();

	/* Validate form */
	var form_elements = new Array(
		[form.name, '', true, 'Please include your name'],
		[form.email, /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i, false, 'Please provide a valid email address'],
		[form.subject, '', true, 'Please provide a subject'],
		[form.message,  '', true, 'Please write something in the message box']
	);

	Validator.reset(form_elements);
	var noErrors = Validator.validate(form_elements);

	var error = '1px #f45 solid';

	if(!noErrors)
	{
		document.getElementById('error_msg').style.display = 'block';
		document.location = '#contact_form';
	}
	else
	{
		form.submit();
	}
}


var Validator = {

	reset : function(elements)
	{
		var e = elements;

		for(var i=0; i<e.length; i++)
		{
			if(e[i][0].value.indexOf(' ') > -1) { e[i][0].value = e[i][0].value.replace(/^\s+|\s+$/g, ''); }
			e[i][0].style.border = '1px #dedede solid';
		}

		var error_box = document.getElementById('error_msg');
		error_box.style.display = 'none';
		error_box.innerHTML = '';
	},

	validate : function(elements)
	{
		var noErrors = true;
		var e = elements;

		for(var i=0; i<e.length; i++)
		{
			if(!Validator.test(e[i][0], e[i][1], e[i][2], e[i][3]))
			{
				var noErrors = false;
			}
		}

		return noErrors;
	},

	test : function(element, test, flag, msg)
	{
		var error_box = document.getElementById('error_msg');

		var result = false;

		if(typeof(test) == 'string')
		{
			if(element.value == test) { result = true; }
		}
		else
		{
			result = test.test(element.value);
		}

		if(result == flag)
		{
			element.style.border = '1px #f45 solid';

			error_box.innerHTML += '&nbsp;&#8226;&nbsp;' + msg + '<br />';

			return false;
		}

		return true;
	}

}