////////////////////////////////////////////////////////////////////////////////////////////////////
// NS doesn't deal with frame locations properly on resize, IE doesn't call the top resize handler
// at all, so....
////////////////////////////////////////////////////////////////////////////////////////////////////
function reloadFrames( ) {
	if ( top.locTop ) { fraTop.window.location = eval( 'top.alanguage_index + "/" + top.locTop' ) }
	else { if ( fraTop ) { fraTop.window.location.reload( ); } }
	if ( top.locMain ) { fraMain.window.location = eval( 'top.alanguage_index + "/" + top.locMain' ) }
	else { fraMain.window.location.reload( ) }
}
if ( document.layers ) {
	window.onResize = reloadFrames;	// make this global cos NS doesn't like dynamically written onResize handlers....
}
function reloadMe( nLangIDP, nIDP ) {
	if ( top.alanguage_index != nLangIDP ) {
		var sUrl= new String( top.window.location );
		var sMyLIx = sUrl.indexOf( 'lang=' );
		var sMyIIx = sUrl.indexOf( 'id=' );
		if ( sMyLIx > -1 ) {
			sUrl = sUrl.substr( 0, sMyLIx + 5 ) + nLangIDP + ( (sUrl.indexOf( '&', sMyLIx+6 )> -1 )? sUrl.substr( sUrl.indexOf('&',sMyLIx+6), sUrl.length ) : '' );
		}
		else {
			if ( sUrl.indexOf ( '?' ) == -1 ) { sUrl += '?lang=' + nLangIDP; }
			else { sUrl += '&lang=' + nLangIDP; }
		}
		if ( sMyIIx > -1 ) {
			sUrl = sUrl.substr( 0, sMyIIx + 3 ) + nIDP + ( (sUrl.indexOf( '&', sMyIIx+4 )> -1 )? sUrl.substr( sUrl.indexOf('&',sMyIx+4), sUrl.length ) : '' );
		}
		else {
			if ( sUrl.indexOf ( '?' ) == -1 ) { sUrl += '?id=' + nIDP; }
			else { sUrl += '&id=' + nIDP; }
		}
		top.window.location = sUrl;
	}
}
function showHelp( sUrlP, nLeftP, nTopP, nWidthP, nHeightP, sOffsetP ) {
	sUrlP = ( sUrlP ) ? sUrlP : '';
	var sLoginTarget = (top.logintarget)?top.logintarget:'';
	if ( sLoginTarget != '' ) {
		if ( sUrlP.indexOf( 'http://' ) == -1 ) { sUrlP = 'http://' + sLoginTarget + sUrlP; }
	}
	sUrlP = ( sUrlP == '' ) ? '../' + top.alanguage_index + '/generator.html?lang=' + top.alanguage_index + '&id=' + top.achapter_id_help : sUrlP;
	sOffsetP = ( sOffsetP ) ? sOffsetP : '';
	sOffsetP = ( sOffsetP == '' ) ? '' : '#' + sOffsetP;
	sUrlP += sOffsetP;
	nLeftP = ( nLeftP ) ? nLeftP : 0;
	nTopP = ( nTopP ) ? nTopP : screen.height - 400;
	nWidthP = ( nWidthP ) ? nWidthP : 700;
	nHeightP = ( nHeightP ) ? nHeightP : 330; // make it a child win for NS with this: dependent=yes,
	var sOptions = 'scrollbars=yes,resizable=yes,menubar=no,left=' + nLeftP + ',top=' + nTopP + ',width=' + nWidthP + ',height=' + nHeightP;
	top.hHelpWindow = open( sUrlP, 'helpwindow', sOptions );
	top.hHelpWindow.focus( );
}
function showToc( sUrlP, nLeftP, nTopP, nWidthP, nHeightP, sOffsetP ) {
	sUrlP = ( sUrlP ) ? sUrlP : '';
	sUrlP = ( sUrlP == '' ) ? top.apage_hilfe : sUrlP;
	sOffsetP = ( sOffsetP ) ? sOffsetP : '';
	sOffsetP = ( sOffsetP == '' ) ? '' : '#' + sOffsetP;
	sUrlP += sOffsetP;
	nLeftP = ( nLeftP ) ? nLeftP : screen.width - 470;
	nTopP = ( nTopP ) ? nTopP : 0;
	nWidthP = ( nWidthP ) ? nWidthP : 450;
	nHeightP = ( nHeightP ) ? nHeightP : 350;
	var sOptions = 'scrollbars=yes,resizable=yes,menubar=no,left=' + nLeftP + ',top=' + nTopP + ',width=' + nWidthP + ',height=' + nHeightP;
	top.hTocWindow = open( sUrlP, 'tocwindow', sOptions );
	top.hTocWindow.focus( );
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//	Parameter nWhereP:
//		0 - writes into fraContent
//		1 - opens a new window for output
//		2 - writes into fraMain
////////////////////////////////////////////////////////////////////////////////////////////////////
function openChapter( nChapterIDP, nWhereP, sOtherOptionsP, nLeftP, nTopP, nWidthP, nHeightP ) {
	var bOpened = false;
	nWhereP = (nWhereP)?nWhereP:0;
	if ( nChapterIDP > -1 ) {
		if ( ( ! nWhereP ) || ( nWhereP != 1 ) ) {
			if ( top.fraMain && ( nChapterIDP > -1 ) ) {
				if ( ( nWhereP == 0 ) && ( top.fraMain.fraContent ) ) {
					top.showMenu = 'yes';
					top.fraMain.fraContent.window.location = 'generator.html?lang=' + top.alanguage_index + '&id=' + nChapterIDP;
					bOpened = true;
				}
				else if ( ( nWhereP == 0 ) && ( ! top.fraMain.fraContent ) ) {
					top.showMenu = 'yes';
					top.fraMain.location = '../' + top.alanguage_index + '/main.html?realm=' + top.arealm_id + '&chapter=' + nChapterIDP + '&menu=' + top.amenu_id + '&lang=' + top.alanguage_index;
					bOpened = true;
				}
				else if ( ( nWhereP == 2 ) && ( top.fraMain ) ) {
					top.showMenu = 'no';
					top.fraMain.window.location = 'generator.html?lang=' + top.alanguage_index + '&id=' + nChapterIDP;
					bOpened = true;
				}
			}
		}
		if ( bOpened == false ) {
			var sUrl = 'generator.html?lang=' + top.alanguage_index + '&id=' + nChapterIDP;
			var sOptions = (sOtherOptionsP)?sOtherOptionsP:'scrollbars=yes,resizable=yes,menubar=no';
			if ( nLeftP ) { sOptions += ',left=' + nLeftP; }
			if ( nTopP ) { sOptions += ',top=' + nTopP; }
			if ( nWidthP ) { sOptions += ',width=' + nWidthP; }
			if ( nHeightP ) { sOptions += ',height=' + nHeightP; }
			top.hTxtWindow = open( sUrl, 'txtwindow', sOptions );
			top.hTxtWindow.focus( );
		}
	}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
// this parses entries into a search field for fulltext search
////////////////////////////////////////////////////////////////////////////////////////////////////
function parseFullText( sTextP ) {
	var saTest1 = sTextP.split( '*' );
	top.sFTError = '';
	if ( saTest1.length > 3 ) { top.sFTError = 'mind. 3 Zeichen eingeben'; }
	var saTest2 = sTextP.split( '?' );
	if ( ( saTest2.length > 1 ) && ( saTest1.length > 1 ) ) { top.sFTError += ( ( top.sFTError.length > 0 ) ? '\n' : '' ) + 'noch ein Fehler...' }
	if ( ( saTest1.length > 3 ) || ( ( saTest1.length > 1 ) && ( saTest2.length > 1 ) ) ) { sTextP = ''; }
	var saSplit = sTextP.split(' ');
	var saAnd = new Array( );
	var saOr = new Array( );
	var saNot = new Array( );
	var sReturn = '';
	var i = 0;
	while( i < saSplit.length ) {
		if ( saSplit[i] ) {
			switch ( saSplit[i].charCodeAt(0) ) {
				case 32: {	//do nothing
					break;
				}
				case 43: {	//+
					saSplit[i] = saSplit[i].substr( 1, saSplit[i].length-1 ); // cut off the +
					if ( saSplit[i].charCodeAt(0) == 34 ) {
						saAnd[saAnd.length] = '';
						while ( ( i < saSplit.length ) && ( saSplit[i].charCodeAt(saSplit[i].length-1) != 34 ) ) {
							saAnd[saAnd.length-1] += ' ' + saSplit[i];
							i++;
						}
						if ( saSplit[i] ) { 
							if ( saSplit[i].charCodeAt(saSplit[i].length-1) == 34 ) { saAnd[saAnd.length-1] += ' ' + saSplit[i].substr(0, saSplit[i].length-1) }
							else { saAnd[saAnd.length-1] += ' ' + saSplit[i] }
						}
						saAnd[saAnd.length-1] = saAnd[saAnd.length-1].substr( 2, saAnd[saAnd.length-1].length-2 );
					}
					else {
						saAnd[saAnd.length] = saSplit[i];
						//saAnd[saAnd.length-1] = saAnd[saAnd.length-1].replace( re, '%' );
						//saAnd[saAnd.length-1] = saAnd[saAnd.length-1].replace( re2, '_' );
					}
					break;
				}
				case 45: {	//-
					saSplit[i] = saSplit[i].substr( 1, saSplit[i].length-1 ); // cut off the -
					if ( saSplit[i].charCodeAt(0) == 34 ) {
						saNot[saNot.length] = '';
						while ( ( i < saSplit.length ) && ( saSplit[i].charCodeAt(saSplit[i].length-1) != 34 ) ) {
							saNot[saNot.length-1] += ' ' + saSplit[i];
							i++;
						}
						if ( saSplit[i] ) { 
							if ( saSplit[i].charCodeAt(saSplit[i].length-1) == 34 ) { saNot[saNot.length-1] += ' ' + saSplit[i].substr(0, saSplit[i].length-1) }
							else { saNot[saNot.length-1] += ' ' + saSplit[i] }
						}
						saNot[saNot.length-1] = saNot[saNot.length-1].substr( 2, saNot[saNot.length-1].length-2 );
					}
					else {
						saNot[saNot.length] = saSplit[i];
						//saNot[saNot.length-1] = saNot[saNot.length-1].replace( re, '%' );
						//saNot[saNot.length-1] = saNot[saNot.length-1].replace( re2, '_' );
					}
					break;
				}
				default: {	// other char we'll search for
					if ( saSplit[i].charCodeAt(0) == 34 ) {
						saOr[saOr.length] = '';
						while ( ( i < saSplit.length ) && ( saSplit[i].charCodeAt(saSplit[i].length-1) != 34 ) ) {
							saOr[saOr.length-1] += ' ' + saSplit[i];
							i++;
						}
						if ( saSplit[i] ) { 
							if ( saSplit[i].charCodeAt(saSplit[i].length-1) == 34 ) { saOr[saOr.length-1] += ' ' + saSplit[i].substr(0, saSplit[i].length-1) }
							else { saOr[saOr.length-1] += ' ' + saSplit[i] }
						}
						saOr[saOr.length-1] = saOr[saOr.length-1].substr( 2, saOr[saOr.length-1].length-2 );
					}
					else {
						saOr[saOr.length] = saSplit[i];
						//saOr[saOr.length-1] = saOr[saOr.length-1].replace( re, '%' );
						//saOr[saOr.length-1] = saOr[saOr.length-1].replace( re2, '_' );
					}
					break;
				}
			}
		}
		i++;
	}
	for ( var i = 0; i < saAnd.length; i++ ) {
		( sReturn == '' ) ? sReturn = saAnd[i] : sReturn += ' &' + saAnd[i];
	}
	for( var i = 0; i < saOr.length; i++ ) {
		( sReturn == '' ) ? sReturn = saOr[i] : sReturn += ' |' + saOr[i];
	}
	for( var i = 0; i < saNot.length; i++ ) {
		( sReturn == '' ) ? sReturn = '' : sReturn += ' ~' + saNot[i]; //if sReturn returns '', we have no valid FT search
	}
	return sReturn;
}
function doSearch( hDocP ) {
	var sSearch = top.readFormData( hDocP, 'search' );
	var saSplit = sSearch.split( '=' );
	if ( saSplit[1] != '' ) {
		if ( ! top.nIeIx ) { top.nIeIx = 0; }
		top.nIeIx++;
		var sTarget = '../' + top.alanguage_index + '/generator.html?id=' + top.achapter_id_searchresult;
		sTarget += '&lang=' + top.alanguage_index + '&ix=' + top.nIeIx + '&srch=' + saSplit[1];
		var bOpen = false;
		if ( top.fraMain ) {
			if ( top.fraMain.fraContent ) {
				top.fraMain.fraContent.window.location =  sTarget;
				bOpen = true;
			}
		}
		if ( bOpen == false ) {
			top.window.location = sTarget
		}
	}
}

