﻿YAHOO.namespace('GCG.api');

YAHOO.GCG.api.email = function(id, template, to, subject, successMessage) {
    var D = YAHOO.util.Dom;
    var E = YAHOO.util.Event;
    
    var api = {
    		id: 0,
    		template: template,
    		to: to,
    		successMessage: successMessage,
    		subject: subject,
        
        email: function(e) {
        	api.id = E.getTarget(e).id.replace('form-action-', '');

					var template = 't=' + api.template + '&';
					var to = 'to=' + api.to + '&';
					var subject = 's=' + api.subject + '&';

					var email = '';
					var e = D.get('form-email-' + api.id).value;
					if (e.length > 0) {
						email = 'e=' + e;
					}

					if (email.length > 0) {
						YAHOO.util.Connect.asyncRequest('POST', 'forms/email', callback, template + to + subject + email);
					} else {
		 				D.get('form-msg-' + api.id).innerHTML = "正しいメールアドレスを記入して下さい。";
					}
        },

        onSuccess: function(o) {
					if (o.responseText !== undefined) {
						var result = YAHOO.lang.trim(o.responseText);
	        	if (result.length > 2) {
       				D.get('form-msg-' + api.id).innerHTML = api.successMessage;
       			} else {
       				D.get('form-msg-' + api.id).innerHTML = "正しいメールアドレスを記入して下さい。";
       			}
       		}
        },
        
        onFailure: function(o) {
   				D.get('form-msg-' + api.id).innerHTML = "エラーがありました。もう一度トライして下さい。";
        },
        
        init: function() {
	        E.on('form-action-' + id, 'click', api.email, api, true);
        }
    };
    
    var callback = {
			success:api.onSuccess,
			failure:api.onFailure,
			scope: api
		};
    
    E.onDOMReady(api.init);
    return api;
};
