/**
 * @author Maxim Shaev <shaev@zfort.net>
 *
 */

/**
 * Check Email In Focus
 *
 * @param integer id
 * @param string defaultValue
 */
function checkIn(id, defaultValue)
{
   if (!(obj = document.getElementById(id))) return false;
   if (obj.value == defaultValue) obj.value = '';
}

/**
 * Check Email Out Focus
 *
 * @param integer id
 * @param string defaultValue
 */
function checkOut(id, defaultValue)
{
   if (!(obj = document.getElementById(id))) return false;
   if (obj.value == '') obj.value = defaultValue;
}

/**
 * Check Valid Email
 *
 * @param string submitId
 * @param string emailId
 * @param string defaultValue
 * @return boolean
 */
function checkValid(emailId, defaultValue)
{
/*   if (!(obj = document.getElementById(submitId))) return false;
   if (obj.value != 'clicked') return false;*/
   if (!(objEmail = document.getElementById(emailId))) return false;
    if (objEmail.value == '' || objEmail.value == defaultValue ||
    !regexEmail.test(objEmail.value))
    {
       alert(msgNotValid);
       return false;
    }
    return true;
}

var tdId;
var nativeContent = '';
var currObjectName;
var funcSubmit;
var form;

/**
 * Send Ajax Request
 *
 * @param string objectName
 */
function sendRequest(objectName, checkJS, defaultValue)
{
    if (checkJS && !checkValid(/*objectName+'_submit', */objectName+'_email', defaultValue)) return false;

     currObjectName = objectName;
     tdId = 'td'+objectName;
     var emailId = objectName + '_email';

     if (!document.getElementById(emailId)) return false;

	funcSubmit = document.getElementById(emailId).form.onsubmit;
	form = document.getElementById(emailId).form;
	document.getElementById(emailId).form.onsubmit = function(){return false;};

     serverResponse = new AjaxRequest(rootUrl + "wsdl/newsletter.xml.php");
     serverResponse.setRequestMethod("GET");
     serverResponse.add("action",     "addSubscriber");
     serverResponse.add("email",      document.getElementById(emailId).value);
     serverResponse.setHandler(on_NewsletterResponse);

     // --- Start setting new Rate --- //
     if (document.getElementById(tdId))
     {
         nativeContent = document.getElementById(tdId).innerHTML;
         document.getElementById(tdId).innerHTML = '<img src="'+rootUrl+'images/ajax/ajax-loader.gif" />';
     }

    response = serverResponse.execute();
}

/**
 * Response by Server
 *
 * @param string currentObject
 */
function on_NewsletterResponse(currentObject)
{
   var resultXML = currentObject.resultXML;
   var error = resultXML.getElementsByTagName('Error')[0];
   if (error.getElementsByTagName('Code')[0].firstChild.data
       && parseInt(error.getElementsByTagName('Code')[0].firstChild.data) > 0)
       {
          document.getElementById(tdId).innerHTML = nativeContent;
          setKeyHandler(currObjectName);
          alert(error.getElementsByTagName('Message')[0].firstChild.data);
       }
   else
   {
       if (resultXML.getElementsByTagName('Description')[0].firstChild.data)
       {
          document.getElementById(tdId).innerHTML = resultXML.getElementsByTagName('Description')[0].firstChild.data;
          //alert(resultXML.getElementsByTagName('Description')[0].firstChild.data);
       }
   }
   form.onsubmit = funcSubmit;
}

/**
 * Set Enter key Handler
 *
 * @param object htmlObject
 * @param string objectName
 */
function setOnEnterHandler(htmlObject, objectName, checkJS, defaultValue)
{
    htmlObject.onkeydown = function (currentEvent)
    {
        mbEvent = ((currentEvent) ? currentEvent : event);
        if (mbEvent.keyCode == 13)
        {
            sendRequest(objectName, checkJS, defaultValue);
            return false;
        }
        else
        {
            //if (typeof(eventChangedObject.defaultOnKeyDownEventHandler) == 'function') eventChangedObject.defaultOnKeyDownEventHandler(event);
        }
        return true;
    }
}

