function newsletterProcess()
{
    var sNewsletterEmail = $('idNewsletterEmail').value;
    var url = sPageAddr + sLang + '/' + rand(0,1000) + '/newsletter.xml';
    var bNews = ($type($('idNewsletterNews')) && $('idNewsletterNews').checked) ? 'y' : 'n';
    var bProduct = ($type($('idNewsletterProduct')) && $('idNewsletterProduct').checked) ? 'y' : 'n';
    var pars = 'email=' + encodeURIComponent(sNewsletterEmail) + '&' + 'news=' + bNews + '&' + 'product=' + bProduct;
    
    // usuwanie podanego adresu e-mail z Newsletter
    if($('idNewsletterDelete').checked) {
        pars += '&' + 'delete=y';
    }

    var myAjax = new XHR({method:'get', onRequest:newsletterLoader, onSuccess:newsletterResponse, onFailure:newsletterResponseError}).send(url, pars);
}

function newsletterLoader(originalRequest)
{
    $('idNewsletterResponse').className = '' ;
    $('idNewsletterResponse').innerHTML = 'prosze czekac...';
}

function newsletterResponseError(originalRequest)
{
    $('idNewsletterResponse').className = 'responseNewsletterAdd';
    $('idNewsletterResponse').className += ' error';
    $('idNewsletterResponse').innerHTML = newletter_error_ajax;
}

function newsletterResponse(originalRequest)
{
    try {
//      var xmlResponse = originalRequest.responseXML;
        var xmlResponse = this.response.xml;
            
        // przechwycenie potencjalnych bledow przez IE i Opere
        if (!xmlResponse || !xmlResponse.documentElement)
            throw("Invalid XML structure:\n" + originalRequest.responseText);
         
        // przechwycenie potencjalnych bledow przez Firefox
        var rootNodeName = xmlResponse.documentElement.nodeName;
        if (rootNodeName == "parsererror") 
            throw("Niepoprawna struktura XML:\n" + originalRequest.responseText);
            
        // pobiera element nadrzedny (element document)
        xmlRoot = xmlResponse.documentElement;
        
        // sprawdzanie, czy otrzymalismy taki dokument XML, jakiego sie spodziewalismy
        if (rootNodeName != "response" || !xmlRoot.firstChild)
            throw("Niepoprawna struktura XML:\n" + originalRequest.responseText);
        	 
        for(i=0; i<xmlRoot.childNodes.length; i++) {
            xmlRootChild = xmlRoot.childNodes.item(i);
            if(xmlRootChild.nodeName == 'type') //  <type>
                responseType = xmlRootChild.firstChild.data ;
            if(xmlRootChild.nodeName == 'content') //  <content>
                responseText = xmlRootChild.firstChild.data ;
        }
          	 
        // wyswietla wiadomosc dla uzytkownika
        $('idNewsletterResponse').className = 'responseNewsletterAdd' ;
        $('idNewsletterResponse').className += ' ' + responseType ;
        $('idNewsletterResponse').innerHTML = responseText ;
          
        // pomyslnie dodany adres, mozna oczyscic pole formularza
        if(responseType == 'info') {
            $('idNewsletterEmail').value = '';
            if($type($('idNewsletterNews'))) {
            	$('idNewsletterNews').checked = false;
            }
            if($type($('idNewsletterProduct'))) {
            	$('idNewsletterProduct').checked = false;
            }
        }
    }
    catch (e) {
        //alert(e.toString());
        $('idNewsletterResponse').className = 'responseNewsletterAdd';
        $('idNewsletterResponse').className += ' error';
        $('idNewsletterResponse').innerHTML = newletter_error_ajax;
    }
    
}

// obsluguje zdarzenie keydown aby okreslic, kiedy wcisnieto Enter
function newsletterHandleKey(e)
{
    // pobiera zdarzenie
    e = (!e) ? window.event : e;
    // pobiera kod wcianietego znaku
    code = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
    // obsługuje zdarzenie keydown
    if (e.type == "keydown") {
        // jesli zostal wcisniety Enter (kod 13) 
        if(code == 13) {
            // wysyla biezaca wiadomosc
            newsletterProcess();
        }
    }
}

// podpinana do checkbox'a DELETE powodujaca zablokowanie pozostalych checkbox'ow Newslettera gdy jest ona wcisnieta
function ifCheckMakeDisable()
{
    for(i=0; i<arguments.length; i++) {
        if($('idNewsletterDelete').checked == true) {
            if($type($(arguments[i]))) {
                $(arguments[i]).disabled = true;
            }
        }
        else {
            if($type($(arguments[i]))) {
                $(arguments[i]).disabled = false;
            }
        }
    }
}
