php chdir()真正的功能

i am working on a joomla module in which i am accessing external file(ajax call) i was facing path issue "Fatal error: Class 'JFactory' not found in C:" but finally after search for days i found the real solution. here is the code

define( '_JEXEC', 1 );
chdir("../../");
getcwd();
define('JPATH_BASE', getcwd() );

define( 'DS', DIRECTORY_SEPARATOR );

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

global $mainframe;

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

now i am trying to understand whats going on in the code every thing is clear except one point that how chdir("../../"); works?? is it change the directory of the file that include that code?? (in my case its getuser.php) or it change the paths of joomla core file like defines.php and framework.php?? whats going on exactlly?? if you guys have any other solution or change in existing code better then mine so please share it with me i will be very thankfull.

also one thing more what will be the effect if i change

$mainframe =& JFactory::getApplication('site') to $mainframe =& JFactory::getApplication('administrator') 

as i changed it but it show no effect on the result.

chdir does changes the directly which you explicitly specify. You have a FATAL error there since PHP was not able to find your JFactory class file. Modify the path so it references the class file.

You should include the Joomla framework the following way assuming you're using Joomla 2.5+

define('_JEXEC', 1);
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );