/*
   Behaviour v1.1 by Ben Nolan, June 2005. Based largely on the work
   of Simon Willison.
   License:	This file is entirely BSD licensed.
   More information: http://ripcord.co.nz/behaviour/
*/ 
var Behaviour={list:new Array,register:function(_1){
Behaviour.list.push(_1);
},start:function(){
Behaviour.addLoadEvent(function(){
Behaviour.apply();
});
},apply:function(){
for(h=0;sheet=Behaviour.list[h];h++){
for(selector in sheet){
list=document.getElementsBySelector(selector);
if(!list){
continue;
}
for(i=0;element=list[i];i++){
sheet[selector](element);
}
}
}
},addLoadEvent:function(_2){
var _3=window.onload;
if(typeof window.onload!="function"){
window.onload=_2;
}else{
window.onload=function(){
_3();
_2();
};
}
}};
Behaviour.start();
function getAllChildren(e){
return e.all?e.all:e.getElementsByTagName("*");
}
document.getElementsBySelector=function(_5){
if(!document.getElementsByTagName){
return new Array();
}
var _6=_5.split(" ");
var _7=new Array(document);
for(var i=0;i<_6.length;i++){
token=_6[i].replace(/^\s+/,"").replace(/\s+$/,"");
if(token.indexOf("#")>-1){
var _9=token.split("#");
var _a=_9[0];
var id=_9[1];
var _c=document.getElementById(id);
if(_a&&_c.nodeName.toLowerCase()!=_a){
return new Array();
}
_7=new Array(_c);
continue;
}
if(token.indexOf(".")>-1){
var _d=token.split(".");
var _e=_d[0];
var _f=_d[1];
if(!_e){
_e="*";
}
var _10=new Array;
var _11=0;
for(var h=0;h<_7.length;h++){
var _13;
if(_e=="*"){
_13=getAllChildren(_7[h]);
}else{
_13=_7[h].getElementsByTagName(_e);
}
for(var j=0;j<_13.length;j++){
_10[_11++]=_13[j];
}
}
_7=new Array;
var _15=0;
for(var k=0;k<_10.length;k++){
if(_10[k].className&&_10[k].className.match(new RegExp("\\b"+_f+"\\b"))){
_7[_15++]=_10[k];
}
}
continue;
}
if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)){
var _17=RegExp.$1;
var _18=RegExp.$2;
var _19=RegExp.$3;
var _1a=RegExp.$4;
if(!_17){
_17="*";
}
var _1b=new Array;
var _1c=0;
for(var h=0;h<_7.length;h++){
var _1e;
if(_17=="*"){
_1e=getAllChildren(_7[h]);
}else{
_1e=_7[h].getElementsByTagName(_17);
}
for(var j=0;j<_1e.length;j++){
_1b[_1c++]=_1e[j];
}
}
_7=new Array;
var _20=0;
var _21;
switch(_19){
case "=":
_21=function(e){
return (e.getAttribute(_18)==_1a);
};
break;
case "~":
_21=function(e){
return (e.getAttribute(_18).match(new RegExp("\\b"+_1a+"\\b")));
};
break;
case "|":
_21=function(e){
return (e.getAttribute(_18).match(new RegExp("^"+_1a+"-?")));
};
break;
case "^":
_21=function(e){
return (e.getAttribute(_18).indexOf(_1a)==0);
};
break;
case "$":
_21=function(e){
return (e.getAttribute(_18).lastIndexOf(_1a)==e.getAttribute(_18).length-_1a.length);
};
break;
case "*":
_21=function(e){
return (e.getAttribute(_18).indexOf(_1a)>-1);
};
break;
default:
_21=function(e){
return e.getAttribute(_18);
};
}
_7=new Array;
var _29=0;
for(var k=0;k<_1b.length;k++){
if(_21(_1b[k])){
_7[_29++]=_1b[k];
}
}
continue;
}
if(!_7[0]){
return;
}
_17=token;
var _2b=new Array;
var _2c=0;
for(var h=0;h<_7.length;h++){
var _2e=_7[h].getElementsByTagName(_17);
for(var j=0;j<_2e.length;j++){
_2b[_2c++]=_2e[j];
}
}
_7=_2b;
}
return _7;
};
var hasFlash=function(){
var a=6;
if(navigator.appVersion.indexOf("MSIE")!=-1&&navigator.appVersion.indexOf("Windows")>-1){
document.write("<script language=\"VBScript\"> \non error resume next \nhasFlash = (IsObject(CreateObject(\"ShockwaveFlash.ShockwaveFlash.\" & "+a+"))) \n</script> \n");
if(window.hasFlash!=null){
return window.hasFlash;
}
}
if(navigator.mimeTypes&&navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
var b=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description;
return parseInt(b.charAt(b.indexOf(".")-1))>=a;
}
return false;
}();
String.prototype.normalize=function(){
return this.replace(/\s+/g," ");
};
if(Array.prototype.push==null){
Array.prototype.push=function(){
var i=0,a=this.length,b=arguments.length;
while(i<b){
this[a++]=arguments[i++];
}
return this.length;
};
}
if(!Function.prototype.apply){
Function.prototype.apply=function(a,b){
var c=[];
var d,e;
if(!a){
a=window;
}
if(!b){
b=[];
}
for(var i=0;i<b.length;i++){
c[i]="b["+i+"]";
}
e="a.__applyTemp__("+c.join(",")+");";
a.__applyTemp__=this;
d=eval(e);
a.__applyTemp__=null;
return d;
};
}
function named(a){
return new named.Arguments(a);
}
named.Arguments=function(a){
this.oArgs=a;
};
named.Arguments.prototype.constructor=named.Arguments;
named.extract=function(a,b){
var c,d;
var i=a.length;
while(i--){
d=a[i];
if(d!=null&&d.constructor!=null&&d.constructor==named.Arguments){
c=a[i].oArgs;
break;
}
}
if(c==null){
return;
}
for(e in c){
if(b[e]!=null){
b[e](c[e]);
}
}
return;
};
var parseSelector=function(){
var a=/^([^#.>`]*)(#|\.|\>|\`)(.+)$/;
function r(s,t){
var u=s.split(/\s*\,\s*/);
var v=[];
for(var i=0;i<u.length;i++){
v=v.concat(b(u[i],t));
}
return v;
}
function b(c,d,e){
c=c.normalize().replace(" ","`");
var f=c.match(a);
var g,h,i,j,k,n;
var l=[];
if(f==null){
f=[c,c];
}
if(f[1]==""){
f[1]="*";
}
if(e==null){
e="`";
}
if(d==null){
d=document;
}
switch(f[2]){
case "#":
k=f[3].match(a);
if(k==null){
k=[null,f[3]];
}
g=document.getElementById(k[1]);
if(g==null||(f[1]!="*"&&!o(g,f[1]))){
return l;
}
if(k.length==2){
l.push(g);
return l;
}
return b(k[3],g,k[2]);
case ".":
if(e!=">"){
h=m(d,f[1]);
}else{
h=d.childNodes;
}
for(i=0,n=h.length;i<n;i++){
g=h[i];
if(g.nodeType!=1){
continue;
}
k=f[3].match(a);
if(k!=null){
if(g.className==null||g.className.match("(\\s|^)"+k[1]+"(\\s|$)")==null){
continue;
}
j=b(k[3],g,k[2]);
l=l.concat(j);
}else{
if(g.className!=null&&g.className.match("(\\s|^)"+f[3]+"(\\s|$)")!=null){
l.push(g);
}
}
}
return l;
case ">":
if(e!=">"){
h=m(d,f[1]);
}else{
h=d.childNodes;
}
for(i=0,n=h.length;i<n;i++){
g=h[i];
if(g.nodeType!=1){
continue;
}
if(!o(g,f[1])){
continue;
}
j=b(f[3],g,">");
l=l.concat(j);
}
return l;
case "`":
h=m(d,f[1]);
for(i=0,n=h.length;i<n;i++){
g=h[i];
j=b(f[3],g,"`");
l=l.concat(j);
}
return l;
default:
if(e!=">"){
h=m(d,f[1]);
}else{
h=d.childNodes;
}
for(i=0,n=h.length;i<n;i++){
g=h[i];
if(g.nodeType!=1){
continue;
}
if(!o(g,f[1])){
continue;
}
l.push(g);
}
return l;
}
}
function m(d,o){
if(o=="*"&&d.all!=null){
return d.all;
}
return d.getElementsByTagName(o);
}
function o(p,q){
return q=="*"?true:p.nodeName.toLowerCase().replace("html:","")==q.toLowerCase();
}
return r;
}();

/*
Alternating row color script by Joost de Valk ( http://www.joostdevalk.nl/ ) to add alternating row classes to a table.
Copyright (c) 2006 Joost de Valk.
*/

/* Don't change anything below this unless you know what you're doing */
addEvent(window, "load", alternate_init);

function alternate_init() {
	// Find all tables with class sortable and make them sortable
	if (!document.getElementsByTagName) return;
	tbls = document.getElementsByTagName("table");
	for (ti=0;ti<tbls.length;ti++) {
		thisTbl = tbls[ti];
		if (((' '+thisTbl.className+' ').indexOf("altrow") != -1) && (thisTbl.id)) {
			alternate(thisTbl);
		}
	}
}

function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,	NS6 and Mozilla
// By Scott Andrew
{
	if (elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent){
		var r = elm.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be removed");
	}
} 

function replace(s, t, u) {
  /*
  **  Replace a token in a string
  **    s  string to be processed
  **    t  token to be found and removed
  **    u  token to be inserted
  **  returns new String
  */
  i = s.indexOf(t);
  r = "";
  if (i == -1) return s;
  r += s.substring(0,i) + u;
  if ( i + t.length < s.length)
    r += replace(s.substring(i + t.length, s.length), t, u);
  return r;
}

function alternate(table) {
	// Take object table and get all it's tbodies.
	var tableBodies = table.getElementsByTagName("tbody");
	// Loop through these tbodies
	for (var i = 0; i < tableBodies.length; i++) {
		// Take the tbody, and get all it's rows
		var tableRows = tableBodies[i].getElementsByTagName("tr");
		// Loop through these rows
		for (var j = 0; j < tableRows.length; j++) {
			// Check if j is even, and apply classes for both possible results
			if ( (j % 2) == 0  ) {
				if (tableRows[j].className == 'odd' || !(tableRows[j].className.indexOf('odd') == -1) ) {
					tableRows[j].className = replace(tableRows[j].className, 'odd', 'even');
				} else {
					tableRows[j].className += " even";
				}
			} else {
				if (tableRows[j].className == 'even' || !(tableRows[j].className.indexOf('even') == -1) ) {
					tableRows[j].className = replace(tableRows[j].className, 'even', 'odd');
				}
				tableRows[j].className += " odd";
			} 
		}
	}
}
