function validateExtension( filename )
{
	// if( !filename.match( "^.*\S{1,}.*\.\w{2,4}$" ) )
	//	return confirm( 'Deze nieuwe naam bevat geen geldige extensie, waardoor deze mogelijk onbruikbaar wordt. Weet u zeker dat u deze file wilt hernoemen naar \'' + filename + '\'?' );

	return true;
}

function OpenDetails( objnr )
{
	var obj  = "FileDetails" + objnr;
	var fObj = getElement( obj );

	if( fObj.style.visibility == "hidden" )
		OpenOne( objnr );
	else
	    CloseOne( objnr );
}

function OpenOne( objnr )
{
 	var obj  = "FileDetails" + objnr;
	var fObj = getElement( obj );

	if( fObj == null )
		return false;

	fObj.style.display="";
	fObj.style.visibility="visible";

	obj += "Control";
	
	fObj = getElement( obj );

	if( fObj != null )
	{
		fObj.src = "XelynWebFiles/images/copen.png";
		fObj.fixed = false;
	}

	return true;
}

function CloseOne( objnr )
{
 	var obj  = "FileDetails" + objnr;
  var fObj = getElement( obj );

	if( fObj == null )
		return false;

	fObj.style.display="none";
	fObj.style.visibility="hidden";

	obj += "Control";
	
	fObj = getElement( obj );

	if( fObj != null )
	{
		fObj.src = "XelynWebFiles/images/cfolded.png";
		fObj.fixed = false;
	}

	return true;
}

function CloseAll( )
{
	var i = 1;
	while( CloseOne( i++ ) );
}

function OpenAll( )
{
	var i = 1;
	var activeElement = getElement( 'editId' );
	var activeId = 0;

	if( activeElement != null )
		activeId = parseInt( activeElement.value );
		
	var okay = true;
	
	while( okay )
	{
		if( activeId != i )
		{
			if( isVisible( 'fileItemRow' + i ) )
				okay = OpenOne( i );
			else
				okay = CloseOne( i );
		}
			
		++i;
	}
}

function setStatusText( msg )
{
 	var obj  = "statusBar";
  var fObj = getElement( obj );

	fObj.content = msg;
}

function editFile( filenr )
{
//	showHide('defaultStatusBar', false );
//	showHide('uploadStatusBar', false );

	doReset();
	showHide('renameStatusBar', true );

	CloseAll();
	OpenOne( filenr );

  var fObj = getElement( 'renameId' );

	fObj.content = filenr;

	fObj = getElement( 'newFileName' );
	if( fObj != null )
	{
		fObj.focus();
		fObj.select();
	}

	blinkTimer( 'statusBarContainer', 0, 3 );
	return true;
}

// Page specific
var fileNames; // Filled in DirList
function doReset()
{
	showHide('uploadStatusBar', false );
	showHide('renameStatusBar', false );
	showHide('editStatusBar', false );
	showHide('defaultStatusBar', false );
	showHide('searchStatusBar', false );
	showHide('errorStatusBar', false );
	showHide('ReplacePanel', false );

	unblinkObject('statusBarContainer');
	
	enableBtn( 'addField', false );
	enableBtn( 'delField', false );
	enableBtn( 'UploadBtn', false );
	enableBtn( 'RenameBtn', false );
	enableBtn( 'saveDetailsBtn', false );

 	var obj = "FileDetails" + 1 + "Control";
 	var i = 1;
 	
 	while( showHide( obj, true ) )
		obj = "FileDetails" + (i++) + "Control";

	i = 1;
	
	// while( unblinkObject( 'fileItemRow' + i ) ) ++i;
	while( showHide( 'fileItemRow' + i, true ) )
	{
		showHide( 'FileDetailsPanel' + i, true )
		++i;
	}

	return false;
}

function enableBtn( btn, onoff )
{
	var fObj = getElement( btn );

	if( fObj != null )
		fObj.disabled = !onoff;
}

function doRename( filenr )
{
	doReset();

	showHide('renameStatusBar', true );

	CloseAll();
	OpenOne( filenr );

	var fObj = getElement( 'renameId' );

	fObj.value = filenr;

	fObj = getElement( 'newFileName' );
	if( fObj != null )
	{
		fObj.value = fileNames[filenr][0];
		fObj.focus();
		fObj.select();
	}

	enableBtn( 'RenameBtn', true );

	blinkTimer( 'statusBarContainer', 0, 3 );
	return true;
}

function doEdit( filenr )
{
/*
	doReset();

	showHide('editStatusBar', true );

	CloseAll();
	OpenOne( filenr );
	
	getElement( 'editId' ).value = filenr;
	
	getElement( 'editFileDetailsTitle' ).value = ( fileNames[filenr][4] != null ) ? fileNames[filenr][4] : "";
	getElement( 'editFileDetailsSubject' ).value = fileNames[filenr][5];
	getElement( 'editFileDetailsAuthor' ).value = fileNames[filenr][6];
	getElement( 'editFileDetailsManager' ).value = fileNames[filenr][7];
	getElement( 'editFileDetailsCompany' ).value = fileNames[filenr][8];
	getElement( 'editFileDetailsCategory' ).value = fileNames[filenr][9];
	getElement( 'editFileDetailsKeywords' ).value = fileNames[filenr][10];
	getElement( 'editFileDetailsComments' ).value = fileNames[filenr][11];

	enableBtn( 'saveDetailsBtn', true );

	blinkTimer( 'statusBarContainer', 0, 3 );
	
	return true;
*/
}

function doSearch()
{
	doReset();

	showHide('searchStatusBar', true );

	var fObj = getElement( 'searchString' );
	if( fObj != null )
	{
		fObj.focus();
		fObj.select();
	}
	blinkTimer( 'statusBarContainer', 0, 3 );
}

function doUpload()
{
	doReset();
	showHide('uploadStatusBar', true );

	var fObj = getElement( 'uploadFile' );
	if( fObj != null )
	{
		fObj.focus();
		fObj.select();
	}
	
	enableBtn( 'UploadBtn', true );
	
	blinkTimer( 'statusBarContainer', 0, 3 ); return false;
}

function doCancel()
{
	doReset();

	showHide('defaultStatusBar', true );
}

function doCancelEdit( objnr )
{
 	var obj  = "FileDetails" + objnr + "Control";
	showHide( obj, true );
	
	var fObj = getElement( 'editId' );
	
	if( fObj != null )
		fObj.value = 0;

	OpenOne( objnr );
	doCancel();
}

function expand(node)
{
	document.getElementById(node).style.display="";
}

function returnImage(imagename)
{
	var arr = new Array();
	arr["filename"] = imagename;
	window.parent.returnValue = arr;
	window.parent.close();
}

function searchFiles( objname )
{
	if( fileNames == null )
		alert( "Search error... please reload the page or contact your administrator" );

	var file = null;
	var entry = null;
	var query = "";
	var found = false;
	var i = 0;
	var j = 0;
	
	var fObj = getElement( objname );
	
	if( fObj != null )
		query = fObj.value;
	else
		query = ""
		
	if( query == "" )
	{
		doReset();
		
		showHide('errorStatusBar', true );

		fObj = getElement( 'errorMsgText' );

		if( fObj != null )
		{
			fObj.innerHTML = "Ongeldige zoekterm";
//			fObj.value = "Ongeldige zoekterm";
			fObj.textContent = "Ongeldige zoekterm";
		}
		else
			alert( "Ongeldige zoekterm" );

		return;
	}

	CloseAll();

	for( i = 1; i < fileNames.length; ++i )
	{
		file = fileNames[i];
		
		if( findRecursive( query.toLowerCase(), file ) )
		{
			found = true;
		
			/*
			OpenOne( i );
			unblinkObject( 'fileItemRow' + i );
			blinkObject( 'fileItemRow' + i );
			*/
		}
		else
		{
			showHide( 'fileItemRow' + i, false );
		}

		if( i > 500 )		// Safetynet
		{
			alert( "Error: Search limit reached, query not found" );
			break;
		}
	}
	
	if( !found ) alert( "Zoekterm niet gevonden in huidige bestanden" );
}

function findRecursive( query, searchArray )
{
	var found = false;
	var i = 0;

		for( i = 0; i < searchArray.length; ++i )
		{
			entry = searchArray[i];

			try
			{
				if( typeof entry == "string" )
				{
					if( (entry.toLowerCase().search( query )) != -1 )
						found = true;
				}
				else if( typeof entry.sort != "undefined")
				{
					if( findRecursive( query, searchArray[i] ) )
						found = true;
					continue;
				}
				else
				{
				}
			}
			catch( ex )
			{
				continue;
			}

			if( i > 500 )	// Safetynet
			{
				alert( "Error: Search limit reached, query not found" );
				return false;
			}
		}
		
		return found;
}

// Overwrite this function to disable png-fixing
// function correctPNG() {}

/*
function FileManager( )
{
	xShowModalDialog( "pageselector.aspx", window, "dialogWidth:300px; dialogHeight:600px;help:0;status:0;resizable:1;", FileManager2 );
}

function FileManager2( value )
{
	console.log( 'Value: ', value );
	alert( value );
	
	if( value != null )
	{
		// var obj = getElement( 'movetarget' );

		// if( obj != null ) obj.value = value;
	}
}
*/
