
// event_table
var et = new Array();

// handle_event
function he() {

    var e = window.event;

    if (e.target) t = e.target;
    else if (e.srcElement) t = e.srcElement;
    if (t.nodeType == 3)
	t = t.parentNode;
    
    var posx = 0;
    var posy = 0;
    
    if (e.pageX || e.pageY)
        {
	    posx = e.pageX;
	    posy = e.pageY;
        }
    else if (e.clientX || e.clientY)
        {
	    posx = e.clientX + document.body.scrollLeft;
	    posy = e.clientY + document.body.scrollTop;
        }

    tid = t.id;
    
    t.data = e.type;
    
    /*
    if (et[tid]) {
    
	if ( (e.type == 'mousedown') && (et[id] == 1) )
    } else if (e.type == 'mouseover')
	et[tid] = 1;
     */
}

// get_element
function ge(id)
{
    if (document.getElementById) {
	return document.getElementById(id);
    } else if (document.all) {
	return document.all[id];
    } else if (document.layers) {
	return document.layers[id];
    }
}

// get_element_style_property
function gesp(id, property)
{
    e = ge(id);
    v = eval("e.style." + property);
    return v;
}

function ss(element, property, value)
{
    x = document.getElementById(element);
    x.style[property] = value;
}


function go(where) {
    document.location = where;
    return true;
}


function nicesearchfocus() {
    if (document.mainsearchform.phrase.value == "Schnellsuche")
	document.mainsearchform.phrase.value = "";
}

function nicesearchblur() {
    if (document.mainsearchform.phrase.value == "")
	document.mainsearchform.phrase.value = "Schnellsuche";
}

function nicefocus(inForm,inField,inValue) {
    if (document.forms[inForm].elements[inField].value == inValue)
	document.forms[inForm].elements[inField].value = "";
}

function niceblur(inForm,inField,inValue) {
    if (document.forms[inForm].elements[inField].value == "")
	document.forms[inForm].elements[inField].value = inValue;
}


function sas(inForm,inField,inValue) {

    document.forms[inForm].elements[inField].value = inValue;
    
    document.forms[inForm].submit();
}


function promptNewPageName(text) {
    
    do {
	
	newPageName = prompt("Name der neuen Seite:","BeispielName");
	
	if (newPageName == null)
	    return;
	
	//	if (newPageName.match("^[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*$") != null) {
	
	if (newPageName.match("^[A-Z][a-z]+[A-Z,a-z,0-9]*$") != null) {
	    document.location = "/" + newPageName + "/bearbeiten";
	    return;
	}
	else
	    alert("Der Seitenname \"" + newPageName + "\" ist nicht erlaubt.\n\nRegeln fuer Seitennamen:\n- beginnt mit einem Grossbuchstaben\n- gefolgt von mindestens einem Kleinbuchstaben\n- danach beliebige Buchstaben oder Ziffern\n\n\n");
	} while (true);
    }


function bearbeitenSaveFinally(inPageTag) {
    
	document.bearbeitenform.action = '/' + inPageTag + '/bearbeiten';
	document.bearbeitenform.target = '';
	document.forms['bearbeitenform'].elements['remark'].value = '';
	sas('bearbeitenform','edit_mode','save');
	return true;
/*
    remark = prompt("Was haben Sie geaendert?\n\nGeben Sie einen kurzen Kommentar fuer das Journal ein.\n\nBei kleinen Aenderungen Kommentar weglassen.","");

    if (remark == null)
	return false;
    else {
	document.bearbeitenform.action = '/' + inPageTag + '/bearbeiten';
	document.bearbeitenform.target = '';
	document.forms['bearbeitenform'].elements['remark'].value = remark;
	sas('bearbeitenform','edit_mode','save');
	return true;
    }
   */ 
}


function bearbeitenVorschau(inPageTag, body) {
    
    document.bearbeitenform.action = '/' + inPageTag;
    document.bearbeitenform.mode = 'preview';
    document.bearbeitenform.target = 'MacMeierVorschau';
    
    var myWin = window.open('', 'MacMeierVorschau', 'width=750');
    
    document.bearbeitenform.submit();
}


function kategorisierenClick(inFormName,catID,allID) {
    
    theLabel = eval(document.getElementById("catLabel"+catID));
    
    if(document.forms[inFormName].elements["new"+catID].value == catID) {
	document.forms[inFormName].elements["new"+catID].value = "";
	document.images["img"+catID].src = "/res/img/ballot0.gif";
	theLabel.style.color = '#666666';
	theLabel.style.fontWeight = 'normal';
	
	if (allID > 0)
	    kategorisierenFixAll(inFormName,allID);
    }
    else {
	document.forms[inFormName].elements["new"+catID].value = catID;
	document.images["img"+catID].src = "/res/img/ballot1.gif";
	theLabel.style.color = '#009A56';
	theLabel.style.fontWeight = 'bold';
	
	if (allID > 0) {
	    document.forms[inFormName].elements["allNew"+allID].value = "";
	    document.images["img"+allID].src = "/res/img/ballot0.gif";
	    theLabel = eval(document.getElementById("catAllLabel"+allID));
	    theLabel.style.color = '#666666';
	}
    }
}


var formhistories = new Array();


function formHistoryTrackButtons(inForm,inField,inButtonUndo,inButtonRedo) {
    
    if (formhistories[inForm][inField]["revisions"].length < 1) {
	document.forms[inForm].elements[inButtonUndo].disabled = true;
	document.forms[inForm].elements[inButtonRedo].disabled = true;
	return;
    }
    
    if (formhistories[inForm][inField]["lastrevision"] == 0)
	document.forms[inForm].elements[inButtonUndo].disabled = true;
    else
	document.forms[inForm].elements[inButtonUndo].disabled = false;
	
    if (formhistories[inForm][inField]["lastrevision"] == (formhistories[inForm][inField]["revisions"].length-1))
	document.forms[inForm].elements[inButtonRedo].disabled = true;
    else
	document.forms[inForm].elements[inButtonRedo].disabled = false;
}


function formHistoryLoadRevision(inForm,inField,offset,inButtonUndo,inButtonRedo) {
    
    if (formhistories[inForm] != null)
	
	if (formhistories[inForm][inField] != null)
	    
	    if (formhistories[inForm][inField]["lastrevision"] != null)
		
		if (formhistories[inForm][inField]["revisions"] != null)
		    
		    if (formhistories[inForm][inField]["revisions"][formhistories[inForm][inField]["lastrevision"]] != null) {
			
			var now = new Date();

			if (formhistories[inForm][inField]["lastrevtime"] < formhistories[inForm][inField]["lastkey"])
			    formHistoryMakeSnapshot(inForm,inField);			    
			
			if ( ( (offset < 0) && (formhistories[inForm][inField]["lastrevision"] == 0) )) 
			    return;
			
			if ( (offset > 0) && (formhistories[inForm][inField]["lastrevision"] == (formhistories[inForm][inField]["revisions"].length-1)) )
			    return;
						
			formhistories[inForm][inField]["lastrevision"]+=offset;
			
			document.forms[inForm].elements[inField].value = formhistories[inForm][inField]["revisions"][formhistories[inForm][inField]["lastrevision"]];

			/*
			if (formhistories[inForm][inField]["lastrevision"] == 0)
			    document.forms[inForm].elements[inButtonUndo].disabled = true;
			else
			    document.forms[inForm].elements[inButtonUndo].disabled = false;

			if (formhistories[inForm][inField]["lastrevision"] == (formhistories[inForm][inField]["revisions"].length-1))
			    document.forms[inForm].elements[inButtonRedo].disabled = true;
			else
			    document.forms[inForm].elements[inButtonRedo].disabled = false;
*/
			
			//formHistoryTrackButtons(inForm,inField,inButtonUndo,inButtonRedo);
		    }
}


function formHistoryMakeSnapshot(inForm,inField,inButtonUndo,inButtonRedo) {
    
    var now = new Date();

    formhistories[inForm][inField]["lastrevision"]++;
    formhistories[inForm][inField]["lastrevtime"] = now.getTime();
    formhistories[inForm][inField]["revisions"][formhistories[inForm][inField]["lastrevision"]] = document.forms[inForm].elements[inField].value;
}


function formHistoryKeyDown(inForm,inField,inButtonUndo,inButtonRedo) {
    
    var now = new Date();
    
    if (formhistories[inForm] == null)
	formhistories[inForm] = new Array();
    
    if (formhistories[inForm][inField] == null) {
	formhistories[inForm][inField] = new Array();
	formhistories[inForm][inField]["count"] = 0;
	formhistories[inForm][inField]["revisions"] = new Array();
	formhistories[inForm][inField]["lastrevision"] = -1;
	formhistories[inForm][inField]["lastkey"] = 0;
	formhistories[inForm][inField]["lastrevtime"] = -1;
    }
        
    if ( (now.getTime() > (formhistories[inForm][inField]["lastkey"]+800)) && (formhistories[inForm][inField]["lastrevtime"] <= formhistories[inForm][inField]["lastkey"]) )
	formHistoryMakeSnapshot(inForm,inField);

    formhistories[inForm][inField]["lastkey"] = now.getTime();

  //  document.forms[inForm].elements[inButtonUndo].disabled = false;
}


