Horizontal Tabbed Panel Inside Vertical Tabbed Panel

Hello!
I am new to web coding and in dreamweaver I would like to place a horizontal spry tabbed panel as the content of a vertical spry tabbed panel.  I guess you could call it a nesting a tabbed panel.  However, when I place the horizontal panel in the content area, it takes the form of a vertical panel.  Any thoughts?
Here is a live page of the issue: http://andrewpapp.com/baseballprofile.html
and here is the code:
http://www.andrewpapp.com/html.txt

Hi Newbie,
I say this through gritted teeth because I think you have done far better than just a newbie, even to the extent that you have given correct advice to Jennigje Galama.
To get to your problem, have a look at the following example
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
<link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css">
<style>
.HTabbedPanels .TabbedPanels {
     margin: 0px;
     padding: 0px;
     float: left;
     clear: none;
     width: 100%; /* IE Hack to force proper layout when preceded by a paragraph. (hasLayout Bug)*/
.HTabbedPanels .TabbedPanelsTabGroup {
     margin: 0px;
     padding: 0px;
.HTabbedPanels .TabbedPanelsTab {
     position: relative;
     top: 1px;
     float: left;
     padding: 4px 10px;
     margin: 0px 1px 0px 0px;
     font: bold 0.7em sans-serif;
     background-color: #DDD;
     list-style: none;
     border-left: solid 1px #CCC;
     border-bottom: solid 1px #999;
     border-top: solid 1px #999;
     border-right: solid 1px #999;
     -moz-user-select: none;
     -khtml-user-select: none;
     cursor: pointer;
.HTabbedPanels .TabbedPanelsTabHover {
     background-color: #CCC;
.HTabbedPanels .TabbedPanelsTabSelected {
     background-color: #EEE;
     border-bottom: 1px solid #EEE;
.HTabbedPanels .TabbedPanelsTab a {
     color: black;
     text-decoration: none;
.HTabbedPanels .TabbedPanelsContentGroup {
     clear: both;
     border-left: solid 1px #CCC;
     border-bottom: solid 1px #CCC;
     border-top: solid 1px #999;
     border-right: solid 1px #999;
     background-color: #EEE;
.HTabbedPanels .TabbedPanelsContent {
     padding: 4px;
.HTabbedPanels .TabbedPanelsContentVisible {
</style>
</head>
<body>
<div id="TabbedPanels1" class="VTabbedPanels">
  <ul class="TabbedPanelsTabGroup">
    <li class="TabbedPanelsTab" tabindex="0">Tab 1</li>
    <li class="TabbedPanelsTab" tabindex="0">Tab 2</li>
  </ul>
  <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent">
         <div id="TabbedPanels2" class="HTabbedPanels">
           <ul class="TabbedPanelsTabGroup">
             <li class="TabbedPanelsTab" tabindex="0">Tab 1.1</li>
             <li class="TabbedPanelsTab" tabindex="0">Tab 1.2</li>
           </ul>
           <div class="TabbedPanelsContentGroup">
             <div class="TabbedPanelsContent">Content 1.1</div>
             <div class="TabbedPanelsContent">Content 1.2</div>
           </div>
         </div>
    </div>
    <div class="TabbedPanelsContent">
         <div id="TabbedPanels3" class="HTabbedPanels">
           <ul class="TabbedPanelsTabGroup">
             <li class="TabbedPanelsTab" tabindex="0">Tab 2.1</li>
             <li class="TabbedPanelsTab" tabindex="0">Tab 2.2</li>
           </ul>
           <div class="TabbedPanelsContentGroup">
             <div class="TabbedPanelsContent">Content 2.1</div>
             <div class="TabbedPanelsContent">Content 2.2</div>
           </div>
         </div>
    </div>
  </div>
</div>
<script type="text/javascript">
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
var TabbedPanels2 = new Spry.Widget.TabbedPanels("TabbedPanels2");
var TabbedPanels3 = new Spry.Widget.TabbedPanels("TabbedPanels3");
</script>
</body>
</html>
What the vertical tabs does, is override the style rules of the normal (horizontal) tabs. Thats OK, but if we then want horizontal tags, we must resurrect the orginal style rules. We must also make sure that we choose the selectors carefully unless we want to rewrite the JavaScript file.
I think the above approach is probably the best,
Keep up the good work.
Gramps

Similar Messages

  • Tab canvas inside a tab canvas

    Anyone knows how to put a tab canvas inside a tab canvas.
    thanks.

    I did a little test and it works (it'll only take you 3 min)
    Create a new Form.
    Add 3 Canvases 1 Content and 2 Tab with the following Properties
    Content
    Vieport X Position on Canvas: 0
    Vieport Y Position on Canvas: 0
    Width: 540
    Height: 324
    Master Tabs
    Vieport X: 35
    Vieport Y: 20
    Vieport Width: 460
    Vieport Heigth: 280
    Detail Tabs
    Vieport X: 150
    Vieport Y: 95
    Vieport Width: 260
    Vieport Heigth: 160
    Then go to Layout editor and while viewing the Content Canvas go to the menu View -> Stacked View...
    From there select both tab canvases to be shown.
    Also add a dummy item (i.e a button )somewhere in the form otherwise nothing will appear when you run the form.

  • Forms 9i tab pages inside a tab page

    hi,
    i m using forms 9i, is it possible to set a tab page inside a tab page
    ie i have a master tab page called 'Office' and i have to add two tab pages
    called 'excel', 'word' as the sub of this main tab..is it possible.......?
    if yes how ?
    thanks in advance
    KK

    You can create the illusion of this though using stacked and tabbed canvases. Make the main tab small so that it only displays the labels and then display the other stacked or tabbed canvases dependent upon which tab the user selects. We've done something similar to this and it works pretty well.

  • Tab page inside another tab page

    I have a requirement to create a tab page inside another tab page.is it possible?
    if possible pls give me the solution...............

    iTs possible. Place both tab-canvases on their respective content-canvas on the the correct positions. Then, in the WHEn-TAb-PAGE-CHANGED-trigger, make the second tab visile or invisble, using SHOW_VIEW or HIDE_VIEW.

  • Tab widget inside another tab widget

    Hi,
    Is it possible to do the following?
    I want to create a vertical tab widget (no prob). But on each
    of the tab 'pages' I want to add a horizontal tab widget.
    Thanks,
    Donal

    Sure why not, if u have your constructors, and ids correct, i
    dont see any problem in it.

  • Running old Flash panel inside an HTML5 panel

    Is it possible to run the SWF file of my old flash panel inside a new HTML5 panel and let the SWF communicate with Photoshop? Or do I have to write some intermediate code that passes the SWF commands to Photoshop? Is something like that possible at all? I am looking for an easy way to convert my flash panel to an HTML5 panel without having to recode its UI.

    Ok, I tried it myself. Where the Flash content should be there is only a "Couldn't load plugin" text. So why not
    support the Flash Player plugin inside HTML5 extensions in Photoshop CC 2014?

  • Creating tab canvas inside another tab canvas

    pleas help me solving the issue...
    I want controlling code such that i can create tabpage canvas into another one.
    second tab page of first tab canvas it should be visible.
    regards
    jai

    As long as i know something like this is not possible.
    But you can emulate it this way (for this example i will assume that you want the smaller tab-canvas placed on the second page of the bigger tab-canvas) :
    1. create a tab-canvas
    2. create a stacked-canvas with bevel=none
    3. create a new tab-canvas and place it on your stacked-canvas
    4. make the stacked-canvas invisible
    5. through the trigger WHEN-TAB-PAGE-CHANGED make your stacked-canvas visible whenever you are on page 2 and invisible whenever you are on another page.
    6. adjust the coordinates of your stacked-canvas so it will appear right above the bigger tab-canvas
    Good luck with this
    Markus

  • Tabbed Pannel inside a tabbed panel..

    Any one able to get this to work, it renders OK, but the tabbes are not clickcable...
    http://video360-node2.world-television.com/CCOH/concept_v2.html?siteID=SmWpHNYUbcA%3d&stor yID=129&Language=en-GB&Asset=2059#2044
    Click on the preview button on the assets below to see the red tabbed pannel not working..
    Please Help?
    Thanks

    I was working on a solution for your first post, then I saw your second post with a completely different tabbed panel.
    Because I wasn't sure which way you wanted to go, I thought I would continue with the second option.
    Try the following taking special not of the red coloured modifications
    <div id="TabbedPanels2">
      <h2>Tab 1</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sapien lacus, porttitor vitae pretium eget, sodales sed libero. Maecenas non urna lacus, ac sollicitudin justo. Ut erat mi, hendrerit ac accumsan ac, congue eu dui. Pellentesque consectetur condimentum elit, et eleifend urna porta id. Phasellus blandit ullamcorper dignissim. In rutrum, ante non congue fermentum, metus odio bibendum elit, ut congue sapien arcu ac justo. Vivamus sit amet erat nibh, quis dignissim libero. Pellentesque in sapien felis, et volutpat eros. Maecenas adipiscing, eros sit amet placerat cursus, arcu lacus consectetur lectus, non ultricies neque urna laoreet purus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
      <h2>Tab 2</h2>
      <p>
      </p>
      <div id="TabbedPanels2_2">
        <h3>Tab 1</h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce sapien lacus, porttitor vitae pretium eget, sodales sed libero. Maecenas non urna lacus, ac sollicitudin justo. Ut erat mi, hendrerit ac accumsan ac, congue eu dui. Pellentesque consectetur condimentum elit, et eleifend urna porta id. Phasellus blandit ullamcorper dignissim. In rutrum, ante non congue fermentum, metus odio bibendum elit, ut congue sapien arcu ac justo. Vivamus sit amet erat nibh, quis dignissim libero. Pellentesque in sapien felis, et volutpat eros. Maecenas adipiscing, eros sit amet placerat cursus, arcu lacus consectetur lectus, non ultricies neque urna laoreet purus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
        <h3>Tab 2</h3>
        <p>Nulla facilisi. Vestibulum ipsum elit, tincidunt sed tristique sit amet, faucibus in orci. Nunc sit amet elit lorem. Sed eget arcu ipsum, pharetra ullamcorper lectus. Sed ac diam ac tortor mattis mollis. Etiam mattis felis vel augue tempus in rhoncus ligula elementum. Vestibulum ut iaculis risus. Aliquam erat sem, feugiat vel laoreet in, lobortis non mauris. Vestibulum neque nibh, vehicula eleifend tincidunt sed, bibendum id dolor. Pellentesque quis libero nec orci porttitor faucibus vitae in velit. Pellentesque dignissim sem ut justo interdum id egestas tellus fringilla. Vestibulum tempor, turpis eget dignissim luctus, est erat ultricies turpis, non tempus massa elit in nulla. Sed eu arcu vel enim laoreet hendrerit at vel enim. Integer semper malesuada sem quis porttitor.</p>
        <h3>Tab 3</h3>
        <p>Suspendisse potenti. Proin ut erat sit amet turpis egestas tempor. Integer arcu dolor, aliquam ut egestas nec, pharetra ut mauris. Duis urna mi, aliquam id vulputate et, consequat in dolor. Duis congue sem feugiat nulla malesuada scelerisque. Aenean vitae augue nec diam euismod imperdiet. In accumsan consectetur ante a vestibulum. Phasellus eu nulla et lectus tincidunt porttitor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin mauris massa, venenatis ut fringilla interdum, imperdiet et neque. Sed ut risus metus.</p>
      </div>
      <script type="text/javascript">
    // BeginOAWidget_Instance_2138522: #TabbedPanels2_2
            var TabbedPanels2_2 = new Spry.Widget.TabbedPanels2("TabbedPanels2_2", {
                injectionType: "replace",
                widgetID: "TabbedPanels2_2",
                autoPlay: true,
                defaultTab: 0,
                tabSelector: "h3",
                enableKeyboardNavigation: true,
                hideHeader: true,
                tabsPosition: "top",
                event:"click",
                stopOnUserAction: true,
                displayInterval: 5000,
                minDuration: 300,
                maxDuration: 500,
                stoppedMinDuration: 100,
                stoppedMaxDuration: 200,
                plugIns:[]
    // EndOAWidget_Instance_2138522
      </script>
      <p></p>
      <h2>Tab 3</h2>
      <p>Suspendisse potenti. Proin ut erat sit amet turpis egestas tempor. Integer arcu dolor, aliquam ut egestas nec, pharetra ut mauris. Duis urna mi, aliquam id vulputate et, consequat in dolor. Duis congue sem feugiat nulla malesuada scelerisque. Aenean vitae augue nec diam euismod imperdiet. In accumsan consectetur ante a vestibulum. Phasellus eu nulla et lectus tincidunt porttitor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin mauris massa, venenatis ut fringilla interdum, imperdiet et neque. Sed ut risus metus.</p>
    </div>
    <script type="text/javascript">
    // BeginOAWidget_Instance_2138522: #TabbedPanels2
            var TabbedPanels2 = new Spry.Widget.TabbedPanels2("TabbedPanels2", {
                injectionType: "replace",
                widgetID: "TabbedPanels2",
                autoPlay: true,
                defaultTab: 0,
               tabSelector: "h2",
                enableKeyboardNavigation: true,
                hideHeader: true,
                tabsPosition: "top",
                event:"click",
                stopOnUserAction: true,
                displayInterval: 5000,
                minDuration: 300,
                maxDuration: 500,
                stoppedMinDuration: 100,
                stoppedMaxDuration: 200,
                plugIns:[]
    // EndOAWidget_Instance_2138522
    </script>
    I hope this helps.
    Ben

  • Need a tab navigator with vertical tabs and horizontal text as the tab label?

    Hello,
    I've found a component here http://hasseg.org/stuff/VerticalTabNavigator/VerticalTabNavigatorDemo.swf, but I need to display the labels horizontally. Any suggestions?

    import javax.swing.*;
    class VerticalScrollTextArea {
        public static void main(String[] args) {
            Runnable r = new Runnable() {
                public void run() {
                    JTextArea ta = new JTextArea( 5, 20 );
                    // the stuff you need
                    ta.setLineWrap(true);
                    // your GUI might not require this
                    ta.setWrapStyleWord(true);
                    JScrollPane sp = new JScrollPane(
                        ta,
                        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
                    sp.setPreferredSize( ta.getPreferredSize() );
                    JOptionPane.showMessageDialog(null, sp);
            SwingUtilities.invokeLater(r);
    }

  • OGLControlPanel inside a tab window?

    Hi,
    I'm trying to get a working OGL panel inside a tab, but I keep getting errors. According to http://forums.ni.com/t5/LabWindows-CVI/CVI-OpenGL-control-on-child-panel/m-p/98192/highlight/true#M7... it's just how it works, but there are ways around it.I've downloaded example http://sine.ni.com/devzone/cda/epd/p/id/1061 , but its not exactly what I need - it creates a child panel window inside main window.
    So, my question is - is there a way to put a OGL panel inside a tab window?
    Regards, Benji.

    Dear BenjiF!
    Sorry for the late reply, I tried to insert the OGL control on a tabpanel in CVI built in OGL example: Ogldemo.
    I got the following error: 
    NON-FATAL RUN-TIME ERROR: "ogldemo.c", line 259, col 5, thread id 0x00002478: Function OGLConvertCtrl: (return value == -1003 [0xfffffc15]). Only a canvas or picture can be converted into an OGL control
    If you have a look on the help of OGLConvertCtrl >> Panelhandleparameter, you will see the following:
    The panel has to be a parent panel and should not be the child of any other panel. The panel cannot be scrollable or resizable.
    Maybe this restriction  is the reason, why is it not working.
    3D Graph custom control could be an alternative, if it is suitable for your application. An example for this: https://decibel.ni.com/content/docs/DOC-6452
    In the linked topic I found a useable workaround:
    "The fact that the OGL control is only available on parent panels is not necessarily a problem with CVI. Instead, it is simply a limitation of the OGL control. Likewise, a limitation of the easy tab control is that it takes in child panels. I would suggest copying the final image to the tab panel (as mentioned by PaoloB), or possible use a separate panel to display your 3D images."
    Some material related to OpenGL.
    Please go through this KB: http://digital.ni.com/public.nsf/allkb/D369558F34AA3264862565FC007CBB33?OpenDocument
    You can find built in examples in the folder: 
    C:\Users\Public\Documents\National Instruments\CVI"version"\samples\userint\custctrl\cviogl
    Best Regards,
    Balazs Nagy

  • Nested Sliding Panel in an Accordion Panel

    I have a nested Sliding Panel inside an Accordion Panel.
    The Sliding panel will show until the Accordion panel is
    completely closed then it abruptly hides itself.
    It does this only in IE of course.
    Not sure if a sliding panel can be properly nested inside an
    Accordion panel so if anybody could please tell me I would really
    appreciate it.
    Thank you,
    Bisser.

    Hi kinblas,
    I changed the AccordionPanelContent5 to "hidden" and it still
    keeps the image displayed until the Accordion Panel closes, and
    then the nested sliding panel image disappears abruptly. This only
    happens in IE.
    Any other suggestions would be welcome.
    Thank you,
    Bisser.

  • Vertical tabbed panel with background image

    Hi all,
    I have a working vertical tabbed panel.  For the text that's shown, there's a background image assigned to the associated DIV.
    However...
    The background image that's shown is clipped to the bottom of the text.
    In other words, if I have 3 lines of text, the bottom of the background image only goes as far down as the bottom line of text.  In order to show the entire image, I have to put in a lot of </ br> tags for "empty" text, not a very good approach.
    More of the backgound will show if I increase the text text size via the browser.
    To try to describe this more accurately,
    Let's say I have a background image that's 600 px in height, but the lines of text only measure to 400px.  That means that the bottom 200 px of the image doesn't show, unless I add more lines of text.
    Hoping someone has an answer!
    Thanks,
    Jerry

    Gramps,
    Again, thanks for your time.  While we're now full time commercial photographers (http://www.jerryandlois.com), I was a software engineer for some 20+ years in an earlier life, all on the application side of things.  Not really any appreciable time with website stuff.
    There are a few more tech/how-to questions I have that are specific to CSS, in terms of polishing up the small site I'm working on.  However these are not SPRY related, unless SPRY can solve this for me.
    In particular, suppose I have a large block with a background image and a body of text.  I want to ensure the text wraps around the image, rather than being a complete overlay where the text can collide with the main body of the photo.
    Example:
    http://jerryandloisstudios.com/about.html
    The issue is that the text is resizable, by design of course.  Is there any way to manage these two elements (text and image) so they get along the right way?  We want the text to overlay some of the image, but only on the periphery, if that makes sense.  So far, the only solution I've seen is to keep the text formatted roughly in a column so that if its size increases all will still be OK.  But...  artistically that just doesn't look right.
    If you're up for it, I'd certainly welcome a private email thread, unless others can also benefit from the rather newbie questions I'm raising:  [email protected]
    Again, thank you for your help!!!
    Jerry

  • Link inside a tab panel

    Hello,
    I am not sure how to word my question and I hope that I am
    explaining it correctly.
    I am using a tab panel to display information from a Sql
    database. Inside each tab is a dynamic table displaying some of the
    database information. Inside the table, I have created a link to
    send the user to another page where all the database information
    for that record is displayed. When you click the link, it sends the
    user to the page, but not the data. The link works on the open
    default tab, but not in the other tabs. I am not sure why it is not
    working. Any help or ideas on what the problem may be would be
    helpful.
    Thank you,

    > The link works on the
    > open default tab, but not in the other tabs.
    Show us the code for both of these links, please.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "StoneflyRS" <[email protected]> wrote in
    message
    news:ge8pjb$jg8$[email protected]..
    > Hello,
    >
    > I am not sure how to word my question and I hope that I
    am explaining it
    > correctly.
    >
    > I am using a tab panel to display information from a Sql
    database. Inside
    > each tab is a dynamic table displaying some of the
    database information.
    > Inside the table, I have created a link to send the user
    to another page
    > where
    > all the database information for that record is
    displayed. When you click
    > the
    > link, it sends the user to the page, but not the data.
    The link works on
    > the
    > open default tab, but not in the other tabs. I am not
    sure why it is not
    > working. Any help or ideas on what the problem may be
    would be helpful.
    >
    > Thank you,
    >

  • Spry - Vertical Tabbed Panel

    Hey guys,
    I looked around this site and I could find an answer to this but I couldn’t, so I thought I would pop this question in.
    I want to make a vertical Tabbed Panel but I want it to be split into different categories.
    The category heading is not clickable but its sub item are clickable, e.g.
    Group A – Not clickable                     | Content Panel
    Tab1 – Shows content panel 1            |
    Tab2 – Shows content panel 2            |
    Group B– Not clickable                      |
    Tab3 – Shows content panel 3            |
    Tab4 – Shows content panel 4            |
    I tried a few ideas but with not luck.  If anyone could point me in the right direction I would be very grateful.

    What I would do is make small change the JavaScript file
    Find Spry.Widget.TabbedPanels.prototype.getTabs and replace it with this function.
    Spry.Widget.TabbedPanels.prototype.getTabs = function()
         var tabs = [];
         var tg = this.getTabGroup();
         if (tg)
              tabs = this.getElementChildren(tg);
         for(var i = 0; i < tabs.length; i++){
              if(!tabs[i].className.match('TabbedPanelsTab')){
                   tabs.splice(i, 1); // remove because its not a tab
         return tabs;
    It checks if your tabbedpanels tab have the class "TabbedPanelsTab" if it does, it will allow it to be tab
    So now you can do..
    <div class="TabbedPanels" id="tp1">
    <ul class="TabbedPanelsTabGroup">
    <li class="tab1" tabindex="0">I do nothing</li>
    <li class="TabbedPanelsTab tab2" tabindex="0">Tab 1</li>
    <li class="TabbedPanelsTab tab3" tabindex="0">Tab 2</li>
    <li class="TabbedPanelsTab tab4" tabindex="0">Tab 3</li>
    </ul>
    <div class="TabbedPanelsContentGroup">
    <div class="TabbedPanelsContent">Tab 1 Content</div>
    <div class="TabbedPanelsContent">Tab 2 Content</div>
    <div class="TabbedPanelsContent">Tab 3 Content</div>
    </div>
    </div>

  • Scale Object with Panel, but what about inside a Tab control?

    The Scale Object with Panel option works very well for simple UI
    objects.  I like to use it for VIs that display tables or
    multicolumn listboxes, etc.  I am finding a limitation when I use
    the Tab control.  If I have a table or listbox in each tab, I
    would like them to scale with the panel.  I would also like the
    tab to scale.  It should look like an Excel workbook where all
    sheets scale with the window even though they are each on their own
    tab.  If I could only Group the various tables / lists with the
    Tab itself....
    This wouldn't be such an issue if the Bounds property of the
    multicolumn listbox was writable.  I can set the number of rows
    and columns, but column size can be variable and not uniform across all
    columns.  Also, that solution looks and behaves much different
    from the Scale Object with Panel approach.... not to mention the extra
    coding required.
    I'm guessing that this amounts to a feature request, but if anyone has a present-version workaround, I'd love to hear about it.
    See you at NI Week!
    Dan Press
    PrimeTest Automation

    Hi Kalin T,
    Thanks for your prompt reply. I am running version 8.01. My problem is that i cannot select "Scale object with pane" for the controls inside a Tab control if the Tab control "Scale object with pane" is turned on. I want both the Tab control and the controls inside to be scaled, for instance an Waveform graph or an textbox  when i resize my main window.
    Best regards,
    Mattis
    Attachments:
    Scale.vi ‏11 KB

Maybe you are looking for