var dlgSendEmail;

Ext.onReady ( function() {
  Ext.QuickTips.init();
  Ext.form.Field.prototype.msgTarget = 'side';
});


function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1)
      return element;
    elements.push(element);
  }
  return elements;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function checkemail(str){
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (filter.test(str))
    testresults=true
  else{
    testresults=false
  }
  return (testresults)
}


function doSendEmail(inMantID) {
  dlgSendEmail = new Ext.Window ({
    layout: 'fit',
    width: 500,
    autoHeight: true,
    closable: true,
    closeAction: 'destroy',
    modal: false,
    border: true,
    title: 'Αποστολή μαντινάδας με email',
    resizable: false,
    items: [{
      xtype:'form',
      autoHeight: true,
      labelWidth: 100,
      labelAlign: 'top',
      url:'prxSendEmail.php',
      method: 'post',
      id: 'sendEmailForm',
      frame:true,
      bodyStyle:'padding:5px 5px 0',
      items: [{
        xtype: 'fieldset',
        title: 'Η ΜΑΝΤΙΝΑΔΑ που διάλεξες να στείλεις',
        autoHeight:true,
        html: '<span style="font-size:14px;">' + $('mant' + inMantID).innerHTML + '</span>',
        items: [{
          xtype: 'hidden',
          name: 'mantinada',
          id: 'mantinada',
          value: $('mant' + inMantID).innerHTML
        }, {
          xtype: 'hidden',
          name: 'mantinadaID',
          id: 'mantinadaID',
          value: inMantID
        }]
      }, {
        xtype:'fieldset',
        title:'Τα ΔΙΚΑ σου στοιχεία',
        autoHeight:true,
        defaults: {width: 200, autoHeight:true, defaultType:'textfield'},
        layout: 'column',
        items: [{
          columnWidth:0.5,
          layout: 'form',
          items :[{  
            fieldLabel: '* Ονοματεπώνυμο',
            name: 'fullnameFrom',
            id: 'fullnameFrom',
            allowBlank:false,
            anchor:'91%'
          }]
        }, {
          columnWidth:0.5,
          layout: 'form',
          items: [{
            fieldLabel: '* Email',
            name: 'emailFrom',
            id: 'emailFrom',
            allowBlank:false,
            vtype:'email',
            anchor:'91%'
          }]
        }]
      }, {
        xtype:'fieldset',
        title:'Τα στοιχεία του ΠΑΡΑΛΗΠΤΗ',
        autoHeight:true,
        items: [{
          autoHeight:true,
          defaults: {width: 200, autoHeight:true, defaultType:'textfield'},
          layout: 'column',
          items: [{
            columnWidth:0.5,
            layout: 'form',
            items :[{  
              fieldLabel: '* Ονοματεπώνυμο παραλήπτη',
              name: 'fullnameTo',
              id: 'fullnameTo',
              allowBlank:false,
              anchor:'91%'
            }]
          }, {
            columnWidth:0.5,
            layout: 'form',
            items: [{
              fieldLabel: '* Email παραλήπτη',
              name: 'emailTo',
              id: 'emailTo',
              allowBlank:false,
              vtype:'email',
              anchor:'91%'
            }]
          }, {
            columnWidth:1,
            layout: 'form',
            items: [{
              xtype: 'textarea',
              fieldLabel: 'Συνοδευτικό κείμενο πριν τη μαντινάδα',
              name: 'additionalText',
              id: 'additionalText',
              anchor:'97%'
            }]          
          }]
        }]
      }, {
        xtype: 'label',
        text: 'Τα πεδία με αστερίσκο * είναι υποχρεωτικά'
      }],
      
      buttons: [{
        type: 'submit',
        text: '<span style="font-weight:bold; padding:5px;">Προεπισκόπηση και αποστολή</span>',
        handler: function() {
                    if  ( Ext.getCmp('fullnameFrom').isValid() && 
                          Ext.getCmp('fullnameTo').isValid() && 
                          Ext.getCmp('emailFrom').isValid() && 
                          Ext.getCmp('emailTo').isValid()
                        ) {
                      doSendEmailHandler();
                    } else {
                      Ext.MessageBox.show({
                        title: 'Λανθασμένη συμπλήρωση της φόρμας',
                        msg: 'Δεν έχετε συμπληρώσει σωστά όλα τα απαραίτητα πεδία της φόρμας',
                        buttons: Ext.MessageBox.OK,
                        icon: Ext.MessageBox.ERROR
                      });                    
                    }
                  }      
      },{
        text: '<span style="padding:5px;">Κλείσιμο παραθύρου</span>',
        handler: function () { dlgSendEmail.destroy(); }      
      }]
    }]
  });
  dlgSendEmail.on('beforeshow', function() {document.body.style.overflowX = 'hidden';});
  dlgSendEmail.on('destroy', function() {document.body.style.overflowX = '';});
  
  dlgSendEmail.show();
  dlgSendEmail.center();
  //Ext.getCmp('fullnameFrom').focus();
  
  Ext.EventManager.onWindowResize( function() {
                                      if ( dlgSendEmail.container != undefined) {
                                        dlgSendEmail.center();
                                      }
                                    }, dlgSendEmail);
  Ext.getDoc().on('scroll', function() {
                                if ( dlgSendEmail.container != undefined) {
                                  dlgSendEmail.center();
                                }
                              }, dlgSendEmail);
  
}


function doSendEmailHandler() {
  
  function doFinalizeSendEmail() {
    Ext.getCmp('sendEmailForm').getForm().submit({
          waitTitle: 'Παρακαλώ περιμένετε...',
          waitMsg: 'Γίνεται αποστολή του email',
          clientValidation: false,
          success: function(form,action) {
                      if (action.result.success == 'true') {
                        dlgPreview.destroy();
                        dlgSendEmail.destroy();
                        Ext.Msg.alert('Επιτυχής αποστολή email', action.result.msg);
                      } else {
                        Ext.Msg.alert('Αποτυχία αποστολής email', action.result.msg);
                      }
          },
          failure: function(form,action) {
                      switch (action.failureType) {
                        case Ext.form.Action.CLIENT_INVALID:
                            Ext.Msg.alert('Λανθασμένη συμπλήρωση φόρμας', 'Δεν έχετε συμπληρώσει σωστά όλα τα απαραίτητα πεδία της φόρμας');
                            break;
                        case Ext.form.Action.CONNECT_FAILURE:
                            Ext.Msg.alert('Αποτυχία επικοινωνίας', 'Δε μπορώ να επικοινωνήσω με τον server, για να στείλω το email');
                            break;
                        case Ext.form.Action.SERVER_INVALID:
                           Ext.Msg.alert('Αποτυχία αποστολής email', action.result.msg);
                      }
          }
    });
  }
  
  dlgSendEmail.hide();
  
  var previewHTML = '<div style="font-size:12px; background-color:#FFFFFF; padding:10px;">' +
                    '<span style="font-weight:bold;">Από:</span> '  + Ext.getCmp('fullnameFrom').getValue() + ' (' + Ext.getCmp('emailFrom').getValue() + ')<br/>' +
                    '<span style="font-weight:bold;">Προς:</span> ' + Ext.getCmp('fullnameTo').getValue()   + ' (' + Ext.getCmp('emailTo').getValue()   + ')<br/>' +
                    '<br/>' +
                    '<div style="font-size:14px;"><span style="font-weight:bold;">Θέμα:</span> Μια μαντινάδα αφιερωμένη για σένα</div>' +
                    '<br/>' +
                    'Γειά σου, ο/η ' + Ext.getCmp('fullnameFrom').getValue() + ' σου έχει αφιερώσει μία μαντινάδα<br/><br/>';
  if ( trim(Ext.getCmp('additionalText').getValue()) ) {                       
    previewHTML += Ext.getCmp('additionalText').getValue() + '<br/><br/>';
  }
  previewHTML +=  '<div style="font-size:14px; font-weight:bold;">' + Ext.getCmp('mantinada').getValue() + '</div>' +
                  '<br/><br/>' +
                  '<div style="text-align:right; font-size:10px;">Η μαντινάδα αυτή αφιερώθηκε μέσα από συλλογή του <a href="http://www.mantinades.gr">mantinades.gr</a></div>' +
                  '</div>';
  
  dlgPreview = new Ext.Window ({
    layout: 'fit',
    width: 500,
    autoHeight: true,
    closable: true,
    closeAction: 'destroy',
    modal: false,
    border: true,
    bodyStyle:'padding:5px 5px 0',
    title: 'Προεπισκόπηση μυνήματος',
    html: previewHTML,
    buttons: [{
      text: '<span style="font-weight:bold; padding:5px;">Εντάξει! Στείλε το email</span>',
      handler: doFinalizeSendEmail
    }, {
      text: '<span padding:5px;">Οχι! Θέλω να κάνω μερικές αλλαγές</span>',
      handler: function () { dlgPreview.destroy(); dlgSendEmail.show(); } 
    }]
  });
  
  dlgPreview.show();
}

function doSendSMS(inMantID) {
  // Send dummy request for stats
  var con = new Ext.data.Connection({
      timeout: 5
  });
  sURL = '?mantinadaID=' + inMantID;
  con.request ({
      url : 'prxSendSMS.php' + sURL,
      method: 'GET',
      success: null,
      failure: null,
      disableCaching: true
  } );
		  
  Ext.MessageBox.show({
    title: 'Υπο κατασκευή',
    msg: 'Η δυνατότητα αποστολής μαντινάδας με SMS βρίσκεται υπό κατασκευή.<br/><br/>Εγινε καταγραφή του ότι θέλεις να χρησιμοποιήσεις τη συγκεκριμένη υπηρεσία και ανάλογα με το πόσο δημοφιλής θα γίνει θα αποφασιστεί για το αν θα ολοκληρωθεί.',
    buttons: Ext.MessageBox.OK,
    icon: Ext.MessageBox.INFO
  });
}

