protected function tokenize_selectors($selector)
{
// split tokens by , except in an attribute selector
$tokens = array();
$quoted = false;
$token = '';
for ($i = 0, $max = strlen($selector); $i < $max; $i++) {
if (',' == $selector[$i] && !$quoted) {
$tokens[] = trim($token);
$token = '';
} elseif ('"' == $selector[$i]) {
$token .= $selector[$i];
$quoted = $quoted ? false : true;
} else {
$token .= $selector[$i];
}
}
if ($token) {
$tokens[] = trim($token);
}
return $tokens;
}