// == Chat Functions

//Default nick on connect
default_nick = 'Gast';

// Away form messages
msg0 = 'Jij bent momenteel al afwezig!';
msg1 = 'Jij bent niet afwezig!';
msg2 = 'Ik ben momenteel afwezig.';
msg3 = 'Chatnamen mogen niet beginnen met cijfers.';
msg4 = 'De meeste speciale tekens (!, @, #, $, %, etc. etc.) mogen niet voorkomen in een chatnaam.';

// send a string to applet
function SendIt(string)
{
	document.pjirc.sendString(string);
	document.pjirc.requestSourceFocus();
}

// send smiley string to applet
function smiley(symbol)
{
	document.pjirc.setFieldText(document.pjirc.getFieldText()+symbol+' ');
	document.pjirc.requestSourceFocus();
}

// register nickname
function registernickname(nick)
{
	var register_nickname_msg1 = 'Welke chatnaam wilt u registeren?';
	var register_nickname_msg2 = 'Wat is uw e-mailadres? (Deze bent u verplicht om in te vullen!)';
	var register_nickname_msg3 = 'Geef een wachtwoord op voor uw chatnaam.';
	var register_nickname_msg4 = 'Herhaal uw wachtwoord.';
	
	//question about which nickname
	var register_nickname_answer1 = prompt(register_nickname_msg1);
		if (register_nickname_answer1 != ''){
			var nick_name = register_nickname_answer1;
			//question about which email adress
			var register_nickname_answer2 = prompt(register_nickname_msg2);
				if (register_nickname_answer2 != ''){
					var nick_email = register_nickname_answer2;
					//question about which password
					var register_nickname_answer3 = prompt(register_nickname_msg3);
						if (register_nickname_answer3 != ''){
							var nick_pass1 = register_nickname_answer3;
							//Repeat password
							var register_nickname_answer4 = prompt(register_nickname_msg4);
								if (register_nickname_answer4 != ''){
									var nick_pass2 = register_nickname_answer4;
										//looks of pass1 and pass2 are equil
										if (nick_pass1 == nick_pass2){
											SendIt('/nick '+nick_name);
											alert("Alle velden zijn goed ingevuld, kijk nu in de chatroom of je nickname succesvol geregistreerd is! Onthoud je wachtwoord goed! Klik bovenaan op de knop 'Help' als je hulp nodig hebt.");
											SendIt('/msg nickserv register '+nick_pass1+' '+nick_email);
										}else {alert("Je hebt niet 2x hetzelfde wachtwoord ingegeven. Helaas moet je nu alles weer opnieuw intypen.");}	
								}
						}else{ alert("Je hebt geen wachtwoord ingegeven. Het wachtwoord moet uit minimaal 5 karakters bestaan. Graag opnieuw proberen."); }
				}
				else{ alert("Je hebt geen goed e-mail adres ingegeven. Graag opnieuw proberen."); }
			}
	
	
	
}

// identify nickname
function identifynickname(nick)
{
	var identify_nickname_msg1 = 'Wat is uw geregistreerde chatnaam?';
	var identify_nickname_msg2 = 'Type hier uw wachtwoord in dat behoord bij je geregistreerde nickname.';

	//question about which nickname
	var identify_nickname_answer1 = prompt(identify_nickname_msg1);
		if (identify_nickname_answer1 != ''){
			var identify_name = identify_nickname_answer1;
				var identify_nickname_answer2 = prompt(identify_nickname_msg2)
					if (identify_nickname_answer2 != ''){
						var identify_pass = identify_nickname_answer2;
						SendIt('/nick '+identify_name);
						SendIt('/msg nickserv identify '+identify_pass);
					}else {alert("U dient een wachtwoord in te typen. Graag opnieuw proberen."); }
		}else {alert("U dient een nickname in te typen. Graag opnieuw proberen."); }
}


isaway = false;
// switch nick, set away message
function maway(action, nick)
{
	var away_reason = document.getElementById('away_reason').value;
	var nick_change = document.getElementById('nick_change').value;
	var chatnaamaway = ''+nick+'|Weg';
	var chatnaam_away_question = "Wat moet uw chatnaam worden als u afwezig bent? Bijvoorbeeld '" + chatnaamaway + "'."
	var chatnaam_back_question = "Wat moet uw chatnaam worden, nu u weer terug bent? Bijvoorbeeld '" + nick + "'."
	var chatnaamchange = false;
	var nicknamecannotchange = 'Uw kunt uw chatnaam niet wijzigen wanneer u afwezig bent. Klik eerst op de knop "Ben Terug" om daarna uw chatnaam te veranderen.';
	switch (action)
	{
		case 'away':
			if (!isaway)
			{
				txt = away_reason;
				if (txt == '') txt = msg2;
				
				SendIt('/away '+txt);
				isaway = true;
				var awaynickname = prompt(chatnaam_away_question);
					if (awaynickname){
						SendIt('/nick '+awaynickname);
						var chatnaamchange = true;
					}

			} else alert(msg0);
			break;
		case 'back':
			if (isaway)
			{
				var backnickname = prompt(chatnaam_back_question);
					if (backnickname){
						SendIt('/nick '+backnickname);
						var chatnaamchange = false;
					}	
				SendIt('/away');
				away_reason = '';
				isaway = false;
			} else alert(msg1);
			break;
		case 'nickchange':
			if (isaway)
			{
				alert(nicknamecannotchange);
			}else
			SendIt('/nick '+nick_change);
			break;
	}
}

// == Login Page Functions

// Check Form Data
function CheckForm(self)
{
	if (!CheckFormData(document.login.chan, 'U moet een chatroom opgeven!')) return false;
	if (!CheckFormData(document.login.host, 'U moet een chatserver opgeven!')) return false;

	 if (document.login.save[0] && document.login.save[0].checked && document.cookie)
     {
        if (!confirm('Oudere instellingen overschrijven?')) return false;
     }
	var nick = document.login.nick;

	if (nick.value == '')
	{
		nick.value = default_nick+Math.round(Math.random()*1000);
	}


	else if(!nick.value.match(/^[A-Za-z0-9\[\]\{\}^\\\|\_\-`]{1,32}$/))
	{
		alert('In een chatnaam mogen alleen de volgende tekens zitten:      a-z A-Z 0-9 [ ] { } ^ \ | _ - ');
		nick.value = nick.value.replace(/[^A-Za-z0-9\[\]\{\}^\\\|\_\-`]/g, '');
		nick.focus();
		return false;
	}


	if (document.login.popupenabled && document.login.popupenabled.value)
	{
		document.login.target = 'mypopup';
	}

	if (document.login.layerenabled && document.login.layerenabled.value) LoadLayer('400', '200');
	if (document.login.popupenabled && document.login.popupenabled.value)
	{
		OpenPopup(self, '1024', '768');
		window.setTimeout('window.location.href = \''+self+'\'', 2000);
	}

	return true;
}

function CheckFormData(inp, msg)
{
	if (inp)
	{
		if (inp.value == '')
		{
			alert(msg);
			inp.focus();
			return false;
		}
		else return true;
	}
	return true;
}

// write invisible layer
function WriteLayer(message)
{
	var html = '<div id="layerwindow" class="layerwindow">\n';
	html += '\t<table width="400" cellspacing="0" cellpadding="0" class="border"><tr>\n';
	html += '\t\t<td align="center" height="100"><h2>'+message+'<\/h2><\/td>\n';
	html += '\t<\/tr><\/table>\n';
	html += '<\/div>\n';

	return html;
}

// make layer visible, and put it to the center of the browser window
function LoadLayer(x, y)
{
	var divwidth  = x;
	var divheight = y;
	var browserwidth  = window.innerWidth || document.body.clientWidth;
	var browserheight = window.innerHeight || document.body.clientHeight;
	var leftpx = (browserwidth-divwidth)/2;
	var toppx  = (browserheight-divheight)/2;

	document.getElementById('layerwindow').style.top  = '100px';
	// document.getElementById('layerwindow').style.top  = Math.round(toppx)+'px';
	document.getElementById('layerwindow').style.left = Math.round(leftpx)+'px';
	document.getElementById('layerwindow').style.visibility = 'visible';
}

// open chat in popup window
function OpenPopup(self, x, y)
{
	var values  = 'width='+x+', height='+y+', left=0, top=0,'
	values += 'dependent=no, hotkeys=no, resizable=yes, scrollbars=no, menubar=no'
	window.open(self, 'mypopup', values);
}

// check, if java is enabled in browser
function JavaCheck()
{
	var html = '<table width="100%" cellspacing="0" cellpadding="0" class="footer">\n';

	var status = 'Disabled';
	if (navigator.javaEnabled()) status = 'Enabled';

	html += '\t<tr><td align="right">\n';
	html += '\t\tJava Status:&nbsp;<span style="color: red;">'+status+'<\/span>\n';

	if (status == 'Disabled')
	{
		html += '\t\t<br>Download java op <a href="http://java.com" target="_blank">java.com<\/a>\n';
	}

	html += '\t<\/td><\/tr>\n';
	html += '<\/table>\n';

	return html;
}
