/**************************************************\
*                      CSS                         *
* Author: Andrew Green                             *
* Modified: 3/2/2009                               *
* Description:                                     *
*  Crossbrowser Help with Cascading Style Sheets   *
*                                                  *
\**************************************************/

/****************************\
* jslint verified 03/02/2009 *
* http://www.jslint.com/     *
\****************************/

var CSS={
		getRuleObjects:function (selector) {//really only for private use

			var obj={};
			var cssRules;
			if (document.styleSheets[0].rules){
				cssRules = 'rules';
			}else{
				cssRules = 'cssRules';
			}
			for (var S = 0; S < document.styleSheets.length; S++){//look through all style sheets
				for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {//check all the rules
					if (document.styleSheets[S][cssRules][R].selectorText == selector){
						obj.styleSheet= document.styleSheets[S];
						obj.cssRules=document.styleSheets[S][cssRules];
						obj.ruleId=R;
						return obj;//return rule
					}
				}
			}
		},
		getRule:function (selector) {
			var obj= CSS.getRuleObjects(selector);
			if( obj){
				return obj.cssRules[obj.ruleId];//return rule
			}
		},
		addRule:function(selector,declaration){
			alert(selector);
			if(document.styleSheets[0].addRule){//ie
				document.styleSheets[0].addRule(selector,declaration,0);
			}else{
				document.styleSheets[0].insertRule(selector+"{"+declaration+"}", 0);
			}
		},
		deleteRule:function(selector){
			var obj= CSS.getRuleObjects(selector);
			if(obj){
				if(document.styleSheets[0].removeRule){//ie
					obj.styleSheet.removeRule(obj.ruleId);
				}else{
					obj.styleSheet.deleteRule(obj.ruleId);
				}
			}
		},
		setProperty:function (selector,property,value) {
			var obj= CSS.getRuleObjects(selector);
			if( obj){
				obj.cssRules[obj.ruleId].style[property]=value;//set property
			}
		},
		getProperty:function (selector,property) {
			var obj= CSS.getRuleObjects(selector);
			if( obj){
				return obj.cssRules[obj.ruleId].style[property];//return property
			}
		}
		
	};
	
//alert("string1/dir/sdfsdf.css".match(/.*\//));

var obj={};
var cssRules;
if (document.styleSheets[0].rules){
	cssRules = 'rules';
}else{
	cssRules = 'cssRules';
}	

/*global BrowserDetect*/
if (BrowserDetect.browser=="Explorer" && BrowserDetect.version<7){//if IE and png then use alpha image
	for (var S = 0; S < document.styleSheets.length; S++){//look through all style sheets
		var cssLocation=document.styleSheets[S].href.match(/.*\//);
		for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {//check all the rules
			if(document.styleSheets[S][cssRules][R].style.backgroundImage.search(/.png/)!=-1 ){
				var imgSrc=(document.styleSheets[S][cssRules][R].style.backgroundImage.replace("url(","").replace(")",""));
				var sizingMode=(document.styleSheets[S][cssRules][R].style.backgroundRepeat=="no-repeat")?'crop':'scale';
				document.styleSheets[S][cssRules][R].style.backgroundImage="";
	
				document.styleSheets[S][cssRules][R].style.filter+=" progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+cssLocation+imgSrc+"',sizingMethod='"+sizingMode+"')";
			}
		}
	}
}
	

