$(function(){
      var url = window.location.href;
      var mobileUrlPattern = window.location.host + '/mobile';
      var width = null;
      if (0 < url.indexOf(mobileUrlPattern)) {
          width = 320;
      }
      var dialogDiv = $('#flips_module_form_dialog');
      var confirmDialog = new Flips.Dialog({content:dialogDiv, width:width});
      $('.form').each(function(){
          var form = this;
          $(':submit', this).click(function(){
              $('.flips_module_form_dialog_error', dialogDiv).empty();
              $('.flips_module_form_dialog_body', dialogDiv).empty();
              confirmDialog.open();
              $('.flips_module_form_dialog_body', dialogDiv).append('<span>SSL通信処理中です...<br />しばらくお待ちください</span>');
              var values = $(form).serializeArray();
              var valuesText = $(form).serialize();
              var url = $(form).attr('action');
              $.ajax({
                         type : 'GET',
                         url  : url,
                         data : valuesText,
                         cache : false,
                         dataType : 'jsonp',
                         success : function(jsonp){
                             $('.flips_module_form_dialog_body', dialogDiv).empty();
                             if ("0" == jsonp.error) {
                                 var confirmMsgDiv = $('<div />').html('以下の内容でよろしいでしょうか？');
                                 $('.flips_module_form_dialog_body', dialogDiv).append(confirmMsgDiv);
                                 $('.flips_module_form_dialog_body', dialogDiv).append('<hr />');
                                 $(jsonp.values).each(function(k,v){
                                     var p = $('<p />').attr('style', 'text-align:left;');
                                     p.append($('<span />').html('【' + v['label'] + '】：'));
                                     p.append($('<span />').html(v['value'] ? v['value'].toString() : ''));
                                     p.append('<br />');
                                     $('.flips_module_form_dialog_body', dialogDiv).append(p);
                                 });
                                 var confirmForm = $('<form />');
                                 confirmForm.attr('action', url.replace(/\/confirm\?/, '/complete?'));
                                 confirmForm.attr('method', 'POST');
                                 var cancel = $('<input type="button" value="キャンセル" />');
                                 cancel.click(function(){
                                                  confirmDialog.close();
                                 });
                                 confirmForm.append(cancel);
                                 var submit = $('<input type="submit" value="送信" />');
                                 submit.click(function(){
                                     $(values).each(function(k,v){
                                         var input = $('<input />');
                                         input.attr('type', 'hidden');
                                         input.attr('name', v['name']);
                                         input.val(v['value']);
                                         confirmForm.append(input);
                                      });
                                      confirmForm.trigger('submit');
                                      return false;
                                 });
                                 confirmForm.append(submit);
                                 $('.flips_module_form_dialog_body', dialogDiv).append(confirmForm);
                             } else {
                                 var confirmMsgDiv = $('<div />').html('入力内容に誤りがあります。<br />以下の内容をご確認の上、再度入力して下さい。');
                                 $('.flips_module_form_dialog_error', dialogDiv).append(confirmMsgDiv);;
                                 $('.flips_module_form_dialog_error', dialogDiv).append('<hr />');;
                                 $(jsonp.messages).each(function(k,v){
                                 $('.flips_module_form_dialog_error', dialogDiv).append(v);;
                                 $('.flips_module_form_dialog_error', dialogDiv).append('<br />');
                             });
                         }
                     }
             });
             return false;
         });
    });
});

 
