tbrehm
2013-02-22 526b997c9891a796b152cdbab8e329b356b1f596
commit | author | age
3583ff 1 <?php
T 2     session_start();
3     include('../../lib/config.inc.php');
10b4c8 4     require_once('../../lib/app.inc.php');
e73ad7 5     $lang = (isset($_SESSION['s']['language']) && $_SESSION['s']['language'] != '')?$_SESSION['s']['language']:'en';
T 6     include_once(ISPC_ROOT_PATH.'/web/strengthmeter/lib/lang/'.$lang.'_strengthmeter.lng');
10b4c8 7     
T 8     $app->uses('ini_parser,getconf');
9     $server_config_array = $app->getconf->get_global_config();
3583ff 10 ?>
73ec6b 11 var pageFormChanged = false;
M 12 var tabChangeWarningTxt = '';
13 var tabChangeDiscardTxt = '';
14 var tabChangeWarning = false;
15 var tabChangeDiscard = false;
a00888 16 var requestsRunning = 0;
T 17 var indicatorPaddingH = -1;
18 var indicatorPaddingW = -1;
19 var indicatorCompleted = false;
3583ff 20 redirect = '';
T 21
1ac4ff 22 function reportError(request) {
T 23     /* Error reporting is disabled by default as some browsers like safari 
24        sometimes throw errors when a ajax request is delayed even if the 
25        ajax request worked. */
26        
27     /*alert(request);*/
28 }
29
10b4c8 30 function resetFormChanged() {
T 31     pageFormChanged = false;
32 }
33
a00888 34 function showLoadIndicator() {
72695f 35     document.body.style.cursor = 'wait';
T 36
10b4c8 37 <?php
T 38 if($server_config_array['misc']['use_loadindicator'] == 'y'){
39 ?>
a00888 40     requestsRunning += 1;
T 41     
42     if(requestsRunning < 2) {
43         var indicator = jQuery('#ajaxloader');
44         if(indicator.length < 1) {
45             indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>');
46             indicator.appendTo('body');
47         }
48         var parent = jQuery('#content');
49         if(parent.length < 1) return;
50         indicatorCompleted = false;
51         
52         var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2);
53         var aty = parent.offset().top + 150;
54         indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast', function() {
55             // check if loader should be hidden immediately
56             indicatorCompleted = true;
57             if(requestsRunning < 1) $(this).fadeOut('fast', function() { $(this).hide();});
58         });
59     }
10b4c8 60 <?php
T 61 }
62 ?>
a00888 63 }
T 64
65 function hideLoadIndicator() {
72695f 66     document.body.style.cursor = '';
T 67
a00888 68     requestsRunning -= 1;
T 69     if(requestsRunning < 1) {
70         requestsRunning = 0; // just for the case...
71         if(indicatorCompleted == true) jQuery('#ajaxloader').fadeOut('fast', function() { jQuery('#ajaxloader').hide(); } );
72     }
73 }
74
75 function onAfterContentLoad() {
10b4c8 76 <?php
T 77 if($server_config_array['misc']['use_combobox'] == 'y'){
78 ?>
a00888 79     $('#pageContent').find("select").combobox();
10b4c8 80 <?php
T 81 }
82 ?>
a00888 83 }
T 84
3583ff 85 function loadContentRefresh(pagename) {
T 86     
87   if(document.getElementById('refreshinterval').value > 0) {
eee910 88     var pageContentObject2 = jQuery.ajax({    type: "GET", 
d0490d 89                                             url: pagename,
eee910 90                                             data: "refresh="+document.getElementById('refreshinterval').value,
d0490d 91                                             dataType: "html",
a00888 92                                             beforeSend: function() {
T 93                                                 showLoadIndicator();
94                                             },
eee910 95                                             success: function(data, textStatus, jqXHR) {
a00888 96                                                 hideLoadIndicator();
d0490d 97                                                 jQuery('#pageContent').html(jqXHR.responseText);
a00888 98                                                 onAfterContentLoad();
73ec6b 99                                                 pageFormChanged = false;
eee910 100                                             },
F 101                                             error: function() {
a00888 102                                                 hideLoadIndicator();
eee910 103                                                 reportError('Ajax Request was not successful.'+pagename);
ebc41d 104                                             }
eee910 105                                         });
3583ff 106       setTimeout( "loadContentRefresh('"+pagename+"&refresh="+document.getElementById('refreshinterval').value+"')", document.getElementById('refreshinterval').value*1000 );
T 107   }
108 }
109
4c28d9 110 function capp(module, redirect) {
eee910 111     var submitFormObj = jQuery.ajax({        type: "GET", 
F 112                                             url: "capp.php", 
4c28d9 113                                             data: "mod="+module+((redirect != undefined) ? '&redirect='+redirect : ''),
d0490d 114                                             dataType: "html",
a00888 115                                             beforeSend: function() {
T 116                                                 showLoadIndicator();
117                                             },
eee910 118                                             success: function(data, textStatus, jqXHR) {
F 119                                                 if(jqXHR.responseText != '') {
120                                                     if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
121                                                         var parts = jqXHR.responseText.split(':');
122                                                         loadContent(parts[1]);
bf7d95 123                                                     } else if (jqXHR.responseText.indexOf('URL_REDIRECT:') > -1) {
F 124                                                         var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
125                                                         document.location.href = newUrl;
eee910 126                                                     } else {
bf7d95 127                                                         //alert(jqXHR.responseText);
eee910 128                                                     }
F 129                                                 }
130                                                 loadMenus();
a00888 131                                                 hideLoadIndicator();
eee910 132                                             },
F 133                                             error: function() {
a00888 134                                                 hideLoadIndicator();
eee910 135                                                 reportError('Ajax Request was not successful.'+module);
ebc41d 136                                             }
eee910 137                                     });
3583ff 138 }
T 139
140 function submitLoginForm(formname) {
141     //* Validate form. TODO: username and password with strip();
142     var frm = document.getElementById(formname);
143     var userNameObj = frm.username;
144     if(userNameObj.value == ''){
145         userNameObj.focus();
146         return;
147     }
148     var passwordObj = frm.passwort;
149     if(passwordObj.value == ''){
150         passwordObj.focus();
151         return;
526b99 152     }
T 153     
154     $('#dummy_username').val(userNameObj.value);
155     $('#dummy_passwort').val(passwordObj.value);
156     $('#dummy_login_form').submit();
157
eee910 158     var submitFormObj = jQuery.ajax({        type: "POST", 
F 159                                             url: "content.php",
160                                             data: jQuery('#'+formname).serialize(),
d0490d 161                                             dataType: "html",
a00888 162                                             beforeSend: function() {
T 163                                                 showLoadIndicator();
164                                             },
eee910 165                                             success: function(data, textStatus, jqXHR) {
F 166                                                 if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
167                                                     var parts = jqXHR.responseText.split(':');
168                                                     //alert(parts[1]);
169                                                     loadContent(parts[1]);
170                                                     //redirect = parts[1];
171                                                     //window.setTimeout('loadContent(redirect)', 1000);
172                                                 } else if (jqXHR.responseText.indexOf('LOGIN_REDIRECT:') > -1) {
173                                                     // Go to the login page
174                                                     document.location.href = 'index.php';
175                                                 } else {
d0490d 176                                                     jQuery('#pageContent').html(jqXHR.responseText);
a00888 177                                                     onAfterContentLoad();
73ec6b 178                                                     pageFormChanged = false;
eee910 179                                                 }
F 180                                                 loadMenus();
a00888 181                                                 hideLoadIndicator();
eee910 182                                             },
F 183                                             error: function() {
a00888 184                                                 hideLoadIndicator();
eee910 185                                                 reportError('Ajax Request was not successful.110');
ebc41d 186                                             }
eee910 187                                     });
3583ff 188     /*
T 189     if(redirect != '') {
190         loadContent(redirect);
191         redirect = '';
192     }
9e0cbf 193     document.getElementById('footer').innerHTML = 'Powered by <a href="http://www.ispconfig.org" target="_blank">ISPConfig</a>';
3583ff 194     */
9e0cbf 195     
3583ff 196 }
T 197
8ab3cd 198 function submitForm(formname,target) {
eee910 199     var submitFormObj = jQuery.ajax({        type: "POST", 
F 200                                             url: target,
201                                             data: jQuery('#'+formname).serialize(),
d0490d 202                                             dataType: "html",
a00888 203                                             beforeSend: function() {
T 204                                                 showLoadIndicator();
205                                             },
eee910 206                                             success: function(data, textStatus, jqXHR) {
F 207                                                 if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
208                                                     var parts = jqXHR.responseText.split(':');
209                                                     //alert(parts[1]);
210                                                     loadContent(parts[1]);
211                                                     //redirect = parts[1];
212                                                     //window.setTimeout('loadContent(redirect)', 1000);
213                                                 } else {
d0490d 214                                                     jQuery('#pageContent').html(jqXHR.responseText);
a00888 215                                                     onAfterContentLoad();
73ec6b 216                                                     pageFormChanged = false;
eee910 217                                                 }
a00888 218                                                 hideLoadIndicator();
eee910 219                                             },
F 220                                             error: function(jqXHR, textStatus, errorThrown) {
a00888 221                                                 hideLoadIndicator();
eee910 222                                                 var parts = jqXHR.responseText.split(':');
F 223                                                 reportError('Ajax Request was not successful. 111');
ebc41d 224                                             }
eee910 225                                     });
3583ff 226     /*
T 227     if(redirect != '') {
228         loadContent(redirect);
229         redirect = '';
230     }
231     */
232 }
233
b67344 234 function submitFormConfirm(formname,target,confirmation) {
89a742 235     var successMessage = arguments[3];
b67344 236     if(window.confirm(confirmation)) {
T 237         var submitFormObj = jQuery.ajax({    type: "POST", 
238                                             url: target,
239                                             data: jQuery('#'+formname).serialize(),
240                                             dataType: "html",
a00888 241                                             beforeSend: function() {
T 242                                                 showLoadIndicator();
243                                             },
b67344 244                                             success: function(data, textStatus, jqXHR) {
89a742 245                                                 if(successMessage) alert(successMessage);
b67344 246                                                 if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
T 247                                                     var parts = jqXHR.responseText.split(':');
248                                                     //alert(parts[1]);
249                                                     loadContent(parts[1]);
250                                                     //redirect = parts[1];
251                                                     //window.setTimeout('loadContent(redirect)', 1000);
252                                                 } else {
253                                                     jQuery('#pageContent').html(jqXHR.responseText);
a00888 254                                                     onAfterContentLoad();
73ec6b 255                                                     pageFormChanged = false;
b67344 256                                                 }
a00888 257                                                 hideLoadIndicator();
b67344 258                                             },
T 259                                             error: function(jqXHR, textStatus, errorThrown) {
a00888 260                                                 hideLoadIndicator();
b67344 261                                                 var parts = jqXHR.responseText.split(':');
T 262                                                 reportError('Ajax Request was not successful. 111');
ebc41d 263                                             }
b67344 264                                     });
T 265     }
266 }
267
4ffb51 268 function submitUploadForm(formname,target) {        
eee910 269     var handleResponse = function(loadedFrame) {
F 270         var response, responseStr = loadedFrame.contentWindow.document.body.innerHTML;
271         
272         try {
273             response = JSON.parse(responseStr);
274         } catch(e) {
275             response = responseStr;
276         }
277         var msg = '';
278         var okmsg = jQuery('#OKMsg',response).html();
279         if(okmsg){
280             msg = '<div id="OKMsg">'+okmsg+'</div>';
281         }
282         var errormsg = jQuery('#errorMsg',response).html();
283         if(errormsg){
284             msg = msg+'<div id="errorMsg">'+errormsg+'</div>';
285         }
286         return msg;
287         
288     };
289     
290     var frame_id = 'ajaxUploader-iframe-' + Math.round(new Date().getTime() / 1000);
291     jQuery('body').after('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
6ad1e4 292     jQuery('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
eee910 293     jQuery('#'+frame_id).load(function() {
F 294         var msg = handleResponse(this);
295         jQuery('#errorMsg').remove();
296         jQuery('#OKMsg').remove();
297         jQuery('input[name="id"]').before(msg);
6ad1e4 298         jQuery(this).remove();
eee910 299       });
F 300
3583ff 301     /*
T 302     if(redirect != '') {
303         loadContent(redirect);
304         redirect = '';
305     }
306     */
307 }
308
309 function loadContent(pagename) {
73ec6b 310   var params = arguments[1];
eee910 311   var pageContentObject2 = jQuery.ajax({    type: "GET", 
F 312                                             url: pagename,
73ec6b 313                                             data: (params ? params : null),
d0490d 314                                             dataType: "html",
477d4e 315                                             beforeSend: function() {
a00888 316                                                 showLoadIndicator();
477d4e 317                                             },
eee910 318                                             success: function(data, textStatus, jqXHR) {
F 319                                                 if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
320                                                     var parts = jqXHR.responseText.split(':');
321                                                     loadContent(parts[1]);
322                                                 } else if (jqXHR.responseText.indexOf('URL_REDIRECT:') > -1) {
323                                                     var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
324                                                     document.location.href = newUrl;
325                                                 } else {
d0490d 326                                                     //document.getElementById('pageContent').innerHTML = jqXHR.responseText;
F 327                                                     //var reponse = jQuery(jqXHR.responseText);
328                                                     //var reponseScript = reponse.filter("script");
329                                                     //jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
477d4e 330                                                     
d0490d 331                                                     jQuery('#pageContent').html(jqXHR.responseText);
a00888 332                                                     onAfterContentLoad();
73ec6b 333                                                     pageFormChanged = false;
eee910 334                                                 }
a00888 335                                                 hideLoadIndicator();
eee910 336                                             },
F 337                                             error: function() {
a00888 338                                                 hideLoadIndicator();
eee910 339                                                 reportError('Ajax Request was not successful. 113');
ebc41d 340                                             }
eee910 341                                     });
3583ff 342 }
T 343
344
345 function loadInitContent() {
eee910 346     var pageContentObject = jQuery.ajax({    type: "GET", 
F 347                                             url: "content.php",
348                                             data: "s_mod=login&s_pg=index",
d0490d 349                                             dataType: "html",
a00888 350                                             beforeSend: function() {
T 351                                                 showLoadIndicator();
352                                             },
eee910 353                                             success: function(data, textStatus, jqXHR) {
F 354                                                 if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
355                                                     var parts = jqXHR.responseText.split(":");
356                                                     loadContent(parts[1]);
357                                                 } else {
d0490d 358                                                     jQuery('#pageContent').html(jqXHR.responseText);
a00888 359                                                     onAfterContentLoad();
73ec6b 360                                                     pageFormChanged = false;
eee910 361                                                 }
a00888 362                                                 hideLoadIndicator();
eee910 363                                             },
F 364                                             error: function() {
a00888 365                                                 hideLoadIndicator();
eee910 366                                                 reportError('Ajax Request was not successful. 114');
ebc41d 367                                             }
eee910 368                                         });
3583ff 369   
T 370   loadMenus();
371   keepalive();
372   setTimeout("setFocus()",1000);
373
374 }
375
376 function setFocus() {
fbda8f 377     try {
e27086 378         jQuery('form#pageForm').find('input[name="username"]').focus();
fbda8f 379     } catch (e) {
V 380     }
3583ff 381 }
T 382
383
384 function loadMenus() {
eee910 385   var sideNavObject = jQuery.ajax({            type: "GET", 
F 386                                             url: "nav.php",
387                                             data: "nav=side",
d0490d 388                                             dataType: "html",
a00888 389                                             beforeSend: function() {
T 390                                                 showLoadIndicator();
391                                             },
eee910 392                                             success: function(data, textStatus, jqXHR) {
a00888 393                                                 hideLoadIndicator();
d0490d 394                                                 jQuery('#sideNav').html(jqXHR.responseText);
eee910 395                                             },
F 396                                             error: function() {
a00888 397                                                 hideLoadIndicator();
eee910 398                                                 reportError('Ajax Request was not successful. 115');
ebc41d 399                                             }
eee910 400                                     });
3583ff 401     
eee910 402   var topNavObject = jQuery.ajax({            type: "GET", 
F 403                                             url: "nav.php",
404                                             data: "nav=top",
d0490d 405                                             dataType: "html",
a00888 406                                             beforeSend: function() {
T 407                                                 showLoadIndicator();
408                                             },
eee910 409                                             success: function(data, textStatus, jqXHR) {
a00888 410                                                 hideLoadIndicator();
d0490d 411                                                 jQuery('#topNav').html(jqXHR.responseText);
eee910 412                                             },
F 413                                             error: function(o) {
a00888 414                                                 hideLoadIndicator();
eee910 415                                                 reportError('Ajax Request was not successful. 116');
ebc41d 416                                             }
eee910 417                                 });
3583ff 418
T 419 }
420
e39356 421 function changeTab(tab,target,force) {
3583ff 422     //document.forms[0].next_tab.value = tab;
T 423     document.pageForm.next_tab.value = tab;
73ec6b 424     
5a5398 425     var idel = jQuery('form#pageForm').find('[name="id"]');
M 426     var id = null;
427     if(idel.length > 0) id = idel.val();
e39356 428     if(tabChangeDiscard == 'y' && !force) {
5a5398 429         if((idel.length < 1 || id) && (pageFormChanged == false || window.confirm(tabChangeDiscardTxt))) {
73ec6b 430             var next_tab = tab;
5a5398 431             if(id) loadContent(target, {'next_tab': next_tab, 'id': id});
M 432             else loadContent(target, {'next_tab': next_tab});
73ec6b 433         } else {
M 434             return false;
435         }
436     } else {
437         if(id && tabChangeWarning == 'y' && pageFormChanged == true) {
438             if(window.confirm(tabChangeWarningTxt)) {
439                 submitForm('pageForm', target);
440             } else {
441                 var next_tab = tab;
5a5398 442                 if(id) loadContent(target, {'next_tab': next_tab, 'id': id});
M 443                 else loadContent(target, {'next_tab': next_tab});
73ec6b 444             }
M 445         } else {
446             submitForm('pageForm',target);
447         }
448     }
3583ff 449 }
T 450     
451 function del_record(link,confirmation) {
452   if(window.confirm(confirmation)) {
453           loadContent(link);
454   }
455 }
456
5a43e7 457 function confirm_action(link,confirmation) {
T 458   if(window.confirm(confirmation)) {
459           loadContent(link);
460   }
461 }
462
3583ff 463 function loadContentInto(elementid,pagename) {
eee910 464   var pageContentObject2 = jQuery.ajax({    type: "GET", 
F 465                                             url: pagename,
d0490d 466                                             dataType: "html",
a00888 467                                             beforeSend: function() {
T 468 //                                                showLoadIndicator();
469                                             },
eee910 470                                             success: function(data, textStatus, jqXHR) {
a00888 471 //                                                hideLoadIndicator();
d0490d 472                                                 jQuery('#'+elementid).html(jqXHR.responseText);
eee910 473                                             },
F 474                                             error: function() {
a00888 475 //                                                hideLoadIndicator();
eee910 476                                                 reportError('Ajax Request was not successful. 118');
ebc41d 477                                             }
eee910 478                                         });
3583ff 479 }
T 480
af756a 481 function loadOptionInto(elementid,pagename) {
eee910 482     var pageContentObject2 = jQuery.ajax({    type: "GET", 
F 483                                             url: pagename,
d0490d 484                                             dataType: "html",
a00888 485                                             beforeSend: function() {
T 486 //                                                showLoadIndicator();
487                                             },
eee910 488                                             success: function(data, textStatus, jqXHR) {
a00888 489 //                                                hideLoadIndicator();
eee910 490                                                 var teste = jqXHR.responseText;
F 491                                                 var elemente = teste.split('#');
492                                                 el=document.getElementById(elementid);
493                                                 el.innerHTML='';
494                                                 for (var i = 0; i < elemente.length; ++i){
495
496                                                     var foo2 = document.createElement("option");
497                                                     foo2.appendChild(document.createTextNode(elemente[i]));
498                                                     foo2.value=elemente[i];
499                                                     el.appendChild(foo2);
500                                                 }
501                                             },
502                                             error: function() {
a00888 503 //                                                hideLoadIndicator();
eee910 504                                                 reportError('Ajax Request was not successful. 119');
ebc41d 505                                             }
eee910 506                                         });
af756a 507 }
T 508
3583ff 509 function keepalive() {
eee910 510     var pageContentObject3 = jQuery.ajax({    type: "GET", 
F 511                                             url: "keepalive.php",
d0490d 512                                             dataType: "html",
eee910 513                                             success: function(data, textStatus, jqXHR) {
F 514                                                 setTimeout( keepalive, 1000000 );
515                                             },
516                                             error: function() {
517                                                 reportError('Session expired. Please login again.');
ebc41d 518                                             }
eee910 519                                         });
3583ff 520       //setTimeout( keepalive, 1000000 );
T 521 }
522
523
524
525 var pass_minimum_length = 5;
526 var pass_messages = new Array();
527
528 var pass_message = new Array();
529 pass_message['text'] = "<?php echo $wb['password_strength_0_txt']?>";
530 pass_message['color'] = "#d0d0d0";
531 pass_messages[0] = pass_message;
532
533 var pass_message = new Array();
534 pass_message['text'] = "<?php echo $wb['password_strength_1_txt']?>";
535 pass_message['color'] = "red";
536 pass_messages[1] = pass_message;
537
538 var pass_message = new Array();
539 pass_message['text'] = "<?php echo $wb['password_strength_2_txt']?>";
540 pass_message['color'] = "yellow";
541 pass_messages[2] = pass_message;
542
543 var pass_message = new Array();
544 pass_message['text'] = "<?php echo $wb['password_strength_3_txt']?>";
545 pass_message['color'] = "#00ff00";
546 pass_messages[3] = pass_message;
547
548 var pass_message = new Array();
549 pass_message['text'] = "<?php echo $wb['password_strength_4_txt']?>";
550 pass_message['color'] = "green";
551 pass_messages[4] = pass_message;
552
553 var pass_message = new Array();
554 pass_message['text'] = "<?php echo $wb['password_strength_5_txt']?>";
555 pass_message['color'] = "green";
556 pass_messages[5] = pass_message;
557
558 function pass_check(password) {
559     var length = password.length;
560     var points = 0;
561     if (length < pass_minimum_length) {
562         pass_result(0);
563         return;
564     }
565     
566     if (length < 5) {
567         pass_result(1);
568         return;
569     }
570     
571     if (pass_contains(password, "ABCDEFGHIJKLNMOPQRSTUVWXYZ")) {
572         points += 1;
573     }
574     
575     if (pass_contains(password, "0123456789")) {
576         points += 1;
577     }
578     
579     if (pass_contains(password, "`~!@#$%^&*()_+|\=-[]}{';:/?.>,<\" ")) {
580         points += 1;
581     }
582     
583     if (points == 0) {
584         if (length >= 5 && length <=6) {
585             pass_result(1);
586         } else if (length >= 7 && length <=8) {
587             pass_result(2);
588         } else {
589             pass_result(3);
590         }
591     } else if (points == 1) {
592         if (length >= 5 && length <=6) {
593             pass_result(2);
594         } else if (length >= 7 && length <=10) {
595             pass_result(3);
596         } else {
597             pass_result(4);
598         }
599     } else if (points == 2) {
600         if (length >= 5 && length <=8) {
601             pass_result(3);
602         } else if (length >= 9 && length <=10) {
603             pass_result(4);
604         } else {
605             pass_result(5);
606         }
607     } else if (points == 3) {
608         if (length >= 5 && length <=6) {
609             pass_result(3);
610         } else if (length >= 7 && length <=8) {
611             pass_result(4);
612         } else {
613             pass_result(5);
614         }
615     } else if (points >= 4) {
616         if (length >= 5 && length <=6) {
617             pass_result(4);
618         } else {
619             pass_result(5);
620         }
621     }
622 }
623
624
625
626 function pass_result(points, message) {
627     if (points == 0) {
628         width = 10;
629     } else {
630         width = points*20;
631     }
632     document.getElementById("passBar").innerHTML = '<div style="float:left; height: 10px; padding:0px; background-color: ' + pass_messages[points]['color'] + '; width: ' + width + 'px;" />';
633     document.getElementById("passText").innerHTML = pass_messages[points]['text'];
634 }
635 function pass_contains(pass, check) {
636     for (i = 0; i < pass.length; i++) {
637         if (check.indexOf(pass.charAt(i)) > -1) {
638             return true;
639         }
640     }
641     return false;
642 }
643
644 function addAdditionalTemplate(){
645     var tpl_add = document.getElementById('template_additional').value;
328e6c 646     
3583ff 647       var tpl_list = document.getElementById('template_additional_list').innerHTML;
T 648       var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
649       var addTplId = addTemplate[0];
650       var addTplText = addTemplate[1];
328e6c 651     if(addTplId > 0) {
3583ff 652       var newVal = tpl_add + '/' + addTplId + '/';
T 653       newVal = newVal.replace('//', '/');
654       var newList = tpl_list + '<br>' + addTplText;
655       newList = newList.replace('<br><br>', '<br>');
656       document.getElementById('template_additional').value = newVal;
657       document.getElementById('template_additional_list').innerHTML = newList;
658       alert('additional template ' + addTplText + ' added to customer');
659     } else {
660       alert('no additional template selcted');
661     }
662 }
663
664 function delAdditionalTemplate(){
665     var tpl_add = document.getElementById('template_additional').value;
666     if(tpl_add != '') {
667         var tpl_list = document.getElementById('template_additional_list').innerHTML;
668         var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
669         var addTplId = addTemplate[0];
670         var addTplText = addTemplate[1];
671         var newVal = tpl_add;
672         newVal = newVal.replace(addTplId, '');
673         newVal = newVal.replace('//', '/');
674         var newList = tpl_list.replace(addTplText, '');
675         newList = newList.replace('<br><br>', '<br>');
676         document.getElementById('template_additional').value = newVal;
677         document.getElementById('template_additional_list').innerHTML = newList;
678         alert('additional template ' + addTplText + ' deleted from customer');
679   } else {
680       alert('no additional template selcted');
681   }
682   
683 }
1ca823 684
T 685 function getInternetExplorerVersion() {
686     var rv = -1; // Return value assumes failure.
687     if (navigator.appName == 'Microsoft Internet Explorer') {
688         var ua = navigator.userAgent;
689         var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
690         if (re.exec(ua) != null)
691             rv = parseFloat(RegExp.$1);
692     }
693     return rv;
694 }
00385e 695
726cfa 696 function password(minLength, special){
00385e 697     var iteration = 0;
F 698     var password = "";
699     var randomNumber;
726cfa 700     minLength = minLength || 10;
F 701     var maxLength = minLength + 5;
702     var length = getRandomInt(minLength, maxLength);
00385e 703     if(special == undefined){
F 704         var special = false;
705     }
706     while(iteration < length){
707         randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;
708         if(!special){
709             if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
710             if ((randomNumber >=58) && (randomNumber <=64)) { continue; }
711             if ((randomNumber >=91) && (randomNumber <=96)) { continue; }
712             if ((randomNumber >=123) && (randomNumber <=126)) { continue; }
713         }
714         iteration++;
715         password += String.fromCharCode(randomNumber);
716     }
717     return password;
718 }
719
fdb09c 720 function generatePassword(passwordFieldID, repeatPasswordFieldID){
00385e 721     var oldPWField = jQuery('#'+passwordFieldID);
F 722     var newPWField = oldPWField.clone();
723     newPWField.attr('type', 'text').attr('id', 'tmp'+passwordFieldID).insertBefore(oldPWField);
724     oldPWField.remove();
fdb09c 725     var pword = password(10, false);
F 726     jQuery('#'+repeatPasswordFieldID).val(pword);
727     newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup');
00385e 728 }
726cfa 729
e27086 730 var funcDisableClick = function(e) { e.preventDefault(); return false; };
M 731
2a1893 732 function checkPassMatch(pwField1,pwField2){
F 733     var rpass = jQuery('#'+pwField2).val();
734     var npass = jQuery('#'+pwField1).val();
735     if(npass!= rpass) {
736         jQuery('#confirmpasswordOK').hide();
737         jQuery('#confirmpasswordError').show();
738         jQuery('button.positive').attr('disabled','disabled');
e27086 739         jQuery('.tabbox_tabs ul li a').each(function() {
M 740             var $this = $(this);
741             $this.data('saved_onclick', $this.attr('onclick'));
742             $this.removeAttr('onclick');
743             $this.click(funcDisableClick);
744         });
2a1893 745         return false;
F 746     } else {
747         jQuery('#confirmpasswordError').hide();
748         jQuery('#confirmpasswordOK').show();
749         jQuery('button.positive').removeAttr('disabled');
e27086 750         jQuery('.tabbox_tabs ul li a').each(function() {
M 751             var $this = $(this);
752             $this.unbind('click', funcDisableClick);
753             if($this.data('saved_onclick') && !$this.attr('onclick')) $this.attr('onclick', $this.data('saved_onclick'));
754         });
2a1893 755     }
F 756 }
757
726cfa 758 function getRandomInt(min, max){
F 759     return Math.floor(Math.random() * (max - min + 1)) + min;
760 }
761
f754e5 762 jQuery('.addPlaceholder').live("click", function(){
F 763     var placeholderText = jQuery(this).text();
764     var template = jQuery(this).siblings(':input');
765     template.insertAtCaret(placeholderText);
766 });
ef55b5 767
F 768 jQuery('.addPlaceholderContent').live("click", function(){
769     var placeholderContentText = jQuery(this).find('.addPlaceholderContent').text();
770     var template2 = jQuery(this).siblings(':input');
771     template2.insertAtCaret(placeholderContentText);
772 });
f754e5 773         
F 774 jQuery.fn.extend({
775     insertAtCaret: function(myValue){
776         return this.each(function(i) {
777             if (document.selection) {
778                 //For browsers like Internet Explorer
779                 this.focus();
780                 sel = document.selection.createRange();
781                 sel.text = myValue;
782                 this.focus();
783             } else if (this.selectionStart || this.selectionStart == '0') {
784                 //For browsers like Firefox and Webkit based
785                 var startPos = this.selectionStart;
786                 var endPos = this.selectionEnd;
787                 var scrollTop = this.scrollTop;
788                 this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
789                 this.focus();
790                 this.selectionStart = startPos + myValue.length;
791                 this.selectionEnd = startPos + myValue.length;
792                 this.scrollTop = scrollTop;
793             } else {
794                 this.value += myValue;
795                 this.focus();
796             }
797         })
798     }
799 });
800