function createAddRuleScript()
{
  var sSelector = document.getElementById('addRuleSelector').value;
  var sRule = document.getElementById('addRuleValue').value;
  var sName = document.getElementById('addRuleName').value;
  if (!sSelector || !sRule || !sName)
  {
    alert('入力されていない項目があります。');
    return;
  }
  
  function fix(s)
  {
    return s.replace(/'/g, "\\'");
  }
  
  var oAnchorIE = document.getElementById('addRuleAnchorForIE');
  var aSels = sSelector.split(/ *, */);
  var sHref = "javascript:(function(){(function f(w){var o,i=0;while(o=w.frames[i++])try{f(o)}catch(e){}o=w.document.createStyleSheet()";
  for (var i = 0; i < aSels.length; i++)
  {
    sHref += ";o.addRule('" + fix(aSels[i]) + "','" + fix(sRule) + "')";
  }
  sHref += "})(window)})()";
  oAnchorIE.href = sHref;
  oAnchorIE.innerHTML = '';
  oAnchorIE.appendChild(document.createTextNode(sName));
  
  var oAnchorMoz = document.getElementById('addRuleAnchorForMoz');
  oAnchorMoz.href = "javascript:(function(){(function f(w){var o,d=w.document,i=0;while(o=w.frames[i++])try{f(o)}catch(e){}(o=d.createElement('STYLE')).appendChild(d.createTextNode(''));d.getElementsByTagName('HEAD')[0].appendChild(o).sheet.insertRule('" + fix(sSelector) + "{" + fix(sRule) + "}',0)})(window)})()";
  //oAnchorMoz.href = "javascript:(function(){(function f(w){var o,i=0;while(o=w.frames[i++])try{f(o)}catch(e){}w.document.getElementsByTagName('HEAD')[0].appendChild(w.document.createElement('STYLE')).innerHTML='" + fix(sSelector) + "{" + fix(sRule) + "}'})(window)})()";
  oAnchorMoz.innerHTML = '';
  oAnchorMoz.appendChild(document.createTextNode(sName));

  document.getElementById('addRuleName').prevValue = sName;
  document.getElementById('addRuleSelector').prevValue = sSelector;
  document.getElementById('addRuleValue').prevValue = sRule;
  
  document.getElementById('AddRuleBookmarklets').style.display = 'block';
  document.getElementById('AddRuleHint').style.display = 'none';
}

function resetAddRuleScript()
{
  setForm('スタイルを追加', '*', '');
  document.getElementById('AddRuleBookmarklets').style.display = 'none';
  document.getElementById('AddRuleHint').style.display = 'block';
}

function setForm(sName, sSelector, sValue)
{
  document.getElementById('addRuleName').value = sName;
  document.getElementById('addRuleSelector').value = sSelector;
  document.getElementById('addRuleValue').value = sValue;
}

function presetForm(sName, sSelector, sValue)
{
  setForm(sName, sSelector, sValue);
  document.getElementById('AddRuleBookmarklets').style.display = 'none';
  document.getElementById('AddRuleHint').style.display = 'block';
}

function onRuleChange(o)
{
  if (o.value != o.prevValue)
  {
    document.getElementById('AddRuleBookmarklets').style.display = 'none';
    document.getElementById('AddRuleHint').style.display = 'block';
  }
}
