﻿/// <reference name="MicrosoftAjax.js"/>
var xmlFilesPath="XMLDATA/"
var sega=new Date();
var mesec=sega.getMonth()+1+ '';
var den=sega.getDate()+ '';
if(mesec.length==1){mesec="0"+mesec;}
if(den.length==1){den="0"+den}
var date=sega.getFullYear()+''+mesec+'' + den+ '';
var mk_kanali=new Array();
mk_kanali=[1,2,2,4,5,6,12,15,16,17,18, 44];
var dok_kanali=new Array();
dok_kanali=[29,31,32,22,34];

Array.prototype.exists=function(x){
for(var i=0; i<this.length; i++)
{
if(this[i]==x) return true;
}
return false;
}

function makeSpanWithScript(SpanId, ElementID, TimeElement){
                    //var span=document.createElement('span');
                    //document.getElementById(ElementID).appendChild(span);
                    //span.id=SpanId;
                    

                    var skripta =document.createElement('script');
                    if(document.getElementById(SpanId)!=null){
document.getElementById(SpanId).appendChild(skripta)}
                else
                { 
                var span=document.createElement('span'); 
                document.getElementById(ElementID).appendChild(span);
                span.className="text_mal";
                span.id=SpanId; 
                span.appendChild(skripta);
                }
            skripta.type="text/javascript";
                    skripta.text='HowManyMinutesLeft("' +TimeElement + '", "' +SpanId + '");';
}

function makeRowsInTable2(chid, rowDataInfo, TableID){
if(document.getElementById(TableID +"_td3" + rowDataInfo.substring(rowDataInfo.indexOf("<span id=\"")+10, rowDataInfo.indexOf("<script>")-2))==null)
{
var tbody=document.createElement('tbody');
document.getElementById(TableID).appendChild(tbody);
var tr=document.createElement('tr');
tbody.appendChild(tr);
var td1=document.createElement('td');
tr.appendChild(td1);
td1.width="2"
var td2=document.createElement('td');

td2.id="td2" + rowDataInfo.substring(rowDataInfo.indexOf("<span id=\"")+10, rowDataInfo.indexOf("<script>")-2);
tr.appendChild(td2);
var temnp=rowDataInfo.substring(rowDataInfo.indexOf("HowManyMinutesLeft(")+19, rowDataInfo.indexOf("HowManyMinutesLeft(")+34)
td2.width="35";
td2.innerHTML=rowDataInfo.substring(rowDataInfo.indexOf("<img"), rowDataInfo.indexOf("/>")+2);
var td3=document.createElement('td');
tr.appendChild(td3);
td3.id=TableID +"_td3" + rowDataInfo.substring(rowDataInfo.indexOf("<span id=\"")+10, rowDataInfo.indexOf("<script>")-2);

var naslov1=rowDataInfo.substring(rowDataInfo.indexOf("<font"), rowDataInfo.indexOf("<br />")+6);
var naslov2=naslov1.substring(naslov1.indexOf("<strong>")+8, naslov1.indexOf("</strong>"));
naslov1=naslov2;
//alert('naslov1: '+ naslov1);
if(naslov2.length>20){
naslov2=naslov2.substring(0, 20);
}
//alert('naslov2: '+ naslov2);
td3.innerHTML=rowDataInfo.substring(rowDataInfo.indexOf("<font"), rowDataInfo.indexOf("<br />")+6).replace(naslov1, naslov2);
//alert(td3.innerHTML);
makeSpanWithScript("s_" + td3.id + "_" + chid, td3.id, rowDataInfo.substring(rowDataInfo.indexOf("HowManyMinutesLeft(")+20, rowDataInfo.indexOf("HowManyMinutesLeft(")+34));
}
else {
makeSpanWithScript("s_" + TableID +"_td3" + rowDataInfo.substring(rowDataInfo.indexOf("<span id=\"")+10, rowDataInfo.indexOf("<script>")-2) + "_" + chid, TableID +"_td3" + rowDataInfo.substring(rowDataInfo.indexOf("<span id=\"")+10, rowDataInfo.indexOf("<script>")-2), rowDataInfo.substring(rowDataInfo.indexOf("HowManyMinutesLeft(")+20, rowDataInfo.indexOf("HowManyMinutesLeft(")+34));
}
}

function LoadFile(){
var file = xmlFilesPath + "tv/tv_" +  date + ".json";
    var wRequest = new Sys.Net.WebRequest();
    wRequest.set_url(file);
    wRequest.set_httpVerb("GET");
    wRequest.set_userContext("12345");
    wRequest.add_completed(callback_ProgramlData);
    wRequest.invoke();
}
function callback_ProgramlData(executor, eventArgs)
{
    if(executor.get_responseAvailable())
    {
        // Parse XML to Channel Data
        //parseGuideXml(executor.get_responseData());
        WriteWhatsOnNow2(executor.get_responseData());
        // Placeholderek generálása, ha még nem lenne
     
    }
    else
    {
        if(executor.get_timedOut())
        {
            // status: timed out
            showNotifyMsg("Time Out.");
        }
        else if(executor.get_aborted())
        {
            // status: aborted
            
            setStatusbarText("Aborted");
        }
    }

}
function makeDateTimeFromString2(StringLocal){
        var datumStartLocal=new Date(StringLocal.substring(0, 4), StringLocal.substring(4,6)-1, StringLocal.substring(6,8), StringLocal.substring(9,11), StringLocal.substring(12,14));
  return datumStartLocal;
  }
     

function WriteWhatsOnNow2(dataNow)
{

var rawData=new Array();
rawData = eval('('+dataNow+')');
var ovoj_kanal;
var ovoj_kanal_redovi="";
var ovoj_kanal_red="";
var temp="";
var index=0;
var index_vo_Redovi=0;
var index_vo_Redovi2=-1;
    for(var i=0; i<rawData.length-1; i++)
    {
    ovoj_kanal=rawData[i];
        if(ovoj_kanal.rowData)
        {   
            
            ovoj_kanal_redovi=ovoj_kanal.rowData;
            index_vo_Redovi=0;
            while(index_vo_Redovi+5!=ovoj_kanal_redovi.length-1 && index_vo_Redovi+1!=ovoj_kanal_redovi.length && ovoj_kanal_redovi.length!=0)
            {
                
                index_vo_Redovi=ovoj_kanal_redovi.substring(0,ovoj_kanal_redovi.length).indexOf("</tr>")+5;
                
                
                ovoj_kanal_red=ovoj_kanal_redovi.substring(0,index_vo_Redovi)
                
                

                ovoj_kanal_redovi=ovoj_kanal_redovi.substring(index_vo_Redovi, ovoj_kanal_redovi.length);
                
                //zemi go id na red
                //vidi dal e vremeto megju starttime-endtime
                //dodadi go na inner-html ako e ok.
               
                temp=ovoj_kanal_red.replace('""','"').substring(8, ovoj_kanal_red.indexOf('">'));
                temp=temp.substring(temp.indexOf('">'));
                index=temp.indexOf("-");
                //var string=
               if(sega>=makeDateTimeFromString2(temp.substring(0, index)) && sega<makeDateTimeFromString2(temp.substring(index+1, temp.length)))
               {
                  
                  
                    //dodadi go vo InnetHtml na elementot!!!
                    if(mk_kanali.exists(ovoj_kanal.channelID))
                    {

                     makeRowsInTable2(ovoj_kanal.channelID,ovoj_kanal_red, "makCh");
                    }
                    else if(dok_kanali.exists(ovoj_kanal.channelID)){
                    makeRowsInTable2(ovoj_kanal.channelID,ovoj_kanal_red, "dokumentarni");
                    }
                   makeRowsInTable2(ovoj_kanal.channelID,ovoj_kanal_red, "site");
                  
                  }// za if sega>=
                   
                }//za while
       }//za if(ovoj_kanal.rowData)
        
   // a="a";
   //else {
   //if(document.getElementById("r" + ovoj_kanal.channelID)!=null){
   //document.getElementById("r" + ovoj_kanal.channelID).style.display="none";
   //var parent=document.getElementById("r" + ovoj_kanal.channelID).parent;
   //document.getElementById("tab1").deleteRow("r" + ovoj_kanal.channelID);
   //}
   //}
   
     }//za for 

}
function HowManyMinutesLeft(DatumVreme, idcontrol){
var diff=makeDateTimeFromString2(DatumVreme)-new Date();
var minuti=Math.round(diff/60000); //60 000 posto e vo milisekundi
document.getElementById(idcontrol).innerHTML="";
document.getElementById(idcontrol).innerHTML="уште " + minuti + " мин.";
//window.setInterval('HowManyMinutesLeft("' + DatumVreme +'", "' + idcontrol+ ' ")', 5000);
//window.setInterval('LoadFile();', 30000);
return minuti;
}
//LoadFile();

Date.getMonthNumberFromName=function(name){var n=Date.CultureInfo.monthNames,m=Date.CultureInfo.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
return-1;};Date.getDayNumberFromName=function(name){var n=Date.CultureInfo.dayNames,m=Date.CultureInfo.abbreviatedDayNames,o=Date.CultureInfo.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
return-1;};Date.isLeapYear=function(year){return(((year%4===0)&&(year%100!==0))||(year%400===0));};Date.getDaysInMonth=function(year,month){return[31,(Date.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};Date.getTimezoneOffset=function(s,dst){return(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST[s.toUpperCase()]:Date.CultureInfo.abbreviatedTimeZoneStandard[s.toUpperCase()];};Date.getTimezoneAbbreviation=function(offset,dst){var n=(dst||false)?Date.CultureInfo.abbreviatedTimeZoneDST:Date.CultureInfo.abbreviatedTimeZoneStandard,p;for(p in n){if(n[p]===offset){return p;}}
return null;};Date.prototype.clone=function(){return new Date(this.getTime());};Date.prototype.compareTo=function(date){if(isNaN(this)){throw new Error(this);}
if(date instanceof Date&&!isNaN(date)){return(this>date)?1:(this<date)?-1:0;}else{throw new TypeError(date);}};Date.prototype.equals=function(date){return(this.compareTo(date)===0);};Date.prototype.between=function(start,end){var t=this.getTime();return t>=start.getTime()&&t<=end.getTime();};Date.prototype.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};Date.prototype.addSeconds=function(value){return this.addMilliseconds(value*1000);};Date.prototype.addMinutes=function(value){return this.addMilliseconds(value*60000);};Date.prototype.addHours=function(value){return this.addMilliseconds(value*3600000);};Date.prototype.addDays=function(value){return this.addMilliseconds(value*86400000);};Date.prototype.addWeeks=function(value){return this.addMilliseconds(value*604800000);};Date.prototype.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,this.getDaysInMonth()));return this;};Date.prototype.addYears=function(value){return this.addMonths(value*12);};Date.prototype.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
var x=config;if(x.millisecond||x.milliseconds){this.addMilliseconds(x.millisecond||x.milliseconds);}
if(x.second||x.seconds){this.addSeconds(x.second||x.seconds);}
if(x.minute||x.minutes){this.addMinutes(x.minute||x.minutes);}
if(x.hour||x.hours){this.addHours(x.hour||x.hours);}
if(x.month||x.months){this.addMonths(x.month||x.months);}
if(x.year||x.years){this.addYears(x.year||x.years);}
if(x.day||x.days){this.addDays(x.day||x.days);}
return this;};Date._validate=function(value,min,max,name){if(typeof value!="number"){throw new TypeError(value+" is not a Number.");}else if(value<min||value>max){throw new RangeError(value+" is not a valid value for "+name+".");}
return true;};Date.validateMillisecond=function(n){return Date._validate(n,0,999,"milliseconds");};Date.validateSecond=function(n){return Date._validate(n,0,59,"seconds");};Date.validateMinute=function(n){return Date._validate(n,0,59,"minutes");};Date.validateHour=function(n){return Date._validate(n,0,23,"hours");};Date.validateDay=function(n,year,month){return Date._validate(n,1,Date.getDaysInMonth(year,month),"days");};Date.validateMonth=function(n){return Date._validate(n,0,11,"months");};Date.validateYear=function(n){return Date._validate(n,1,9999,"seconds");};Date.prototype.set=function(config){var x=config;if(!x.millisecond&&x.millisecond!==0){x.millisecond=-1;}
if(!x.second&&x.second!==0){x.second=-1;}
if(!x.minute&&x.minute!==0){x.minute=-1;}
if(!x.hour&&x.hour!==0){x.hour=-1;}
if(!x.day&&x.day!==0){x.day=-1;}
if(!x.month&&x.month!==0){x.month=-1;}
if(!x.year&&x.year!==0){x.year=-1;}
if(x.millisecond!=-1&&Date.validateMillisecond(x.millisecond)){this.addMilliseconds(x.millisecond-this.getMilliseconds());}
if(x.second!=-1&&Date.validateSecond(x.second)){this.addSeconds(x.second-this.getSeconds());}
if(x.minute!=-1&&Date.validateMinute(x.minute)){this.addMinutes(x.minute-this.getMinutes());}
if(x.hour!=-1&&Date.validateHour(x.hour)){this.addHours(x.hour-this.getHours());}
if(x.month!==-1&&Date.validateMonth(x.month)){this.addMonths(x.month-this.getMonth());}
if(x.year!=-1&&Date.validateYear(x.year)){this.addYears(x.year-this.getFullYear());}
if(x.day!=-1&&Date.validateDay(x.day,this.getFullYear(),this.getMonth())){this.addDays(x.day-this.getDate());}
if(x.timezone){this.setTimezone(x.timezone);}
if(x.timezoneOffset){this.setTimezoneOffset(x.timezoneOffset);}
return this;};Date.prototype.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};Date.prototype.isLeapYear=function(){var y=this.getFullYear();return(((y%4===0)&&(y%100!==0))||(y%400===0));};Date.prototype.isWeekday=function(){return!(this.is().sat()||this.is().sun());};Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth());};Date.prototype.moveToFirstDayOfMonth=function(){return this.set({day:1});};Date.prototype.moveToLastDayOfMonth=function(){return this.set({day:this.getDaysInMonth()});};Date.prototype.moveToDayOfWeek=function(day,orient){var diff=(day-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};Date.prototype.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};Date.prototype.getDayOfYear=function(){return Math.floor((this-new Date(this.getFullYear(),0,1))/86400000);};Date.prototype.getWeekOfYear=function(firstDayOfWeek){var y=this.getFullYear(),m=this.getMonth(),d=this.getDate();var dow=firstDayOfWeek||Date.CultureInfo.firstDayOfWeek;var offset=7+1-new Date(y,0,1).getDay();if(offset==8){offset=1;}
var daynum=((Date.UTC(y,m,d,0,0,0)-Date.UTC(y,0,1,0,0,0))/86400000)+1;var w=Math.floor((daynum-offset+7)/7);if(w===dow){y--;var prevOffset=7+1-new Date(y,0,1).getDay();if(prevOffset==2||prevOffset==8){w=53;}else{w=52;}}
return w;};Date.prototype.isDST=function(){console.log('isDST');return this.toString().match(/(E|C|M|P)(S|D)T/)[2]=="D";};Date.prototype.getTimezone=function(){return Date.getTimezoneAbbreviation(this.getUTCOffset,this.isDST());};Date.prototype.setTimezoneOffset=function(s){var here=this.getTimezoneOffset(),there=Number(s)*-6/10;this.addMinutes(there-here);return this;};Date.prototype.setTimezone=function(s){return this.setTimezoneOffset(Date.getTimezoneOffset(s));};Date.prototype.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r[0]+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};Date.prototype.getDayName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedDayNames[this.getDay()]:Date.CultureInfo.dayNames[this.getDay()];};Date.prototype.getMonthName=function(abbrev){return abbrev?Date.CultureInfo.abbreviatedMonthNames[this.getMonth()]:Date.CultureInfo.monthNames[this.getMonth()];};Date.prototype._toString=Date.prototype.toString;Date.prototype.toString=function(format){var self=this;var p=function p(s){return(s.toString().length==1)?"0"+s:s;};return format?format.replace(/dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?/g,function(format){switch(format){case"hh":return p(self.getHours()<13?self.getHours():(self.getHours()-12));case"h":return self.getHours()<13?self.getHours():(self.getHours()-12);case"HH":return p(self.getHours());case"H":return self.getHours();case"mm":return p(self.getMinutes());case"m":return self.getMinutes();case"ss":return p(self.getSeconds());case"s":return self.getSeconds();case"yyyy":return self.getFullYear();case"yy":return self.getFullYear().toString().substring(2,4);case"dddd":return self.getDayName();case"ddd":return self.getDayName(true);case"dd":return p(self.getDate());case"d":return self.getDate().toString();case"MMMM":return self.getMonthName();case"MMM":return self.getMonthName(true);case"MM":return p((self.getMonth()+1));case"M":return self.getMonth()+1;case"t":return self.getHours()<12?Date.CultureInfo.amDesignator.substring(0,1):Date.CultureInfo.pmDesignator.substring(0,1);case"tt":return self.getHours()<12?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;case"zzz":case"zz":case"z":return"";}}):this._toString();};

TimeSpan=function(days,hours,minutes,seconds,milliseconds){this.days=0;this.hours=0;this.minutes=0;this.seconds=0;this.milliseconds=0;if(arguments.length==5){this.days=days;this.hours=hours;this.minutes=minutes;this.seconds=seconds;this.milliseconds=milliseconds;}
else if(arguments.length==1&&typeof days=="number"){var orient=(days<0)?-1:+1;this.milliseconds=Math.abs(days);this.days=Math.floor(this.milliseconds/(24*60*60*1000))*orient;this.milliseconds=this.milliseconds%(24*60*60*1000);this.hours=Math.floor(this.milliseconds/(60*60*1000))*orient;this.milliseconds=this.milliseconds%(60*60*1000);this.minutes=Math.floor(this.milliseconds/(60*1000))*orient;this.milliseconds=this.milliseconds%(60*1000);this.seconds=Math.floor(this.milliseconds/1000)*orient;this.milliseconds=this.milliseconds%1000;this.milliseconds=this.milliseconds*orient;return this;}
else{return null;}};TimeSpan.prototype.compare=function(timeSpan){var t1=new Date(1970,1,1,this.hours(),this.minutes(),this.seconds()),t2;if(timeSpan===null){t2=new Date(1970,1,1,0,0,0);}
else{t2=new Date(1970,1,1,timeSpan.hours(),timeSpan.minutes(),timeSpan.seconds());}
return(t1>t2)?1:(t1<t2)?-1:0;};TimeSpan.prototype.add=function(timeSpan){return(timeSpan===null)?this:this.addSeconds(timeSpan.getTotalMilliseconds()/1000);};TimeSpan.prototype.subtract=function(timeSpan){return(timeSpan===null)?this:this.addSeconds(-timeSpan.getTotalMilliseconds()/1000);};TimeSpan.prototype.addDays=function(n){return new TimeSpan(this.getTotalMilliseconds()+(n*24*60*60*1000));};TimeSpan.prototype.addHours=function(n){return new TimeSpan(this.getTotalMilliseconds()+(n*60*60*1000));};TimeSpan.prototype.addMinutes=function(n){return new TimeSpan(this.getTotalMilliseconds()+(n*60*1000));};TimeSpan.prototype.addSeconds=function(n){return new TimeSpan(this.getTotalMilliseconds()+(n*1000));};TimeSpan.prototype.addMilliseconds=function(n){return new TimeSpan(this.getTotalMilliseconds()+n);};TimeSpan.prototype.getTotalMilliseconds=function(){return(this.days()*(24*60*60*1000))+(this.hours()*(60*60*1000))+(this.minutes()*(60*1000))+(this.seconds()*(1000));};TimeSpan.prototype.get12HourHour=function(){return((h=this.hours()%12)?h:12);};TimeSpan.prototype.getDesignator=function(){return(this.hours()<12)?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;};TimeSpan.prototype.toString=function(format){function _toString(){if(this.days()!==null&&this.days()>0){return this.days()+"."+this.hours()+":"+p(this.minutes())+":"+p(this.seconds());}
else{return this.hours()+":"+p(this.minutes())+":"+p(this.seconds());}}
function p(s){return(s.toString().length<2)?"0"+s:s;}
var self=this;return format?format.replace(/d|dd|HH|H|hh|h|mm|m|ss|s|tt|t/g,function(format){switch(format){case"d":return self.days();case"dd":return p(self.days());case"H":return self.hours();case"HH":return p(self.hours());case"h":return self.get12HourHour();case"hh":return p(self.get12HourHour());case"m":return self.minutes();case"mm":return p(self.minutes());case"s":return self.seconds();case"ss":return p(self.seconds());case"t":return((this.hours()<12)?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator).substring(0,1);case"tt":return(this.hours()<12)?Date.CultureInfo.amDesignator:Date.CultureInfo.pmDesignator;}}):this._toString();};var TimePeriod=function(years,months,days,hours,minutes,seconds,milliseconds){this.years=0;this.months=0;this.days=0;this.hours=0;this.minutes=0;this.seconds=0;this.milliseconds=0;if(arguments.length==2&&arguments[0]instanceof Date&&arguments[1]instanceof Date){var date1=years.clone();var date2=months.clone();var temp=date1.clone();var orient=(date1>date2)?-1:+1;this.years=date2.getFullYear()-date1.getFullYear();temp.addYears(this.years);if(orient==+1){if(temp>date2){if(this.years!==0){this.years--;}}}else{if(temp<date2){if(this.years!==0){this.years++;}}}
date1.addYears(this.years);if(orient==+1){while(date1<date2&&date1.clone().addDays(date1.getDaysInMonth())<date2){date1.addMonths(1);this.months++;}}
else{while(date1>date2&&date1.clone().addDays(-date1.getDaysInMonth())>date2){date1.addMonths(-1);this.months--;}}
var diff=date2-date1;if(diff!==0){var ts=new TimeSpan(diff);this.days=ts.days;this.hours=ts.hours;this.minutes=ts.minutes;this.seconds=ts.seconds;this.milliseconds=ts.milliseconds;}
return this;}};

if(typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();