<?xml version="1.0" encoding="UTF-8"?>
<Module>

<ModulePrefs
  title="SlideShowTV"
  author="Ivan Kutil"
  title_url="http://gadgets.codeasi.net/slideshowtv/"
  author_email="codeasi+gadget@gmail.com"
  author_link="http://codeasi.blogspot.com"
  author_location="Prague, Czech republic" 
  height="210"
  width="300"
  description="Podivejte se co davaji v televi. Kdykoliv, kdekoliv a zdarma. Nova verze poskytuje nahledy vysilanych programu z vice 
  20 ceskych a zahranicnich TV stanic.Vse je doplneno o televizni program s anotaci. Dekuji spolecnosti UPC a Seznam.cz za poskytnuti podkladu."
  thumbnail="http://gadgets.codeasi.net/slideshowtv/thumb.png"
  screenshot="http://gadgets.codeasi.net/slideshowtv/screen.png">

<Locale lang="cs" country="CZ"/>
<Require feature="analytics"/>
</ModulePrefs>



<UserPref name="stanice_pref" display_name="Jako pocatecni stanici chci zobrazit" default_value="0" datatype="enum">
<EnumValue value="0" display_value="CT1"/>
<EnumValue value="1" display_value="CT2"/>
<EnumValue value="2" display_value="Nova"/>
<EnumValue value="3" display_value="Prima"/>
<EnumValue value="4" display_value="HBO"/>

<EnumValue value="5" display_value="HBO2"/>
<EnumValue value="6" display_value="Markiza"/>
<EnumValue value="7" display_value="AXN"/>
<EnumValue value="8" display_value="MGM"/>
<EnumValue value="9" display_value="ČT24"/>

<EnumValue value="10" display_value="ČT4 Sport"/>
<EnumValue value="11" display_value="Hallmark"/>
<EnumValue value="12" display_value="Spektrum"/>
<EnumValue value="13" display_value="Discovery"/>
<EnumValue value="14" display_value="National Geographic"/>

<EnumValue value="15" display_value="Jetix"/>
<EnumValue value="16" display_value="Minimax"/>
<EnumValue value="17" display_value="Film+"/>
<EnumValue value="18" display_value="ÓČKO TV"/>
<EnumValue value="19" display_value="MTV"/>


</UserPref>



<Content type="html"><![CDATA[

<style type="text/css">
#cont {
margin: 0px;
background-color: black;
display: block;
text-align: center;
position: relative;
width: 100%;
height: 100%;
}

#vyber {
position: absolute;
top: 0px;
right: 0px;
font-size: 13px;
background-color: black;
color: white;
font-weight: 800;
-opacity: .7;
-filter: alpha(opacity=70);
border: 0px solid #151515;
padding: 5px;
width: 80px;
}

#vyber option {
font-size: 11px;
background-color: white;
color: black;
font-weight: 300;
}


#left {
position: absolute;
top: 50px;
left: 0px;
}

#right {
position: absolute;
top: 50px;
right: 0px;
}

#popis {
    position: absolute;
    top: 18px;
    left: 45px;
    color: white;
    font-size: 11px;
    display: block;
    width: 180px;
    height: 100px;
    font-family: Arial;
    overflow: auto;
    background-color: black;
    padding: 15px;
    border: 1px solid #cccccc;
    text-align: left;
    

}

#info {
    position: absolute;
    bottom: -10px;
    left: 1px;
    font-family: arial;
    color: white;
    font-size: 12px;
    text-decoration: none;
    cursor: hand;
}


#odp {
    position: absolute;
    bottom: -50px;
    right: 0px;
    color: white;
    font-family: arial;
    font-size: 40px;
    font-weight: 900;
    opacity: .25;
    filter: alpha(opacity=25);
}

#loader {
position: absolute;
top: 80px;
left: 140px;
}

a img {
    border-style: none;
}

#onas {
    font-family: Arial;
    text-align: left;
    position: absolute;
    color: black;
    background-color: white;
    font-size: 13px;
    display: block;
    height: 160px;
    z-index: 0;
    top: -165px;
    left: 0px;
    padding: 5px 5px 0px 5px;
    background-image: url(http://gadgets.codeasi.net/slideshowtv/sstv/pruh.jpg);
    border-bottom: solid 3px #0b150c;
}


#onas #pruh {
    position: absolute;
    bottom: 0px;
    width: 100%;
    height: 30px;
    left: 0px;
    -background-color: green;
}

#onas #pruh > a{
    -margin-left: 15px;
    -background-color: red;
    display: block;
    height: 20px;
    width: 20px;
    z-index:2;
    margin-left: 20px;
    position: relative;
    top: 30px;
}


</style>

 <!--[if IE ]><link rel="stylesheet" type="text/css" href="http://gadgets.codeasi.net/slideshowtv/sstv/ie.css"><![endif]-->


<script type="text/javascript" src="http://www.json.org/json_parse.js"></script>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js"></script>

<script type="text/javascript">

_IG_Analytics("UA-5216535-1", "/SlideShow TV");

var nastaveni = new _IG_Prefs();
_IG_RegisterOnloadHandler(start);


function program(jmeno,dkm,tv) {
    this.jmeno = jmeno;
    this.dkm = dkm;
    this.tv = tv;
};


var sada = new Array(
    new program("Česká televize 1", "ct1", "1"),
    new program("Česká televize 2", "ct2", "2"),
    new program("Nova", "nova", "3"),
    new program("Prima", "prima", "4"),
    new program("HBO", "hbo", "5"),
    new program("HBO 2", "hbo2", "6"),
    new program("Markiza", "markiza", "35"),
    new program("Axn", "axn", "9"),
    new program("MGM", "mgm", "56"),
    new program("ČT 24", "ct24", "24"),
    new program("ČT 4 Sport", "ct4sport", "18"),
    new program("Hallmark", "hallmark", "8"),
    new program("Spektrum TV", "spektrum", "10"),
    new program("Discovery", "discovery", "12"),
    new program("National Geographic", "nat", "21"),
    new program("Jetix", "jetix", "31"),
    new program("Minimax", "minimax", "32"),
    new program("Film+", "filmplus", "63"),
    new program("ÓČKO TV", "ocko", "19"),
    new program("MTV", "mtveuro", "20")
);



var gadget = {
    _width : _args()["w"],
    _height : _args()["h"],

    sirka: function() {
        if (typeof this._width == "undefined") return 320;
         return this._width;
    },

    vyska: function() {
        if (typeof this._height == "undefined") return 200;
        return this._height;
    }
}




var televize = {
    kanal: 0,
    url: "",
    proxy: "",

    init: function() {
        this.kanal = parseFloat(nastaveni.getString("stanice_pref"));
        _gel("vyber").selectedIndex = this.kanal;
        
    },

    down: function() {
        if (this.kanal <= 0) this.kanal = sada.length;
        this.kanal--;
        _gel("vyber").selectedIndex = this.kanal;
    },

    up: function() {
        if (this.kanal >= sada.length-1) this.kanal = -1;
        this.kanal++;
        _gel("vyber").selectedIndex = this.kanal;
    },

    sel: function(para) {
        this.kanal = _gel("vyber").selectedIndex;
        this.update();
    },

    update: function() {
        this.url = "http://grab.dkm.cz/"+sada[this.kanal].dkm+".b.jpeg?"+datum.znacka();
        this.proxy = _IG_GetCachedUrl(this.url, {refreshInterval:120});
        _gel("obr").setAttribute("src",this.proxy);
        $("#loader").show();
        format.bezi();
    },

    chyba: function() {
        this.url =  "http://grab.dkm.cz/test.b.jpeg";
        _gel("obr").setAttribute("src",this.url);
    }

}


var stopky = {
    cas: 0,
    delka: 120,

    init: function() {
        this.cas = this.delka;
    },

    odecti: function() {
        this.cas--;
        _gel("odp").innerHTML = this.cas;

        if (this.cas <= 0) {
            televize.update();
            this.init();
        }

    }

}




var datum = {
   od: 0,
   az: 0,
   datum: 0,
   hod: 0,
   min: 0,
   start_cas: 0,
   end_cas: 0,

   znacka: function() {
       this.datum = new Date();
       this.hod = this.datum.getHours();
       this.min = this.datum.getMinutes();
       if (this.min % 2 == 0) this.min--;
       return ""+this.hod+this.min;
   },

   ted: function() {
       return Math.floor(new Date().getTime()/1000);
   },

   konvert: function() {
       this.start_cas = Math.floor(this.start_cas.getTime()/1000);
       this.end_cas = Math.floor(this.end_cas.getTime()/1000);
   },

   url: function(){
       return "&start=" +this.start_cas+ "&end="+ this.end_cas;
   },

   pasma: function() {
       this.start_cas = new Date();
       this.end_cas = new Date();

       if (this.start_cas.getHours() < 12) {
         this.start_cas = new Date(this.start_cas.valueOf() - 1000 * 60 * 60 * 24);
         this.start_cas.setHours(22, 0, 0, 0);
         this.end_cas.setHours(11, 59, 59, 0);


       } else if (this.start_cas.getHours() >= 20) {
         this.start_cas.setHours(18, 0, 0, 0);
         this.end_cas.setHours(23, 59, 59, 0);

       } else {
         this.start_cas.setHours(10, 0, 0, 0);
         this.end_cas.setHours(19, 59, 59, 0);
       }

       this.konvert();

    }

}



function cas(para) {
       var jede = new Date(para*1000);

       if (jede.getMinutes() < 10) {
       var minuty = ""+ 0 +jede.getMinutes();
       }else {
       var minuty = jede.getMinutes();
       }

       return ""+ jede.getHours() +":"+ minuty;

}



var seznamCZ = {
    api_key: "b4466499b5508cf8145d88b19799bab0",
    login: "codeas@seznam.cz",
    site: "http://gadgets.codeasi.net/",
    url: "http://tv.seznam.cz/listProgrammes?channels=",
    dostanu: "",
    completed: "",

    add: function(para) {
        this.completed = "";
        for (var i=0;i < 5; i++) {
        this.completed += sada[i+para].tv +",";
        }
        this.completed = this.completed.slice(0,-1);
        this.completed = this.url + this.completed + datum.url();
        return this.completed;
    }

}


var format = {
out: "",

    bezi: function() {

        if (sada[televize.kanal].popis!="")  {
                this.out = "<img src='http://gadgets.codeasi.net/slideshowtv/sstv/green.gif' />";
        }else{
                this.out = "<img src='http://gadgets.codeasi.net/slideshowtv/sstv/blue.gif' />";
        }

        this.out += cas(sada[televize.kanal].start) +"-"+ sada[televize.kanal].nazev;

        $("#info").html(this.out);

        $("#popis").text(sada[televize.kanal].popis);
    }
}


function mining(para) {
    this.od1 = para;

    this.parse = function() {
        _IG_FetchContent(seznamCZ.add(this.od1), _IG_Callback(this.callback, this.od1), { refreshInterval: (60 * 60 * 6) });
    }

    this.callback = function(responseText, odkud) {

        this.dostanu = responseText;
        var seznam = eval("(" + responseText + ")");

        try {
            for (var p = 0; p < 5; p++) {
                this.posun = odkud + p;
                log.a("<b>"+sada[posun].jmeno+"</b>");
                var i = 0;
                while (seznam[p]['programs'][i]['end'] < datum.ted() ) {
                    i++;
                }

                sada[posun].nazev = seznam[p]['programs'][i]['name'];
                sada[posun].popis = seznam[p]['programs'][i]['shortDescription'];
                sada[posun].start = seznam[p]['programs'][i]['start'];
                sada[posun].end = seznam[p]['programs'][i]['end'];

                log.a(sada[posun].nazev +":"+ sada[posun].popis );
                //log.a(datum.cas(sada[posun].start) +"->"+ datum.cas(sada[posun].end));
                log.a(sada[posun].start +"->"+ sada[posun].end);
                log.a("<u>"+cas(seznam[p]['programs'][i]['start'])+"</u>");

            }

        }catch(err) {
            //log.a(err);
            //log.r();
        }
        //log.a("<hr>");
        //log.r();
    }

}




var programek = {
    init: function() {
        datum.pasma();
        var m1 = new mining(0);
        m1.parse();
        var m2 = new mining(5);
        m2.parse();
        var m3 = new mining(10);
        m3.parse();
        var m4 = new mining(15);
        m4.parse();
        
    }
}



function start() {
    televize.init();
    stopky.init();
    programek.init();
    window.setTimeout("televize.update()",500); 
}


window.setInterval("stopky.odecti()",1000);




var log = {
    output: "",

    a: function(para) {
        this.output += para + "<br/>";
    },

    r: function() {
        if (this.outpu != "") {
            okon = window.open("", "LogWindow");
            okon.document.write(this.output);
        }
    }

}





$(function() {

if ( (gadget.sirka() / gadget.vyska()) > (384 / 288) ) {
        pomerna_velikost = ( 384 / 288 ) * gadget.vyska();
        $('#obr').width(pomerna_velikost).height(gadget.vyska());
}else{
        pomerna_velikost = ( 288 / 384 ) * gadget.sirka();
        $('#obr').width(gadget.sirka()).height(pomerna_velikost);
        }



$("#doleva").click(function() {
    televize.down();
    televize.update();
});

$("#doprava").click(function() {
    televize.up();
    televize.update();
});


$("#vyber").change(function() {
    televize.sel();
});

$("#obr").load(function() {
     $("#loader").hide();
});


$("#odp").click(function() {
    $("#loader").hide();
});


$("#roll").toggle(
function() {
    offset_css = $("#onas").css("top").slice(0,4);
    $("#onas").animate({"top" : '0'}, 300);
    $("#onas").css("z-index" , '5');
    $("#roll > img").attr("src" , 'http://gadgets.codeasi.net/slideshowtv/sstv/roll_up.png');
},function() { 
    $("#onas").animate({"top" : offset_css}, 300);
    $("#onas").css("z-index" , '0');
    $("#roll > img").attr("src" , 'http://gadgets.codeasi.net/slideshowtv/sstv/roll_dw.png');
});

$("#roll > img").hover("src" , 'http://gadgets.codeasi.net/slideshowtv/sstv/roll_up.png');

$("#vyber").fadeTo(50, 0.4);
$(".navig").fadeTo(50, 0.2);
$("#popis").hide();


$("#vyber").hover(function() {
    $(this).stop().fadeTo(100, 1);
    },function() {
    $(this).stop().fadeTo(100, 0.4);
});


$("#info").toggle(function() {
    $("#popis").show();
    },function() {
    $("#popis").hide();
});


$(".navig").hover(function() {
    $(this).stop().fadeTo(200, 1);
    },function() {
    $(this).stop().fadeTo(200, 0.2);
});


});



</script>



<div id="cont">

<div id="onas">
<strong>Děkuji firmě <a href="http://www.upc.cz" target="_blank">UPC</a> za poskytování obrazových podkladů
a portálu <a href="http://www.seznam.cz" target="_blank">seznam.cz</a> za textové informace.</strong><br /><br/>
Screenshoty jsou automatick aktualizovany kazde 2 minuty.<br />
Vytvořil <em>Ivan Kutil</em> // <a href="http://codeasi.blogspot.com" target="_blank">blog autora</a> // <a href="mailto:codeasi+gadget@gmail.com">codeasi@gmail.com</a><br />
<code>built 2009-03-08</code>

<div id="pruh">
<a href="#" id="roll"><img src="http://gadgets.codeasi.net/slideshowtv/sstv/roll_dw.png" /></a>
</div>



</div>

<img src="http://gadgets.codeasi.net/slideshowtv/sstv/ajax-loader.gif" id="loader" />
<a href="#" id="doleva" ><img id="left" class="navig" src="http://gadgets.codeasi.net/slideshowtv/sstv/left4.png" /></a>
<a href="#" id="doprava" ><img id="right" class="navig" src="http://gadgets.codeasi.net/slideshowtv/sstv/right4.png" /></a>

<p id="info">_co davaji:</p>
<p id="popis">_popis</p>

<p id="odp">_odp</p>


<select id="vyber" >
<option value="0">&#268;T1</option>
<option value="1">&#268;T2</option>
<option value="2">Nova</option>
<option value="3">Prima</option>
<option value="4">HBO</option>
<option value="5">HBO2</option>
<option value="6">Markiza</option>
<option value="7">AXN</option>
<option value="8">MGM</option>
<option value="9">&#268;T24</option>
<option value="10">&#268;T4 Sport</option>
<option value="11">Hallmark</option>
<option value="12">Spektrum</option>
<option value="13">Discovery</option>
<option value="14">National Geog.</option>
<option value="15">Jetix</option>
<option value="16">Minimax</option>
<option value="17">Film+</option>
<option value="18">ÓČKO TV</option>
<option value="19">MTV</option>
</select>


<img id="obr" src="" onerror="televize.chyba();" />

</div>

]]></Content>
</Module>