    /* Copyright © 2006-2007 MULTICHOICE Hellas S.A. ___________________________*/
    /* Coded by VS */

    var bLangGreek = false;
    var bAthensTZ = true;
    var intMainTimerID = 0;
    var intEventTimerID = 0;
    var dtLoaded;
    var aLiveIDs = new Array(); //Parallel arrays for live events
    var aLiveStartTime = new Array(); //Parallel arrays for live events
    var aDelayedIDs = new Array(); //Parallel arrays for delayed events
    var aDelayedStartTime = new Array(); //Parallel arrays for delayed events
    var dtGreekDate; //Used only for date values (not time)
    var intGreekSeconds; //Completes the date above
    var intGreekMinutes; //Completes the date above
    var intGreekHours; //Completes the date above
    var intSecondsDiffFromServer;
    //Images to show on action areas
    var imgAction = new Image();
    var imgActionOver = new Image();
    imgAction.src = "img/arrow-gray.gif";
    imgActionOver.src = "img/arrow-green.gif";

    function format2Digits(intVal){
        var strRet;
        if (intVal < 10) {
            strRet = "0";
        }else{
            strRet = "";
        }
        strRet += intVal.toString();
        return strRet;
    }

    function formatDateAndTimeShort(dtDate){
        var strRet;
        if (bLangGreek){
            switch (dtDate.getDay()){
                case 0:strRet = "Κυρ";break;
                case 1:strRet = "Δευ";break;
                case 2:strRet = "Τρι";break;
                case 3:strRet = "Τετ";break;
                case 4:strRet = "Πεμ";break;
                case 5:strRet = "Παρ";break;
                case 6:strRet = "Σαβ";break;
                default:strRet = ".";break;            
            }
            strRet += ", " + dtDate.getDate() + " ";
            switch (dtDate.getMonth()){
                case 0:strRet += "Ιαν";break;
                case 1:strRet += "Φεβ";break;
                case 2:strRet += "Μαρ";break;
                case 3:strRet += "Απρ";break;
                case 4:strRet += "Μαϊ";break;
                case 5:strRet += "Ιουν";break;
                case 6:strRet += "Ιουλ";break;
                case 7:strRet += "Αυγ";break;
                case 8:strRet += "Σεπ";break;
                case 9:strRet += "Οκτ";break;
                case 10:strRet += "Νοε";break;
                case 11:strRet += "Δεκ";break;
                default:strRet += ".";break;               
            }
        }else{
            switch (dtDate.getDay()){
                case 0:strRet = "Sun";break;
                case 1:strRet = "Mon";break;
                case 2:strRet = "Tue";break;
                case 3:strRet = "Wed";break;
                case 4:strRet = "Thur";break;
                case 5:strRet = "Fri";break;
                case 6:strRet = "Sat";break;
                default:strRet = ".";break;
            }
            strRet += ", " + dtDate.getDate() + " ";
            switch (dtDate.getMonth()){
                case 0:strRet += "Jan";break;
                case 1:strRet += "Feb";break;
                case 2:strRet += "Mar";break;
                case 3:strRet += "Apr";break;
                case 4:strRet += "May";break;
                case 5:strRet += "Jun";break;
                case 6:strRet += "Jul";break;
                case 7:strRet += "Aug";break;
                case 8:strRet += "Sept";break;
                case 9:strRet += "Oct";break;
                case 10:strRet += "Nov";break;
                case 11:strRet += "Dec";break;
                default:strRet += ".";break; 
            }
        }
        strRet += " " + dtDate.getUTCFullYear() + "";
        return strRet;
    }

    function runAthensTimer(){
        if(intMainTimerID){
            clearTimeout(intMainTimerID);
        }
        // Get server's time value
        var intServerSecsFrom2000 = document.aspnetForm.lblServerTime.value;
        // Get client's temporal distance from page load
        var dtNow = new Date();
        var intSecsDiff;
        intSecsDiff = Math.round((dtNow - dtLoaded) / 1000);
        // Add the two values
        intServerSecsFrom2000 = intServerSecsFrom2000 * 1;
        intSecsDiff = intSecsDiff * 1;
        intServerSecsFrom2000 = intServerSecsFrom2000 + intSecsDiff;
        // Extract seconds, minutes, etc
        intGreekSeconds = intServerSecsFrom2000 % 60;
        intServerSecsFrom2000 -= intGreekSeconds;
        intGreekMinutes = (intServerSecsFrom2000 % 3600) / 60;
        intServerSecsFrom2000 -= intGreekMinutes * 60;
        intGreekHours = (intServerSecsFrom2000 % 86400) / 3600;
        intServerSecsFrom2000 -= intGreekHours * 3600;
        var intDays = intServerSecsFrom2000 / 86400;
        // Add and show datetime
        dtGreekDate = new Date();
        dtGreekDate.setFullYear(2000, 0, 1);
        dtGreekDate.setDate(dtGreekDate.getDate() + intDays);
        var strVal = formatDateAndTimeShort(dtGreekDate);
        strVal += ", " + 
                format2Digits(intGreekHours) + ":" + 
                format2Digits(intGreekMinutes) + "." + 
                format2Digits(intGreekSeconds);
        if (bLangGreek){
            strVal += " Ώρα Ελλάδος (CET +1) "
        }else{
            strVal += " Athens Time (CET +1) "
        }
        document.getElementById(globalDateTime).value = strVal;
        // Run every second
        intMainTimerID = setTimeout("runAthensTimer()", 1000);
    }

    function runLocalTimer(){
        if(intMainTimerID){
            clearTimeout(intMainTimerID);
        }
        
        // Get server's time value
        var intServerSecsFrom2000 = document.aspnetForm.lblServerTime.value;
        // Get client's temporal distance from page load
        var dtNow = new Date();
        var intSecsDiff;
        intSecsDiff = Math.round((dtNow - dtLoaded) / 1000);
        // Add the two values
        intServerSecsFrom2000 = intServerSecsFrom2000 * 1;
        intSecsDiff = intSecsDiff * 1;
        intServerSecsFrom2000 = intServerSecsFrom2000 + intSecsDiff;
        // Extract seconds, minutes, etc
        intGreekSeconds = intServerSecsFrom2000 % 60;
        intServerSecsFrom2000 -= intGreekSeconds;
        intGreekMinutes = (intServerSecsFrom2000 % 3600) / 60;
        intServerSecsFrom2000 -= intGreekMinutes * 60;
        intGreekHours = (intServerSecsFrom2000 % 86400) / 3600;
        intServerSecsFrom2000 -= intGreekHours * 3600;
        var intDays = intServerSecsFrom2000 / 86400;
        // Add 
        dtGreekDate = new Date();
        dtGreekDate.setFullYear(2000, 0, 1);
        dtGreekDate.setDate(dtGreekDate.getDate() + intDays);
        
        // Add and show datetime
        var dtLocalDateTime;
        dtLocalDateTime = new Date(); 
        var strVal = formatDateAndTimeShort(dtLocalDateTime);
        strVal += ", " + 
                format2Digits(dtLocalDateTime.getHours()) + ":" + 
                format2Digits(dtLocalDateTime.getMinutes()) + "." + 
                format2Digits(dtLocalDateTime.getSeconds());
        if (bLangGreek){
            strVal += " Τοπική Ώρα "
        }else{
            strVal += " Local Time "
        }
        document.getElementById(globalDateTime).value = strVal;
        // Run every second
        intMainTimerID = setTimeout("runLocalTimer()", 1000);
    }

    function runEventsTimer(){
        var l;
        var strVal;
        strVal = "";
        //Delayed
        for(l = 0; l < aDelayedIDs.length; l++){
            var iVal = aDelayedStartTime[l] * 1;
            if (!bAthensTZ){
                iVal += intSecondsDiffFromServer;
            }
            var intSeconds = iVal % 60;
            iVal -= intSeconds;
            var intMinutes = (iVal % 3600) / 60;
            iVal -= intMinutes * 60;
            var intHours = (iVal % 86400) / 3600;
            iVal -= intHours * 3600;
            var intDays = iVal / 86400;
            var dtEventDate = new Date();
            dtEventDate.setFullYear(2000, 0, 1);
            dtEventDate.setDate(dtEventDate.getDate() + intDays);        
            var strPrefix;
            if (bLangGreek){
                strPrefix = "Διαθέσιμο έως ";
            }else{
                strPrefix = "Available Until ";
            }
            document.aspnetForm['txtDelayedEventDate' +
                    aDelayedIDs[l]].value = strPrefix + 
                            format2Digits(dtEventDate.getDate()) + '/' + 
                            format2Digits(dtEventDate.getMonth() + 1)   + ' ' +
                            format2Digits(intHours) + ':' + 
                            format2Digits(intMinutes);
        }
        //Live
        for(l = 0; l < aLiveIDs.length; l++){
            var iVal = aLiveStartTime[l] * 1;
            var iValTZ = aLiveStartTime[l] * 1;
            if (!bAthensTZ){
                iValTZ += intSecondsDiffFromServer;
            }
            var intSeconds = iVal % 60;
            iVal -= intSeconds;
            var intSecondsTZ = iValTZ % 60;
            iValTZ -= intSecondsTZ;
            var intMinutes = (iVal % 3600) / 60;
            iVal -= intMinutes * 60;
            var intMinutesTZ = (iValTZ % 3600) / 60;
            iValTZ -= intMinutesTZ * 60;
            var intHours = (iVal % 86400) / 3600;
            iVal -= intHours * 3600;
            var intHoursTZ = (iValTZ % 86400) / 3600;
            iValTZ -= intHoursTZ * 3600;
            var intDays = iVal / 86400;
            var intDaysTZ = iValTZ / 86400;
            var dtEventDate = new Date();
            dtEventDate.setFullYear(2000, 0, 1);
            dtEventDate.setDate(dtEventDate.getDate() + intDays);
            var strPrefix;
            if (bLangGreek){
                strPrefix = "Ζωντανά ";
            }else{
                strPrefix = "Live ";
            }
            document.aspnetForm['txtLiveEventDate' +
                    aLiveIDs[l]].value = strPrefix + 
                            format2Digits(dtEventDate.getDate()) + '/' + 
                            format2Digits(dtEventDate.getMonth() + 1)  + ' ' +
                            format2Digits(intHoursTZ) + ':' + 
                            format2Digits(intMinutesTZ);
            intGreekHours = intGreekHours * 1;
            intGreekMinutes = intGreekMinutes * 1;
            intHours = intHours * 1;
            intMinutes = intMinutes * 1;
            if (dtGreekDate != null){
                if (dtEventDate.toDateString() == dtGreekDate.toDateString()){
                    var bNotStartedYet;
                    bNotStartedYet = false;
                    if (intGreekHours < intHours) bNotStartedYet = true;
                    if (intGreekHours == intHours && 
                            intGreekMinutes <= intMinutes){
                        bNotStartedYet = true;
                    }
                    var bAlreadyStarted;
                    bAlreadyStarted = false;
                    if (intGreekHours > intHours) bAlreadyStarted = true;
                    if (intGreekHours == intHours && 
                            intGreekMinutes > intMinutes){
                        bAlreadyStarted = true;
                    }
                    if (bNotStartedYet == bAlreadyStarted)
                        window.alert('Error  bNotStartedYet == bAlreadyStarted\n' +
                                'intGreekHours=' + intGreekHours + 
                                ' intGreekMinutes=' + intGreekMinutes +
                                '\n intHours=' + intHours + 
                                ' intMinutes=' + intMinutes + 
                                '\n ' + bAlreadyStarted);
                    if (bNotStartedYet){
                        if (bLangGreek){
                            document.aspnetForm['txtLiveEventDate' + 
                                    aLiveIDs[l]].value = 'Σύντομα Ζωντανά (σε ';
                        }else{
                            document.aspnetForm['txtLiveEventDate' + 
                                    aLiveIDs[l]].value = 'Coming Soon Live (in ';
                        }
                        var intHoursDiff;
                        var intMinutDiff;
                        var intAllMinutes;
                        intAllMinutes = (intHours * 60) - (intGreekHours * 60) +
                                intMinutes - intGreekMinutes;
                        intMinutDiff = intAllMinutes % 60;
                        intHoursDiff = (intAllMinutes - intMinutDiff) / 60;
                        document.aspnetForm['txtLiveEventDate' + 
                                aLiveIDs[l]].value += '' + 
                                format2Digits(intHoursDiff) + ':' +
                                format2Digits(intMinutDiff);
                        if (bLangGreek){
                            if (intHoursDiff == 0){
                                document.aspnetForm['txtLiveEventDate' +
                                        aLiveIDs[l]].value += ' λεπτά)';
                            }else{
                                document.aspnetForm['txtLiveEventDate' +
                                        aLiveIDs[l]].value += ' ώρες)';
                            }
                        }else{ //English
                            if (intHoursDiff == 0){
                                document.aspnetForm['txtLiveEventDate' +
                                        aLiveIDs[l]].value += ' minutes)';
                            }else{
                                document.aspnetForm['txtLiveEventDate' +
                                        aLiveIDs[l]].value += ' hours)';
                            }
                        }
                    }else if (bAlreadyStarted){
                        if (bLangGreek){
                            document.aspnetForm['txtLiveEventDate' +
                                    aLiveIDs[l]].value = 'Μεταδίδεται Τώρα';
                        }else{ //English
                            document.aspnetForm['txtLiveEventDate' +
                                    aLiveIDs[l]].value = 'Playing Now';
                        }
                    }
                }
            }
        }
        //Run this again 
        intEventTimerID = setTimeout("runEventsTimer()", 5000); 
    }

    function stopTimers() {
        if(intMainTimerID){
            clearTimeout(intMainTimerID);
            intMainTimerID = 0;
        }
        if (intEventTimerID){
            clearTimeout(intEventTimerID);
            intEventTimerID = 0;
        }
    }

    function initTimers(){
        //Language set
        if (document.getElementById(globalLangGreek) != null){
            if (document.getElementById(globalLangGreek).value == 1){
                bLangGreek = true;
            }else{
                bLangGreek = false;
            }
        }
        //Time zone set
        if (document.getElementById(globalTzAthens) != null){
            if (document.getElementById(globalTzAthens).value == 0){
                bAthensTZ = false;
                //Init Local Time Zone timer
                intMainTimerID = setTimeout("runLocalTimer()", 1000);
            }else{
                bAthensTZ = true;
                //Init Athens time timer
                intMainTimerID = setTimeout("runAthensTimer()", 1000);
            }
        }
        //Init var that shows when the page was loaded
        dtLoaded = new Date();
        // Get server time 
        var intServerSecsFrom2000 = document.aspnetForm.lblServerTime.value;
        var dt2000 = new Date()
        dt2000.setFullYear(2000, 0, 1);
        dt2000.setHours(0, 0, 0, 0);
        var intSecsTimeZoneOffset = 
                (dtLoaded.getTimezoneOffset() - 
                dt2000.getTimezoneOffset()) * 60;
        intSecondsDiffFromServer = 
                ((dtLoaded - dt2000) / 1000) - 
                intServerSecsFrom2000 - intSecsTimeZoneOffset;
        //Init events' time indicators
        var o;
        for (o in document.aspnetForm.elements){
            if (document.aspnetForm.elements[o] != null && 
                    document.aspnetForm.elements[o].name != null){
                if (document.aspnetForm.elements[o].name != 'undefined' && 
                        document.aspnetForm.elements[o].name != '[object]'){
                    if (document.aspnetForm.elements[o].name.slice(0, 16) ==
                            'lblLiveEventDate'){
                        aLiveIDs.push(
                                document.aspnetForm.elements[o].name.slice(16));
                        aLiveStartTime.push(
                                document.aspnetForm.elements[o].value);
                    }
                    if (document.aspnetForm.elements[o].name.slice(0, 24) == 
                            'lblDelayedAvailableUntil'){
                        aDelayedIDs.push(
                                document.aspnetForm.elements[o].name.slice(24));
                        aDelayedStartTime.push(
                                document.aspnetForm.elements[o].value);
                    }
                }
            }
        }
        //Init events time-area timer
        runEventsTimer();
    }  
    
function OpenPopup(strUrl, blnIsSecure, intWidth, intHeight, strSettings, intWinX, intWinY) {
	if(blnIsSecure == null || blnIsSecure.length == 0) var blnIsSecure = false;
	if(intWidth == null || intWidth.length == 0) var intWidth = parseInt(screen.width) / 2;
	if(intHeight == null || intHeight.length == 0) var intHeight = parseInt(screen.height)/2;

	if(intWinX == null || intWinX.length == 0) var intWinX = (parseInt(screen.width)/2) - (intWidth/2);
	if(intWinY == null || intWinY.length == 0) var intWinY = (parseInt(screen.height)/2) - (intHeight/2) - 20;

	if(strSettings == null || strSettings.length == 0) var strSettings = "scrollbars=yes";

	strSettings += ",width=" + intWidth + ",height=" + intHeight + ",left=" + intWinX + ",top=" + intWinY + "";

	window.open( strUrl, "LivePopup", strSettings );
}
