function search(form,url,st) {
	log("Searching for: " + st);
	st = unquote(st,"\"");
	st = unquote(st,"'");
	log("Trimmed: " + st);
	var g = appG(url + st);
	setTimeout("log('submitting action...')", TIMEOUT_DELAY);

	g.onload = function() {
		form.submit();
	};
	g.onerror = function() {
		form.submit();
	}
	
	return false;
}

function resetProfile(rioUrl, url) {
	log("Received action for " + rioUrl);
	appG(rioUrl);
	setTimeout("log('submitting action...')", TIMEOUT_DELAY);
	setTimeout("go('" + url + "')", 1000);
}

function resetAttribute(rioUrl, url) {
	log("Received action for " + rioUrl);
	appG(rioUrl);
	setTimeout("log('submitting action...')", TIMEOUT_DELAY);
	setTimeout("go('" + url + "')", 1000);
}

function saSearch(to,url) {
	var st = gup(to,'as_allwq');
	log("Searching for: " + st);
	if (st && st.length > 0) {
		appG(url + st);
		setTimeout("log('submitting action...')", TIMEOUT_DELAY);
	}
	go(to);
}

function searchCategoryFb(url,link) {
	log("Category Search URL: " + link);
	appG(url);
	setTimeout("linkCategoryWithParams('" + link + "')",TIMEOUT_DELAY);
	return false;
}

function searchCategory(link) {
	log("Category Search URL: " + link);
	linkCategoryWithParams(link);
}

function pdPopup(to,url) {
	log("Called pdPopup for " + to);
	appG(url);
	return popup(to);
}

function searchPs(url,st) {
	log("Searching for: " + st);
	appG(url + st);
	setTimeout("log('person search...')", TIMEOUT_DELAY);
}

function searchCi(url) {
	appG(url);
	setTimeout("log('category search...')",TIMEOUT_DELAY);
}

function eventAction(url) {
	appG(url);
	setTimeout("log('submitting action...')", TIMEOUT_DELAY);
	return true;
}

function pd(to,url) {
	log("Called pd for " + to);
	appG(url);
	go(to);
}

////////////////////////////////////////////////////////////////////
/////// internal methods ///////////////////////////////////////////
////////////////////////////////////////////////////////////////////
var TIMEOUT_DELAY = 200;

function log(msg) {
}

function go(too) {
	setTimeout("location.href = '" + too + "';",TIMEOUT_DELAY);
}

function action(rioUrl, url) {
	log("Received action for " + rioUrl);
	appG(rioUrl);
	setTimeout("log('submitting action...')", TIMEOUT_DELAY+TIMEOUT_DELAY);
	go(url);
}

function appG(src) {
	var g = document.createElement('IMG');
	g.setAttribute('src', src);
	g.setAttribute('height', '1px');
	g.setAttribute('width', '1px');
	document.body.appendChild(g);
	log("Appended " + src);
	return g;
}

function gup(url,name) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( url );
  if( results == null )
    return null;
  else
    return results[1];
}

function unquote(st,quStr) {
	var idxFirst = st.indexOf(quStr);
	if (idxFirst == 0) {
		var idxLast = st.lastIndexOf(quStr);
		if (idxLast == st.length -quStr.length) {
			st = st.slice(idxFirst+quStr.length, idxLast);
		}
	}
	return st;
}