Jump to content
DiamondSea

[contribution] Simple Template System (sts)

Recommended Posts

has anyone gotten the latest version of sts to work with header tags controller? i'm not sure, but i think due to the multiple templates, somehow my index_0.php.html and index.php.html is defaulting to sts_template.

 

having a lot of problem with the admin part of header controller as well :(

Share this post


Link to post
Share on other sites

The same thing is happening to me... Using STS, when a user clicks on "Confirm Order" (after they've entered their CC#), they are taking to a page at authorize.net, which asks them for it again.

 

This did not happen before STS was installed.

Share this post


Link to post
Share on other sites

I am using sts 1.9 and also header tags v2 and I am having some problems.

 

STS is compatible with Header Tags v1 but I could not find a v1 so I downloaded and installed v2. STS works great on it's own and Herader Tags works great on it's own but when I put them together it all goes wrong.

 

The first problem was that the clean_html_comments was declared twice - declared in application_top.php by Header Tags and also is sts_display_output. This problem was easy enough to fix by just taking away the declare statement in sts_display_output and leaving it in application_top but now the Header Tags do not work.

 

Is there a STS version with support for Header Tags Controller v2.2 or without the included support for v1 or can anyone suggest a reason as to why the header tags won't work in conjuction with STS?

 

Any help would be much appreciated :-)

 

Ray


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites

I managed to solve my own problems :)

Wickedcooler: You need to check these two files: includes/application_top.php and includes/sts_display_output.php. Make sure that the clean_html and header_tags files are not required twice.

 

EITHER

you have sts_display_output.php modification around line 150

OR

the added one that the Header Tags readme file asked you to add in application_top.

 

not BOTH

 

hope this helps

Share this post


Link to post
Share on other sites

I already did that so I no longer have the problem with declaring the clean)html twice but for some reason the header tags just will not work. If I just install Header Tags on a fresh install then it works great and if I install sts on a fresh install it works great but when I put them together they just don't work.

 

I managed to get Version 1 of Header Tags and install that, it partially works for catgory tag names but when i open a product that has the tags I get the following error:

 

Fatal error: Call to undefined function: clean_html_comments() in /home/wickedco/public_html/coolernet/catalog/includes/header_tags.php on line 78

 

Any idea what this means?

 

Also, are you using Header Tags V2.2 ??

 

Thanks for the reply.


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites

Sorry. That should be Article Manager 1.2 - I was originally on STS 1.9, upgraded to 2.1 where everything is currently working.

 

To get Header Tags Controller to work with STS you should simply not put in the HTC code into application_top.php, but this might cause issues elsewhere, as it did with Article Manager, which has a customization that affects HTC. See the post I referenced for details.

 

 

-C

Share this post


Link to post
Share on other sites

I have STS 2.01 installed and working.

 

I wanted to make some changes as discribed in Wiki docs.

 

When i wanted to changed Box Column Widths it only changed the width of the table's column that contained the box not the box's width itself. :o

 

i think this was resulted from installing STS.

 

How i can change the box width through STS?

 

thanks

Edited by fasad

Share this post


Link to post
Share on other sites

Fatal Error Help Please

 

Fatal error: Failed opening required 'includes/classes/shopping_cart.php' (include_path='.:/usr/share/pear') in /home/soundsalarming/public_html/catalog/includes/application_top.php on line 123

 

I installed STS and initially everything was fine, but seamingly for no reason this error came up

 

any help greatly appreceated

Share this post


Link to post
Share on other sites

Ok I have read the last couple of posts and tried to implament all the changes, here is what I did and what happened.

 

1) Installed fresh MS2.2

2) Installed STS - for some reason the includes files are different versions to my MS2.2 and when I merged them together I ended up getting duplicate columns and the contents column disappeared so just uploaded the supplied STS files (is there more than 1 MS2.2 installation?)

3) STS works perfectly

4) Installed Header Tags - as suggested I left out the HTC lines in application_top.php so that clean_html is not called twice

6) For some reason the category header actually reads the name of the category eventhough I did not change categories.php or add the new HTC "TITLE" code to categories.php

7) Copied HTC TITLE code to products_info.php

8) Entered header data into a product from admin

9) All products now show the exact HTTP line as the header instead of the typical OSCOMMERCE title tag

10) The product I entered the header data on shows the following error:

 

Fatal error: Call to undefined function: clean_html_comments() in /home/*******/catalog/includes/header_tags.php on line 79

 

This is the error I get every single time I install HTC and STS, can anyone suggest a fix for what ever the problem is??

 

Thanks


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites

Something with STS is hosing authorize.net calls... it's actually sending the user TO transact.dll on the authorize.net server instead of sending calls to it.

Share this post


Link to post
Share on other sites

now I am going insane, I gave up trying to get sts to work with HTC so I tried the simple approach, I added the following code to product_info.php :

 

<?php 
if (isset($HTTP_GET_VARS['products_id'])) { 
$title_query = tep_db_query("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'"); 
$title_results = tep_db_fetch_array($title_query); 
echo "<title>Buy " . $title_results['products_name'] . " at WickedCoolers.co.uk" . TITLE . "</title>"; 
} else { 
echo "<title>" . TITLE . "</title>"; 
} 
?>

 

It simply makes the product name into the header tag - simple but effective and problem free (or so I thought)

 

As soon as I installed STS it stopped working and I cannot understand why STS would interfere with a couple of lines of code in a file that it does not change....anyone understand this?

 

Also, I just installed a java applet which replaced the categories.php file (no other changes had to be made), it worked fine before STS but not anymore...why is STS now interfering with categories??????

 

Please somebody help ;-(


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites
As soon as I installed STS it stopped working and I cannot understand why STS would interfere with a couple of lines of code in a file that it does not change....anyone understand this?

 

Also, I just installed a java applet which replaced the categories.php file (no other changes had to be made), it worked fine before STS but not anymore...why is STS now interfering with categories??????

 

Please somebody help ;-(

 

Hi Ray,

 

This post by Brian describes the nutshell of how STS works:

http://forums.oscommerce.com/index.php?sho...ndpost&p=232735

 

If you look closely at sts_display_output.php it defines a block called $headertags in which it either calls the Header Tags Controller mod if present or uses the stock TITLE define from english.php. It then strips the actual title content from the $headertags variable. So the header stuff that exists on all the other pages is ignored, which is what you would want to do if you're templating - you want that head information to come from your template file.

 

Now, because all of the content on the page is being captured to a buffer and assigned to a string variable, any non-text or other code on the page being captured will get missed, which is why the java applet you have on the categories page isn't showing up with the template installed. Using the &sts_normal or setting the $display_normal_output to 1 should display the page without the template, allowing you to confirm this.

 

One thing to keep in mind when using the STS is to note where the $sts_block_names get assigned. In general:

$applicationtop2header: application_top.php to header.php

$header: header.php

$header2columnleft: header.php to column_left.php

standard info boxes (see docs for detail): column_left.php, column_right.php

$columnleft2columnright: column_left.php to column_right.php

$columnright2footer: column_right to footer.php

$counter: footer.php

$footer: footer.php

$banner: footer.php

$footer2applicationbottom: footer.php to application_bottom.php

user defined boxes: sts_user_code.php

$catmenu: sts_user_code.php

 

The reason this is important is because the capture starts with a call to STS_START_CAPTURE, then for each block through $banner STS_RESTART_CAPTURE is used instead, to continally capture output, and finally a STS_STOP_CAPTURE is used at $footer2applicationbottom. in sts_user_code.php each user defined block uses STS_START_CAPTURE and STS_END_CAPTURE on each block.

 

If code gets placed without considering where the blocks are being captured (such as trying to put the Header Tags controller code in application_top AFTER the STS_START_CAPTURE) the output may not behave as you expected it to.

 

HTH,

 

-C

Share this post


Link to post
Share on other sites

Jaxx..thanks for your replies.

 

Do you know if and how I can get sts to capture my java applet and also my header tags?

 

I can't quite understand why it does not capture the java because I simply replaced the categories file so I would of thought that when sts captures categories, it would capture the new java?

 

Thx

 

Ray


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites

Hi,

 

I'm wanting to add the $the_title text which is used in my META headers, somewhere in my template?

 

Is this possible?

 

(I tried simple putting $the_title. but it jsut display the text $the_title)

 

(I'm using the META tags contribution)

 

Thanks!

Share this post


Link to post
Share on other sites

Chris, I don't suppose you know any other template addons that might allow me to use my custom header tags and java applet or would it be possible (if not very time consuming) to make the changes to the files manually, ie...configure the box sizes and change the colours etc by manually inserting html code and changing the stylesheet? - I don't move many boxes around using the template, I simply change the background colour and add borders to the whole page and the boxes which I do not knoe who to do in the normal php files.

 

Once again thx for the help.


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites

I'm still lost if anyone can help! I posted on the previous page the problem I'm having. I do still have those last lines in my configure.php

Share this post


Link to post
Share on other sites
Chris, I don't suppose you know any other template addons that might allow me to use my custom header tags and java applet or would it be possible (if not very time consuming) to make the changes to the files manually, ie...configure the box sizes and change the colours etc by manually inserting html code and changing the stylesheet? - I don't move many boxes around using the template, I simply change the background colour and add borders to the whole page and the boxes which I do not knoe who to do in the normal php files.

 

Once again thx for the help.

I'll try to get the Header Tag Controller support updated to Linda's latest version with the next rev of STS. Not sure when I'll get it done, but it's on my list! :)

 

You can add your java or javascript code to the sts_template.html file (or to whatever template file you want it in) and it should work. If not, send me the link to a page where it does work and to the STS page that doesn't and I'll try to figure out what the problem is.

 

I'm also thinking about adding Smarty support to STS. Anybody have any objections to that?

 

- Brian


Simple Template System (STS)

Layout your site with 1 (or more) HTML file!

Download STS: http://www.oscommerce.com/community/contributions,1524

Support: http://forums.oscommerce.com/index.php?showtopic=58541

Share this post


Link to post
Share on other sites
Well I just started over and now I'm getting this with version 2:

 

Template file doesn't exist: [sTS_DEFAULT_TEMPLATE]

Warning: fopen(STS_DEFAULT_TEMPLATE): failed to open stream: No such file or directory in /home/doodleb/public_html/store/includes/sts_display_output.php on line 120

Can't open Template file: [sTS_DEFAULT_TEMPLATE]

Warning: filesize(): Stat failed for STS_DEFAULT_TEMPLATE (errno=2 - No such file or directory) in /home/doodleb/public_html/store/includes/sts_display_output.php on line 124

 

Warning: fread(): supplied argument is not a valid stream resource in /home/doodleb/public_html/store/includes/sts_display_output.php on line 124

 

Warning: fclose(): supplied argument is not a valid stream resource in /home/doodleb/public_html/store/includes/sts_display_output.php on line 125

 

Warning: main(STS_USER_CODE): failed to open stream: No such file or directory in /home/doodleb/public_html/store/includes/sts_display_output.php on line 138

 

Fatal error: main(): Failed opening required 'STS_USER_CODE' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/doodleb/public_html/store/includes/sts_display_output.php on line 138

lostinosc:

First, I assume that you tested and confirmed the fresh install of osC MS2 was working properly before installing STS.

 

It appears that the configuration to get STS installed was not completed properly. I would check to make sure the defines in catalog/includes/configure.php are correct.

 

line in sts_display_output.php should read:

// Start with the default template
$sts_template_file = STS_DEFAULT_TEMPLATE;

 

lines in configure.php should read:

  define('STS_START_CAPTURE', DIR_WS_INCLUDES . 'sts_start_capture.php');
 define('STS_STOP_CAPTURE', DIR_WS_INCLUDES . 'sts_stop_capture.php'); 
 define('STS_RESTART_CAPTURE', DIR_WS_INCLUDES . 'sts_restart_capture.php');
 define('STS_TEMPLATE_DIR', DIR_WS_INCLUDES . 'sts_templates/');
 define('STS_DEFAULT_TEMPLATE', DIR_WS_INCLUDES . 'sts_template.html'); 
 define('STS_DISPLAY_OUTPUT', DIR_WS_INCLUDES . 'sts_display_output.php');
 define('STS_USER_CODE', DIR_WS_INCLUDES . 'sts_user_code.php');
 define('STS_PRODUCT_INFO', DIR_WS_INCLUDES . 'sts_product_info.php');

 

Based on the error messages you're receiving it appears that $sts_template_file is getting set to 'STS_DEFAULT_TEMPLATE', literally. Same with the call to STS_USER_CODE. Both of these should be constants defined in configure.php to a different value as above.

 

HTH,

 

-C

Share this post


Link to post
Share on other sites
I'm also thinking about adding Smarty support to STS.  Anybody have any objections to that?

I haven't used Smarty, but I was checking out the site and it looks interesting. The caching could be useful. But then, I'd probably stay at rev 2.01 for now. I just got used to it and now you want to change the codebase on me. ;)

 

-C

Share this post


Link to post
Share on other sites
I'm also thinking about adding Smarty support to STS.  Anybody have any objections to that?

I haven't used Smarty, but I was checking out the site and it looks interesting. The caching could be useful. But then, I'd probably stay at rev 2.01 for now. I just got used to it and now you want to change the codebase on me. ;)

 

-C

Don't worry. It should actually be a pretty minor change to the codebase (if I understand how Smarty works correctly :) )

 

- Brian


Simple Template System (STS)

Layout your site with 1 (or more) HTML file!

Download STS: http://www.oscommerce.com/community/contributions,1524

Support: http://forums.oscommerce.com/index.php?showtopic=58541

Share this post


Link to post
Share on other sites

Brian, I tried adding the javascript to the template but it did not quite work because it is not just pure java, the java is incorporated into the categories.php file which has new php code to make the java work, if I had just a pure java applet then it would be simply to add into the html. I do not know much about java and how it works with php.

 

I thought about what chris said about the java being a seperate program which is true of most java applets, they have class files etc that need to be loaded but this contribution only changes the categories file and does not require any other files so I guess calling it an applet is not entirely correct. Therefore if it is not a seperate program then it should work and the only reason I can think of that it won't work is folowing on from chris said that the display_output does not capture or understand the new lines of java in the categories file. In template mode the categories box comes up but is emtpy and in normal mode it will show the the contents of the box.

 

Can you tell me how to get sts to capture the new java lines (or to capture new lines in general) as this would also help with my header tags where the 6 or 7 new lines I put into product_info.php were ignored by sts. Is there any equivalent file in sts to the product_info.php where I can add the extra lines of code so that sts will see them?

 

Below is the categories file with the java:

 

<!-- categories //-->

         <tr>
           <td>
<?php
/*
 Dynamic DHTL MenuBar for category listing v 0.2.1
 This is a combination of modified categories.php and
 HV Menu javacript written by Ger Versluis (c) 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
*	HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites	*
*	For info about HV Menu write to menus@burmees.nl 	 

 Modifications for osCommerce menuBar_0_2 made by John Guerra 2/9/2003
 oscommerce@apodigm.com
*/
 define('LEFT_LINK_HEIGHT',20);
 define('LEFT_LINK_WIDTH',BOX_WIDTH);

 $info_box_contents = array();
 $info_box_contents[] = array('align' => 'left',
                              'text'  => BOX_HEADING_CATEGORIES
                             );
 new infoBoxHeading($info_box_contents, true, false);
?>
<script type='text/javascript'>
/********************************************************************************
*************************************************************
*	(c) Ger Versluis 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
*	HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites	*
*	For info write to menus@burmees.nl               *
*       This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com
********************************************************************************
**************************************************************/

var LowBgColor='transparent'; 	 // Background color when mouse is not over
var LowSubBgColor='white'; 	 // Background color when mouse is not over on subs
var HighBgColor='transparent'; 	 // Background color when mouse is over
var HighSubBgColor='white'; 	 // Background color when mouse is over on subs
var FontLowColor='black'; 	 // Font color when mouse is not over
var FontSubLowColor='black'; 	 // Font color subs when mouse is not over
var FontHighColor='#6699cc'; 	 // Font color when mouse is over
var FontSubHighColor='#6699cc'; 	 // Font color subs when mouse is over
var BorderColor='transparent'; 	 // Border color
var BorderSubColor='#6699cc'; 	 // Border color for subs
var BorderWidth=1;    // Border width
var BorderBtwnElmnts=0; 	 // Border between elements 1 or 0
var FontFamily="Verdana, Arial, sans-serif"	// Font family menu items
var FontSize=8;    // Font size menu items
var FontBold=0;    // Bold menu items 1 or 0
var FontItalic=0;    // Italic menu items 1 or 0
var MenuTextCentered='left'; 	 // Item text position 'left', 'center' or 'right'
var MenuCentered='left'; 	 // Menu horizontal position 'left', 'center' or 'right'
var MenuVerticalCentered='top';  // Menu vertical position 'top', 'middle','bottom' or static
var ChildOverlap=.0;    // horizontal overlap child/ parent
var ChildVerticalOverlap=.0; 	 // vertical overlap child/ parent
var StartTop=1;    // Menu offset x coordinate
var StartLeft=0;    // Menu offset y coordinate
var VerCorrect=0;    // Multiple frames y correction
var HorCorrect=0;    // Multiple frames x correction
var LeftPaddng=2;    // Left padding
var TopPaddng=1;    // Top padding
var DissapearDelay=500; 	 // delay before menu folds in

var FirstLineHorizontal=0; 	 // SET TO 1 FOR HORIZONTAL MENU, 0 FOR VERTICAL
var MenuFramesVertical=1; 	 // Frames in cols or rows 1 or 0
var TakeOverBgColor=1; 	 // Menu frame takes over background color subitem frame
var FirstLineFrame='navig'; 	 // Frame where first level appears
var SecLineFrame='space'; 	 // Frame where sub levels appear
var DocTargetFrame='space'; 	 // Frame where target documents appear
var TargetLoc='MenuBar';    // span id for relative positioning
var HideTop=0;    // Hide first level when loading new document 1 or 0
var MenuWrap=1;    // enables/ disables menu wrap 1 or 0
var RightToLeft=0;    // enables/ disables right to left unfold 1 or 0
var UnfoldsOnClick=0; 	 // Level 1 unfolds onclick/ onmouseover
var WebMasterCheck=0; 	 // menu tree checking on or off 1 or 0
var ShowArrow=1;    // Uses arrow gifs when 1
var KeepHilite=1;    // Keep selected path highligthed
var Arrws=['<?php echo DIR_WS_IMAGES; ?>tri.gif',5,10,'<?php echo DIR_WS_IMAGES; ?>tridown.gif',10,5,'<?php echo DIR_WS_IMAGES; ?>trileft.gif',5,10];	// Arrow source, width and height

function BeforeStart(){return}
function AfterBuild(){return}
function BeforeFirstOpen(){return}
function AfterCloseAll(){return}
function Go(){return}

<?php  

$number_top_levels = 0;
$categories_string='';
 $number_top_levels = build_menus(0,'','');
 echo 'var NoOffFirstLineMenus= ' . $number_top_levels. ';';  // Number of first level items
 echo $categories_string;

function build_menus($currentParID,$menustr,$catstr) {
   global $categories_string, $id, $languages_id;
   $tmpCount;
  
  $tmpCount = 0;
  $haschildren = 0; //default

  $categories_query_catmenu = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . $currentParID . "' and c.categories_id = cd.categories_id and cd.language_id='" . $languages_id ."' order by sort_order, cd.categories_name");
  while ($categories = tep_db_fetch_array($categories_query_catmenu))  {
    $tmpString = '';
    $tmpCount += 1;
    $haschildren=tep_has_category_subcategories($categories['categories_id']);

    if ($haschildren) {
        if($menustr != ''){
          $menu_tmp = $menustr . '_' . $tmpCount;
        } else {
          $menu_tmp = $tmpCount;
        }
        if($catstr != ''){
          $cat_tmp = $catstr . '_' . $categories['categories_id'];
        } else {
          $cat_tmp = $categories['categories_id'];
        }
      $NumChildren = build_menus($categories['categories_id'],$menu_tmp,$cat_tmp);     } else {
      $NumChildren = 0; 
     }

   if ($id==$categories['categories_id']) {
     $tmpString .= '<b>';
   }
   // display category name
   $tmpString .= $categories['categories_name'];

   if ( $id==$categories['categories_id'] ) {
     $tmpString .= '</b>';
   }
   if (SHOW_COUNTS == 'true') {
     $products_in_category = tep_count_products_in_category($categories['categories_id']);
     if ($products_in_category > 0) {
       $tmpString .= ' (' . $products_in_category . ')';
     }
   }

    if($catstr != ''){
       $cPath_new = 'cPath=' . $catstr . '_' . $categories['categories_id'];
    } else {
       $cPath_new = 'cPath=' . $categories['categories_id'];
    }

 // Menu tree
//	Menu1_1_1=new Array(Text to show, Link, background image (optional), number of sub elements, height, width);
        if($menustr != ''){
          $menu_tmp = $menustr . '_' . $tmpCount;
        } else {
          $menu_tmp = $tmpCount;
        }
$categories_string .=  'Menu' . ($menustr!=''?$menustr.'_':'') . $tmpCount;
$categories_string .=  '= new Array("' . $tmpString . '","';
$categories_string .=  tep_href_link(FILENAME_DEFAULT, $cPath_new);
$categories_string .= '","",';
$categories_string .= $NumChildren;
$categories_string .= ',' . LEFT_LINK_HEIGHT . ',' . LEFT_LINK_WIDTH;
$categories_string .= '); ';
  
   }// end while
   return $tmpCount;
 }  //end build menus

echo '</script>';

$tabletext ="<table><tr><td><div id='MenuBar' style='position:relative; width: " . LEFT_LINK_WIDTH . "; height: " . ($number_top_levels*LEFT_LINK_HEIGHT) . ";'> </div></td></tr></table>";

 $info_box_contents = array();
 $info_box_contents[] = array('align' => 'left',
                              'text'  => $tabletext
                             );
new infoBox($info_box_contents);


?>
<script type='text/javascript'>
/***** Engine for menus *****/
/*
*	(c) Ger Versluis 2000 version 5.411 24 December 2001 (updated Jan 31st, 2003 by Dynamic Drive for Opera7)
*	HV Menu found on Dynamic Drive ONLY may be used on both commercial and non commerical sites	*
*	For info write to menus@burmees.nl               *
*       This script featured on Dynamic Drive DHTML code library: http://www.dynamicdrive.com
*/

var AgntUsr=navigator.userAgent.toLowerCase();
var DomYes=document.getElementById?1:0;
var NavYes=AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1?1:0;
var ExpYes=AgntUsr.indexOf('msie')!=-1?1:0;
var Opr=AgntUsr.indexOf('opera')!=-1?1:0;
var Opr6orless=window.opera && navigator.userAgent.search(/opera.[1-6]/i)!=-1 //DynamicDrive.com added code
var DomNav=DomYes&&NavYes?1:0;
 var DomExp=DomYes&&ExpYes?1:0;
var Nav4=NavYes&&!DomYes&&document.layers?1:0;
var Exp4=ExpYes&&!DomYes&&document.all?1:0;
var PosStrt=(NavYes||ExpYes)&&!Opr6orless?1:0;

var FrstLoc,ScLoc,DcLoc;
var ScWinWdth,ScWinHght,FrstWinWdth,FrstWinHght;
var ScLdAgainWin;
var FirstColPos,SecColPos,DocColPos;
var RcrsLvl=0;
var FrstCreat=1,Loadd=0,Creatd=0,IniFlg,AcrssFrms=1;
var FrstCntnr=null,CurrntOvr=null,CloseTmr=null;
var CntrTxt,TxtClose,ImgStr;
var Ztop=100;
var ShwFlg=0;
var M_StrtTp=StartTop,M_StrtLft=StartLeft;
var StaticPos=0;
var LftXtra=DomNav?LeftPaddng:0;
var TpXtra=DomNav?TopPaddng:0;
var M_Hide=Nav4?'hide':'hidden';
var M_Show=Nav4?'show':'visible';
var Par=parent.frames[0]&&FirstLineFrame!=SecLineFrame?parent:window;
var Doc=Par.document;
var Bod=Doc.body;
var Trigger=NavYes?Par:Bod;

MenuTextCentered=MenuTextCentered==1||MenuTextCentered=='center'?'center':MenuTextCentered==0||MenuTextCentered!='right'?'left':'right';



WbMstrAlrts=["Item not defined: ","Item needs height: ","Item needs width: "];

if(Trigger.onload)Dummy=Trigger.onload;
if(DomNav&&!Opr)Trigger.addEventListener('load',Go,false);
else Trigger.onload=Go;

function Dummy(){return}

function CnclSlct(){return false}

function RePos(){
FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
if(MenuCentered=='justify'&&FirstLineHorizontal){
 FrstCntnr.style.width=FrstWinWdth;
 ClcJus();
 var P=FrstCntnr.FrstMbr,W=Menu1[5],i;
 for(i=0;i<NoOffFirstLineMenus;i++){P.style.width=W;P=P.PrvMbr}}
StaticPos=-1;
if(TargetLoc)ClcTrgt();
if(MenuCentered)ClcLft();
if(MenuVerticalCentered)ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft)}

function UnLoaded(){
if(CloseTmr)clearTimeout(CloseTmr);
Loadd=0; Creatd=0;
if(HideTop){
 var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
 FCStyle.visibility=M_Hide}}

function ReDoWhole(){
if(ScWinWdth!=ScLoc.innerWidth||ScWinHght!=ScLoc.innerHeight||FrstWinWdth!=FrstLoc.innerWidth||FrstWinHght!=FrstLoc.innerHeight)Doc.location.reload()}

function Check(WMnu,NoOf){
var i,array,ArrayLoc;
ArrayLoc=parent.frames[0]?parent.frames[FirstLineFrame]:self;
for(i=0;i<NoOf;i++){
 array=WMnu+eval(i+1);
 if(!ArrayLoc[array]){WbMstrAlrt(0,array); return false}
 if(i==0){	if(!ArrayLoc[array][4]){WbMstrAlrt(1,array); return false}
	 if(!ArrayLoc[array][5]){WbMstrAlrt(2,array); return false}}
 if(ArrayLoc[array][3])if(!Check(array+'_',ArrayLoc[array][3])) return false}
return true}

function WbMstrAlrt(No,Xtra){
return confirm(WbMstrAlrts[No]+Xtra+'   ')}

function Go(){
Dummy();
if(Loadd||!PosStrt)return;
BeforeStart();
Creatd=0; Loadd=1;
status='Building menu';
if(FrstCreat){
 if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
	 FirstLineFrame=SecLineFrame;
	 if(FirstLineFrame =="" || !parent.frames[FirstLineFrame]){
   FirstLineFrame=SecLineFrame=DocTargetFrame;
   if(FirstLineFrame =="" || !parent.frames[FirstLineFrame])FirstLineFrame=SecLineFrame=DocTargetFrame=''}}
 if(SecLineFrame =="" || !parent.frames[SecLineFrame]){
	 SecLineFrame=DocTargetFrame;
	 if(SecLineFrame =="" || !parent.frames[SecLineFrame])SecLineFrame=DocTargetFrame=FirstLineFrame}
 if(DocTargetFrame =="" || !parent.frames[DocTargetFrame])DocTargetFrame=SecLineFrame;
 if(WebMasterCheck){	if(!Check('Menu',NoOffFirstLineMenus)){status='build aborted';return}}
 FrstLoc=FirstLineFrame!=""?parent.frames[FirstLineFrame]:window;
 ScLoc=SecLineFrame!=""?parent.frames[SecLineFrame]:window;
 DcLoc=DocTargetFrame!=""?parent.frames[DocTargetFrame]:window;
 if (FrstLoc==ScLoc) AcrssFrms=0;
 if (AcrssFrms)FirstLineHorizontal=MenuFramesVertical?0:1;
 FrstWinWdth=ExpYes?FrstLoc.document.body.clientWidth:FrstLoc.innerWidth;
 FrstWinHght=ExpYes?FrstLoc.document.body.clientHeight:FrstLoc.innerHeight;
 ScWinWdth=ExpYes?ScLoc.document.body.clientWidth:ScLoc.innerWidth;
 ScWinHght=ExpYes?ScLoc.document.body.clientHeight:ScLoc.innerHeight;
 if(Nav4){	CntrTxt=MenuTextCentered!='left'?"<div align='"+MenuTextCentered+"'>":"";
	 TxtClose="</font>"+MenuTextCentered!='left'?"</div>":""}}
FirstColPos=Nav4?FrstLoc.document:FrstLoc.document.body;
SecColPos=Nav4?ScLoc.document:ScLoc.document.body;
DocColPos=Nav4?DcLoc.document:ScLoc.document.body;
if (TakeOverBgColor)FirstColPos.bgColor=AcrssFrms?SecColPos.bgColor:DocColPos.bgColor;
if(MenuCentered=='justify'&&FirstLineHorizontal)ClcJus();
if(FrstCreat){
 FrstCntnr=CreateMenuStructure('Menu',NoOffFirstLineMenus);
 FrstCreat=AcrssFrms?0:1}
else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
if(TargetLoc)ClcTrgt();
if(MenuCentered)ClcLft();
if(MenuVerticalCentered)ClcTp();
PosMenu(FrstCntnr,StartTop,StartLeft);
IniFlg=1;
Initiate();
Creatd=1;
ScLdAgainWin=ExpYes?ScLoc.document.body:ScLoc;
ScLdAgainWin.onunload=UnLoaded;
Trigger.onresize=Nav4?ReDoWhole:RePos;
AfterBuild();
if(MenuVerticalCentered=='static'&&!AcrssFrms)setInterval('KeepPos()',250);
status='Menu ready for use'}

function KeepPos(){
var TS=ExpYes?FrstLoc.document.body.scrollTop:FrstLoc.pageYOffset;
if(TS!=StaticPos){
 var FCStyle=Nav4?FrstCntnr:FrstCntnr.style;
 FCStyle.top=FrstCntnr.OrgTop=StartTop+TS;StaticPos=TS}}

function ClcJus(){
var a=BorderBtwnElmnts?1:2,b=BorderBtwnElmnts?BorderWidth:0;
var Size=Math.round(((FrstWinWdth-a*BorderWidth)/NoOffFirstLineMenus)-b),i,j;
for(i=1;i<NoOffFirstLineMenus+1;i++){j=eval('Menu'+i);j[5]=Size}
StartLeft=0}

function ClcTrgt(){
var TLoc=Nav4?FrstLoc.document.layers[TargetLoc]:DomYes?FrstLoc.document.getElementById(TargetLoc):FrstLoc.document.all[TargetLoc];
StartTop=M_StrtTp;
StartLeft=M_StrtLft;
if(DomYes){
 while(TLoc){StartTop+=TLoc.offsetTop;StartLeft+=TLoc.offsetLeft;TLoc=TLoc.offsetParent}
}
else{	StartTop+=Nav4?TLoc.pageY:TLoc.offsetTop;StartLeft+=Nav4?TLoc.pageX:TLoc.offsetLeft}}

function ClcLft(){
if(MenuCentered!='left'&&MenuCentered!='justify'){
 var Size=FrstWinWdth-(!Nav4?parseInt(FrstCntnr.style.width):FrstCntnr.clip.width);
 StartLeft=M_StrtLft;
 StartLeft+=MenuCentered=='right'?Size:Size/2}}

function ClcTp(){
if(MenuVerticalCentered!='top'&&MenuVerticalCentered!='static'){
 var Size=FrstWinHght-(!Nav4?parseInt(FrstCntnr.style.height):FrstCntnr.clip.height);
 StartTop=M_StrtTp;
 StartTop+=MenuVerticalCentered=='bottom'?Size:Size/2}}

function PosMenu(CntnrPntr,Tp,Lt){
var Topi,Lefti,Hori;
var Cntnr=CntnrPntr;
var Mmbr=Cntnr.FrstMbr;
var CntnrStyle=!Nav4?Cntnr.style:Cntnr;
var MmbrStyle=!Nav4?Mmbr.style:Mmbr;
var PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
var PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
var MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
var MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
var CntnrWt=!Nav4?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
var CntnrHt=!Nav4?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
var SubTp,SubLt;
RcrsLvl++;
if (RcrsLvl==1 && AcrssFrms)!MenuFramesVertical?Tp=FrstWinHght-CntnrHt+(Nav4?4:0):Lt=RightToLeft?0:FrstWinWdth-CntnrWt+(Nav4?4:0);
if (RcrsLvl==2 && AcrssFrms)!MenuFramesVertical?Tp=0:Lt=RightToLeft?ScWinWdth-CntnrWt:0;
if (RcrsLvl==2 && AcrssFrms){Tp+=VerCorrect;Lt+=HorCorrect}
CntnrStyle.top=RcrsLvl==1?Tp:0;
Cntnr.OrgTop=Tp;
CntnrStyle.left=RcrsLvl==1?Lt:0;
Cntnr.OrgLeft=Lt;
if (RcrsLvl==1 && FirstLineHorizontal){
 Hori=1;Lefti=CntnrWt-MmbrWt-2*BorderWidth;Topi=0}
else{	Hori=Lefti=0;Topi=CntnrHt-MmbrHt-2*BorderWidth}
while(Mmbr!=null){
 MmbrStyle.left=Lefti+BorderWidth;
 MmbrStyle.top=Topi+BorderWidth;
 if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
 if(Mmbr.ChildCntnr){
	 if(RightToLeft)ChldCntnrWdth=Nav4?Mmbr.ChildCntnr.clip.width:parseInt(Mmbr.ChildCntnr.style.width);
	 if(Hori){	SubTp=Topi+MmbrHt+2*BorderWidth;
   SubLt=RightToLeft?Lefti+MmbrWt-ChldCntnrWdth:Lefti}
	 else{	SubLt=RightToLeft?Lefti-ChldCntnrWdth+ChildOverlap*MmbrWt+BorderWidth:Lefti+(1-ChildOverlap)*MmbrWt+BorderWidth;
   SubTp=RcrsLvl==1&&AcrssFrms?Topi:Topi+ChildVerticalOverlap*MmbrHt}
	 PosMenu(Mmbr.ChildCntnr,SubTp,SubLt)}
 Mmbr=Mmbr.PrvMbr;
 if(Mmbr){	MmbrStyle=!Nav4?Mmbr.style:Mmbr;
	 PadL=Mmbr.value.indexOf('<')==-1?LftXtra:0;
	 PadT=Mmbr.value.indexOf('<')==-1?TpXtra:0;
	 MmbrWt=!Nav4?parseInt(MmbrStyle.width)+PadL:MmbrStyle.clip.width;
	 MmbrHt=!Nav4?parseInt(MmbrStyle.height)+PadT:MmbrStyle.clip.height;
	 Hori?Lefti-=BorderBtwnElmnts?(MmbrWt+BorderWidth):(MmbrWt):Topi-=BorderBtwnElmnts?(MmbrHt+BorderWidth):(MmbrHt)}}
RcrsLvl--}

function Initiate(){
if(IniFlg){	Init(FrstCntnr);IniFlg=0;
 if(ShwFlg)AfterCloseAll();ShwFlg=0}}

function Init(CntnrPntr){
var Mmbr=CntnrPntr.FrstMbr;
var MCStyle=Nav4?CntnrPntr:CntnrPntr.style;
RcrsLvl++;
MCStyle.visibility=RcrsLvl==1?M_Show:M_Hide;
while(Mmbr!=null){
 if(Mmbr.Hilite){Mmbr.Hilite=0;if(KeepHilite)LowItem(Mmbr)}
 if(Mmbr.ChildCntnr) Init(Mmbr.ChildCntnr);
 Mmbr=Mmbr.PrvMbr}
RcrsLvl--}

function ClearAllChilds(Pntr){
var CPCCStyle;
while (Pntr){
 if(Pntr.Hilite){
	 Pntr.Hilite=0;
	 if(KeepHilite)LowItem(Pntr);
	 if(Pntr.ChildCntnr){
   CPCCStyle=Nav4?Pntr.ChildCntnr:Pntr.ChildCntnr.style;
   CPCCStyle.visibility=M_Hide;
   ClearAllChilds(Pntr.ChildCntnr.FrstMbr)}
	 break}
 Pntr=Pntr.PrvMbr}}

function GoTo(){
if(this.LinkTxt){
 status='';
 var HP=Nav4?this.LowLyr:this;
 LowItem(HP);
 this.LinkTxt.indexOf('javascript:')!=-1?eval(this.LinkTxt):DcLoc.location.href=this.LinkTxt}}

function HiliteItem(P){
if(Nav4){
 if(P.ro)P.document.images[P.rid].src=P.ri2;
 else{	if(P.HiBck)P.bgColor=P.HiBck;
	 if(P.value.indexOf('<img')==-1){
   P.document.write(P.Ovalue);
   P.document.close()}}}
else{	if(P.ro){	var Lc=P.Level==1?FrstLoc:ScLoc;
	 Lc.document.images[P.rid].src=P.ri2}
 else{	if(P.HiBck)P.style.backgroundColor=P.HiBck;
	 if(P.HiFntClr)P.style.color=P.HiFntClr}}
P.Hilite=1}

function LowItem(P){
if(P.ro){	if(Nav4)P.document.images[P.rid].src=P.ri1;
 else{	var Lc=P.Level==1?FrstLoc:ScLoc;
	 Lc.document.images[P.rid].src=P.ri1}}
else{	if(Nav4){	if(P.LoBck)P.bgColor=P.LoBck;
	 if(P.value.indexOf('<img')==-1){
   P.document.write(P.value);
   P.document.close()}}
 else{	if(P.LoBck)P.style.backgroundColor=P.LoBck;
	 if(P.LwFntClr)P.style.color=P.LwFntClr}}}

function OpenMenu(){	
if(!Loadd||!Creatd) return;
var TpScrlld=ExpYes?ScLoc.document.body.scrollTop:ScLoc.pageYOffset;
var LScrlld=ExpYes?ScLoc.document.body.scrollLeft:ScLoc.pageXOffset;
var CCnt=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr;
var ThisHt=Nav4?this.clip.height:parseInt(this.style.height);
var ThisWt=Nav4?this.clip.width:parseInt(this.style.width);
var ThisLft=AcrssFrms&&this.Level==1&&!FirstLineHorizontal?0:Nav4?this.Container.left:parseInt(this.Container.style.left);
var ThisTp=AcrssFrms&&this.Level==1&&FirstLineHorizontal?0:Nav4?this.Container.top:parseInt(this.Container.style.top);
var HP=Nav4?this.LowLyr:this;
CurrntOvr=this;
IniFlg=0;
ClearAllChilds(this.Container.FrstMbr);
HiliteItem(HP);
if(CCnt!=null){
 if(!ShwFlg){ShwFlg=1;	BeforeFirstOpen()}
 var CCW=Nav4?this.LowLyr.ChildCntnr.clip.width:parseInt(this.ChildCntnr.style.width);
 var CCH=Nav4?this.LowLyr.ChildCntnr.clip.height:parseInt(this.ChildCntnr.style.height);
 var ChCntTL=Nav4?this.LowLyr.ChildCntnr:this.ChildCntnr.style;
 var SubLt=AcrssFrms&&this.Level==1?CCnt.OrgLeft+ThisLft+LScrlld:CCnt.OrgLeft+ThisLft;
 var SubTp=AcrssFrms&&this.Level==1?CCnt.OrgTop+ThisTp+TpScrlld:CCnt.OrgTop+ThisTp;
 if(MenuWrap){
	 if(RightToLeft){
   if(SubLt<LScrlld)SubLt=this.Level==1?LScrlld:SubLt+(CCW+(1-2*ChildOverlap)*ThisWt);
   if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=ScWinWdth+LScrlld-CCW}
	 else{	if(SubLt+CCW>ScWinWdth+LScrlld)SubLt=this.Level==1?ScWinWdth+LScrlld-CCW:SubLt-(CCW+(1-2*ChildOverlap)*ThisWt);
   if(SubLt<LScrlld)SubLt=LScrlld}
	 if(SubTp+CCH>TpScrlld+ScWinHght)SubTp=this.Level==1?SubTp=TpScrlld+ScWinHght-CCH:SubTp-CCH+(1-2*ChildVerticalOverlap)*ThisHt;
	 if(SubTp<TpScrlld)SubTp=TpScrlld}
 ChCntTL.top=SubTp;ChCntTL.left=SubLt;ChCntTL.visibility=M_Show}
status=this.LinkTxt}

function OpenMenuClick(){
if(!Loadd||!Creatd) return;
var HP=Nav4?this.LowLyr:this;
CurrntOvr=this;
IniFlg=0;
ClearAllChilds(this.Container.FrstMbr);
HiliteItem(HP);
status=this.LinkTxt}

function CloseMenu(){
if(!Loadd||!Creatd) return;
if(!KeepHilite){
 var HP=Nav4?this.LowLyr:this;
 LowItem(HP)}
status='';
if(this==CurrntOvr){
 IniFlg=1;
 if(CloseTmr)clearTimeout(CloseTmr);
 CloseTmr=setTimeout('Initiate(CurrntOvr)',DissapearDelay)}}

function CntnrSetUp(Wdth,Hght,NoOff){
var x=RcrsLvl==1?BorderColor:BorderSubColor;
this.FrstMbr=null;
this.OrgLeft=this.OrgTop=0;
if(x)this.bgColor=x;
if(Nav4){	this.visibility='hide';
 this.resizeTo(Wdth,Hght)}
else{	if(x)this.style.backgroundColor=x;
 this.style.width=Wdth;
 this.style.height=Hght;
 this.style.fontFamily=FontFamily;
 this.style.fontWeight=FontBold?'bold':'normal';
 this.style.fontStyle=FontItalic?'italic':'normal';
 this.style.fontSize=FontSize+'pt';
 this.style.zIndex=RcrsLvl+Ztop}}

function MbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
var Location=RcrsLvl==1?FrstLoc:ScLoc;
var MemVal=eval(WhatMenu+'[0]');
var t,T,L,W,H,S;
var a,b,c,d;
this.PrvMbr=PrMmbr;
this.Level=RcrsLvl;
this.LinkTxt=eval(WhatMenu+'[1]');
this.Container=MmbrCntnr;
this.ChildCntnr=null;
this.Hilite=0;
this.style.overflow='hidden';
this.style.cursor=ExpYes&&(this.LinkTxt||(RcrsLvl==1&&UnfoldsOnClick))?'hand':'default';
this.ro=0;
if(MemVal.indexOf('rollover')!=-1){
 this.ro=1;
 this.ri1=MemVal.substring(MemVal.indexOf(':')+1,MemVal.lastIndexOf(':'));
 this.ri2=MemVal.substring(MemVal.lastIndexOf(':')+1,MemVal.length);
 this.rid=WhatMenu+'i';MemVal="<img src='"+this.ri1+"' name='"+this.rid+"'>"}
this.value=MemVal;
if(RcrsLvl==1){
 a=LowBgColor;
 b=HighBgColor;
 c=FontLowColor;
 d=FontHighColor}
else{	a=LowSubBgColor;
 b=HighSubBgColor;
 c=FontSubLowColor;
 d=FontSubHighColor}
this.LoBck=a;
this.LwFntClr=c;
this.HiBck=b;
this.HiFntClr=d;
this.style.color=this.LwFntClr;
if(this.LoBck)this.style.backgroundColor=this.LoBck;
this.style.textAlign=MenuTextCentered;
if(eval(WhatMenu+'[2]'))this.style.backgroundImage="url(\'"+eval(WhatMenu+'[2]')+"\')";
if(MemVal.indexOf('<')==-1){
 this.style.width=Wdth-LftXtra;
 this.style.height=Hght-TpXtra;
 this.style.paddingLeft=LeftPaddng;
 this.style.paddingTop=TopPaddng}
else{	this.style.width=Wdth;
 this.style.height=Hght}
if(MemVal.indexOf('<')==-1&&DomYes){
 t=Location.document.createTextNode(MemVal);
 this.appendChild(t)}
else this.innerHTML=MemVal;
if(eval(WhatMenu+'[3]')&&ShowArrow){
 a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
 S=Arrws[a];
 W=Arrws[a+1];
 H=Arrws[a+2];
 T=RcrsLvl==1&&FirstLineHorizontal?Hght-H-2:(Hght-H)/2;
 L=RightToLeft?2:Wdth-W-2;
 if(DomYes){

	 t=Location.document.createElement('img');
	 this.appendChild(t);
	 t.style.position='absolute';
	 t.src=S;

	 t.style.width=W;
	 t.style.height=H;
	 t.style.top=T;
	 t.style.left=L}
 else{	MemVal+="<div style='position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>";
	 this.innerHTML=MemVal}}
if(ExpYes){this.onselectstart=CnclSlct;
 this.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
 this.onmouseout=CloseMenu;
 this.onclick=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo	}
else{	RcrsLvl==1&&UnfoldsOnClick?this.addEventListener('mouseover',OpenMenuClick,false):this.addEventListener('mouseover',OpenMenu,false);
 this.addEventListener('mouseout',CloseMenu,false);
 RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?this.addEventListener('click',OpenMenu,false):this.addEventListener('click',GoTo,false)}}

function NavMbrSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
var a,b,c,d;
if(RcrsLvl==1){
 a=LowBgColor;
 b=HighBgColor;
 c=FontLowColor;
 d=FontHighColor}
else {	a=LowSubBgColor;
 b=HighSubBgColor;
 c=FontSubLowColor;
 d=FontSubHighColor	}
this.value=eval(WhatMenu+'[0]');
this.ro=0;
if(this.value.indexOf('rollover')!=-1){
 this.ro=1;
 this.ri1=this.value.substring(this.value.indexOf(':')+1,this.value.lastIndexOf(':'));
 this.ri2=this.value.substring(this.value.lastIndexOf(':')+1,this.value.length);
 this.rid=WhatMenu+'i';this.value="<img src='"+this.ri1+"' name='"+this.rid+"'>"}
if(LeftPaddng&&this.value.indexOf('<')==-1&&MenuTextCentered=='left')this.value=' \;'+this.value;
if(FontBold)this.value=this.value.bold();
if(FontItalic)this.value=this.value.italics();
this.Ovalue=this.value;
this.value=this.value.fontcolor(c);
this.Ovalue=this.Ovalue.fontcolor(d);
this.value=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.value+TxtClose;
this.Ovalue=CntrTxt+"<font face='"+FontFamily+"' point-size='"+FontSize+"'>"+this.Ovalue+TxtClose;
this.LoBck=a;
this.HiBck=b;
this.ChildCntnr=null;
this.PrvMbr=PrMmbr;
this.Hilite=0;
this.visibility='inherit';
if(this.LoBck)this.bgColor=this.LoBck;
this.resizeTo(Wdth,Hght);
if(!AcrssFrms&&eval(WhatMenu+'[2]'))this.background.src=eval(WhatMenu+'[2]');
this.document.write(this.value);
this.document.close();
this.CmdLyr=new Layer(Wdth,MmbrCntnr);
this.CmdLyr.Level=RcrsLvl;
this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]');
this.CmdLyr.visibility='inherit';
this.CmdLyr.onmouseover=RcrsLvl==1&&UnfoldsOnClick?OpenMenuClick:OpenMenu;
this.CmdLyr.onmouseout=CloseMenu;
this.CmdLyr.captureEvents(Event.MOUSEUP);
this.CmdLyr.onmouseup=RcrsLvl==1&&UnfoldsOnClick&&eval(WhatMenu+'[3]')?OpenMenu:GoTo;
this.CmdLyr.LowLyr=this;
this.CmdLyr.resizeTo(Wdth,Hght);
this.CmdLyr.Container=MmbrCntnr;
if(eval(WhatMenu+'[3]')&&ShowArrow){
 a=RcrsLvl==1&&FirstLineHorizontal?3:RightToLeft?6:0;
 this.CmdLyr.ImgLyr=new Layer(Arrws[a+1],this.CmdLyr);
 this.CmdLyr.ImgLyr.visibility='inherit';
 this.CmdLyr.ImgLyr.top=RcrsLvl==1&&FirstLineHorizontal?Hght-Arrws[a+2]-2:(Hght-Arrws[a+2])/2;
 this.CmdLyr.ImgLyr.left=RightToLeft?2:Wdth-Arrws[a+1]-2;
 this.CmdLyr.ImgLyr.width=Arrws[a+1];
 this.CmdLyr.ImgLyr.height=Arrws[a+2];
 ImgStr="<img src='"+Arrws[a]+"' width='"+Arrws[a+1]+"' height='"+Arrws[a+2]+"'>";
 this.CmdLyr.ImgLyr.document.write(ImgStr);
 this.CmdLyr.ImgLyr.document.close()}}

function CreateMenuStructure(MName,NumberOf){
RcrsLvl++;
var i,NoOffSubs,Mbr,Wdth=0,Hght=0;
var PrvMmbr=null;
var WMnu=MName+'1';
var MenuWidth=eval(WMnu+'[5]');
var MenuHeight=eval(WMnu+'[4]');
var Location=RcrsLvl==1?FrstLoc:ScLoc;
if (RcrsLvl==1&&FirstLineHorizontal){
 for(i=1;i<NumberOf+1;i++){
	 WMnu=MName+eval(i);
	 Wdth=eval(WMnu+'[5]')?Wdth+eval(WMnu+'[5]'):Wdth+MenuWidth}
 Wdth=BorderBtwnElmnts?Wdth+(NumberOf+1)*BorderWidth:Wdth+2*BorderWidth;Hght=MenuHeight+2*BorderWidth}
else{	for(i=1;i<NumberOf+1;i++){
	 WMnu=MName+eval(i);
	 Hght=eval(WMnu+'[4]')?Hght+eval(WMnu+'[4]'):Hght+MenuHeight}
 Hght=BorderBtwnElmnts?Hght+(NumberOf+1)*BorderWidth:Hght+2*BorderWidth;Wdth=MenuWidth+2*BorderWidth}
if(DomYes){
 var MmbrCntnr=Location.document.createElement("div");
 MmbrCntnr.style.position='absolute';
 MmbrCntnr.style.visibility='hidden';
 Location.document.body.appendChild(MmbrCntnr)}
else{	if(Nav4) var MmbrCntnr=new Layer(Wdth,Location)
 else{	WMnu+='c';
	 Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"+WMnu+"' style='visibility:hidden; position:absolute;'><\/div>");
	 var MmbrCntnr=Location.document.all[WMnu]}}
MmbrCntnr.SetUp=CntnrSetUp;
MmbrCntnr.SetUp(Wdth,Hght,NumberOf);
if(Exp4){	MmbrCntnr.InnerString='';
 for(i=1;i<NumberOf+1;i++){
	 WMnu=MName+eval(i);
	 MmbrCntnr.InnerString+="<div id='"+WMnu+"' style='position:absolute;'><\/div>"}
 MmbrCntnr.innerHTML=MmbrCntnr.InnerString}
for(i=1;i<NumberOf+1;i++){
 WMnu=MName+eval(i);
 NoOffSubs=eval(WMnu+'[3]');
 Wdth=RcrsLvl==1&&FirstLineHorizontal?eval(WMnu+'[5]')?eval(WMnu+'[5]'):MenuWidth:MenuWidth;
 Hght=RcrsLvl==1&&FirstLineHorizontal?MenuHeight:eval(WMnu+'[4]')?eval(WMnu+'[4]'):MenuHeight;
 if(DomYes){
	 Mbr=Location.document.createElement("div");
	 Mbr.style.position='absolute';
	 Mbr.style.visibility='inherit';
	 MmbrCntnr.appendChild(Mbr)}
 else Mbr=Nav4?new Layer(Wdth,MmbrCntnr):Location.document.all[WMnu];
 Mbr.SetUp=Nav4?NavMbrSetUp:MbrSetUp;
 Mbr.SetUp(MmbrCntnr,PrvMmbr,WMnu,Wdth,Hght);
 if(NoOffSubs) Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs);
 PrvMmbr=Mbr}
MmbrCntnr.FrstMbr=Mbr;
RcrsLvl--;
return(MmbrCntnr)}

function CreateMenuStructureAgain(MName,NumberOf){
var i,WMnu,NoOffSubs,PrvMmbr,Mbr=FrstCntnr.FrstMbr;
RcrsLvl++;
for(i=NumberOf;i>0;i--){
 WMnu=MName+eval(i);
 NoOffSubs=eval(WMnu+'[3]');
 PrvMmbr=Mbr;
 if(NoOffSubs)Mbr.ChildCntnr=CreateMenuStructure(WMnu+'_',NoOffSubs);
 Mbr=Mbr.PrvMbr}
RcrsLvl--}
</script>
          </td>
         </tr>
<!-- categories_eof //-->

 

Thanks for your help


The hardest thing in life is watching someone you love, love someone else.

Share this post


Link to post
Share on other sites

Ray:

 

To get STS to capture a block to redisplay on the template you assign the variable $sts_block_name to a name, and then turn on the capture buffer using calls to STS_START_CAPTURE. Once the output you want in the block has executed, use STS_STOP_CAPTURE to stop the buffering, or STS_RESTART_CAPTURE to stop buffering and restart a new capture block. As long as $sts_block_name is set before you stop or restart the capture buffer, things are ok.

 

So the code basically looks like this (taken from sts_user_code.php):

    $sts_block_name = 'newcontent';
   require(STS_START_CAPTURE);
   // stuff you want to display goes here
   require(STS_STOP_CAPTURE);
   $template['newcontent'] = strip_unwanted_tags($sts_block['newcontent'], 'newcontent');

 

Mibble:

Inside sts_display_output.php is code to call the Header Tag Controller code if it's detected. Because the header tags are called and captured in sts_display_output you don't have to do all the modifications to all of the files to add the header tag support. However, because it's called in sts_display_output, if you add the header tag code to application_top per the instructions in HTC you get the redeclaration error caused by clean_html_comments (part of HTC) getting called twice.

 

The solution is to only add the call to clean_html_comments in application_top and just delete out the call to clean_html_comments from inside sts_display_output.php. See the post I made a few pages back about it for more detail, where I posted changes to be made regarding making STS, HTC and Article Manager to make nice.

 

-C

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×