/*
 *		brugere.js indeholder metoder for oprettelse, login og logud for brugere
 *
 *		Desuden funktioner for check af udfyldelse af felter.
 */

var OpdtStr = '';

/*
 *		Funktioner der anvendes ved intastning i input
 */

function elm( aID) {
	return document.getElementById( aID);
	}

function NextIn( aNext, aChk, aSelf, aTxt, e) {
	kCode = window.event ? window.event.keyCode : e.keyCode;
	if (( kCode == 13) || ( kCode == 9)) { // Enter og Tab
		if (( aChk == null) || aChk()) { elm( aNext).focus(); }
		if ( window.event) { event.returnValue = false; }
		else { e.preventDefault(); }
		}
	else if ( kCode == 27) {					// Esc
		if( !window.event) { e.preventDefault(); }
		aSelf.value = aTxt;
		aSelf.focus();
		aSelf.select();
		}
	}	

function DoInKey( callFunc, aChk, aSelf, aTxt, e) {
	kCode = window.event ? window.event.keyCode : e.keyCode;
	if ( kCode == 9) {
		if (( aChk != null) && !aChk()) {
		if ( window.event) { event.returnValue = false; }
		else { e.preventDefault(); }
			}
		}
	else if ( kCode == 13) {
		if ( callFunc != null && (( aChk == null) || aChk())) { callFunc(); }
		}
	else if ( kCode == 27) {
		if( !window.event) { e.preventDefault(); }
		aSelf.value = aTxt;
		aSelf.focus();
		aSelf.select();
		}
	}


/*
 *		Funktioner for check af bruger informationer
 */

function OpretBruger() {
	res = ChkBruger() && ChkPass() && ChkPassX() && ChkNavn() && ChkMail() ;
	if ( res) {
		nbruger = elm( 'u_bruger').value;
		pass = elm( 'u_pass').value;
		navn = elm( 'u_navn').value;
		email = elm( 'u_mail').value;
		params = 'cmd=opret&bruger='+nbruger+'&pass='+pass+'&navn='+navn+'&email='+email;
		DoPost( SetIndhold, 'bruger_cmd.php', params);
		}
	return res;
	}

function ChkBruger () {
	nbruger = elm( 'u_bruger').value;
	alert( nbruger);
	res = ( nbruger != '') && ( nbruger != 'Brugernavn');
/* !! skal checke at navnet ikke findes i databasen	*/
	if ( !res) { errT = '"'+bruger+'" er ikke et brugbart brugernavn'; }
	else { errT = ''; }
	VisFejl( res, 'err_bruger', 'u_bruger', errT, 'errTxt');
	return res;
	}

function ChkPass() {
	pass = elm( 'u_pass').value;
	res = ( pass.length > 4);
	errT = '';
	if ( res) {
		res = ( pass != 'Password');
		if ( !res) { errT = 'Det angivne er ikke et brugbart password'; }
		}
	else { errT = 'Mindst 5 karakterer..'; }
	VisFejl( res, 'err_pass', 'u_pass', errT, 'errTxt');
	return res;
	}

function ChkPassX() {
	pass = elm( 'u_pass').value;
	pass_x = elm( 'u_pass_x').value;
	res = pass == pass_x;
	if ( res) { errT = ''; }
	else { errT = 'Angivne passwords er ikke ens'; }
	VisFejl( res, 'err_pass_x', 'u_pass_x', errT, 'errTxt');
	return res;
	}

function ChkNavn() {
	navn = elm( 'u_navn').value;
	res = (( navn != '') && ( navn != 'Dit rigtige navn'));
	if ( res) { errT = ''; }
	else { errT = 'Prøv med dit eget navn...'; }
	VisFejl( res, 'err_navn', 'u_navn', errT, 'errTxt');
	return res;
	}

function ChkMail() {
	email = elm( 'u_mail').value;
	errT = '';
	res = (( email != '') && ( email != 'her@hjem.dk')); 						//!! skal også checke at adressen ikke allerede findes
	if ( !res) { errT = 'Houston we have a problem - <b>DIN</b> email adresse, tak!'; }
	if ( res) { 
		res = EmailSyntaxOK( email); 
		if ( !res) { errT = '"'+email+'" kan ikke være en email adresse?..'; }
		}
	VisFejl( res, 'err_mail', 'u_mail', errT, 'errTxt');
	return res;
	}

function EmailSyntaxOK( aemail) {
	pa = aemail.indexOf( '@');
	pd = aemail.lastIndexOf( '.');
	return (( pa > 1) && ( pd > pa+1) && ( pd < aemail.length-2));
	}


/*
 *		Funktioner for visning af detetkterede fejl
 */
 
function VisFejl( OK, errDisp, errField, errT, ErrTxtDisp) {
	if ( errDisp != '') {
		OK ? stTxt = 'hidden' : stTxt = 'visible';
		elm( errDisp).style.visibility = stTxt; 
		}
	elm( ErrTxtDisp).innerHTML = errT;
	if ( !OK) { elm( errField).focus(); }
	}

function ResetFejl() {
	VisFejl( true, 'err_bruger', 'u_bruger', '', 'errTxt');
	VisFejl( true, 'err_pass', 'u_pass', '', 'errTxt');
	VisFejl( true, 'err_pass_x', 'u_pass_x', '', 'errTxt');
	VisFejl( true, 'err_navn', 'u_navn', '', 'errTxt');
	VisFejl( true, 'err_mail', 'u_mail', '', 'errTxt');
	}

function ResetBruger() {
	ResetFejl();
	elm( 'u_bruger').value = 'Brugernavn';
	elm( 'u_pass').value = 'Password';
	elm( 'u_pass_x').value = 'password';
	elm( 'u_navn').value = 'Dit rigtige navn';
	elm( 'u_mail').value = 'her@hjem.dk';
	elm( 'u_bruger').focus();
	}


/*
 *		Funktioner for bekræftelse af medlemsskab request
 */

function IsBrugerReq( br) {
	DoPost( ReturnBool, 'bruger_cmd.php', 'cmd=har_req&bruger='+br);
	return AjaxBool;
	}

function CheckKode() {
	br = elm( 'u_bruger').innerHTML;
	kode = elm( 'u_code').value;
//	alert( br+'\n'+kode);
	if ( kode != '') {
		DoPost( ReturnBool, 'bruger_cmd.php', 'cmd=chk_kode&bruger='+br+'&kode='+kode);
		isOK = AjaxBool;
		if ( isOK) { errT = 'Kode accepteret - opretter bruger '+br; }
		else { errT = 'Indtastet kode er ikke korrekt!'; }
		}
	else {
		errT = 'Måske, hvis du skriver koden?';
		isOK = false;
		}
	VisFejl( isOK, '', 'u_code', errT, 'errTxt');
	if ( isOK) {
		DispDiv = elm( 'indholdext'); // viser resultat i den aktuelle div
		DoPost( OpdtErr, 'bruger_cmd.php', 'cmd=transf&bruger='+br);
//		if ( OpdtStr == '') { GoPage( 'none'); } // virker ikke. Ved validering af kode, er sitet ikke loadet, og der findes ingen menuer.
		if ( OpdtStr == '') { ResetSite(); }
		}
	}

function OpdtErr() {
	AjaxErr();
	OpdtStr = AjaxText;
	}


/*
 *		Funktioner for håndtering af sitets tilstand
 */

function GoPage( aPage) {
	initMenu = aPage;
	MenuStart();
	}

function ResetSite() {
	location.href='http://bbsorensen.dk';
	}

/*
 *		Login og logout
 */

function LogIn() {
	br = elm( 'log_br').value;
	pw = elm( 'log_pw').value;
	DoPost( OpdtErr, 'bruger_cmd.php', 'cmd=log_in&bruger='+br+'&pass='+pw);
	if ( OpdtStr == '') { 
		elm( 'loginf').innerText = br; // IE
		elm( 'loginf').textContent = br; // De andre
		GoPage( 'Forside/Bruger/Data'); 
		} // bør vise f.eks data siden her, i stedet for blot at resette
	
	}

function LogOut() {
	DoPost( OpdtErr, 'bruger_cmd.php', 'cmd=log_out');
	if ( OpdtStr == '') {
		elm( 'loginf').innerText = 'Gæst'; // IE
		elm( 'loginf').textContent = 'Gæst'; // De andre
		GoPage( 'Forside/Bruger'); 
		}
	}


/*
 *		Check Kontakt side
 */

function SendKontakt() {
	res = ChkKontNavn() && ChkKontEmail() && ChkKontEmne()  && ChkKontMsg();
	if ( res) {
		robot = encodeURIComponent( elm( 'b_email').value);
		navn = encodeURIComponent( elm( 'm_navn').value);
		email = encodeURIComponent( elm( 'm_email').value);
		emne = encodeURIComponent( elm( 'm_emne').value);
		msg = encodeURIComponent( elm( 'm_msg').value);
		params = 'navn='+navn+'&email='+email+'&emne='+emne+'&msg='+msg+'&robot='+robot;
		DoPost( SetIndhold, 'send_kontakt.php', params);
		}
	return res;
	}
 
function ChkKontNavn() {
	knavn = elm( 'm_navn').value;
	res = (( knavn != '') && ( knavn != 'Dit Navn'));
	if ( !res) { errT = '"'+knavn+'" er ikke et brugbart navn'; }
	else { errT = ''; }
	VisFejl( res, 'err_m_navn', 'm_navn', errT, 'm_err');
	return res;
	}

function ChkKontEmail() {
	email = elm( 'm_email').value;
	errT = '';
	res = ( email != '') && ( email != 'her@hjem.dk') && EmailSyntaxOK( email); 
	if ( !res) { errT = '"'+email+'" kan ikke være din rigtige email adresse?..'; }
	else { errT = ''; }
	VisFejl( res, 'err_m_email', 'm_email', errT, 'm_err');
	return res;
	}

function ChkKontEmne() {
	emne = elm( 'm_emne').value;
	res = (( emne != '') && ( emne != 'Emne for din henvendelse'));
	if ( !res) { errT = '"'+emne+'" er ikke et emne for en meddelelse...'; }
	else { errT = ''; }
	VisFejl( res, 'err_m_emne', 'm_emne', errT, 'm_err');
	return res;
	}

function ChkKontMsg() {
	msg = elm( 'm_msg').value;
	res = (( msg != '') && ( msg != 'Skriv din meddelelse her'));
	// check for 4-letter words
	if ( !res) { errT = '"'+msg+'" er ikke en meddelelse, du behøver sende til mig...'; }
	else { errT = ''; }
	VisFejl( res, 'err_m_msg', 'm_msg', errT, 'm_err');
	return res;
	}

function ResetKontakt() {
	ResetKontFejl();
	elm( 'm_navn').value = 'Dit Navn';
	elm( 'm_email').value = 'her@hjem.dk';
	elm( 'm_emne').value = 'Emne for din henvendelse';
	elm( 'm_msg').value = 'Skriv din meddelelse her';
	elm( 'm_navn').focus();
	}
	
function ResetKontFejl() {
	VisFejl( true, 'err_m_navn', 'm_navn', '', 'm_err');
	VisFejl( true, 'err_m_email', 'm_email', '', 'm_err');
	VisFejl( true, 'err_m_emne', 'm_emne', '', 'm_err');
	VisFejl( true, 'err_m_msg', 'm_msg', '', 'm_err');
	}
	
function SendUserMail() {
	DoPost( DoSendUserMail, 'mt.php', '');
	}

function DoSendUserMail() {
	emne = elm( 'm_emne').value;
	if (( emne == '') || ( emne == 'Emne for din henvendelse')) { emne = 'Ingen spam'; }
	msg = elm( 'm_msg').value;
	if (( msg == '') || ( msg == 'Skriv din meddelelse her')) { msg = 'Kontakt fra http://bbsorensen.dk'; }
	ResetKontakt();
	document.location = 'mailto:'+AjaxText+'?subject='+encodeURIComponent( emne)+'&body='+encodeURIComponent( msg);
	}


/*
 *		Check indsendelse af gæstebogsindlæg
 */

function SendGuest() {
	res = ChkGNavn() && ChkGEmail() && ChkGEmne() && ChkGMsg();
	if ( res) {
		robot = encodeURIComponent( elm( 'b_email').value);
		navn = encodeURIComponent( elm( 'g_navn').value);
		email = encodeURIComponent( elm( 'g_email').value);
		if ( elm( 'g_vis_e').checked) { v_email = 'J'; }
		else { v_email = 'N'; }
		emne = encodeURIComponent( elm( 'g_emne').value);
		msg = encodeURIComponent( elm( 'g_msg').value);
		params = 'cmd=g_post&navn='+navn+'&email='+email+'&emv='+v_email+'&emne='+emne+'&msg='+msg+'&kode='+robot;
		DoPost( SetIndhold, 'bruger_cmd.php', params);
		}
	return res;
	}

function ChkGNavn() {
	gnavn = elm( 'g_navn').value;
	res = elm( 'g_navn').disabled || ((( gnavn != '') && ( gnavn != 'Dit Navn')));
	if ( !res) { errT = '"'+gnavn+'" er ikke et brugbart navn'; }
	else { errT = ''; }
	VisFejl( res, 'err_g_navn', 'g_navn', errT, 'g_err');
	return res;
	}
	
function ChkGEmail() {
	email = elm( 'g_email').value;
	errT = '';
	res = elm( 'g_email').disabled || (( email != '') && ( email != 'her@hjem.dk') && EmailSyntaxOK( email)); 
	if ( !res) { errT = '"'+email+'" kan ikke være din rigtige email adresse?..'; }
	else { errT = ''; }
	VisFejl( res, 'err_g_email', 'g_email', errT, 'g_err');
	return res;
	}

function ChkGEmne() {
	emne = elm( 'g_emne').value;
	res = (( emne != '') && ( emne != 'Gæstebog bbsorensen.dk'));
	if ( !res) { errT = '"'+emne+'" er ikke et emne for en meddelelse...'; }
	else { errT = ''; }
	VisFejl( res, 'err_g_emne', 'g_emne', errT, 'g_err');
	return res;
	}

function ChkGMsg() {
	msg = elm( 'g_msg').value;
	res = (( msg != '') && ( msg != 'Dit indlæg til min gæstebog'));
	// check for 4-letter words
	if ( !res) { errT = '"'+msg+'" er ikke interessant i min gæstebog...'; }
	else { errT = ''; }
	VisFejl( res, 'err_g_msg', 'g_msg', errT, 'g_err');
	return res;
	}

function ResetGuest() {
	ResetGuestFejl();
	elm( 'g_navn').value = 'Dit Navn';
	elm( 'g_email').value = 'her@hjem.dk';
	elm( 'g_emne').value = 'Gæstebog bbsorensen.dk';
	elm( 'g_msg').value = 'Dit indlæg til min gæstebog';
	elm( 'g_navn').focus();
	}
	
function ResetGuestFejl() {
	VisFejl( true, 'err_g_navn', 'g_navn', '', 'g_err');
	VisFejl( true, 'err_g_email', 'g_email', '', 'g_err');
	VisFejl( true, 'err_g_emne', 'g_emne', '', 'g_err');
	VisFejl( true, 'err_g_msg', 'g_msg', '', 'g_err');
	}

function GuestTxtFocus( slf) {
	if ( slf.value == 'Dit indlæg til min gæstebog') { slf.select(); }
	}

function Nr2Dig( nr) {
	var res = '';
	if ( nr < 10) { res = '0'+nr; }
	else { res = nr; }
	return res;
	}

function VisGuest() {
	res = ChkGNavn() && ChkGEmail() && ChkGEmne() && ChkGMsg();
	if ( res) {
		dt = new Date();
		a_date = Nr2Dig( dt.getDate())+'/'+Nr2Dig( dt.getMonth()+1)+'-'+dt.getFullYear();
		a_time = Nr2Dig( dt.getHours())+':'+Nr2Dig( dt.getMinutes())+':'+Nr2Dig( dt.getSeconds());
		navn = elm( 'g_navn').value;
		email = elm( 'g_email').value;
		if ( elm( 'g_vis_e').checked) { v_email = 'send email'; }
		else { v_email = 'email hemmelig'; }
		emne = elm( 'g_emne').value;
		msg = elm( 'g_msg').value;
		elm( 'blogwin').style.display = 'block';
		// skal scrolle til top
		elm( 'vis_emne').innerHTML = emne;
		elm( 'vis_ref').innerHTML = '\t\t'+navn+'<br />'+v_email+'<br />'+a_date+'<br />'+a_time+'<br />';
		elm( 'vis_msg').innerHTML = Str2Lines( FormStr( msg), 2)+'<br clear="both" />';
		DispDiv.scrollTop = 0;
		}
	}

function SkjulGuest() {
	elm( 'blogwin').style.display = 'none';
	}

/*
 *		Send Mail til gæstebogsforfattere
 */

function GuestMail( gid) {
	DoPost( DoSendGuestMail, 'guestmail.php', 'id='+gid);
	}

function DoSendGuestMail() {
	if ( AjaxText != 'FEJL') {
		document.location = 'mailto:'+AjaxText;
		}
	else { alert( 'Der opstod en fejl under forsøg på at finde email for indlægget.'); }
	}

	
/*
 *		Visning af blogs
 */

var CurBlog = 0;

function ShowBlog( aId, uId) {
	CurBlog = aId;
	elm( 'blogwin').style.display = 'block';
	DoPost( SetBlog, 'blogvis.php', 'id='+aId+'&us='+uId); // uId - id for aktuel besøgende - bruges ikke
	// aId - bloggens id - skal anvendes ved edit og kommentering
	}

function HideBlog() {
	CurBlog = 0;
	elm( 'blogwin').style.display = 'none';
	// vise siden forfra - tallet for visning er ændret ?
	CurMenu[ 1].onclick();
	}

function SetBlog() {
	elm( 'blogtxt').innerHTML = AjaxText;
	}

function EditBlog( bId, uId) {	// Brugeren der er logget ind, ønsker at editere den valgte blog - CurBlog
	DoPost( SetIndhold, 'blogedit.php', 'side='+bId+'&ptyp='+uId);
	}

function BlogEditVis() {
	titel = elm( 'b_titel').value;
	tekst = elm( 'b_tekst').value;
	elm( 'blogwin').style.display = 'block';
	elm( 'blogtxt').innerHTML = '<h1>'+titel+'</h1>'+Lines2Paragrafs( tekst, 0);
	}

function BlogVisDone() {
	elm( 'blogwin').style.display = 'none';
	}

function BlogEditDone() {
	blogID = elm( 'blognr').value;
	brugerID = elm( 'bl_login').value;
	titel = encodeURIComponent( elm( 'b_titel').value);
	tekst = encodeURIComponent( elm( 'b_tekst').value);
	// Der er ingen mulighed for at se blog, før den gemmes!
	DoPost( SetIndhold, 'blogstore.php', 'bid='+blogID+'&lid='+brugerID+'&tit='+titel+'&txt='+tekst);
	}

function BlogEditCan() {
	CurMenu[ 0].onclick();
	}

function SletBlog( aId, uId, dto, tit) {
	if ( window.confirm( 'Slet Blog fra '+dto+'\nTitel : '+tit+'\nSikker?')) {
		// skal også slette alle tilhørende kommentarer
		DoPost( SetIndhold, 'blogslet.php', 'id='+aId+'&uid='+uId);
		}
	}

function KommentBlog( uId) {	// Brugeren der er logget ind, ønsker at kommentere den viste blog - CurBlog
	elm( 'blogkommedt').style.display = 'block';
	}

function PostBlogKomm() {
	kom = elm( 'blogkommtxt').value;
	elm( 'blogkommedt').style.display = 'none';
	if ( kom != 'Skriv kommentar her') {
		DoPost( AjaxErr, 'blogkommstore.php', 'txt='+encodeURIComponent( kom)+'&bid='+CurBlog);
		// skal postere kommentaren og gentegne vinduet - mangler parametre
		}
	}

function CanBlogKomm() {
	elm( 'blogkommedt').style.display = 'none';
	}

/*
 *		Dagbøger
 */

function EditDagb( dId, uId) {
	DoPost( SetIndhold, 'dagbedit.php', 'side='+dId+'&ptyp='+uId);
	}

function DagbEditCan() {
	CurMenu[ 1].onclick();
	}

function DagbEditVis() {
	titel = elm( 'd_titel').value;
	tekst = elm( 'd_tekst').value;
	elm( 'blogwin').style.display = 'block';
	elm( 'blogtxt').innerHTML = '<h1>'+titel+'</h1>'+Lines2Paragrafs( tekst, 0);
	}

function DagbVisDone() {
	elm( 'blogwin').style.display = 'none';
	}

function DagbEditDone() {
	brnvn = elm( 'loginf').textContent;
	dagbID = elm( 'dagbnr').value;
	brugerID = elm( 'db_login').value;
	titel = encodeURIComponent( elm( 'd_titel').value);
	tekst = encodeURIComponent( elm( 'd_tekst').value);
	DoPost( SetIndhold, 'dagbstore.php', 'bid='+dagbID+'&lid='+brugerID+'&tit='+titel+'&txt='+tekst);
	GoPage( 'Dagbog/'+brnvn); // Skal kunne skifte til brugeren - dvs. brugerens navn er påkrævet!
	}

function ShowDagb( aId, uId) {
	CurBlog = aId;
	elm( 'blogwin').style.display = 'block';
	DoPost( SetBlog, 'dagbvis.php', 'id='+aId+'&us='+uId); // uId - id for aktuel besøgende - bruges ikke
	// aId - bloggens id - skal anvendes ved edit og kommentering
	}

function SletDagb( aId, uId, dto, tit) {
	if ( window.confirm( 'Slet Dagbog fra '+dto+'\nTitel : '+tit+'\nSikker?')) {
		brnvn = elm( 'loginf').textContent;
		DoPost( SetIndhold, 'dagbslet.php', 'id='+aId+'&uid='+uId);
		GoPage( 'Dagbog/'+brnvn); // Skal kunne skifte til brugeren - dvs. brugerens navn er påkrævet!
		}
	}

