/*************************************************
 *                    javascript.js
 *
 *                    © 2005 Q-BB.nl
 *************************************************/

/* (un)check all checkboxes */
function checkall ( formname )
{
	for ( var i = 0; i < formname.elements.length; i++ )
	{
		var element = formname.elements[i];
		if ( ( element.name != 'allbox' ) && ( element.type == 'checkbox' ) )
		{
			element.checked = formname.allbox.checked;
		}
	}
}

/* show private message popup */
function show_popup ( url, msg )
{	
	if ( confirm ( msg ) )
	{
		location.href = url;
	}
}

/* go to URL */
function go_to ( )
{
	var URL = document.form.do_url.options[document.form.do_url.selectedIndex].value;
	window.location.href = URL;
}

/* Are you sure? */
function sure ( lang )
{
	var agree = confirm ( lang ); 
	if ( agree )
	{
		return true;
	}
	else
	{
		return false;
	}
}

// check a checkbox
function check_box ( name )
{
	var checked = window.document.form.elements[name].checked;
	
	if ( checked == true )
	{
		window.document.form.elements[name].checked = false;
	}
	else
	{
		window.document.form.elements[name].checked = true;
	}
}

// add bbcode
function add_bbcode ( tag, field, lang ) 
{
	var text;
	text = prompt ( lang );
	text = ( text == '' || text == null || text == 'undefined' ) ? '' : '[' + tag + ']' + text+ '[/' + tag + ']';
	
	document.form.elements[field].value += text;
	document.form.elements[field].focus ( );
}


/*  Add bbcode and smilies to textarea  *
 * Powered by the phpBB group & subBlue *
 *       Modified by Roland, QBB        */

function smile ( code, field )
{
	var txtarea = document.form.elements[field]; 
	text = ' ' + code + ' '; 

	if ( txtarea.createTextRange && txtarea.caretPos )
	{
		var caretPos = txtarea.caretPos; 
		caretPos.text = caretPos.text.charAt ( caretPos.text.length - 1 ) == ' ' ? text + ' ' : text; 
		txtarea.focus(); 
	}
	else
	{
		txtarea.value  += text; 
		txtarea.focus(); 
	} 
} 

var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);

var is_ie = ( ( clientPC.indexOf ( "msie" ) != -1 ) && ( clientPC.indexOf ( "opera" ) == -1 ) ); 
var is_nav = ( ( clientPC.indexOf ( 'mozilla' ) != -1 ) && ( clientPC.indexOf ( 'spoofer' ) == -1 ) 
			&& ( clientPC.indexOf ( 'compatible' ) == -1 ) && ( clientPC.indexOf ( 'opera' ) == -1 ) 
			&& ( clientPC.indexOf ( 'webtv' ) == -1 ) && ( clientPC.indexOf ( 'hotjava' ) == -1 ) ); 

var is_win = ( ( clientPC.indexOf ( "win" ) != -1 ) || ( clientPC.indexOf ( "16bit" ) != -1 ) ); 
var is_mac = ( clientPC.indexOf ( "mac" ) != - 1 ); 

bbcode = new Array ( ); 
bbtags = new Array( '[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[url]','[/url]','[img]','[/img]', '[email]', '[/email]' );
imageTag = false; 


function getarraysize ( thearray )
{
	for ( i = 0; i < thearray.length; i++ )
	{
		if ( ( thearray[i] == "undefined") || (thearray[i] == "") || ( thearray[i] == null ) )
			return i;
	}
	return thearray.length; 
} 

function arraypush ( thearray, value )
{
	thearray[getarraysize ( thearray )] = value;
}

function arraypop ( thearray )
{
	thearraysize = getarraysize ( thearray );
	retval = thearray[thearraysize - 1];
	delete thearray[thearraysize - 1];
	return retval;
}

function bbfontstyle ( bbopen, bbclose, field )
{
	if ( ( clientVer >= 4 ) && is_ie && is_win )
	{
		theSelection = document.selection.createRange().text; 
		if ( !theSelection )
		{
			document.form.elements[field].value += bbopen + bbclose; 
			document.form.elements[field].focus(); 
			return; 
		} 
		document.selection.createRange().text = bbopen + theSelection + bbclose; 
		document.form.elements[field].focus(); 
		return; 
	}
	else
	{
		document.form.elements[field].value += bbopen + bbclose; 
		document.form.elements[field].focus(); 
		return; 
	} 
	storeCaret(document.form.elements[field]); 
} 

function bbstyle ( bbnumber, field )
{
	donotinsert = false;
	theSelection = false;
	bblast = 0;

	if ( bbnumber == -1 )
	{
		while ( bbcode[0] )
		{
			butnumber = arraypop(bbcode) - 1;
			document.form.elements[field].value += bbtags[butnumber + 1];
			buttext = eval ( 'document.form.addbbcode' + butnumber + '.value' );
			eval ( 'document.form.addbbcode' + butnumber + '.value ="' + buttext.substr ( 0, ( buttext.length - 1 ) ) + '"' );
		}
		imageTag = false;
		document.form.elements[field].focus();
		return;
	}
	
	if ( ( clientVer >= 4 ) && is_ie && is_win )
		theSelection = document.selection.createRange().text;
	
	if ( theSelection )
	{
		document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
		document.form.elements[field].focus();
		theSelection = '';
		return;
	}
	
	for (i = 0; i < bbcode.length; i++)
	{
		if ( bbcode[i] == bbnumber+1 )
		{
			bblast = i;
			donotinsert = true;
		}
	}
	
	if ( donotinsert )
	{
		while ( bbcode[bblast] )
		{
			butnumber = arraypop(bbcode) - 1;
			document.form.elements[field].value += bbtags[butnumber + 1];
			buttext = eval ( 'document.form.addbbcode' + butnumber + '.value' );
			eval ( 'document.form.addbbcode' + butnumber + '.value ="' + buttext.substr ( 0, ( buttext.length - 1 ) ) + '"' ); 
			imageTag = false; 
		} 
		document.form.elements[field].focus(); 
		return; 
	}
	else
	{
		document.form.elements[field].value += bbtags[bbnumber]; 
		if ( ( bbnumber == 14 ) && ( imageTag == false ) ) imageTag = 1; 
		arraypush(bbcode,bbnumber+1); 
		eval ( 'document.form.addbbcode' + bbnumber + '.value += " *"' ); 
		document.form.elements[field].focus(); 
		return; 
	} 
	storeCaret ( document.form.elements[field] );
}
