diff options
Diffstat (limited to 'phpBB')
| -rw-r--r-- | phpBB/adm/style/ajax.js | 4 | ||||
| -rw-r--r-- | phpBB/adm/style/editor.js | 217 | ||||
| -rw-r--r-- | phpBB/adm/style/permissions.js | 185 | ||||
| -rw-r--r-- | phpBB/adm/style/timezone.js | 2 | ||||
| -rw-r--r-- | phpBB/adm/style/tooltip.js | 102 | ||||
| -rw-r--r-- | phpBB/assets/javascript/core.js | 47 | ||||
| -rw-r--r-- | phpBB/includes/acp/acp_groups.php | 83 | ||||
| -rw-r--r-- | phpBB/includes/notification/method/email.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/notification/method/messenger_base.php | 2 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/ajax.js | 6 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/editor.js | 259 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/forum_fn.js | 285 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/timezone.js | 4 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/editor.js | 264 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/mcp_jumpbox.html | 19 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/timezone.js | 2 | 
16 files changed, 555 insertions, 928 deletions
| diff --git a/phpBB/adm/style/ajax.js b/phpBB/adm/style/ajax.js index 294a35b615..8f7c210e00 100644 --- a/phpBB/adm/style/ajax.js +++ b/phpBB/adm/style/ajax.js @@ -115,9 +115,9 @@ phpbb.addAjaxCallback('activate_deactivate', function(res) {  	el.text(res.text);  	if (newHref.indexOf('deactivate') !== -1) { -		newHref = newHref.replace('deactivate', 'activate') +		newHref = newHref.replace('deactivate', 'activate');  	} else { -		newHref = newHref.replace('activate', 'deactivate') +		newHref = newHref.replace('activate', 'deactivate');  	}  	el.attr('href', newHref); diff --git a/phpBB/adm/style/editor.js b/phpBB/adm/style/editor.js index c9e8afe08e..9938ff5d0b 100644 --- a/phpBB/adm/style/editor.js +++ b/phpBB/adm/style/editor.js @@ -10,18 +10,16 @@ var theSelection = false;  // Check for Browser & Platform for PC & IE specific bits  // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html  var clientPC = navigator.userAgent.toLowerCase(); // Get client info -var clientVer = parseInt(navigator.appVersion); // Get browser version - -var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1)); -var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1)); +var clientVer = parseInt(navigator.appVersion, 10); // Get browser version +var is_ie = ((clientPC.indexOf('msie') !== -1) && (clientPC.indexOf('opera') === -1)); +var is_win = ((clientPC.indexOf('win') !== -1) || (clientPC.indexOf('16bit') !== -1));  var baseHeight;  /**  * Shows the help messages in the helpline window  */ -function helpline(help) -{ +function helpline(help) {  	document.forms[form_name].helpbox.value = help_line[help];  } @@ -29,26 +27,22 @@ function helpline(help)  * Fix a bug involving the TextRange object. From  * http://www.frostjedi.com/terra/scripts/demo/caretBug.html  */  -function initInsertions()  -{ +function initInsertions() {  	var doc; -	if(document.forms[form_name]) -	{ + +	if (document.forms[form_name]) {  		doc = document; -	} -	else -	{ +	} else {  		doc = opener.document;  	}  	var textarea = doc.forms[form_name].elements[text_name]; -	if (is_ie && typeof(baseHeight) != 'number') -	{ + +	if (is_ie && typeof(baseHeight) !== 'number') {  		textarea.focus();  		baseHeight = doc.selection.createRange().duplicate().boundingHeight; -		if (!document.forms[form_name]) -		{ +		if (!document.forms[form_name]) {  			document.body.focus();  		}  	} @@ -57,69 +51,59 @@ function initInsertions()  /**  * bbstyle  */ -function bbstyle(bbnumber) -{ -	if (bbnumber != -1) -	{ +function bbstyle(bbnumber) { +	if (bbnumber !== -1) {  		bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]); -	} -	else -	{ +	} else {  		insert_text('[*]'); -		document.forms[form_name].elements[text_name].focus();		 +		document.forms[form_name].elements[text_name].focus();  	}  }  /**  * Apply bbcodes  */ -function bbfontstyle(bbopen, bbclose) -{ +function bbfontstyle(bbopen, bbclose) {  	theSelection = false; -		 +  	var textarea = document.forms[form_name].elements[text_name];  	textarea.focus(); -	if ((clientVer >= 4) && is_ie && is_win) -	{ +	if ((clientVer >= 4) && is_ie && is_win) {  		// Get text selection  		theSelection = document.selection.createRange().text; -		if (theSelection) -		{ +		if (theSelection) {  			// Add tags around selection  			document.selection.createRange().text = bbopen + theSelection + bbclose;  			document.forms[form_name].elements[text_name].focus();  			theSelection = '';  			return;  		} -	} -	else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) -	{ +	} else if (document.forms[form_name].elements[text_name].selectionEnd +			&& (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {  		mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);  		document.forms[form_name].elements[text_name].focus();  		theSelection = '';  		return;  	} -	 +  	//The new position for the cursor after adding the bbcode  	var caret_pos = getCaretPosition(textarea).start; -	var new_pos = caret_pos + bbopen.length;		 +	var new_pos = caret_pos + bbopen.length;  	// Open tag  	insert_text(bbopen + bbclose);  	// Center the cursor when we don't have a selection  	// Gecko and proper browsers -	if (!isNaN(textarea.selectionStart)) -	{ +	if (!isNaN(textarea.selectionStart)) {  		textarea.selectionStart = new_pos;  		textarea.selectionEnd = new_pos; -	}	 +	}  	// IE -	else if (document.selection) -	{ +	else if (document.selection) {  		var range = textarea.createTextRange();   		range.move("character", new_pos);   		range.select(); @@ -133,62 +117,47 @@ function bbfontstyle(bbopen, bbclose)  /**  * Insert text at position  */ -function insert_text(text, spaces, popup) -{ +function insert_text(text, spaces, popup) {  	var textarea; -	 -	if (!popup) -	{ + +	if (!popup) {  		textarea = document.forms[form_name].elements[text_name]; -	} -	else -	{ +	} else {  		textarea = opener.document.forms[form_name].elements[text_name];  	} -	if (spaces) -	{ +	if (spaces) {  		text = ' ' + text + ' ';  	} -	if (!isNaN(textarea.selectionStart)) -	{ +	if (!isNaN(textarea.selectionStart)) {  		var sel_start = textarea.selectionStart;  		var sel_end = textarea.selectionEnd;  		mozWrap(textarea, text, '');  		textarea.selectionStart = sel_start + text.length;  		textarea.selectionEnd = sel_end + text.length; -	}	 -	 -	else if (textarea.createTextRange && textarea.caretPos) -	{ -		if (baseHeight != textarea.caretPos.boundingHeight)  -		{ +	} else if (textarea.createTextRange && textarea.caretPos) { +		if (baseHeight !== textarea.caretPos.boundingHeight) {  			textarea.focus();  			storeCaret(textarea);  		} +  		var caret_pos = textarea.caretPos; -		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; -		 -	} -	else -	{ +		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) === ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; +	} else {  		textarea.value = textarea.value + text;  	} -	if (!popup) -	{ +	if (!popup) {  		textarea.focus();  	} -  }  /**  * Add inline attachment at position  */ -function attach_inline(index, filename) -{ +function attach_inline(index, filename) {  	insert_text('[attachment=' + index + ']' + filename + '[/attachment]');  	document.forms[form_name].elements[text_name].focus();  } @@ -202,56 +171,39 @@ function addquote(post_id, username)  	var theSelection = '';  	var divarea = false; -	if (document.all) -	{ +	if (document.all) {  		divarea = document.all[message_name]; -	} -	else -	{ +	} else {  		divarea = document.getElementById(message_name);  	}  	// Get text selection - not only the post content :( -	if (window.getSelection) -	{ +	if (window.getSelection) {  		theSelection = window.getSelection().toString(); -	} -	else if (document.getSelection) -	{ +	} else if (document.getSelection) {  		theSelection = document.getSelection(); -	} -	else if (document.selection) -	{ +	} else if (document.selection) {  		theSelection = document.selection.createRange().text;  	} -	if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null) -	{ -		if (divarea.innerHTML) -		{ +	if (theSelection === '' || typeof theSelection === 'undefined' || theSelection === null) { +		if (divarea.innerHTML) {  			theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');  			theSelection = theSelection.replace(/<br\/>/ig, '\n');  			theSelection = theSelection.replace(/<\;/ig, '<');  			theSelection = theSelection.replace(/>\;/ig, '>'); -			theSelection = theSelection.replace(/&\;/ig, '&');			 +			theSelection = theSelection.replace(/&\;/ig, '&');  			theSelection = theSelection.replace(/ \;/ig, ' '); -		} -		else if (document.all) -		{ +		} else if (document.all) {  			theSelection = divarea.innerText; -		} -		else if (divarea.textContent) -		{ +		} else if (divarea.textContent) {  			theSelection = divarea.textContent; -		} -		else if (divarea.firstChild.nodeValue) -		{ +		} else if (divarea.firstChild.nodeValue) {  			theSelection = divarea.firstChild.nodeValue;  		}  	} -	if (theSelection) -	{ +	if (theSelection) {  		insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');  	} @@ -261,15 +213,13 @@ function addquote(post_id, username)  /**  * From http://www.massless.org/mozedit/  */ -function mozWrap(txtarea, open, close) -{ -	var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength; +function mozWrap(txtarea, open, close) { +	var selLength = (typeof(txtarea.textLength) === 'undefined') ? txtarea.value.length : txtarea.textLength;  	var selStart = txtarea.selectionStart;  	var selEnd = txtarea.selectionEnd;  	var scrollTop = txtarea.scrollTop; -	if (selEnd == 1 || selEnd == 2)  -	{ +	if (selEnd === 1 || selEnd === 2) {  		selEnd = selLength;  	} @@ -290,10 +240,8 @@ function mozWrap(txtarea, open, close)  * Insert at Caret position. Code from  * http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130  */ -function storeCaret(textEl) -{ -	if (textEl.createTextRange) -	{ +function storeCaret(textEl) { +	if (textEl.createTextRange) {  		textEl.caretPos = document.selection.createRange().duplicate();  	}  } @@ -301,8 +249,7 @@ function storeCaret(textEl)  /**  * Color pallette  */ -function colorPalette(dir, width, height) -{ +function colorPalette(dir, width, height) {  	var r = 0, g = 0, b = 0;  	var numberList = new Array(6);  	var color = ''; @@ -315,88 +262,74 @@ function colorPalette(dir, width, height)  	document.writeln('<table class="type2">'); -	for (r = 0; r < 5; r++) -	{ -		if (dir == 'h') -		{ +	for (r = 0; r < 5; r++) { +		if (dir === 'h') {  			document.writeln('<tr>');  		} -		for (g = 0; g < 5; g++) -		{ -			if (dir == 'v') -			{ +		for (g = 0; g < 5; g++) { +			if (dir === 'v') {  				document.writeln('<tr>');  			} -			 -			for (b = 0; b < 5; b++) -			{ + +			for (b = 0; b < 5; b++) {  				color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);  				document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');  				document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');  				document.writeln('</td>');  			} -			if (dir == 'v') -			{ +			if (dir === 'v') {  				document.writeln('</tr>');  			}  		} -		if (dir == 'h') -		{ +		if (dir === 'h') {  			document.writeln('</tr>');  		}  	}  	document.writeln('</table>');  } -  /**  * Caret Position object  */ -function caretPosition() -{ +function caretPosition() {  	var start = null;  	var end = null;  } -  /**  * Get the caret position in an textarea  */ -function getCaretPosition(txtarea) -{ +function getCaretPosition(txtarea) {  	var caretPos = new caretPosition(); -	 +  	// simple Gecko/Opera way -	if (txtarea.selectionStart || txtarea.selectionStart == 0) -	{ +	if (txtarea.selectionStart || txtarea.selectionStart === 0) {  		caretPos.start = txtarea.selectionStart;  		caretPos.end = txtarea.selectionEnd;  	}  	// dirty and slow IE way -	else if (document.selection) -	{ +	else if (document.selection) {  		// get current selection  		var range = document.selection.createRange();  		// a new selection of the whole textarea  		var range_all = document.body.createTextRange();  		range_all.moveToElementText(txtarea); -		 +  		// calculate selection start point by moving beginning of range_all to beginning of range  		var sel_start; -		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) -		{ +		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) {  			range_all.moveStart('character', 1);  		} -	 +  		txtarea.sel_start = sel_start; -	 +  		// we ignore the end value for IE, this is already dirty enough and we don't need it  		caretPos.start = txtarea.sel_start; -		caretPos.end = txtarea.sel_start;			 +		caretPos.end = txtarea.sel_start;  	}  	return caretPos; diff --git a/phpBB/adm/style/permissions.js b/phpBB/adm/style/permissions.js index adc8995c23..1c85fbd9ef 100644 --- a/phpBB/adm/style/permissions.js +++ b/phpBB/adm/style/permissions.js @@ -2,35 +2,27 @@  * Hide and show all checkboxes  * status = true (show boxes), false (hide boxes)  */ -function display_checkboxes(status)  -{ +function display_checkboxes(status) {  	var form = document.getElementById('set-permissions');  	var cb = document.getElementsByTagName('input');  	var display;  	//show -	if (status) -	{ +	if (status) {  		display = 'inline';  	}  	//hide -	else -	{ +	else {  		display = 'none';  	} -	 -	for (var i = 0; i < cb.length; i++ ) -	{ -		if (cb[i].className == 'permissions-checkbox') -		{ + +	for (var i = 0; i < cb.length; i++ ) { +		if (cb[i].className === 'permissions-checkbox') {  			cb[i].style.display = display;  		} -		 -	}	 -	 +	}  } -  /**  * Change opacity of element  * e = element @@ -38,7 +30,7 @@ function display_checkboxes(status)  */  function set_opacity(e, value) {  	e.style.opacity = value/10; -	 +  	//IE opacity currently turned off, because of its astronomical stupidity  	//e.style.filter = 'alpha(opacity=' + value*10 + ')';  } @@ -50,13 +42,10 @@ function set_opacity(e, value) {  function toggle_opacity(block_id) {  	var cb = document.getElementById('checkbox' + block_id);  	var fs = document.getElementById('perm' + block_id); -	 -	if (cb.checked)  -	{ + +	if (cb.checked) {  		set_opacity(fs, 5); -	}  -	else  -	{ +	} else {  		set_opacity(fs, 10);  	}  } @@ -71,21 +60,17 @@ function reset_opacity(status, except_id) {  	var fs = perm.getElementsByTagName('fieldset');  	var opacity = 5; -	if (status) -	{ -		opacity = 10;	 +	if (status) { +		opacity = 10;  	} -	 -	for (var i = 0; i < fs.length; i++ ) -	{ -		if (fs[i].className != 'quick') -		{ + +	for (var i = 0; i < fs.length; i++ ) { +		if (fs[i].className !== 'quick') {  			set_opacity(fs[i], opacity);  		}  	} -	if (typeof(except_id) != 'undefined') -	{ +	if (typeof(except_id) !== 'undefined') {  		set_opacity(document.getElementById('perm' + except_id), 10);  	} @@ -93,20 +78,15 @@ function reset_opacity(status, except_id) {  	marklist('set-permissions', 'inherit', !status);  } -  /**  * Check whether we have a full radiobutton row of true  * index = offset for the row of inputs (0 == first row, 1 == second, 2 == third),  * rb = array of radiobuttons  */ -function get_radio_status(index, rb)  -{ -	for (var i = index; i < rb.length; i = i + 3 ) -	{ -		if (rb[i].checked != true) -		{ -			if (i > index) -			{ +function get_radio_status(index, rb) { +	for (var i = index; i < rb.length; i = i + 3 ) { +		if (rb[i].checked !== true) { +			if (i > index) {  				//at least one is true, but not all (custom)  				return 2;  			} @@ -121,17 +101,15 @@ function get_radio_status(index, rb)  /**  * Set tab colours -* id = panel the tab needs to be set for,  -* init = initialising on open,  +* id = panel the tab needs to be set for, +* init = initialising on open,  * quick = If no calculation needed, this contains the colour  */ -function set_colours(id, init, quick) -{ +function set_colours(id, init, quick) {  	var table = document.getElementById('table' + id);  	var tab = document.getElementById('tab' + id); -	if (typeof(quick) != 'undefined')  -	{ +	if (typeof(quick) !== 'undefined') {  		tab.className = 'permissions-preset-' + quick + ' activetab';  		return;  	} @@ -141,37 +119,27 @@ function set_colours(id, init, quick)  	var status = get_radio_status(0, rb); -	if (status == 1) -	{ +	if (status === 1) {  		colour = 'yes'; -	} -	else if (status == 0)  -	{ +	} else if (status === 0) {  		// We move on to No  		status = get_radio_status(1, rb); -		if (status == 1) -		{ +		if (status === 1) {  			colour = 'no'; -		} -		else if (status == 0)  -		{ +		} else if (status === 0) {  			// We move on to Never  			status = get_radio_status(2, rb); -			if (status == 1) -			{ +			if (status === 1) {  				colour = 'never';  			}  		}  	} -	if (init) -	{ +	if (init) {  		tab.className = 'permissions-preset-' + colour; -	} -	else -	{ +	} else {  		tab.className = 'permissions-preset-' + colour + ' activetab';  	}  } @@ -180,16 +148,13 @@ function set_colours(id, init, quick)  * Initialise advanced tab colours on first load  * block_id = block that is opened  */ -function init_colours(block_id) -{	 +function init_colours(block_id) {  	var block = document.getElementById('advanced' + block_id);  	var panels = block.getElementsByTagName('div');  	var tab = document.getElementById('tab' + id); -	for (var i = 0; i < panels.length; i++) -	{ -		if(panels[i].className == 'permissions-panel') -		{ +	for (var i = 0; i < panels.length; i++) { +		if (panels[i].className === 'permissions-panel') {  			set_colours(panels[i].id.replace(/options/, ''), true);  		}  	} @@ -203,17 +168,15 @@ function init_colours(block_id)  * adv = we are opening advanced permissions  * view = called from view permissions  */ -function swap_options(pmask, fmask, cat, adv, view) -{ +function swap_options(pmask, fmask, cat, adv, view) {  	id = pmask + fmask + cat;  	active_option = active_pmask + active_fmask + active_cat; -	var	old_tab = document.getElementById('tab' + active_option);	 +	var	old_tab = document.getElementById('tab' + active_option);  	var new_tab = document.getElementById('tab' + id);  	var adv_block = document.getElementById('advanced' + pmask + fmask); -	if (adv_block.style.display == 'block' && adv == true) -	{ +	if (adv_block.style.display === 'block' && adv === true) {  		dE('advanced' + pmask + fmask, -1);  		reset_opacity(1);  		display_checkboxes(false); @@ -221,20 +184,16 @@ function swap_options(pmask, fmask, cat, adv, view)  	}  	// no need to set anything if we are clicking on the same tab again -	if (new_tab == old_tab && !adv) -	{ +	if (new_tab === old_tab && !adv) {  		return;  	}  	// init colours -	if (adv && (pmask + fmask) != (active_pmask + active_fmask)) -	{ +	if (adv && (pmask + fmask) !== (active_pmask + active_fmask)) {  		init_colours(pmask + fmask);  		display_checkboxes(true);  		reset_opacity(1); -	}  -	else if (adv)  -	{ +	} else if (adv) {  		//Checkbox might have been clicked, but we need full visibility  		display_checkboxes(true);  		reset_opacity(1); @@ -244,31 +203,26 @@ function swap_options(pmask, fmask, cat, adv, view)  	old_tab.className = old_tab.className.replace(/\ activetab/g, '');  	new_tab.className = new_tab.className + ' activetab'; -	if (id == active_option && adv != true) -	{ +	if (id === active_option && adv !== true) {  		return;  	}  	dE('options' + active_option, -1); -	 +  	//hiding and showing the checkbox -	if (document.getElementById('checkbox' + active_pmask + active_fmask)) -	{ -		dE('checkbox' + pmask + fmask, -1);	 -		 -		if ((pmask + fmask) != (active_pmask + active_fmask)) -		{ +	if (document.getElementById('checkbox' + active_pmask + active_fmask)) { +		dE('checkbox' + pmask + fmask, -1); + +		if ((pmask + fmask) !== (active_pmask + active_fmask)) {  			document.getElementById('checkbox' + active_pmask + active_fmask).style.display = 'inline';  		}  	} -	if (!view) -	{ +	if (!view) {  		dE('advanced' + active_pmask + active_fmask, -1);  	} -	if (!view) -	{ +	if (!view) {  		dE('advanced' + pmask + fmask, 1);  	}  	dE('options' + id, 1); @@ -282,41 +236,33 @@ function swap_options(pmask, fmask, cat, adv, view)  * Mark all radio buttons in one panel  * id = table ID container, s = status ['y'/'u'/'n']  */ -function mark_options(id, s) -{ +function mark_options(id, s) {  	var t = document.getElementById(id); -	if (!t) -	{ +	if (!t) {  		return;  	}  	var rb = t.getElementsByTagName('input'); -	for (var r = 0; r < rb.length; r++) -	{ -		if (rb[r].id.substr(rb[r].id.length-1) == s) -		{ +	for (var r = 0; r < rb.length; r++) { +		if (rb[r].id.substr(rb[r].id.length-1) === s) {  			rb[r].checked = true;  		}  	}  } -function mark_one_option(id, field_name, s) -{ +function mark_one_option(id, field_name, s) {  	var t = document.getElementById(id); -	if (!t) -	{ +	if (!t) {  		return;  	}  	var rb = t.getElementsByTagName('input'); -	for (var r = 0; r < rb.length; r++) -	{ -		if (rb[r].id.substr(rb[r].id.length-field_name.length-3, field_name.length) == field_name && rb[r].id.substr(rb[r].id.length-1) == s) -		{ +	for (var r = 0; r < rb.length; r++) { +		if (rb[r].id.substr(rb[r].id.length-field_name.length-3, field_name.length) === field_name && rb[r].id.substr(rb[r].id.length-1) === s) {  			rb[r].checked = true;  		}  	} @@ -325,12 +271,10 @@ function mark_one_option(id, field_name, s)  /**  * Reset role dropdown field to Select role... if an option gets changed  */ -function reset_role(id) -{ +function reset_role(id) {  	var t = document.getElementById(id); -	if (!t) -	{ +	if (!t) {  		return;  	} @@ -340,20 +284,17 @@ function reset_role(id)  /**  * Load role and set options accordingly  */ -function set_role_settings(role_id, target_id) -{ +function set_role_settings(role_id, target_id) {  	settings = role_options[role_id]; -	if (!settings) -	{ +	if (!settings) {  		return;  	}  	// Mark all options to no (unset) first...  	mark_options(target_id, 'u'); -	for (var r in settings) -	{ -		mark_one_option(target_id, r, (settings[r] == 1) ? 'y' : 'n'); +	for (var r in settings) { +		mark_one_option(target_id, r, (settings[r] === 1) ? 'y' : 'n');  	}  } diff --git a/phpBB/adm/style/timezone.js b/phpBB/adm/style/timezone.js index 419d37c34f..b5e27c907c 100644 --- a/phpBB/adm/style/timezone.js +++ b/phpBB/adm/style/timezone.js @@ -1,5 +1,7 @@  (function($) { // Avoid conflicts with other libraries +"use strict"; +  $('#tz_date').change(function() {  	phpbb.timezoneSwitchDate(false);  }); diff --git a/phpBB/adm/style/tooltip.js b/phpBB/adm/style/tooltip.js index 20610b52fe..3a89008706 100644 --- a/phpBB/adm/style/tooltip.js +++ b/phpBB/adm/style/tooltip.js @@ -1,6 +1,6 @@  /*  javascript for Bubble Tooltips by Alessandro Fulciniti -- http://pro.html.it - http://web-graphics.com  +- http://pro.html.it - http://web-graphics.com  obtained from: http://web-graphics.com/mtarchive/001717.php  phpBB Development Team: @@ -15,14 +15,12 @@ var head_text, tooltip_mode;  /**  * Enable tooltip replacements for links  */ -function enable_tooltips_link(id, headline, sub_id) -{ +function enable_tooltips_link(id, headline, sub_id) {  	var links, i, hold; -	 +  	head_text = headline; -	if (!document.getElementById || !document.getElementsByTagName) -	{ +	if (!document.getElementById || !document.getElementsByTagName) {  		return;  	} @@ -33,26 +31,18 @@ function enable_tooltips_link(id, headline, sub_id)  	document.getElementsByTagName('body')[0].appendChild(hold); -	if (id == null) -	{ +	if (id === null) {  		links = document.getElementsByTagName('a'); -	} -	else -	{ +	} else {  		links = document.getElementById(id).getElementsByTagName('a');  	} -	for (i = 0; i < links.length; i++) -	{ -		if (sub_id) -		{ -			if (links[i].id.substr(0, sub_id.length) == sub_id) -			{ +	for (i = 0; i < links.length; i++) { +		if (sub_id) { +			if (links[i].id.substr(0, sub_id.length) === sub_id) {  				prepare(links[i]);  			} -		} -		else -		{ +		} else {  			prepare(links[i]);  		}  	} @@ -63,14 +53,12 @@ function enable_tooltips_link(id, headline, sub_id)  /**  * Enable tooltip replacements for selects  */ -function enable_tooltips_select(id, headline, sub_id) -{ +function enable_tooltips_select(id, headline, sub_id) {  	var links, i, hold; -	 +  	head_text = headline; -	if (!document.getElementById || !document.getElementsByTagName) -	{ +	if (!document.getElementById || !document.getElementsByTagName) {  		return;  	} @@ -81,26 +69,18 @@ function enable_tooltips_select(id, headline, sub_id)  	document.getElementsByTagName('body')[0].appendChild(hold); -	if (id == null) -	{ +	if (id === null) {  		links = document.getElementsByTagName('option'); -	} -	else -	{ +	} else {  		links = document.getElementById(id).getElementsByTagName('option');  	} -	for (i = 0; i < links.length; i++) -	{ -		if (sub_id) -		{ -			if (links[i].parentNode.id.substr(0, sub_id.length) == sub_id) -			{ +	for (i = 0; i < links.length; i++) { +		if (sub_id) { +			if (links[i].parentNode.id.substr(0, sub_id.length) === sub_id) {  				prepare(links[i]);  			} -		} -		else -		{ +		} else {  			prepare(links[i]);  		}  	} @@ -111,14 +91,12 @@ function enable_tooltips_select(id, headline, sub_id)  /**  * Prepare elements to replace  */ -function prepare(element) -{ +function prepare(element) {  	var tooltip, text, desc, title;  	text = element.getAttribute('title'); -	if (text == null || text.length == 0) -	{ +	if (text === null || text.length === 0) {  		return;  	} @@ -139,8 +117,7 @@ function prepare(element)  	element.onmouseover = show_tooltip;  	element.onmouseout = hide_tooltip; -	if (tooltip_mode == 'link') -	{ +	if (tooltip_mode === 'link') {  		element.onmousemove = locate;  	}  } @@ -148,8 +125,7 @@ function prepare(element)  /**  * Show tooltip  */ -function show_tooltip(e) -{ +function show_tooltip(e) {  	document.getElementById('_tooltip_container').appendChild(this.tooltip);  	locate(this);  } @@ -157,11 +133,9 @@ function show_tooltip(e)  /**  * Hide tooltip  */ -function hide_tooltip(e) -{ +function hide_tooltip(e) {  	var d = document.getElementById('_tooltip_container'); -	if (d.childNodes.length > 0) -	{ +	if (d.childNodes.length > 0) {  		d.removeChild(d.firstChild);  	}  } @@ -169,8 +143,7 @@ function hide_tooltip(e)  /**  * Set opacity on tooltip element  */ -function set_opacity(element) -{ +function set_opacity(element) {  	element.style.filter = 'alpha(opacity:95)';  	element.style.KHTMLOpacity = '0.95';  	element.style.MozOpacity = '0.95'; @@ -180,8 +153,7 @@ function set_opacity(element)  /**  * Create new element  */ -function create_element(tag, c) -{ +function create_element(tag, c) {  	var x = document.createElement(tag);  	x.className = c;  	x.style.display = 'block'; @@ -191,34 +163,26 @@ function create_element(tag, c)  /**  * Correct positioning of tooltip container  */ -function locate(e) -{ +function locate(e) {  	var posx = 0;  	var posy = 0;  	e = e.parentNode; -	if (e.offsetParent) -	{ -		for (var posx = 0, posy = 0; e.offsetParent; e = e.offsetParent) -		{ +	if (e.offsetParent) { +		for (posx = 0, posy = 0; e.offsetParent; e = e.offsetParent) {  			posx += e.offsetLeft;  			posy += e.offsetTop;  		} -	} -	else -	{ +	} else {  		posx = e.offsetLeft;  		posy = e.offsetTop;  	} -	if (tooltip_mode == 'link') -	{ +	if (tooltip_mode === 'link') {  		document.getElementById('_tooltip_container').style.top=(posy+20) + 'px';  		document.getElementById('_tooltip_container').style.left=(posx-20) + 'px'; -	} -	else -	{ +	} else {  		document.getElementById('_tooltip_container').style.top=(posy+30) + 'px';  		document.getElementById('_tooltip_container').style.left=(posx-205) + 'px';  	} diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index 40da09377e..8bbea8b8c9 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -57,7 +57,7 @@ phpbb.clearLoadingTimeout = function() {   * @param string title Title of the message, eg "Information" (HTML).   * @param string msg Message to display (HTML).   * @param bool fadedark Remove the dark background when done? Defaults - * 	to yes. + *     to yes.   *   * @returns object Returns the div created.   */ @@ -121,9 +121,9 @@ phpbb.alert = function(title, msg, fadedark) {   *   * @param string msg Message to display (HTML).   * @param function callback Callback. Bool param, whether the user pressed - * 	yes or no (or whatever their language is). + *     yes or no (or whatever their language is).   * @param bool fadedark Remove the dark background when done? Defaults - * 	to yes. + *     to yes.   *   * @returns object Returns the div created.   */ @@ -232,10 +232,10 @@ phpbb.parseQuerystring = function(string) {   *   * @param object options Options.   * @param bool/function refresh If we are sent back a refresh, should it be - * 	acted upon? This can either be true / false / a function. + *     acted upon? This can either be true / false / a function.   * @param function callback Callback to call on completion of event. Has - * 	three parameters: the element that the event was evoked from, the JSON - * 	that was returned and (if it is a form) the form action. + *     three parameters: the element that the event was evoked from, the JSON + *     that was returned and (if it is a form) the form action.   */  phpbb.ajaxify = function(options) {  	var elements = $(options.selector), @@ -252,6 +252,11 @@ phpbb.ajaxify = function(options) {  			return;  		} +		function errorHandler() { +			phpbb.clearLoadingTimeout(); +			phpbb.alert(dark.attr('data-ajax-error-title'), dark.attr('data-ajax-error-text')); +		} +  		/**  		 * This is a private function used to handle the callbacks, refreshes  		 * and alert. It calls the callback, refreshes the page if necessary, and @@ -320,13 +325,6 @@ phpbb.ajaxify = function(options) {  			}  		} -		function errorHandler() { -			var alert; - -			phpbb.clearLoadingTimeout(); -			alert = phpbb.alert(dark.attr('data-ajax-error-title'), dark.attr('data-ajax-error-text')); -		} -  		// If the element is a form, POST must be used and some extra data must  		// be taken from the form.  		var runFilter = (typeof options.filter === 'function'); @@ -355,8 +353,7 @@ phpbb.ajaxify = function(options) {  			return;  		} -		if (overlay && (typeof $this.attr('data-overlay') === 'undefined' || $this.attr('data-overlay') == 'true')) -		{ +		if (overlay && (typeof $this.attr('data-overlay') === 'undefined' || $this.attr('data-overlay') === 'true')) {  			phpbb.loadingAlert();  		} @@ -389,7 +386,7 @@ phpbb.ajaxify = function(options) {  * @param	bool	keepSelection		Shall we keep the value selected, or shall the user be forced to repick one.  */  phpbb.timezoneSwitchDate = function(keepSelection) { -	if ($('#timezone_copy').length == 0) { +	if ($('#timezone_copy').length === 0) {  		// We make a backup of the original dropdown, so we can remove optgroups  		// instead of setting display to none, because IE and chrome will not  		// hide options inside of optgroups and selects via css @@ -399,17 +396,17 @@ phpbb.timezoneSwitchDate = function(keepSelection) {  		$('#timezone').replaceWith($('#timezone_copy').clone().attr('id', 'timezone').css('display', 'block').attr('name', 'tz'));  	} -	if ($('#tz_date').val() != '') { +	if ($('#tz_date').val() !== '') {  		$('#timezone > optgroup').remove(":not([label='" + $('#tz_date').val() + "'])");  	} -	if ($('#tz_date').val() == $('#tz_select_date_suggest').attr('data-suggested-tz')) { +	if ($('#tz_date').val() === $('#tz_select_date_suggest').attr('data-suggested-tz')) {  		$('#tz_select_date_suggest').css('display', 'none');  	} else {  		$('#tz_select_date_suggest').css('display', 'inline');  	} -	if ($("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option").size() == 1) { +	if ($("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option").size() === 1) {  		// If there is only one timezone for the selected date, we just select that automatically.  		$("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option:first").attr('selected', true);  		keepSelection = true; @@ -440,12 +437,11 @@ phpbb.timezonePreselectSelect = function(forceSelector) {  	// The offset returned here is in minutes and negated.  	// http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp  	var offset = (new Date()).getTimezoneOffset(); +	var sign = '-';  	if (offset < 0) { -		var sign = '+'; +		sign = '+';  		offset = -offset; -	} else { -		var sign = '-';  	}  	var minutes = offset % 60; @@ -466,12 +462,13 @@ phpbb.timezonePreselectSelect = function(forceSelector) {  	var prefix = 'GMT' + sign + hours + ':' + minutes;  	var prefixLength = prefix.length;  	var selectorOptions = $('#tz_date > option'); +	var i; -	for (var i = 0; i < selectorOptions.length; ++i) { +	for (i = 0; i < selectorOptions.length; ++i) {  		var option = selectorOptions[i]; -		if (option.value.substring(0, prefixLength) == prefix) { -			if ($('#tz_date').val() != option.value && !forceSelector) { +		if (option.value.substring(0, prefixLength) === prefix) { +			if ($('#tz_date').val() !== option.value && !forceSelector) {  				// We do not select the option for the user, but notify him,  				// that we would suggest a different setting.  				phpbb.timezoneSwitchDate(true); diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php index 8cae0151c8..865810687b 100644 --- a/phpBB/includes/acp/acp_groups.php +++ b/phpBB/includes/acp/acp_groups.php @@ -148,57 +148,58 @@ class acp_groups  						'action'	=> $action))  					);  				} +			break; -				break;  			case 'set_default_on_all': -					if (confirm_box(true)) -					{ -						$group_name = ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name']; -							 -						$start = 0; +				if (confirm_box(true)) +				{ +					$group_name = ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name']; + +					$start = 0; -						do +					do +					{ +						$sql = 'SELECT user_id +							FROM ' . USER_GROUP_TABLE . " +							WHERE group_id = $group_id +							ORDER BY user_id"; +						$result = $db->sql_query_limit($sql, 200, $start); + +						$mark_ary = array(); +						if ($row = $db->sql_fetchrow($result))  						{ -							$sql = 'SELECT user_id -								FROM ' . USER_GROUP_TABLE . " -								WHERE group_id = $group_id -								ORDER BY user_id"; -							$result = $db->sql_query_limit($sql, 200, $start); - -							$mark_ary = array(); -							if ($row = $db->sql_fetchrow($result)) +							do  							{ -								do -								{ -									$mark_ary[] = $row['user_id']; -								} -								while ($row = $db->sql_fetchrow($result)); +								$mark_ary[] = $row['user_id']; +							} +							while ($row = $db->sql_fetchrow($result)); -								group_user_attributes('default', $group_id, $mark_ary, false, $group_name, $group_row); +							group_user_attributes('default', $group_id, $mark_ary, false, $group_name, $group_row); -								$start = (sizeof($mark_ary) < 200) ? 0 : $start + 200; -							} -							else -							{ -								$start = 0; -							} -							$db->sql_freeresult($result); +							$start = (sizeof($mark_ary) < 200) ? 0 : $start + 200;  						} -						while ($start); -							 -						trigger_error($user->lang['GROUP_DEFS_UPDATED'] . adm_back_link($this->u_action . '&action=list&g=' . $group_id)); -					} -					else -					{ -						confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array( -							'mark'		=> $mark_ary, -							'g'			=> $group_id, -							'i'			=> $id, -							'mode'		=> $mode, -							'action'	=> $action)) -						); +						else +						{ +							$start = 0; +						} +						$db->sql_freeresult($result);  					} +					while ($start); + +					trigger_error($user->lang['GROUP_DEFS_UPDATED'] . adm_back_link($this->u_action . '&action=list&g=' . $group_id)); +				} +				else +				{ +					confirm_box(false, $user->lang['CONFIRM_OPERATION'], build_hidden_fields(array( +						'mark'		=> $mark_ary, +						'g'			=> $group_id, +						'i'			=> $id, +						'mode'		=> $mode, +						'action'	=> $action)) +					); +				}  			break; +  			case 'deleteusers':  				if (empty($mark_ary))  				{ diff --git a/phpBB/includes/notification/method/email.php b/phpBB/includes/notification/method/email.php index dc505c0d41..44666b1422 100644 --- a/phpBB/includes/notification/method/email.php +++ b/phpBB/includes/notification/method/email.php @@ -21,7 +21,7 @@ if (!defined('IN_PHPBB'))  *  * @package notifications  */ -class phpbb_notification_method_email extends phpbb_notification_method_base +class phpbb_notification_method_email extends phpbb_notification_method_messenger_base  {  	/**  	* Get notification method name diff --git a/phpBB/includes/notification/method/messenger_base.php b/phpBB/includes/notification/method/messenger_base.php index ce1ecc09ce..2f9073e80b 100644 --- a/phpBB/includes/notification/method/messenger_base.php +++ b/phpBB/includes/notification/method/messenger_base.php @@ -78,7 +78,7 @@ abstract class phpbb_notification_method_messenger_base extends phpbb_notificati  				continue;  			} -			$messenger->template($email_template_base_dir . $notification->get_email_template(), $user['user_lang']); +			$messenger->template($template_dir_prefix . $notification->get_email_template(), $user['user_lang']);  			$messenger->to($user['user_email'], $user['username']); diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js index 0b587ac561..8dd1f58c97 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -39,7 +39,7 @@ phpbb.addAjaxCallback('mark_forums_read', function(res) {  	// Mark topics read if we are watching a category and showing active topics  	if ($('#active_topics').length) { -		phpbb.ajaxCallbacks['mark_topics_read'].call(this, res, false); +		phpbb.ajaxCallbacks.mark_topics_read.call(this, res, false);  	}  	// Update mark forums read links @@ -75,7 +75,7 @@ phpbb.addAjaxCallback('mark_topics_read', function(res, update_topic_links) {  	$.each(iconsArray, function(unreadClass, readClass) {  		$.each(iconsState, function(key, value) {  			// Only topics can be hot -			if ((value == '_hot' || value == '_hot_mine') && unreadClass != 'topic_unread') { +			if ((value === '_hot' || value === '_hot_mine') && unreadClass !== 'topic_unread') {  				return true;  			}  			classMap[unreadClass + value] = readClass + value; @@ -217,7 +217,7 @@ $('#quick-mod-select').change(function () {  */  $('#member_search').click(function () {  	$('#memberlist_search').slideToggle('fast'); -	phpbb.ajax_callbacks['alt_text'].call(this); +	phpbb.ajax_callbacks.alt_text.call(this);  	// Focus on the username textbox if it's available and displayed  	if ($('#memberlist_search').is(':visible')) {  		$('#username').focus(); diff --git a/phpBB/styles/prosilver/template/editor.js b/phpBB/styles/prosilver/template/editor.js index c16b0ef703..93506b8d4a 100644 --- a/phpBB/styles/prosilver/template/editor.js +++ b/phpBB/styles/prosilver/template/editor.js @@ -6,22 +6,21 @@  // Startup variables  var imageTag = false;  var theSelection = false; -  var bbcodeEnabled = true; +  // Check for Browser & Platform for PC & IE specific bits  // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html  var clientPC = navigator.userAgent.toLowerCase(); // Get client info -var clientVer = parseInt(navigator.appVersion); // Get browser version +var clientVer = parseInt(navigator.appVersion, 10); // Get browser version -var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1)); -var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1)); +var is_ie = ((clientPC.indexOf('msie') !== -1) && (clientPC.indexOf('opera') === -1)); +var is_win = ((clientPC.indexOf('win') !== -1) || (clientPC.indexOf('16bit') !== -1));  var baseHeight;  /**  * Shows the help messages in the helpline window  */ -function helpline(help) -{ +function helpline(help) {  	document.forms[form_name].helpbox.value = help_line[help];  } @@ -29,28 +28,22 @@ function helpline(help)  * Fix a bug involving the TextRange object. From  * http://www.frostjedi.com/terra/scripts/demo/caretBug.html  */  -function initInsertions()  -{ +function initInsertions() {  	var doc; -	if (document.forms[form_name]) -	{ +	if (document.forms[form_name]) {  		doc = document; -	} -	else  -	{ +	} else {  		doc = opener.document;  	}  	var textarea = doc.forms[form_name].elements[text_name]; -	if (is_ie && typeof(baseHeight) != 'number') -	{ +	if (is_ie && typeof(baseHeight) !== 'number') {  		textarea.focus();  		baseHeight = doc.selection.createRange().duplicate().boundingHeight; -		if (!document.forms[form_name]) -		{ +		if (!document.forms[form_name]) {  			document.body.focus();  		}  	} @@ -59,14 +52,10 @@ function initInsertions()  /**  * bbstyle  */ -function bbstyle(bbnumber) -{	 -	if (bbnumber != -1) -	{ +function bbstyle(bbnumber) { +	if (bbnumber !== -1) {  		bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]); -	}  -	else  -	{ +	} else {  		insert_text('[*]');  		document.forms[form_name].elements[text_name].focus();  	} @@ -75,53 +64,47 @@ function bbstyle(bbnumber)  /**  * Apply bbcodes  */ -function bbfontstyle(bbopen, bbclose) -{ +function bbfontstyle(bbopen, bbclose) {  	theSelection = false;  	var textarea = document.forms[form_name].elements[text_name];  	textarea.focus(); -	if ((clientVer >= 4) && is_ie && is_win) -	{ +	if ((clientVer >= 4) && is_ie && is_win) {  		// Get text selection  		theSelection = document.selection.createRange().text; -		if (theSelection) -		{ +		if (theSelection) {  			// Add tags around selection  			document.selection.createRange().text = bbopen + theSelection + bbclose;  			document.forms[form_name].elements[text_name].focus();  			theSelection = '';  			return;  		} -	} -	else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) -	{ +	} else if (document.forms[form_name].elements[text_name].selectionEnd +			&& (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {  		mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);  		document.forms[form_name].elements[text_name].focus();  		theSelection = '';  		return;  	} -	 +  	//The new position for the cursor after adding the bbcode  	var caret_pos = getCaretPosition(textarea).start; -	var new_pos = caret_pos + bbopen.length;		 +	var new_pos = caret_pos + bbopen.length;  	// Open tag  	insert_text(bbopen + bbclose);  	// Center the cursor when we don't have a selection  	// Gecko and proper browsers -	if (!isNaN(textarea.selectionStart)) -	{ +	if (!isNaN(textarea.selectionStart)) {  		textarea.selectionStart = new_pos;  		textarea.selectionEnd = new_pos; -	}	 +	}  	// IE -	else if (document.selection) -	{ +	else if (document.selection) {  		var range = textarea.createTextRange();   		range.move("character", new_pos);   		range.select(); @@ -135,51 +118,41 @@ function bbfontstyle(bbopen, bbclose)  /**  * Insert text at position  */ -function insert_text(text, spaces, popup) -{ +function insert_text(text, spaces, popup) {  	var textarea; -	 -	if (!popup)  -	{ + +	if (!popup) {  		textarea = document.forms[form_name].elements[text_name]; -	}  -	else  -	{ +	} else {  		textarea = opener.document.forms[form_name].elements[text_name];  	} -	if (spaces)  -	{ + +	if (spaces) {  		text = ' ' + text + ' ';  	}  	// Since IE9, IE also has textarea.selectionStart, but it still needs to be treated the old way.  	// Therefore we simply add a !is_ie here until IE fixes the text-selection completely. -	if (!isNaN(textarea.selectionStart) && !is_ie) -	{ +	if (!isNaN(textarea.selectionStart) && !is_ie) {  		var sel_start = textarea.selectionStart;  		var sel_end = textarea.selectionEnd;  		mozWrap(textarea, text, '');  		textarea.selectionStart = sel_start + text.length;  		textarea.selectionEnd = sel_end + text.length; -	} -	else if (textarea.createTextRange && textarea.caretPos) -	{ -		if (baseHeight != textarea.caretPos.boundingHeight)  -		{ +	} else if (textarea.createTextRange && textarea.caretPos) { +		if (baseHeight !== textarea.caretPos.boundingHeight) {  			textarea.focus();  			storeCaret(textarea);  		}  		var caret_pos = textarea.caretPos; -		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; -	} -	else -	{ +		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) === ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; +	} else {  		textarea.value = textarea.value + text;  	} -	if (!popup)  -	{ + +	if (!popup) {  		textarea.focus();  	}  } @@ -187,8 +160,7 @@ function insert_text(text, spaces, popup)  /**  * Add inline attachment at position  */ -function attach_inline(index, filename) -{ +function attach_inline(index, filename) {  	insert_text('[attachment=' + index + ']' + filename + '[/attachment]');  	document.forms[form_name].elements[text_name].focus();  } @@ -196,79 +168,57 @@ function attach_inline(index, filename)  /**  * Add quote text to message  */ -function addquote(post_id, username, l_wrote) -{ +function addquote(post_id, username, l_wrote) {  	var message_name = 'message_' + post_id;  	var theSelection = '';  	var divarea = false; +	var i; -	if (l_wrote === undefined) -	{ +	if (l_wrote === undefined) {  		// Backwards compatibility  		l_wrote = 'wrote';  	} -	if (document.all) -	{ +	if (document.all) {  		divarea = document.all[message_name]; -	} -	else -	{ +	} else {  		divarea = document.getElementById(message_name);  	}  	// Get text selection - not only the post content :(  	// IE9 must use the document.selection method but has the *.getSelection so we just force no IE -	if (window.getSelection && !is_ie && !window.opera) -	{ +	if (window.getSelection && !is_ie && !window.opera) {  		theSelection = window.getSelection().toString(); -	} -	else if (document.getSelection && !is_ie) -	{ +	} else if (document.getSelection && !is_ie) {  		theSelection = document.getSelection(); -	} -	else if (document.selection) -	{ +	} else if (document.selection) {  		theSelection = document.selection.createRange().text;  	} -	if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null) -	{ -		if (divarea.innerHTML) -		{ +	if (theSelection === '' || typeof theSelection === 'undefined' || theSelection === null) { +		if (divarea.innerHTML) {  			theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');  			theSelection = theSelection.replace(/<br\/>/ig, '\n');  			theSelection = theSelection.replace(/<\;/ig, '<');  			theSelection = theSelection.replace(/>\;/ig, '>');  			theSelection = theSelection.replace(/&\;/ig, '&');  			theSelection = theSelection.replace(/ \;/ig, ' '); -		} -		else if (document.all) -		{ +		} else if (document.all) {  			theSelection = divarea.innerText; -		} -		else if (divarea.textContent) -		{ +		} else if (divarea.textContent) {  			theSelection = divarea.textContent; -		} -		else if (divarea.firstChild.nodeValue) -		{ +		} else if (divarea.firstChild.nodeValue) {  			theSelection = divarea.firstChild.nodeValue;  		}  	} -	if (theSelection) -	{ -		if (bbcodeEnabled) -		{ +	if (theSelection) { +		if (bbcodeEnabled) {  			insert_text('[quote="' + username + '"]' + theSelection + '[/quote]'); -		} -		else -		{ +		} else {  			insert_text(username + ' ' + l_wrote + ':' + '\n');  			var lines = split_lines(theSelection); -			for (i = 0; i < lines.length; i++) -			{ +			for (i = 0; i < lines.length; i++) {  				insert_text('> ' + lines[i] + '\n');  			}  		} @@ -277,54 +227,47 @@ function addquote(post_id, username, l_wrote)  	return;  } -function split_lines(text) -{ +function split_lines(text) {  	var lines = text.split('\n');  	var splitLines = new Array();  	var j = 0; -	for(i = 0; i < lines.length; i++) -	{ -		if (lines[i].length <= 80) -		{ +	var i; + +	for(i = 0; i < lines.length; i++) { +		if (lines[i].length <= 80) {  			splitLines[j] = lines[i];  			j++; -		} -		else -		{ +		} else {  			var line = lines[i]; -			do -			{ -				var splitAt = line.indexOf(' ', 80); -				 -				if (splitAt == -1) -				{ +			var splitAt; +			do { +				splitAt = line.indexOf(' ', 80); + +				if (splitAt === -1) {  					splitLines[j] = line;  					j++; -				} -				else -				{ +				} else {  					splitLines[j] = line.substring(0, splitAt);  					line = line.substring(splitAt);  					j++;  				}  			} -			while(splitAt != -1); +			while(splitAt !== -1);  		}  	}  	return splitLines;  } +  /**  * From http://www.massless.org/mozedit/  */ -function mozWrap(txtarea, open, close) -{ -	var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength; +function mozWrap(txtarea, open, close) { +	var selLength = (typeof(txtarea.textLength) === 'undefined') ? txtarea.value.length : txtarea.textLength;  	var selStart = txtarea.selectionStart;  	var selEnd = txtarea.selectionEnd;  	var scrollTop = txtarea.scrollTop; -	if (selEnd == 1 || selEnd == 2)  -	{ +	if (selEnd === 1 || selEnd === 2) {  		selEnd = selLength;  	} @@ -345,10 +288,8 @@ function mozWrap(txtarea, open, close)  * Insert at Caret position. Code from  * http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130  */ -function storeCaret(textEl) -{ -	if (textEl.createTextRange) -	{ +function storeCaret(textEl) { +	if (textEl.createTextRange) {  		textEl.caretPos = document.selection.createRange().duplicate();  	}  } @@ -356,8 +297,7 @@ function storeCaret(textEl)  /**  * Color pallette  */ -function colorPalette(dir, width, height) -{ +function colorPalette(dir, width, height) {  	var r = 0, g = 0, b = 0;  	var numberList = new Array(6);  	var color = ''; @@ -370,89 +310,74 @@ function colorPalette(dir, width, height)  	document.writeln('<table cellspacing="1" cellpadding="0" border="0">'); -	for (r = 0; r < 5; r++) -	{ -		if (dir == 'h') -		{ +	for (r = 0; r < 5; r++) { +		if (dir === 'h') {  			document.writeln('<tr>');  		} -		for (g = 0; g < 5; g++) -		{ -			if (dir == 'v') -			{ +		for (g = 0; g < 5; g++) { +			if (dir === 'v') {  				document.writeln('<tr>');  			} -			 -			for (b = 0; b < 5; b++) -			{ + +			for (b = 0; b < 5; b++) {  				color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);  				document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');  				document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');  				document.writeln('</td>');  			} -			if (dir == 'v') -			{ +			if (dir === 'v') {  				document.writeln('</tr>');  			}  		} -		if (dir == 'h') -		{ +		if (dir === 'h') {  			document.writeln('</tr>');  		}  	}  	document.writeln('</table>');  } -  /**  * Caret Position object  */ -function caretPosition() -{ +function caretPosition() {  	var start = null;  	var end = null;  } -  /**  * Get the caret position in an textarea  */ -function getCaretPosition(txtarea) -{ +function getCaretPosition(txtarea) {  	var caretPos = new caretPosition(); -	 +  	// simple Gecko/Opera way -	if(txtarea.selectionStart || txtarea.selectionStart == 0) -	{ +	if (txtarea.selectionStart || txtarea.selectionStart === 0) {  		caretPos.start = txtarea.selectionStart;  		caretPos.end = txtarea.selectionEnd;  	}  	// dirty and slow IE way -	else if(document.selection) -	{ -	 +	else if (document.selection) {  		// get current selection  		var range = document.selection.createRange();  		// a new selection of the whole textarea  		var range_all = document.body.createTextRange();  		range_all.moveToElementText(txtarea); -		 +  		// calculate selection start point by moving beginning of range_all to beginning of range  		var sel_start; -		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) -		{		 +		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) {  			range_all.moveStart('character', 1);  		} -	 +  		txtarea.sel_start = sel_start; -	 +  		// we ignore the end value for IE, this is already dirty enough and we don't need it  		caretPos.start = txtarea.sel_start; -		caretPos.end = txtarea.sel_start;			 +		caretPos.end = txtarea.sel_start;  	}  	return caretPos; diff --git a/phpBB/styles/prosilver/template/forum_fn.js b/phpBB/styles/prosilver/template/forum_fn.js index 995b4b0ab7..19fe5ca4d2 100644 --- a/phpBB/styles/prosilver/template/forum_fn.js +++ b/phpBB/styles/prosilver/template/forum_fn.js @@ -5,10 +5,8 @@  /**  * Window popup  */ -function popup(url, width, height, name) -{ -	if (!name) -	{ +function popup(url, width, height, name) { +	if (!name) {  		name = '_popup';  	} @@ -19,18 +17,13 @@ function popup(url, width, height, name)  /**  * Jump to page  */ -function jumpto() -{ +function jumpto() {  	var page = prompt(jump_page, on_page); -	if (page !== null && !isNaN(page) && page == Math.floor(page) && page > 0) -	{ -		if (base_url.indexOf('?') == -1) -		{ +	if (page !== null && !isNaN(page) && page === Math.floor(page) && page > 0) { +		if (base_url.indexOf('?') === -1) {  			document.location.href = base_url + '?start=' + ((page - 1) * per_page); -		} -		else -		{ +		} else {  			document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * per_page);  		}  	} @@ -40,21 +33,17 @@ function jumpto()  * Mark/unmark checklist  * id = ID of parent container, name = name prefix, state = state [true/false]  */ -function marklist(id, name, state) -{ +function marklist(id, name, state) {  	var parent = document.getElementById(id) || document[id]; -	if (!parent) -	{ +	if (!parent) {  		return;  	}  	var rb = parent.getElementsByTagName('input'); -	 -	for (var r = 0; r < rb.length; r++) -	{	 -		if (rb[r].name.substr(0, name.length) == name) -		{ + +	for (var r = 0; r < rb.length; r++) { +		if (rb[r].name.substr(0, name.length) === name) {  			rb[r].checked = state;  		}  	} @@ -64,25 +53,23 @@ function marklist(id, name, state)  * Resize viewable area for attached image or topic review panel (possibly others to come)  * e = element  */ -function viewableArea(e, itself) -{ -	if (!e) return; -	if (!itself) -	{ +function viewableArea(e, itself) { +	if (!e) { +		return; +	} + +	if (!itself) {  		e = e.parentNode;  	} -	 -	if (!e.vaHeight) -	{ + +	if (!e.vaHeight) {  		// Store viewable area height before changing style to auto  		e.vaHeight = e.offsetHeight;  		e.vaMaxHeight = e.style.maxHeight;  		e.style.height = 'auto';  		e.style.maxHeight = 'none';  		e.style.overflow = 'visible'; -	} -	else -	{ +	} else {  		// Restore viewable area height to the default  		e.style.height = e.vaHeight + 'px';  		e.style.overflow = 'auto'; @@ -96,53 +83,41 @@ function viewableArea(e, itself)  * s[-1,0,1] = hide,toggle display,show  * type = string: inline, block, inline-block or other CSS "display" type  */ -function dE(n, s, type) -{ -	if (!type) -	{ +function dE(n, s, type) { +	if (!type) {  		type = 'block';  	}  	var e = document.getElementById(n); -	if (!s) -	{ -		s = (e.style.display == '' || e.style.display == type) ? -1 : 1; +	if (!s) { +		s = (e.style.display === '' || e.style.display === type) ? -1 : 1;  	} -	e.style.display = (s == 1) ? type : 'none'; +	e.style.display = (s === 1) ? type : 'none';  }  /**  * Alternate display of subPanels  */ -function subPanels(p) -{ +function subPanels(p) {  	var i, e, t; -	if (typeof(p) == 'string') -	{ +	if (typeof(p) === 'string') {  		show_panel = p;  	} -	for (i = 0; i < panels.length; i++) -	{ +	for (i = 0; i < panels.length; i++) {  		e = document.getElementById(panels[i]);  		t = document.getElementById(panels[i] + '-tab'); -		if (e) -		{ -			if (panels[i] == show_panel) -			{ +		if (e) { +			if (panels[i] === show_panel) {  				e.style.display = 'block'; -				if (t) -				{ +				if (t) {  					t.className = 'activetab';  				} -			} -			else -			{ +			} else {  				e.style.display = 'none'; -				if (t) -				{ +				if (t) {  					t.className = '';  				}  			} @@ -153,14 +128,10 @@ function subPanels(p)  /**  * Call print preview  */ -function printPage() -{ -	if (is_ie) -	{ +function printPage() { +	if (is_ie) {  		printPreview(); -	} -	else -	{ +	} else {  		window.print();  	}  } @@ -169,70 +140,60 @@ function printPage()  * Show/hide groups of blocks  * c = CSS style name  * e = checkbox element -* t = toggle dispay state (used to show 'grip-show' image in the profile block when hiding the profiles)  +* t = toggle dispay state (used to show 'grip-show' image in the profile block when hiding the profiles)  */ -function displayBlocks(c, e, t) -{ -	var s = (e.checked == true) ?  1 : -1; +function displayBlocks(c, e, t) { +	var s = (e.checked === true) ?  1 : -1; -	if (t) -	{ +	if (t) {  		s *= -1;  	}  	var divs = document.getElementsByTagName("DIV"); -	for (var d = 0; d < divs.length; d++) -	{ -		if (divs[d].className.indexOf(c) == 0) -		{ -			divs[d].style.display = (s == 1) ? 'none' : 'block'; +	for (var d = 0; d < divs.length; d++) { +		if (divs[d].className.indexOf(c) === 0) { +			divs[d].style.display = (s === 1) ? 'none' : 'block';  		}  	}  } -function selectCode(a) -{ +function selectCode(a) {  	// Get ID of code block  	var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0]; +	var s, r;  	// Not IE and IE9+ -	if (window.getSelection) -	{ -		var s = window.getSelection(); +	if (window.getSelection) { +		s = window.getSelection();  		// Safari -		if (s.setBaseAndExtent) -		{ +		if (s.setBaseAndExtent) {  			s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);  		}  		// Firefox and Opera -		else -		{ +		else {  			// workaround for bug # 42885 -			if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) == '<BR>') -			{ +			if (window.opera && e.innerHTML.substring(e.innerHTML.length - 4) === '<BR>') {  				e.innerHTML = e.innerHTML + ' ';  			} -			var r = document.createRange(); +			r = document.createRange();  			r.selectNodeContents(e);  			s.removeAllRanges();  			s.addRange(r);  		}  	}  	// Some older browsers -	else if (document.getSelection) -	{ -		var s = document.getSelection(); -		var r = document.createRange(); +	else if (document.getSelection) { +		s = document.getSelection(); +		r = document.createRange();  		r.selectNodeContents(e);  		s.removeAllRanges();  		s.addRange(r);  	}  	// IE -	else if (document.selection) -	{ -		var r = document.body.createTextRange(); +	else if (document.selection) { +		r = document.body.createTextRange();  		r.moveToElementText(e);  		r.select();  	} @@ -242,25 +203,22 @@ function selectCode(a)  * Play quicktime file by determining it's width/height  * from the displayed rectangle area  */ -function play_qt_file(obj) -{ +function play_qt_file(obj) {  	var rectangle = obj.GetRectangle(); +	var width, height; -	if (rectangle) -	{ +	if (rectangle) {  		rectangle = rectangle.split(','); -		var x1 = parseInt(rectangle[0]); -		var x2 = parseInt(rectangle[2]); -		var y1 = parseInt(rectangle[1]); -		var y2 = parseInt(rectangle[3]); - -		var width = (x1 < 0) ? (x1 * -1) + x2 : x2 - x1; -		var height = (y1 < 0) ? (y1 * -1) + y2 : y2 - y1; -	} -	else -	{ -		var width = 200; -		var height = 0; +		var x1 = parseInt(rectangle[0], 10); +		var x2 = parseInt(rectangle[2], 10); +		var y1 = parseInt(rectangle[1], 10); +		var y2 = parseInt(rectangle[3], 10); + +		width = (x1 < 0) ? (x1 * -1) + x2 : x2 - x1; +		height = (y1 < 0) ? (y1 * -1) + y2 : y2 - y1; +	} else { +		width = 200; +		height = 0;  	}  	obj.width = width; @@ -274,21 +232,21 @@ function play_qt_file(obj)  * Check if the nodeName of elem is name  * @author jQuery  */ -function is_node_name(elem, name) -{ -	return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); +function is_node_name(elem, name) { +	return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();  }  /**  * Check if elem is in array, return position  * @author jQuery  */ -function is_in_array(elem, array) -{ -	for (var i = 0, length = array.length; i < length; i++) +function is_in_array(elem, array) { +	for (var i = 0, length = array.length; i < length; i++) {  		// === is correct (IE) -		if (array[i] === elem) +		if (array[i] === elem) {  			return i; +		} +	}  	return -1;  } @@ -298,23 +256,26 @@ function is_in_array(elem, array)  * Not used, but may come in handy for those not using JQuery  * @author jQuery.find, Meik Sievertsen  */ -function find_in_tree(node, tag, type, class_name) -{ +function find_in_tree(node, tag, type, class_name) {  	var result, element, i = 0, length = node.childNodes.length; -	for (element = node.childNodes[0]; i < length; element = node.childNodes[++i]) -	{ -		if (!element || element.nodeType != 1) continue; +	for (element = node.childNodes[0]; i < length; element = node.childNodes[++i]) { +		if (!element || element.nodeType !== 1) { +			continue; +		} -		if ((!tag || is_node_name(element, tag)) && (!type || element.type == type) && (!class_name || is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1)) -		{ +		if ((!tag || is_node_name(element, tag)) && (!type || element.type === type) +				&& (!class_name || is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1)) {  			return element;  		} -		if (element.childNodes.length) +		if (element.childNodes.length) {  			result = find_in_tree(element, tag, type, class_name); +		} -		if (result) return result; +		if (result) { +			return result; +		}  	}  } @@ -324,26 +285,23 @@ var last_key_entered = '';  /**  * Check event key  */ -function phpbb_check_key(event) -{ +function phpbb_check_key(event) {  	// Keycode is array down or up? -	if (event.keyCode && (event.keyCode == 40 || event.keyCode == 38)) +	if (event.keyCode && (event.keyCode === 40 || event.keyCode === 38)) {  		in_autocomplete = true; +	}  	// Make sure we are not within an "autocompletion" field -	if (in_autocomplete) -	{ +	if (in_autocomplete) {  		// If return pressed and key changed we reset the autocompletion -		if (!last_key_entered || last_key_entered == event.which) -		{ +		if (!last_key_entered || last_key_entered === event.which) {  			in_autocompletion = false;  			return true;  		}  	}  	// Keycode is not return, then return. ;) -	if (event.which != 13) -	{ +	if (event.which !== 13) {  		last_key_entered = event.which;  		return true;  	} @@ -354,34 +312,37 @@ function phpbb_check_key(event)  /**  * Usually used for onkeypress event, to submit a form on enter  */ -function submit_default_button(event, selector, class_name) -{ +function submit_default_button(event, selector, class_name) {  	// Add which for key events -	if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) +	if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) {  		event.which = event.charCode || event.keyCode; +	} -	if (phpbb_check_key(event)) +	if (phpbb_check_key(event)) {  		return true; +	} -	var current = selector['parentNode']; +	var current = selector.parentNode;  	// Search parent form element -	while (current && (!current.nodeName || current.nodeType != 1 || !is_node_name(current, 'form')) && current != document) -		current = current['parentNode']; +	while (current && (!current.nodeName || current.nodeType !== 1 || !is_node_name(current, 'form')) && current !== document) { +		current = current.parentNode; +	}  	// Find the input submit button with the class name  	//current = find_in_tree(current, 'input', 'submit', class_name);  	var input_tags = current.getElementsByTagName('input');  	current = false; -	for (var i = 0, element = input_tags[0]; i < input_tags.length; element = input_tags[++i]) -	{ -		if (element.type == 'submit' && is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1) +	for (var i = 0, element = input_tags[0]; i < input_tags.length; element = input_tags[++i]) { +		if (element.type === 'submit' && is_in_array(class_name, (element.className || element).toString().split(/\s+/)) > -1) {  			current = element; +		}  	} -	if (!current) +	if (!current) {  		return true; +	}  	// Submit form  	current.focus(); @@ -394,39 +355,35 @@ function submit_default_button(event, selector, class_name)  * The jQuery snippet used is based on http://greatwebguy.com/programming/dom/default-html-button-submit-on-enter-with-jquery/  * The non-jQuery code is a mimick of the jQuery code ;)  */ -function apply_onkeypress_event() -{ +function apply_onkeypress_event() {  	// jQuery code in case jQuery is used -	if (jquery_present) -	{ -		jQuery('form input[type=text], form input[type=password]').live('keypress', function (e) -		{ +	if (jquery_present) { +		jQuery('form input[type=text], form input[type=password]').live('keypress', function (e) {  			var default_button = jQuery(this).parents('form').find('input[type=submit].default-submit-action'); -			 -			if (!default_button || default_button.length <= 0) + +			if (!default_button || default_button.length <= 0) {  				return true; +			} -			if (phpbb_check_key(e)) +			if (phpbb_check_key(e)) {  				return true; +			} -			if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) -			{ +			if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) {  				default_button.click();  				return false;  			}  			return true;  		}); -	 +  		return;  	}  	var input_tags = document.getElementsByTagName('input'); -	for (var i = 0, element = input_tags[0]; i < input_tags.length ; element = input_tags[++i]) -	{ -		if (element.type == 'text' || element.type == 'password') -		{ +	for (var i = 0, element = input_tags[0]; i < input_tags.length ; element = input_tags[++i]) { +		if (element.type === 'text' || element.type === 'password') {  			// onkeydown is possible too  			element.onkeypress = function (evt) { submit_default_button((evt || window.event), this, 'default-submit-action'); };  		} @@ -436,4 +393,4 @@ function apply_onkeypress_event()  /**  * Detect JQuery existance. We currently do not deliver it, but some styles do, so why not benefit from it. ;)  */ -var jquery_present = typeof jQuery == 'function'; +var jquery_present = typeof jQuery === 'function'; diff --git a/phpBB/styles/prosilver/template/timezone.js b/phpBB/styles/prosilver/template/timezone.js index 5e81a0bfdf..e0d3da9ff7 100644 --- a/phpBB/styles/prosilver/template/timezone.js +++ b/phpBB/styles/prosilver/template/timezone.js @@ -1,5 +1,7 @@  (function($) { // Avoid conflicts with other libraries +"use strict"; +  $('#tz_date').change(function() {  	phpbb.timezoneSwitchDate(false);  }); @@ -13,7 +15,7 @@ $(document).ready(  );  $(document).ready( -	phpbb.timezonePreselectSelect($('#tz_select_date_suggest').attr('timezone-preselect') == 'true') +	phpbb.timezonePreselectSelect($('#tz_select_date_suggest').attr('timezone-preselect') === 'true')  );  })(jQuery); // Avoid conflicts with other libraries diff --git a/phpBB/styles/subsilver2/template/editor.js b/phpBB/styles/subsilver2/template/editor.js index 151cf53ff1..93506b8d4a 100644 --- a/phpBB/styles/subsilver2/template/editor.js +++ b/phpBB/styles/subsilver2/template/editor.js @@ -11,18 +11,16 @@ var bbcodeEnabled = true;  // Check for Browser & Platform for PC & IE specific bits  // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html  var clientPC = navigator.userAgent.toLowerCase(); // Get client info -var clientVer = parseInt(navigator.appVersion); // Get browser version - -var is_ie = ((clientPC.indexOf('msie') != -1) && (clientPC.indexOf('opera') == -1)); -var is_win = ((clientPC.indexOf('win') != -1) || (clientPC.indexOf('16bit') != -1)); +var clientVer = parseInt(navigator.appVersion, 10); // Get browser version +var is_ie = ((clientPC.indexOf('msie') !== -1) && (clientPC.indexOf('opera') === -1)); +var is_win = ((clientPC.indexOf('win') !== -1) || (clientPC.indexOf('16bit') !== -1));  var baseHeight;  /**  * Shows the help messages in the helpline window  */ -function helpline(help) -{ +function helpline(help) {  	document.forms[form_name].helpbox.value = help_line[help];  } @@ -30,27 +28,22 @@ function helpline(help)  * Fix a bug involving the TextRange object. From  * http://www.frostjedi.com/terra/scripts/demo/caretBug.html  */  -function initInsertions()  -{ +function initInsertions() {  	var doc; -	if (document.forms[form_name]) -	{ +	if (document.forms[form_name]) {  		doc = document; -	} -	else  -	{ +	} else {  		doc = opener.document;  	}  	var textarea = doc.forms[form_name].elements[text_name]; -	if (is_ie && typeof(baseHeight) != 'number') -	{	 + +	if (is_ie && typeof(baseHeight) !== 'number') {  		textarea.focus();  		baseHeight = doc.selection.createRange().duplicate().boundingHeight; -		if (!document.forms[form_name]) -		{ +		if (!document.forms[form_name]) {  			document.body.focus();  		}  	} @@ -59,14 +52,10 @@ function initInsertions()  /**  * bbstyle  */ -function bbstyle(bbnumber) -{	 -	if (bbnumber != -1) -	{ +function bbstyle(bbnumber) { +	if (bbnumber !== -1) {  		bbfontstyle(bbtags[bbnumber], bbtags[bbnumber+1]); -	}  -	else  -	{ +	} else {  		insert_text('[*]');  		document.forms[form_name].elements[text_name].focus();  	} @@ -75,36 +64,32 @@ function bbstyle(bbnumber)  /**  * Apply bbcodes  */ -function bbfontstyle(bbopen, bbclose) -{ +function bbfontstyle(bbopen, bbclose) {  	theSelection = false; -		 +  	var textarea = document.forms[form_name].elements[text_name];  	textarea.focus(); -	if ((clientVer >= 4) && is_ie && is_win) -	{ +	if ((clientVer >= 4) && is_ie && is_win) {  		// Get text selection  		theSelection = document.selection.createRange().text; -		if (theSelection) -		{ +		if (theSelection) {  			// Add tags around selection  			document.selection.createRange().text = bbopen + theSelection + bbclose;  			document.forms[form_name].elements[text_name].focus();  			theSelection = '';  			return;  		} -	} -	else if (document.forms[form_name].elements[text_name].selectionEnd && (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) -	{ +	} else if (document.forms[form_name].elements[text_name].selectionEnd +			&& (document.forms[form_name].elements[text_name].selectionEnd - document.forms[form_name].elements[text_name].selectionStart > 0)) {  		mozWrap(document.forms[form_name].elements[text_name], bbopen, bbclose);  		document.forms[form_name].elements[text_name].focus();  		theSelection = '';  		return;  	} -	 +  	//The new position for the cursor after adding the bbcode  	var caret_pos = getCaretPosition(textarea).start;  	var new_pos = caret_pos + bbopen.length; @@ -114,14 +99,12 @@ function bbfontstyle(bbopen, bbclose)  	// Center the cursor when we don't have a selection  	// Gecko and proper browsers -	if (!isNaN(textarea.selectionStart)) -	{ +	if (!isNaN(textarea.selectionStart)) {  		textarea.selectionStart = new_pos;  		textarea.selectionEnd = new_pos; -	}	 +	}  	// IE -	else if (document.selection) -	{ +	else if (document.selection) {  		var range = textarea.createTextRange();   		range.move("character", new_pos);   		range.select(); @@ -135,62 +118,49 @@ function bbfontstyle(bbopen, bbclose)  /**  * Insert text at position  */ -function insert_text(text, spaces, popup) -{ +function insert_text(text, spaces, popup) {  	var textarea; -	 -	if (!popup)  -	{ + +	if (!popup) {  		textarea = document.forms[form_name].elements[text_name]; -	}  -	else  -	{ +	} else {  		textarea = opener.document.forms[form_name].elements[text_name];  	} -	if (spaces)  -	{ + +	if (spaces) {  		text = ' ' + text + ' ';  	}  	// Since IE9, IE also has textarea.selectionStart, but it still needs to be treated the old way.  	// Therefore we simply add a !is_ie here until IE fixes the text-selection completely. -	if (!isNaN(textarea.selectionStart) && !is_ie) -	{ +	if (!isNaN(textarea.selectionStart) && !is_ie) {  		var sel_start = textarea.selectionStart;  		var sel_end = textarea.selectionEnd;  		mozWrap(textarea, text, '');  		textarea.selectionStart = sel_start + text.length;  		textarea.selectionEnd = sel_end + text.length; -	}	 -	 -	else if (textarea.createTextRange && textarea.caretPos) -	{ -		if (baseHeight != textarea.caretPos.boundingHeight)  -		{ +	} else if (textarea.createTextRange && textarea.caretPos) { +		if (baseHeight !== textarea.caretPos.boundingHeight) {  			textarea.focus();  			storeCaret(textarea); -		}		 +		} +  		var caret_pos = textarea.caretPos; -		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; -		 -	} -	else -	{ +		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) === ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text; +	} else {  		textarea.value = textarea.value + text;  	} -	if (!popup)  -	{ -		textarea.focus(); -	} 	 +	if (!popup) { +		textarea.focus(); +	}  }  /**  * Add inline attachment at position  */ -function attach_inline(index, filename) -{ +function attach_inline(index, filename) {  	insert_text('[attachment=' + index + ']' + filename + '[/attachment]');  	document.forms[form_name].elements[text_name].focus();  } @@ -198,79 +168,57 @@ function attach_inline(index, filename)  /**  * Add quote text to message  */ -function addquote(post_id, username, l_wrote) -{ +function addquote(post_id, username, l_wrote) {  	var message_name = 'message_' + post_id;  	var theSelection = '';  	var divarea = false; +	var i; -	if (l_wrote === undefined) -	{ +	if (l_wrote === undefined) {  		// Backwards compatibility  		l_wrote = 'wrote';  	} -	if (document.all) -	{ +	if (document.all) {  		divarea = document.all[message_name]; -	} -	else -	{ +	} else {  		divarea = document.getElementById(message_name);  	}  	// Get text selection - not only the post content :(  	// IE9 must use the document.selection method but has the *.getSelection so we just force no IE -	if (window.getSelection && !is_ie && !window.opera) -	{ +	if (window.getSelection && !is_ie && !window.opera) {  		theSelection = window.getSelection().toString(); -	} -	else if (document.getSelection && !is_ie) -	{ +	} else if (document.getSelection && !is_ie) {  		theSelection = document.getSelection(); -	} -	else if (document.selection) -	{ +	} else if (document.selection) {  		theSelection = document.selection.createRange().text;  	} -	if (theSelection == '' || typeof theSelection == 'undefined' || theSelection == null) -	{ -		if (divarea.innerHTML) -		{ +	if (theSelection === '' || typeof theSelection === 'undefined' || theSelection === null) { +		if (divarea.innerHTML) {  			theSelection = divarea.innerHTML.replace(/<br>/ig, '\n');  			theSelection = theSelection.replace(/<br\/>/ig, '\n');  			theSelection = theSelection.replace(/<\;/ig, '<');  			theSelection = theSelection.replace(/>\;/ig, '>');  			theSelection = theSelection.replace(/&\;/ig, '&');  			theSelection = theSelection.replace(/ \;/ig, ' '); -		} -		else if (document.all) -		{ +		} else if (document.all) {  			theSelection = divarea.innerText; -		} -		else if (divarea.textContent) -		{ +		} else if (divarea.textContent) {  			theSelection = divarea.textContent; -		} -		else if (divarea.firstChild.nodeValue) -		{ +		} else if (divarea.firstChild.nodeValue) {  			theSelection = divarea.firstChild.nodeValue;  		}  	} -	if (theSelection) -	{ -		if (bbcodeEnabled) -		{ +	if (theSelection) { +		if (bbcodeEnabled) {  			insert_text('[quote="' + username + '"]' + theSelection + '[/quote]'); -		} -		else -		{ +		} else {  			insert_text(username + ' ' + l_wrote + ':' + '\n');  			var lines = split_lines(theSelection); -			for (i = 0; i < lines.length; i++) -			{ +			for (i = 0; i < lines.length; i++) {  				insert_text('> ' + lines[i] + '\n');  			}  		} @@ -279,39 +227,32 @@ function addquote(post_id, username, l_wrote)  	return;  } - -function split_lines(text) -{ +function split_lines(text) {  	var lines = text.split('\n');  	var splitLines = new Array();  	var j = 0; -	for(i = 0; i < lines.length; i++) -	{ -		if (lines[i].length <= 80) -		{ +	var i; + +	for(i = 0; i < lines.length; i++) { +		if (lines[i].length <= 80) {  			splitLines[j] = lines[i];  			j++; -		} -		else -		{ +		} else {  			var line = lines[i]; -			do -			{ -				var splitAt = line.indexOf(' ', 80); -				 -				if (splitAt == -1) -				{ +			var splitAt; +			do { +				splitAt = line.indexOf(' ', 80); + +				if (splitAt === -1) {  					splitLines[j] = line;  					j++; -				} -				else -				{ +				} else {  					splitLines[j] = line.substring(0, splitAt);  					line = line.substring(splitAt);  					j++;  				}  			} -			while(splitAt != -1); +			while(splitAt !== -1);  		}  	}  	return splitLines; @@ -320,15 +261,13 @@ function split_lines(text)  /**  * From http://www.massless.org/mozedit/  */ -function mozWrap(txtarea, open, close) -{ -	var selLength = (typeof(txtarea.textLength) == 'undefined') ? txtarea.value.length : txtarea.textLength; +function mozWrap(txtarea, open, close) { +	var selLength = (typeof(txtarea.textLength) === 'undefined') ? txtarea.value.length : txtarea.textLength;  	var selStart = txtarea.selectionStart;  	var selEnd = txtarea.selectionEnd;  	var scrollTop = txtarea.scrollTop; -	if (selEnd == 1 || selEnd == 2)  -	{ +	if (selEnd === 1 || selEnd === 2) {  		selEnd = selLength;  	} @@ -349,10 +288,8 @@ function mozWrap(txtarea, open, close)  * Insert at Caret position. Code from  * http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130  */ -function storeCaret(textEl) -{ -	if (textEl.createTextRange) -	{ +function storeCaret(textEl) { +	if (textEl.createTextRange) {  		textEl.caretPos = document.selection.createRange().duplicate();  	}  } @@ -360,8 +297,7 @@ function storeCaret(textEl)  /**  * Color pallette  */ -function colorPalette(dir, width, height) -{ +function colorPalette(dir, width, height) {  	var r = 0, g = 0, b = 0;  	var numberList = new Array(6);  	var color = ''; @@ -374,85 +310,71 @@ function colorPalette(dir, width, height)  	document.writeln('<table cellspacing="1" cellpadding="0" border="0">'); -	for (r = 0; r < 5; r++) -	{ -		if (dir == 'h') -		{ +	for (r = 0; r < 5; r++) { +		if (dir === 'h') {  			document.writeln('<tr>');  		} -		for (g = 0; g < 5; g++) -		{ -			if (dir == 'v') -			{ +		for (g = 0; g < 5; g++) { +			if (dir === 'v') {  				document.writeln('<tr>');  			} -			 -			for (b = 0; b < 5; b++) -			{ + +			for (b = 0; b < 5; b++) {  				color = String(numberList[r]) + String(numberList[g]) + String(numberList[b]);  				document.write('<td bgcolor="#' + color + '" style="width: ' + width + 'px; height: ' + height + 'px;">');  				document.write('<a href="#" onclick="bbfontstyle(\'[color=#' + color + ']\', \'[/color]\'); return false;"><img src="images/spacer.gif" width="' + width + '" height="' + height + '" alt="#' + color + '" title="#' + color + '" /></a>');  				document.writeln('</td>');  			} -			if (dir == 'v') -			{ +			if (dir === 'v') {  				document.writeln('</tr>');  			}  		} -		if (dir == 'h') -		{ +		if (dir === 'h') {  			document.writeln('</tr>');  		}  	}  	document.writeln('</table>');  } -  /**  * Caret Position object  */ -function caretPosition() -{ +function caretPosition() {  	var start = null;  	var end = null;  } -  /**  * Get the caret position in an textarea  */ -function getCaretPosition(txtarea) -{ +function getCaretPosition(txtarea) {  	var caretPos = new caretPosition(); -	 +  	// simple Gecko/Opera way -	if(txtarea.selectionStart || txtarea.selectionStart == 0) -	{ +	if (txtarea.selectionStart || txtarea.selectionStart === 0) {  		caretPos.start = txtarea.selectionStart;  		caretPos.end = txtarea.selectionEnd;  	}  	// dirty and slow IE way -	else if(document.selection) -	{ +	else if (document.selection) {  		// get current selection  		var range = document.selection.createRange();  		// a new selection of the whole textarea  		var range_all = document.body.createTextRange();  		range_all.moveToElementText(txtarea); -		 +  		// calculate selection start point by moving beginning of range_all to beginning of range  		var sel_start; -		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) -		{		 +		for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++) {  			range_all.moveStart('character', 1);  		} -	 +  		txtarea.sel_start = sel_start; -	 +  		// we ignore the end value for IE, this is already dirty enough and we don't need it  		caretPos.start = txtarea.sel_start;  		caretPos.end = txtarea.sel_start; diff --git a/phpBB/styles/subsilver2/template/mcp_jumpbox.html b/phpBB/styles/subsilver2/template/mcp_jumpbox.html deleted file mode 100644 index e6ef4ecdad..0000000000 --- a/phpBB/styles/subsilver2/template/mcp_jumpbox.html +++ /dev/null @@ -1,19 +0,0 @@ -<!-- Note: no longer in use... --> - -<form name="jumpbox" method="get" action="{S_JUMPBOX_ACTION}"> - -	{HIDDEN_FIELDS_FOR_JUMPBOX} -	<span class="gensmall">{L_JUMP_TO}{L_COLON}</span> <select name="f" onChange="if(this.options[this.selectedIndex].value != -1 && this.options[this.selectedIndex].value != document.jumpbox.current_f.value){ document.forms['jumpbox'].submit() }"> - -<!-- IF S_ENABLE_SELECT_ALL --> -	<option value="0">{L_ALL_FORUMS}</option> -<!-- ELSE --> -	<option value="-1">{L_SELECT_FORUM}</option> -<!-- ENDIF --> - -<!-- BEGIN options --> -	<option value="{options.VALUE}"<!-- IF options.VALUE eq -1 --> class="disabled-option"<!-- ENDIF -->{options.SELECTED}/>{options.TEXT}</option> -<!-- BEGINELSE --> -<!-- END options --> -</select> <input type="hidden" name="current_f" value="{S_CURRENT_FORUM}" /><input name="jumpbox" class="btnlite" type="submit" value="{L_GO}" onclick="if(document.jumpbox.f.value == -1){return false;}" /> -</form> diff --git a/phpBB/styles/subsilver2/template/timezone.js b/phpBB/styles/subsilver2/template/timezone.js index 5e81a0bfdf..c5829c0bb1 100644 --- a/phpBB/styles/subsilver2/template/timezone.js +++ b/phpBB/styles/subsilver2/template/timezone.js @@ -1,5 +1,7 @@  (function($) { // Avoid conflicts with other libraries +"use strict"; +  $('#tz_date').change(function() {  	phpbb.timezoneSwitchDate(false);  }); | 
