function formToArray(form) {
	var a = [];
	for (var i = 0; i < form.length; i++) {
		var e = form[i];
		var tag = e.tagName;
		if (tag == 'INPUT' || tag == 'TEXTAREA' || tag == 'SELECT') {
			var n = e.name;
			var t = e.type;
			if (!n || e.disabled || t == 'reset' || (t == 'checkbox' || t == 'radio') && !e.checked || t == 'submit' || t == 'image' || t == 'button' || t == 'file' || tag == 'SELECT' && e.selectedIndex == -1) continue;
			if (t == 'select-multiple') {
				for(var j=0; j < e.options.length; j++) if (e.options[j].selected) a.push({name: n, value: e.options[j].value});
				continue;
			}
			a.push({name: n, value: e.value});
		}
	}
	return a;
}

function arraySerialize(a) {
	var s = [];
	for (var i = 0; i < a.length; i++) s.push( encodeURIComponent(a[i].name) + "=" + encodeURIComponent( a[i].value ) );
	return s.join("&");
}

function ajaxSend(ajaxUrl, ajaxDiv, ajaxPost) {
	function ajaxObject() {
		if (document.all && !window.opera) obj = new ActiveXObject("Microsoft.XMLHTTP");
		else obj = new XMLHttpRequest();
		return obj;
	}
	var ajaxHttp = ajaxObject();
	ajaxMethod = (typeof ajaxPost == 'undefined') ? "GET" : "POST";
	ajaxHttp.open(ajaxMethod, ajaxUrl);
	ajaxHttp.onreadystatechange = function() {
		if(ajaxHttp.readyState == 4) {
			var ajaxResponse = ajaxHttp.responseText;
			document.getElementById(ajaxDiv).innerHTML = ajaxResponse;
		}
	}
	ajaxHttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");
	if(ajaxMethod == "POST") {
		ajaxHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajaxHttp.send(ajaxPost);
	}
	else ajaxHttp.send(null);
	return false;
}

function newsletter_ajax(form, l) {
	var post = arraySerialize(formToArray(form));
	if(typeof(l) == 'string') l = '&l=' + encodeURIComponent(l);
	else l = '';
	return ajaxSend("ajax.php?p=newsletter" + l, "newsletter_message", post);
}
