// Rules engine code for Scripted R-Mark - Batch Editor for Bookmarks
// http://www.greg-hill.id.au  2006

// http://ghill.customer.netspace.net.au/re-mark
// This work is licensed under a Creative Commons Attribution-ShareAlike 2.1 Australia License.

// Expects delay, ruleSet and sharing variables to be defined.

if (typeof(delay)=='undefined'||typeof(ruleSet)=='undefined'||typeof(sharing)=='undefined')
	alert('Error: Re-Mark variables not defined.');

var offsets = [4, 5, 6, 7, 8]; 				// mapping between field number and input number

var lnk = document.links;
var edt = [];
for(var i=0; i<lnk.length; i++)				// build list of "edit" links
	if (lnk[i].className=="edit")
		edt.push(lnk[i]);

for(var i=0; i<edt.length; i++)				// set them to activate onclick
	edt[i].onclick=editPost;

edt.reverse(); 
procPost();

function procPost()
{
// Go through each edit link, apply rules, wait and repeat

var butt=document.getElementsByTagName('button');
if (butt.length>1)
	butt[butt.length-2].onclick();			// click "Save" button from last time

if (!edt.length)							// ok, we're done
	return; 

edt.pop().onclick();						// force activation (ie click "edit")

doRules();								// apply rules

setTimeout('procPost();',delay*1000);			// set delay, then rinse and repeat

return;
}

function doRules()
{
// Apply ruleSet to bookmark

var inp = document.getElementsByTagName('input');
var pos=0, sh=false;
for(var r=0; r<ruleSet.length; r++)
{
	pos = offsets[ruleSet[r][0]];								// determine field
	inp[pos].value = inp[pos].value.replace(ruleSet[r][1], ruleSet[r][2]);	// apply regexp rule
}

if(typeof(inp[offsets[4]])=='undefined')
{
	alert('Please enable Private Sharing to change sharing settings.');
	return;
}

sh=inp[offsets[4]];

switch(sharing)
{
	case 0: break;						// ignore setting
	case 1: sh.checked=true; break;			// set private
	case 2: sh.checked=false; break;			// set public
	case 3: sh.checked=!sh.checked; break;		// toggle setting
}

return;
}
