﻿var _submitButton = null;
var _successElement = null;
var _errorElement = null;
var _module = null;
var _mpeError = null;

function pageLoad() {
    _mpeError = $find('mpeError');
    
    if (typeof (_submitButtonID) != 'undefined') {
        _submitButton = $get(_submitButtonID);

        if (_submitButton) {
            $addHandler(_submitButton, 'click', _submitButton_click);
        }
    }

    if (typeof (_successElementID) != 'undefined') {
        _successElement = $get(_successElementID);
    }

    if (typeof (_errorElementID) != 'undefined') {
        _errorElement = $get(_errorElementID);
    }

    _module = $get('module');

    if (typeof (_fields) != 'undefined') {
        for (var i = 0; i < _fields.length; i++) {
            var el = $get(_fields[i].elementID);

            if (el) {
                var ah = true;

                if (el.nodeName == 'INPUT') {
                    var typeAttribute = el.getAttribute('type');

                    if (typeAttribute && (typeAttribute == 'checkbox')) {
                        ah = false;
                    }
                }

                if (ah) {
                    $addHandler(el, 'blur', Function.createDelegate(el, field_blur));
                }
            }
        }
    }
}

function field_blur(e) {
    var isValid = validateElement(e.target, 'fieldError');

    if (isValid) {
        if (_captchaElementID == e.target.id) {
            var captchaErrorElement = $get(_captchaElementID + '_error');

            if (captchaErrorElement && ($get(_captchaElementID).value != '')) {
                captchaErrorElement.style.display = 'none';
            }
        }
    }
}

function _submitButton_click(e) {
    cancelBubbling(e);

    if (typeof (_captchaElementID) != 'undefined') {
        var captchaErrorElement = $get(_captchaElementID + '_error');

        if (captchaErrorElement) {
            captchaErrorElement.style.display = 'none';
        }
    }

    if (_module) {
        var isValid = validateGroup(_module, 'fieldError');

        if (isValid && (typeof (_fields) != 'undefined')) {
            var f = new Array();

            for (var i = 0; i < _fields.length; i++) {
                var item = new ATODesign.SitoMastro.Web.WebPageField();
                item.required = _fields[i].required;
                item.elementID = _fields[i].elementID;

                var el = $get(item.elementID);

                if (el) {
                    item.value = el.value;
                }

                Array.add(f, item);
            }
            
            var es = (typeof (_emailSubject) != 'undefined') && _emailSubject && (_emailSubject != '') ? _emailSubject : 'Untitled';
            ATODesign.SitoMastro.WebApp.WebServices.WebPageServices.SendMail(f,
                                                                             _captchaKey,
                                                                             _captchaElementID,
                                                                             es,
                                                                             onSendMailSuccess,
                                                                             onSendMailFailed);
        }
    }
}

function onSendMailSuccess(result) {
    if (result > 0) {
        if (_module) {
            _module.style.display = 'none';
        }

        if (_successElement) {
            _successElement.style.display = '';
        }
    }
    else if (result == 0) {
        if (_errorElement) {
            _errorElement.style.display = '';
        }
    }
    else {
        if (typeof (_captchaElementID) != 'undefined') {
            var captchaErrorElement = $get(_captchaElementID + '_error');

            if (captchaErrorElement) {
                captchaErrorElement.style.display = '';
            }
            else {
                if (_errorElement) {
                    _errorElement.style.display = '';
                }
            }
        }
    }
}

function onSendMailFailed(error) {
    if (_mpeError) {
        _mpeError.show();
    }
    else {
        alert(_anErrorHasOccurredText);
    }
}
