-/* Log to the console if we can: firebug firefox extension will view these */
-function log( txt)
-{
- if ( window.console && window.console.log )
- {
- window.console.log( txt );
- }
-}
-
-/* create a cookie */
-function createCookie(name,value,days)
-{
- var expires = "";
- if (days)
- {
- var date = new Date();
- date.setTime(date.getTime()+(days*24*60*60*1000));
- expires = "; expires="+date.toGMTString();
- }
- document.cookie = name+"="+value+expires+"; path=/";
- log( "Created cookie: " + document.cookie );
-}
-
-/* read a cookie */
-function readCookie(name)
-{
- var nameEQ = name + "=";
- var ca = document.cookie.split(';');
- for(var i=0;i < ca.length;i++)
- {
- var c = ca[i];
- while (c.charAt(0)==' ')
- c = c.substring(1,c.length);
-
- if (c.indexOf(nameEQ) == 0)
- return c.substring(nameEQ.length,c.length);
- }
- return null;
-}
-
-/* erase a cookie */
-function eraseCookie(name)
-{
- log( "erasingCookie" );
- createCookie(name,"",-1);
-}
-
-/* exclude entries from the same domain as the given URL */
-function exclude( site )
-{
- log( "Excluding: " + site );
-
- domain = site.match( /:\/\/(\.*)([^/:]+)/ );
- domain = domain[2]?domain[2]:'';
-
- var val=readCookie('excludes');
- if ( !val )
- {
- val = '';
- }
- if ( val.length > 0 )
- {
- val = val + ",";
- }
- val = val + domain
- createCookie('excludes',val, 10);
-}
-
-/* un-exclude host */
-function show( site )
-{
- domain = site.match( /:\/\/(\.*)([^/:]+)/ );
- domain = domain[2]?domain[2]:'';
-
- log( "Showing " + site );
-
- /* get the cookie */
- var val=readCookie('excludes');
- if ( !val ) { val = ''; }
-
- /* new cookie value */
- var n = '';
-
- hosts=val.split( ',' );
- for( var i=0 ; i < hosts.length; i++ )
- {
- /* the currently excluded host isn't the one we're to show now - so keep it */
- if ( hosts[i] != domain )
- {
- if ( n.length > 0 ) { n = n + ',' ; }
- n += hosts[i];
- }
- else
- {
- /* the currently excluded host is now supposed to be visible.. */
- c = getElementsByClassNamePrefix( hosts[i] );
- for ( var j = 0; j < c.length; j++ )
- {
- showDiv(c[j].id );
- showInlineDiv( ( c[j].id + "_hide" ) )
- hideDiv( ( c[j].id + "_show" ) )
- }
- }
- }
- /* set new cookie */
- createCookie('excludes',n, 10);
-}
-
-/* avoid excluding any sites : clear the cookie */
-function excludeNone()
-{
- eraseCookie( 'excludes' );
- window.location.reload();
- hideDiv( 'unhide-all' );
-}
-
-/* hide the given div, if possible */
-function hideDiv( id ) {
- i = document.getElementById(id);
- if ( i )
- {
- log( "Setting div " + id + " -> display:none;" );
- i.style.display="none";
- }
-}
-
-/* show the given div */
-function showDiv( id ) {
- i = document.getElementById(id);
- if ( i )
- {
- log( "Setting div " + id + " -> display:block;" );
- i.style.display="block";
- }
-}
-function showInlineDiv( id ) {
- i = document.getElementById(id);
- if ( i )
- {
- log( "Setting div " + id + " -> display:inline;" );
- i.style.display="inline";
- }
-}
-
-/* get elements with a class starting with the given name */
-function getElementsByClassNamePrefix(classname) {
- var els = document.getElementsByTagName("*");
- var c = new RegExp("/b^|" + classname );
- final = new Array();
- var n=0;
- for (var i=0; i < els.length; i++) {
- if (els[i].className) {
- if(c.test(els[i].className)) {
- final[n] = els[i];
- n++;
- }
- }
- }
- return final;
-}
-
-/* hide all the hosts we're supposed to */
-function hideHosts()
-{
- var excl=readCookie( 'excludes');
- if ( ! excl ) { excl='' ; }
- hosts=excl.split( ',' );
-
- for ( var i = 0; i < hosts.length; i++ )
- {
- // ok so we have a host. should we hide it?
- if ( hosts[i] )
- {
- c = getElementsByClassNamePrefix( hosts[i] );
- for ( var j = 0; j < c.length; j++ )
- {
- hideDiv(c[j].id );
- showInlineDiv( ( c[j].id + "_show" ) )
- hideDiv( ( c[j].id + "_hide" ) )
-
- showDiv( 'unhide-all' );
- }
- }
- }
-}
-