| 4278 | b=0, c=0, d=0; |
| 4279 | |
| 4280 | function updateValues(part){ |
| 4281 | |
| 4282 | var i, j, len, num, |
| 4283 | elementName = part.elementName ? part.elementName.text : "", |
| 4284 | modifier; |
| 4285 | |
| 4286 | if (elementName && elementName.charAt(elementName.length-1) != "*") { |
| 4287 | d++; |
| 4288 | } |
| 4289 | |
| 4290 | for (i=0, len=part.modifiers.length; i < len; i++){ |
| 4291 | modifier = part.modifiers[i]; |
| 4292 | switch(modifier.type){ |
| 4293 | case "class": |
| 4294 | case "attribute": |
| 4295 | c++; |
| 4296 | break; |
| 4297 | |
| 4298 | case "id": |
| 4299 | b++; |
| 4300 | break; |
| 4301 | |
| 4302 | case "pseudo": |
| 4303 | if (Pseudos.isElement(modifier.text)){ |
| 4304 | d++; |
| 4305 | } else { |
| 4306 | c++; |
| 4307 | } |
| 4308 | break; |
| 4309 | |
| 4310 | case "not": |
| 4311 | for (j=0, num=modifier.args.length; j < num; j++){ |
| 4312 | updateValues(modifier.args[j]); |
| 4313 | } |
| 4314 | } |
| 4315 | } |
| 4316 | } |
| 4317 | |
| 4318 | for (i=0, len=selector.parts.length; i < len; i++){ |
| 4319 | part = selector.parts[i]; |