function PropertyManager(){
	this.setStyle = function(element,propertiesStr) {
		 var moreAttributes = true;
		 while (moreAttributes){
			 var property  = '';
			 var attribute = propertiesStr.substring(0,propertiesStr.indexOf (':'));
			 propertiesStr = propertiesStr.substring(propertiesStr.indexOf(':')+1);
			 
			 if(attribute != ''){
			 	property  = propertiesStr.substring(0,propertiesStr.indexOf(';'));
			 	if(property == ''){
				 	moreAttributes = false;
				 	alert("Value for: "+ attribute + " is not set!" )
				}else{
					 propertiesStr = propertiesStr.substring(propertiesStr.indexOf(';')+1); 
					 setEachAttribute(element,trimAll(attribute.toLowerCase()),trimAll(property));
			 	}
			 }else{
			 	moreAttributes = false;
			 }
		 }
	 }
	 	
	 function setEachAttribute(element, attribute, property){
		 // set all attributes to be lower case
		 if(element!=null && element!=undefined){
			 switch(attribute) {
				 case 'height':			element.style.height = property;break;
				 case 'width':			element.style.width = property;break;
				 case 'left':			element.style.left = property;break;
				 case 'top':			element.style.top = property;break;
				 case 'background':		element.style.background = property;break;
				 case 'background-repeat':		element.style.backgroundRepeat = property;break;
				 case 'border':			element.style.border = property;break;
				 case 'bordertop':		element.style.borderTop = property;break;
				 case 'borderbottom':	element.style.borderBottom = property;break;
				 case 'borderleft':		element.style.borderLeft = property;break;
				 case 'borderright':	element.style.borderRight = property;break;
				 case 'border-top':		element.style.borderTop = property;	break;
				 case 'border-bottom':	element.style.borderBottom = property;break;			 					
				 case 'border-left':	element.style.borderLeft = property;break;
				 case 'border-right':	element.style.borderRight = property;break;			 			 								 								 					
				 case 'position':		element.style.position = property;break;
	 			 case 'cursor':			element.style.cursor = property;break; 
				 case 'overflow':		element.style.overflow = property;break;
				 case 'zindex':			element.style.zIndex = property;break;
				 case 'z-index':		element.style.zIndex = property;break;
				 case 'visibility':		element.style.visibility = property;break;
				 case 'margin':			element.style.margin = property;break;
				 case 'display':		element.style.display = property;break;
				 case 'float':			element.style.cssFloat = property;element.style.styleFloat = property;break;
				 case 'font-size':		element.style.fontSize = property;break;						 					
				 case 'opacity':		element.style.filter = 'alpha(opacity=' + property +')';
				 						element.style.MozOpacity = property/100;break;
	 			 case 'backgroundimage':element.style.backgroundImage = "url(" + property + ")";break;                  
				 default:   			alert("The attribute: " + attribute + " is not known");break;
			}
		 }
	}
	
	function trimAll(sString){
	 	while ( sString.substring(0,1) == ' '){sString = sString.substring(1, sString.length);}
	 	while (sString.substring(sString.length-1, sString.length) == ' '){sString = sString.substring(0,sString.length-1 );}
	  	return sString;
	}
}

