// ==================================================
// global vars
// ==================================================

var tidmenu 	= new Array();	// timer id's voor menu's
var wipmenu 	= new Array();	// timer id's voor WIPES menu's
var wipcount	= new Array();	// teller voor WIPES per menu

var is_initpage	= 0;			// flag die bijhoudt of functie initpage al is aangeroepen.
var is_showmenu	= 1;			// indien 1 dan toon menu, indien 0 dan verberg menu
var isfchanged	= 0;			// flag die bijhoudt of er formfields gewijzigd zijn
var masterflds	= 0;			// indien deze op 1 staat, dan zijn de masterform fields al eens gegenereerd en
								// hoeft alleen hun waarde geupdate te worden.
var curvmenu	= -1;			// welk menu is momenteel 'visible'
var undotext;					// hierin wordt tekst opgeslagen voordat een TAG aan selectie wordt toegevoegd
var undotobj;					// text-object waarvandaan / naartoe undotext komt en gaat

var bbmx, bbmy; 				// global mousepos vars voor oa. Help Mouseover
var mmchecktel, mmcheckid;

var mmevent 	= 0;			// pas als mmevent op 1 staat zullen de mouse-coords worden uitgelezen
var mmaway		= 0;			// pas als mmaway op 8 staat gaat helptext weer weg
var mymx, mymy;					// waar deze nou voor zijn... vergeten!

var tiditmmover	= 0;			// ??

var blocksetx;					// hierin wordt straks de absolute pixelLeft waarde van content geplaatst
var blocksetw;					// komt breedte van pagina / blockset in

// menu wiper (animeert bij menu mouse-over)

var mwip 		= new Array(0.1, 0.4, 0.72, 0.9, 0.95, 0.98, 0.99, 1);

// window resizer vars (animeert het resizen van een window)

var rray 		= new Array(0.02, 0.05, 0.1, 0.2, 0.5, 0.8, 0.9, 0.94, 0.97, 0.98, 0.99, 1);
var rtel 		= 0;
var rzid;

// browser shit

var is_mac		= (navigator.platform.indexOf("Mac") != -1);
var is_win		= (navigator.platform=="Win32");
var is_ie 		= (navigator.userAgent.indexOf ("IE") != -1);
var is_safari 	= (navigator.userAgent.indexOf ("Safari") != -1);

// ==================================================
// Function: Init Page
// ==================================================

function initpage(align_set, width_set, page_name, is_admin, is_percent) {

	// reken procenten om in pixels, indien width_set in procenten is aangegeven
	//
	if (is_percent) width_set = Math.round(document.body.clientWidth * width_set / 100);

	// check of deze functie al is aangeroepen, zoniet zorg er dan voor dat dit niet nog eens kan gebeuren (bij timeout > 5sec)
	//
	if (is_initpage) return false;
	clearTimeout(forceload);
	is_initpage = 1;

	blocksetw = width_set;	// onthoud global voor evt. strakkies

	// afmetingen van document
	//
	docw = document.body.clientWidth;
	doch = document.body.clientHeight;

	// check alignment
	//
	if (align_set == 'center') {
		blocksetx	= (docw - width_set) / 2;	// center align
	} else if (align_set == 'right') {
		blocksetx	= docw - width_set;			// right align
	} else {
		blocksetx	= 0;						// left align
	}

	// toon de main content
	//
	getElement('blockset').style.pixelLeft 						= blocksetx;
	if (is_admin) getElement('admintoolbox').style.pixelLeft 	= blocksetx;

	// check of adminbar getoond moet worden
	//
	if (is_admin) {
		getElement('blockset').style.pixelTop 		= adminbarh;
		getElement('admintoolbox').style.visibility	= 'visible';
		//
		// verplaats ook alle menus naar beneden
		//
		i = 0;
		while (objmbut = getElement('mbut'+i)) {
			objmbut.style.pixelTop += adminbarh;
			getElement("menuitems" + eval("document.formmenudata.menuidx"+i+".value")).style.pixelTop += adminbarh;
			i++;
		}
	}
	getElement('blockset').style.visibility						= 'visible';

	// zet titel
	//
	if (page_name) window.top.document.title = page_name;

	// indien menualign anders dan 'no' is, herpositioneer alle menu's dan...
	// momenteel alleen support voor 'left'! De opties 'right' en 'center' volgens nog...
	//
	dfmenu = document.formmenudata;
	if (dfmenu.menualign.value != 'no') {
		i = 0;
		while (objmbut = getElement('mbut'+i)) {
			curmpos = objmbut.style.pixelLeft;
			objmbut.style.pixelLeft = blocksetx + curmpos;
			getElement("menuitems" + eval("dfmenu.menuidx"+i+".value")).style.pixelLeft = blocksetx + curmpos;
			i++;
		}
	}

	// maak menu's zichtbaar
	//
	i = 0;
	while (objmbut = getElement('mbut'+i)) {
		objmbut.style.visibility = 'visible';
		i++;
	}

	// maak div-loader ONzichtbaar
	//
	clearTimeout(idloader);
	getElement	('divloader').style.visibility = 'hidden';
}

// ==================================================
// menu functions
// ==================================================

// ____ na mouseover een time-out starten voor huidige menu ____

function menu_timeout(menuid) {
	clearTimeout(tidmenu[menuid]);
	tidmenu[menuid] = setTimeout("menu_close("+menuid+")", outmenu);
}

// ____ open menu ____

function menu_open(menuid) {
	//
	// indien wipen toegestaan en te wipen menu is nog niet open, clip dan te tonen menu naar 0
	//
	if (wipemenus && curvmenu!=menuid) {
		getElement("menuitems" + menuid).style.clip = "rect(auto auto 0px auto)";
		animwipe = 1;
	} else {
		animwipe = 0;
	}
	//
	// zet menu op zichtbaar en houdt bij welk menu momenteel voor je neus staat
	//
	getElement("menuitems" + menuid).style.visibility = 'visible';
	curvmenu=menuid;
	//
	// doe een wipe
	//
	if (animwipe) {
		clearInterval(wipmenu[menuid]);
		wipcount 		= 0;
		mheight			= eval("document.formmenudata.menutoth"+menuid+".value");
		if (mheight) wipmenu[menuid] = setInterval('menu_wipe('+menuid+', mheight)', 40);
	}
}

// ____ sluit menu ____

function menu_close(menuid) {
	getElement("menuitems" + menuid).style.visibility = 'hidden';
	curvmenu = -1;
}

// ____ sluit alle evt. open menu's behalve [excludemenu] ____

function menu_vcheck(excludemenu) {
	if (curvmenu != -1 && curvmenu != excludemenu) {
		clearTimeout(tidmenu[curvmenu]);								// opdat betreffende menu niet meer door timeout-functie wordt aangeroepen
		getElement("menuitems" + curvmenu).style.visibility = 'hidden';	// maak menu onzichtbaar;
	}
}

// ____ animeer wipe menu ____

function menu_wipe(menuid, mheight) {
	c = Math.round((mwip[wipcount] * mheight));
	getElement("menuitems" + menuid).style.clip = "rect(auto auto "+c+"px auto)";
	wipcount++; if (wipcount >= mwip.length) clearInterval(wipmenu[menuid]);
	//window.status = c;
}

// ==================================================

function getElement(el) {
	if (document.getElementById)	return document.getElementById(el);
	if (document.all)				return document.all[el];
	return false;
}

// ==================================================

function go(url) {
	location.href = url;
}

function ngo(url) {
	window.open(url);
}

function mail(adr) {
	location.href = "mailto:" + adr;
}

function openmedia(tiepe, pw, ph, file) {
	//alert(tiepe + ' | ' + file);
	//pw		= 360;
	//ph		= 340;
	mx		= (screen.availWidth - pw) / 2;
	my		= (screen.availHeight - ph) / 2;
	popobj 	= window.open('', 'win', 'scrollbars=auto, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	popobj.location.href = 'playmedia.php?type='+tiepe+'&file='+file;
	popobj.resizeTo(pw + 0, ph + 0);
	popobj.focus();
	return true;
}

// ==================================================

function form_submit(formname, pagename) {
	getElement(formname).action = pagename;
	getElement(formname).submit();
}

// ==================================================

function open_edmenu(xpos, ypos, edw, xmax, itemid, edtype, headtext) {

	fdat = 'document.formmenudata';	// dit is een form met alleen maar hidden fields en bevat alle menu data

	// toevoegen of wijzigen??
	//
	switch(edtype.toLowerCase()) {

		// wijzig menu X
		//
		case 'modmenu':
			vlab		= eval(fdat+".menulabel"+itemid+".value");
			vlink		= eval(fdat+".menulink"+itemid+".value");
			document.formeditmenu.saveaction.value = "save_modmenu("+itemid+")";
			break;

		// voeg item aan menu X toe
		//
		case 'additem':
			vlab		= "NEW MENU ITEM";
			vlink		= "";
			document.formeditmenu.saveaction.value = "save_additem("+itemid+")";
			break;

		// wijzig item Y
		//
		case 'moditem':
			vlab		= eval(fdat+".itemlabel"+itemid+".value");
			vlink		= eval(fdat+".itemlink"+itemid+".value");
			document.formeditmenu.saveaction.value = "save_moditem("+itemid+")";
			break;

		default:
			alert('Invalid parameter while calling open_edmenu(): ' + edtype);
			return false;
	}

	// reset form waardes
	//
	docform 							= document.formeditmenu;
	docform.edmenuselect.selectedIndex 	= 0;
	docform.edmenulabel.value 			= vlab;
	docform.edmenulink.value 			= vlink;

	// loop door selectbox heen en kijk of huidige link ook in lijst voorkomt.
	// zo ja, zet selectbox dan op dat item.
	//
	for (i = 0; i < docform.edmenuselect.options.length; i++) {
		if (docform.edmenuselect.options[i].value == vlink) docform.edmenuselect.selectedIndex = i;
	}

	getElement('divedmenuhead').innerText			= headtext;
	//getElement('tdedmenuhead').style.textAlign		= 'center';

	// positioneer en toon menu-edit-box
	//
	getElement('tbledmenu').style.pixelLeft 	= blocksetx + (blocksetw - edw) / 2;
	getElement('tbledmenu').style.pixelTop 		= (document.body.clientHeight - 100) / 2 + getyoff();
	getElement('tbledmenu').style.visibility	= 'visible';
}

// ==================================================

function edmenu_copyselbox() {

	// kopieer de waarde uit de selectbox naar het URL-veld

	docform 					= document.formeditmenu;
	selidx 						= docform.edmenuselect.selectedIndex;
	docform.edmenulink.value 	= docform.edmenuselect.options[selidx].value;
}

// ==================================================

function popwin(myurl) {
	pw	= 325;
	ph	= 500;
	mx	= (screen.availWidth - pw) / 3;
	my	= (screen.availHeight - ph) / 3;
	popobj = window.open(myurl, 'winimg', 'scrollbars=1, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	popobj.focus();
	popobj.resizeTo(pw,ph);
}

function popprev(myurl) {
	pw	= 325;
	ph	= 500;
	mx	= pw + 12 + (screen.availWidth - pw) / 3;
	my	= (screen.availHeight - ph) / 3;
	prevobj = window.open(myurl, 'winprev', 'scrollbars=1, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width=100, height=100');
	prevobj.focus();
}

function popmodgroup(groupbox, relid) {
	myurl = "popup_modifygroup.php?groupid=" + getboxsel('pageman', groupbox) + "&relid=" + relid;
	pw	= 300;
	ph	= 150;
	mx	= (screen.availWidth - pw) / 2;
	my	= (screen.availHeight - ph) / 2;
	modobj = window.open(myurl, 'winmod', 'scrollbars=0, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	modobj.focus();
}

function popmanage(myurl) {
	pw	= Math.min(screen.availWidth, 750);
	ph	= Math.min(screen.availHeight, 510);
	mx	= (screen.availWidth - pw) / 2;
	my	= (screen.availHeight - ph) / 2;
	popobj = window.open(myurl, 'winmanage', 'scrollbars=0, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	popobj.focus();
}

function popgo(myurl) {
	window.top.opener.focus();
	window.top.opener.location.href = myurl;
	window.focus();
}

function popupstyle(myurl) {
	pw	= 300;
	ph	= 375;
	mx	= (screen.availWidth - pw) / 3 + 20;
	my	= (screen.availHeight - ph) / 3 + 20;
	popobj = window.open(myurl, 'winstyle', 'scrollbars=0, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	popobj.focus();
}

function popdialog(myurl) {
	pw	= 325;
	ph	= 160;
	mx	= (screen.availWidth - pw) / 2;
	my	= (screen.availHeight - ph) / 2;
	popobj = window.open(myurl, 'windialog', 'scrollbars=0, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	popobj.focus();
	popobj.resizeTo(pw,ph);
}

function pophelp(myurl) {
	pw	= 580;
	ph	= screen.availHeight;
	mx	= screen.availWidth - pw;
	my	= 0;
	popobj = window.open(myurl, 'winhelp', 'scrollbars=1, resizable=1, fullscreen=0, menubar=0, status=0, statusbar=0, left='+mx+', top='+my+', width='+pw+', height='+ph);
	popobj.focus();
	popobj.resizeTo(pw,ph);
}

// ==================================================

function goframe(framename, pagename) {
	eval(framename+".location.href = pagename");
}

// ==================================================

function hover(obj, flg) {
	if (flg) {
		getElement(obj).style.textDecoration = 'none';
	} else {
		getElement(obj).style.textDecoration = 'underline';
	}
}

// ==================================================

function delcontent(curid, grpid, boe) {
	if (confirm(boe)) {
		location.href = 'delete_content.php?id='+curid+'&groupid='+grpid+'&redirpage='+pgredirenc;
	}
}

// ==================================================

function save_modmenu(id) {
	docform 		= document.formeditmenu;
	docform.action	= "update_menu.php?type=menu&id="+id;
	docform.submit();
}

function save_moditem(id) {
	docform 		= document.formeditmenu;
	docform.action	= "update_menu.php?type=item&id="+id;
	docform.submit();
}

function save_additem(id) {
	docform 		= document.formeditmenu;
	docform.action	= "insert_menuitem.php?id="+id;
	docform.submit();
}

function del_menuitem(id) {
	docform 		= document.formeditmenu;
	docform.action	= "delete_menuitem.php?id="+id;
	docform.submit();
}

// ==================================================

function show_contentlink(id, linkval) {
	//
	// check of we een stukje tekst hebben geselecteerd.
	//
	selrange 		= document.selection.createRange();
	seltext 		= selrange.text;
	undotobj		= selrange.parentElement();
	//
	// indien text geselecteerd, plaats dan alvast wat maffe tags eromheen die we straks gaan vervangen
	// door de echte tags (javascript:void();)
	//
	if (seltext.length != 0 && undotobj.name == 'content'+id) {
		//
		// SELECTIE: onthoud object en oude text zodat we selectie-toevoeging ongedaan kunnen maken
		//
		undotext								= undotobj.value;
		document.selection.createRange().text 	= "<¹²³>" + seltext + "</a>";
	} else {
		//
		// GEEN SELECTIE: voorzie gehele content-item van link dus geen selection-undo-buffer nodig
		//
		undotext								= false;
		undotobj								= false;
	}
	//
	// toon contentlink window
	//
	docw = document.body.clientWidth;
	doch = document.body.clientHeight;

	docform 							= document.contentlink;
	docform.linkpresets.selectedIndex 	= 0;					// zet gewoon lekker op index 0 (aangezien we leentjebuur van een andere selectform doen die z'n eigen default selected index bepaalt
	docform.linktopage.value 			= linkval;				// plaats link uit db in formfield
	docform.curcontentid.value			= id;					// onthoud in hidden field welk content-item we aan het editten zijn

	getElement('tblcontlink').style.pixelLeft	= (docw - 270) / 3;
	getElement('tblcontlink').style.pixelTop	= (doch - 120) / 3 + document.body.scrollTop;
	getElement('tblcontlink').style.visibility	= 'visible';

	// loop door selectbox heen en kijk of huidige link ook in lijst voorkomt.
	// zo ja, zet selectbox dan op dat item.
	//
	for (i = 0; i < docform.linkpresets.options.length; i++) {
		if (docform.linkpresets.options[i].value == linkval) docform.linkpresets.selectedIndex = i;
	}
}

function contlink_copyselbox() {
	// kopieer de waarde uit de selectbox naar het URL-veld
	docform 					= document.contentlink;
	selidx 						= docform.linkpresets.selectedIndex;
	docform.linktopage.value 	= docform.linkpresets.options[selidx].value;
}

function content_updatelink(lclear) {
	//
	// check, indien we een linkje willen toevoegen, of juiste formaat is ingevoerd
	//
	if (!lclear && !checklink(document.contentlink.linktopage.value)) return false;

	docform 		= document.contentlink;

	if (undotobj) {
		//
		// SELECTIE: plaats link
		//
		undotobj.value 								= undotobj.value.replace("<¹²³>", "<a href=\"javascript:void(" + docform.linktopage.value + ");\">");
		getElement('tblcontlink').style.visibility	= 'hidden';
	} else {
		//
		// GEEN SELECTIE: verstuur de form
		//
		docform.action	= "update_contentlink.php?clear="+lclear+"&id="+docform.curcontentid.value;
		docform.submit();
	}
}

function group_preview(groupbox) {
	popprev('popup_contentpreview.php?groupid=' + getboxsel('pageman', groupbox));
}

function getboxsel(formname, selboxname) {
	eval("docform	= document."+formname);
	eval("selidx 	= docform."+selboxname+".selectedIndex");
	eval("selval	= docform."+selboxname+".options[selidx].value");
	return selval;
}

function addgroup(relid) {
	document.pageman.action = "insert_group.php?relid="+relid;
	document.pageman.submit();
}

function addcontent2group(myurl) {
	location.href = myurl + '&add2group=' + getboxsel('showgroups', 'selgroup');
}

function savepage(pageid) {
	document.pageman.action='update_page.php?pageid='+pageid;
	document.pageman.submit();
}

function hoverdiv(obj, omode) {
	if (omode) {
		obj.style.textDecoration = 'underline';
	} else {
		obj.style.textDecoration = 'none';
	}
}

// ================================================
// debugging stuff
// ================================================

function listforms() {
	retval 		= 'Forms in document:';
	docforms 	= document.forms;
	for (i = 0; i < docforms.length; i++) retval += "\n" + docforms[i].name;
	getElement('trace').innerText = retval;
}

function listelements(docobj) {
	retval 	= 'Elements in form:';
	docel 	= docobj.elements;
	for (i = 0; i < docel.length; i++) retval += "\n" + docel[i].name + ' => ' + docel[i].value;
	getElement('trace').innerText = retval;
}

function masterform() {
	docform = document.formeditpage;
	//alert(docform);

	newEl = document.createElement('INPUT');
	newEl.type 	= 'hidden';
	newEl.name 	= 'label';
	newEl.value = 'drol';

	docform.appendChild(newEl);

	alert(newEl.name);


	//docform.elements[0].name 	= new ;
	//docform.elements[0].value = "loser";

	alert(docform.elements.length);
}

// ================================================
// Deze belangrijke functie kopieert naam en inhoud
// van alle fields die in de forms beginnend met
// 'edpage' staan naar de masterform genaamd
// 'formeditpage'.
//
// alert(curformels[j].name + " = " + curformels[j].value);
// ================================================

function copyedpagefields(collectpage, collectframe) {
	//alert('We hebben vanaf heden maar 1 form om alle input fields dus deze functie is niet meer nodig');


//with (document.edpagetotal) {
//	for (i = 0; i < elements.length; i++) {
//		alert(elements[i].name + " = " + elements[i].value);
//	}
//}

	document.edpagetotal.target = collectframe;
	document.edpagetotal.action = collectpage;
	document.edpagetotal.submit();

	return false;
	//
	// definieer form objects
	//
	docforms 	= document.forms;			// lijst met alle forms
	dstform		= document.formeditpage;	// masterform
	dstfldcount	= 0;
	//
	for (i = 0; i < docforms.length; i++) {
		//
		// check of er forms voorkomen die beginnen met 'edpage'
		//
		if (docforms[i].name.substr(0,6) == 'edpage') {
			//
			// BINGO! en nu lopen we door de form heen om diens elements te kopieren naar de form 'formeditpage'
			//
			curformels = docforms[i].elements;
			if (!masterflds) {
				//
				// Genereer nieuwe hidden fields in destform, echter alleen als variabele masterflds nog op 0 staat
				//
				for (j = 0; j < curformels.length; j++) {
					newEl 		= document.createElement('INPUT');
					newEl.type 	= 'hidden';
					newEl.name 	= curformels[j].name;
					newEl.value = curformels[j].value;
					dstform.appendChild(newEl);
					dstfldcount++;	// dummy counter => deze telt hetzelfde op als in update-loop
				}
			} else {
				//
				// update de masterformfields (balen: bug in IE waardoor je inputfields niet op naam kunt benaderen
				// indien je ze eerder toegevoegd hebt middels createElement. Dus moeten we ze op elements[nummer]
				// benaderen...
				//
				for (j = 0; j < curformels.length; j++) {
					//
					// check of source en destination fields zelfde naam hebben (ivm niet kunnen benaderen middels naam)
					//
					if (curformels[j].name != dstform.elements[dstfldcount].name) {
						alert("Error: source and destination (-master) form fields do not match!");
						return false;
					}
					//
					// doe de eigenlijke update op veldniveau
					//
					dstform.elements[dstfldcount].value = curformels[j].value;
					dstfldcount++;	// real counter => volgorde van elements loopt hier gelijk aan create-loop
				}
			}
		}
	}
	//
	// onthoud dat we de fields voor de masterform zojuist hebben gegenereerd,
	// voor het geval we deze functie nogmaals aanroepen en niet daarmee nogmaals
	// de formfields genereren. dan hoeven we ze alleen te updaten.
	//
	if (!masterflds) masterflds = 1;
	//
	// submit masterform naar pagina
	//
	dstform.target = collectframe;
	dstform.action = collectpage;
	dstform.submit();
}

// ================================================
// Indien velden veranderd zijn, bewaar wijzigingen
// dan dmv aanroep page_update in hidden frame
// ================================================

function check_fchanged() {
	if (isfchanged) {
		window.status 	= 	'Silent database update.';
		copyedpagefields	('update_content.php?silent=1&pageid='+pageid, 'hide');
		isfchanged 		= 	0;	// zet weer op 0 want we hebben wijzigingen opgeslagen.
	} else {
		window.status 	= 	'No changes.';
	}
}

function modselection(modtype, objname) {
	//alert(document.selection);
	if (!document.selection) {
		alert("Your browser doesn't support editing of text-selections. Sorry for this inconvenience.");
		return;
	}
	selrange 		= document.selection.createRange();
	seltext 		= selrange.text;
	selobj			= selrange.parentElement();
	//alert(seltext);

	if (seltext.length == 0 || selobj.name != objname) {
		//
		// No text selected (at least not in current text object)
		//
		alert('No text selected in box ' + objname);
	} else {
		//
		// Modify current textobject
		//
		switch (modtype) {
			case 'b':
				document.selection.createRange().text = "<b>" + seltext + "</b>";
				break;
			case 'i':
				document.selection.createRange().text = "<i>" + seltext + "</i>";
				break;
			case 'l':
				document.selection.createRange().text = createlist(seltext);
				break;
			default:
				return false;
		}
		//
		// text has been changed!
		//
		isfchanged = 1;
	}
}

function createlist(seltext) {
	//
	// wrap <ul> around text and replace \n or \n\r with \n<li>
	//
	seltext = seltext.replace(/\n\r/g, "\n");
	return "<ul><li>" + seltext.replace(/\n/g, "\n<li>") + "</ul>";
}

function checklink(str) {
	if (str.indexOf("('") == -1 || str.indexOf("')") == -1) {
		alert("Please use the following format:\n\ngo('website address') or mail('e-mail address')");
		setTimeout("document.contentlink.linktopage.focus()", 100);
		return false;
	} else {
		return str;
	}
}

// ================================================
//	Help functies 8 mei 2002
// ================================================

function getmouseXY() {
	bbmx	= window.event.clientX + document.body.scrollLeft;
	bbmy	= window.event.clientY + document.body.scrollTop;
}

function hlp_show(myhelptext, myhelpshow) {
	if (myhelpshow == 1) {
		getElement('spanhelp').innerText = myhelptext;
		mmevent 	= 1;
		mymx 		= bbmx;
		mymy 		= bbmy;
		mmchecktel 	= 0;
		clearInterval(mmcheckid);
		mmcheckid 	= setInterval("hlp_mmwait()", 200);
	} else {
		mmaway		= 0;
		mmevent 	= 0;
		clearInterval(mmcheckid);
		getElement('tblhelp').style.visibility 	= 'hidden';
	}
}

function hlp_mmwait() {
	curmx = bbmx;
	curmy = bbmy;
	if (mmchecktel > 2) {
		curmy = Math.min(curmy + 20, document.body.clientHeight - 20 + document.body.scrollTop);
		getElement('tblhelp').style.left 		= curmx; 	// help-x-pos tov mousepointer, clipped
		getElement('tblhelp').style.top 		= curmy;	// help-y-pos tov mousepointer, clipped
		getElement('tblhelp').style.visibility 	= 'visible';
		clearInterval(mmcheckid);
		mmcheckid 	= setInterval("hlp_mmcheck()", 200);
	} else {
		if (Math.abs(curmx - mymx) < 2 || Math.abs(curmy - mymy) < 2) {
			mmchecktel++;
		} else {
			mmchecktel = 0;
		}
		mymx = curmx;
		mymy = curmy;
	}
}

function hlp_mmcheck() {
	curmx = bbmx;
	curmy = bbmy;
	if (Math.abs(curmx - mymx) > 5 || Math.abs(curmy - mymy) > 5 || mmaway > 10) {
		mmaway		= 0;
		mmevent 	= 0;
		getElement('tblhelp').style.visibility 	= 'hidden';
		clearInterval(mmcheckid);
	} else {
		mymx = curmx;
		mymy = curmy;
		mmaway++;
	}
}

// ==================================================
// Window resizer: heeft begx, begy, endx, endy nodig
// ==================================================

function winresize() {
	iray = 1 - rray[rtel];
	curw = begw * iray + finw * rray[rtel];
	curh = begh * iray + finh * rray[rtel];
	window.resizeTo(Math.floor(curw), Math.floor(curh));
	rtel++;
	if (rtel >= rray.length) clearInterval(rzid);
}

// ==================================================
// Toon de 4 item-move buttons na onclick
// ==================================================

function show_moveitem(curid, grpid) {
	document.formitemmove.contentitem.value		= curid;
	document.formitemmove.groupitem.value		= grpid;
	getElement('itemmover').style.visibility 	= 'visible';
	getElement('itemmover').style.pixelLeft 	= bbmx - 15;
	getElement('itemmover').style.pixelTop 		= bbmy - 15;
	mmevent 									= 0;
}

function hide_moveitem(aktie) {
	getElement('itemmover').style.visibility 	= 'hidden';
	if (aktie) location.href = 'change_contentorder.php?contentitem='+document.formitemmove.contentitem.value+'&groupid='+document.formitemmove.groupitem.value+'&moveitem='+aktie+'&redirpage=' + pgredirenc;
}

// ==================================================
// Admin functies
// ==================================================

function admin_jump2page(pgbase, edpage) {
	curval = getboxsel('admin', 'pageselecter');
	if (curval) location.href = pgbase+'?pageid='+curval+'&edpage='+edpage; // obtain pgbase and edpage from php
}

function admin_updatelang(curpage) {
	curval = getboxsel('admin', 'langselector');
	if (curval) location.href = 'update_language.php?lang='+curval+'&redirpage='+curpage; // curpage must be url_encoded!
}

function show_logbox() {
	getElement('logindoos').style.pixelLeft 	= blocksetx + (blocksetw - 150) / 2;
	getElement('logindoos').style.pixelTop 		= (document.body.clientHeight - 75) / 2 + getyoff();
	getElement('logindoos').style.visibility 	= 'visible';
	document.login.usr.focus();
}

function check_login() {
	if (document.login.usr.value.length == 0) {
		getElement('loginhead').innerText = 'Fill-in your username';
		document.login.usr.focus();
		return false;
	}
	if (document.login.pwd.value.length == 0) {
		getElement('loginhead').innerText = 'Fill-in your password';
		document.login.pwd.focus();
		return false;
	}

	document.login.target = 'log';
	document.login.submit();
}

function logoff() {
	window.top.log.location.href='logoff.php';
}

function getyoff() {
	if (is_safari) 	return window.pageYOffset;
	if (is_ie) 		return document.body.scrollTop;
}

// ==================================================
// toon / verberg menu (handig tijdens editten text)
// ==================================================

function menu_toggle(butv, buth) {
	is_showmenu = 1 - is_showmenu;
	if (is_showmenu) {
		visje = 'visible';
		getElement('butmenutoggle').src = buth;
	} else {
		visje = 'hidden';
		getElement('butmenutoggle').src = butv;
	}
	i = 0;
	while (objmbut = getElement('mbut'+i)) {
		objmbut.style.visibility = visje;
		i++;
	}
}
