/*
 * Aipo is a groupware program developed by Aimluck,Inc.
 * Copyright (C) 2004-2008 Aimluck,Inc.
 * http://aipostyle.com/
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

dojo.provide("aipo.webmail");

dojo.require("aipo.webmail.widget.AddressbookDialog");

aipo.webmail.onLoadMailDialog = function(portlet_id){

	var obj = dojo.byId("to");
	if(obj){
	   obj.focus();
	} 
	
}

aipo.webmail.onLoadMailAccountDialog = function(portlet_id){

  var obj = dojo.byId("account_name");
  if(obj){
     obj.focus();
  } 
    
}

aipo.webmail.onReceiveMessage = function(msg){
    if(!msg) {
        var arrDialog = dijit.byId("modalDialog");
        if(arrDialog){
            arrDialog.hide();
        }
        aipo.portletReload('webmail');
    }
    if (dojo.byId('messageDiv')) {
        dojo.byId('messageDiv').innerHTML = msg;
    }
}

aipo.webmail.hideDialog = function() {
    var arrDialog = dijit.byId("modalDialog");
    if(arrDialog){
       arrDialog.hide();
    }
    aipo.portletReload('webmail');
};

aipo.webmail.open_help = function(url){
    wx = 400;
    wy = 232;
    x = (screen.width  - wx) / 2;
    y = (screen.height - wy) / 2;

    help_subwin = window.open(url, "help_window","left="+x+",top="+y+",width="+wx+",height="+wy+",resizable=no");
    help_subwin.opener = self;
    help_subwin.focus();
}

aipo.webmail.switchHeader = function(button) {
    if(button.form.is_header_tiny.value == 'TRUE' || button.form.is_header_tiny.value == 'true') {
        //簡易表示の際に「詳細表示」ボタンを押した→詳細部分をonにして簡易部分をoffにする 。詳細表示になったのでis_header_tinyがfalse
        button.value = '簡易表示';
        aipo.webmail.switchHeaderDetail(button.form);
    } else {
    //詳細表示の際に「簡易表示」ボタンを押した→簡易部分をonにして詳細部分をoffにする
        button.value = '詳細表示';
        aipo.webmail.switchHeaderTiny(button.form);
    }
}

aipo.webmail.switchHeaderTiny = function(form) {
    dojo.byId('WebMailHeaderFieldTiny').style.display = "";
    dojo.byId('WebMailHeaderFieldDetail').style.display = "none";
    form.is_header_tiny.value = 'TRUE';
}

aipo.webmail.switchHeaderDetail = function(form) {
    dojo.byId('WebMailHeaderFieldTiny').style.display = "none";
    dojo.byId('WebMailHeaderFieldDetail').style.display = "";    
    form.is_header_tiny.value = 'FALSE';
}

aipo.webmail.doDeleteAccount = function(url,p_id) {
    if(confirm("このメールアカウントを削除してもよろしいですか？\n保存されているメールはすべて削除されます。")) {
        aipo.viewPage(url,p_id);
    }
}

aipo.webmail.AccountChange = function(form,url,p_id){
    var exec_url = url;
    var r = form.account_type;
    for (i=0;i < r.length;i++){
        if(r[i].checked){
            var check_id = r[i].value;
        }
    }
    exec_url += '&account_type=' + check_id;
    aipo.viewPage(exec_url, p_id);
}

aipo.webmail.onReceiveMessageAdmin = function(msg){
    if(!msg) {
        var arrDialog = dijit.byId("modalDialog");
        if(arrDialog){
            arrDialog.hide();
        }
        aipo.portletReload('webmailadmin');
    }
    if (dojo.byId('messageDiv')) {
        dojo.byId('messageDiv').innerHTML = msg;
    }
}

aipo.webmail.onDeleteAdminAccount = function(msg){
    if(!msg) {
        aipo.portletReload('webmailadmin');
    }
    if (dojo.byId('messageDiv')) {
        dojo.byId('messageDiv').innerHTML = msg;
    }
}

aipo.webmail.hideDialogAdmin = function() {
    var arrDialog = dijit.byId("modalDialog");
    if(arrDialog){
       arrDialog.hide();
    }
    aipo.portletReload('webmailadmin');
};

aipo.webmail.switchDelAtPop3 = function(check) {
  if(check.value == 0) {
    dojo.byId('del_at_pop3_flg_on_field').style.display = "";
  } else {
    dojo.byId('del_at_pop3_flg_on_field').style.display = "none";
  }
}

aipo.webmail.switchAuthSend = function(check) {
  if(check.value == 2) {
    dojo.byId('smtp_auth_field').style.display = "";
  } else {
    dojo.byId('smtp_auth_field').style.display = "none";
  }
}

aipo.webmail.showAddressbookDialog = function(url, portlet_id, callback) {
    var arrDialog = dijit.byId("addressbookDialog");

    if(! arrDialog){
       arrDialog = new aipo.webmail.widget.AddressbookDialog({widgetId:'addressbookDialog', _portlet_id: portlet_id, _callback:callback}, "addressbookDialog");
    }else{
       arrDialog.setCallback(portlet_id, callback);
    }

    if(arrDialog){ 
      arrDialog.setHref(url);
      arrDialog.show();
    }
}

aipo.webmail.onLoadAddressbookDialog = function(portlet_id){
    var url_userlist = dojo.byId('urlUserlist'+portlet_id).value;
    aipo.webmail.changeInternalGroup(url_userlist, 'LoginUser');
    

    var url_addrlist = dojo.byId('urlAddrlist'+portlet_id).value;
    aipo.webmail.changeExternalGroup(url_addrlist, '');
        
    /*
    aimluck.io.removeAllOptions(dojo.byId('detail_to_recipients'));
    aimluck.io.removeAllOptions(dojo.byId('detail_cc_recipients'));
    aimluck.io.removeAllOptions(dojo.byId('detail_bcc_recipients'));
    */
    
    aipo.webmail.getDataSub(dojo.byId('detail_to_recipients'), dojo.byId('to').value);
    aipo.webmail.getDataSub(dojo.byId('detail_cc_recipients'), dojo.byId('cc').value);
    aipo.webmail.getDataSub(dojo.byId('detail_bcc_recipients'), dojo.byId('bcc').value);
 
}

aipo.webmail.getDataSub = function(select, recipients){
    if(recipients == null || recipients.length == 0) return;

    var recipient_list = recipients.split(',');
    for(i = 0 ; i < recipient_list.length; i++ ) {
        add_option(select, aipo.webmail.trim(recipient_list[i]), aipo.webmail.trim(recipient_list[i]), false);
    }
}


aipo.webmail.insertData = function(){
    dojo.byId('to').value = aipo.webmail.getStringLine(dojo.byId('detail_to_recipients').options);
    dojo.byId('cc').value = aipo.webmail.getStringLine(dojo.byId('detail_cc_recipients').options);
    dojo.byId('bcc').value = aipo.webmail.getStringLine(dojo.byId('detail_bcc_recipients').options);

    dijit.byId('addressbookDialog').hide();
}

aipo.webmail.switchTypeCompany = function(check){
  if(check.value == '1') {
    dojo.byId('Block_Internal_Group').style.display = "block";
    dojo.byId('Block_External_Group').style.display="none";
    dojo.byId('userDiv').style.display="block";
    dojo.byId('addrDiv').style.display="none";
  } else {
    dojo.byId('Block_Internal_Group').style.display="none";
    dojo.byId('Block_External_Group').style.display="block";
    dojo.byId('userDiv').style.display="none";
    dojo.byId('addrDiv').style.display="block";
  }
}

aipo.webmail.changeInternalGroup = function(link, group) {
    aipo.webmail.createSelect("internal_member_from", "userDiv", link + "?mode=group&groupname=" + group + "&inc_luser=true", "aliasName", "email", "", '', 'size="12" multiple="multiple" style="width: 99%"');
}

aipo.webmail.changeExternalGroup = function(link, group) {
    aipo.webmail.createSelect("external_member_from", "addrDiv", link + "?mode=group&groupname=" + group + "&inc_luser=true", "fullName", "email", "", '', 'size="12" multiple="multiple" style="width: 99%"');
}

aipo.webmail.createSelect = function(selectid, divid, url, keyname, keymail, sel, pre, att) {
    dojo.xhrGet({
        url: url,
        timeout: 5000,
        encoding: "utf-8",
        handleAs: "json-comment-filtered",
        headers: { X_REQUESTED_WITH: "XMLHttpRequest" }, 
        load: function (respodatanse, ioArgs){
            var html = "";
            if (typeof att == "undefined") {
                html += '<select name="'+ selectid + '">';
            } else {
                html += '<select name="'+ selectid + '" ' + att + '/>';
            }
            if (typeof pre == "undefined") {
                html += '';
            } else {
                html += pre;
            }
            dojo.forEach(respodatanse, function(p) {
                if(typeof p[keyname] == "undefined" || typeof p[keymail] == "undefined") {
                } else {
                    if (p[keyname] == sel) {
                        html += "<option value='"+p[keyname]+"' selected='selected'>"+ p[keymail]+"</option>";
                    } else {
                        html += "<option value='"+p[keyname]+"&lt;"+ p[keymail]+"&gt;'>"+ p[keyname] +"&lt;"+ p[keymail] + "&gt;</option>";
                    }
                }
            });
            html += '</select>';
            dojo.byId(divid).innerHTML = html;
        }
    });
};

aipo.webmail.sendForm = function(){
    aipo.webmail.selectAll(document.WebMailAddressbook.detail_to_recipients);
    aipo.webmail.selectAll(document.WebMailAddressbook.detail_cc_recipients);
    aipo.webmail.selectAll(document.WebMailAddressbook.detail_bcc_recipients);
    document.WebMailAddressbook.submit();
}

aipo.webmail.getStringLine = function(str_list){
    var strs = '';
    if(str_list.length > 0){
        var length = str_list.length-1;
    for(i = 0 ; i < length; i ++ ) {
        strs = strs + str_list[i].value+',';
    }
    strs = strs + str_list[length].value;
  }
  return strs;
}

aipo.webmail.selectAll = function(select){
    var t_o = select.options;
    for(i = 0 ; i < t_o.length; i++ ) {
      t_o[i].selected = true;
    }
}

aipo.webmail.exAddMember = function(form, select, portletId){

  if(dojo.byId('corpId'+portletId).checked == true){
    add_member(form.internal_member_from, select);
  }else{
    add_member(form.external_member_from, select);
  }

}

aipo.webmail.removeAll = function(select){
  if (document.all) {
    var t_o = select.options;
    for(i = 0 ;i < t_o.length; i ++ ) {
      t_o.remove(i);
      i -= 1;
    }
  } else {
    var t_o = select.options;
    for(i = 0 ;i < t_o.length; i ++ ) {
      select.removeChild(t_o[i]);
      i -= 1;
    }
  }
}


aipo.webmail.ltrim = function(str){
  while(str.charAt(0)==" " || str.charAt(0)=="　"){
    str = str.substring(1,str.length)
  }
  return(str);
}

aipo.webmail.rtrim = function(str){
  while(str.charAt(str.length-1)==" " || str.charAt(str.length-1)=="　"){
    str = str.substring(0,str.length-1)
  }
  return(str);
}

aipo.webmail.trim = function(str){
  return aipo.webmail.ltrim(aipo.webmail.rtrim(str));
}

