/**
* toggle boxes visibility
* @param toggleImage The id of the image calling this function
* @param toggleContent The id of the content to be toggled
**/
function toggleContent( toggleImage, toggleContent ) {

    var iconPlusURL     = '/gfx/shows/toggle_plus.gif';
    var iconMinusURL    = '/gfx/shows/toggle_minus.gif';
    
    var otoggleImage    = document.getElementById(toggleImage);
    var otoggleContent  = document.getElementById(toggleContent);

    if( otoggleImage.src.indexOf('_plus') != -1 ) {

        otoggleImage.src = iconMinusURL;
        otoggleContent.style.display = 'block';

    } else {

        otoggleImage.src = iconPlusURL;
        otoggleContent.style.display = 'none';
    }
}


/**
* retreives the current show onair
* @returns none
**/
function refreshOnAirShow() {

    var xmlHTTP     = getXMLHttpObject();

    var showOnAirTimes          = document.getElementById('showOnAirTimes');
    var showOnAirTitle          = document.getElementById('showOnAirTitle');
    var showOnAirDescription    = document.getElementById('showOnAirDescription');
    
    xmlHTTP.onreadystatechange = function() {

        if( xmlHTTP.readyState == 4) {

            try {

                var strResponse = xmlHTTP.responseText;
                var oJSON       = eval('('+strResponse+')');
                
            } catch( e ) {

                return false;
            }
            
            
            if( oJSON != '' ) {

                // set show title
                showOnAirTitle.href         = '/shows/'+oJSON.startCrypted+'/';
                showOnAirTitle.innerHTML    = oJSON.title;

                // set description
                showOnAirDescription.innerHTML  = oJSON.description;

                // set onair times
                var oDateStart  = new Date((oJSON.startTime*1000));
                var oDateEnd  = new Date((oJSON.endTime*1000));

                showOnAirTimes.innerHTML    = str_pad(oDateStart.getHours(),2,0,'STR_PAD_LEFT')+':'+str_pad(oDateStart.getMinutes(),2,0,'STR_PAD_LEFT')
                                            + ' - '+str_pad(oDateEnd.getHours(),2,0,'STR_PAD_LEFT')+':'+str_pad(oDateEnd.getMinutes(),2,0,'STR_PAD_LEFT')+' Uhr '
                                            + '<span id="currShowTimeLeft"></span>';

                refreshOnAirShowTime( oJSON.timeleft );
            }

        }
    }

    xmlHTTP.open("GET","/shows/getShowOnAirAJAX.php",true);
    xmlHTTP.send(null);
}

/**
* refreshes the time left for the current onair
* show
* @param secondsLeft Amount of seconds left for next show
* @returns void
**/
function refreshOnAirShowTime( secondsLeft ) {

    var oTimeLeft   = document.getElementById('currShowTimeLeft');

    secondsLeft--;

    if( secondsLeft == 0 ) {

        oTimeLeft.innerHTML = '';
        window.setTimeout("refreshOnAirShow();", 5000);

        return false;
    } else {

        oTimeLeft.innerHTML = '(noch '+sec2hms(secondsLeft)+')';

        // refresh livepic every 30 seconds
        if( !(secondsLeft%30) )
            refreshLivePic();

        window.setTimeout("refreshOnAirShowTime( "+secondsLeft+" )", 1000);
    }
}

/**
* refreshes the onair livepic
* @returns void
**/
function refreshLivePic() {

    try {
        
        var oDate    = new Date(); 
        var oLivePic = document.getElementById('currShowPic');
    
        oLivePic.src='/shows/getLivePic.php?'+oDate.getTime();
        Reflection.add(oLivePic);
        
    } catch( e ) {}
}

/**
* gets the position of a specific element
* @param e Object of the element
* @returns Object
**/
function getPos( e ) {

	var obj     = e;
	var curleft = 0;

    // get x-coordinate by parent element
	if( obj.offsetParent ) {

		while( obj.offsetParent ) {

			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}

    // get x-coordinate directly from the element
	} else if (obj.x) {

		curleft += obj.x;
    }
	
	var obj     = e;
	var curtop  = 0;

    // get y-coordinate by parent element
	if( obj.offsetParent ) {

		while( obj.offsetParent ) {

			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}

    // get y-coordinate directly from the element
	} else if (obj.y) {

		curtop += obj.y;
    }

	return {x:curleft, y:curtop};
}