$(function() { /* * Main layer location */ var _viewportHeight = function() { return self.innerHeight || jQuery.boxModel && document.documentElement.clientHeight || document.body.clientHeight; }; var _viewportWidth = function() { return self.innerWidth || jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth; }; var _handleSize = function() { var _h = _viewportHeight(); if (_h < 560) { $("#extframe").css('top', '280px'); } else { $("#extframe").css('top', '50%'); } var _w = _viewportWidth(); if (_w < 950) { $(".internal").css('left', '475px'); } else { $(".internal").css('left', '50%'); } }; $(window).resize(_handleSize); _handleSize(); /* * Tabs */ var _findTabs = function() { var _found = []; $(".tabs").each(function(_container) { var _data = { container : $(this), tabs : [] }; $(".tab", $(this)).each(function(_container) { var _theTab = { id : $(this).attr('id'), title : $("> h3", $(this)).text(), contents : $("div.tab-contents", $(this)) }; _data.tabs.push(_theTab); }); _found.push(_data); }); return _found; }; var _hideTab = function(_id) { $('#tabb-' + _id).removeClass('selected-tab'); $('#tabc-' + _id).css('display', 'none'); }; var _showTab = function(_id) { $('#tabb-' + _id).addClass('selected-tab'); $('#tabc-' + _id).css('display', 'block'); }; var _prepareTabContainer = function(_root) { _root.container.empty(); var _titles = $('
').addClass('tab-buttons'); _titles.appendTo(_root.container); for ( var j in _root.tabs) { var _theTab = _root.tabs[j]; if (j == 0 || location.hash == '#' + _theTab.id) { _root.selected = _theTab.id; } $('').addClass('tab-button').attr('id', 'tabb-' + _theTab.id) .attr('href', '#' + _theTab.id).text(_theTab.title) .appendTo(_titles).click( function() { _hideTab(_root.selected); _root.selected = $(this).attr('id').replace( /^tabb-/, ''); _showTab(_root.selected); }); _theTab.contents.css('display', 'none').attr('id', 'tabc-' + _theTab.id).appendTo(_root.container); } _showTab(_root.selected); }; var _prepareTabs = function(_tabs) { for ( var i in _tabs) { _prepareTabContainer(_tabs[i]); } }; var _tabs = _findTabs(); _prepareTabs(_tabs); /* * Hidden descriptions */ $("div.auto-hide").each(function() { var _div = $(this); _div.css('display', 'none'); var _visible = false; $('').attr('href', '#').text('...').click(function() { if (_visible) { _div.css('display', 'none'); } else { _div.css('display', 'block'); } _visible = !_visible; return false; }).insertBefore(_div); }); /* * "Jump to planet" */ $("p#jump-to-planet").each( function() { var _form = $('').attr('action', '/').submit(function() { return false; }); var _fdiv = $('').appendTo(_form); var _select = $('').attr('name', 'planet').addClass( 'input').appendTo(_fdiv); $('').attr('value', '').text( $('span.jtp-text', $(this)).text() + " ...").appendTo( _select); $('a', $(this)).each( function() { $('').attr('value', $(this).attr('href')) .text($(this).text()).appendTo(_select); }); _select.change(function() { var _target = $("option:selected", $(this)).attr('value'); if (_target == "") { return false; } location.href = _target; return true; }); $(this).empty(); _form.appendTo($(this)); }); /* * Map cells */ var _mapClasses = [ 'map-bg-none', 'map-bg-allied', 'map-bg-own', 'map-bg-enemy', 'map-bg-other' ]; $(".map a").each( function() { var _cls = $(this).hasClass("own-planet") ? 2 : ($(this) .hasClass("allied-planet") ? 1 : ($(this).hasClass( "enemy-planet") ? 3 : ($(this).hasClass("other-planet") ? 4 : 0))); var _href = $(this).attr('href'); var _pDiv = $(this).parent(); _pDiv.mouseenter(function() { $(this).addClass(_mapClasses[_cls]).addClass('map-invert'); }).mouseleave( function() { $(this).removeClass(_mapClasses[_cls]).removeClass( 'map-invert'); }).click(function() { location.href = _href; return false; }); }); /* * Fleet ships */ $(".fleet-details").each(function() { var _id = $(this).attr('id'); var _name = $("td.name", $(this)); var _ships = $("#" + _id + "-ships"); _ships.css('display', 'none'); _name.click(function() { if (_ships.css('display') == 'none') { _ships.css('display', 'table-row'); } else { _ships.css('display', 'none'); } }); }); /* * Planets - buildings/ships details */ $("#buildings-types .building-type").css('display', 'none'); $('#ff-civ-build-type').change(function() { $("#buildings-types .building-type").css('display', 'none'); $("#building-type-" + $(this).val()).css('display', 'block'); }); $("#ships-types .ship-type").css('display', 'none'); $('#ff-mil-build-type').change(function() { $("#ships-types .ship-type").css('display', 'none'); $("#ship-type-" + $(this).val()).css('display', 'block'); }); /* * Battles */ $("#ff-view-battle-tick") .each( function() { $(this).next().remove(); $(this).css('width', '95%'); $(this).change(function() { var _baseUrl = location.href; _baseUrl = _baseUrl.replace(/-latest$/, ""); _baseUrl = _baseUrl.replace(/-at-[0-9]+/, ""); _baseUrl += "-at-" + $(this).val(); location.href = _baseUrl; }); $("tr.ship-type").css('display', 'none'); $("td.ships-expander").each(function() { $(this).text('*').css('cursor', 'pointer'); }).click( function() { var _tr = $(this).parent().next(); while (_tr != null && _tr.hasClass("ship-type")) { if (_tr.css('display') == 'none') { _tr.css('display', 'table-row') .data('visible', true); } else { _tr.css('display', 'none').data( 'visible', false); } _tr = _tr.next(); } }); $("td.forces-expander") .each( function() { $(this).text('+').css('cursor', 'pointer'); var _tr = $(this).parent().next(); while (_tr != null && _tr.hasClass("group")) { _tr = _tr.next(); } while (_tr != null && _tr.hasClass("empire")) { _tr.css('display', 'none'); _tr = _tr.next(); } }) .click( function() { var _tr = $(this).parent().next(); while (_tr != null && _tr.hasClass("group")) { _tr = _tr.next(); } var _mode = null; while (_tr != null && _tr.hasClass("empire")) { if (_mode === null) { _mode = (_tr.css('display') == 'none') ? 'table-row' : 'none'; } var _rMode; if (_tr.hasClass("ship-type")) { _rMode = _tr .data('visible') ? _mode : 'none'; } else { _rMode = _mode; } _tr.css('display', _rMode); _tr = _tr.next(); } }); $("tr.tip").css('display', 'table-row'); }); /* Chat button */ $("a.open-chat-button").click(function() { window.open(this.href); return false; }); /* Message selection button */ $("span#message-box-selector").each( function() { var _title = $(this).attr('title'); $(this).replaceWith( $('').addClass('input').attr('type', 'button') .attr('title', _title).val('X').css('cursor', 'pointer').click(function() { $("input.message-selection").click(); })); }); });