isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;
var range = '';
function toggle(obj) {

        var el = document.getElementById(obj);
        if ( el.style.display != 'none' ) {
                //el.style.display = 'none';
                $(el).hide();
        }
        else {
                //el.style.display = '';
                $(el).fadeIn('slow');
        }
}
function toggleOn(obj) {

        var el = document.getElementById(obj);
                el.style.display = '';
        //$(el).fadeIn('slow');
}
function toggleOff(obj) {

        var el = document.getElementById(obj);
                el.style.display = 'none';
        //$(el).fadeOut('slow');
}
function getelementbyid(myid) {
  if (isNS4) {
    objElement = document.layers[myid];
  } else if (isIE4) {
    objElement = document.all[myid];
  } else if (isIE5 || isNS6) {
    objElement = document.getElementById(myid);
  }
  return(objElement);
}
function set_text(t, p)
{
  //getelementbyid(p).innerHTML=t;
  $('#'+p).html(t);
}
function showlayer(name) { eval(name+".style.visibility='visible'") }
function hidelayer(name) { eval(name+".style.visibility='hidden'") }
function movelayer(t)
{
  getelementbyid(t).style.left=event.clientX-100;
  getelementbyid(t).style.top=event.clientY-150;
}
function load_data(url, target) {
  var req = new Subsys_JsHttpRequest_Js();
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        document.getElementById(target).innerHTML=req.responseJS;
    }
  }
  req.open('GET', url, true);
  req.send({ });
}
function paste_data(url, target) {
  var req = new Subsys_JsHttpRequest_Js();
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
       $(document.getElementById(target)).replaceWith(req.responseJS);
    }
  }
  req.open('GET', url, true);
  req.send({ });
}
function request_data(url) {
  var req = new Subsys_JsHttpRequest_Js();
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
    }
  }
  req.open('GET', url, true);
  req.send({ });
}
function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
                window.onload = func;
        }
        else {
                window.onload = function() {
                        oldonload();
                        func();
                }
        }
}
function addEvent(elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
                elm.addEventListener(evType, fn, useCapture);
        return true;
        }
        else if (elm.attachEvent) {
                var r = elm.attachEvent('on' + evType, fn);
                return r;
        }
        else {
                elm['on' + evType] = fn;
        }
}
function add_smile (text) {
document.post.post_text.value=document.post.post_text.value+text;
}
function s_mutation_info (id) {
toggleOff('race_desc_0');
toggleOff('race_desc_1');
toggleOff('race_desc_2');
toggleOff('race_desc_3');
toggleOff('race_desc_4');
toggleOff('race_desc_5');
toggleOff('race_desc_6');
toggleOff('race_desc_7');
toggleOff('race_desc_8');
toggleOff('race_desc_9');
toggleOff('race_desc_10');
toggleOff('race_desc_11');
toggleOff('race_desc_12');
toggleOn('race_desc_'+id);
};
function auto_look_cancel(id) {
load_data('./?act=delete_auto_look&id='+id,'al_'+id);
};
function urlencode( str ) {
                            var histogram = {}, unicodeStr='', hexEscStr='';
                            var ret = (str+'').toString();

                            var replacer = function(search, replace, str) {
                                var tmp_arr = [];
                                tmp_arr = str.split(search);
                                return tmp_arr.join(replace);
                            };

                            histogram["'"]   = '%27';
                            histogram['(']   = '%28';
                            histogram[')']   = '%29';
                            histogram['*']   = '%2A';
                            histogram['~']   = '%7E';
                            histogram['!']   = '%21';
                            histogram['%20'] = '+';
                            histogram['\u00DC'] = '%DC';
                            histogram['\u00FC'] = '%FC';
                            histogram['\u00C4'] = '%D4';
                            histogram['\u00E4'] = '%E4';
                            histogram['\u00D6'] = '%D6';
                            histogram['\u00F6'] = '%F6';
                            histogram['\u00DF'] = '%DF';
                            histogram['\u20AC'] = '%80';
                            histogram['\u0081'] = '%81';
                            histogram['\u201A'] = '%82';
                            histogram['\u0192'] = '%83';
                            histogram['\u201E'] = '%84';
                            histogram['\u2026'] = '%85';
                            histogram['\u2020'] = '%86';
                            histogram['\u2021'] = '%87';
                            histogram['\u02C6'] = '%88';
                            histogram['\u2030'] = '%89';
                            histogram['\u0160'] = '%8A';
                            histogram['\u2039'] = '%8B';
                            histogram['\u0152'] = '%8C';
                            histogram['\u008D'] = '%8D';
                            histogram['\u017D'] = '%8E';
                            histogram['\u008F'] = '%8F';
                            histogram['\u0090'] = '%90';
                            histogram['\u2018'] = '%91';
                            histogram['\u2019'] = '%92';
                            histogram['\u201C'] = '%93';
                            histogram['\u201D'] = '%94';
                            histogram['\u2022'] = '%95';
                            histogram['\u2013'] = '%96';
                            histogram['\u2014'] = '%97';
                            histogram['\u02DC'] = '%98';
                            histogram['\u2122'] = '%99';
                            histogram['\u0161'] = '%9A';
                            histogram['\u203A'] = '%9B';
                            histogram['\u0153'] = '%9C';
                            histogram['\u009D'] = '%9D';
                            histogram['\u017E'] = '%9E';
                            histogram['\u0178'] = '%9F';

                            ret = encodeURIComponent(ret);

                            for (unicodeStr in histogram) {
                                hexEscStr = histogram[unicodeStr];
                                ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
                            }

                            return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
                                return '%'+m2.toUpperCase();
                            });
                        }
                                function toggleComment(objectID, notext){
                                        if($('#planet_comment'+objectID).css('display')=='none'){
                                                $('#planet_comment'+objectID).css('display','block');
                                        }else{
                                                $('#planet_comment'+objectID).css('display','none');
                                        }
					if(notext){
						if($('#comment'+objectID).val()!=''){
                                                	$('#planet_comment_title'+objectID).html('<img src="image/buttons/notepad_edit.gif">');
		                                }else{
		                                        $('#planet_comment_title'+objectID).html('<img src="image/buttons/notepad_add.gif">');
		                                }
					}else{
		                                if($('#comment'+objectID).val()!=''){
		                                        $('#planet_comment_title'+objectID).html('Блокнот <img src="image/buttons/notepad_edit.gif">');
		                                }else{
		                                        $('#planet_comment_title'+objectID).html('Добавить в блокнот <img src="image/buttons/notepad_add.gif">');
		                                }
					}
                                }
                                function saveComment(planetid){
                                        var url='./?act=save_planet_comment&planet='+planetid+'&comment='+urlencode($('#comment'+planetid).val());
                                        request_data(url);
                                }
function changeImage(id, src) {
	document.getElementById(id).src = "image/menu/"+src;
};
function Subsys_JsHttpRequest_Js() { this._construct() }
(function() { // to create local-scope variables
    var COUNT       = 0;
    var PENDING     = {};
    var CACHE       = {};

    // Called by server script on data load.
    Subsys_JsHttpRequest_Js.dataReady = function(id, text, js) {
        var undef;
        var th = PENDING[id];
        delete PENDING[id];
        if (th) {
            delete th._xmlReq;
            if (th.caching) CACHE[th.hash] = [text, js];
            th._dataReady(text, js);
        } else if (typeof(th) != typeof(undef)) {
            alert("ScriptLoader: unknown pending id: "+id);
        }
    }

    Subsys_JsHttpRequest_Js.prototype = {
        // Standard properties.
        onreadystatechange: null,
        readyState:         0,
        responseText:       null,
        responseXML:        null,
        status:             200,
        statusText:         "OK",

        // Additional properties.
        session_name:       "PHPSESSID",  // set to SID cookie or GET parameter name
        responseJS:         null,         // JavaScript response array/hash
        caching:            false,        // need to use caching?
        fallbackToScript:   false,

        // Internals.
        _span:              null,
        _id:                null,
        _xmlReq:            null,
        _openArg:           null,
        _reqHeaders:        null,

        dummy: function() {}, // empty function

        abort: function() {
            if (this._xmlReq) return this._xmlReq.abort();
            if (this._span) {
                this.readyState = 0;
                if (this.onreadystatechange) this.onreadystatechange();
                this._cleanupScript();
            }
        },

        open: function(method, url, asyncFlag, username, password) {
            this._openArg = {
                'method':    method,
                'url':       url,
                'asyncFlag': asyncFlag,
                'username':  username != null? username : '',
                'password':  password != null? password : ''
            };
            this._id = null;
            this._xmlReq = null;
            this._reqHeaders = [];
            return true;
        },

        send: function(content) {
            var id = (new Date().getTime()) + "" + COUNT++;

            // Build QUERY_STRING from query hash.
            var query = this._hash2query(content);

            // Append SID to original URL now.
            var url = this._openArg.url;
            var sid = this._getSid();
            if (sid) url += (url.indexOf('?')>=0? '&' : '?') + this.session_name + "=" + this.escape(sid);

            // Solve hash BEFORE appending ID.
            var hash = this.hash = url + '?' + query;
            if (this.caching && CACHE[hash]) {
                var c = CACHE[hash];
                this._dataReady(c[0], c[1]);
                return false;
            }

            // Try to use XMLHttpRequest.
            this._xmlReq = this._obtainXmlReq(id, url);

            // Pass data in URL (GET, HEAD etc.) or in request body (POST)?
            var hasSetHeader = this._xmlReq && (window.ActiveXObject || this._xmlReq.setRequestHeader);
            var href, body;
            var method = (""+this._openArg.method).toUpperCase();
            if (this._xmlReq && hasSetHeader && method == "POST") {
                // Use POST method. Pass query in request body.
                // Opera 8.01 does not support setRequestHeader, so no POST method.
                this._openArg.method = "POST";
                href = url;
                body = query;
            } else {
                if (method != 'GET' && !this.fallbackToScript && query.length > 2000) {
                    throw 'Cannot use XMLHttpRequest nor Microsoft.XMLHTTP for long POST query: object not implemented or disabled in browser.';
                }
                this._openArg.method = "GET";
                href = url + (url.indexOf('?')>=0? '&' : '?') + query;
                body = null;
            }

            // Append ID: a=aaa&b=bbb&<id>
            href = href + (href.indexOf('?')>=0? '&' : '?') + id;

            // Save loading script.
            PENDING[id] = this;

            if (this._xmlReq) {
                // Open request now & send it.
                // In XMLHttpRequest mode request URL MUST be ended with "<id>-xml".
                var a = this._openArg;
                this._xmlReq.open(a.method, href+"-xml", a.asyncFlag, a.username, a.password);
                if (hasSetHeader) {
                    // Pass pending headers.
                    for (var i=0; i<this._reqHeaders.length; i++)
                        this._xmlReq.setRequestHeader(this._reqHeaders[i][0], this._reqHeaders[i][1]);
                    // Set non-default Content-type. We cannot use
                    // "application/x-www-form-urlencoded" here, because
                    // in PHP variable HTTP_RAW_POST_DATA is accessible only when
                    // enctype is not default (e.g., "application/octet-stream"
                    // is a good start). We parse POST data manually in backend
                    // library code.
                    this._xmlReq.setRequestHeader('Content-Type', 'application/octet-stream');
                }
                // Send the request.
                return this._xmlReq.send(body);
            } else {
                // Create <script> element and run it.
                this._obtainScript(id, href);
                return true;
            }
        },

        getAllResponseHeaders: function() {
            if (this._xmlReq) return this._xmlReq.getAllResponseHeaders();
            return '';
        },

        getResponseHeader: function(label) {
            if (this._xmlReq) return this._xmlReq.getResponseHeader(label);
            return '';
        },

        setRequestHeader: function(label, value) {
            // Collect headers.
            this._reqHeaders[this._reqHeaders.length] = [label, value];
        },


        //
        // Internal functions.
        //

        // Constructor.
        _construct: function() {},

        // Do all work when data is ready.
        _dataReady: function(text, js) { with (this) {
            if (text !== null || js !== null) {
                readyState = 4;
                responseText = responseXML = text;
                responseJS = js;
            } else {
                readyState = 0;
                responseText = responseXML = responseJS = null;
            }
            if (onreadystatechange) onreadystatechange();
            _cleanupScript();
        }},

        // Create new XMLHttpRequest object.
        _obtainXmlReq: function(id, url) {
            // If url.domain specified and differ from current, cannot use XMLHttpRequest!
            // XMLHttpRequest (and MS ActiveX'es) cannot work with different domains.
            var p = url.match(new RegExp('^[a-z]+://(.*)', 'i'));
            if (p) {
                var curHost = document.location.host.toLowerCase();
                if (p[1].substring(0, curHost.length).toLowerCase() == curHost) {
                    url = p[1].substring(curHost.length, p[1].length);
                } else {
                    return null;
                }
            }

            // Try to use built-in loaders.
            var req = null;
            if (window.XMLHttpRequest) {
                try { req = new XMLHttpRequest() } catch(e) {}
            } else if (window.ActiveXObject) {
                try { req = new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
                if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {}
            }
            if (req) {
                var th = this;
                req.onreadystatechange = function() {
                    var s = req.readyState;
                    if (s == 4) {
                        // Avoid memory leak by removing closure.
                        req.onreadystatechange = th.dummy;
                        // Remove possible junk from response.
                        var responseText = req.responseText;
                        try {
                            // Call associated dataReady().
                            eval(responseText);
                        } catch (e) {
                            Subsys_JsHttpRequest_Js.dataReady(id, "JavaScript code generated by backend is invalid!\n"+responseText, null);
                        }
                    } else {
                        th.readyState = s;
                        if (th.onreadystatechange) th.onreadystatechange()
                    }
                };
                this._id = id;
            }
            return req;
        },

        // Create new script element and start loading.
        _obtainScript: function(id, href) { with (document) {
            var span = null;
            // Oh shit! Damned stupid fucked Opera 7.23 does not allow to create SCRIPT
            // element over createElement (in HEAD or BODY section or in nested SPAN -
            // no matter): it is created deadly, and does not respons on href assignment.
            // So - always create SPAN.
            var span = createElement("SPAN");
            span.style.display = 'none';
            body.appendChild(span);
            span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>';
            setTimeout(function() {
                var s = span.getElementsByTagName("script")[0];
                s.language = "JavaScript";
                if (s.setAttribute) s.setAttribute('src', href); else s.src = href;
            }, 10);
            this._id = id;
            this._span = span;
        }},

        // Remove last used script element (clean memory).
        _cleanupScript: function() {
            var span = this._span;
            if (span) {
                this._span = null;
                setTimeout(function() {
                    // without setTimeout - crash in IE 5.0!
                    span.parentNode.removeChild(span);
                }, 50);
            }
            return false;
        },

        // Convert hash to QUERY_STRING.
        _hash2query: function(content, prefix) {
            if (prefix == null) prefix = "";
            var query = [];
            if (content instanceof Object) {
                for (var k in content) {
                    var v = content[k];
                    if (v == null || ((v.constructor||{}).prototype||{})[k]) continue;
                    var curPrefix = prefix? prefix+'['+this.escape(k)+']' : this.escape(k);
                    if (v instanceof Object)
                        query[query.length] = this._hash2query(v, curPrefix);
                    else
                        query[query.length] = curPrefix + "=" + this.escape(v);
                }
            } else {
                query = [content];
            }
            return query.join('&');
        },

        // Return value of SID based on QUERY_STRING or cookie
        // (PHP compatible sessions).
        _getSid: function() {
            var m = document.location.search.match(new RegExp('[&?]'+this.session_name+'=([^&?]*)'));
            var sid = null;
            if (m) {
                sid = m[1];
            } else {
                var m = document.cookie.match(new RegExp('(;|^)\\s*'+this.session_name+'=([^;]*)'));
                if (m) sid = m[2];
            }
            return sid;
        },

        // Stupid JS escape() does not quote '+'.
        escape: function(s) {
            return escape(s).replace(new RegExp('\\+','g'), '%2B');
        }
    }
})();


var map_size=500;
var mapsizeX=19;
var mapsizeY=19;
var minimapX=0;
var minimapY=0;

function over (x, y) {
set_text(x+"."+y, "xy");
}
function out (x, y) {
set_text(x+"."+y, "xy");
}
function click_planet(x,y) {

        if (focus==x+'.'+y)
        {
                set_text('<i>Данные обновляются...</i>', 'map');
                load_data2('./?act=ajax_map&id='+focus,'map');
        }
        else
        {
                if($('div[id=map_'+x+'.'+y+'][highlighted]').length){
                        var fleet = $('div[id^=pop_fly]').attr('fleet');
                        move_fleet_new(fleet, x+'.'+y);
                }else{
                        $('div[id=map_'+focus+']').attr("style",'');
                        focus=x+'.'+y;
                        $('div[highlighted]').css('background-color','transparent');
                        set_text('<i>Данные обновляются...</i>', 'geo');
                        load_data('./?act=ajax_geo&id='+focus,'geo');
                        set_text('<i>Данные обновляются...</i>', 'here_other');
                        load_data('./?act=ajax_here_other&id='+focus,'here_other');
                        set_text('<i>Данные обновляются...</i>', 'here_own');
                        load_data('./?act=ajax_here_own&id='+focus,'here_own');
                        set_text('<i>Данные обновляются...</i>', 'here_battles');
                        load_data('./?act=ajax_here_battles&id='+focus,'here_battles');
                        $('div[id=map_'+focus+']').attr("style",'border:solid yellow 1px');
                }
        }
}
function goto_planet(xy) {
if (focus==xy)
{
set_text('<i>Данные обновляются...</i>', 'map');
load_data2('./?act=ajax_map&id='+focus,'map');
}
else
{
$('div[id=map_'+focus+']').attr("style",'');
focus=xy;
set_text('<i>Данные обновляются...</i>', 'geo');
load_data('./?act=ajax_geo&id='+focus,'geo');
set_text('<i>Данные обновляются...</i>', 'here_other');
load_data('./?act=ajax_here_other&id='+focus,'here_other');
set_text('<i>Данные обновляются...</i>', 'here_own');
load_data('./?act=ajax_here_own&id='+focus,'here_own');
set_text('<i>Данные обновляются...</i>', 'here_battles');
load_data('./?act=ajax_here_battles&id='+focus,'here_battles');
$('div[id=map_'+focus+']').attr("style",'border:solid yellow 1px');
}
}
function ally_names () {
 if (ally_names_loaded) {
 toggle('ally_names');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'ally_names');
 load_data('./?act=ajax_ally_names', 'ally_names');
 ally_names_loaded=true;
 };
}
function ally_fleets (id) {
 toggle('ally_fleets_'+id);
 set_text('<i>Данные загружаются...</i>', 'ally_fleets_'+id);
 load_data('./?act=ajax_fleets&id='+id, 'ally_fleets_'+id);
}
function enemy_names () {
 if (enemy_names_loaded) {
 toggle('enemy_names');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'enemy_names');
 load_data('./?act=ajax_enemy_names', 'enemy_names');
 enemy_names_loaded=true;
 };
}
function enemy_fleets (id) {
 toggle('enemy_fleets_'+id);
 set_text('<i>Данные загружаются...</i>', 'enemy_fleets_'+id);
 load_data('./?act=ajax_fleets&id='+id, 'enemy_fleets_'+id);
}
function other_names () {
 if (other_names_loaded) {
 toggle('other_names');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'other_names');
 load_data('./?act=ajax_other_names', 'other_names');
 other_names_loaded=true;
 };
}
function other_fleets (id) {
 toggle('other_fleets_'+id);
 set_text('<i>Данные загружаются...</i>', 'other_fleets_'+id);
 load_data('./?act=ajax_fleets&id='+id, 'other_fleets_'+id);
}
function fleet(id) {
 toggle('another_fleet_'+id);
 set_text('<i>Данные загружаются...</i>', 'another_fleet_'+id);
 load_data('./?act=ajax_fleet&id='+id, 'another_fleet_'+id);
}
function here_fleet(id) {
 toggle('here_fleet_'+id);
 set_text('<i>Данные загружаются...</i>', 'here_fleet_'+id);
 load_data('./?act=ajax_fleet&id='+id, 'here_fleet_'+id);
}
function here_fleet_own(id) {
 toggle('here_fleet_'+id);
 set_text('<i>Данные загружаются...</i>', 'here_fleet_'+id);
 load_data('./?act=ajax_fleet_own&id='+id, 'here_fleet_'+id);
}
function all_fleet_own(id) {
 toggle('all_fleet_'+id);
 set_text('<i>Данные загружаются...</i>', 'all_fleet_'+id);
 load_data('./?act=ajax_fleet_own&id='+id+'&type=hide', 'all_fleet_'+id);
}
function create_fleet() {
  var name=prompt('Введите название для флота', 'Флот '+focus);
  if (name) {
  set_text('<i>Создаем флот...</i>', 'here_own');
  load_data('./?act=ajax_create_fleet&id='+focus+'&name='+escape(name), 'here_own');
  };
};
function move_fleet_new_cancel(){
  $('div[highlighted]').css('background-color','transparent').removeAttr('highlighted');
  $('#pop_fly').fadeOut('slow', function(){
        $(this).remove();
  });
}
function move_fleet_new(fleet_id, xy){
  move_fleet_new_cancel();
  if (xy){
   load_data('./?act=ajax_move_fleet&id='+xy+'&fleet_id='+fleet_id, 'here_fleet_fly_'+fleet_id);
  }
}

function TheDistance (x, y, tx, ty) {
var dx = Math.abs(x - tx);
if (dx>Math.round(map_size/2)) dx=dx-map_size;
var dy = Math.abs(y - ty);
if (dy>Math.round(map_size/2)) dy=dy-map_size;
var distance = Math.pow(Math.pow(dx, 2)+Math.pow(dy, 2), 0.5);
distance = Math.ceil(distance*100)/100;
return distance;
}

function move_fleet(fleet_id) {
        move_fleet_new_cancel();
        var  st = new Date();

   $('#here_fleet_title_'+fleet_id).before("<div class='popup' fleet='"+fleet_id+"' style='display:none' id='pop_fly'>Лететь к <input maxlength=7 size=7 type=text id='pop_fly_coord' value='"+focus+"' name='pop_fly_coord'><input type=button value='OK' onClick='javascript:move_fleet_new("+fleet_id+", $(\"#pop_fly_coord\").val())'><input type=button value='Отмена' onClick='javascript:move_fleet_new_cancel()'><br/>Вставьте координаты планеты назначения или щелкните по карте</div>");
   $('#pop_fly').fadeIn('slow');
   var coord=focus.split('.');
   var x=parseInt(coord[0]);
   var y=parseInt(coord[1]);
   var mapsizeX=$('tr',$('#tablemap')).length-2;
   var mapsizeY=$('td',$('tr:eq(0)',$('#tablemap'))).length-2;
   var mapsize=Math.max(mapsizeX,mapsizeY);

   var distance=$('#here_fleet_title_'+fleet_id).attr('radius');
   var speed=$('#here_fleet_title_'+fleet_id).attr('speed');
   var horizontalLimit=Math.min(Math.floor(distance),mapsize);
//alert("x="+x+" y="+y+" distance="+distance+' limit='+horizontalLimit);
   //if(distance>mapsize){
   //     $('div[id^=map_]').css('background-color','#12487f');
   //     $('div[id^=map_]').attr('highlighted','1');
   //}else{
           for(h=x-horizontalLimit; h<=x+horizontalLimit; h++){
                for(v=y-horizontalLimit;v<=y+horizontalLimit;v++){
                v_=v;
                h_=h;
                if (h>map_size) h=h-map_size;
                if (v>map_size) v=v-map_size;
                if (h<1) h=h+map_size;
                if (v<1) v=v+map_size;
                        if(h+"."+v != focus){
                                if(document.getElementById('map_'+h+'.'+v)){
                                       // alert('cell found ('+h+','+v+'): distance='+TheDistance (x, y, h, v)+"x="+x+' y='+y+' tx='+h+" ty="+v);
                                        dist=TheDistance (x, y, h, v);
                                         if(dist<=distance){
                                                if(dist<=speed){
                                                        $(document.getElementById('map_'+h+'.'+v)).css('background-color','#3573b3').attr('highlighted','1');
                                                }else{
                                                        $(document.getElementById('map_'+h+'.'+v)).css('background-color','#12487f').attr('highlighted','1');
                                                }
                                        }
                                }
                        }
                v=v_;
                h=h_;
                }
           }
  // }
//  alert("Execution time " + parseInt(new Date() - st ,10));
};
function move_fleet_all(fleet_id) {
  var xy=prompt('Введите координаты цели', ''+focus);
  if (xy) {
  {
   load_data('./?act=ajax_move_fleet&id='+xy+'&fleet_id='+fleet_id, 'all_fleet_fly_'+fleet_id);
  };
  };
};
function cancel_move_fleet(fleet_id) {
   load_data('./?act=ajax_cancel_move_fleet&fleet_id='+fleet_id, 'here_fleet_fly_'+fleet_id);
};
function cancel_move_fleet_all(fleet_id) {
   load_data('./?act=ajax_cancel_move_fleet&fleet_id='+fleet_id, 'all_fleet_fly_'+fleet_id);
};
function delete_unit (fleet_id, ship_id) {
  toggle('unit_fleet_'+ship_id+'_'+fleet_id);
  request_data('./?act=delete_unit&id='+ship_id);
}
function move_ship (this_id, ship_id, fleet_id) {
  toggleOff('unit_fleet_'+ship_id+'_'+this_id);
//  set_text('<i>Переносим юнит...</i>', 'here_fleet_'+fleet_id);
  paste_data('./?act=ajax_move_unit&fleet_id='+fleet_id+'&this_id='+this_id+'&ship_id='+ship_id, 'here_fleet_title_'+fleet_id);
}
function own_fleets() {
 toggle('own_fleets');
 set_text('<i>Данные загружаются...</i>', 'own_fleets');
 load_data('./?act=ajax_own_fleets', 'own_fleets');
}
function own_planets() {
 if (own_planets_loaded) {
 toggle('own_planets');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'own_planets');
 load_data('./?act=ajax_own_planets', 'own_planets');
 own_planets_loaded=true;
 };
}
function ally_planets_names() {
 if (ally_planets_names_loaded) {
 toggle('ally_planets_names');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'ally_planets_names');
 load_data('./?act=ajax_ally_planets_names', 'ally_planets_names');
 ally_planets_names_loaded=true;
 };
}
function enemy_planets_names() {
 if (enemy_planets_names_loaded) {
 toggle('enemy_planets_names');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'enemy_planets_names');
 load_data('./?act=ajax_enemy_planets_names', 'enemy_planets_names');
 enemy_planets_names_loaded=true;
 };
}
function other_planets_names() {
 if (other_planets_names_loaded) {
 toggle('other_planets_names');
 }
 else
 {
 set_text('<i>Данные загружаются...</i>', 'other_planets_names');
 load_data('./?act=ajax_other_planets_names', 'other_planets_names');
 other_planets_names_loaded=true;
 };
}
function planets (id) {
 toggle('planets_'+id);
 set_text('<i>Данные загружаются...</i>', 'planets_'+id);
 load_data('./?act=ajax_planets&id='+id, 'planets_'+id);
}
function event_own_planets() {
 set_text('<i>Данные загружаются...</i>', 'event_own_planets');
 load_data('./?act=ajax_event_own_planets', 'event_own_planets');
}
function event_other_planets() {
 set_text('<i>Данные загружаются...</i>', 'event_other_planets');
 load_data('./?act=ajax_event_other_planets', 'event_other_planets');
}
function event_battles() {
 toggle('event_battles');
 set_text('<i>Данные загружаются...</i>', 'event_battles');
 load_data('./?act=ajax_event_battles', 'event_battles');
}
function event_ally_fleets_names() {
};
function event_enemy_fleets_names(){
};
function event_other_fleets_names() {
};
function up_fleet (fleet_id) {
 if (confirm('Перенести все юниты в гарнизон?'))
  load_data('./?act=ajax_up_fleet&fleet_id='+fleet_id, 'here_fleet_title_'+fleet_id);
};
function down_fleet() {
  var name=prompt('Введите название для флота из всех кораблей гарнизона', 'Флот '+focus);
  if (name) {
  set_text('<i>Создаем флот...</i>', 'here_own');
  load_data('./?act=ajax_down_fleet&id='+focus+'&name='+escape(name), 'here_own');
  };
};
function applyFilter(obj){
        if(obj!=''){//single param
                var temp=$(obj).attr('id');
                request_data("./?act=change_session&param="+obj.name+"&value="+obj.checked);
                if($('#'+temp+":checked").length){//show
                        if(temp=='legend_own'){
                                $(".map_div.own").css('background-image',"url('image/map/planets/own.png')");
                        }
                        if(temp=='legend_geo_bad'){
                                $(".map_div.geo_bad").css('background-image',"url('image/map/planets/geo_bad.png')");
                        }
                        if(temp=='legend_geo_good'){
                                $(".map_div.geo_good").css('background-image',"url('image/map/planets/geo_good.png')");
                        }
                        if(temp=='legend_geo_no'){
                                $(".map_div.geo_no").css('background-image',"url('image/map/planets/geo_no.png')");
                        }
                        if(temp=='legend_no'){
                                $(".map_div.no").css('background-image',"url('image/map/planets/no.png')");
                        }
                        if(temp=='legend_ally'){
                                $(".map_div.ally").css('background-image',"url('image/map/planets/ally.png')");
                        }
                        if(temp=='legend_enemy'){
                                $(".map_div.enemy").css('background-image',"url('image/map/planets/enemy.png')");
                        }
                }else{//hide

                        if(temp=='legend_own'){
                                $(".map_div.own").css('background-image','none');
                        }
                        if(temp=='legend_geo_bad'){
                                $(".map_div.geo_bad").css('background-image','none');
                        }
                        if(temp=='legend_geo_good'){
                                $(".map_div.geo_good").css('background-image','none');
                        }
                        if(temp=='legend_geo_no'){
                                $(".map_div.geo_no").css('background-image','none');
                        }
                        if(temp=='legend_no'){
                                $(".map_div.no").css('background-image','none');
                        }
                        if(temp=='legend_ally'){
                                $(".map_div.ally").css('background-image','none');
                        }
                        if(temp=='legend_enemy'){
                                $(".map_div.enemy").css('background-image','none');
                        }
                }
        }else{//whole legend
                var legend_own = $("#legend_own:checked").length;
                var legend_no = $("#legend_no:checked").length;
                var legend_ally = $("#legend_ally:checked").length;
                var legend_enemy = $("#legend_enemy:checked").length;
                var legend_geo_no = $("#legend_geo_no:checked").length;
                var legend_geo_bad = $("#legend_geo_bad:checked").length;
                var legend_geo_good = $("#legend_geo_good:checked").length;
                if(legend_geo_bad==0){
                        $(".map_div.geo_bad").css('background-image','none');
                }
                if(legend_geo_good==0){
                        $(".map_div.geo_good").css('background-image','none');
                }
                if(legend_geo_no==0){
                        $(".map_div.geo_no").css('background-image','none');
                }
                if(legend_own==0){
                        $(".map_div.own").css('background-image','none');
                }
                if(legend_no==0){
                        $(".map_div.no").css('background-image','none');
                }
                if(legend_ally==0){
                        $(".map_div.ally").css('background-image','none');
                }
                if(legend_enemy==0){
                        $(".map_div.enemy").css('background-image','none');
                }
        }
}

function buildMap(data){

	var temp=data.split("|");
	var conf=temp[0];
	var map=temp[1];
	conf=conf.split(":");
	map=map.split(":");

	var x_size=conf[0];
	var y_size=conf[1];
	var x_start=conf[2];
	var y_start=conf[3];

	var own="<div class='f_own'>%<img src='image/map/fleets/own.png' alt='.'></div>";
	var other="<div class='f_other'>%<img src='image/map/fleets/no.png' alt='.'></div>";
	var enem="<div class='f_enem'><img src='image/map/fleets/enemy.png' alt='.'></div>";
	var all="<div class='f_all'><img src='image/map/fleets/ally.png' alt='.'></div>";
	var battle="<div style='m_bat'><img src='image/map/battles/0.png' alt='.'></div>";//FIXME
	var output="<table cellspacing=0 cellpadding=0 id='tablemap'>";
	var p=0;
	var coordX=0;
	var coordY=0;
	var cell='';
	var back='';
	var turn='';
	var s='';
	var params='';
	var fleets='';
	for(y=0; y<=y_size;y++){
	    output=output+"<tr>";
		for(x=0; x<=x_size;x++){
			coordX=(parseInt(x_start)+x);
			coordY=(parseInt(y_start)+y);
			if(coordX>500) coordX-=500;
			if(coordX<1) coordX+=500;
			if(coordY>500) coordY-=500;
			if(coordY<1) coordY+=500;

			if(x==0 && y==0){
			   output=output+"<td>XY</td>";
			}
			if(x>0 && y==0){
			   output=output+"<td class=coord-b>"+coordX+"</td>";
			}
			if(x==0 && y>0){
			   output=output+"<td class=coord-r>"+coordY+"</td>";
			}
			if(x>0 && y>0){
				cell=map[p];
				p++;
				cell=cell.split(",");
				back=cell[0];
				turn=cell[2];
				params=parseInt(cell[1]);
				params=params.toString(2);

				while(params.length<8){
					params='0'+params;
				}

				if(back=='0') back='';
				if(back=='1') back='no';
				if(back=='2') back='own';
				if(back=='3') back='enemy';
				if(back=='4') back='ally';
				if(back=='5') back='geo_no';
				if(back=='6') back='geo_good';
				if(back=='7') back='geo_bad';
				if(back=='8') back='never';
				if(back=='9') back='';


				s='';
				if(params.charAt(0)=='1') s='style="border-color: yellow;"';

				fleets='';

				if(params.charAt(3)=='1'){
					if(turn>0){
					 	fleets=fleets+own.replace('%','<div class="turn">'+turn+'</div>');
					}else{
						fleets=fleets+own.replace('%','');
					}
				}
				if(params.charAt(4)=='1'){
					if(turn>0){
					 	fleets=fleets+other.replace('%','<div class="turn">'+turn+'</div>');
					}else{
						fleets=fleets+other.replace('%','');
					}
				}
				if(params.charAt(5)=='1') fleets=fleets+all;
				if(params.charAt(6)=='1') fleets=fleets+enem;
				if(params.charAt(7)=='1') fleets=fleets+battle;
				//output=output+"<td class='map $l$r'> <div class='map_div $b' style='$col' id='map_$i.$j'> &nbsp; $own $other $ally $enemy $battle</div></td>";

				output=output+"<td class='map l"+params.charAt(1)+"r"+params.charAt(2)+"'> <div turn="+turn+" class='map_div "+back+"' "+s+" id='map_"+coordX+"."+coordY+"'> "+fleets+"</div></td>";
			}
		}
	    output=output+"</tr>";

	}
	output=output+"</table>";

	return output;
}
function load_data2(url, target) {
  var req = new Subsys_JsHttpRequest_Js();
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        $('#'+target).hide();
        response=req.responseJS;
        if(target=='map'){
		document.getElementById(target).innerHTML=buildMap(response);
                $('.map_menu:eq(0)').css('opacity',1);
                $("div[id^=map_]").each(function () {
                        temp=$(this).attr('id');
                        temp=temp.split("_");
                        temp=temp[1];
                        tmp=temp.split(".");
                        x=tmp[0];
                        y=tmp[1];
                        $(this).attr('x', x).attr('y',y);
                        $(this).click(function () {
                                      click_planet($(this).attr('x'),$(this).attr('y'));
                           });
                        $(this).mouseover(function () {
                                     over($(this).attr('x'),$(this).attr('y'));
                           });
                        $(this).mouseout(function () {
                                out($(this).attr('x'),$(this).attr('y'));
                           });
                });
                $('#map').pngFix();
                applyFilter('');
		$('#'+target).show();
        }else{
		document.getElementById(target).innerHTML=response;
		$('#'+target).fadeIn('slow');
	}

    }
  }
  req.open('GET', url, true);
  req.send({ });
}
$(document).ready(function(){
                $('#legend').pngFix();
});

function loadstats(){
  if($('div[stats=1]').length){
	$('div[stats=1]').find(".rob").remove();
	$('div[stats=1]').find(".corr").remove();
	$('div[stats=1]').removeAttr('stats');
}else{
        var X;
	var Y;
	X=$('tr:eq(0)>td:eq(1)',$('#tablemap')).text();
        Y=$('tr:eq(1)>td:eq(0)',$('#tablemap')).text();
	var url='./?act=ajax_stats_view&focus='+X+"."+Y;
	var req = new Subsys_JsHttpRequest_Js();
	req.onreadystatechange = function() {
	    if (req.readyState == 4) {
		showstats(req.responseJS);
	    }
	  }
	  req.open('GET', url, true);
	  req.send({ });
	}
}
function showstats(data){
	var planets;
	planets=data.split(":");
	var params;
        var output;
	for(var i=0;i<planets.length;i++){
                 params=planets[i].split(",");
		 output='';
		 if(params[2]>0){
			output = output +"<div class='rob lvl"+params[2]+"'>&nbsp;</div>";
		 }
		 if(params[3]>0){
			output = output +"<div class='corr lvl"+params[3]+"'>&nbsp;</div>";
		 }

		 $(document.getElementById('map_'+params[0]+'.'+params[1])).append(output).attr('stats','1');
	}
}

function loadradar(){
  if($('div[radar=1]').length){
	$('div[radar=1]').css('background-color','transparent').removeAttr('radar');
}else{
        var X;
	var Y;
	X=$('tr:eq(0)>td:eq(1)',$('#tablemap')).text();
        Y=$('tr:eq(1)>td:eq(0)',$('#tablemap')).text();
  var url='./?act=ajax_fleets_view&focus='+X+"."+Y;
  var req = new Subsys_JsHttpRequest_Js();
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        showradar(req.responseJS);
    }
  }
  req.open('GET', url, true);
  req.send({ });
}
}
function showradar(data){
	var coords;
	coords=data.split(":");
	for(var i=0;i<coords.length;i++){
		 $(document.getElementById('map_'+coords[i])).css('background-color','#1d871e').attr('radar','1');
	}
}
function loadalive(){
  if($('div[alive=1]').length){
	$('div[alive=1]').css('background-color','transparent').removeAttr('alive');
}else{
        var X;
	var Y;
	X=$('tr:eq(0)>td:eq(1)',$('#tablemap')).text();
        Y=$('tr:eq(1)>td:eq(0)',$('#tablemap')).text();
  var url='./?act=ajax_fleets_alive&focus='+X+"."+Y;
  var req = new Subsys_JsHttpRequest_Js();
  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        showalive(req.responseJS);
    }
  }
  req.open('GET', url, true);
  req.send({ });
}
}
function showalive(data){
	var coords;
	coords=data.split(":");
	for(var i=0;i<coords.length;i++){
		 $(document.getElementById('map_'+coords[i])).css('background-color','#007F0E').attr('alive','1');
	}
}


function loadminimap(){
   if($('#minimap').length==0){
        $('body').append("<div id='minimap' class='popup2' style='width:510px;height:530px;position:absolute;display:none'><img id='minimap_img' src='index.php?act=minimap&rnd="+Math.random()+"'><input type='button' value='Закрыть' style='float:left' onClick='javascript:$(\"#minimap\").fadeOut(\"slow\",function(){$(this).remove()})'><span id='minimap_coord' style='float:left; font-weight:bold; font-size:12px; color:white'></span></div>");
        var left=$(window).scrollLeft()+($(window).width()-$('#minimap').outerWidth())/2;
        var top=$(window).scrollTop()+($(window).height()-$('#minimap').outerHeight())/2;
        if(!jQuery.support.opacity){
        	left=Math.round(left/2);
        	top=Math.round(top/2);
        }
        mapsizeX=$('tr',$('#tablemap')).length-1;
        mapsizeY=$('td',$('tr:eq(0)',$('#tablemap'))).length-1;
        var coord=focus.split('.');
        var x=parseInt(coord[0]);
        var y=parseInt(coord[1]);
        $('#minimap').css('left', left);
        $('#minimap').css('top', top);
        $('#minimap').append("<div id='minimap_selection' style='position:absolute; left:"+Math.max(5,Math.round(5+x-mapsizeX/2))+"px; top:"+Math.max(5,Math.round(5+y-mapsizeY/2))+"px; border:1px solid yellow; width:"+mapsizeX+"px; height:"+mapsizeY+"px'>&nbsp;</div>");
        $('#minimap').append("<div id='minimap_current' style='position:absolute; left:"+Math.max(5,Math.round(5+x-mapsizeX/2))+"px; top:"+Math.max(5,Math.round(5+y-mapsizeY/2))+"px; border:1px solid blue; width:"+mapsizeX+"px; height:"+mapsizeY+"px'>&nbsp;</div>");
        $('#minimap_img').mousemove(function(e){
        	minimapX=Math.round(e.pageX-left-5+mapsizeX/2);
        	minimapY=Math.round(e.pageY-top-5+mapsizeY/2);
        	if(minimapX>500) minimapX=500;
        	if(minimapY>500) minimapY=500;
        	$("#minimap_coord").text("("+minimapX+"."+minimapY+")");
        	var leftPos=Math.round(e.pageX-left);
        	var topPos=Math.round(e.pageY-top);
        	if(leftPos>500-mapsizeX) leftPos=500-mapsizeX;
        	if(leftPos<5) leftPos=5;
        	if(topPos>500-mapsizeY) topPos=500-mapsizeY;
        	if(topPos<5) topPos=5;
        	$('#minimap_selection').css('top', topPos);
        	$('#minimap_selection').css('left', leftPos);
        });
        $('#minimap_img').click(function(e){
        	//alert('Focus on '+minimapX+"."+minimapY);
        	focus=minimapX+"."+minimapY;
        	set_text('<i>Данные обновляются...</i>', 'map');
		//$(".map_div").replaceWith('&nbsp;');
        	load_data2('./?act=ajax_map&id='+focus,'map');
		$('#minimap_current').css('left', Math.max(5,Math.round(5+minimapX-mapsizeX/2)));
		$('#minimap_current').css('top', Math.max(5,Math.round(5+minimapY-mapsizeY/2)));
        });
	    $('#minimap').fadeIn('slow');
   }
}
function T() //get the selected text in frame f
{
try{
if(getSelection) return getSelection().toString();
if(document.selection) return document.selection.createRange().text;
}catch(e){} //if the frame is in another domain
return '';
}
function text_quote() {
  range = T();
}
function quote(text)
{
  document.post.post_text.value=document.post.post_text.value+'[quote='+text+']'+range+'[/quote]';
  toggleOn('fast_reply');
}
function clickbuttonover(obj) {
        var el = document.getElementById(obj);
                el.style.color = '#CCCCCC';
                el.style.backgroundColor = 'black';
}
function clickbuttonout(obj) {
        var el = document.getElementById(obj);
                el.style.color = 'white';
                el.style.backgroundColor = '#111111';
}
function incoming() {
toggleOn('list');
toggleOff('text');
MesInFocus=0;
PlayerInFocus=0;
set_text('<i>Данные загружаются...</i>', 'list');
load_data('./?act=ajax_incoming', 'list');
}
function outgoing() {
toggleOn('list');
toggleOff('text');
MesInFocus=0;
PlayerInFocus=0;
set_text('<i>Данные загружаются...</i>', 'list');
load_data('./?act=ajax_outgoing', 'list');
}
function private_new() {
toggleOn('text');
set_text('<i>Данные загружаются...</i>', 'text');
load_data('./?act=ajax_private_new&id='+PlayerInFocus, 'text');
}
function private_reply() {
toggleOn('text');
set_text('<i>Данные загружаются...</i>', 'text');
load_data('./?act=ajax_private_new&id='+PlayerInFocus+'&mid='+MesInFocus, 'text');
}
function private_delete() {
toggleOn('text');
set_text('<i>Сообщение удаляется...</i>', 'text');
load_data('./?act=ajax_private_delete&id='+MesInFocus, 'text');
}
function private_focus(i, j) {
MesInFocus=i;
PlayerInFocus=j;
toggleOn('text');
set_text('<i>Данные загружаются...</i>', 'text');
load_data('./?act=ajax_message&id='+i, 'text');
}
  function expand(x) {
          x = x.replace(/expand/,"");
          document.getElementById("block" + x).style.display = "";
          document.getElementById("expand" + x).style.display = "none";
          document.getElementById("collapse" + x).style.display = "";
  }
  function collapse(x) {
          x = x.replace(/collapse/,"");
          document.getElementById("block" + x).style.display = "none";
          document.getElementById("expand" + x).style.display = "";
          document.getElementById("collapse" + x).style.display = "none";
  }
  function NumberIncremental(tagType,tagId,prefixId) {
    var el = document.getElementsByTagName(tagType);
    var which = 0;
    var index=0;
    for(index=0; index<el.length; index++) {
      if(el[index].id == tagId) {
        el[index].id = prefixId + which++;
        el[index].display = "";
      }
    }
  }
  function Init() {
    NumberIncremental("div", "blocker", "block");
    NumberIncremental("a", "collapser", "collapse");
    NumberIncremental("a", "expander", "expand");
    var index=0;
    for(index=0;; index++) {
      if(document.getElementById("block"+index))
        collapse("collapse"+index);
      else break;
    }
  }
function c_changeallow(allow) {
if (allow)
 {
 set_text('Данные обновляются...', 'list');
 load_data('./?act=ajax_const_list&allow=true', 'list')
 }
else
 {
 set_text('Данные обновляются...', 'list');
 load_data('./?act=ajax_const_list', 'list');
 }
}
function d_changeallow(allow) {
if (allow)
 {
 set_text('Данные обновляются...', 'new_designs');
 load_data('./?act=ajax_new_designs&allow=true', 'new_designs')
 }
else
 {
 set_text('Данные обновляются...', 'new_designs');
 load_data('./?act=ajax_new_designs', 'new_designs');
 }
}
function d_changearchive(allow) {
if (allow)
 {
 set_text('Данные обновляются...', 'designs');
 load_data('./?act=ajax_designs&archive=true', 'designs')
 }
else
 {
 set_text('Данные обновляются...', 'designs');
 load_data('./?act=ajax_designs', 'designs');
 }
}
function c_fieldclick (type, position) {
if (focus_type>0) {
 toggleOff('list_'+focus_type);
 document.getElementById('d_'+focus_type+'_'+focus_position).style.borderColor = '#CCCCCC';
 };
 focus_type=type;
 focus_position=position;
 document.getElementById('d_'+focus_type+'_'+focus_position).style.borderColor = '#A0C000';
 toggleOn('list_'+focus_type);
 load_data('./?act=ajax_const_info&type='+focus_type+'&pos='+focus_position, 'info');
}
function c_detail (id) {
 load_data('./?act=ajax_const_name&id='+id+'&type='+focus_type+'&pos='+focus_position, 'd_'+focus_type+'_'+focus_position);
 load_data('./?act=ajax_const_info&id='+id+'&type='+focus_type+'&pos='+focus_position, 'info');
 load_data('./?act=ajax_const_ttx', 'ttx');
}
function c_info(lvl) {
 load_data('./?act=ajax_const_name&level='+lvl+'&type='+focus_type+'&pos='+focus_position, 'd_'+focus_type+'_'+focus_position);
 load_data('./?act=ajax_const_ttx', 'ttx');
}
function c_main(id) {
 load_data('./?act=ajax_const_info&id='+id, 'info');
}
function c_main_lvl(lvl) {
 request_data('./?act=ajax_const_name&level='+lvl);
 load_data('./?act=ajax_const_ttx', 'ttx');
}
function c_import(data) {
 if (data)
 {
 request_data('./?act=ajax_const_name&import='+1+'&type='+focus_type+'&pos='+focus_position);
// alert('./?act=ajax_const_name&import='+1+'&type='+focus_type+'&pos='+focus_position);
 }
 else
 {
 request_data('./?act=ajax_const_name&import='+0+'&type='+focus_type+'&pos='+focus_position);
// alert('./?act=ajax_const_name&import='+0+'&type='+focus_type+'&pos='+focus_position);
 }
}
function c_delete() {
 if (confirm('Удалить деталь из дизайна?')) {
 load_data('./?act=ajax_const_name&delete=delete&type='+focus_type+'&pos='+focus_position, 'd_'+focus_type+'_'+focus_position);
 set_text('', 'info');
 load_data('./?act=ajax_const_ttx', 'ttx');
 };
}
function save_design(def) {
 if (name=prompt('Введите имя для этого дизайна', def+''))
 {
 set_text('<font color=gray>Сохраняем дизайн...</font>', 'save');
 load_data('./?act=save_design&name='+escape(name), 'save');
 };
}
function c_archive (id) {
 load_data('./?act=ajax_archive_design&id='+id, 'archive_'+id)
}
function c_delete_design (id) {
 if (confirm('Вы уверены что хотите удалить этот дизайн?')) {
 request_data('./?act=ajax_delete_design&id='+id);
 alert('Дизайн успешно удален');
 };

}
var winwidth=0;
var winheight=0;
function set_vars() {
winwidth=(window.innerWidth)?window.innerWidth:
((document.all)?document.body.offsetWidth:null);
winheight=(window.innerHeight)?window.innerHeight:
((document.all)?document.body.offsetHeight:null);
};
function apply_window () {
set_vars();
getelementbyid('main_frame').style.height=winheight-136+'px';
        };




function showTime()
{

dayTwo = new Date();
if (getelementbyid('clock').innerHTML != '00:00:00') {
	dayTwo.setTime(Date.parse('January 1, 1970, ' + getelementbyid('clock').innerHTML) - 3000);
	hrNow = dayTwo.getHours();
	mnNow = dayTwo.getMinutes();
	scNow = dayTwo.getSeconds();
	if (hrNow < 10)
		hrNow = '0' + hrNow;
	if (mnNow < 10)
		mnNow = '0' + mnNow;
	if (scNow < 10)
		scNow = '0' + scNow;
	time = hrNow + ':' + mnNow + ':' + scNow;
	set_text(time, 'clock');
	if ((hrNow=='00')&&(mnNow=='10')) {toggleOn('clock'); toggleOff('turn');}
	setTimeout('showTime()', 50);
}
else {
	time = '05:00:00';
	set_text(time, 'clock');
	toggleOff('clock');
	toggleOn('turn');
	setTimeout('showTime()', 50);
}
}
/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.2
 *
 * Requires: 1.2.2+
 */
(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);
