// ==UserScript==
// @name           background-fix
// @namespace      hpi
// @description    fixes problems with black theme
// @include        *
// ==/UserScript==

/* 'CSS-Regeln lesen/aendern 040708' (c) cybaer@binon.net - http://Coding.binon.net/cssRule */
/* Lizenz CC <http://creativecommons.org/licenses/by-nc-sa/3.0/> */
/* Kommerzielle Lizenz: lizenzen@aldaron.de */
function cssRule(target,attrib,value){var s=0,r=0,i,result=false,clipper,sheetNo=NaN,startSheetNo,endSheetNo,mediaType,unifiedSelectorText,unifiedTagName,complete,write;var sheetObj=false,ruleColl=false,ruleObj=false,styleObj=false,ownerObj=false,rulePointer="",sheetIndex=NaN,mediaTextObj,mediaTypeIndex;if(!target&&document.styleSheets){result=true}if(typeof(target)=="object"){sheetObj=true;styleObj=target;target=false}if(document.styleSheets&&document.styleSheets.length&&(target||typeof(target)=="number")){if(typeof(target)=="number"){target+="/0"}if(!isNaN(parseInt(target))&&target.indexOf("/")>0){s=parseInt(target.split("/")[0],10);r=parseInt(target.split("/")[1],10);if(typeof(document.styleSheets[s])=="object"&&document.styleSheets[s]){sheetObj=document.styleSheets[s];rulePointer=""+s;ownerObj=(sheetObj.ownerNode)?sheetObj.ownerNode:sheetObj.owningElement;if(sheetAccessible(s)){if(sheetObj.rules&&typeof(sheetObj.media)=="string"){ruleColl=sheetObj.rules;if(ruleColl[r]){ruleObj=ruleColl[r];styleObj=ruleObj.style;rulePointer+="/"+r}}else if(sheetObj.cssRules){ruleColl=sheetObj.cssRules;if(ruleColl[r]){if(ruleColl[r].type==1){ruleObj=ruleColl[r];styleObj=ruleObj.style;rulePointer+="/"+r}}}}}}else{target=target.toLowerCase();i=target.indexOf("@")+1;if(i){clipper=target.substring(i);target=target.substring(0,i-1);sheetNo=parseInt(clipper);mediaType=(isNaN(sheetNo))?clipper:"*"}else{mediaType="*"}if(!isNaN(sheetNo)){startSheetNo=sheetNo;endSheetNo=sheetNo}else{startSheetNo=document.styleSheets.length-1;endSheetNo=0}if(startSheetNo>=endSheetNo&&startSheetNo<document.styleSheets.length&&endSheetNo>=0){for(s=startSheetNo;s>=endSheetNo;s-=1){sheetObj=document.styleSheets[s];rulePointer=""+s;ownerObj=(sheetObj.ownerNode)?sheetObj.ownerNode:sheetObj.owningElement;if(sheetAccessible(s)){if(sheetObj.rules&&typeof(sheetObj.media)=="string"){ruleColl=sheetObj.rules;for(r=ruleColl.length-1;r>=0;r-=1){if(((mediaType&&sheetObj.media.toLowerCase().indexOf(mediaType)>=0)||(!mediaType&&!sheetObj.media)||mediaType=="*")&&ruleColl[r].selectorText.toLowerCase().indexOf(target)>-1){unifiedSelectorText=unifySelectorText(ruleColl[r].selectorText);if(unifiedSelectorText==target){ruleObj=ruleColl[r];styleObj=ruleObj.style;rulePointer=s+"/"+r;break}}}}else if(sheetObj.cssRules){ruleColl=sheetObj.cssRules;for(r=ruleColl.length-1;r>=0;r-=1){mediaTextObj=sheetObj.media.mediaText;mediaTypeIndex=(!mediaTextObj)?-1:mediaTextObj.toLowerCase().indexOf(mediaType);if(ruleColl[r].type==1&&((mediaType&&mediaTypeIndex>=0)||(!mediaType&&!sheetObj.media.mediaText)||mediaType=="*")&&ruleColl[r].selectorText.toLowerCase().indexOf(target)>-1){unifiedSelectorText=unifySelectorText(ruleColl[r].selectorText);if(unifiedSelectorText==target){ruleObj=ruleColl[r];styleObj=ruleObj.style;rulePointer=s+"/"+r;break}else if(unifiedSelectorText.indexOf(",")>-1){selectorArray=unifiedSelectorText.split(",");for(i=0;i<selectorArray.length;i++){while(selectorArray[i].charAt(0)==" "){selectorArray[i]=selectorArray[i].substring(1,selectorArray[i].length)}while(selectorArray[i].charAt(selectorArray[i].length-1)==" "){selectorArray[i]=selectorArray[i].substring(0,selectorArray[i].length-1)}if(selectorArray[i]==target){ruleObj=ruleColl[r];styleObj=ruleObj.style;rulePointer=s+"/"+r;break}}if(styleObj){break}}}}}if(styleObj){break}}}}if(isNaN(sheetNo)&&!styleObj){sheetObj=false;ruleColl=false;ownerObj=false;rulePointer=""}}}if(!sheetObj){if(attrib=="sheetindex"){result=NaN}}else{switch(attrib){case"sheetobject":result=sheetObj;break;case"rulecollection":result=ruleColl;break;case"ruleobject":result=ruleObj;break;case"styleobject":result=styleObj;break;case"ownerobject":result=ownerObj;break;case"ownermarkup":unifiedTagName=ownerObj.tagName.toLowerCase();result="<"+unifiedTagName;for(i=0;i<ownerObj.attributes.length;i++){result+=' '+ownerObj.attributes[i].name+'="'+ownerObj.attributes[i].value+'"'}result+=">";if(unifiedTagName=="style"){for(i=0;i<ruleColl.length;i++){result+=ruleColl[i].selectorText+" { "+ruleColl[i].style.cssText+" }\n"}result+="</"+unifiedTagName+">"}break;case"sheetindex":result=parseInt(rulePointer);break;case"rulepointer":result=(rulePointer.indexOf("/")>-1||rulePointer===false)?rulePointer:(sheetAccessible(rulePointer)?false:"");break;default:complete=(!attrib)?true:false;write=(typeof(value)!="undefined")?true:false;if(!complete){attrib=propertyToStyle(attrib);if(write){styleObj[attrib]=value;result=true}else{result=styleObj[attrib]}}else if(styleObj.cssText!=null){if(write){styleObj.cssText=value;result=true}else{result=styleObj.cssText.toLowerCase()}}}}return result}function unifySelectorText(selText){var i,addSelectors,addSelectorsRegExp;addSelectors=selText.match(/\.([A-Za-z]+[\w-]*\[)/g);if(addSelectors){for(i=0;i<addSelectors.length;i++){addSelectorsRegExp=new RegExp("\\"+addSelectors[i].substring(0,addSelectors[i].length-1)+"\\[(CLASS|class)~=["+'"'+"|']?"+addSelectors[i].substring(1,addSelectors[i].length-1)+"["+'"'+"|']?\\]","g");selText=selText.replace(addSelectorsRegExp,addSelectors[i].substring(0,addSelectors[i].length-1))}}addSelectors=selText.match(/#([A-Za-z]+[\w-]*\[)/g);if(addSelectors){for(i=0;i<addSelectors.length;i++){addSelectorsRegExp=new RegExp(addSelectors[i].substring(0,addSelectors[i].length-1)+"\\[(ID|id)["+'"'+"|']?"+addSelectors[i].substring(1,addSelectors[i].length-1)+"["+'"'+"|']?\\]","g");selText=selText.replace(addSelectorsRegExp,addSelectors[i].substring(0,addSelectors[i].length-1))}}selText=selText.toLowerCase();return selText}function propertyToStyle(property){var i,syntax;if(property=="float"){property=((typeof(window.cssFloat)=="undefined")?"style":"css")+property.charAt(0).toUpperCase()+property.substring(1)}else if(property.indexOf("-")>=0){syntax=property.split("-");property=syntax[0];for(i=1;i<syntax.length;i++){property+=syntax[i].charAt(0).toUpperCase()+syntax[i].substring(1)}}return property}function sheetAccessible(sheetNo){try{if(document.styleSheets[sheetNo].cssRules||document.styleSheets[sheetNo].rules){throw"sheetAccessible"}}catch(e){return(e=="sheetAccessible")}}

var styleString = "";
function setRule(target,attrib,value)
{
  if(!cssRule(target,attrib))
    styleString += target+"{"+attrib+":"+value+";}";
}
setRule("body","color","#000000");
setRule("body","background-color","#FFFFFF");
setRule("input","color","#000000");
setRule("input","background-color","#FFFFFF");
setRule("select","color","#000000");
setRule("select","background-color","#FFFFFF");
setRule("textarea","color","#000000");
setRule("textarea","background-color","#FFFFFF");

if(styleString != "")
{
  var newEle = document.createElement("style");
  newEle.type = "text/css";
  newEle.innerHTML = styleString;
  window.document.body.appendChild(newEle);
}
