/**
 * ALTO Logger
 *
 * @author Shaun Shull
 * @version 1.0
 */

function Alto() {}

Alto.parseQuery = function(str, key) {
  str = str ? str : location.search;
  var query = str.charAt(0) == '?' ? str.substring(1) : str;
  if (query.indexOf('?') != -1) query = query.substring(query.indexOf('?')+1);
  var args = new Object();
  if (query) {
    var fields = query.split('&');
    for (var f = 0; f < fields.length; f++) {
      var field = fields[f].split('=');
      args[unescape(field[0].replace(/\+/g, ' '))] = unescape(field[1].replace(/\+/g, ' '));
    }
  }
  return args[key];
}

Alto.processKeyword = function(referrer) {
	var q = null;
    if (referrer.match(/^http:\/\/(www\.)?alltheweb.*/i)) {
		if (referrer.match(/q=/)) q = { engine:'AllTheWeb', keyword:Alto.parseQuery(referrer, 'q') };
    } else if (referrer.match(/^http:\/\/(www)?\.?google.*/i)) {
		if (referrer.match(/q=/)) q = { engine:'Google', keyword:Alto.parseQuery(referrer, 'q') };
    } else if (referrer.match(/^http:\/\/search\.lycos.*/i)) {
		if (referrer.match(/query=/)) q = { engine:'Lycos', keyword:Alto.parseQuery(referrer, 'query') };
    } else if (referrer.match(/^http:\/\/search\.msn.*/i)) {
		if (referrer.match(/q=/)) q = { engine:'MSN', keyword:Alto.parseQuery(referrer, 'q') };
    } else if (referrer.match(/^http:\/\/search\.yahoo.*/i)) {
		if (referrer.match(/p=/)) q = { engine:'Yahoo', keyword:Alto.parseQuery(referrer, 'p') };
    } else if (referrer.match(/^http:\/\/(www)?\.?ask.*/i)) {
		if (referrer.match(/q=/)) q = { engine:'Ask', keyword:Alto.parseQuery(referrer, 'q') };
    }
    if (q) q.keyword = q.keyword.replace(/\'|"/, '');
	return q;
}

Alto.init = function() {
	var ref = decodeURIComponent(document.referrer);
	var page = decodeURIComponent(window.location);
	var kw_data = Alto.processKeyword(ref);
	if (kw_data) {
			var log_url = 'http://www.altotool.com/logger/loggit.php?kw='+encodeURIComponent(kw_data.keyword)+'&engine='+encodeURIComponent(kw_data.engine)+'&page='+encodeURIComponent(page)+'&referrer='+encodeURIComponent(ref);
			new Image().src = log_url;
	}
}

Alto.init();