function vote( uid ) {
    JsHttpRequest.query(
        '/_add_vote.php',
        {
            'uid': uid
        },

        function(result, errors) {
            if (result) {
                document.getElementById("add_vote").innerHTML =
                     result["str"];
            }
        },
        true
    );
            document.getElementById("add_vote").innerHTML = "<img src='/img/loading.gif'>";
}

function add_comment() {
    JsHttpRequest.query(
        '/add_comments.php',
        {
            'myname': document.getElementById("myname").value,
                            'comment': document.getElementById("comment").value,
                            'gid': document.getElementById("gid").value
        },

        function(result, errors) {
            if (result) {
                document.getElementById("ans1").innerHTML =
                     result["str"];
            }
        },
        false
    );
            document.getElementById("ans1").innerHTML = "<img src='/img/loading.gif'>";
}

function search_ext_game_count( arr ) {
    JsHttpRequest.query(
        '/_search_ext_game_count.php',
        {
            'arr': arr
        },

        function(result, errors) {
            if (result) {
                document.getElementById("searchextgamecount").innerHTML =
                     result["str"];
            }
        },
        true
    );
            document.getElementById("searchextgamecount").innerHTML = "<img src='/img/loading.gif'>";
}

function add_to_firend( friend_id ) {
    JsHttpRequest.query(
        '/_add_to_friend.php',
        {
            'uid': friend_id
        },

        function(result, errors) {
            if (result) {
                document.getElementById("add_to_friend").innerHTML =
                     result["str"];
            }
        },
        true
    );
            document.getElementById("add_to_friend").innerHTML = "<img src='/img/loading.gif'>";
}

function zoom(rate){
    var t=document.getElementById('GameDiv').style;
    var w=Math.floor(parseInt(t.width)*rate);
    var h=Math.floor(parseInt(t.height)*rate);
    t.width=w+"px";
    t.height=h+"px";
}

function show_game_preview( code ){

    JsHttpRequest.query(
       '/show_game_preview.php',
       {
       },
       function(result, errors) {
          if (result) {
              document.getElementById("msgs").innerHTML = result["str"];
           }
       },
       true
    );
    setInterval("getMyMsg();",120000);
}

function getMyMsg(){

    JsHttpRequest.query(
       '/get_my_msg.php',
       {
       },
       function(result, errors) {
          if (result) {
              document.getElementById("msgs").innerHTML = result["str"];
           }
       },
       true
    );
}

function add_fav( gid ) {
    JsHttpRequest.query(
       '/add_fav.php',
       {
            'gid': gid
        },

        function(result, errors) {
            if (result) {
                document.getElementById("status").innerHTML =
                result["str"];
            }
        },
        false
    );
        document.getElementById("status").innerHTML = "<img src='/img/loading.gif'>";
}

    function del_fav( cssid ) {
        JsHttpRequest.query(
            '/del_fav.php',
            {
                'gid': cssid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("ans" + cssid).innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("ans" + cssid).innerHTML = "<img src='/img/loading.gif'>";
    }

    function del_msg( cssid ) {
        JsHttpRequest.query(
            '/del_msg.php',
            {
                'id':  cssid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("ans" + cssid).innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("ans" + cssid).innerHTML = "<img src='/img/loading.gif'>";
    }

    function add_msg() {
        JsHttpRequest.query(
            '/add_msg.php',
            {
                'uid': document.getElementById("uid").value,
		'txt': document.getElementById("txt").value,
		'sbj': document.getElementById("sbj").value,
                'sess': document.getElementById("sess").value
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("mymsg").innerHTML =
                         result["str"] ;
                }
            },
            false
        );
                document.getElementById("txt").value = "";
		document.getElementById("mymsg").innerHTML = "<img src='/img/loading.gif'>";
    }

    function add_rec( txt, uid ) {
        JsHttpRequest.query(
            '/_ajax_add_rec.php',
            {
                'txt': txt,
                'uid': uid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("send_rec").innerHTML =
                         result["str"] ;
                }
            },
            false
        );
		document.getElementById("send_rec").innerHTML = "<img src='/img/loading.gif'>";
    }
    function del_rec( rid ) {
        JsHttpRequest.query(
            '/_ajax_del_rec.php',
            {
                'rid': rid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("wall_rec_" + rid).innerHTML =
                         result["str"] ;
                }
            },
            false
        );
		document.getElementById("wall_rec_" + rid).innerHTML = "<img src='/img/loading.gif'>";
    }
    function show_msgs( lid ) {
        JsHttpRequest.query(
            '/_ajax_get_msgs.php',
            {
                'lid': lid
            },
            function(result, errors) {
                if (result) {
                    document.getElementById("mymsg").innerHTML = result["str"] ;
                }
            },
            true
        );
            document.getElementById("mymsg").innerHTML = "<img src='/img/loading.gif'>";
    }


    function add_vote( gid ) {
        JsHttpRequest.query(
            '/add_vote.php',
            {
                'str': document.getElementById("mystr").value,
                'gid': gid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("status").innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("status").innerHTML = "<img src='/img/loading.gif'>";
    }

    function add_gift( gid, uid ) {
        JsHttpRequest.query(
            '/_ajax_add_gift.php',
            {
		'gid': gid,
                'uid': uid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("gift").innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("gift").innerHTML = "<img src='/img/loading.gif'>";
    }

        function del_comment( cssid, lang ) {

        JsHttpRequest.query(
            '/adm/comments/del_comment.php', 
            {
                'id': document.getElementById("id" + cssid ).value,
		'time': document.getElementById("time" + cssid).value,
                'uid': document.getElementById("uid" + cssid).value,
		'lang': lang
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("ans" + cssid).innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("ans" + cssid).innerHTML = "<img src='/img/loading.gif'>";
    }

        function del_friends( uid ) {

        JsHttpRequest.query(
            '/del_friends.php', 
            {
                'uid': uid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("uid" + uid ).innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("uid" + uid ).innerHTML = "<img src='/img/loading.gif'>";
    }

    function add_friend( uid ) {

        JsHttpRequest.query(
            '/_ajax_add_friend.php',
            {
                'uid': uid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("add_to_friend" ).innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("add_to_friend" ).innerHTML = "<img src='/img/loading.gif'>";
    }

    function del_gift( gid ) {
        JsHttpRequest.query(
            '/del_gift.php',
            {
                'gid': gid
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("gid" + gid ).innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("gid" + gid ).innerHTML = "<img src='/img/loading.gif'>";
    }
    function upd_desc( desc, code, ctrl ) {

        JsHttpRequest.query(
            '/adm/translate/upd.php',
            {
                'desc': desc,
                'code': code,
                'ctrl': ctrl
            },

            function(result, errors) {
                if (result) {
                    document.getElementById("ans").innerHTML =
                         result["str"];
                }
            },
            false
        );
		document.getElementById("ans").innerHTML = "<img src='/img/loading.gif'>";
    }


   function show_game_preview( gcode, elm ){
               JsHttpRequest.query(
            '/_ajax_get_game_preview.php',
            {
                'gcode': gcode
            },

            function(result, errors) {
                if (result) {
                    jsTitleIn( result["str"], elm, "medium", false );
                }
            },
            false
        );

   }

   function show_user_preview( uid, elm ){
               JsHttpRequest.query(
            '/_ajax_get_user_preview.php',
            {
                'uid': uid
            },

            function(result, errors) {
                if (result) {
                    jsTitleIn( result["str"], elm, "medium", false );
                }
            },
            false
        );

   }

    function jsTitleIn(title, elm, style, chase){

	if (!elm.id){
		elm.id=uniqueId();
	}
	if (typeof chase == 'undefined'){
		chase=false;
	}
	if (TITLES_TIMEOUTS[elm.id]){
		window.clearTimeout(TITLES_TIMEOUTS[elm.id]);
	}

	if ($('#jsTitle'+elm.id).get(0)){
		return;
	}
	if (!style){
		style='small';
	}

	var styles = {
		'small':{
			'width':'112px','height':'81px','paddingBottom':'0px','paddingLeft':'10px',
			'paddingRight':'27px','marginTop':'-59px','marginLeft':'-145px',
			'backgroundImage':'url(http://realore.com/images/clouds/small.png)','textAlign':'center'
		},
		'medium':{
			'width':'186px','height':'142px','paddingBottom':'20px','paddingLeft':'20px',
			'paddingRight':'20px','marginTop':'-150px','marginLeft':-175+elm.offsetWidth,
			'backgroundImage':'url(http://realore.com/images/clouds/medium.png)'
		}
	}

	if ($.browser.msie && $.browser.version<7){
		styles.small.backgroundImage='none';
		styles.small.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="http://realore.com/images/clouds/small.png", sizingMethod="crop");';
		styles.medium.backgroundImage='none';
		styles.medium.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="http://realore.com/images/clouds/medium.png", sizingMethod="crop");';
	}
	//alert(style.marginLeft);
	var d = $('<div class="jsTitle" id="jsTitle'+elm.id+'" style="position:absolute;z-index:1000;cursor:pointer;"></div>');
	d.appendTo($(document.body));
	d.css(styles[style]);
	var offset = $(elm).offset();

	d.css({'top':offset.top,'left':offset.left,'backgroundRepeat':'no-repeat'});

	d.click(function(){
		if (typeof elm.onclick == 'function'){
			elm.click();
		}
		if (typeof elm.href !='undefined'){
			window.location.href=elm.href;
		}
	});
	if (!chase) {
		d.mouseover(function(){
			if (TITLES_TIMEOUTS[elm.id]){
				window.clearTimeout(TITLES_TIMEOUTS[elm.id]);
			}
		});
		d.mouseout(function(){
			jsTitleOut(elm);
		});
	}
	d.html('<table height="100%" width="100%"><tr><td valign="middle">'+title+'</td></tr></table>');
        
}
UNIQID=0;
function uniqueId(){
    return 'generated'+UNIQID++;
}
TITLES_TIMEOUTS={};

function jsTitleOut(elm,e){
	if (typeof e == 'undefined'){
		e=window.event;
	}

	//alert(e.clientX+':'+e.clientY);
	var body=document.getElementsByTagName('body')[0];
	try{
		var mouseY=e.clientY+$(document).scrollTop();
		var mouseX=e.clientX+$(document).scrollLeft();
		var width = $(elm).width();
		var height = $(elm).height();
		//alert(document.documentElement.onmousemove);
		var offset = $(elm).offset();

	}catch(err){
		if (($.browser.msie || $.browser.safari)){
			document.documentElement.onmousemove=null;
			//window.onmousemove=null;
		}else{
			$(body).attr('onmousemove','');
		}
		TITLES_TIMEOUTS[elm.id]=window.setTimeout(function(){
			$('#jsTitle'+elm.id).remove(); 
		},100);
		return;
	}

	//мышка на самом деле все еще в пределах элемента
	//alert('before if');
	//alert($(document.body).attr('onmousemove'));

	if (mouseX>=offset.left
		&& mouseX<=offset.left+width
		&& mouseY>=offset.top
		&& mouseY<=offset.top+height
		){
		//alert('set attr');
		if (($.browser.msie || $.browser.safari) && !document.documentElement.onmousemove){
			document.documentElement.onmousemove=function(){

				jsTitleOut(elm);
			};
		}else{
			//alert(window.event);
			$(body).attr('onmousemove',"jsTitleOut($('#"+elm.id+"').get(0), event);");
		}
	}else{
		//alert('clear attr');
		if (($.browser.msie || $.browser.safari)){
			document.documentElement.onmousemove=null;
		}else{
			$(body).attr('onmousemove','');
		}

		TITLES_TIMEOUTS[elm.id]=window.setTimeout(function(){
			$('#jsTitle'+elm.id).remove();
		},100);
	}
	//alert(offset.left+':'+offset.top+':'+offset.w+':'+offset.h);
}
