var HOST = 'alex-wlan';

function activateSearch() {
    if ($('searchform')) {
        $('s').value = 'Search...'; 
        //var o = document.createElement('div');
        var n = document.createElement('div');
		if (navigator.userAgent.indexOf("Safari") > 0) {
			$('s').addEventListener("keyup",startSearch,false);
		} else if (navigator.product == "Gecko") {
			$('s').addEventListener("keyup",doSearch,false);
		} else {
			$('s').attachEvent('onkeyup',doSearch);
			isIE = true;
		}
		$('s').setAttribute("autocomplete","off");
        $('s').onfocus = focusS;
		$('s').onblur = blurS;
        var s = $('livesearchresult');
        var f = $('searchform');
        n.id = 'current-search-results';
        s.appendChild(n);
        //s.appendChild(o);
        n.style.display = 'none';
    }
		is_searching = false;
		keyPressDelay = false;
}


function startSearch() {
	// clear the keyPressDelay if it exists from before
	if (keyPressDelay) {
		window.clearTimeout(keyPressDelay);
		}
	
	if ($F('s') != '') {
		// wait 0.8 seconds after a keypress before running the search
		keyPressDelay = window.setTimeout('doSearch()', 250);
		}
	return true;
	}

function doSearch() {
		if (is_searching) return false; 
		is_searching = true;
    s = $F('s');
    pars = 's=' + escape(s);
    var myAjax = new Ajax.Request('http://www2.jeffcroft.com/search/livesearch/', 
          {method: 'get', parameters: pars, onComplete:doSearchResponse});
}

function doSearchResponse(response) {
    $('current-search-results').innerHTML = response.responseText;
		is_searching = false;
	if ($('current-search-results').style.display == 'none') {
		new Effect.BlindDown('current-search-results',{duration:.5, beforeStart:highlightFormField});
	}
}

function highlightFormField() {
	$('searchform').style.background = "#555555";
}

function unHighlightFormField() {
	$('searchform').style.background = "transparent";
}

function focusS() {
    if ($F('s') == 'Search...') $('s').value = '';
}

function hideSearchPreview() {
	new Effect.BlindUp('current-search-results',{duration:.5, afterFinish:unHighlightFormField});
}

function blurS() {
    if ($F('s') == '') $('s').value = 'Search...';
	hideSearchPreview();
}

function highlightAlert() {
	if ($('alert')) {
		new Effect.Pulsate('alert',{duration:5});
	}
}

function activateCommentPreview() {
	if ($('live-comment-preview')) {
		if (navigator.userAgent.indexOf("Safari") > 0) {
			$('id_comment').addEventListener("keyup",doCommentPreview,false);
		} else if (navigator.product == "Gecko") {
			$('id_comment').addEventListener("keyup",doCommentPreview,false);
		} else {
			$('id_comment').attachEvent('onkeydown',doCommentPreview);
			isIE = true;
		}
	
	
	var res = $('live-comment-preview');
	var container = document.createElement('div');
	container.id = 'comment-preview-container';
	var h = document.createElement('h5');
	h.innerHTML = "Live comment preview:"
	var ol = document.createElement('ol');
	ol.className = 'comment-list';
	var li = document.createElement('li');
	var dl = document.createElement('dl');
	var dt = document.createElement('dt');
	dt.id = 'preview-person-name'
	var ddComment = document.createElement('dd');
	ddComment.className = 'message'
	ddComment.id = 'comment-preview-text'
	ddComment.style.height = '12em';
	res.appendChild(container);
	container.appendChild(h);
	container.appendChild(ol);
	ol.appendChild(li);
	li.appendChild(dl);
	dl.appendChild(dt);
	dl.appendChild(ddComment);
	container.style.display = 'none';
	
	$('id_comment').onfocus = openCommentPreview;
	}
}

function openCommentPreview() {
	var dt = $('preview-person-name')	
	var n = $('id_person_name').value;
	dt.innerHTML = n;
	if ($('comment-preview-container').style.display == 'none') {
		new Effect.BlindDown('comment-preview-container',{duration:.5});
	}
}

function doCommentPreview() {
	var p = $('comment-preview-text');
    var t = $('id_comment').value;

    var c = t.split(/\n/);
    var i = 0;
    p.innerHTML = '';
    for(i = 0; i < c.length; i++) {
      if(c[i].length > 0 ) {
        p.innerHTML += c[i] + "<br /><br />";
      }
    }
}

function URLify(s, num_chars) {
    // changes, e.g., "Petty theft" to "petty_theft"
    // remove all these words from the string before urlifying
    removelist = ["a", "an", "as", "at", "before", "but", "by", "for", "from",
                  "is", "in", "into", "like", "of", "off", "on", "onto", "per",
                  "since", "than", "the", "this", "that", "to", "up", "via",
                  "with"];
    r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi');
    s = s.replace(r, '');
    s = s.replace(/[^-A-Z0-9\s]/gi, '');  // remove unneeded chars
    s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
    s = s.replace(/[-\s]+/g, '-');   // convert spaces to hyphens
    s = s.toLowerCase();             // convert to lowercase
    return s.substring(0, num_chars);// trim to first num_chars chars
}

function doSlugify() {
	var f = $('create_object_withslug');
	var t = $('id_short_name');
    var s = $('id_slug');
    var slug

    f.onsubmit = function() {
        slug = URLify(t.value, 30);
        s.value = slug
    };
}

function addEvent(obj, evType, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on" + evType, fn);
        return r;
    } else {
        return false;
    }
}

Event.observe(window, 'load', doSlugify, false);
Event.observe(window, 'load', activateSearch, false);
Event.observe(window, 'load', highlightAlert, false);
Event.observe(window, 'load', activateCommentPreview, false);

