/**
 * Panic DMT generic form JS version 1.11
 * @author <tero@panic.fi>
 * @date 21.1.2010
 * @added prototype js load for prototype 1.6.0.3
 */


/** Starting Google JS loader **/

var head = document.getElementsByTagName('head');
if( !head )
	alert('<HEAD> missing!');
var fileref = document.createElement('script');
var url = 'http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js';
fileref.setAttribute('src', url);


head[0].insertBefore(fileref, head[0].firstChild);

// Loading prototype
//google.load('prototype', '1.6.0.3');

/** Ending Google JS loader **/

var _defaultBgColor = '#ffffff';
var _errorFieldBgColor = '#ff0000';
var _errorMessageBgColor = '#ff0000';

var _rulez = [];
_rulez['firstname'] =	function (e) { return /^[^$]+/.test(e) };
_rulez['lastname'] =	function (e) { return /^[^$]+/.test(e) };
_rulez['street'] =	function (e) { return /^[^$]+/.test(e) };
_rulez['postal'] =	function (e) { return /^[0-9]{5}$/.test(e) };
_rulez['city'] =	function (e) { return /^[^$]+/.test(e) };
_rulez['dob'] =		function (e) { return e > 1900 && e < 2005 };
_rulez['gender'] =	function (e) { return e == 'male' || e == 'female' };
_rulez['email'] =	function (e) { return /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(e) };
_rulez['mobile'] = 	function (e) { return /^358[45]{1}[0-9]+$/.test(e)  };

function _addError(field) {
	field.style.backgroundColor = _errorFieldBgColor;
	var label = field.previous().innerHTML;
	return label.split('*')[0].toLowerCase();
}

/* init, checking form validity */
window.onload = function() {
	var _required = [ '[name="email"],[name="mobile"]', 
			  '[name="permit[sms]"]', 
			  '[name="permit[email]"]', 
			  '[name="policy_id"]', 
			  '[name="api_key"]',
			  '#error_div' ];
	_required.each( function(e) { if( $$(e).length == 0 ) alert('Init failed! Missing field: '+e); } );
}

function _submit() {
	var errors = "";
	
	$$('._required').each( function(e) { 
		e.style.backgroundColor = _defaultBgColor;
		if( !_rulez[e.name](e.value) ) {
			errors += '- '+_addError(e)+'<br/>';
		}
	});
	
	if( errors != "" ) {
		$('error_message').innerHTML = errors;
		$('error_div').show();
	}
	else {
		$('_form').submit();
	}
}
