PageSourceSearch

https://www.c4b.com/c4b-global/wGlobal/layout/scripts/partnerportal.js

js c4b.com collected 2026-10-02 05:31:13 UTC 23,107 bytes, 743 lines download raw bytes

1jQuery(document).ready(function(){
2	
3	var responsiveWidthPhone = 320;
4
5  var formUserDataEdit            = jQuery('form[name="userDataEdit"]');
6  var formCompanyDescriptionEdit  = jQuery('form[name="companyDescriptionEdit"]');
7  var formCompanyDataEdit         = jQuery('form[name="companyDataEdit"]');
8  var formCreateEmployee          = jQuery('form[name="createEmployee"]');
9
10  var editButtonUserData            = jQuery('.edit.userData',formUserDataEdit);
11  var editButtonPassword            = jQuery('.edit.password',formUserDataEdit);
12  
13  var editButtonCompanyDescription  = jQuery('.edit.companyDescription',formCompanyDescriptionEdit);
14  var editButtonCompanyData         = jQuery('.edit.companyData',formCompanyDataEdit);
15  
16  var editButtonSubCompanyData      = jQuery('.edit.subCompanyData');
17  var createButtonSubCompanyData    = jQuery('.create.subCompanyData');
18  var deleteButtonSubCompany        = jQuery('.delete.subCompanyData');
19  
20  var selectSubCompanyLogoMode			= jQuery('select[name="inheritLogo"]');
21  
22  var editButtonEmployeeData    = jQuery('.edit.employeeData');
23  var createButtonEmployee      = jQuery('.create.employeeData');
24  var deleteButtonEmployee      = jQuery('.delete.employeeData');
25  var saveButtonEmployee        = jQuery('.save',formCreateEmployee);
26	
27  var searchEmployeesInput      = jQuery('input[name="searchEmployee"]');
28  
29  var loginButton               = jQuery('a[name="Login"]');
30  var logoutButton              = jQuery('a.logout');
31
32  logoutButton.click(function(e){
33    e.preventDefault();
34    var curUrl = window.location.href;
35    logoutUser(curUrl);
36  });
37
38  
39  loginButton.click(function(e){
40    e.preventDefault();
41    loginButton_onClick(jQuery(this),'');
42  });
43  
44  loginButton.keypress(function(e){
45    e.preventDefault();
46    if ( event.which == 13 ) {
47      loginButton_onClick(jQuery(this),''); 
48    }    
49  });
50  
51  searchEmployeesInput.keyup(function(){
52    searchEmployeeList(jQuery(this));
53  });
54  
55  editButtonUserData.click(function(){
56    editButtonUserData_onClick(jQuery(this));
57  });
58  
59  editButtonPassword.click(function(){
60    editButtonPassword_onClick(jQuery(this));
61  });
62  
63  createButtonSubCompanyData.click(function(){
64    createButtonSubCompanyData_onClick(jQuery(this));
65  });
66  
67  editButtonSubCompanyData.click(function(){
68    editButtonSubCompanyData_onClick(jQuery(this));
69  });
70  
71  deleteButtonSubCompany.click(function(){
72    deleteButtonSubCompany_onClick(jQuery(this));
73  });  
74  
75  editButtonCompanyDescription.click(function(){
76    editButtonCompanyDescription_onClick(jQuery(this));
77  });
78  
79  editButtonCompanyData.click(function(){
80    editButtonCompanyData_onClick(jQuery(this));
81  });
82  
83  editButtonEmployeeData.click(function(){
84    editButtonEmployeeData_onClick(jQuery(this));
85  });
86  
87  deleteButtonEmployee.click(function(){
88    deleteButtonEmployee_onClick(jQuery(this));
89  });
90  
91  createButtonEmployee.click(function(){
92    createButtonEmployee_onClick(jQuery(this));
93  });
94  
95  saveButtonEmployee.click(function(){
96    saveButton_onClick(jQuery(this));
97  });
98	
99	selectSubCompanyLogoMode.change(function () {
100		selectSubCompanyLogoMode_onChange(jQuery(this));
101	});
102  
103  
104  var currentURL = window.location.href;
105  
106  var statusParameter = getURLParameter('status');
107  if(statusParameter != null){
108    callActionStatus(statusParameter);
109  }
110	
111	if(jQuery('ul.navLevel1Container').attr('data-shownavlevel') !== 'showLevel2'){
112		jQuery('#blockTop').addClass('borderBottom');
113	}
114
115// ***************************************************************************
116// editButtonCompanyDescription_onClick
117// ***************************************************************************
118
119  function editButtonCompanyDescription_onClick(obj){
120    formCompanyDescriptionEdit.addClass('editable');
121    
122    var formUserDataInputFields = formCompanyDescriptionEdit.find('textarea');
123    formUserDataInputFields.each(function(){
124      var curField = jQuery(this);
125      curField.removeAttr('readonly').removeClass('inactive');
126	
127			curField.on('keyup',function (e) {
128				var currentValue = curField.val();
129				var currentStringLength = currentValue.length;
130				if(currentStringLength > 500){
131					jQuery('.infoMaxChars').show();
132				} else {
133					jQuery('.infoMaxChars').hide();
134				}
135			});
136			
137    });
138	
139		
140    
141    var saveButton    = jQuery('.functions.save',formCompanyDescriptionEdit);
142    var cancelButton  = jQuery('.functions.cancel',formCompanyDescriptionEdit);
143    
144    cancelButton.click(function(){
145      cancelButton_onClick(jQuery(this));
146    });
147    
148    saveButton.click(function(e){
149      e.preventDefault();
150      saveButton_onClick(jQuery(this),true);
151    });
152    
153  }
154  
155// ***************************************************************************
156// editButtonUserData_onClick
157// ***************************************************************************
158
159  function editButtonCompanyData_onClick(obj){
160    formCompanyDataEdit.addClass('editable');
161    
162    var formUserDataInputFields = formCompanyDataEdit.find('input');
163    formUserDataInputFields.each(function(){
164      var curField = jQuery(this);
165      curField.removeAttr('readonly').removeClass('inactive');
166    });  
167    
168    var saveButton    = jQuery('.functions.save',formCompanyDataEdit);
169    var cancelButton  = jQuery('.functions.cancel',formCompanyDataEdit);
170    
171    cancelButton.click(function(){
172      cancelButton_onClick(jQuery(this),true);
173    });
174    
175    saveButton.click(function(e){
176      e.preventDefault();
177      saveButton_onClick(jQuery(this));
178    });
179    
180  }
181  
182// ***************************************************************************
183// editButtonUserData_onClick
184// ***************************************************************************
185
186  function editButtonUserData_onClick(obj){
187    formUserDataEdit.addClass('editable');
188	
189		var fieldBirthdayPersonalData = jQuery('input[name="birthdate"]');
190		fieldBirthdayPersonalData.attr('placeholder','dd.mm.yyyy');
191    
192    var formUserDataInputFields = formUserDataEdit.find('input');
193    formUserDataInputFields.each(function(){
194      var curField = jQuery(this);
195      curField.removeAttr('readonly').removeClass('inactive');
196    });  
197    
198    var saveButton    = jQuery('.functions.save',formUserDataEdit);
199    var cancelButton  = jQuery('.functions.cancel',formUserDataEdit);
200    
201    cancelButton.click(function(){
202      cancelButton_onClick(jQuery(this),true);
203    });
204    
205    saveButton.click(function(e){
206      e.preventDefault();
207      saveButton_onClick(jQuery(this));
208    });
209    
210  }
211  
212  // ***************************************************************************
213// editButtonUserData_onClick
214// ***************************************************************************
215
216  function editButtonSubCompanyData_onClick(obj){
217    var parentForm = obj.closest('form');
218    parentForm.addClass('editable');
219    
220    var formUserDataInputFields = parentForm.find('input');
221    formUserDataInputFields.each(function(){
222      var curField = jQuery(this);
223      curField.removeAttr('readonly').removeClass('inactive');
224    });  
225    
226    var saveButton    = jQuery('.functions.save',parentForm);
227    var cancelButton  = jQuery('.functions.cancel',parentForm);
228    
229    cancelButton.click(function(){
230      cancelButton_onClick(jQuery(this),true);
231    });
232    
233    saveButton.click(function(e){
234      e.preventDefault();
235      saveButton_onClick(jQuery(this));
236    });
237    
238  }
239  
240  
241  // ***************************************************************************
242// editButtonEmployeeData_onClick
243// ***************************************************************************
244
245  function editButtonEmployeeData_onClick(obj){
246    var parentForm = obj.closest('form');
247    parentForm.addClass('editable');
248    
249    var formUserDataInputFields = parentForm.find('input');
250    formUserDataInputFields.each(function(){
251      var curField = jQuery(this);
252      curField.removeAttr('readonly').removeClass('inactive');
253    });  
254    
255    var saveButton    = jQuery('.functions.save',parentForm);
256    var cancelButton  = jQuery('.functions.cancel',parentForm);
257    
258    cancelButton.click(function(){
259      cancelButton_onClick(jQuery(this),true);
260    });
261    
262    saveButton.click(function(e){
263      e.preventDefault();
264      saveButton_onClick(jQuery(this));
265    });
266    
267  }
268  
269  
270// ***************************************************************************
271// deleteButtonEmployee_onClick
272// ***************************************************************************
273
274  function deleteButtonEmployee_onClick(obj){
275    var parentForm  = obj.closest('form');
276    var employeeID  = parentForm.find('input[name="employeeID"]').val();
277    var projectPath = wProjectPath;
278
279    jQuery.post( "/c4b-global/partnerportal/scripts/employeeDelete.php", { action: 'deleteEmployee', employeeID: employeeID, projectPath: projectPath})
280    .done(function( data ) {
281      showOverlay(data);
282    });
283    
284  }
285  
286// ***************************************************************************
287// createButtonEmployee_onClick
288// ***************************************************************************
289
290  function createButtonEmployee_onClick(obj){
291    window.location.href = obj.attr('data-urlcreateemployee');        
292  }
293  
294  
295  
296// ***************************************************************************
297// deleteButtonSubCompany_onClick
298// ***************************************************************************
299
300  function deleteButtonSubCompany_onClick(obj){
301    var parentForm  = obj.closest('form');
302    var companyID   = parentForm.find('input[name="curSubCompany"]').val();
303    var projectPath = wProjectPath;
304
305    jQuery.post( "/c4b-global/partnerportal/scripts/companyDelete.php", { action: 'deleteCompany', companyID: companyID, projectPath: projectPath })
306    .done(function( data ) {
307			console.log(data);
308      showOverlay(data);
309    });
310    
311  }  
312  
313  
314  
315// ***************************************************************************
316// editButtonUserData_onClick
317// ***************************************************************************
318
319  function createButtonSubCompanyData_onClick(obj){
320    var subCompanyDataArea = jQuery('.subCompanyDataArea');
321  
322    var projectPath = wProjectPath;
323    
324    jQuery.post( "/c4b-global/partnerportal/scripts/subCompanyCreate.php", { action: 'subCompanyCreate', projectPath: projectPath })
325    .done(function( data ) {
326      var dataObj = jQuery(data);
327      subCompanyDataArea.append( dataObj ); 
328      var parentForm = dataObj.find('form');
329      parentForm.addClass('editable'); 
330      
331      jQuery('html, body').animate({
332        scrollTop: dataObj.offset().top - 300
333      }, 500);
334      
335      var saveButton    = jQuery('.functions.save',parentForm);
336      var cancelButton  = jQuery('.functions.cancel',parentForm);
337      
338      cancelButton.click(function(){
339        cancelButton_onClick(jQuery(this),true);
340      });
341      
342      saveButton.click(function(e){
343        e.preventDefault();
344        saveButton_onClick(jQuery(this));
345      });
346      
347    });
348    
349  }
350  
351  // ***************************************************************************
352// selectSubCompanyLogoMode_onChange
353// ***************************************************************************
354
355  function selectSubCompanyLogoMode_onChange(obj){
356    
357		var selectedValue 	= obj.find('option:selected').val();
358		var targetHtmlNode 	= jQuery('.subCompanyDataEntry.inheritLogo');
359		if(selectedValue === '0'){
360			targetHtmlNode.addClass('inheritLogoFalse');
361			targetHtmlNode.removeClass('inheritLogoTrue');
362		} else {
363			targetHtmlNode.removeClass('inheritLogoFalse');
364			targetHtmlNode.addClass('inheritLogoTrue');
365		}
366    
367  }
368  
369  
370  
371  
372// ***************************************************************************
373// editButtonUserData_onClick
374// ***************************************************************************
375
376  function loginButton_onClick(obj,type){
377	  
378	  if(CookieNotice.checkIfIsAllowedTechnical() === true){
379      jQuery.post( "/c4b-global/partnerportal/scripts/loginForm.php", { type:type, wProjectPath:wProjectPath  })
380        .done(function( data ) {
381          showOverlay(data);
382          jQuery('#loginForm').find('input[name="ref"]').val( window.location.pathname );
383        });
384    } else {
385	    alert("Sie müssen der Nutzung von technisch notwendigen Cookies zustimmen.");
386    }
387  
388  }  
389  
390  
391 // ***************************************************************************
392// searchEmployeeList
393// ***************************************************************************
394
395  function searchEmployeeList(obj){    
396    var listEmployeesArea = jQuery('.employeeDataArea');
397    var listEmployees     = jQuery('div.employeeDataEdit',listEmployeesArea);
398    var searchTerm        = obj.val().toLowerCase();
399    
400    listEmployees.each(function(){
401      var name        = jQuery(this).attr('data-employeename').toLowerCase();
402      console.log(name.indexOf(searchTerm));
403      if( name.indexOf(searchTerm) != -1 ){
404        jQuery(this).show();
405      } else {
406        jQuery(this).hide();
407      }
408      
409    });
410    
411  } 
412  
413  
414// ***************************************************************************
415// editButtonUserData_onClick
416// ***************************************************************************
417
418  function editButtonPassword_onClick(obj,type){    
419    
420    var projectPath = wProjectPath;
421    jQuery.post( "/c4b-global/partnerportal/scripts/changePasswordForm.php", { type: type, projectPath: projectPath})
422    .done(function( data ) {
423      showOverlay(data);
424      jQuery('#changePasswordForm').find('input[name="ref"]').val( window.location.pathname );
425    });   
426    
427  }
428
429// ***************************************************************************
430// validateEmail
431// ***************************************************************************
432  function validateEmail(email) {
433    var re = /\S+@\S+\.\S+/;
434    return re.test(email);
435}
436
437// ***************************************************************************
438// isValidDate
439// ***************************************************************************
440function isValidDate(date)
441{
442    var matches = /^(\d{1,2})[\.-\/](\d{1,2})[\.-\/](\d{4})$/.exec(date);
443    if (matches == null) return false;
444    var d = matches[1];
445    var m = matches[2] - 1;
446    var y = matches[3];
447    var composedDate = new Date(y, m, d);
448    return composedDate.getDate() == d &&
449            composedDate.getMonth() == m &&
450            composedDate.getFullYear() == y;
451}
452
453// ***************************************************************************
454// validateEmail
455// ***************************************************************************
456  function validateForm(obj) {
457	  
458	  var form            = obj.closest('form');
459    var requiredFields  = jQuery('.required',form);
460    var check           = new Object();
461    var pass            = true;
462    
463    requiredFields.each(function(){
464      jQuery(this).removeClass('error');
465    });
466    
467    requiredFields.each(function(){
468      var requiredField = jQuery(this);
469      var requiredType  = requiredField.attr('data-requiredtype');
470      
471      if(requiredType == 'text'){
472        if(requiredField.val() == '' ){
473          check[requiredField.attr('name')] = requiredField;
474          pass = false;
475        }
476      }
477      
478      if(requiredType == 'date'){
479        if(requiredField.val() != ''){
480          if(!isValidDate(requiredField.val())){
481            check[requiredField.attr('name')] = requiredField;
482            pass = false;
483          }          
484        }
485      }
486      
487      if(requiredType == 'choice'){   
488        var curFieldName  = requiredField.attr('name');
489        var radioFields   = jQuery('input[name="'+curFieldName+'"]');
490        var checkedRadios = radioFields.filter(':checked').length;
491        jQuery(this).closest('div').addClass('required');
492                
493        if(checkedRadios == 0){
494          radioFields.each(function(){
495            check[jQuery(this).attr('name')] = jQuery(this).closest('div');
496          });          
497          pass = false;
498        }
499      }
500      
501      if(requiredType == 'email'){
502        if(validateEmail(requiredField.val()) == false ){
503          check[requiredField.attr('name')] = requiredField;
504          pass = false;
505        }
506      }
507      
508    });
509    
510    if(pass == false){
511      for(prop in check){
512        check[prop].addClass('error');
513      }
514    }
515   
516    return pass;
517  }
518  
519// ***************************************************************************
520// cancelButton_onClick
521// ***************************************************************************
522
523  function saveButton_onClick(obj){   
524  
525    var check = validateForm(obj);  
526    
527    if(check === true){
528      var form = obj.closest('form');
529      form.submit();
530    }
531    
532  };
533  
534// ***************************************************************************
535// cancelButton_onClick
536// ***************************************************************************
537
538  function cancelButton_onClick(obj, clearParams){   
539    if(clearParams === true){
540      var curLocation = window.location.pathname;
541      window.location = curLocation;
542    } else {
543      window.location.reload();
544    }
545    
546  };
547  
548// ***************************************************************************
549// closeButton_onClick
550// ***************************************************************************
551
552  function closeButton_onClick(obj){      
553    obj.closest('.overlay').remove(); 
554    removeBlocker();
555  };
556
557  function inIframe() {
558    try {
559      return window.self !== window.top;
560    } catch (e) {
561      return true;
562    }
563  }
564
565  function getTarget(){
566    if(inIframe() !== true){
567      return window.self.document;
568    } else {
569      return window.parent.document;
570    }
571  }
572  
573// ***************************************************************************
574// cancelButton_onClick
575// ***************************************************************************
576
577  function showOverlay(data,id){   
578  
579    var dataObj   = jQuery(data);
580    var isInFrame = inIframe();
581
582    if(isInFrame !== true){
583      var targetWindow    = window;
584      var targetDocument  = window.self.document;
585    } else {
586      var targetWindow    = window.parent;
587      var targetDocument  = window.parent.document;
588    }
589
590    jQuery('body',targetDocument).append( data );
591
592    var parentForm = jQuery('.overlay',targetDocument).find('form');
593    
594    showBlocker();
595    
596    var wWidth  = jQuery(targetWindow).width();
597    var wHeight = jQuery(targetWindow).height();
598    
599    var cWidth  = jQuery('.overlay',targetDocument).width();
600    var cHeight = jQuery('.overlay',targetDocument).height();
601    
602    var scrollT = jQuery(targetWindow).scrollTop();
603
604    var tLeft = (wWidth-cWidth)/2;
605    var tTop  = (wHeight-cHeight)/2;
606
607    tTop = tTop + +scrollT;
608	
609		if(wWidth <= responsiveWidthPhone){
610			tTop 	= 0;
611			tLeft = 0;
612		}
613
614    jQuery('.overlay',targetDocument).css('top',tTop).css('left',tLeft);
615    
616    var closeButton   = jQuery('<div class="close"><span>X</span></div>');
617    jQuery('.overlay',targetDocument).prepend(closeButton);
618	
619		if(wWidth <= responsiveWidthPhone){
620			jQuery('#logo').clone().prependTo(closeButton);
621		}
622    
623    var saveButton          = jQuery('.functions.save',parentForm);
624    var cancelButton        = jQuery('.functions.cancel',parentForm);
625    var closeWindowButton   = jQuery('.functions.closeWindow',parentForm);
626    var closeButton         = jQuery('.close',jQuery('.overlay',targetDocument));
627    
628    closeWindowButton.click(function(){
629      closeButton_onClick(jQuery(this));
630      history.replaceState({}, document.title, ".");
631    });
632    
633    closeButton.click(function(){
634      closeButton_onClick(jQuery(this));
635      history.replaceState({}, document.title, ".");
636    });
637    
638    cancelButton.click(function(){
639      cancelButton_onClick(jQuery(this));
640      history.replaceState({}, document.title, ".");
641    });
642    
643    saveButton.click(function(){
644      saveButton_onClick(jQuery(this));
645    });
646      
647
648
649  }
650  
651// ***************************************************************************
652// cancelButton_onClick
653// ***************************************************************************
654
655  function showBlocker(){
656    var targetDocument = getTarget();
657   jQuery('body',targetDocument).append('<div id="blocker"></div>');
658   jQuery('#blocker',targetDocument).height( jQuery(targetDocument).height() );
659  }
660  
661// ***************************************************************************
662// cancelButton_onClick
663// ***************************************************************************
664
665  function removeBlocker(){
666    var targetDocument = getTarget();
667   jQuery('#blocker',targetDocument).remove();
668  }
669  
670
671// ***************************************************************************
672// callActionStatus
673// ***************************************************************************
674
675  function callActionStatus(statusParam){   
676    
677    var statusArray = statusParam.split('|');
678    var status      = statusArray[0];
679    var type        = statusArray[1];
680    
681    if(type == 'subCompanyData'){
682      jQuery('html, body').animate({
683        scrollTop: jQuery('.partnerPortal_subCompanyData').offset().top - 200
684      }, 200);
685    }
686    
687    else if(type == 'employeeData'){
688      jQuery('html, body').animate({
689        scrollTop: jQuery('.partnerPortal_employeeData').offset().top - 150
690      }, 200);
691    }
692    
693    else if(type == 'login' && status == 'error'){
694      loginButton_onClick(self,'error');
695    }
696    
697    else if(type == 'changePassword' && status == 'error'){
698      editButtonPassword_onClick(self,'error');
699    }
700    else if(type == 'changePassword' && status == 'success'){
701      editButtonPassword_onClick(self,'success');
702    }
703   
704  };
705
706
707});
708
709
710
711
712// ***************************************************************************
713// function getParameters()    
714// ***************************************************************************
715
716function getParameters() {
717  var searchString = window.location.search.substring(1),
718      params = searchString.split("&"),
719      hash = {};
720
721  if (searchString == "") return {};
722  for (var i = 0; i < params.length; i++) {
723    var val = params[i].split("=");
724    hash[unescape(val[0])] = unescape(val[1]);
725  }
726  return hash;
727}
728
729// ***************************************************************************
730// function getURLParameter()    
731// *************************************************************************** 
732
733function getURLParameter(name) {
734	return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
735}
736
737// ***************************************************************************
738// function getURLParameter()    
739// *************************************************************************** 
740
741function logoutUser(redirect) {
742	location.href = '/weblication/grid5/scripts/wSystem.php?action=logout&redirect=' + redirect;
743}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.