/* ================================================================================

   WRAPPER RADIO DRS - WEBPLAYER
   uebergibt SRDRS-Player die Argumente als URL-Parameter

   Parameter:
    sg     - sg id aus dem EPG
    sh     - sh id aus dem EPG
    stream - Radioprogramm; eins aus drs1|drs2|drs3|drs4|drsmusikwelle|virus|rsc_de|rsj|rsp oder select
    design - design variable aus CMS
    title  - titel
    type   - Playertyp: embed|inline|popup
    skin   - Skin-Name des Players: srdrs|kinderradio
    click  - extension fuer Kinderradio
    forceplayer - bestimmtes Plugin erzwingen

   ================================================================================
*/

// -----------------------------------------------------------------------------
// VARIABLEN
// -----------------------------------------------------------------------------
    var bIsKinderradio;
    var iWindowHeight=620;
    var aParams=new Array("sg", "sh", "stream", "design", "title", "type", "click", "forceplayer");
    var sPlayername='srdrsplayer';
    var sPlayerId='divsrdrsinlineplayer'; 
    var aSkins={
        popup_srdrs: 'radio.php',
        popup_kinderradio: 'kinderradio.php',
        inline_srdrs: 'player-inline.php'
    }

    var oPopup=false;// Popup-Player-Fenster

// -----------------------------------------------------------------------------
    Radio = function() {
        this.sPlayingUrl=false;
        this.sLinkClass=false;
        this.oLink=false;
        return false;
    }

// -----------------------------------------------------------------------------

    /**
     * schliesst
     * - inline Player
     * - Popup-Player (wenn das gewuenschte Audio inline ist)
     * @return wird gerade dasselbe Audio abgespielt, wie soeben im Link angeklickt?
     * @type boolean 
     */
    Radio.closeAll = function(sPlayerType) {
        var oPlayerDiv=document.getElementById(sPlayerId); if(oPlayerDiv && this.oLink) this.oLink.removeChild(oPlayerDiv);
        if(sPlayerType=='inline' && oPopup) oPopup.close();
        if (this.oLink) this.oLink.className=this.sLinkClass+"";
        
        bReturn=false;

        // wurde dasselbe Audio angeklickt, wie aktuell abgespielt?
        if (Radio.open.arguments && Radio.open.arguments[0] && this.oLink==Radio.open.arguments[0]) bReturn=true;
        if(sPlayerType=='popup') bReturn=false;

        this.sPlayingUrl=false;
        this.sLinkClass=false;
        this.oLink=false;

        return bReturn;
    }
    
// -----------------------------------------------------------------------------

    /**
     * Bei Abbruch im Inline Player kommt man hierher
     * Es wird der angeklickte Link umgeschrieben und das Audio nochmals im
     * Popup Player geöffnet.
     */
    Radio.showError = function(sMsg) {
        var tmpLink=this.oLink;
        Radio.closeAll();

        // CSS class von inline auf normales hoeren setzen
        tmpLink.className="beitrag_hoeren";

        // reset onclick value im link
        var s=tmpLink.getAttribute('onclick');
        s=s.replace(/\'inline\'/, "'popup'");
        tmpLink.setAttribute('onclick', s);
        return Radio.open(tmpLink.getAttribute('href'));
    }
// -----------------------------------------------------------------------------

    Radio.open = function() {
        if (!Radio.open.arguments) return false;
        
        var sUrl;
        var sParams;
        var PlayerType='popup';
        var PlayerSkin='srdrs';
        var iWindowHeight=620;
        var sPlayerPath="/lib/player/";

        sParams = "?audiourl=" + encodeURIComponent(Radio.open.arguments[0]);
        if (Radio.open.arguments[1]) {
          for (i in aParams) if (Radio.open.arguments[1][aParams[i]])     sParams += "&"+aParams[i]+"=" + Radio.open.arguments[1][aParams[i]];
        }

        if (Radio.open.arguments[1] && Radio.open.arguments[1]['type']) PlayerType=Radio.open.arguments[1]['type'];
        if (Radio.open.arguments[1] && Radio.open.arguments[1]['skin']) PlayerSkin=Radio.open.arguments[1]['skin'];

        sParams += "&type="+PlayerType;
        sParams += "&skin="+PlayerSkin;

        // Url des Player zusammenbauen
        // Popup immer von www.drs.ch nehmen (wg. Cookies)
        sUrl = "http://www.drs.ch" + sPlayerPath;
        if (
            window.location.hostname.indexOf(".test.drs")
            + window.location.hostname.indexOf("stage.drs")
            + window.location.hostname.indexOf(".ch.local")
            >0
        ) sUrl = sPlayerPath;
        if (bIsKinderradio) {
            sUrl = "http://www.drs.ch" + sPlayerPath;
            PlayerSkin='kinderradio';
        }

        // Inline immer von der eigenen Domain holen (wg. CDR - CMS-3061)
        if (PlayerType=='inline') sUrl=sPlayerPath;

        // embed ist fuer ext. Seiten - immer via www.drs.ch
        if (PlayerType=='embed') {
            PlayerType='inline';
            sUrl = "http://www.drs.ch" + sPlayerPath;
        }


        sUrl+=aSkins[PlayerType+"_"+PlayerSkin] + sParams;

        // wurde derselbe Link nochmal geklickt? dann abbrechen
        if (Radio.closeAll(PlayerType)) return false;

        // Einstellung des Links von vor dem Abspielen merken:
        this.oLink=Radio.open.arguments[0];
        this.sPlayingUrl=sUrl;
        this.sLinkClass=this.oLink.className;
            
        switch (PlayerType){
            case "popup":
                if (bIsKinderradio) iWindowHeight=340;
                var sWindowsOptions='width=420,height='+iWindowHeight+',toolbar=0,directories=0,menubar=0,status=0,resizable=1,location=0,scrollbars=0,copyhistory=0';
                oPopup = window.open(sUrl, sPlayername, sWindowsOptions);
                oPopup.focus();
                break;
            case "inline":

                // Klasse beim Link anhaengen
                this.oLink.className=this.oLink.className + " isplaying";

                oPlayerDiv=document.createElement("div");
                oPlayerDiv.setAttribute('id',sPlayerId);
                // oPlayerDiv.setAttribute('style', 'left: '+(this.oLink.offsetLeft+16)+'px; ');
                oPlayerDiv.setAttribute('style', 'left: -3000px; ');
                oPlayerDiv.innerHTML='<iframe src="'+sUrl+'" scrolling="no" frameborder="0" style="width: 100%; height: 100%;"></iframe>';
                this.oLink.appendChild(oPlayerDiv);
                oPopup=false;
                break;
        }

    return false;
    }
// ----------------------------------------------------------------------

