<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"

   "http://www.w3.org/TR/html4/frameset.dtd">

<!--

 * FCKeditor - The text editor for Internet - http://www.fckeditor.net

 * Copyright (C) 2003-2009 Frederico Caldeira Knabben

 *

 * == BEGIN LICENSE ==

 *

 * Licensed under the terms of any of the following licenses at your

 * choice:

 *

 *  - GNU General Public License Version 2 or later (the "GPL")

 *    http://www.gnu.org/licenses/gpl.html

 *

 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")

 *    http://www.gnu.org/licenses/lgpl.html

 *

 *  - Mozilla Public License Version 1.1 or later (the "MPL")

 *    http://www.mozilla.org/MPL/MPL-1.1.html

 *

 * == END LICENSE ==

 *

 * This page compose the File Browser dialog frameset.

-->

<html>

	<head>

		<title>FCKeditor - Resources Browser</title>

		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

		<link href="browser.css" type="text/css" rel="stylesheet">

		<script type="text/javascript" src="js/fckxml.js"></script>

		<script type="text/javascript">

// Automatically detect the correct document.domain (#1919).

(function()

{

	var d = document.domain ;



	while ( true )

	{

		// Test if we can access a parent property.

		try

		{

			var test = window.opener.document.domain ;

			break ;

		}

		catch( e )

		{}



		// Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...

		d = d.replace( /.*?(?:\.|$)/, '' ) ;



		if ( d.length == 0 )

			break ;		// It was not able to detect the domain.



		try

		{

			document.domain = d ;

		}

		catch (e)

		{

			break ;

		}

	}

})() ;



function GetUrlParam( paramName )

{

	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;

	var oMatch = oRegex.exec( window.top.location.search ) ;



	if ( oMatch && oMatch.length > 1 )

		return decodeURIComponent( oMatch[1] ) ;

	else

		return '' ;

}



var oConnector = new Object() ;

oConnector.CurrentFolder	= '/' ;



var sConnUrl = GetUrlParam( 'Connector' ) ;



// Gecko has some problems when using relative URLs (not starting with slash).

if ( sConnUrl.substr(0,1) != '/' && sConnUrl.indexOf( '://' ) < 0 )

	sConnUrl = window.location.href.replace( /browser.html.*$/, '' ) + sConnUrl ;



oConnector.ConnectorUrl = sConnUrl + ( sConnUrl.indexOf('?') != -1 ? '&' : '?' ) ;



var sServerPath = GetUrlParam( 'ServerPath' ) ;

if ( sServerPath.length > 0 )

	oConnector.ConnectorUrl += 'ServerPath=' + encodeURIComponent( sServerPath ) + '&' ;



oConnector.ResourceType		= GetUrlParam( 'Type' ) ;

oConnector.ShowAllTypes		= ( oConnector.ResourceType.length == 0 ) ;



if ( oConnector.ShowAllTypes )

	oConnector.ResourceType = 'File' ;



oConnector.SendCommand = function( command, params, callBackFunction )

{

	var sUrl = this.ConnectorUrl + 'Command=' + command ;

	sUrl += '&Type=' + this.ResourceType ;

	sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;



	if ( params ) sUrl += '&' + params ;



	// Add a random salt to avoid getting a cached version of the command execution

	sUrl += '&uuid=' + new Date().getTime() ;



	var oXML = new FCKXml() ;



	if ( callBackFunction )

		oXML.LoadUrl( sUrl, callBackFunction ) ;	// Asynchronous load.

	else

		return oXML.LoadUrl( sUrl ) ;



	return null ;

}



oConnector.CheckError = function( responseXml )

{

	var iErrorNumber = 0 ;

	var oErrorNode = responseXml.SelectSingleNode( 'Connector/Error' ) ;



	if ( oErrorNode )

	{

		iErrorNumber = parseInt( oErrorNode.attributes.getNamedItem('number').value, 10 ) ;



		switch ( iErrorNumber )

		{

			case 0 :

				break ;

			case 1 :	// Custom error. Message placed in the "text" attribute.

				alert( oErrorNode.attributes.getNamedItem('text').value ) ;

				break ;

			case 101 :

				alert( 'Folder already exists' ) ;

				break ;

			case 102 :

				alert( 'Invalid folder name' ) ;

				break ;

			case 103 :

				alert( 'You have no permissions to create the folder' ) ;

				break ;

			case 110 :

				alert( 'Unknown error creating folder' ) ;

				break ;

			default :

				alert( 'Error on your request. Error number: ' + iErrorNumber ) ;

				break ;

		}

	}

	return iErrorNumber ;

}



var oIcons = new Object() ;



oIcons.AvailableIconsArray = [

	'ai','avi','bmp','cs','dll','doc','exe','fla','gif','htm','html','jpg','js',

	'mdb','mp3','pdf','png','ppt','rdp','swf','swt','txt','vsd','xls','xml','zip' ] ;



oIcons.AvailableIcons = new Object() ;



for ( var i = 0 ; i < oIcons.AvailableIconsArray.length ; i++ )

	oIcons.AvailableIcons[ oIcons.AvailableIconsArray[i] ] = true ;



oIcons.GetIcon = function( fileName )

{

	var sExtension = fileName.substr( fileName.lastIndexOf('.') + 1 ).toLowerCase() ;



	if ( this.AvailableIcons[ sExtension ] == true )

		return sExtension ;

	else

		return 'default.icon' ;

}



function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )

{

	if (errorNumber == "1")

		window.frames['frmUpload'].OnUploadCompleted( errorNumber, customMsg ) ;

	else

		window.frames['frmUpload'].OnUploadCompleted( errorNumber, fileName ) ;

}



		</script>

	</head>

	<frameset cols="150,*" class="Frame" framespacing="3" bordercolor="#f1f1e3" frameborder="1">

		<frameset rows="50,*" framespacing="0">

			<frame src="frmresourcetype.html" scrolling="no" frameborder="0">

			<frame name="frmFolders" src="frmfolders.html" scrolling="auto" frameborder="1">

		</frameset>

		<frameset rows="50,*,50" framespacing="0">

			<frame name="frmActualFolder" src="frmactualfolder.html" scrolling="no" frameborder="0">

			<frame name="frmResourcesList" src="frmresourceslist.html" scrolling="auto" frameborder="1">

			<frameset cols="150,*,0" framespacing="0" frameborder="0">

				<frame name="frmCreateFolder" src="frmcreatefolder.html" scrolling="no" frameborder="0">

				<frame name="frmUpload" src="frmupload.html" scrolling="no" frameborder="0">

				<frame name="frmUploadWorker" src="javascript:void(0)" scrolling="no" frameborder="0">

			</frameset>

		</frameset>

	</frameset>

</html>

