Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 830 → Rev 831

/trunk/client/phorum/bibliotheque/phorum/mods/editor_tools/smileys_js.php
New file
0,0 → 1,115
<?php if(!defined("PHORUM")) return; ?>
 
<script type="text/javascript">
 
/* ------------------------------------------------------------------------
* Javascript functions for Smiley tools.
* ------------------------------------------------------------------------
*/
 
var smileys_state = -1;
var smileys_count = 0;
var loaded_count = 0;
var loadingobj;
 
function toggle_smileys()
{
// On the first request to open the smiley help, load all smiley images.
if (smileys_state == -1)
{
// Load smiley images.
<?php
$smileys_count = 0;
$c = '';
foreach ($PHORUM["mod_smileys"]["smileys"] as $id => $smiley) {
if (! $smiley["active"] || $smiley["is_alias"] || $smiley["uses"] == 1) continue;
$smileys_count ++;
$src = htmlspecialchars($prefix . $smiley['smiley']);
$c.="document.getElementById('smiley-button-{$id}').src='$src';\n";
}
print "smileys_count = $smileys_count;\n$c\n";
?>
 
smileys_state = 0;
}
 
// Toggle smiley panel.
smileys_state = ! smileys_state;
if (smileys_state) show_smileys(); else hide_smileys();
}
 
function show_smileys()
{
// We wait with displaying the smiley help until all smileys are loaded.
if (loaded_count < smileys_count) return false;
 
document.getElementById('phorum_mod_editor_tools_smileys').style.display = 'block';
document.getElementById('phorum_mod_editor_tools_smileys_dots').style.display = 'none';
return false;
}
 
function hide_smileys()
{
document.getElementById('phorum_mod_editor_tools_smileys').style.display = 'none';
document.getElementById('phorum_mod_editor_tools_smileys_dots').style.display = 'inline';
return false;
}
 
function phorum_mod_smileys_insert_smiley(string)
{
var area = document.getElementById("phorum_textarea");
string = unescape(string);
if (area)
{
if (area.createTextRange) /* MSIE */
{
area.focus(area.caretPos);
area.caretPos = document.selection.createRange().duplicate();
curtxt = area.caretPos.text;
area.caretPos.text = string + curtxt;
}
else /* Other browsers */
{
var pos = area.selectionStart;
area.value =
area.value.substring(0,pos) +
string +
area.value.substring(pos);
area.focus();
area.selectionStart = pos + string.length;
area.selectionEnd = area.selectionStart;
}
} else {
alert('There seems to be a technical problem. The textarea ' +
'cannot be found in the page. ' +
'The textarea should have id="phorum_textarea" in the ' +
'definition for this feature to be able to find it. ' +
'If you are not the owner of this forum, then please ' +
'alert the forum owner about this.');
}
}
 
function phorum_mod_smileys_load_smiley (imgobj)
{
loadingobj = document.getElementById('phorum_mod_editor_tools_smileys_loading');
 
// Another smiley image was loaded. If we have loaded all
// smiley images, then show the smileys panel.
if (imgobj.src != '') {
loaded_count ++;
imgobj.onload = '';
if (loaded_count == smileys_count) {
loadingobj.style.display = 'none';
show_smileys();
} else {
// Visual feedback for the user while loading the images.
loadingobj.style.display = 'inline';
loadingobj.innerHTML = "("
+ "<?php print $PHORUM["DATA"]["LANG"]["LoadingSmileys"]; ?> "
+ Math.floor(loaded_count/smileys_count*100) + "%)";
}
}
}
 
</script>