// JavaScript Document


function show_public_info(val)
{
	elem = document.getElementById('public_info'); 
	if (elem && val) {
		elem.style.visibility = 'visible';
	}
	else if (elem) {
		elem.style.visibility = 'hidden';
	}
}

//Fonctions modifiant le drag and drop de scriptacoulous
function getY(obj) {
	var curtop = 0;
	do {
		curtop += obj.offsetTop;
	} while (obj = obj.offsetParent);
	return curtop;
}
var min_y;
var max_y;
var partie_gauche;

function move_menu() {
	var val = 0;
	max_y = getY(document.getElementById('options')); // - partie_gauche.offsetHeight;
	if (window.pageYOffset) {
		val =  window.pageYOffset;
	}
	if (document.all) {
		val = document.documentElement.scrollTop;	
	}
	if (val < min_y) {
		val = min_y;
	}
	else if (val > max_y) {
		val = max_y;
	}
	partie_gauche.style.top = val + "px";
	window.setTimeout("move_menu()", 10);
}

Position.includeScrollOffsets = true;

window.onload = function()
{
	if (document.images)
	{
		preload_image = new Image(); 
		preload_image.src='http://www.magic-questionnaire.com/templates/defaut/images/poubelle_pleine.png'; 
	}
	  
	new Draggable("question_choix_u", {ghosting:false, revert:true});
	new Draggable("question_choix_m", {ghosting:false, revert:true});	
	new Draggable("question_libre", {ghosting:false, revert:true});
	new Draggable("texte_libre", {ghosting:false, revert:true});	
	
	



	Droppables.add("contenu_formulaire", {accept:'draggable',
									 hoverclass:'hoverclass123',
									 onDrop:function(element, dropon, event)
										 { creerElement( element , dropon )}});
	Sortable.create('contenu_formulaire','');
	
	var dropon = document.getElementById('contenu_formulaire');
	
	var hauteur = dropon.offsetHeight;
	hauteur += 80;

	dropon.style.height = hauteur+"px";
	
	var li = document.getElementsByClassName("sortable");
	for (var j = 0; j < li.length; ++j)
	{
		new Draggable(li[j], {ghosting:false, revert:true});
	}
	
	//La poubelle
	Droppables.add("poubelle", {accept:'sortable',
									 hoverclass:'poubelle_pleine',
									 onDrop:function(element, dropon, event)
										 {  supprimerElement(element) }});
	
	
	if (document.getElementById && document.getElementById('partie_gauche')) {
		partie_gauche = document.getElementById('partie_gauche');
		if (partie_gauche.offsetParent) {
			partie_gauche.style.position = 'absolute';
			min_y = getY(partie_gauche);
			move_menu();
		}
	}
};


var tab = new Array();
var cptID=0;
function creerElement(element , dropon){
	var monE;
	if( element.id == "question_choix_u")
		monE = new QuestionChoix("radio");
	else if( element.id == "question_libre")
		monE = new QuestionLibre();				
	else if( element.id == "texte_libre")
		monE = new TexteLibre();
	else if( element.id == "question_choix_m")
		monE = new QuestionChoix("checkbox");
		

	
	var hauteur = dropon.offsetHeight;
	
	dropon.appendChild(monE);
	
	hauteur += monE.offsetHeight + 5;
	
	dropon.style.height = hauteur + "px";
	
	Sortable.create('contenu_formulaire','');
	
	//Bug ou pas bug ? Obligé de tout reparcourir les éléments pour les rendre draggable.
	var li = document.getElementsByClassName("sortable");
	for (var j = 0; j < li.length; ++j)
	{
		new Draggable(li[j], {ghosting:false, revert:true});
	}
	new Draggable(monE, {ghosting:false, revert:true});
}

function supprimerElement(element){
	
	
	if( confirm('\uFEFF\u0045\u0074\u0065\u0073\u0020\u0076\u006F\u0075\u0073\u0020\u0073\u00FB\u0072\u0020\u0064\u0065\u0020\u0076\u006F\u0075\u006C\u006F\u0069\u0072\u0020\u0073\u0075\u0070\u0070\u0072\u0069\u006D\u0065\u0072\u0020\u0063\u0065\u0074\u0020\u00E9\u006C\u00E9\u006D\u0065\u006E\u0074\u0020\u003F') )
	{
		var parent = element.parentNode;
		var hauteur_e = element.offsetHeight;
		
		parent.removeChild(element);

		var hauteur = parent.offsetHeight - hauteur_e;
		
		parent.style.height = hauteur+"px";
	}
	
}







//
// Classes permettant la gestion des questions , réponses , etc ... pour le questionnaire
//


//Classe représentant une question libre



function QuestionLibre(){	
		
		var li = document.createElement('li');
		li.className='sortable';
		
		var id='question_libre-'+cptID;
		li.id=id;
		
		
		var mon_div = document.createElement('div');
		mon_div.className = 'question';
		
		mon_div.innerHTML = '\uFEFF\u0044\u006F\u0075\u0062\u006C\u0065\u0020\u0043\u006C\u0069\u0071\u0075\u0065\u0072\u0020\u0070\u006F\u0075\u0072\u0020\u006D\u006F\u0064\u0069\u0066\u0069\u0065\u0072\u0020\u006C\u0027\u0069\u006E\u0074\u0069\u0074\u0075\u006C\u00E9\u0020\u0064\u0065\u0020\u006C\u0061\u0020\u0071\u0075\u0065\u0073\u0074\u0069\u006F\u006E\u0020\u006C\u0069\u0062\u0072\u0065';
		
		mon_div.ondblclick = function(){
				
				inlineMod(cptID, this, "question_libre", 'TexteMulti');
				
			
			}		
			
			
		li.appendChild(mon_div);
		
		//Création du champs pour la réponse libre
		
		var reponse = document.createElement('textarea');
		reponse.value = '\uFEFF\u0045\u006D\u0070\u006C\u0061\u0063\u0065\u006D\u0065\u006E\u0074\u0020\u0064\u0065\u0020\u006C\u0061\u0020\u0072\u00E9\u0070\u006F\u006E\u0073\u0065\u0020\u0021';
		reponse.readonly = 'readonly';	
		reponse.cols=47;
		reponse.rows=5;
		//li.appendChild(document.createElement('br'));
		li.appendChild(reponse);
		
		cptID++;
		
		return li;	
}




function QuestionChoix(type_input ){	
		
		var li = document.createElement('li');
		li.className='sortable';
		
		var id='question_choix_'+type_input+'-'+cptID;
		li.id=id;
		
		var mon_div = document.createElement('div');
		mon_div.className = 'question';
		
		if (type_input == "radio") {
			mon_div.innerHTML = '\uFEFF\u0044\u006F\u0075\u0062\u006C\u0065\u0020\u0043\u006C\u0069\u0071\u0075\u0065\u0072\u0020\u0070\u006F\u0075\u0072\u0020\u006D\u006F\u0064\u0069\u0066\u0069\u0065\u0072\u0020\u006C\u0027\u0069\u006E\u0074\u0069\u0074\u0075\u006C\u00E9\u0020\u0064\u0065\u0020\u006C\u0061\u0020\u0071\u0075\u0065\u0073\u0074\u0069\u006F\u006E\u0020\u0072\u0061\u0064\u0069\u006F';
		}
		else {
			mon_div.innerHTML = '\uFEFF\u0044\u006F\u0075\u0062\u006C\u0065\u0020\u0043\u006C\u0069\u0071\u0075\u0065\u0072\u0020\u0070\u006F\u0075\u0072\u0020\u006D\u006F\u0064\u0069\u0066\u0069\u0065\u0072\u0020\u006C\u0027\u0069\u006E\u0074\u0069\u0074\u0075\u006C\u00E9\u0020\u0064\u0065\u0020\u006C\u0061\u0020\u0071\u0075\u0065\u0073\u0074\u0069\u006F\u006E\u0020\u0063\u0068\u0065\u0063\u006B\u0062\u006F\u0078';
		}
		
		mon_div.ondblclick = function(){
				
				inlineMod(cptID, this, "question_choix", 'TexteMulti');
				
			
			}
			
			
		var liste = document.createElement('ul');
		var mon_item = document.createElement('li');
		
		//Lien d'ajout
		var lien1 = document.createElement('a');
		
		lien1.onclick = function(){CreerReponse(liste,type_input); return false;}
		lien1.href="#";
		lien1.appendChild(document.createTextNode('\uFEFF\u0043\u0072\u00E9\u0065\u0072\u0020\u0075\u006E\u0065\u0020\u006E\u006F\u0075\u0076\u0065\u006C\u006C\u0065\u0020\u0072\u00E9\u0070\u006F\u006E\u0073\u0065'));	
		
		
		mon_item.appendChild(lien1);
		
		mon_item.appendChild(document.createTextNode(" | "));	
		
		//Lien de suppression
		
		var lien2 = document.createElement('a');
		
		lien2.onclick = function(){SupprimerReponse(liste); return false;}
		lien2.href="#";
		lien2.appendChild(document.createTextNode('\uFEFF\u0053\u0075\u0070\u0070\u0072\u0069\u006D\u0065\u0072\u0020\u006C\u0061\u0020\u0064\u0065\u0072\u006E\u0069\u00E8\u0072\u0065\u0020\u0072\u00E9\u0070\u006F\u006E\u0073\u0065'));
		
		
		mon_item.appendChild(lien2);
		
		
		liste.appendChild(mon_item);
		
		
			
		li.appendChild(mon_div);
		
		li.appendChild(liste);
		
		
		cptID++;
		
		return li;	
}


function TexteLibre(){	
		
		var li = document.createElement('li');
		li.className='sortable';
		
		var id='texte_libre-'+cptID;
		li.id=id;
		
		var mon_div = document.createElement('div');
		mon_div.className = 'texte_libre';
		
		mon_div.innerHTML = '\uFEFF\u0044\u006F\u0075\u0062\u006C\u0065\u0020\u0043\u006C\u0069\u0071\u0075\u0065\u0072\u0020\u0070\u006F\u0075\u0072\u0020\u006D\u006F\u0064\u0069\u0066\u0069\u0065\u0072\u0020\u006C\u0065\u0020\u0074\u0065\u0078\u0074\u0065';
		
		mon_div.ondblclick = function(){
				
				inlineMod(cptID, this, "texte_libre", 'TexteMulti');
				
			
			}		
			
			
		li.appendChild(mon_div);	
		
		cptID++;
		
		return li;	
}

function CreerReponse(liste,type_input){
	var mon_item = document.createElement('li');
	mon_item.className = 'reponse_choix';
	
	var reponse = document.createElement('input');
	reponse.type=type_input;
	reponse.name='reponse_choix';
	reponse.value='\uFEFF\u0044\u006F\u0075\u0062\u006C\u0065\u0020\u0063\u006C\u0069\u0071\u0075\u0065\u0072\u0020\u0070\u006F\u0075\u0072\u0020\u006D\u006F\u0064\u0069\u0066\u0069\u0065\u0072\u0020\u006C\u0065\u0020\u0074\u0065\u0078\u0074\u0065\u0020\u0064\u0065\u0020\u006C\u0061\u0020\u0072\u00E9\u0070\u006F\u006E\u0073\u0065';
	
	
	
	mon_item.appendChild(reponse);
	
	var mon_span = document.createElement('span');
	var mon_texte = document.createTextNode('\uFEFF\u0044\u006F\u0075\u0062\u006C\u0065\u0020\u0063\u006C\u0069\u0071\u0075\u0065\u0072\u0020\u0070\u006F\u0075\u0072\u0020\u006D\u006F\u0064\u0069\u0066\u0069\u0065\u0072\u0020\u006C\u0065\u0020\u0074\u0065\u0078\u0074\u0065\u0020\u0064\u0065\u0020\u006C\u0061\u0020\u0072\u00E9\u0070\u006F\u006E\u0073\u0065');
	mon_span.appendChild(mon_texte);
	

	mon_span.ondblclick = function(){
				inlineMod(1, this, "question choix", 'Texte');
				
			
	}	
	mon_item.appendChild(mon_span);
	
	liste.appendChild(mon_item);
	
	var dropon = document.getElementById('contenu_formulaire');
	
	var hauteur = dropon.offsetHeight;
	hauteur += mon_item.offsetHeight;
	
	dropon.style.height = hauteur+"px";
	
}

function SupprimerReponse(liste){
	
	if (liste.childNodes.length>1) // On supprime pas le 1er li qui contient les liens d'ajout de de suppression
	{
		liste.removeChild(liste.lastChild);
	}
}


//Fonction de sauvegarde

//retourne le type d'un élément
function getType(id)
{
	var tab = id.split("-");
	return tab[0];

}


function getID(id)
{
	var tab = id.split("-");
	return tab[2];
}

//retourene le texte d'un élément
function getLibelle(el)
{
	var mon_div = first_child(el);
	return escape(mon_div.innerHTML);
}

function getLesReponses(el)
{
	var reponses = first_child(el);
		
	reponses = node_after(reponses);
	
	reponses = first_child(reponses);
	
	reponses = node_after(reponses);
	
	return reponses;
}

function getLibelleReponse(rep)
{
	var texte = node_after(first_child(rep));
	return escape(texte.innerHTML);
}

function getIDReponse(rep)
{
	return rep.id;
}


function Sauvegarder(){
	
	if(editionEnCours)
	{
		alert('\uFEFF\u0045\u0072\u0072\u0065\u0075\u0072\u0020\u003A\u0020\u0076\u006F\u0075\u0073\u0020\u006E\u0027\u0061\u0076\u0065\u007A\u0020\u0070\u0061\u0073\u0020\u0073\u0061\u0075\u0076\u0065\u0067\u0061\u0072\u0064\u00E9\u0020\u0075\u006E\u0020\u0063\u0068\u0061\u006D\u0070\u0020\u00E9\u0064\u0069\u0074\u0061\u0062\u006C\u0065\u002E');
		return false;		
	}

	var input_titre = document.getElementById('titre_formulaire');
	var titre = input_titre.innerHTML;
	
	
	var titre_gras = escape(document.getElementById('value_titre_gras').value);
	var titre_italique = escape(document.getElementById('value_titre_italique').value);
	
	var questions_gras = escape(document.getElementById('value_questions_gras').value);
	var questions_italique = escape(document.getElementById('value_questions_italique').value);
	
	var reponses_gras = escape(document.getElementById('value_reponses_gras').value);
	var reponses_italique = escape(document.getElementById('value_reponses_italique').value);	
	
	var textes_gras = escape(document.getElementById('value_textes_gras').value);
	var textes_italique = escape(document.getElementById('value_textes_italique').value);	
	
	var couleur_bordure = escape(document.getElementById('ColorValueBordure').value);	
	var couleur_fond = escape(document.getElementById('ColorValueFond').value);	
	var couleur_titre = escape(document.getElementById('ColorValueTitre').value);	
	var couleur_questions = escape(document.getElementById('ColorValueQuestions').value);	
	var couleur_reponses = escape(document.getElementById('ColorValueReponses').value);	
	var couleur_textes = escape(document.getElementById('ColorValueTextes').value);	
	
	var is_public = 0;
	var mail_on = 0;
	
	if (document.getElementById('form_public').checked) {
		is_public = 1;
	}
	if (document.getElementById('form_mail').checked) {
		mail_on = 1;
	}
	
		
	var id_formulaire = document.getElementById('id_formulaire').value;
	if( titre == "")
	{
		alert('\uFEFF\u0045\u0072\u0072\u0065\u0075\u0072\u0020\u003A\u0020\u0076\u006F\u0075\u0073\u0020\u0064\u0065\u0076\u0065\u007A\u0020\u0072\u0065\u006D\u0070\u006C\u0069\u0072\u0020\u006C\u0065\u0020\u0063\u0068\u0061\u006D\u0070\u0073\u0020\u0074\u0069\u0074\u0072\u0065\u002F\u004E\u006F\u006D\u0020\u0064\u0075\u0020\u0066\u006F\u0072\u006D\u0075\u006C\u0061\u0069\u0072\u0065');
		return false;
	}
	
	var racine = document.getElementById('contenu_formulaire');
	
	var el = first_child(racine);
	
	if( ! el ){		
	
		alert('\uFEFF\u0045\u0072\u0072\u0065\u0075\u0072\u0020\u003A\u0020\u0063\u0065\u0020\u0066\u006F\u0072\u006D\u0075\u006C\u0061\u0069\u0072\u0065\u0020\u006E\u0065\u0020\u0063\u006F\u006D\u0070\u006F\u0072\u0074\u0065\u0020\u0061\u0075\u0063\u0075\u006E\u0073\u0020\u00E9\u006C\u00E9\u006D\u0065\u006E\u0074\u002E\u0020\u0049\u006C\u0020\u006E\u0027\u0061\u0020\u0070\u0061\u0073\u0020\u00E9\u0074\u00E9\u0020\u0073\u0061\u0075\u0076\u0065\u0067\u0061\u0072\u0064\u00E9\u002E');
		return false;
	}
	

	var xml = '<formulaire mail_on="' + mail_on + '" is_public="' + is_public  +'" titre_gras="'+titre_gras+'" titre_italique="'+titre_italique+'" questions_gras="'+questions_gras+'" questions_italique="'+questions_italique+'" reponses_gras="'+reponses_gras+'" reponses_italique="'+reponses_italique+'" textes_gras="'+textes_gras+'" textes_italique="'+textes_italique+'" couleur_bordure="'+couleur_bordure+'" couleur_fond="'+couleur_fond+'" couleur_titre="'+couleur_titre+'" couleur_questions="'+couleur_questions+'" couleur_reponses="'+couleur_reponses+'" couleur_textes="'+couleur_textes+'" >';
	
	
	while(el){
		xml += '<element type="'+getType(el.id)+'" libelle="'+ getLibelle(el)+'" id="'+getID(el.id)+'" > ';


		if(getType(el.id) == "question_choix_radio" || getType(el.id) == "question_choix_checkbox" ){
			var reponses = getLesReponses(el);		
			
			if(reponses)
			{
				while(reponses){
					
					xml += "<reponse id='"+getIDReponse(reponses)+"' >"+getLibelleReponse(reponses)+"</reponse>";
					
					reponses = node_after(reponses);
				}
			}
		}
		
		xml += "</element>";
		
		
		el = node_after(el);

		
	}
	
	
	

	
	xml+= "</formulaire>";
	
	//Si l'objet existe déjà on abandonne la requête et on le supprime
	if(XHR && XHR.readyState != 0)
	{
		XHR.abort();
		delete XHR;
	}

	//Création de l'objet XMLHTTPRequest
	XHR = getXMLHTTP();

	if(!XHR)
	{
		return false;
	}

	
	var data="xml=" + escape(xml) + "&titre=" + escape(titre) + "&id_formulaire="+escape(id_formulaire);
	
	//URL du script de sauvegarde auquel on passe la requête à exécuter
	XHR.open("POST", "js/sauvegarde.php", true);
	XHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
	XHR.send(data);
	//On se sert de l'événement OnReadyStateChange pour supprimer l'input et le replacer par son contenu
	XHR.onreadystatechange = function()
	{
		//Si le chargement est terminé
		if (XHR.readyState == 4)
			if(!XHR.responseText )
			{
				
				alert('\uFEFF\u0046\u006F\u0072\u006D\u0075\u006C\u0061\u0069\u0072\u0065\u0020\u0073\u0061\u0075\u0076\u0065\u0067\u0061\u0072\u0064\u00E9\u0020\u0061\u0076\u0065\u0063\u0020\u0073\u0075\u0063\u0063\u00E8\u0073');
				
				return true;
			}
			else //S'il y a une réponse texte, c'est une erreur PHP
			{
				//Affichage de l'erreur
				
				if(est_entier(XHR.responseText) )
				{
					alert('\uFEFF\u0046\u006F\u0072\u006D\u0075\u006C\u0061\u0069\u0072\u0065\u0020\u0073\u0061\u0075\u0076\u0065\u0067\u0061\u0072\u0064\u00E9\u0020\u0061\u0076\u0065\u0063\u0020\u0073\u0075\u0063\u0063\u00E8\u0073');
					document.location.href = "construction.php?id_formulaire="+XHR.responseText;
					return true;
				}
				
				alert('\uFEFF\u0045\u0072\u0072\u0065\u0075\u0072\u0020\u003A\u0020'+XHR.responseText);			
				
				return false;
			}
	}

	//Envoi de la requête
	XHR.send(null);
	
	
	
	
	
	
}

function est_entier(nbr){
	
	var obj = new RegExp("^([0-9]+)$");	
	return obj.test(nbr);	
}

function nl2br( str ) {
    // Inserts HTML line breaks before all newlines in a string
    // 
    // +    discuss at: http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_nl2br/
    // +       version: 804.1714
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Philip Peterson
    // *     example 1: nl2br('Kevin\nvan\nZonneveld');
    // *     returns 1: 'Kevin<br/>\nvan<br/>\nZonneveld'
	alert(str);
    return str.replace(/([^>])\n/g, '$1<br />\n');
}// }}}

//Gestion des styles

//Couleur de la bordure
function CouleurBordure(couleur){
	
	var formulaire = document.getElementById('le_formulaire');	
	var colorBox = document.getElementById('ColorValueBordure');
	
	formulaire.style.borderColor = couleur;
	
	colorBox.value=couleur;
	colorBox.style.backgroundColor=couleur;
}

//Couleur du fond
function CouleurBackground(couleur){
	
	var formulaire = document.getElementById('le_formulaire');
	var colorBox = document.getElementById('ColorValueFond');
	
	formulaire.style.backgroundColor = couleur;	
	
	colorBox.value=couleur;
	colorBox.style.backgroundColor=couleur;	
}

//Couleur du titre
function CouleurTitre(couleur){
	
	var colorBox = document.getElementById('ColorValueTitre');
	
	if(document.styleSheets[0].cssRules)
		document.styleSheets[0].cssRules[3].style.color = couleur;
	else
		document.styleSheets[0].rules[3].style.color = couleur;	
		
	colorBox.value=couleur;
	colorBox.style.backgroundColor=couleur;	
}

//Couleur des questions
function CouleurQuestions(couleur){
	
	var colorBox = document.getElementById('ColorValueQuestions');

	if(document.styleSheets[0].cssRules)
		document.styleSheets[0].cssRules[0].style.color = couleur;
	else
		document.styleSheets[0].rules[0].style.color = couleur;	



	
	colorBox.value=couleur;
	colorBox.style.backgroundColor=couleur;	
}

//Couleur des réponses
function CouleurReponses(couleur){
	
	var colorBox = document.getElementById('ColorValueReponses');

	if(document.styleSheets[0].cssRules)
		document.styleSheets[0].cssRules[1].style.color = couleur;
	else
		document.styleSheets[0].rules[1].style.color = couleur;	
	
	colorBox.value=couleur;
	colorBox.style.backgroundColor=couleur;	
}

//Couleur des textes
function CouleurTextes(couleur){
	
	var colorBox = document.getElementById('ColorValueTextes');

	if(document.styleSheets[0].cssRules)
		document.styleSheets[0].cssRules[2].style.color = couleur;
	else
		document.styleSheets[0].rules[2].style.color = couleur;	

	colorBox.value=couleur;
	colorBox.style.backgroundColor=couleur;	
}

function toggleAttr(attr,v1,v2,nb_style,id_btn, id_hidden) {
	
	

  /*var re=new RegExp(".*"+"(mceButtonActive)"+".*","i");
  alert(id_btn.className);
  alert(re);
  if (re.test(id_btn.className))
  {
	  alert("element trouve "+RegExp.$1);
	  var cc = Prototype.Browser.WebKit ? id_btn.className.replace(re,"toto") : RegExp.leftContext+RegExp.$1+""+RegExp.rightContext;
		alert(cc);
  }
  else
  {
	id_btn.className += " mceButtonActive";
  }
  */
	
  var v=this.getStyle(nb_style,attr);
  v=v==v2 ? v1 : v2;
  this.updateStyleText(attr,v,nb_style);
  
  id_hidden.value = v;
  
}


function getStyle(nb_style,attr) {
	
	var csstxt;
	if(document.styleSheets[0].cssRules)
		csstxt = document.styleSheets[0].cssRules[nb_style].style.cssText;
	else
		csstxt = document.styleSheets[0].rules[nb_style].style.cssText;		

	if (!csstxt) return;
	  if (csstxt.charAt(csstxt.length-1)!=';') csstxt+=';';   // opera
	  csstxt=' '+csstxt;
	  var re=new RegExp("[ ;]"+attr+"\\s*:\\s*([^ ;]*)\\s*;","i");
	  if (re.test(csstxt))
		return RegExp.$1;
	  else
		return;
}


function updateStyleText(attr,value,nb_style) {
	
	var csstxt;
	if(document.styleSheets[0].cssRules)
		csstxt = document.styleSheets[0].cssRules[nb_style].style.cssText;
	else
		csstxt = document.styleSheets[0].rules[nb_style].style.cssText;		
	
  var newval=attr+':'+value+';';
  if (!csstxt) return newval;
  csstxt=' '+csstxt.strip();

  if (csstxt.charAt(csstxt.length-1)!=';') csstxt+=';';   // opera
  var re=new RegExp("([ ;])"+attr+"\\s*:\\s*([^ ;]*)\\s*;","i");
  // safari must process the regexp twice, everyone else can run it once
  
  var new_css;
  
  if (re.test(csstxt))
  {	
	new_css = Prototype.Browser.WebKit ? csstxt.replace(re,"$1"+newval) : RegExp.leftContext+RegExp.$1+newval+RegExp.rightContext;
  }
  else
  {	
    new_css = csstxt+newval;
  }
  
  if(document.styleSheets[0].cssRules)
		document.styleSheets[0].cssRules[nb_style].style.cssText = new_css;
	else
		document.styleSheets[0].rules[nb_style].style.cssText = new_css;
  
  
}