Excellent detective work, that certainly is the problem. Try this, I can't test it at the moment:
FIND:
Code:
function refreshad_js($adcode_name, $file, $is_bit = false, $setting_name = '')
REPLACE WITH:
Code:
function refreshad_js($adcode_name, $file, $is_bit = 'false', $setting_name = '')
FIND:
Code:
// Avoid getting stuck in a loop if the value is no good.
if ($vbulletin->options['vbam_'.$setting_name.'_refresh'] < 10)
{
return false;
}
BELOW, ADD:
Code:
// Force boolean string conversion more effectively.
if ($is_bit !== 'false')
{
$is_bit = 'true';
}
FIND:
Code:
'.(string) $is_bit.'
REPLACE WITH: