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;
}

function getAllSheets() {
  //if you want ICEbrowser's limited support, do it this way
  if( !window.ScriptEngine && navigator.__ice_version ) {
  	//IE errors if it sees navigator.__ice_version when a window is closing
  	//window.ScriptEngine hides it from that
    return document.styleSheets; }
  if( document.getElementsByTagName ) {
    //DOM browsers - get link and style tags
    var Lt = document.getElementsByTagName('link');
    var St = document.getElementsByTagName('style');
  } else if( document.styleSheets && document.all ) {
    //not all browsers that supply document.all supply document.all.tags
    //but those that do and can switch stylesheets will also provide
    //document.styleSheets (checking for document.all.tags produces errors [WHY?!])
    var Lt = document.all.tags('LINK'), St = document.all.tags('STYLE');
  } else { return []; } //lesser browser - return a blank array
  //for all link tags ...
  for( var x = 0, os = []; Lt[x]; x++ ) {
    //check for the rel attribute to see if it contains 'style'
    if( Lt[x].rel ) { var rel = Lt[x].rel;
    } else if( Lt[x].getAttribute ) { var rel = Lt[x].getAttribute('rel');
    } else { var rel = ''; }
    if( typeof( rel ) == 'string' &&
        rel.toLowerCase().indexOf('style') + 1 ) {
      //fill os with linked stylesheets
      os[os.length] = Lt[x];
    }
  }
  //include all style tags too and return the array
  for( var x = 0; St[x]; x++ ) { os[os.length] = St[x]; } return os;
}

function changeStyle() {
  for( var x = 0, ss = getAllSheets(); ss[x]; x++ ) {
    //for each stylesheet ...
    if( ss[x].title ) {
      //disable the stylesheet if it is switchable
      ss[x].disabled = true;
    }
    for( var y = 0; y < arguments.length; y++ ) {
      //check each title ...
      if( ss[x].title == arguments[y] ) {
        //and re-enable the stylesheet if it has a chosen title

        var d = new Date();
        d.setTime(d.getTime() + (14*24*60 * 60 * 1000));
 		var cd = d.toGMTString(); 	
 		var c = "color=" + escape(ss[x].title) + ";expires=" + cd + ";path=/";

 		document.cookie = c;

        ss[x].disabled = false;   
        
      }
    }
  }
  if( !ss.length ) { alert( 'Your browser cannot change stylesheets' ); }
}

function prettify(underscoreStyleName) {
    var prettyName = "";
    var spacer = "";
    var nameParts = underscoreStyleName.split('_');
    for (i = 0 ; i < nameParts.length ; i++) {
        prettyName += spacer + nameParts[i].substring(0,1).toUpperCase() + nameParts[i].substring(1);
        spacer = " ";
    }
    return prettyName; 
}


function writeThemeSelectionForm() {		
	if (document.cookie) {
		var c = readCookie('color');
		changeStyle(c);
	}	
 	var doc = "<p><form name=\"themeform\"><select name=\"themeselect\" onchange=\"changeStyle(document.themeform.themeselect[document.themeform.themeselect.selectedIndex].value)\">";
 	var styles = getAllSheets();
  	for (var i = 0 ; i < styles.length ; i++) {
    	if (styles[i].title) {
    		doc += "<option value=\"" + styles[i].title + "\">" + prettify(styles[i].title) + "</option>";
   		}
	}
  
	doc += "</select></form></p>";
	document.getElementById("themeselection").innerHTML = doc;
}






window.onload = function() {
	
    writeThemeSelectionForm();
    }