﻿function browserDetectNav(chrAfterPoint) {
    var 
    UA = window.navigator.userAgent,       // содержит переданный браузером юзерагент
    //--------------------------------------------------------------------------------
	OperaB = /Opera[ \/]+\w+\.\w+/i,     //
	OperaV = /Version[ \/]+\w+\.\w+/i,   //	
	FirefoxB = /Firefox\/\w+\.\w+/i,     // шаблоны для распарсивания юзерагента
	ChromeB = /Chrome\/\w+\.\w+/i,       //
	SafariB = /Version\/\w+\.\w+/i,      //
	IEB = /MSIE *\d+\.\w+/i,             //
	SafariV = /Safari\/\w+\.\w+/i,       //
    //--------------------------------------------------------------------------------
	browser = new Array(),               //массив с данными о браузере
	browserSplit = /[ \/\.]/i,           //шаблон для разбивки данных о браузере из строки
	OperaV = UA.match(OperaV),
	Firefox = UA.match(FirefoxB),
	Chrome = UA.match(ChromeB),
	Safari = UA.match(SafariB),
	SafariV = UA.match(SafariV),
	IE = UA.match(IEB),
	Opera = UA.match(OperaB);

    //----- Opera ----
    if ((!Opera == "") & (!OperaV == "")) browser[0] = OperaV[0].replace(/Version/, "Opera")
    else
        if (!Opera == "") browser[0] = Opera[0]
        else
        //----- IE -----
            if (!IE == "") browser[0] = IE[0]
            else
            //----- Firefox ----
                if (!Firefox == "") browser[0] = Firefox[0]
                else
                //----- Chrom ----
                    if (!Chrome == "") browser[0] = Chrome[0]
                    else
                    //----- Safari ----
                        if ((!Safari == "") && (!SafariV == "")) browser[0] = Safari[0].replace("Version", "Safari");
    //------------ Разбивка версии -----------

    var 
            outputData;                                      // возвращаемый функцией массив значений
    // [0] - имя браузера, [1] - целая часть версии
    // [2] - дробная часть версии
    if (browser[0] != null) outputData = browser[0].split(browserSplit);
    if ((chrAfterPoint == null) && (outputData != null)) {
        chrAfterPoint = outputData[2].length;
        outputData[2] = outputData[2].substring(0, chrAfterPoint); // берем нужное ко-во знаков
        return (outputData);
    }
    else return (false);
}

function Detect_Flash_is_On() {
    var Flash_OB_Enabled = false,  // = T
        Flash_IE_Enabled = false, // = X
        ag = [0, 0, 0];

    if (typeof navigator.plugins != "undefined" && typeof navigator.plugins["Shockwave Flash"] == "object") {
        //ab = FlashDescr
        FlashDescr = navigator.plugins["Shockwave Flash"].description;
        if (FlashDescr && !(typeof navigator.mimeTypes != "undefined" && navigator.mimeTypes["application/x-shockwave-flash"] && !navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)) {
            Flash_OB_Enabled = true;
            Flash_IE_Enabled = false;
            FlashDescr = FlashDescr.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
            ag[0] = parseInt(FlashDescr.replace(/^(.*)\..*$/, "$1"), 10);
            ag[1] = parseInt(FlashDescr.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
            ag[2] = /[a-zA-Z]/.test(FlashDescr) ? parseInt(FlashDescr.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0
        }
    }
    else {
        if (typeof window.ActiveXObject != "undefined") {
            //ad = Flash_Player
            try
            {

                var Flash_Player = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                if (Flash_Player) {
                    FlashDescr = Flash_Player.GetVariable("$version");
                    if (FlashDescr) {
                        Flash_IE_Enabled = true;
                        FlashDescr = FlashDescr.split(" ")[1].split(",");
                        ag = [parseInt(FlashDescr[0], 10), parseInt(FlashDescr[1], 10), parseInt(FlashDescr[2], 10)];
                    }
                }
            }
            catch (ActiveXObject) {
                Flash_IE_Enabled = false;
            }
        }
    }

    if ((Flash_IE_Enabled)||(Flash_OB_Enabled)) {
        return true;
    }
    if ((!Flash_IE_Enabled)&&(!Flash_OB_Enabled)){
        return false;
    }
}

function Olimpik_Logo_Draw() {
    var 
	data = browserDetectNav();

    var text = "";

    if (data[0] == "MSIE") {
        text =
		' \
		    <object id=\"myId\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"> \
				<param name=\"movie\" value=\"Flash/Olimpik_Logo.swf\" /> \
                <param name=\"wmode\" value=\"transparent\"/> \
                <div> \
					<img alt=\"Олимпик\" src=\"Images/Olimpik_Logo.png\"/> \
				</div> \
			</object> \
        ';
    }
    else {
        text =
		' \
		    <object type=\"application/x-shockwave-flash\" data=\"Flash/Olimpik_Logo.swf\" width=\"100%\" height=\"100%\"> \
            <param name=\"wmode\" value=\"transparent\"/> \
				<div> \
					<img alt=\"Олимпик\" src=\"Images/Olimpik_Logo.png\"/> \
				</div> \
			</object> \
        \
		';
    }
    return (text);
}

function Altcom_Logo_Draw() {
    var 
	data = browserDetectNav();

    var text = "";

    if (data[0] == "MSIE") {
        text =
		' \
		    <object id=\"myId\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"> \
				<param name=\"movie\" value=\"Flash/Altcom_Logo.swf\" /> \
                <param name=\"wmode\" value=\"transparent\"/> \
                <div> \
					<img alt=\"Олимпик\" src=\"Images/Altcom_Logo.png\"/> \
				</div> \
			</object> \
        ';
    }
    else {
        text =
		' \
		    <object type=\"application/x-shockwave-flash\" data=\"Flash/Altcom_Logo.swf\" width=\"100%\" height=\"100%\"> \
            <param name=\"wmode\" value=\"transparent\"/> \
				<div> \
					<img alt=\"Олимпик\" src=\"Images/Altcom_Logo.png\"/> \
				</div> \
			</object> \
        \
		';
    }
    return (text);
 }

 function CountDown_Draw() {
    var 
	data = browserDetectNav();

    var text = "";

    if (data[0] == "MSIE") {
        text =
		' \
		    <object id=\"myId\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"> \
				<param name=\"movie\" value=\"Flash/Countdown.swf\" /> \
                <param name=\"wmode\" value=\"transparent\"/> \
 			</object> \
        ';
    }
    else {
        text =
		' \
		    <object type=\"application/x-shockwave-flash\" data=\"Flash/Countdown.swf\" width=\"100%\" height=\"100%\"> \
            <param name=\"wmode\" value=\"transparent\"/> \
 			</object> \
        \
		';
    }
    return (text);
}

function TournamentTable_Draw() {
    var 
	data = browserDetectNav();

    var text = "";

    if (data[0] == "MSIE") {
        text =
		' \
		    <object id=\"myId\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"> \
				<param name=\"movie\" value=\"Flash/table.swf\" /> \
                <param name=\"wmode\" value=\"transparent\"/> \
			</object> \
        ';
    }
    else {
        text =
		' \
		    <object type=\"application/x-shockwave-flash\" data=\"Flash/table.swf\" width=\"100%\" height=\"100%\"> \
            <param name=\"wmode\" value=\"transparent\"/> \
			</object> \
        \
		';
    }
    return (text);
    
}

function Sponsors_Draw() {
    var 
	data = browserDetectNav();

    var text = "";

    if (data[0] == "MSIE") {
        text =
		' \
		    <object id=\"myId\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"100%\" height=\"100%\"> \
				<param name=\"movie\" value=\"Flash/sponsors.swf\" /> \
                <param name=\"wmode\" value=\"transparent\"/> \
			</object> \
        ';
    }
    else {
        text =
		' \
		    <object type=\"application/x-shockwave-flash\" data=\"Flash/sponsors.swf\" width=\"100%\" height=\"100%\"> \
            <param name=\"wmode\" value=\"transparent\"/> \
			</object> \
        \
		';
    }
    return (text);
}

function tree_toggle(event) {
    event = event || window.event
    var clickedElem = event.target || event.srcElement

    if (!hasClass(clickedElem, 'Expand')) {
        return // клик не там
    }

    // Node, на который кликнули
    var node = clickedElem.parentNode
    if (hasClass(node, 'ExpandLeaf')) {
        return // клик на листе
    }

    // определить новый класс для узла
    var newClass = hasClass(node, 'ExpandOpen') ? 'ExpandClosed' : 'ExpandOpen'
    // заменить текущий класс на newClass
    // регексп находит отдельно стоящий open|close и меняет на newClass
    var re = /(^|\s)(ExpandOpen|ExpandClosed)(\s|$)/
    node.className = node.className.replace(re, '$1' + newClass + '$3')
}


function hasClass(elem, className) {
    return new RegExp("(^|\\s)" + className + "(\\s|$)").test(elem.className)
}
