function showTimeinfo(labelYear, labelWeek, labelDay, year, week, day, timestamp)
{
	var currentTime = new Date(timestamp * 1000);

	(currentTime.getHours() < 10) ? hours = '0' + currentTime.getHours() : hours = currentTime.getHours();
	(currentTime.getMinutes() < 10) ? minutes = '0' + currentTime.getMinutes() : minutes = currentTime.getMinutes();
	(currentTime.getSeconds() < 10) ? seconds = '0' + currentTime.getSeconds() : seconds = currentTime.getSeconds();

	document.getElementById('timeinfo').innerHTML = labelYear + ' ' + year + ', ' + labelWeek + ' ' + week + ', ' + labelDay + ' ' + day + ' ' + hours + ':' + minutes + ':' + seconds;
	setTimeout("showTimeinfo('" + labelYear + "', '" + labelWeek + "', '" + labelDay + "', " + year + ", " + week + ", " + day + ", " + (timestamp + 1) + ")", 1000);
}

function showSubmenu(menuId) {
	document.getElementById('submenuCareer').style.display = 'none';
	document.getElementById('submenuFinances').style.display = 'none';
	document.getElementById('submenuPersonal').style.display = 'none';
	document.getElementById('submenuStatistics').style.display = 'none';
	document.getElementById(menuId).style.display = 'block';
}


var offsetxpoint=-60
var offsetypoint=20
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}
function showtooltip(thetext, thecolor, thewidth){
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
return false
}
}
function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.x+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.y+ietruebody().scrollTop;
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
if (rightedge<tipobj.offsetWidth)
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
tipobj.style.left=curX+offsetxpoint+"px"
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}
function hidetooltip(){
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
}
}
document.onmousemove=positiontip


// Ajax
var resObject = null;
function XMLHttpRequestObject() {
    var resObject = null;
    try {
        resObject = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (Error) {
        try {
            resObject = new ActiveXObject("MSXML2.XMLHTTP");
        } catch (Error) {
            try {
                resObject = new XMLHttpRequest();
            } catch (Error) {
            }
        }
    }
    return resObject;
}
function sendAjaxRequest() {
    resObject.open('get', 'ajax.php?userString=' + document.getElementById('userSearchSearchText').value);
    resObject.onreadystatechange = handleAjaxResponse;
    resObject.send(null);
}
function handleAjaxResponse() {
    if (resObject.readyState == 4) {
        document.getElementById('userList').innerHTML = resObject.responseText;
    }
}
resObject = XMLHttpRequestObject();

var resObjectAffiliate = null;
function XMLHttpRequestObject() {
    var resObjectAffiliate = null;
    try {
        resObjectAffiliate = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (Error) {
        try {
            resObjectAffiliate = new ActiveXObject("MSXML2.XMLHTTP");
        } catch (Error) {
            try {
                resObjectAffiliate = new XMLHttpRequest();
            } catch (Error) {
            }
        }
    }
    return resObjectAffiliate;
}
function affiliateRequest(Event) {
    resObjectAffiliate.open('get', 'http://www.onlinetennis.net/affiliate.php?affiliuid=' + document.getElementById('affiuid').value + '&affilihash=' + document.getElementById('affihash').value);
    resObjectAffiliate.send(null);
}
resObjectAffiliate = XMLHttpRequestObject();




// scrolling
var scrollObj = false;
var timerObj = false;
var scrollTargetX = 0;
var scrollTargetY = 0;
var curTimerStep = 0;
function scrollDiv(target, direction, step)
{
	scrollObj = document.getElementById(target);
	scrollTimerEnd();
	if (direction == 'right')
	{
		scrollTargetX = Math.max(-scrollObj.offsetWidth + scrollObj.parentNode.offsetWidth, parseInt(scrollObj.style.left) - step);
		timerObj = setInterval("scrollTimer()", 50);
	}
	else if (direction == 'down')
	{
		scrollTargetY = Math.max(-scrollObj.offsetHeight + scrollObj.parentNode.offsetHeight, parseInt(scrollObj.style.top) - step);
		timerObj = setInterval("scrollTimer()", 50);
	}
	else if (direction == 'left')
	{
		scrollTargetX = Math.min(0, parseInt(scrollObj.style.left) + step);
		scrollTargetX -= ((scrollTargetX + step * 100) % step);
		timerObj = setInterval("scrollTimer()", 50);
	}
	else if (direction == 'up')
	{
		scrollTargetY = Math.min(0, parseInt(scrollObj.style.top) + step);
		scrollTargetY -= ((scrollTargetY + step * 100) % step);
		timerObj = setInterval("scrollTimer()", 50);
	}
	return false;
}
function scrollTimer()
{
	var curX = parseInt(scrollObj.style.left);
	var curY = parseInt(scrollObj.style.top);
	curX = (curX + scrollTargetX) / 2;
	curY = (curY + scrollTargetY) / 2;
	scrollObj.style.left = curX + 'px';
	scrollObj.style.top = curY + 'px';
	curTimerStep++;
	if (curTimerStep > 6) scrollTimerEnd();
}
function scrollTimerEnd()
{
	scrollObj.style.left = scrollTargetX + 'px';
	scrollObj.style.top = scrollTargetY + 'px';
	curTimerStep = 0;
	clearInterval(timerObj);
}


// screenshots
function showScreenshot(img)
{
    Dialog.alert('<img src="' + img + '" alt="Screenshot" class="bigScreenshot" />', {width: 448, height: 440, className: 'window_info'});
}

// banner
function showBanner(img)
{
    Dialog.alert('<img src="' + img + '" alt="Banner" />', {width: 484, height: 112, className: 'window_info'});
}

// overlay for layer
function showPage()
{
    document.getElementById('fullscreenLayer').style.display = 'none';
}
function hidePage()
{
    document.getElementById('fullscreenLayer').style.display = 'block';
}


// externalSignup
function showSignupHelp(field)
{
    $('infoBox_username').hide();
    $('infoBox_email').hide();
    $('infoBox_email2').hide();
    $('infoBox_firstname').hide();
    $('infoBox_lastname').hide();
    $('infoBox_nationality').hide();
    $('infoBox_playertype').hide();

    $(field).show();
}

function redirect(target)
{
    window.location = target;
}

// internalTactics
function adjustTraining(id, direction, step, minPosition, maxPosition)
{
    var position = parseInt(document.getElementById(id + 'Bar').style.left);
    if (direction == 'left' && position - step >= minPosition)
    {
        document.getElementById(id + 'Bar').style.left = (position - step) + 'px';
        document.getElementById(id + 'Value').value    = parseInt(document.getElementById(id + 'Value').value) - step;
    }
    else if (direction == 'right' && position + step <= maxPosition)
    {
        document.getElementById(id + 'Bar').style.left = (position + step) + 'px';
        document.getElementById(id + 'Value').value    = parseInt(document.getElementById(id + 'Value').value) + step;
    }
    $(id + 'Background').title = ((parseInt($(id + 'Bar').style.left) - minPosition) / (maxPosition - minPosition) * 100) + '%';
    $(id + 'Bar').title = ((parseInt($(id + 'Bar').style.left) - minPosition) / (maxPosition - minPosition) * 100) + '%';
}

// collecting game
function collectTennisball(hash)
{
    redirect('index.php?ota=internalHome&subaction=collectPumpkin&hash=' + hash + '&check=' + document.getElementById('check').value);
}

function openLanguageSelection()
{
    Effect.SlideUp('languageSelectionHidden', {
        duration: 0.4,
        queue: {
            position: 'end',
            scope: 'languageSelection'
        }
    });
    Effect.SlideDown('languageSelectionVisible', {
        duration: 1.0,
        queue: {
            position: 'end',
            scope: 'languageSelection'
        }
    });
}
function closeLanguageSelection()
{
    Effect.SlideUp('languageSelectionVisible', {
        duration: 1.0,
        queue: {
            position: 'end',
            scope: 'languageSelection'
        }
    });
    Effect.SlideDown('languageSelectionHidden', {
        duration: 0.4,
        queue: {
            position: 'end',
            scope: 'languageSelection'
        }
    });
}

function scrollEntrylist(direction)
{
    if (direction == 'up') {
        new Effect.Move('entrylistTable', {
            mode: 'relative',
            y: 240,
            queue: { position: 'end', scope: 'scrollEntrylist', limit: 1 }
        });
        $('scrollDown').style.display = 'block';
        if ($('entrylistTable').style.top == '-240px')
        {
            $('scrollUp').style.display = 'none';
        }
    }
    else
    {
        new Effect.Move('entrylistTable', {
            mode: 'relative',
            y: -240,
            queue: { position: 'end', scope: 'scrollEntrylist', limit: 1 }
        });
        $('scrollUp').style.display = 'block';
        if ($('entrylistTable').style.top == '-1920px')
        {
            $('scrollDown').style.display = 'none';
        }
    }
}

var visibleSubmenu = 'career';
var switchSubmenuActive = false;
function switchSubmenu(submenu)
{
    if (submenu != visibleSubmenu && !switchSubmenuActive) {
        switchSubmenuActive = true;
        Effect.SlideUp('submenu_' + visibleSubmenu + '_container', {
            duration: 0.2,
            queue: {
                position: 'end',
                scope: 'switchSubmenu'
            }
        });
        Effect.SlideDown('submenu_' + submenu + '_container', {
            duration: 0.2,
            queue: {
                position: 'end',
                scope: 'switchSubmenu'
            }
        });
        visibleSubmenu = submenu;
        switchSubmenuActive = false;
    }
}
function setSubmenu(submenu)
{
    $('submenu_career_container').hide();
    $('submenu_finances_container').hide();
    $('submenu_personal_container').hide();
    $('submenu_statistics_container').hide();
    visibleSubmenu = submenu;
    $('submenu_' + visibleSubmenu + '_container').show();
}

function hoverMenupoint(menupoint, cacheVersion)
{
    if ($('icon_' + menupoint)) $('icon_' + menupoint).style.backgroundImage = 'url(/images/menu/icon_' + menupoint + '_hover.png)';
}
function unhoverMenupoint(menupoint, cacheVersion)
{
    if ($('icon_' + menupoint)) $('icon_' + menupoint).style.backgroundImage = 'url(/images/menu/icon_' + menupoint + '.png)';
}

var preloadedImages = new Array();
function preloadImages(action, cacheVersion)
{
    // menu
    var images = new Array('icon_accounting_hover.png', 'icon_accountingCash_hover.png', 'icon_assistant_hover.png', 'icon_calendar_hover.png', 'icon_donation_hover.png', 'icon_otcup_hover.png', 'icon_payment_hover.png', 'icon_ranking_hover.png', 'icon_sponsor_hover.png', 'icon_staff_hover.png', 'icon_statistics_hover.png', 'icon_statussymbol_hover.png', 'icon_showmatches_hover.png', 'icon_stockExchange_hover.png', 'icon_tactics_hover.png', 'icon_team_hover.png', 'icon_training_hover.png', 'icon_equipment_hover.png');
    for (i = 0; i < images.length; i++)
    {
        preloadedImages[i]     = new Image();
        preloadedImages[i].src = '/images/menu/' + images[i];
    }

    // action specific
    if (action == 'internalPayment') {
        var images = new Array('button_otdollar_hover.png', 'button_otdollar_active.png', 'button_supporter_hover.png', 'button_supporter_active.png');
    }
    else {
        var images = new Array();
    }
    for (i = 0; i < images.length; i++)
    {
        preloadedImages[i]     = new Image();
        preloadedImages[i].src = '/images/' + action + '/' + images[i] + '?v=' + cacheVersion;
    }
}

function openPayment (address)
{
    var payment = window.open(address.replace(/\+/g,"%2B"), "paymentglobal", "width=840,height=680,left=100,top=200");
    payment.focus();
}

function OTInfo(message)
{
    Dialog.alert(message, {width: 300, className: 'window_info'});
}
function OTError(message)
{
    Dialog.alert(message, {width: 300, className: 'window_error'});
}

var map = false;
var globalLatLng = false;
function initializeGoogleMaps()
{
    var minZoomLevel = 6;
    var maxZoomLevel = 10;
    var defaultZoomLevel = 9;

    if (GBrowserIsCompatible())
    {
        var tilelayers = [new GTileLayer(null, minZoomLevel, maxZoomLevel)];
        tilelayers[0].getTileUrl = function(coordinates, zoom) { return 'dyn_pics/tile.php?x=' + coordinates.x + '&y=' + coordinates.y + '&z=' + zoom; };

        var OTMap = new GMapType(tilelayers, new GMercatorProjection(12), "Onlinetennis");

        map = new GMap2($("map_canvas"));
        map.setCenter(new GLatLng(0, 0), defaultZoomLevel);

        var customUI = map.getDefaultUI();
        customUI.controls.scalecontrol = false;
        map.setUI(customUI);

        map.addMapType(OTMap);
        map.setMapType(OTMap);
        map.removeMapType(G_NORMAL_MAP);
        map.removeMapType(G_SATELLITE_MAP);
        map.removeMapType(G_HYBRID_MAP);
        map.removeMapType(G_PHYSICAL_MAP);

        GEvent.addListener(map, 'click', function(overlay, latlng)
        {
            if (overlay)
            {
                // ignore if we click on the info window
                return;
            }
            var fieldCoordinate = new GPoint();
            var fieldPoint = new GPoint();
            var currentProjection = G_NORMAL_MAP.getProjection();
            fieldPoint = currentProjection.fromLatLngToPixel(latlng, map.getZoom());
            globalLatLng = latlng;
            fieldCoordinate.x = Math.floor(fieldPoint.x / (256 / Math.pow(2, 12 - map.getZoom())));
            fieldCoordinate.y = Math.floor(fieldPoint.y / (256 / Math.pow(2, 12 - map.getZoom())));
            xajax_getFieldOptions(fieldCoordinate.x, fieldCoordinate.y);
        });
    }
}
function showCategoryConstructions(category)
{
    for (i = 0; i < $('category_' + category).parentNode.childNodes.length; i++)
    {
        $('category_' + category).parentNode.childNodes[i].hide();
    }
    $('category_' + category).show();
}
function selectConstruction(constructionID, price, currency, width, height)
{
    $('constructionPrice').innerHTML = price + ' ' + currency;
    $('constructionWidth').innerHTML = width;
    $('constructionHeight').innerHTML = height;
    $('constructionID').value = constructionID;
    for (i = 0; i < $('construction_image_' + constructionID).parentNode.childNodes.length; i++)
    {
        $('construction_image_' + constructionID).parentNode.childNodes[i].style.backgroundColor = '#ffffff';
    }
    $('construction_image_' + constructionID).style.backgroundColor = '#dddddd';
}
function resetSelectedConstruction(category)
{
    $('constructionPrice').innerHTML = '';
    $('constructionWidth').innerHTML = '';
    $('constructionHeight').innerHTML = '';
    $('constructionID').value = '';
    for (i = 0; i < $('category_' + category).childNodes.length; i++)
    {
        $('category_' + category).childNodes[i].style.backgroundColor = '#ffffff';
    }
}
function multiShow(elements)
{
    elements.each(function(e) { e.show() });
}
function multiHide(elements)
{
    elements.each(function(e) { e.hide() });
}
function selectBrand(brandID)
{
    $('selectBrandInfo').hide();
    $('itemListHeaders').show();
    $('itemList').show();
    multiShow($$('userItems_container'));
    multiHide($$('#itemList .item'));
    multiShow($$('.brand_' + brandID));
    $('selectedBrand').value = brandID;
}
function dropEquipmentItem(dragElement, dropElement)
{
    var tmp = dragElement.id.split('_');
    if (tmp.length == 3) {
        tmp[0] = tmp[1];
        tmp[1] = tmp[2];
    }
    var dragType = tmp[0]; // something like "racquet"
    var dragID   = tmp[1]; // something like "11"

    var tmp = dropElement.id.split('_');
    var dropEvent = tmp[0]; // something like "singles"
    var dropType  = tmp[1]; // something like "racquet"

    $('userItemsHint').hide();

    $(dropElement.id + '_price').innerHTML = $(dragType + '_' + dragID + '_price').value;
    $(dropElement.id + '_container').show();

    if (dropElement.hasChildNodes()) { // there is already an item in this field
        dropElement.removeChild(dropElement.firstChild);
    }

    // update database
    xajax_updateEquipment(dragType, dragID, dropElement.id);

    // put the element on the droppable
    var newNode = dragElement.cloneNode(true);
    newNode.id = dropEvent + '_' + dragType + '_' + dragID;
    newNode.firstChild.id = newNode.id + '_amount';
    $(dropElement).appendChild(newNode);
    $(dragElement).setStyle( { left: '0px', top: '0px' } );
    $(newNode).setStyle( { left: '0px', top: '0px', opacity: 1, zIndex: 1 } );
}
function changeShowmatchSkills()
{
    if ($('skillMin').value  == '0' && $('skillMax').value == '0') {
        $('opponent').disabled = false;
    } else {
        $('opponent').disabled = true;
    }
}

function showTutorial(title, text)
{
    tutorialWindow = new Window({className: "dialog", title: title, width: 500, height: 200, zIndex: 100, resizable: false, maximizable: false, draggable: true});
    tutorialWindow.getContent().innerHTML = '<div id="tutorialContainer">' + text + '</div>';
    tutorialWindow.showCenter();
}
function hideTutorial()
{
    tutorialWindow.close();
}

/* browser-update.org */
var $buoop = {
    reminder: 24,
    newwindow: true
}
$buoop.ol = window.onload;
window.onload = function() {
    if ($buoop.ol) $buoop.ol();
    var e = document.createElement("script");
    e.setAttribute("type", "text/javascript");
    e.setAttribute("src", "http://browser-update.org/update.js");
    document.body.appendChild(e);
}
