]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - jssource/src_files/include/SugarFields/Fields/Address/SugarFieldAddress.js
Release 6.2.0beta4
[Github/sugarcrm.git] / jssource / src_files / include / SugarFields / Fields / Address / SugarFieldAddress.js
1 /*********************************************************************************
2  * SugarCRM is a customer relationship management program developed by
3  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
4  * 
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Affero General Public License version 3 as published by the
7  * Free Software Foundation with the addition of the following permission added
8  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
9  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
10  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
11  * 
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
15  * details.
16  * 
17  * You should have received a copy of the GNU Affero General Public License along with
18  * this program; if not, see http://www.gnu.org/licenses or write to the Free
19  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20  * 02110-1301 USA.
21  * 
22  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
23  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
24  * 
25  * The interactive user interfaces in modified source and object code versions
26  * of this program must display Appropriate Legal Notices, as required under
27  * Section 5 of the GNU Affero General Public License version 3.
28  * 
29  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
30  * these Appropriate Legal Notices must retain the display of the "Powered by
31  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
32  * technical reasons, the Appropriate Legal Notices must display the words
33  * "Powered by SugarCRM".
34  ********************************************************************************/
35
36         var elems = new Array("address_street", "address_city", "address_state", "address_postalcode", "address_country");
37     var tHasText = false;
38     var originalBgColor = '#FFFFFF';  
39     var Dom = YAHOO.util.Dom;
40         
41         function TestCheckboxReady(id) { 
42            YAHOO.util.Event.onAvailable(id, this.handleOnAvailable, this);  
43         } 
44          
45         TestCheckboxReady.prototype.handleOnAvailable = function(me) { 
46             for(x in elems) {
47                     f = fromKey + "_" + elems[x];
48                     t = toKey + "_" + elems[x];
49         
50                     e1 = document.getElementById(t);
51                     e2 = document.getElementById(f);
52             
53                     if(e1 != null && typeof e1 != "undefined" && e2 != null && typeof e2 != "undefined") {
54         
55                         if(!tHasText && trim(e1.value) != "") {
56                            tHasText = true;
57                         }
58                         if(e1.value != e2.value) {
59                            document.getElementById(this.id).checked = false;
60                            break;
61                         }
62                         originalBgColor = e1.style.backgroundColor;
63                     }
64             }
65             
66             if(!tHasText) {
67                document.getElementById(this.id).checked = false;
68             } else {
69                syncFields(fromKey, toKey);
70             }     
71         } 
72         
73     function writeToSyncField(e) {
74          fromEl = YAHOO.util.Event.getTarget(e, true);
75          if(typeof fromEl != "undefined") {
76             toEl = document.getElementById(fromEl.id.replace(fromKey, toKey));
77             toEl.value = fromEl.value;
78          }
79     }
80     
81     function syncFields(fromKey, toKey) {
82          for(x in elems) {
83              f = fromKey + "_" + elems[x];
84              e2 = document.getElementById(f);
85              t = toKey + "_" + elems[x];
86              e1 = document.getElementById(t);
87              if(e1 != null && typeof e1 != "undefined" && e2 != null && typeof e2 != "undefined") {
88                   if(!document.getElementById(toKey + '_checkbox').checked) {
89                              Dom.setStyle(e1,'backgroundColor',originalBgColor);
90                              e1.removeAttribute('readOnly');
91                              YAHOO.util.Event.removeListener(e2, 'keyup'); 
92                           } else {
93                              e1.value = e2.value;
94                      Dom.setStyle(e1,'backgroundColor','#DCDCDC');
95                      e1.setAttribute('readOnly', true);
96                      YAHOO.util.Event.addListener(e2, 'keyup', writeToSyncField);
97                   }
98              }
99          } //for
100     }
101
102