WAStandardScripts


Seaside-Libraries

Comment:



Hierarchy:

ProtoObject
Object
WAStringLibrary
WAScriptLibrary
WAStandardScripts

Summary:

methods:

instance class
as yet unclassified as yet unclassified no messages

Detail:

instance methods:

as yet unclassified
swapDisplay

	^ 'function swapDisplay(a, b) {
			var tmp = document.getElementById(a).style.display;
			document.getElementById(a).style.display = document.getElementById(b).style.display;
			document.getElementById(b).style.display = tmp;
	}'

as yet unclassified
liveUpdate

	^ 'function liveUpdaterUri(uri)
{
    return liveUpdater(function() { return uri; });
}

function addParameter(uri, key, value)
{
	var separator = "?";

	if(uri.indexOf("?") >= 0)
	    separator = "&";
	return uri + separator + key + "=" + escape(value);
}

function liveUpdater(uriFunc)
{
    var request = false;
    var regex = /<(\w+).*?id="(\w+)".*?>((.|\n)*)<\/\1>/;
    
    if (window.XMLHttpRequest) {
       	request = new XMLHttpRequest();
    }
    

    function update()
    {
       if(request && request.readyState < 4)
            request.abort();
            
        if(!window.XMLHttpRequest)
            request = new ActiveXObject("Microsoft.XMLHTTP");
        
        request.onreadystatechange = processRequestChange;
        request.open("GET", addParameter(uriFunc(), "timestamp", (new Date()).getTime().toString()));
        request.send(null);
        return false;
    }
    
 function processRequestChange()
   {
       if(request.readyState == 4)
       {
           var results = regex.exec(request.responseText);
           if(results) {
               document.getElementById(results[2]).innerHTML =
results[3];
           } else {
                 var bodyRegex = /<body>(.*)?<\/body>/;
                 var body = bodyRegex.exec(request.responseText);
                 if ( body ) {
                     document.body.innerHTML = body[1];
                 } else {
                     document.body.innerHTML = request.responseText;
                 }
           }
       }
   }
    return update;
}

function liveSelect(id, uri)
{
	function constructUri()
	{
		return addParameter(uri, "s", document.getElementById(id).selectedIndex.toString());
	}
	
	return liveUpdater(constructUri); 
}

function liveSearch(id, uri)
{
    function constructUri()
    {
        return addParameter(uri, "s", document.getElementById(id).value);
    }
    
    var updater = liveUpdater(constructUri);
    var last = "";
    var timeout = false;
   
    function update()
    {
       if (last != document.getElementById(id).value)
            updater();
    }
        
    function start() {
	   if (timeout)
	       window.clearTimeout(timeout);
	   
    	   timeout = window.setTimeout(update, 300);
    }

	
	if (navigator.userAgent.indexOf("Safari") > 0)
		document.getElementById(id).addEventListener("keydown",start,false);
    else if (navigator.product == "Gecko")
		document.getElementById(id).addEventListener("keypress",start,false);
    else
		document.getElementById(id).attachEvent("onkeydown",start);
}'

class methods:

^top


- made by Dandelion -