function openNormalPopup(url, name, width, height) {
	var oTarget = window.open(url, name, 'location=yes, scrollbars=yes, toolbar=yes, resizable=yes, menubar=yes, status=yes, width=' + width + ', height=' + height + ' top=250, left=350, center=1');
	oTarget.focus();
	return false;
}

function absPositionBefore(obj, getBefore) {
    var x = y = 0;

    while (obj && obj.id != getBefore) {
        x += obj.offsetLeft;
        y += obj.offsetTop;
        obj = obj.offsetParent;
    }
    return { x: x, y: y };
}

function absPosition(obj) {
  var x = y = 0;
  while (obj) {
    x += obj.offsetLeft;
    y += obj.offsetTop;
    obj = obj.offsetParent;
  }
  return { x: x, y: y };
}

function addLoadEvent(func) {  
  var oldonload = window.onload;  
  if (typeof window.onload != 'function') {  
    window.onload = func;  
  } else {  
    window.onload = function() {  
      oldonload();  
      func();  
    }  
  }
}

//************************************************************* 
function Trim(str) {
    return RTrim(LTrim(str));
}
//************************************************************* 	
function LTrim(str) {
    var ret_str = str;
    for (var i = 0; i < str.length; i++) {
        if (str.charAt(i) == ' ') { ; }
        else {
            ret_str = str.substring(i);
            return ret_str;
        }
    }
    ret_str = '';
    return ret_str;
}
//************************************************************* 
function RTrim(str) {
    var ret_str = str;
    for (var i = (str.length - 1); i >= 0; i--) {
        if (str.charAt(i) == ' ') { ; }
        else {
            ret_str = str.substring(0, (i + 1));
            return ret_str;
        }
    }
    ret_str = '';
    return ret_str;
}

//************************************************************* 

function SortingData(type, tab1ClientID, tab2ClientID, tab3ClientID, divArr, divStateArr, IDs1, IDs2, IDs3, showAtOnce, legendWidth, dataWidth, moverWitdh) {

    var tab1 = $get(tab1ClientID);
    var tab2 = $get(tab2ClientID);
    var tab3 = $get(tab3ClientID);
    
    if (tab1 != null && tab2 != null && tab3 != null) {
        tab1.className = "best_hl";
        tab2.className = "best_rl";
        tab3.className = "best_t";

        var IDsCurrent = null;
        
        //change tab's colors        
        //set IDsCurrent
        switch (type) {
            case 1:
                IDsCurrent = IDs1;
                tab1.className = "act_hl best_hl";
                break;
            case 2:
                IDsCurrent = IDs2;
                tab2.className = "act_rl best_rl";
                break;
            case 3:
                IDsCurrent = IDs3;
                tab3.className = "act_t best_t";
                break;
        }
    }

    //set visibility
    for (var i = 0; i < divStateArr.length; i++) {

        divStateArr[i] = i < showAtOnce;
    }

    DrawData(legendWidth, dataWidth, moverWitdh, divArr, divStateArr, IDsCurrent);

    return IDsCurrent;
}

function BrowsingData(moveCount, isForwardDirection, speed, divArr, divStateArr, IDsCurrent, legendWidth, dataWidth, moverWitdh) {

    var indexToHide = -1;
    var indexToShow = -1;

    if (isForwardDirection) {
        for (var i = 0; i < divStateArr.length; i++) {
            
            if (divStateArr[i] && indexToHide == -1) {
                indexToHide = i;
            }

            if (!divStateArr[i] && indexToHide != -1 && indexToShow == -1) {
                indexToShow = i;
            }

            if (indexToHide != -1 && indexToShow != -1) {
                break;
            }
        }
    }
    else {
        for (var i = divStateArr.length - 1; i >= 0; i--) {
            
            if (divStateArr[i] && indexToHide == -1) {
                indexToHide = i;
            }

            if (!divStateArr[i] && indexToHide != -1 && indexToShow == -1) {
                indexToShow = i;
            }

            if (indexToHide != -1 && indexToShow != -1) {
                break;
            }
        }
    }

    if (indexToHide != -1 && indexToShow != -1) {
        divStateArr[indexToHide] = false;
        divStateArr[indexToShow] = true;
    }

    DrawData(legendWidth, dataWidth, moverWitdh, divArr, divStateArr, IDsCurrent);

    if (moveCount - 1 > 0) {

        setTimeout(function () { BrowsingData(moveCount - 1, isForwardDirection, speed, divArr, divStateArr, IDsCurrent, legendWidth, dataWidth, moverWitdh) }, speed);
    }    
}

function DrawData(legendWidth, dataWidth, moverWitdh, divArr, divStateArr, iDsOrderedArrCurrent) {

    var idToWork = -1;
    var dvToWork = null;
    var isVisible = false;
    var divArrItem = null;
    var visibleCounter = 0;

    //hide all
    for (var i = 0; i < divArr.length; i++) {
        dvToWork = $get(divArr[i].ClientID);
        if (dvToWork != null) {
            dvToWork.style.display = 'none';
        }
    }

    //show as ordered and visibility setted
    for (var i = 0; i < iDsOrderedArrCurrent.length; i++) {

        idToWork = iDsOrderedArrCurrent[i];
        isVisible = divStateArr[i];

        dvToWork = null;

        for (var ii = 0; ii < divArr.length; ii++) {

            divArrItem = divArr[ii]

            if (divArrItem.ID == idToWork) {
                dvToWork = $get(divArrItem.ClientID);
                break;
            }
        }

        if (dvToWork != null) {
            if (isVisible) {
                dvToWork.style.left = legendWidth + moverWitdh + (visibleCounter * dataWidth) + "px";
                dvToWork.style.display = "block";
                visibleCounter++;
            }
            else {
                dvToWork.style.display = "none";
            }
        }
    }
}

///----------------------------

function SelectGameMouseOver(divST) {
    if (divST != null) {
        divST.style.cursor = "pointer";
        if (divST.style.background != "#e2e2e2") {
            divST.style.background = "#e2e2e2";
        }
    }
}

function SelectGameMouseOut(divST) {
    if (divST != null) {
        divST.style.cursor = "pointer";
        if (divST.style.background != "#fff") {
            divST.style.background = "#fff";
        }
    }
}

//*******
function CountDownCommon(remainTimeDays, remainTimeHours, remainTimeMinutes, remainTimeSeconds,
    litGameDaysRemainClientID, litGameHoursRemainClientID, litGameMinutesRemainClientID, litGameSecondsRemainClientID) {

    var forceMinusMinutes = false;
    if (remainTimeSeconds > 0) {
        remainTimeSeconds--;
    }
    else {
        if (remainTimeMinutes > 0 || remainTimeHours > 0 || remainTimeDays > 0) {
            forceMinusMinutes = true;
            remainTimeSeconds = 59;
        }
    }

    var forceMinusHours = false;
    if (forceMinusMinutes) {
        if (remainTimeMinutes > 0) {
            remainTimeMinutes--;
        }
        else {
            if (remainTimeHours > 0 || remainTimeDays > 0) {
                forceMinusHours = true;
                remainTimeMinutes = 59;
            }
        }
    }

    var forceMinusDays = false;
    if (forceMinusHours) {
        if (remainTimeHours > 0) {
            remainTimeHours--;
        }
        else {
            if (remainTimeDays > 0) {
                forceMinusDays = true;
                remainTimeHours = 23;
            }
        }
    }

    if (forceMinusDays && remainTimeDays > 0) {
        remainTimeDays--;
    }

    if (remainTimeDays == 0 && remainTimeHours == 0 && remainTimeMinutes == 0 && remainTimeSeconds == 1) {
        document.location.href = document.location.href;
        return null;
    }
    else {

        litGameDaysRemain = $get(litGameDaysRemainClientID);
        litGameHoursRemain = $get(litGameHoursRemainClientID);
        litGameMinutesRemain = $get(litGameMinutesRemainClientID);
        litGameSecondsRemain = $get(litGameSecondsRemainClientID);

        if (litGameDaysRemain != null) {
            litGameDaysRemain.innerHTML = remainTimeDays > 9 ? remainTimeDays : "0" + remainTimeDays;
        }

        if (litGameHoursRemain != null) {
            litGameHoursRemain.innerHTML = remainTimeHours > 9 ? remainTimeHours : "0" + remainTimeHours;
        }

        if (litGameMinutesRemain != null) {
            litGameMinutesRemain.innerHTML = remainTimeMinutes > 9 ? remainTimeMinutes : "0" + remainTimeMinutes;
        }

        if (litGameSecondsRemain != null) {
            litGameSecondsRemain.innerHTML = remainTimeSeconds > 9 ? remainTimeSeconds : "0" + remainTimeSeconds;
        }

        var res = new Object();
        res.remainTimeDays = remainTimeDays;
        res.remainTimeHours = remainTimeHours;
        res.remainTimeMinutes = remainTimeMinutes;
        res.remainTimeSeconds = remainTimeSeconds;

        return res;
    }
}
