<?php 
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/**
*
* @version $Id: virtuemart.php 1526 2008-09-15 19:21:43Z soeren_nb $
* @package VirtueMart
* @subpackage core
* @copyright Copyright (C) 2004-2008 soeren - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.
*
* http://virtuemart.net
*/

global $mosConfig_absolute_path, $product_id, $vmInputFilter, $vmLogger;
        
/* Load the virtuemart main parse code */
require_once( dirname(__FILE__) . '/virtuemart_parser.php' );

$my_page= explode ( '.', $page );
$modulename = $my_page[0];
$pagename = $my_page[1];

$is_popup = vmRequest::getBool( 'pop' );

// Page Navigation Parameters
$limit = intval( $vm_mainframe->getUserStateFromRequest( "viewlistlimit{$page}", 'limit', $mosConfig_list_limit ) );
$limitstart = intval( $vm_mainframe->getUserStateFromRequest( "view{$keyword}{$category_id}{$pagename}limitstart", 'limitstart', 0 )) ;

/* Get all the other paramters */
$search_category= vmRequest::getVar( 'search_category' );
// Display just the naked page without toolbar, menu and footer?
$only_page = vmRequest::getInt('only_page', 0 );

if( PSHOP_IS_OFFLINE == '1' && !$perm->hasHigherPerms('storeadmin') ) {
    echo PSHOP_OFFLINE_MESSAGE;
}
else {
	if( PSHOP_IS_OFFLINE == '1' ) {
		echo '<h2>'.$VM_LANG->_('OFFLINE_MODE').'</h2>';
	}
	if( $is_popup ) {
		echo "<style type='text/css' media='print'>.vmNoPrint { display: none }</style>";
		echo vmCommonHTML::PrintIcon('', true, ' '.$VM_LANG->_('CMN_PRINT') );
	}
	
	// The Vendor ID is important
	$ps_vendor_id = $_SESSION['ps_vendor_id'];

	// The authentication array
	$auth = $_SESSION['auth'];
	$no_menu = vmRequest::getInt('no_menu', 0 );

	// Timer Start
	if ( vmShouldDebug() ) { /*@MWM1: Log/Debug enhancements */
		$start = utime();
		$GLOBALS["mosConfig_debug"] = 1;
	}

	// update the cart because something could have
	// changed while running a function
	$cart = $_SESSION["cart"];


	if (( !$pagePermissionsOK || !$funcParams ) && $_REQUEST['page'] != 'checkout.index') {

		if( !$pagePermissionsOK && defined('_VM_PAGE_NOT_AUTH') ) {
			$page = 'checkout.login_form';
			echo '<br/><br/>'.$VM_LANG->_('DO_LOGIN').'<br/><br/>';
		}
		elseif( !$pagePermissionsOK && defined('_VM_PAGE_NOT_FOUND') ) {
			$page = HOMEPAGE;
		}
		else {
			$page = $_SESSION['last_page'];
		}
	}

	$my_page= explode ( '.', $page );
	$modulename = $my_page[0];
	$pagename = $my_page[1];

	// For there's no errorpage to display the error,
	// we must echo it before the page is loaded
	if (!empty($error) && $page != ERRORPAGE) {
		echo '<span class="shop_error">'.$error.'</span>';
	}

	/*****************************
	** FRONTEND ADMIN - MOD
	**/
	if ( vmIsAdminMode()
		&& $perm->check("admin,storeadmin")
		&& ((!stristr($my->usertype, "admin") ^ PSHOP_ALLOW_FRONTENDADMIN_FOR_NOBACKENDERS == '' )
			|| stristr($my->usertype, "admin")
			)
		&& !stristr($page, "shop.")
	) {
		
		define( '_FRONTEND_ADMIN_LOADED', '1' );
		
		if( vmIsJoomla(1.5) ) {
			$editor =& JFactory::getEditor();
			echo $editor->initialise();
		} else {
			$mainframe->loadEditor = 1;
			require_once( $mosConfig_absolute_path."/editor/editor.php" );
			initEditor();
		}

		$editor1_array = Array('product.product_form' => 'product_desc',
		'product.product_category_form' => 'category_description',
		'store.store_form' => 'vendor_store_desc',
		'vendor.vendor_form' => 'vendor_store_desc');
		$editor2_array = Array('store.store_form' => 'vendor_terms_of_service',
		'vendor.vendor_form' => 'vendor_terms_of_service');
		editorScript(isset($editor1_array[$page]) ? $editor1_array[$page] : '', isset($editor2_array[$page]) ? $editor2_array[$page] : '');
		
		$vm_mainframe->addStyleSheet( VM_THEMEURL .'admin.css' );
		$vm_mainframe->addStyleSheet( VM_THEMEURL .'admin.styles.css' );
		$vm_mainframe->addScript( "$mosConfig_live_site/components/$option/js/functions.js" );
		echo '<table style="width:100%;table-layout:fixed;"><tr>';
		if( $no_menu != "1" ) {
			$vmLayout = 'standard';
			echo '<td valign="top" width="15%">';
			// The admin header with dropdown menu
			include( ADMINPATH."header.php" );
			echo '</td>';
		}
		echo '<td width="80%" valign="top" style="border: 1px solid silver;padding:4px;">';
		include( ADMINPATH."toolbar.virtuemart.php" );
		echo '<br style="clear:both;" />';

	}
	/**
	** END: FRONTEND ADMIN - MOD
	*****************************/

	// Here is the most important part of the whole Shop:
	// LOADING the requested page for displaying it to the customer.
        // I have wrapped it with a function, because it becomes
        // cacheable that way.
        // It's just an "include" statement which loads the page
        $vmDoCaching = ($page=="shop.browse" || $page=="shop.product_details") 
                        && (empty($keyword) && empty($keyword1) && empty($keyword2));
		
        // IE6 PNG transparency fix
        $vm_mainframe->addScript( "$mosConfig_live_site/components/$option/js/sleight.js" );

		echo '<div id="vmMainPage">'."\n";
		
		// Load requested PAGE
		if( file_exists( PAGEPATH.$modulename.".".$pagename.".php" )) {
			if( $only_page) {
				require_once( CLASSPATH . 'connectionTools.class.php' );
				vmConnector::sendHeaderAndContent( 200 );
				if( $func ) echo vmCommonHTML::getSuccessIndicator( $ok, $vmDisplayLogger ); /*@MWM1: Log/Debug enhancements*/
				include( PAGEPATH.$modulename.".".$pagename.".php" );
				// Exit gracefully
				$vm_mainframe->close(true);
			}
			include( PAGEPATH.$modulename.".".$pagename.".php" );
		}
		elseif( file_exists( PAGEPATH . HOMEPAGE.'.php' )) {
			include( PAGEPATH . HOMEPAGE.'.php' );
		}
	    else {
	        include( PAGEPATH.'shop.index.php');
	    }
	    if ( !empty($mosConfig_caching) && $vmDoCaching) {
	        echo '<span class="small">'.$VM_LANG->_('LAST_UPDATED').': '.strftime( $vendor_date_format ).'</span>';
	    }
	    
	    echo "\n<div id=\"statusBox\" style=\"text-align:center;display:none;visibility:hidden;\"></div></div>\n";
	    
	    if(SHOWVERSION && !$is_popup) {
			include(PAGEPATH ."footer.php");
	    }

		// Set debug option on/off
		if (vmShouldDebug()) {  /*@MWM1: Log/Debug enhancements */
			$end = utime();
			$runtime = $end - $start;
			
			include( PAGEPATH . "shop.debug.php" );
		}

}
$vm_mainframe->close();
?>
