SitePoint Sponsor

User Tag List

Page 1 of 2 12 LastLast
Results 1 to 25 of 34

Hybrid View

  1. #1
    SitePoint Guru johnjohn2's Avatar
    Join Date
    Apr 2004
    Location
    here
    Posts
    746
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    javascript to hide row in table

    Is it possible to have a show/hide click on link that would hide or show a row in one of my tables? Something that would hide the whole <tr> tags not just blank out a patch on my web page so a white square would show up.

  2. #2
    SitePoint Addict
    Join Date
    Jul 2000
    Posts
    201
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Try this...
    HTML Code:
    <html>
    <head>
    <script>
    function toggle() {
     if( document.getElementById("hidethis").style.display=='none' ){
       document.getElementById("hidethis").style.display = '';
     }else{
       document.getElementById("hidethis").style.display = 'none';
     }
    }
    </script>
    </head>
    <body>
    
    <span onClick="toggle();">toggle</span><br /><br />
    
    <table border="1">
    <tr>
    <td>Always visible</td>
    </tr>
    <tr id="hidethis">
    <td>Hide this</td>
    </tr>
    <tr>
    <td>Always visible</td>
    </tr>
    </table>
    
    </body>
    </html>
    Last edited by FauxPas; Jul 29, 2004 at 10:18. Reason: Removed some unnecessary stuff

  3. #3
    SitePoint Wizard silver trophy
    Join Date
    May 2003
    Posts
    1,843
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
        "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    <head>
    <title>untitled</title>
    <style type="text/css">
    
    #foo {
    	position: absolute;
    	z-index: 99;
    	left: 120px;
    	top: 60px;
    }
    tr {
    	background: skyblue;
    }
    td {
    	font-size: smaller;
    	padding: 2px;
    	border: 3px #000 double;
    }
    a:link, a:visited, a:hover, a:active {
    	position: absolute;
    	left: 10px;
    	top: 70px;
    	font: normal 11px verdana;
    	color: darkred;
    	text-decoration: none;
    }
    a:hover {
    	padding-left: 3px;
    }
    
    </style>
    <script type="text/javascript">
    
    /* call onload with table id(s) */
    function TR_set_toggle()
    {
    	/* toggleRow method */
    	var toggleRow = function()
    	{
    		this.style.display = ((this.style.display == '') ? 'none' : '');
    		return false;
    	}
    
    	for (var oTable, a = 0; a < arguments.length; ++a)
    	{
    		oTable = document.getElementById(arguments[a]);
         		var r = 0, row, rows = oTable.rows;
         		while (row = rows.item(r++))
    			row.toggle = toggleRow;
    	}
    
    	/* convenience function */
    	self.toggleRow = function(row_id)
    	{
    		document.getElementById(row_id).toggle();
    	}
    }
    
    onload = function()
    {
    	TR_set_toggle('foo');
    }
    
    </script>
    </head>
    <body>
    <table id="foo">
    <tbody>
    <tr id="foo1">
    <td>row 1 row 1 row 1 row 1 row 1</td>
    <td>row 1 row 1 row 1 row 1 row 1</td>
    <td>row 1 row 1 row 1 row 1 row 1</td>
    <td>row 1 row 1 row 1 row 1 row 1</td>
    </tr>
    <tr id="foo2">
    <td>row 2 row 2 row 2 row 2 row 2</td>
    <td>row 2 row 2 row 2 row 2 row 2</td>
    <td>row 2 row 2 row 2 row 2 row 2</td>
    <td>row 2 row 2 row 2 row 2 row 2</td>
    </tr>
    <tr id="foo3">
    <td>row 3 row 3 row 3 row 3 row 3</td>
    <td>row 3 row 3 row 3 row 3 row 3</td>
    <td>row 3 row 3 row 3 row 3 row 3</td>
    <td>row 3 row 3 row 3 row 3 row 3</td>
    </tr>
    </tbody>
    </table>
    <a href="#null" onclick="toggleRow('foo1')">toggle row 1</a>
    <a href="#null" style="top:95px;" onclick="toggleRow('foo2')">toggle row 2</a>
    <a href="#null" style="top:120px;" onclick="toggleRow('foo3')">toggle row 3</a>
    </body>
    </html>
    Need to absolutely position the table if you don't want other content 'shoved' around.
    Last edited by adios; Jul 29, 2004 at 19:51.
    ::: certified wild guess :::

  4. #4
    SitePoint Member
    Join Date
    Dec 2005
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question

    Quote Originally Posted by adios
    Code:
    <script type="text/javascript">
    
    /* call onload with table id(s) */
    function TR_set_toggle()
    {
    	/* toggleRow method */
    	var toggleRow = function()
    	{
    		this.style.display = ((this.style.display == '') ? 'none' : '');
    		return false;
    	}
    
    	for (var oTable, a = 0; a < arguments.length; ++a)
    	{
    		oTable = document.getElementById(arguments[a]);
         		var r = 0, row, rows = oTable.rows;
         		while (row = rows.item(r++))
    			row.toggle = toggleRow;
    	}
    
    	/* convenience function */
    	self.toggleRow = function(row_id)
    	{
    		document.getElementById(row_id).toggle();
    	}
    }
    
    onload = function()
    {
    	TR_set_toggle('foo');
    }
    
    </script>
    etc..........
    I really like your script. It is very useful and easy to customize. I've managed to make it not show the rows until the item is clicked. Now I'm wondering how can I make it so that when I click on one of the selections it toggles all other rows off and only shows the current selection?

  5. #5
    SitePoint Member
    Join Date
    Dec 2005
    Posts
    2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ah....Spent a couple of hours and rewrote everything but had been inspired by Adios post on this. Below you'll see what I came up with. Much simpler code to get the same functionality as a tab pane.

    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Untitled Document</title>
    <script>
    function resetAll(){
    		document.getElementById('tab1').style.display = 'none';
    		document.getElementById('tab2').style.display = 'none';
    		document.getElementById('tab3').style.display = 'none';
    		document.getElementById('tab4').style.display = 'none';
    		document.getElementById('tab5').style.display = 'none';
    
    		document.getElementById('tablink1').className = 'tab';
    		document.getElementById('tablink2').className = 'tab';
    		document.getElementById('tablink3').className = 'tab';
    		document.getElementById('tablink4').className = 'tab';
    		document.getElementById('tablink5').className = 'tab';
    
    }
    function toggleRow2(row,link) {
    resetAll();
    		document.getElementById(''+row+'').style.display = 'block';
    		link.className = 'tabSelected';
    }
    </script>
    <style>
    <!--
    a.tab { width: 100%; display: block; background-color: #EEE; color: #000; border-bottom: #999 1px solid; text-align: center;}
    a.tab:visited { width: 100%; display: block; background-color: #EEE; color: #000; border-bottom: #999 1px solid; text-align: center;}
    a.tab:hover { width: 100%; display: block; background-color: #999; color: #000; border-bottom: #999 1px solid; text-align: center;}
    
    a.tabSelected { width: 100%; display: block; background-color: #FFF; color: #000; border-bottom: #FFF 1px solid; text-align: center;}
    a.tabSelected:visited { width: 100%; display: block; background-color: #FFF; color: #000; border-bottom: #FFF 1px solid; text-align: center;}
    a.tabSelected:hover { width: 100%; display: block; background-color: #FFF; color: #000; border-bottom: #FFF 1px solid; text-align: center;}
    
    table#tabs td { padding: 0px; text-align: left;}
    table#tabs td#tabs { border-left: #999 1px solid; border-right: #999 1px solid; border-top: #999 1px solid;}
    table#tabs td.rows { background-color: #FFF; border-left: #999 1px solid; border-right: #999 1px solid; border-bottom: #999 1px solid;}
    -->
    </style>
    
    </head>
    
    <body>
    <table width="100%" border="0" cellspacing="0" cellpadding="0" id="tabs">
      <tr>
        <td align="center" style=" border-left: #999 1px solid; border-right: #999 1px solid; border-top: #999 1px solid;"><a href="#null" onclick="toggleRow2('tab1',this)" class="tabSelected" id="tablink1">Test1</a></td>
        <td align="center" style=" border-left: #999 1px solid; border-right: #999 1px solid; border-top: #999 1px solid;"><a href="#null" onclick="toggleRow2('tab2',this)" class="tab" id="tablink2">Test2</a></td>
        <td align="center" style=" border-left: #999 1px solid; border-right: #999 1px solid; border-top: #999 1px solid;"><a href="#null" onclick="toggleRow2('tab3',this)" class="tab" id="tablink3">Test3</a></td>
        <td align="center" style=" border-left: #999 1px solid; border-right: #999 1px solid; border-top: #999 1px solid;"><a href="#null" onclick="toggleRow2('tab4',this)" class="tab" id="tablink4">Test4</a></td>
        <td align="center" style=" border-left: #999 1px solid; border-right: #999 1px solid; border-top: #999 1px solid;"><a href="#null" onclick="toggleRow2('tab5',this)" class="tab" id="tablink5">Test5</a></td>
      </tr>
      <tr id="tab1">
        <td colspan="5" class="rows">Row 1</td>
      </tr>
      <tr id="tab2" style="display: none;" >
        <td colspan="5" class="rows">Row 2</td>
      </tr>
      <tr id="tab3" style="display: none;">
        <td colspan="5" class="rows">Row 3</td>
      </tr>
      <tr id="tab4" style="display: none;">
        <td colspan="5" class="rows">Row 4</td>
      </tr>
      <tr id="tab5" style="display: none;">
        <td colspan="5" class="rows">Row 5</td>
      </tr>
    </table>
    </body>
    </html>

  6. #6
    SitePoint Enthusiast
    Join Date
    Jan 2008
    Posts
    57
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    All,

    Also experiencing problems. Code attached. Got about 4 different version of the JavaScript and none work inside the PHP.

    Thinking I need a hidden field in the php to make it work.

    What do you think?

    Thanks!

    OMR
    Attached Files Attached Files

  7. #7
    Original Gangster silver trophy Thing's Avatar
    Join Date
    Oct 2000
    Location
    Philadelphia, PA
    Posts
    4,708
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by FauxPas
    Try this...
    HTML Code:
    <html>
    <head>
    <script>
    function toggle() {
    if( document.getElementById("hidethis").style.display=='none' ){
    document.getElementById("hidethis").style.display = '';
    }else{
    document.getElementById("hidethis").style.display = 'none';
    }
    }
    </script>
    </head>
    <body>
     
    <span onClick="toggle();">toggle</span><br /><br />
     
    <table border="1">
    <tr>
    <td>Always visible</td>
    </tr>
    <tr id="hidethis">
    <td>Hide this</td>
    </tr>
    <tr>
    <td>Always visible</td>
    </tr>
    </table>
     
    </body>
    </html>
    How could I change this code to NOT display the row until the toggle link is clicked? I tried putting the onload command in the body tag but it's delayed about 2 seconds.

  8. #8
    He's No Good To Me Dead silver trophybronze trophy stymiee's Avatar
    Join Date
    Feb 2003
    Location
    Slave I
    Posts
    23,426
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)
    OK, adios, I'm not quite grasping what you've got going on here. I understand the visible, invisible part. But here's what I'm not getting:

    - Why are you calling that function on the page load?

    - It apparently only has one argument yet you've got "arguments.length"? And to top it off you're iterating backwards?

    - Why the anonymous functions?

    Maybe with a little explanation I'll have a better grasp of how that works.

  9. #9
    I'll take mine raw silver trophy MikeFoster's Avatar
    Join Date
    Dec 2002
    Location
    Alabama, USA
    Posts
    2,560
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Not as cool as adios's, but here's another one
    Code:
    /* tableRowDisplay()
       bShow - if true show the row, else hide it
       secId - ID of table or tBody
       rowNum - zero-based row number
    */
    function tableRowDisplay(bShow, secId, rowNum)
    {
      var tbl = document.getElementById(secId);
      if (tbl && rowNum < tbl.rows.length) {
        tbl.rows[rowNum].style.display = bShow ? '' : 'none';
      }
    }

  10. #10
    I'll take mine raw silver trophy MikeFoster's Avatar
    Join Date
    Dec 2002
    Location
    Alabama, USA
    Posts
    2,560
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi stymiee,

    I don't think adios will mind if I take a shot at those questions

    >> Why are you calling that function on the page load?

    It loops through all rows in the table and adds a toggle() function (method) to each row object. Later, you only have to call a row's toggle() method and it toggles itself.

    >> It apparently only has one argument yet you've got "arguments.length"?

    You can pass any number of table IDs to it, and it will add a toggle() method to all of their rows.

    >> And to top it off you're iterating backwards?

    It iterates from rows[0] to rows[rows.length-1], and then rows.item() will return null;

    >> Why the anonymous functions?

    Perhaps he should not have used an anonymous function there. (just my opinion )


    OT...
    I couldn't help myself I played with this some more and ended up three new X functions. Here's a demo.

  11. #11
    SitePoint Wizard silver trophy
    Join Date
    May 2003
    Posts
    1,843
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Mike:
    Perhaps he should not have used an anonymous function there.
    How come?

    Edit:

    Never mind...pointer == 'less expensive'
    ::: certified wild guess :::

  12. #12
    He's No Good To Me Dead silver trophybronze trophy stymiee's Avatar
    Join Date
    Feb 2003
    Location
    Slave I
    Posts
    23,426
    Mentioned
    2 Post(s)
    Tagged
    1 Thread(s)
    Quote Originally Posted by MikeFoster
    >> Why are you calling that function on the page load?

    It loops through all rows in the table and adds a toggle() function (method) to each row object. Later, you only have to call a row's toggle() method and it toggles itself.
    So it's actually adding a method to each row object? Now that makes sense.

    Quote Originally Posted by MikeFoster
    >> It apparently only has one argument yet you've got "arguments.length"?

    You can pass any number of table IDs to it, and it will add a toggle() method to all of their rows.
    So in this example that part of the code wasn't really necessary but if there were other tables it would be?

    Quote Originally Posted by MikeFoster
    >> And to top it off you're iterating backwards?

    It iterates from rows[0] to rows[rows.length-1], and then rows.item() will return null;
    Oops, I read that wrong.

    Thanks for the explanation. It makes a whole more sense now.

  13. #13
    I'll take mine raw silver trophy MikeFoster's Avatar
    Join Date
    Dec 2002
    Location
    Alabama, USA
    Posts
    2,560
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yep, you're both right.

    Nice work, adios

  14. #14
    SitePoint Wizard silver trophy
    Join Date
    May 2003
    Posts
    1,843
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks Mike.

    Just a heads-up on cellIndex...afaik it's (still) broken in Safari as noted here. Might want to patch it in with a sniffer/iterator.

    Safari sniff:

    http://www.zytrax.com/tech/web/browser_ids.htm
    ::: certified wild guess :::

  15. #15
    I'll take mine raw silver trophy MikeFoster's Avatar
    Join Date
    Dec 2002
    Location
    Alabama, USA
    Posts
    2,560
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the tips and links, adios. I'll make me a note about that in the source.

  16. #16
    SitePoint Guru johnjohn2's Avatar
    Join Date
    Apr 2004
    Location
    here
    Posts
    746
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    thanks guys, I'll give it a try!

  17. #17
    SitePoint Addict
    Join Date
    Jul 2000
    Posts
    201
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You could add this style to the tr tag:

    <tr id="hidethis" style="display:none;">

  18. #18
    Original Gangster silver trophy Thing's Avatar
    Join Date
    Oct 2000
    Location
    Philadelphia, PA
    Posts
    4,708
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Easy enough. Thanks!

  19. #19
    SitePoint Member
    Join Date
    Sep 2004
    Location
    India
    Posts
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks a lot for the solution .
    I implemented the solution, but the problem is that the toggle only applies to the first row and not to any other rows.


    what iam doing is this:
    i have 5 rows in the table i right click on any row,a menu comes up with Hide/Unhide options choose hide the selected row should be hidden , instead the first row is getting hidden.
    Reply in this regard will be appreciated.
    Thanks in Advance,
    Smitha

    pasting the code(html)
    <html>
    <head>
    <style>

    .skin0 {
    position:absolute;
    text-align:left;
    width:200px;
    border:2px solid black;
    background-color:menu;
    font-family:Verdana;
    line-height:20px;
    cursor:default;
    visibility:hidden;
    }
    .skin1 {
    cursor:default;
    font:menutext;
    position:absolute;
    text-align:left;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 10pt;
    width:120px;
    background-color:menu;
    border:1 solid buttonface;
    visibility:hidden;
    border:2 outset buttonhighlight;
    }
    .menuitems {
    padding-left:15px;
    padding-right:10px;
    }

    </style>
    <script>
    var menuskin = "skin1"; // skin0, or skin1
    var display_url = 0; // Show URLs in status bar?
    function showmenuie5() {
    var rightedge = document.body.clientWidth-event.clientX;
    var bottomedge = document.body.clientHeight-event.clientY;
    if (rightedge < ie5menu.offsetWidth)
    ie5menu.style.left = document.body.scrollLeft + event.clientX - ie5menu.offsetWidth;
    else
    ie5menu.style.left = document.body.scrollLeft + event.clientX;
    if (bottomedge < ie5menu.offsetHeight)
    ie5menu.style.top = document.body.scrollTop + event.clientY - ie5menu.offsetHeight;
    else
    ie5menu.style.top = document.body.scrollTop + event.clientY;
    ie5menu.style.visibility = "visible";
    return false;
    }
    function hidemenuie5() {
    ie5menu.style.visibility = "hidden";
    }
    function highlightie5() {
    if (event.srcElement.className == "menuitems") {
    event.srcElement.style.backgroundColor = "highlight";
    event.srcElement.style.color = "white";
    if (display_url)
    window.status = event.srcElement.url;
    }
    }
    function lowlightie5() {
    if (event.srcElement.className == "menuitems") {
    event.srcElement.style.backgroundColor = "";
    event.srcElement.style.color = "black";
    window.status = "";
    }
    }
    function jumptoie5() {
    if (event.srcElement.className == "menuitems") {
    if (event.srcElement.getAttribute("target") != null)
    window.open(event.srcElement.url, event.srcElement.getAttribute("target"));
    else
    window.location = event.srcElement.url;
    }
    }

    ///function clickIE()
    //{
    //if(IE4plus)
    //{
    //alert("iam here");
    //if(event.button == 2 || event.button == 3)
    //{
    //alert("right click");
    //}
    //return;
    //}
    //}
    function toggle() {
    //alert("iam in toggle");
    alert(document.getElementById("hidethis").style.display);
    if( document.getElementById("hidethis").style.display=='none' ){
    document.getElementById("hidethis").style.display = '';
    //alert("iam out of here");
    }else{
    document.getElementById("hidethis").style.display = 'none';
    //alert("iam out of here1");

    }
    }


    </script>
    </head>
    <body>
    <table>
    <tr id="hidethis">
    <td><input type = "text" name ="text1" value = "ADMIN" /></td>
    </tr>
    <tr id="hidethis">

    <td><input type = "text" name ="text" value = "TRADEWEAVE" /></td>
    </tr>
    <tr id="hidethis">

    <td><input type = "text" name ="text1" value = "MPS" /></td>
    </tr>
    <tr id="hidethis">

    <td><input type = "text" name ="text1" value = "POLO" /></td>
    </tr>
    <tr id="hidethis">
    <td><input type = "text" name ="text1" value = "JBOYD" /></td>
    </tr>
    </table>
    <div id="ie5menu" class="skin0" onMouseover="highlightie5()" onMouseout="lowlightie5()" onClick='toggle()'>
    <div class="menuitems">Hide</div>
    <div class="menuitems">UnHide</div>

    </div>
    <script language="JavaScript1.2">
    if (document.all && window.print) {
    ie5menu.className = menuskin;
    document.oncontextmenu = showmenuie5;
    document.body.onclick = hidemenuie5;
    }
    </script>
    </body>
    </html>

  20. #20
    SitePoint Zealot
    Join Date
    Sep 2004
    Location
    new york
    Posts
    113
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    SmithaGanesh, did you ever solve your problem? I'm trying to do the same thing and I also have the problem that only the first row toggles...

  21. #21
    &#083;itePoint Aficionado JVLB's Avatar
    Join Date
    Jan 2002
    Location
    N 44° 56.537' W 123° 3.683'
    Posts
    1,127
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you are just working with a few rows (or elements), adios' approach may lean a bit toward overkill. Here's a simpler and more general approach, though it requires more hard coding.

    Code:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
      <html>
      <head>
      <title>Untitled</title>
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
      <style type="text/css">
      td{border:3px solid red;}
      </style>
      <script type="text/javascript">
      function hideShow(el_id){
        var el=document.getElementById(el_id);
        if(el_id.style.display!="none"){
          el_id.style.display="none";
        }else{
          el_id.style.display="";
        }
      }
      </script>
      </head>
      <body>
      <table>
      <tr id="row1">
      <td>&nbsp;</td>
      </tr>
      <tr id="row2">
      <td>&nbsp;</td>
      </tr>
      <tr id="row3">
      <td>&nbsp;</td>
      </tr>
      </table>
      <a href="#" onclick="hideShow(row1);">Hide/Show Row 1</a><br />
      <a href="#" onclick="hideShow(row2);">Hide/Show Row 2</a><br />
      <a href="#" onclick="hideShow(row3);">Hide/Show Row 3</a><br />
      </body>
      </html>

  22. #22
    SitePoint Enthusiast
    Join Date
    Jun 2004
    Location
    USA
    Posts
    71
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi. I have a question about the "display = 'none'" and "display = ''" being used in this example. When playing with the display, I've always seen it as "display = 'block'" to make something visible. Why do you use "display = ''"?

    Thanks.

  23. #23
    &#083;itePoint Aficionado JVLB's Avatar
    Join Date
    Jan 2002
    Location
    N 44° 56.537' W 123° 3.683'
    Posts
    1,127
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The display="" returns the element to its default display value. There are many values for the display attribute, such as block, inline, list-item, table-row, etc. The passing of the empty string is simply a shortcut.

  24. #24
    SitePoint Wizard silver trophy
    Join Date
    May 2003
    Posts
    1,843
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Seņor Overkill here. I agree with this guy.
    ::: certified wild guess :::

  25. #25
    &#083;itePoint Aficionado JVLB's Avatar
    Join Date
    Jan 2002
    Location
    N 44° 56.537' W 123° 3.683'
    Posts
    1,127
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    That's a first.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •