383 lines
7.8 KiB
JavaScript
383 lines
7.8 KiB
JavaScript
//------------------------------------------
|
|
// Invision Power Board v2.3
|
|
// ACP Specific JS File
|
|
// (c) 2007 Invision Power Services, Inc.
|
|
// By: Matt Mecham, Brandon Farber
|
|
// http://www.invisionboard.com
|
|
//------------------------------------------
|
|
|
|
//==========================================
|
|
// AJAX REFRESH
|
|
//==========================================
|
|
|
|
ajax_load_msg = '';
|
|
|
|
function ajax_refresh( url, text, addtotext )
|
|
{
|
|
/*--------------------------------------------*/
|
|
// Main function to do on request
|
|
// Must be defined first!!
|
|
/*--------------------------------------------*/
|
|
|
|
do_request_function = function()
|
|
{
|
|
//----------------------------------
|
|
// Ignore unless we're ready to go
|
|
//----------------------------------
|
|
|
|
if ( ! xmlobj.readystate_ready_and_ok() )
|
|
{
|
|
// Could do a little loading graphic here?
|
|
return;
|
|
}
|
|
|
|
//----------------------------------
|
|
// INIT
|
|
//----------------------------------
|
|
|
|
var html = xmlobj.xmlhandler.responseText;
|
|
|
|
eval( html );
|
|
}
|
|
|
|
//----------------------------------
|
|
// LOAD XML
|
|
//----------------------------------
|
|
|
|
if ( url )
|
|
{
|
|
xmlobj = new ajax_request();
|
|
xmlobj.onreadystatechange( do_request_function );
|
|
xmlobj.process( url );
|
|
}
|
|
|
|
if ( text )
|
|
{
|
|
// Put it to the top
|
|
if ( addtotext )
|
|
{
|
|
document.getElementById('refreshbox').innerHTML = text + '<br />' + document.getElementById('refreshbox').innerHTML;
|
|
}
|
|
else
|
|
{
|
|
document.getElementById('refreshbox').innerHTML = text;
|
|
}
|
|
}
|
|
}
|
|
|
|
//==========================================
|
|
// POP UP YA WINDA
|
|
//==========================================
|
|
|
|
function pop_win(theUrl, winName, theWidth, theHeight)
|
|
{
|
|
if (winName == '') { winName = 'Preview'; }
|
|
if (theHeight == '') { theHeight = 400; }
|
|
if (theWidth == '') { theWidth = 400; }
|
|
|
|
window.open(ipb_var_base_url+'&'+theUrl,winName,'width='+theWidth+',height='+theHeight+',resizable=yes,scrollbars=yes');
|
|
}
|
|
|
|
//==========================================
|
|
// Toggle div
|
|
//==========================================
|
|
|
|
function togglediv( did, show )
|
|
{
|
|
//-----------------------------------
|
|
// Add?
|
|
//-----------------------------------
|
|
|
|
if ( show )
|
|
{
|
|
my_show_div( my_getbyid( did ) );
|
|
|
|
}
|
|
else
|
|
{
|
|
my_hide_div( my_getbyid( did ) );
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
//==========================================
|
|
// Toggle menu categories
|
|
//==========================================
|
|
|
|
function togglemenucategory( fid, add )
|
|
{
|
|
saved = new Array();
|
|
clean = new Array();
|
|
|
|
//-----------------------------------
|
|
// Get any saved info
|
|
//-----------------------------------
|
|
|
|
if ( tmp = my_getcookie('acpcollapseprefs') )
|
|
{
|
|
saved = tmp.split(",");
|
|
}
|
|
|
|
//-----------------------------------
|
|
// Remove bit if exists
|
|
//-----------------------------------
|
|
|
|
for( i = 0 ; i < saved.length; i++ )
|
|
{
|
|
if ( saved[i] != fid && saved[i] != "" )
|
|
{
|
|
clean[clean.length] = saved[i];
|
|
}
|
|
}
|
|
|
|
//-----------------------------------
|
|
// Add?
|
|
//-----------------------------------
|
|
|
|
if ( add )
|
|
{
|
|
clean[ clean.length ] = fid;
|
|
my_show_div( my_getbyid( 'fo_'+fid ) );
|
|
my_hide_div( my_getbyid( 'fc_'+fid ) );
|
|
}
|
|
else
|
|
{
|
|
my_show_div( my_getbyid( 'fc_'+fid ) );
|
|
my_hide_div( my_getbyid( 'fo_'+fid ) );
|
|
}
|
|
|
|
my_setcookie( 'acpcollapseprefs', clean.join(','), 1 );
|
|
|
|
tmp = clean.join(',');
|
|
}
|
|
|
|
//==========================================
|
|
// Expand all (remove cookie)
|
|
//==========================================
|
|
|
|
function expandmenu()
|
|
{
|
|
my_setcookie( 'acpcollapseprefs', menu_ids, 1 );
|
|
window.location=window.location;
|
|
}
|
|
|
|
//==========================================
|
|
// Expand all (remove cookie)
|
|
//==========================================
|
|
|
|
function collapsemenu()
|
|
{
|
|
my_setcookie( 'acpcollapseprefs', '', 1 );
|
|
window.location=window.location;
|
|
}
|
|
|
|
//==========================================
|
|
// Change text editor size
|
|
//==========================================
|
|
|
|
function changefont()
|
|
{
|
|
var savearray = new Array();
|
|
var idarray = new Array();
|
|
var rootdoc = '';
|
|
|
|
if ( template_bit_ids )
|
|
{
|
|
idarray = template_bit_ids.split(",");
|
|
}
|
|
|
|
if ( tmp = my_getcookie('acpeditorprefs') )
|
|
{
|
|
savearray = tmp.split(",");
|
|
}
|
|
|
|
try
|
|
{
|
|
if ( document.getElementById( 'te-iframe' ) )
|
|
{
|
|
rootdoc = window.frames['te-iframe'].document;
|
|
}
|
|
else
|
|
{
|
|
rootdoc = document;
|
|
}
|
|
}
|
|
catch(e)
|
|
{
|
|
//alert(e);
|
|
}
|
|
|
|
|
|
chosenfont = rootdoc.theform.fontchange.options[rootdoc.theform.fontchange.selectedIndex].value;
|
|
chosensize = rootdoc.theform.sizechange.options[rootdoc.theform.sizechange.selectedIndex].value;
|
|
chosenback = rootdoc.theform.backchange.options[rootdoc.theform.backchange.selectedIndex].value;
|
|
fontcolor = rootdoc.theform.fontcolor.options[rootdoc.theform.fontcolor.selectedIndex].value;
|
|
widthchange = rootdoc.theform.widthchange.options[rootdoc.theform.widthchange.selectedIndex].value;
|
|
highchange = rootdoc.theform.highchange.options[rootdoc.theform.highchange.selectedIndex].value;
|
|
|
|
if ( idarray.length )
|
|
{
|
|
for (i = 0 ; i < idarray.length; i++ )
|
|
{
|
|
id = idarray[i];
|
|
|
|
itm = rootdoc.getElementById( id );
|
|
|
|
if ( chosenfont != '-' )
|
|
{
|
|
itm.style.fontFamily = chosenfont;
|
|
savearray[0] = chosenfont;
|
|
}
|
|
if ( chosensize != '-' )
|
|
{
|
|
itm.style.fontSize = chosensize;
|
|
savearray[1] = chosensize;
|
|
}
|
|
if ( chosenback != '-' )
|
|
{
|
|
itm.style.backgroundColor = chosenback;
|
|
savearray[2] = chosenback;
|
|
}
|
|
if ( fontcolor != '-' )
|
|
{
|
|
itm.style.color = fontcolor;
|
|
savearray[3] = fontcolor;
|
|
}
|
|
if ( widthchange != '-' )
|
|
{
|
|
itm.style.width = widthchange;
|
|
savearray[4] = widthchange;
|
|
}
|
|
if ( highchange != '-' )
|
|
{
|
|
itm.style.height = highchange;
|
|
savearray[5] = highchange;
|
|
}
|
|
}
|
|
}
|
|
|
|
my_setcookie( 'acpeditorprefs', savearray.join(','), 1 );
|
|
}
|
|
|
|
//==========================================
|
|
// Auto jump menu
|
|
//==========================================
|
|
|
|
function autojumpmenu(fobj)
|
|
{
|
|
urljump = fobj.options[fobj.selectedIndex].value;
|
|
|
|
if ( urljump != "" && urljump != "-" )
|
|
{
|
|
window.location = urljump;
|
|
}
|
|
}
|
|
|
|
|
|
//==========================================
|
|
// Check for no special chars
|
|
//==========================================
|
|
|
|
function no_specialchars(type)
|
|
{
|
|
var name;
|
|
|
|
if (type == 'sets')
|
|
{
|
|
var field = document.theAdminForm.sname;
|
|
name = 'Skin Set Title';
|
|
}
|
|
|
|
if (type == 'wrapper')
|
|
{
|
|
var field = document.theAdminForm.name;
|
|
name = 'Wrapper Title';
|
|
}
|
|
|
|
if (type == 'csssheet')
|
|
{
|
|
var field = document.theAdminForm.name;
|
|
name = 'StyleSheet Title';
|
|
}
|
|
|
|
if (type == 'templates')
|
|
{
|
|
var field = document.theAdminForm.skname;
|
|
name = 'Template Set Name';
|
|
}
|
|
|
|
if (type == 'images')
|
|
{
|
|
var field = document.theAdminForm.setname;
|
|
name = 'Image & Macro Set Title';
|
|
}
|
|
|
|
var valid = 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.()[]:;~+-_';
|
|
var ok = 1;
|
|
var temp;
|
|
|
|
for (var i=0; i < field.value.length; i++)
|
|
{
|
|
temp = "" + field.value.substring(i,i+1);
|
|
|
|
if (valid.indexOf(temp) == "-1")
|
|
{
|
|
ok = 0;
|
|
}
|
|
}
|
|
|
|
if (ok == 0)
|
|
{
|
|
alert('Invalid entry for: ' + name + ', you can only use alphanumerics and the following special characters.\n. ( ) : ; ~ + - _');
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
//==========================================
|
|
// IPS Kernel method
|
|
//==========================================
|
|
|
|
function confirm_action( url, msg )
|
|
{
|
|
return maincheckdelete( url, msg );
|
|
}
|
|
|
|
//==========================================
|
|
// Backwards compatible check delete
|
|
//==========================================
|
|
|
|
function checkdelete( url )
|
|
{
|
|
return maincheckdelete( ipb_var_base_url + '&' + url );
|
|
}
|
|
|
|
//==========================================
|
|
// Main check delete
|
|
//==========================================
|
|
|
|
function maincheckdelete(url, msg)
|
|
{
|
|
if ( ! msg )
|
|
{
|
|
msg = 'PLEASE CONFIRM:\nOK to proceed?';
|
|
}
|
|
|
|
if (confirm( msg ))
|
|
{
|
|
document.location.href = url;
|
|
}
|
|
else
|
|
{
|
|
alert ( 'OK, action cancelled!' );
|
|
}
|
|
}
|
|
|
|
|