Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Page 2 of 4 FirstFirst 1234 LastLast
Results 16 to 30 of 51
  1. #16
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    Here...I have it working. Yes, with your "viewport" and "mapbox.js" code.

    Changes marked in red, of course.

    Code:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="utf-8"/>
    	<title>Untitled Document</title>
    	<link rel="stylesheet" href="https://tornhq.com/Events/HallowTown/style.css" />
    	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
    	<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script>
    	<script src="https://tornhq.com/js/jquery.mousewheel.min.js"></script>
    	<script src="https://tornhq.com/js/JQuery.mapbox.js"></script>
    	<script src="https://tornhq.com/js/jquery.tipsy.js"></script>
    	<script>
    		$(document).ready(function(){
    			//	Main function that shows and hides the requested tabs and their content
    			var set_tab = function(tab_container_id, tab_id){
    				//	Remove class "active" from currently active tab
    				$('#' + tab_container_id + ' ul li').removeClass('active');
    
    				//	Now add class "active" to the selected/clicked tab
    				$('#' + tab_container_id + ' a[rel="' + tab_id + '"]').parent().addClass("active");
    
    				//	Hide contents for all the tabs.
    				//	The '_content' part is merged with tab_container_id and the result
    				//	is the content container ID.
    				//	For example for the original tabs: tab_container_id + '_content' = original_tabs_content
    				$('#' + tab_container_id + '_content .tab_content').hide();
    
    				//	Show the selected tab content
    				$('#' + tab_container_id + '_content #' + tab_id).fadeIn();
    			}
    
    			//	Function that gets the hash from URL
    			var get_hash = function(){
    				if (window.location.hash) {
    					//	Get the hash from URL
    					var url = window.location.hash;
    
    					//	Remove the #
    					var current_hash = url.substring(1);
    
    					//	Split the IDs with comma
    					var current_hashes = current_hash.split(",");
    
    					//	Loop over the array and activate the tabs if more then one in URL hash
    					$.each(current_hashes, function(i, v){
    						set_tab($('a[rel="'+v+'"]').parent().parent().parent().attr('id'), v);
    					});
    				}
    			}
    
    			//	Called when page is first loaded or refreshed
    			get_hash();
    
    			//	Looks for changes in the URL hash
    			$(window).bind('hashchange', function() {
    				get_hash();
    			});
    
    			//	Called when we click on the tab itself
    			$('.tabs_wrapper ul li').click(function() {
    				var tab_id = $(this).children('a').attr('rel');
    
    				//	Update the hash in the url
    				window.location.hash = tab_id;
    
    				//	Do nothing when tab is clicked
    				return false;
    			});
    
    			$('#north').tipsy({gravity: 'n'});
    			$('#south').tipsy({gravity: 's'});
    			$('#east').tipsy({gravity: 'e'});
    			$('#west').tipsy({gravity: 'w'});
    			$('#north-west').tipsy({gravity: 'nw'});
    			$('#north-east').tipsy({gravity: 'ne'});
    			$('#south-west').tipsy({gravity: 'sw'});
    			$('#south-east').tipsy({gravity: 'se'});
    
    			$("#viewport2").mapbox({
    				mousewheel: true,
    				layerSplit: 1,
    				defaultLayer: 0,
    			});
    
                var zoomLevels = [ 100,75,50 ];
                var curZoom = 0;
                
    			$(".map-control a").click(function() {//control panel
    			    var cn = this.className;
    			    if ( cn == "zoom" || cn == "back" ) 
    			    {
    			        var newZoom = ( cn == "zoom" ) ? curZoom - 1 : curZoom + 1;
    		            if ( newZoom < 0 || newZoom >= zoomLevels.length ) return false; // already at min/max
    		            curZoom = newZoom;
    		            var theMap = document.getElementById("mainMap");
    		            theMap.className = "zoom" + zoomLevels[curZoom];
                        var holder = document.getElementById("mapholder");
                        holder.style.height = theMap.offsetHeight + "px";
                        holder.style.width = theMap.offsetWidth + "px";
                    } else {
        				var viewport = $("#viewport2");
    				    //this.className is same as method to be called
    					viewport.mapbox(cn);
    				}
    				return false;
    			});
    
    			var map = [
    				"111112222222222222222222222222222222222222222222222222222",
    				"111112222222222222222222222222222222222222222222222222222",
    				"11111WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW222222222222",
    				"11111TTTTTTTGGGGfffffGGGQ?????EFGGGWHHHHHHHHW222222222222",
    				"11111TTTTTTGGGGGGfffGGGQQ?????EFFGGWHHHHHHHHW222222222222",
    				"11111TTTTTTTGGGGGGfGGGGQq?WWWWWFFfGWHHHHHHHHW222222222222",
    				"11111TTTWWWTGGGGGGGGGGQQqqWUUUUFFffWHHHHHHHHWWWW222222222",
    				"11111TTTWTWTTGGGGGGGGGQGGGWUUUWFFffWHHHHHHHHHPPW222222222",
    				"11111TTTWWWTTWWWWWWWGGQGGGWUUUWFFffWHHHHHHHHWWPW222222222",
    				"11111TTTTTTTTWCCCCCWGGQGGGWUUUWFFqqWWWHWWWWWWWPW222222222",
    				"11111TTTTTTGGWCCCCCWGGQGGGWWUWWFFqQQQQPQQQQQWWPW222222222",
    				"11111TTTTTGGGWCCCCCWGGQGGGGGPGEFFqqGGGPGGGGGWWPW222222222",
    				"11111TTTTGGGGWCCCCCWGGQGGGGGPGEFGGGTTGPGGGGfWWPW222222222",
    				"11111TTTGGGGGWWWCWWWGGQGGGGGPPPPFFTTTTPGGGffPPPW222222222",
    				"11111FFFGGGGGGGGPGGGGGQGGGGGPGEPFGTTTGPGGGffWWWW222222222",
    				"11111FFFFFFGGGGGPPPPPPQPPPPPPGEPGTTTTGPGGfffWGGG222222222",
    				"11111WWWFFFFGGGGPGGGGGQGPGWWWWWPPPPPTPPGGGGfW222222222222",
    				"11111cccWcWFGGGGPGWWWWQGPGWwwwWGGGGTTTGGGGGGW222222222222",
    				"11111cccccWFGWWWPGWhhhQGPGWwwwWGGGGGTGGGGGGGW222222222222",
    				"11111cccccWFGWGWPGWhhhQGPGWWWWWGGGGGGGGGGGGGW222222222222",
    				"11111ccccWFFGWWWPGWhhhQGPGGGGGEGGGGGGGGGGGG?W222222222222",
    				"11111cccWFFGGGGGPGWhhhQGPPPGGGEGGGGGGGGGGG??W222222222222",
    				"11111WWWFFGGGGGGPGWWhWQGGGPGGGEGGGqGqGGGGG??W222222222222",
    				"11111FFFFGGGGGGGPGGGPGQGGGPGGGEGGGqqqqGGG???W222222222222",
    				"11111FFFGGGGGGGGPPPPPGQGGGPGGGEGGqqqqWWWWWWWWWWWW22222222",
    				"11111FGGGGGGGGGGPGGGGGQGWW+WWGEGGqWWWWBBBBBBBBBBW22222222",
    				"11111GGGGGGGGGGGPGGGGGQGW+++WGEGqqWBBBBBBBBBWWWBW22222222",
    				"11111GGGGGGGGGGGPGGGGGQGWWWWWGEGGqWBBBWBBBBBWqWBW22222222",
    				"11111PPPPPPPPPPPPPGGGGQGGfGfGfEGGGWWWWWWWWWBWqWBW22222222",
    				"11111PGGGGGGGGGGGPGGGGQGffffffEGGGGGGGGGGGBBWWWBW22222222",
    				"11111PGGGGGGGGGGWWWGGGQfffffffEEGGGGGGWWWWWBBBBBW22222222",
    				"11111PGGGGGGGGGGWSWGGGQfffffffEEEGGGGGWBBBBBBBBBW22222222",
    				"111111111111111111111111111111111111111111111111111111111",
    				"111111111111111111111111111111111111111111111111111111111",
    			];
    
    			var classes = {
    						"1" : "NoMans1",
    						"2" : "NoMans2",
    						"W" : "Wall",
    						"T" : "Forest", /* think "T"rees */
    						"G" : "Grass",
    						"f" : "Fog",
    						"F" : "Fog2",
    						"Q" : "DeepWater", /* think a"Q"ua */
    						"q" : "ShallowWater",
    						"S" : "Sherrif",
    						"?" : "Unknown",
    						"E" : "Cliff", /* think "E"scarpment */
    						"H" : "Hospital",
    						"U" : "UnknownBuilding",
    						"P" : "Path",
    						"C" : "Castle",
    						"w" : "WitchsHouse",
    						"B" : "ChefsHouse", /* think "B"aker */
    						"c" : "Cave",
    						"h" : "GreatHall",
    						"+" : "Church"
    			};
    
    			// get references to important elements:
    			var table = document.getElementById("mainMap");
    
    			var clk = document.getElementById("whichClicked");
    			var typ = document.getElementById("typeClicked");
    
    			// set up all the cells:
    			for (var r = 0; r < map.length; ++r) {
    				var row = map[r];
    				var tr = table.insertRow(-1);
    
    				for (var c = 0; c < row.length; ++c) {
    					var cell = tr.insertCell(-1);
    					cell.id = (map.length - r - 2) + ":" + (c+1-5);
    					cell.className = classes[row.charAt(c)];
    				}
    			}
    
    			$(table).dblclick(function (event) {
    				var tile = event.target;
    
    				clk.innerHTML = tile.id;
    				typ.innerHTML = tile.className;
    
    				set_tab('new2_tabs', 'tile_options');
    			});
    		});
    	</script>
    
    	<style>
    		body { margin:0; padding:0; }
    		table { background-color: #ada39d; }
            .zoom100 td {
    	        height: 29px;
    	        min-height: 29px;
    	        width: 36px;
    	        min-width: 36px;
    	        vertical-align: top;
    	        border-collapse: separate;
    	        border: 1px solid #dfdfdf;
            }
            .zoom75 td {
                   height: 22px; 
                    min-height: 22px; 
                    width: 27px; 
                    min-width: 27px;
    	        vertical-align: top;
    	        border-collapse: separate;
    	        border: 1px solid #dfdfdf;
            }
            .zoom50 td {
                    height: 15px; 
                    min-height: 15px; 
                    width: 18px; 
                    min-width: 18px;
    	        vertical-align: top;
    	        border-collapse: separate;
    	        border: 1px solid #dfdfdf;
            }
    		.NoMans1 {background-color:#CCCCCC; }
    		.NoMans2 {background-color:#b7cdb7; }
    		.Wall {background-color:#8e8e8e; }
    		.Forest{background-color:#8eb68e }
    		.Grass{background-color:#b7cdb7; }
    		.fog{background-color:#dacbda; }
    		.fog2{background-color:#d2d2d2; }
    		.DeepWater{background-color:#a4cdd9; }
    		.ShallowWater, .Sherrif{background-color:#acdada; }
    		.Unknown{background-color:#e3cca1; }
    		.Cliff{background-color:#bbb099; }
    		.Hospital{background-color:#e5faff; }
    		.UnknownBuilding{background-color:#cbbcda; }
    		.Path{background-color:#dabc8e; }
    		.Castle{background-color:#d8cabc; }
    		.WitchsHouse, .ChefsHouse{background-color:#daa3a3; }
    		.Cave{background-color:#b1b1b1; }
    		.GreatHall{background-color:#c7d1ed; }
    		.Church{background-color:#d9e3a1; }
    
    		div#popupon {
    			position: absolute;
    			display: none;
    			width: 240px;
    			height: 100px;
    			border: solid blue 3px;
    			background-color: lightableue;
    			padding: 10px;
    			text-align: center;
    		}
    	</style>
    
    </head>
    
    <body>
    	<div id="Interface_Wrap">
    		<div id="Top_Left"></div>
    		<div id="Top_Right"></div>
    		<div class="clearfix"></div>
    
    		<div class="mapwrapper">
    			<div id="viewport2">
    				<div id="mapholder" style="height: 1192px; width: 2396px;">
    					<div class="mapcontent">
    						<table id="mainMap" class="zoom100"></table>
    					</div>
    				</div>
    			</div>
    		</div>
    
    		<div class="tabs_wrapper">
    			<div id="new2_tabs">
    				<ul>
    					<li class="active"><a href="#move_around" rel="move_around"><img id="south-west" src="https://tornhq.com/images/Events/HallowTown/move.png" original-title="Move Around The Map" alt="" /></a></li>
    					<li><a href="#set_marker" rel="set_marker"><img id="south" src="https://tornhq.com/images/Events/HallowTown/Menu-SetLocation.png" original-title="Set your location in Hallow Town" alt="" /></a></li>
    					<li><a href="#view_quests" rel="view_quests"><img id="south-east" src="https://tornhq.com/images/Events/HallowTown/Menu-Quests.png" original-title="View Quests" alt="" /></a></li>
    					<li><a href="#hallow_chat" rel="hallow_chat"><img id="north-west" src="https://tornhq.com/images/Events/HallowTown/Menu-Chat.png" original-title="Chat with others regarding Hallow Town!" alt="" /></a></li>
    				</ul>
    			</div>
    			<div id="new2_tabs_content">
    				<div id="move_around" class="tab_content" style="display: block;">
    					<div class="map-control">
    						<a href="#left" class="left">Left</a>
    						<a href="#right" class="right">Right</a>
    						<a href="#up" class="up">Up</a>
    						<a href="#down" class="down">Down</a>
    						<a href="#zoom" class="zoom">Zoom</a>
    						<a href="#zoom_out" class="back">Back</a>
    					</div>
    				</div>
    				<div id="set_marker" class="tab_content">
    						<p>This will be the Set Marker content</p>
    				</div>
    				<div id="view_quests" class="tab_content">
    						<p>This will be to view the quests...</p>
    				</div>
    				<div id="hallow_chat" class="tab_content">
    						<p>This will be to chat...</p>
    				</div>
    
    				<div id="tile_options" class="tab_content">
    					You just clicked on Co-ordinates <span id="whichClicked"></span>
    					<br/>
    					The cell type is <span id="typeClicked"></span>
    					<br/>
    					<i>(click to close)</i>
    				</div>
    			</div>
    		</div>
    	</div>
    </body>
    </html>
    Last edited by Old Pedant; 01-01-2013 at 12:22 AM.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  2. Users who have thanked Old Pedant for this post:

    MrTIMarshall (01-01-2013)

  3. #17
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    Sorry about some of the indenting. My editor uses a 4-character tab and of course this forum uses an 8-character tab.

    Also...I didn't change the mousewheel code yet. I would have to change the mapbox.js code to do that. Or, better, throw out its code and use my own.

    One glitch I noticed: If you scroll to, say, the bottom right corner of the map at zoom level 100 and then change to zoom level 75 or 50, the map disappears. But a single mouse click anywhere in the map area restores it.

    So I would just need to find the code to do the equivalent of that mouse click after any resize.
    Last edited by Old Pedant; 01-01-2013 at 12:27 AM.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  4. #18
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    HAH! Figured out how to make it stay in the same location when you zoom in or out!

    Code:
                $(".map-control a").click(function() {//control panel
                    var cn = this.className;
                    if ( cn == "zoom" || cn == "back" ) 
                    {
                        var newZoom = ( cn == "zoom" ) ? curZoom - 1 : curZoom + 1;
                        if ( newZoom < 0 || newZoom >= zoomLevels.length ) return false; // already at min/max
                        // try to position new zoom level at same spot
                        var curLevel = zoomLevels[curZoom];
                        var holder = document.getElementById("mapholder");
                        // where have we moved the map to?
                        var x = parseInt( holder.style.left );
                        var y = parseInt( holder.style.top ) 
                        // normalize x and y to 100% zoom
                        x = x * 100 / curLevel;
                        y = y * 100 / curLevel;
    
                        // okay, NOW we can set the new zoom...
                        curZoom = newZoom;
                        var zoomLevel = zoomLevels[curZoom]; // percentage
                        var theMap = document.getElementById("mainMap");
                        theMap.className = "zoom" + zoomLevel;
                        // change the holder height/width so the mover knows the new boundaries
                        holder.style.height = theMap.offsetHeight + "px";
                        holder.style.width = theMap.offsetWidth + "px";
                        // calculate the proper NEW relative locations for the map:
                        x = Math.round(x * zoomLevel / 100 );
                        y = Math.round(y * zoomLevel / 100 );
                        // and move it there:
                        holder.style.left = x + "px";
                        holder.style.top  = y + "px";
                    } else {
                        var viewport = $("#viewport2");
                        //this.className is same as method to be called
                        viewport.mapbox(cn);
                    }
                    return false;
                });
    It's not perfect. If you are at far bottom corner with zoom=100 and then change to lower zoom level, you will still be at far bottom corner, but the map will be scrolled too far left and up. The first time you go to move the map, it snaps so that there is no "off the map" showing.

    I can fix this, too, but it's a pain.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  5. #19
    Senior Coder xelawho's Avatar
    Join Date
    Nov 2010
    Posts
    2,969
    Thanks
    56
    Thanked 557 Times in 554 Posts
    Quote Originally Posted by Old Pedant View Post
    Code:
    var viewport = $("#viewport2");
    is that... Old Pedant writing jQuery?

    It's a New Year's miracle!

  6. #20
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    LOL!

    Just slipping some vanilla code into the jQuery he already had.

    Realistically, there is no reason at all to use jQuery for any of that code in post #18.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  7. #21
    Regular Coder
    Join Date
    Nov 2010
    Posts
    390
    Thanks
    48
    Thanked 1 Time in 1 Post
    Page didn't refresh properly until posting this. I'm going to read up now!

  8. #22
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    I'm really a bit confused over what value "mapbox.js" is. It sure doesn't seem to be doing very much of anything useful.

    I mean dragging the map, sure, but that's easy enough to do with its help.

    And in any case, because it is taking control of the mouse while the mouse in inside the map, you can't use the onclick to show the info about the cell clicked on.

    I can't imagine it would take more than a couple of hours, at the outside, to do all the USEFUL things it does, and in vanilla JS code, not jQuery. And at the same time fix the onclick.

    But this is New Year's Eve, and I'm close to hanging it up. Only 6:20 PM here, so still time to get ready.

    May 2013 be a huge improvement on 2012.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  9. #23
    Regular Coder
    Join Date
    Nov 2010
    Posts
    390
    Thanks
    48
    Thanked 1 Time in 1 Post
    The only other use, of which I'm not using, so yeah, not useful...
    ....But when I was using images, you could set between zooms but the images would look messy and I think the table looks so much better!

    Either way, I am lost on improving this as I only know basic Javascript and nothing of the top of my head....

    Thank you so much for your help. We're already in the New Year but all the same to you Old Pedant!

  10. #24
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    So is your New Year's Resolution to learn JavaScript? <hint style="egregious"/>
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  11. #25
    Regular Coder
    Join Date
    Nov 2010
    Posts
    390
    Thanks
    48
    Thanked 1 Time in 1 Post
    Quote Originally Posted by Old Pedant View Post
    So is your New Year's Resolution to learn JavaScript? <hint style="egregious"/>
    Yup, and hopefully some other languages!

    But I do hope you mean outrageously good? hehe :P

  12. #26
    Regular Coder
    Join Date
    Nov 2010
    Posts
    390
    Thanks
    48
    Thanked 1 Time in 1 Post
    I've started watching some Javascript tutorials and I think I'm picking up the basics

    Oh and just to note, what ever tab your currently under, if you then double click on the map, you cannot switch back to the tab you were last on without clicking on another beforehand.

    Hope your having a great night and I'll talk to you soon!

  13. #27
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    I have no idea why a double click on the map would affect the tabs.

    I really think it's because that jsMap code is just too arcane to be useful.

    I can't understand why anybody would use multiple layers for zoom control in any case. Even if it was originally designed to just be used with one image per layer, that still makes no sense. Just start with one image at the MOST zoomed in level and then it's trivial to zoom it out with no layers at all.

    I truly think it's time to dump jsMap.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  14. #28
    Regular Coder
    Join Date
    Nov 2010
    Posts
    390
    Thanks
    48
    Thanked 1 Time in 1 Post
    I don't mind it being dumped, however, although I have been learning some fundamental Javascript, I don't have a clue what to do, so would you be able to further help please Old Pedant?

  15. #29
    Supreme Master coder! Old Pedant's Avatar
    Join Date
    Feb 2009
    Posts
    25,553
    Thanks
    78
    Thanked 4,382 Times in 4,347 Posts
    Questions:

    (1) How is the system supposed to tell the difference between a mouse click and a mouse drag? [One way would be to assume it is a click but if the mouse is still down after some period of time--half a second? less?--then it converts to a drag. But then the person who wants to drag will feel a hesitation before the drag starts. Another way would be to make it modal: That is, it depends on which TAB is currently active.]

    (2) What is the purpose of double click? Why were you worried about implementing it?

    ********

    I should comment that very little of this is really relevant to JavaScript, per se. Rather, it's all a matter of learning DOM manipulation. Granted, you should be able to write JS code before trying to learn the DOM, but the DOM is usually by far the larger challenge.
    An optimist sees the glass as half full.
    A pessimist sees the glass as half empty.
    A realist drinks it no matter how much there is.

  16. #30
    Regular Coder
    Join Date
    Nov 2010
    Posts
    390
    Thanks
    48
    Thanked 1 Time in 1 Post
    1). How is the system supposed to tell the difference between a mouse click and a mouse drag? [One way would be to assume it is a click but if the mouse is still down after some period of time--half a second? less?--then it converts to a drag. But then the person who wants to drag will feel a hesitation before the drag starts. Another way would be to make it modal: That is, it depends on which TAB is currently active.]

    Is this a problem? It somewhat works at the moment using double click to show the menu and click and drag for the map

    2). What is the purpose of double click? Why were you worried about implementing it?
    Upon implementing a menu to show upon clicking the map, due to this map being a click and drag map, every time you clicked on the map to simply drag it, a new menu should show.

    This menu is going to be used for multiple things, but the general menu is to set their current position there, mark the tile as a hotspot for being put into jail or hospital or finding a chest, getting a safe route directions from or to that tile or zooming in/out from that tile.

    Some tiles are going to be mission starters, where as in the menu you can view the mission and get help to do it.


    Just thought I'd answer these questions first. I'm going to compose a new message after this one to explain the whole thing.


 
Page 2 of 4 FirstFirst 1234 LastLast

Posting Permissions

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