scrigo.js.php 26 KB
Newer Older
1 2 3
<?php
	session_start();
	include('../../lib/config.inc.php');
4
	require_once('../../lib/app.inc.php');
5 6
	$lang = (isset($_SESSION['s']['language']) && $_SESSION['s']['language'] != '')?$_SESSION['s']['language']:'en';
	include_once(ISPC_ROOT_PATH.'/web/strengthmeter/lib/lang/'.$lang.'_strengthmeter.lng');
7 8 9
	
	$app->uses('ini_parser,getconf');
	$server_config_array = $app->getconf->get_global_config();
10
?>
mcramer's avatar
mcramer committed
11 12 13 14 15
var pageFormChanged = false;
var tabChangeWarningTxt = '';
var tabChangeDiscardTxt = '';
var tabChangeWarning = false;
var tabChangeDiscard = false;
16 17 18 19
var requestsRunning = 0;
var indicatorPaddingH = -1;
var indicatorPaddingW = -1;
var indicatorCompleted = false;
20 21
redirect = '';

22 23 24 25 26 27 28 29
function reportError(request) {
	/* Error reporting is disabled by default as some browsers like safari 
	   sometimes throw errors when a ajax request is delayed even if the 
	   ajax request worked. */
	   
	/*alert(request);*/
}

30 31 32 33
function resetFormChanged() {
    pageFormChanged = false;
}

34
function showLoadIndicator() {
35 36
    document.body.style.cursor = 'wait';

37 38 39
<?php
if($server_config_array['misc']['use_loadindicator'] == 'y'){
?>
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
    requestsRunning += 1;
    
    if(requestsRunning < 2) {
        var indicator = jQuery('#ajaxloader');
        if(indicator.length < 1) {
            indicator = jQuery('<div id="ajaxloader" style="display: none;"></div>');
            indicator.appendTo('body');
        }
        var parent = jQuery('#content');
        if(parent.length < 1) return;
        indicatorCompleted = false;
        
        var atx = parent.offset().left + 150; //((parent.outerWidth(true) - indicator.outerWidth(true)) / 2);
        var aty = parent.offset().top + 150;
        indicator.css( {'left': atx, 'top': aty } ).fadeIn('fast', function() {
            // check if loader should be hidden immediately
            indicatorCompleted = true;
            if(requestsRunning < 1) $(this).fadeOut('fast', function() { $(this).hide();});
        });
    }
60 61 62
<?php
}
?>
63 64 65
}

function hideLoadIndicator() {
66 67
    document.body.style.cursor = '';

68 69 70 71 72 73 74 75
    requestsRunning -= 1;
    if(requestsRunning < 1) {
        requestsRunning = 0; // just for the case...
        if(indicatorCompleted == true) jQuery('#ajaxloader').fadeOut('fast', function() { jQuery('#ajaxloader').hide(); } );
    }
}

function onAfterContentLoad() {
76 77 78
<?php
if($server_config_array['misc']['use_combobox'] == 'y'){
?>
79
    $('#pageContent').find("select").combobox();
80 81 82
<?php
}
?>
83 84
}

85 86 87
function loadContentRefresh(pagename) {
	
  if(document.getElementById('refreshinterval').value > 0) {
88
	var pageContentObject2 = jQuery.ajax({	type: "GET", 
89
											url: pagename,
90
											data: "refresh="+document.getElementById('refreshinterval').value,
91
											dataType: "html",
92 93 94
											beforeSend: function() {
												showLoadIndicator();
											},
95
											success: function(data, textStatus, jqXHR) {
96
                                                hideLoadIndicator();
97
												jQuery('#pageContent').html(jqXHR.responseText);
98
                                                onAfterContentLoad();
mcramer's avatar
mcramer committed
99
                                                pageFormChanged = false;
100 101
											},
											error: function() {
102
                                                hideLoadIndicator();
103
												reportError('Ajax Request was not successful.'+pagename);
cfoe's avatar
cfoe committed
104
											}
105
										});
106 107 108 109
  	setTimeout( "loadContentRefresh('"+pagename+"&refresh="+document.getElementById('refreshinterval').value+"')", document.getElementById('refreshinterval').value*1000 );
  }
}

110
function capp(module, redirect) {
111 112
	var submitFormObj = jQuery.ajax({		type: "GET", 
											url: "capp.php", 
113
											data: "mod="+module+((redirect != undefined) ? '&redirect='+redirect : ''),
114
											dataType: "html",
115 116 117
											beforeSend: function() {
												showLoadIndicator();
											},
118 119 120 121 122
											success: function(data, textStatus, jqXHR) {
												if(jqXHR.responseText != '') {
													if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
														var parts = jqXHR.responseText.split(':');
														loadContent(parts[1]);
123 124 125
													} else if (jqXHR.responseText.indexOf('URL_REDIRECT:') > -1) {
														var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
														document.location.href = newUrl;
126
													} else {
127
														//alert(jqXHR.responseText);
128 129 130
													}
												}
												loadMenus();
131
                                                hideLoadIndicator();
132 133
											},
											error: function() {
134
                                                hideLoadIndicator();
135
												reportError('Ajax Request was not successful.'+module);
cfoe's avatar
cfoe committed
136
											}
137
									});
138 139 140 141 142 143 144 145 146 147 148 149 150 151
}

function submitLoginForm(formname) {
    //* Validate form. TODO: username and password with strip();
    var frm = document.getElementById(formname);
    var userNameObj = frm.username;
    if(userNameObj.value == ''){
        userNameObj.focus();
        return;
    }
    var passwordObj = frm.passwort;
    if(passwordObj.value == ''){
        passwordObj.focus();
        return;
152 153 154 155 156 157
    }
	
	$('#dummy_username').val(userNameObj.value);
	$('#dummy_passwort').val(passwordObj.value);
	$('#dummy_login_form').submit();

158 159 160
	var submitFormObj = jQuery.ajax({		type: "POST", 
											url: "content.php",
											data: jQuery('#'+formname).serialize(),
161
											dataType: "html",
162 163 164
											beforeSend: function() {
												showLoadIndicator();
											},
165 166 167 168 169 170 171 172 173 174 175
											success: function(data, textStatus, jqXHR) {
												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
													var parts = jqXHR.responseText.split(':');
													//alert(parts[1]);
													loadContent(parts[1]);
													//redirect = parts[1];
													//window.setTimeout('loadContent(redirect)', 1000);
												} else if (jqXHR.responseText.indexOf('LOGIN_REDIRECT:') > -1) {
													// Go to the login page
													document.location.href = 'index.php';
												} else {
176
													jQuery('#pageContent').html(jqXHR.responseText);
177
                                                    onAfterContentLoad();
mcramer's avatar
mcramer committed
178
                                                    pageFormChanged = false;
179 180
												}
												loadMenus();
181
                                                hideLoadIndicator();
182 183
											},
											error: function() {
184
                                                hideLoadIndicator();
185
												reportError('Ajax Request was not successful.110');
cfoe's avatar
cfoe committed
186
											}
187
									});
188 189 190 191 192
	/*
	if(redirect != '') {
		loadContent(redirect);
		redirect = '';
	}
193
	document.getElementById('footer').innerHTML = 'Powered by <a href="http://www.ispconfig.org" target="_blank">ISPConfig</a>';
194
	*/
195
	
196 197
}

198
function submitForm(formname,target) {
199 200 201
	var submitFormObj = jQuery.ajax({		type: "POST", 
											url: target,
											data: jQuery('#'+formname).serialize(),
202
											dataType: "html",
203 204 205
											beforeSend: function() {
												showLoadIndicator();
											},
206 207 208 209 210 211 212 213
											success: function(data, textStatus, jqXHR) {
												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
													var parts = jqXHR.responseText.split(':');
													//alert(parts[1]);
													loadContent(parts[1]);
													//redirect = parts[1];
													//window.setTimeout('loadContent(redirect)', 1000);
												} else {
214
													jQuery('#pageContent').html(jqXHR.responseText);
215
                                                    onAfterContentLoad();
mcramer's avatar
mcramer committed
216
                                                    pageFormChanged = false;
217
												}
218
                                                hideLoadIndicator();
219 220
											},
											error: function(jqXHR, textStatus, errorThrown) {
221
                                                hideLoadIndicator();
222 223
												var parts = jqXHR.responseText.split(':');
												reportError('Ajax Request was not successful. 111');
cfoe's avatar
cfoe committed
224
											}
225
									});
226 227 228 229 230 231 232 233
	/*
	if(redirect != '') {
		loadContent(redirect);
		redirect = '';
	}
	*/
}

234
function submitFormConfirm(formname,target,confirmation) {
235
	var successMessage = arguments[3];
236 237 238 239 240
	if(window.confirm(confirmation)) {
		var submitFormObj = jQuery.ajax({	type: "POST", 
											url: target,
											data: jQuery('#'+formname).serialize(),
											dataType: "html",
241 242 243
											beforeSend: function() {
												showLoadIndicator();
											},
244
											success: function(data, textStatus, jqXHR) {
245
												if(successMessage) alert(successMessage);
246 247 248 249 250 251 252 253
												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
													var parts = jqXHR.responseText.split(':');
													//alert(parts[1]);
													loadContent(parts[1]);
													//redirect = parts[1];
													//window.setTimeout('loadContent(redirect)', 1000);
												} else {
													jQuery('#pageContent').html(jqXHR.responseText);
254
                                                    onAfterContentLoad();
mcramer's avatar
mcramer committed
255
                                                    pageFormChanged = false;
256
												}
257
                                                hideLoadIndicator();
258 259
											},
											error: function(jqXHR, textStatus, errorThrown) {
260
                                                hideLoadIndicator();
261 262
												var parts = jqXHR.responseText.split(':');
												reportError('Ajax Request was not successful. 111');
cfoe's avatar
cfoe committed
263
											}
264 265 266 267
									});
	}
}

268
function submitUploadForm(formname,target) {		
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
	var handleResponse = function(loadedFrame) {
		var response, responseStr = loadedFrame.contentWindow.document.body.innerHTML;
		
		try {
			response = JSON.parse(responseStr);
		} catch(e) {
			response = responseStr;
		}
		var msg = '';
		var okmsg = jQuery('#OKMsg',response).html();
		if(okmsg){
			msg = '<div id="OKMsg">'+okmsg+'</div>';
		}
		var errormsg = jQuery('#errorMsg',response).html();
		if(errormsg){
			msg = msg+'<div id="errorMsg">'+errormsg+'</div>';
		}
		return msg;
		
    };
	
	var frame_id = 'ajaxUploader-iframe-' + Math.round(new Date().getTime() / 1000);
	jQuery('body').after('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
292
	jQuery('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
293 294 295 296 297
	jQuery('#'+frame_id).load(function() {
        var msg = handleResponse(this);
		jQuery('#errorMsg').remove();
		jQuery('#OKMsg').remove();
		jQuery('input[name="id"]').before(msg);
298
		jQuery(this).remove();
299 300
      });

301 302 303 304 305 306 307 308 309
	/*
	if(redirect != '') {
		loadContent(redirect);
		redirect = '';
	}
	*/
}

function loadContent(pagename) {
mcramer's avatar
mcramer committed
310
  var params = arguments[1];
311 312
  var pageContentObject2 = jQuery.ajax({	type: "GET", 
											url: pagename,
mcramer's avatar
mcramer committed
313
                                            data: (params ? params : null),
314
											dataType: "html",
315
											beforeSend: function() {
316
												showLoadIndicator();
317
											},
318 319 320 321 322 323 324 325
											success: function(data, textStatus, jqXHR) {
												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
													var parts = jqXHR.responseText.split(':');
													loadContent(parts[1]);
												} else if (jqXHR.responseText.indexOf('URL_REDIRECT:') > -1) {
													var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
													document.location.href = newUrl;
												} else {
326 327 328 329
													//document.getElementById('pageContent').innerHTML = jqXHR.responseText;
													//var reponse = jQuery(jqXHR.responseText);
													//var reponseScript = reponse.filter("script");
													//jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
330
													
331
													jQuery('#pageContent').html(jqXHR.responseText);
332
                                                    onAfterContentLoad();
mcramer's avatar
mcramer committed
333
                                                    pageFormChanged = false;
334
												}
335
                                                hideLoadIndicator();
336 337
											},
											error: function() {
338
                                                hideLoadIndicator();
339
												reportError('Ajax Request was not successful. 113');
cfoe's avatar
cfoe committed
340
											}
341
									});
342 343 344 345
}


function loadInitContent() {
346 347 348
	var pageContentObject = jQuery.ajax({	type: "GET", 
											url: "content.php",
											data: "s_mod=login&s_pg=index",
349
											dataType: "html",
350 351 352
											beforeSend: function() {
												showLoadIndicator();
											},
353 354 355 356 357
											success: function(data, textStatus, jqXHR) {
												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
													var parts = jqXHR.responseText.split(":");
													loadContent(parts[1]);
												} else {
358
													jQuery('#pageContent').html(jqXHR.responseText);
359
                                                    onAfterContentLoad();
mcramer's avatar
mcramer committed
360
                                                    pageFormChanged = false;
361
												}
362
                                                hideLoadIndicator();
363 364
											},
											error: function() {
365
                                                hideLoadIndicator();
366
												reportError('Ajax Request was not successful. 114');
cfoe's avatar
cfoe committed
367
											}
368
										});
369 370 371 372 373 374 375 376
  
  loadMenus();
  keepalive();
  setTimeout("setFocus()",1000);

}

function setFocus() {
377
	try {
378
		jQuery('form#pageForm').find('input[name="username"]').focus();
379 380
	} catch (e) {
	}
381 382 383 384
}


function loadMenus() {
385 386 387
  var sideNavObject = jQuery.ajax({			type: "GET", 
											url: "nav.php",
											data: "nav=side",
388
											dataType: "html",
389 390 391
											beforeSend: function() {
												showLoadIndicator();
											},
392
											success: function(data, textStatus, jqXHR) {
393
                                                hideLoadIndicator();
394
												jQuery('#sideNav').html(jqXHR.responseText);
395 396
											},
											error: function() {
397
                                                hideLoadIndicator();
398
												reportError('Ajax Request was not successful. 115');
cfoe's avatar
cfoe committed
399
											}
400
									});
401
	
402 403 404
  var topNavObject = jQuery.ajax({			type: "GET", 
											url: "nav.php",
											data: "nav=top",
405
											dataType: "html",
406 407 408
											beforeSend: function() {
												showLoadIndicator();
											},
409
											success: function(data, textStatus, jqXHR) {
410
                                                hideLoadIndicator();
411
												jQuery('#topNav').html(jqXHR.responseText);
412 413
											},
											error: function(o) {
414
                                                hideLoadIndicator();
415
												reportError('Ajax Request was not successful. 116');
cfoe's avatar
cfoe committed
416
											}
417
								});
418 419 420

}

421
function changeTab(tab,target,force) {
422 423
	//document.forms[0].next_tab.value = tab;
	document.pageForm.next_tab.value = tab;
mcramer's avatar
mcramer committed
424
    
425 426 427
    var idel = jQuery('form#pageForm').find('[name="id"]');
    var id = null;
    if(idel.length > 0) id = idel.val();
428
    if(tabChangeDiscard == 'y' && !force) {
429
        if((idel.length < 1 || id) && (pageFormChanged == false || window.confirm(tabChangeDiscardTxt))) {
mcramer's avatar
mcramer committed
430
            var next_tab = tab;
431 432
            if(id) loadContent(target, {'next_tab': next_tab, 'id': id});
            else loadContent(target, {'next_tab': next_tab});
mcramer's avatar
mcramer committed
433 434 435 436 437 438 439 440 441
        } else {
            return false;
        }
    } else {
        if(id && tabChangeWarning == 'y' && pageFormChanged == true) {
            if(window.confirm(tabChangeWarningTxt)) {
                submitForm('pageForm', target);
            } else {
                var next_tab = tab;
442 443
                if(id) loadContent(target, {'next_tab': next_tab, 'id': id});
                else loadContent(target, {'next_tab': next_tab});
mcramer's avatar
mcramer committed
444 445 446 447 448
            }
        } else {
            submitForm('pageForm',target);
        }
    }
449 450 451 452 453 454 455 456
}
	
function del_record(link,confirmation) {
  if(window.confirm(confirmation)) {
          loadContent(link);
  }
}

457 458 459 460 461 462
function confirm_action(link,confirmation) {
  if(window.confirm(confirmation)) {
          loadContent(link);
  }
}

463
function loadContentInto(elementid,pagename) {
464 465
  var pageContentObject2 = jQuery.ajax({	type: "GET", 
											url: pagename,
466
											dataType: "html",
467 468 469
											beforeSend: function() {
//												showLoadIndicator();
											},
470
											success: function(data, textStatus, jqXHR) {
471
//                                                hideLoadIndicator();
472
												jQuery('#'+elementid).html(jqXHR.responseText);
473 474
											},
											error: function() {
475
//                                                hideLoadIndicator();
476
												reportError('Ajax Request was not successful. 118');
cfoe's avatar
cfoe committed
477
											}
478
										});
479 480
}

481
function loadOptionInto(elementid,pagename) {
482 483
	var pageContentObject2 = jQuery.ajax({	type: "GET", 
											url: pagename,
484
											dataType: "html",
485 486 487
											beforeSend: function() {
//												showLoadIndicator();
											},
488
											success: function(data, textStatus, jqXHR) {
489
//                                                hideLoadIndicator();
490 491 492 493 494 495 496 497 498 499 500 501 502
												var teste = jqXHR.responseText;
												var elemente = teste.split('#');
												el=document.getElementById(elementid);
												el.innerHTML='';
												for (var i = 0; i < elemente.length; ++i){

													var foo2 = document.createElement("option");
													foo2.appendChild(document.createTextNode(elemente[i]));
													foo2.value=elemente[i];
													el.appendChild(foo2);
												}
											},
											error: function() {
503
//                                                hideLoadIndicator();
504
												reportError('Ajax Request was not successful. 119');
cfoe's avatar
cfoe committed
505
											}
506
										});
507 508
}

509
function keepalive() {
510 511
	var pageContentObject3 = jQuery.ajax({	type: "GET", 
											url: "keepalive.php",
512
											dataType: "html",
513 514 515 516 517
											success: function(data, textStatus, jqXHR) {
												setTimeout( keepalive, 1000000 );
											},
											error: function() {
												reportError('Session expired. Please login again.');
cfoe's avatar
cfoe committed
518
											}
519
										});
520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645
  	//setTimeout( keepalive, 1000000 );
}



var pass_minimum_length = 5;
var pass_messages = new Array();

var pass_message = new Array();
pass_message['text'] = "<?php echo $wb['password_strength_0_txt']?>";
pass_message['color'] = "#d0d0d0";
pass_messages[0] = pass_message;

var pass_message = new Array();
pass_message['text'] = "<?php echo $wb['password_strength_1_txt']?>";
pass_message['color'] = "red";
pass_messages[1] = pass_message;

var pass_message = new Array();
pass_message['text'] = "<?php echo $wb['password_strength_2_txt']?>";
pass_message['color'] = "yellow";
pass_messages[2] = pass_message;

var pass_message = new Array();
pass_message['text'] = "<?php echo $wb['password_strength_3_txt']?>";
pass_message['color'] = "#00ff00";
pass_messages[3] = pass_message;

var pass_message = new Array();
pass_message['text'] = "<?php echo $wb['password_strength_4_txt']?>";
pass_message['color'] = "green";
pass_messages[4] = pass_message;

var pass_message = new Array();
pass_message['text'] = "<?php echo $wb['password_strength_5_txt']?>";
pass_message['color'] = "green";
pass_messages[5] = pass_message;

function pass_check(password) {
	var length = password.length;
	var points = 0;
	if (length < pass_minimum_length) {
		pass_result(0);
		return;
	}
	
	if (length < 5) {
		pass_result(1);
		return;
	}
	
	if (pass_contains(password, "ABCDEFGHIJKLNMOPQRSTUVWXYZ")) {
		points += 1;
	}
	
	if (pass_contains(password, "0123456789")) {
		points += 1;
	}
	
	if (pass_contains(password, "`~!@#$%^&*()_+|\=-[]}{';:/?.>,<\" ")) {
		points += 1;
	}
	
	if (points == 0) {
		if (length >= 5 && length <=6) {
			pass_result(1);
		} else if (length >= 7 && length <=8) {
			pass_result(2);
		} else {
			pass_result(3);
		}
	} else if (points == 1) {
		if (length >= 5 && length <=6) {
			pass_result(2);
		} else if (length >= 7 && length <=10) {
			pass_result(3);
		} else {
			pass_result(4);
		}
	} else if (points == 2) {
		if (length >= 5 && length <=8) {
			pass_result(3);
		} else if (length >= 9 && length <=10) {
			pass_result(4);
		} else {
			pass_result(5);
		}
	} else if (points == 3) {
		if (length >= 5 && length <=6) {
			pass_result(3);
		} else if (length >= 7 && length <=8) {
			pass_result(4);
		} else {
			pass_result(5);
		}
	} else if (points >= 4) {
		if (length >= 5 && length <=6) {
			pass_result(4);
		} else {
			pass_result(5);
		}
	}
}



function pass_result(points, message) {
	if (points == 0) {
		width = 10;
	} else {
		width = points*20;
	}
	document.getElementById("passBar").innerHTML = '<div style="float:left; height: 10px; padding:0px; background-color: ' + pass_messages[points]['color'] + '; width: ' + width + 'px;" />';
	document.getElementById("passText").innerHTML = pass_messages[points]['text'];
}
function pass_contains(pass, check) {
	for (i = 0; i < pass.length; i++) {
		if (check.indexOf(pass.charAt(i)) > -1) {
			return true;
		}
	}
	return false;
}

function addAdditionalTemplate(){
	var tpl_add = document.getElementById('template_additional').value;
646
	
647 648 649 650
	  var tpl_list = document.getElementById('template_additional_list').innerHTML;
	  var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
	  var addTplId = addTemplate[0];
	  var addTplText = addTemplate[1];
651
	if(addTplId > 0) {
652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683
	  var newVal = tpl_add + '/' + addTplId + '/';
	  newVal = newVal.replace('//', '/');
	  var newList = tpl_list + '<br>' + addTplText;
	  newList = newList.replace('<br><br>', '<br>');
	  document.getElementById('template_additional').value = newVal;
	  document.getElementById('template_additional_list').innerHTML = newList;
	  alert('additional template ' + addTplText + ' added to customer');
	} else {
	  alert('no additional template selcted');
	}
}

function delAdditionalTemplate(){
	var tpl_add = document.getElementById('template_additional').value;
	if(tpl_add != '') {
		var tpl_list = document.getElementById('template_additional_list').innerHTML;
		var addTemplate = document.getElementById('tpl_add_select').value.split('|',2);
		var addTplId = addTemplate[0];
		var addTplText = addTemplate[1];
		var newVal = tpl_add;
		newVal = newVal.replace(addTplId, '');
		newVal = newVal.replace('//', '/');
		var newList = tpl_list.replace(addTplText, '');
		newList = newList.replace('<br><br>', '<br>');
		document.getElementById('template_additional').value = newVal;
		document.getElementById('template_additional_list').innerHTML = newList;
		alert('additional template ' + addTplText + ' deleted from customer');
  } else {
  	alert('no additional template selcted');
  }
  
}
684 685 686 687 688 689 690 691 692 693 694

function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}
695

696
function password(minLength, special){
697 698 699
	var iteration = 0;
	var password = "";
	var randomNumber;
700 701 702
	minLength = minLength || 10;
	var maxLength = minLength + 5;
	var length = getRandomInt(minLength, maxLength);
703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719
	if(special == undefined){
		var special = false;
	}
	while(iteration < length){
		randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;
		if(!special){
			if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
			if ((randomNumber >=58) && (randomNumber <=64)) { continue; }
			if ((randomNumber >=91) && (randomNumber <=96)) { continue; }
			if ((randomNumber >=123) && (randomNumber <=126)) { continue; }
		}
		iteration++;
		password += String.fromCharCode(randomNumber);
	}
	return password;
}

Falko Timme's avatar
Falko Timme committed
720
function generatePassword(passwordFieldID, repeatPasswordFieldID){
721 722 723 724
	var oldPWField = jQuery('#'+passwordFieldID);
	var newPWField = oldPWField.clone();
	newPWField.attr('type', 'text').attr('id', 'tmp'+passwordFieldID).insertBefore(oldPWField);
	oldPWField.remove();
Falko Timme's avatar
Falko Timme committed
725 726 727
	var pword = password(10, false);
	jQuery('#'+repeatPasswordFieldID).val(pword);
	newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup');
728
}
729

730 731
var funcDisableClick = function(e) { e.preventDefault(); return false; };

732 733 734 735 736 737 738
function checkPassMatch(pwField1,pwField2){
    var rpass = jQuery('#'+pwField2).val();
    var npass = jQuery('#'+pwField1).val();
    if(npass!= rpass) {
		jQuery('#confirmpasswordOK').hide();
        jQuery('#confirmpasswordError').show();
		jQuery('button.positive').attr('disabled','disabled');
739 740 741 742 743 744
        jQuery('.tabbox_tabs ul li a').each(function() {
            var $this = $(this);
            $this.data('saved_onclick', $this.attr('onclick'));
            $this.removeAttr('onclick');
            $this.click(funcDisableClick);
        });
745 746 747 748 749
        return false;
    } else {
		jQuery('#confirmpasswordError').hide();
        jQuery('#confirmpasswordOK').show();
		jQuery('button.positive').removeAttr('disabled');
750 751 752 753 754
		jQuery('.tabbox_tabs ul li a').each(function() {
            var $this = $(this);
            $this.unbind('click', funcDisableClick);
            if($this.data('saved_onclick') && !$this.attr('onclick')) $this.attr('onclick', $this.data('saved_onclick'));
        });
755 756 757
    }
}

758 759 760 761
function getRandomInt(min, max){
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

762 763 764 765 766
jQuery('.addPlaceholder').live("click", function(){
	var placeholderText = jQuery(this).text();
	var template = jQuery(this).siblings(':input');
	template.insertAtCaret(placeholderText);
});
767 768 769 770 771 772

jQuery('.addPlaceholderContent').live("click", function(){
	var placeholderContentText = jQuery(this).find('.addPlaceholderContent').text();
	var template2 = jQuery(this).siblings(':input');
	template2.insertAtCaret(placeholderContentText);
});
773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800
		
jQuery.fn.extend({
	insertAtCaret: function(myValue){
		return this.each(function(i) {
			if (document.selection) {
				//For browsers like Internet Explorer
				this.focus();
				sel = document.selection.createRange();
				sel.text = myValue;
				this.focus();
			} else if (this.selectionStart || this.selectionStart == '0') {
				//For browsers like Firefox and Webkit based
				var startPos = this.selectionStart;
				var endPos = this.selectionEnd;
				var scrollTop = this.scrollTop;
				this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
				this.focus();
				this.selectionStart = startPos + myValue.length;
				this.selectionEnd = startPos + myValue.length;
				this.scrollTop = scrollTop;
			} else {
				this.value += myValue;
				this.focus();
			}
		})
	}
});