var message_NotFoundUserName = "Please input your name!";
var message_NotFoundUserEmail = "Please input your E-mail adress!";
var message_NotFoundUserMessage = "#message_NotFoundUserMessage#";

var message_TooShortUserName = "User name too short!";
var message_TooShortUserEmail = "User E-mail too short!";
var message_TooShortUserMessage = "#message_TooShortUserMessage#";

var message_SendStatusOK = "Thank you for subscription.";
var message_SendStatusCancel = "Subscription canceled...";


	   function makeWrap (listenerObject){
	   	 var oe = window.onload;
	   	 return function (){
	   	 	if (listenerObject)
	   	 	  listenerObject ();

	   	 	if (oe)
	   	 	  oe ();
	   	 };
	   }



window.onload = makeWrap (OnLoadAFormSupport);

var activatedForm = null;

function OnLoadAFormSupport() {
	//alert ('Init:OnLoadAFormSupport');
	if (activatedForm != null) return;
	var message_forms = (document.getElementsByTagName('form'));
        for (var i = 0; i < message_forms.length; i++){
	  var frm = message_forms[i];
          if (frm.name.indexOf('as_') != 0) continue;
 	  try {
		frm.addEventListener('submit', form_check_subscription, false);
		activatedForm = frm;
 	  } catch(e) {
		frm.onsubmit = form_check_subscription;
	  }//end of TRY - CATCH
	}//{end of FOR}
}

function form_check_subscription(e) {
	var error_message = '';
	var FIELDS = {
		'form_username'	: 255,
		'form_email'	: 255,
		'form_message'	: 10240,
		'form_is_subscription' : 0
	};
	var arr_data = new Array ();
	
	for (var fld in FIELDS) {
		var field = document.getElementById(fld);
		//alert (field);
		if( fld == 'form_username' ) {
			if ( ! field.value ) {
				error_message += message_NotFoundUserName + "\n";
			} else if( field.value.length > FIELDS[fld] ) {
				error_message += message_TooShortUserName + FIELDS[fld] + "\n";
			}
		}
		if( fld == 'form_email' ) {
			if ( ! field.value ) {
				error_message += message_NotFoundUserEmail+ "\n";
			} else if( field.value.length > FIELDS[fld] ) {
				error_message += message_TooShortUserEmail + FIELDS[fld] + "\n";
			}
		}
		/*
		if( fld == 'form_message' ) {
			if ( ! field.value ) {
				error_message += message_NotFoundUserMessage + "\n";
			} else if( field.value && field.value.length > FIELDS[fld] ) {
				error_message += message_TooShortUserMessage + FIELDS[fld] + "\n";
			}
		}
		*/
		if (fld == 'form_is_subscription')
		  arr_data [fld] = field.checked?1:0;
		else
 		  arr_data [fld] = field.value;// накапливаем данные для отправки
	}
	
	if( !e ) { var e = window.event; }
	if( e.preventDefault) { e.preventDefault(); }
	if (error_message != ''){
		alert (error_message);
		return;
	}
	// отправку следует отменить в любом случае

	for (var fld in FIELDS) {	
		if (document.getElementById(fld))
        	     document.getElementById(fld).value = '';
	}

	//  по мотивам котерова делаем отправку, в прининципе надо делать без ошибок даже если они есть
   	//var query = '' + document.getElementById('query').value; 
        // Создаем новый объект JSHttpRequest. 
        var req = new Subsys_JsHttpRequest_Js(); 
        // Код, АВТОМАТИЧЕСКИ вызываемый при окончании загрузки. 
        req.onreadystatechange = function() { 
            if (req.readyState == 4) { 
                if (req.responseJS) { 
                    // Записываем в <div> результат работы. 
                    if (req.responseJS.result == 'ok')
                    	alert (message_SendStatusOK);
                    else
                    	alert (message_SendStatusCancel);
                }else{
				//alert ('fail: ' + req.responseText); 
                }
            } 
        } 
        // Разрешаем кэширование (чтобы при одинаковых запросах 
        // не обращаться к серверу несколько раз). 
        req.caching = true; 
        // Подготваливаем объект. 
		//var base = document.getElementsByTagName ('base')[0].href;
        req.open('POST', 'xmlrpc/generic_form_action.php', true); 
        // Посылаем данные запроса (задаются в виде хэша). 
        req.send({ 
        	form_username: arr_data['form_username'] ,  
        	form_email: arr_data['form_email'],
        	form_message: arr_data['form_message'],
        	form_is_subscription: arr_data['form_is_subscription'],
        	referrer: window.location.href
        });
        
        
        closeme ();	
		
	// не перезагружать страницу	
	return false;
	
}

