public function jsLoad($library, $version = null, array $options = array())
{
$versionDefaults = array('swfobject' => 2, 'yui' => 2, 'ext-core' => 3, 'mootools' => 1.2);
if (!is_array($library)) {
//jsLoad('yui')
$library = strtolower($library);
if (!$version) {
$version = !isset($versionDefaults[$library]) ? 1 : $versionDefaults[$library];
}
$library = array('name' => $library, 'version' => $version);
$library = array(!$options ? $library : array_merge($library, $options));
} else {
foreach ($library as $key => $val) {
if (!is_array($val)) {
if (is_int($key)) {
//jsLoad(array('yui', 'prototype'))
$val = strtolower($val);
$version = !isset($versionDefaults[$val]) ? 1 : $versionDefaults[$val];
$library[$key] = array('name' => $val, 'version' => $version);
} else {
if (!is_array($val)) {
// //jsLoad(array('yui' => '2.8.0r4', 'prototype' => 1.6))
$library[$key] = array('name' => strtolower($key), 'version' => $val);
}
}
}
}
}
$url = $this->_protocol . 'www.google.com/jsapi';
if (!isset($this->_includedFiles['js'][$url])) {
//autoload library
$this->_includedFiles['js'][$url] = true;
$url .= '?autoload=' . urlencode(json_encode(array('modules' => array_values($library))));
$return = $this->js($url);
} else {
//load inline
foreach ($library as $lib) {
$js = 'google.load("' . $lib['name'] . '", "' . $lib['version'] . '"';
if (count($lib) > 2) {
unset($lib['name'], $lib['version']);
$js .= ', ' . json_encode($lib);
}
$jsLoads[] = $js . ');';
}
$return = $this->jsInline(implode(PHP_EOL, $jsLoads));
}
return $return;
}