Linux-DVB-DVBT-Apps-QuartzPVR

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

css/theme/black/plugin/profile.css
css/theme/black/tvguide/chanSel.css
css/theme/black/tvguide/default.css
css/theme/black/tvguide/grid.css
css/theme/black/tvguide/reclist.css
css/theme/black/tvguide/recorded.css
css/theme/black/tvguide/scan.css
css/theme/black/tvguide/searchlist.css
css/theme/black/tvguide/toolbar.css
css/theme/black/ui/dialog.css
css/theme/black/ui/popup.css
css/tvguide/chanSel.css
css/tvguide/default.css
css/tvguide/grid.css
css/tvguide/reclist.css
css/tvguide/recorded.css
css/tvguide/scan.css
css/tvguide/searchlist.css
css/tvguide/toolbar.css
css/ui/dialog.css
css/ui/popup.css
css/theme/black/images/audio-dvbt.png
css/theme/black/images/audio-iplay.png
css/theme/black/images/audio.png
css/theme/black/images/black_gloss.png
css/theme/black/images/chansel-grey.png
css/theme/black/images/chansel.png
css/theme/black/images/check-0.png
css/theme/black/images/check-1.png
css/theme/black/images/down.png
css/theme/black/images/fuzzy-all.png

MANIFEST  view on Meta::CPAN

css/theme/black/images/lschn.png
css/theme/black/images/lsgrd-iplay.png
css/theme/black/images/lsgrd-mrec.png
css/theme/black/images/lsgrd-rec.png
css/theme/black/images/lsgrd.png
css/theme/black/images/lstbb.png
css/theme/black/images/minus.png
css/theme/black/images/play-grey.png
css/theme/black/images/play.png
css/theme/black/images/plus.png
css/theme/black/images/popup.png
css/theme/black/images/priority-high.png
css/theme/black/images/priority-low.png
css/theme/black/images/priority-lowmedium.png
css/theme/black/images/priority-medium.png
css/theme/black/images/priority-mediumhigh.png
css/theme/black/images/priority-none.png
css/theme/black/images/rec-iplay-all.png
css/theme/black/images/rec-iplay-daily.png
css/theme/black/images/rec-iplay-multi.png
css/theme/black/images/rec-iplay-once.png

css/main.css  view on Meta::CPAN

@import url("tvguide/default.css") ;

/* Extras */
@import url("plugin/log.css") ;
@import url("plugin/profile.css") ;

/* UI */
@import url("ui/dialog.css") ;
@import url("ui/popup.css") ;

/* Application */
@import url("tvguide/toolbar.css") ;
@import url("tvguide/grid.css") ;
@import url("tvguide/reclist.css") ;
@import url("tvguide/searchlist.css") ;
@import url("tvguide/recorded.css") ;
@import url("tvguide/chanSel.css") ;
@import url("tvguide/scan.css") ;

css/theme/black/main.css  view on Meta::CPAN

@import url("tvguide/default.css") ;

/* Extras */
@import url("plugin/log.css") ;
@import url("plugin/profile.css") ;

/* UI */
@import url("ui/dialog.css") ;
@import url("ui/popup.css") ;

/* Application */
@import url("tvguide/toolbar.css") ;
@import url("tvguide/grid.css") ;
@import url("tvguide/reclist.css") ;
@import url("tvguide/searchlist.css") ;
@import url("tvguide/recorded.css") ;
@import url("tvguide/chanSel.css") ;
@import url("tvguide/scan.css") ;

css/theme/black/tvguide/grid.css  view on Meta::CPAN

	border-bottom: 1px solid #fff ;
}


/*--------------------------*/
/* Select program recording */

/* Record: Current setting */

/* Record: Tabbed menu of different types of recording */
.popupContent ul.recprog li ul.rectype {
    border-bottom: 1px solid white ;
}

.popupContent ul.recprog li ul.rectype li.recopt {
    border: 1px solid white ;
    color: black ;
    background: white ;
}

/* selected tab */
.popupContent ul.recprog li ul.rectype li.sel {
    border-bottom: 1px solid black ;
    color: white ;
    background: black ;
}



/* Record: List of options */

.popupContent ul.recprog li ul.recsel li.sel {
    background: #000055 ;
}

.popupContent ul.recprog li ul.recsel li.recradio:hover {
    background: #009999 ;
}




/*-----------------------------------*/
/* Select program recording priority */ 
.popupContent ul.priprog:hover {
	border-top: 1px solid white ;
}

.popupContent ul.priprog li:hover > ul {
    /* display: block; - change to use javascript */
    color: white ;
    
	border-top: 1px solid white ;
}

/* Priority: Current setting */

/* Priority: List of options */
.popupContent ul.priprog li ul li.priradio {
    background: #000022 ;
    border-bottom: 1px solid #cccccc ;
}

.popupContent ul.priprog li ul li.sel {
    background: #000055 ;
}

.popupContent ul.priprog li ul li.priradio:hover {
    background: #009999 ;
}


css/theme/black/tvguide/recorded.css  view on Meta::CPAN


#quartz-content #list-body #recordedContents .recCaption {
	color: white ;
}

#quartz-content #list-body #recordedContents .fileNotPresent {
	color: red ;
}

/* Popup information */
.popupContent .update {
	color: yellow ;
	font-style: italic ;
}

.popupContent .fileName {
	color: yellow ;
	font-weight: bold ;
}

.popupContent .fileNotPresent {
	color: red ;
}

css/theme/black/tvguide/toolbar.css  view on Meta::CPAN

*/

/* Main title */
#qtv-listings #gridhd {
  background:#000 url(../images/titlebar.png) repeat-x top center;
}

#qtv-listings #gridhd h2 {
/*  background: #000 url('black/tb.png') repeat-x ; */

/*  background:#000 url(../images/popup.png) repeat-x top center;*/
/*  border: 2px outset #555;*/
  padding: 0 15px 5px 15px ;
}

css/theme/black/ui/popup.css  view on Meta::CPAN

/*------------------------------------------------------------------------------------*/
/* Popup info */

.popupContent {
  background-color:#000000;
  background:#000 url(../images/popup.png) repeat-x top left;
  border: solid white 1px;
}

.popupContent .wrap {
  /*background:#f2e4fa;*/
  color : white ;
}

.popupContent .summary {
  color: yellow ;
}

.popupContent .times {
  color: yellow ;
}


.popupContent .description {
  /*background:#f2e4fa;*/
  color : white ;
}

/* each program entry in a multirec list */
.popupContent .multi {
  border-top: solid white 1px ;
  /* background:#000 url(../images/popup.png) repeat top left; */
  background: black ;
}

.popupContent .multi .wrap {
  color: yellow ;
}

.popupContent .multi .summary {
  color: yellow ;
}

css/tvguide/grid.css  view on Meta::CPAN

#qtv-listings .timesel li a.hour {
	padding: 0px ;
	margin: 0px ;
}


/*--------------------------*/
/* Select program recording */

/* Record: Current setting */
.popupContent ul.recprog li {
    margin-top: 3px ;
}

.popupContent ul.recprog li img {
    vertical-align: middle ;
}


/* Record: Tabbed menu of different types of recording */
.popupContent ul.recprog li ul.rectype {
	margin: 1em 0.1em ;
	display: block ;
    border-bottom: 1px solid white ;
    padding: 2px 5px ;
}

.popupContent ul.recprog li ul.rectype li.recopt {
    display: inline ;
    padding: 2px 5px ;
    
    /* tab sep */
    margin: 0 0 0 5px ;
}

/* Record: List of options */
.popupContent ul.recprog li ul.recsel {
	margin-top: 0.5em ;
}

.popupContent ul.recprog li ul.recsel li.recradio {
    height: 2em ;
}

.popupContent ul.recprog li ul.recsel li img {
    vertical-align: middle ;
}

.popupContent ul.recprog li ul.recsel li.recradio a {
    text-decoration: none ;
}




/*-----------------------------------*/
/* Select program recording priority */ 

/* Priority: Current setting */
.popupContent ul.priprog li {
    margin-top: 3px ;
    height: 2em ;
}

.popupContent ul.priprog li img {
    vertical-align: middle ;
}


/* Priority: List of options */
.popupContent ul.priprog li ul li.priradio {
    height: 2em ;
}

.popupContent ul.priprog li ul li img {
    vertical-align: middle ;
}

.popupContent ul.priprog li ul li.priradio a {
    text-decoration: none ;
}

css/tvguide/reclist.css  view on Meta::CPAN


.lrow ol {
	clear: both ;
}


/*

RECORD:

<div class="popupContent" style="position: absolute; visibility: hidden; left: 49px; top: 37.25px; z-index: 100; width: 300px;">
	<div class="recListPop">
		<ul class="recprog">
			<li class="sub">
			
				<ul class="rectype">
					<li class="recopt sel">
						<a>DVBT</a>
					</li>
					<li class="recopt">
						<a>FUZZY</a>

css/tvguide/reclist.css  view on Meta::CPAN

				</ul>

				<ul class="recsel tab2" style="display: none;">
					</li>
					</ul>
					</div>
					</div>
					...
PRIORITY:

<div class="popupContent" style="position: absolute; visibility: hidden; left: 1561px; top: 37.25px; z-index: 100; width: 300px;">
	<div class="recListPop">
		<ul>
			<li class="recradio">
				<a title="Only record if resources allow">
					<img src="https://quartz-net.co.uk/su/apps/mediacentre-jquery/css/theme/black/images/priority-none.png">
					Only record if resources allow
				</a>
			</li>
			<li class="recradio chan">
			<li class="recradio">

css/ui/popup.css  view on Meta::CPAN

/*------------------------------------------------------------------------------------*/
/* Popup info */

.popupContent {
  left: -4px; 
  top: -4px;       
  padding: 5px;                 
  font: normal 10pt sans-serif;    
  width: 300px; /* default */
}

.popupContent .wrap {
  display:block;
  height:100%;
  margin:0 4px 4px;
  margin:0;
}

.popupContent .description {
	overflow: visible;
	z-index: 999;
}

.popupContent .summary {
  display:block;
  font-weight: bold;

}

.popupContent .wrap .times {
  font-style: italic;

}

.popupContent .multi {

	clear: both ;
}

js/jquery/jquery-1.4.js  view on Meta::CPAN

		var requestDone = false;

		// Create the request object
		var xhr = s.xhr();

		if ( !xhr ) {
			return;
		}

		// Open the socket
		// Passing null username, generates a login popup on Opera (#2865)
		if ( s.username ) {
			xhr.open(type, s.url, s.async, s.username, s.password);
		} else {
			xhr.open(type, s.url, s.async);
		}

		// Need an extra try/catch for cross domain requests in Firefox 3
		try {
			// Set the correct header, if data is being sent
			if ( s.data || origSettings && origSettings.contentType ) {

js/quartz/ClickHandler.js  view on Meta::CPAN

/**
 * ClickHandler.js: event handler factory for "popups" (that are displayed/hidden by clicking a node).
 * 
 *
 */
// The constructor function for the ClickHandler class
function ClickHandler() {}

ClickHandler.ID = 0 ;
ClickHandler.POPUPS = {} ;

/*------------------------------------------------------------------------------------------------------*/
// Close any shown popups
ClickHandler.closeAll = function()
{
	for (var id in ClickHandler.POPUPS)
	{
		var popupHide = ClickHandler.POPUPS[id] ;
		popupHide() ;
	}
}


/*------------------------------------------------------------------------------------------------------*/
// Add a popup window to a DOM node - shows the window when moused over
//
//settings object must contain:
//	
//	settings.create_popup(settings, x, y, callback) 		Return a popup object
//	settings.popup_node(settings, popup) 					Get the DOM node from the popup
//	settings.show_popup(settings, popup, x, y)				Display popup
//	settings.hide_popup(settings, popup)					Hide it again
//	settings.callback(settings, vars) 						The callback to be called when values change
//
ClickHandler.add_popup = function(node, settings)
{
	//---------------------------------------------------------------------------------------------
	// This is the function that adds event handlers
	function addPopupToNode(link) 
	{
		// Add event handlers 
		$(link).click(click) ;
		
		// Keep track of this instance's popup
		var popup ;
		var popupNode ;
		var popupShow = 0 ;

		//----------------------------------------------------------------------------------------
		// Main node click - show/hide popup
		function click(event) 
		{
log.debug("ClickHandler.clicked popup");		
			event.stopPropagation() ;
			
			if (!popupShow)
			{
				showPopup() ;
			}
			else
			{
				hidePopup() ;
			}
		}

		//-----------------------------------------------------------------------------

js/quartz/ClickHandler.js  view on Meta::CPAN

			var margin = 20 ;
			var pos = $(link).offset() ;
			var x = pos.left + margin;
			var y = pos.top + margin;
			
			if (x < 0) x = 0 ;
			if (y < 0) y = 0 ;

			log.debug(" + x="+x+" y="+y);		

			// Create the popup object - tell it the callback routine to be called
			popup = settings.create_popup(settings, x, y, callback) ;
			popup.margin = margin ;
			
			// Show the popup window
			settings.show_popup(settings, popup, x, y);
         
			// Retrieve the DOM object to be used for the popup
			// NOTE: Do this AFTER showing to ensure object has been created
			popupNode = settings.popup_node(settings, popup) ;
			
			popupShow = 1 ;

			log.debug(" + popupShow="+popupShow);		
		}
		
		//----------------------------------------------------------------------------------------
		function hidePopup() 
		{
			log.debug("ClickHandler.hidePopup()");		
			// Call callback to hide the popup window
			settings.hide_popup(settings, popup);
			
			popupShow = 0 ;
		}

	    //----------------------------------------------------------------------------
	    // Callback handler - called from popup contents - needs to be passed any changed vars
		function callback(vars) 
		{
			log.debug("ClickHandler.callback()");		
			// Close the popup BEFORE calling callback - callback may cause the DOM to be changed
			hidePopup() ;

			// Activate the real callback
			settings.callback(settings, vars) ;
		}
		
		// return a ref to the popup hide routine
		return hidePopup ;
	}
	
	// Add popup
	var hideFunction = addPopupToNode(node);

	// Now add this instance to the list
	var id = ClickHandler.ID++ ;
	ClickHandler.POPUPS[id] = hideFunction ;
}

js/quartz/InPlace.js  view on Meta::CPAN


 * 
 * 
 */
var InPlace = {} ;

InPlace.ID = 0 ;
InPlace.EDITORS = {} ;

/*------------------------------------------------------------------------------------------------------*/
// Close any shown popups
InPlace.closeAll = function()
{
	for (var id in InPlace.EDITORS)
	{
		var popupHide = InPlace.EDITORS[id] ;
		popupHide() ;
	}
}



// Constants
InPlace.ESCAPE = 27 ;
InPlace.ENTER = 13 ;
InPlace.TAB = 9 ;

js/quartz/InPlace.js  view on Meta::CPAN

		document.body.appendChild(edit);
		
		node.editor = edit ;
	}
	var view = node ;
	var editor = view.editor ;
	
	view.callback = callback ;
	view.userData = userData ;

	// Prepare for popup handler
	var inplaceSettings = {
		
		//-----------------------------------------------------
		create_popup: function(settings, x, y, callback) {
			return view ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			var view = popupObj ;
			var editor = view.editor
			return editor ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			var view = popupObj ;
			var editor = view.editor

    		if (!editor) return true ;

    		if (editor.currentView != null) {
    			editor.blur()
    		}
    		editor.currentView = view

    		editor.style["top"] = y + "px" ;

js/quartz/InPlace.js  view on Meta::CPAN

    		editor.value = view.innerHTML
    		editor.style['visibility'] = 'visible'
    		view.style['visibility'] = 'hidden'
    			
    		editor.abandonChanges = false
    		editor.focus()
			
		},
		//-----------------------------------------------------
		// This is called by PopupHandler - only called when moused out
		hide_popup	: function(settings, popupObj) {

			var view = popupObj ;
			if (!view)
			{
				var dummy = 1 ;
			}
			else
			{
				var editor = view.editor
				editor.abandonChanges = true

				// Handle close of edit - hide popup and call callback with value
				editor.blur();
			}
		},
		//-----------------------------------------------------
		callback	: function(settings, vars) {
			
			// NOT USED - view.editor.onblur() handles callbacks
			var dummy = 1 ;
		}
	} ;
	
	// Add event handling for popup
	var hidePopup = PopupHandler.add_popup(node, inplaceSettings) ;

	// Now add this instance to the list
	var id = InPlace.ID++ ;
	InPlace.EDITORS[id] = hidePopup ;
	
	//--------------------------------------------------------------------------
	// Node view event handlers
	//--------------------------------------------------------------------------

	//---------------------------------------------------------

js/quartz/Popup.js  view on Meta::CPAN

/**
 * Popup.js: simple CSS popups with drop shadows.
 * 
 * This module defines a Popup class. Create a Popup object with the 
 * Popup() constructor.  Then make it visible with the show() method.
 * When done, hide it with the hide() method.
 *
 * Note that this module must be used with appropriate CSS class definitions
 * to display correctly.  The following are examples.
 * 
 *   .popupContent {
 *      left: -4px; top: -4px;        /* how much of the shadow shows * /
 *      background-color: #ff0;       /* yellow background * /
 *      border: solid black 1px;      /* thin black border * /
 *      padding: 5px;                 /* spacing between text and border * /
 *      font: bold 10pt sans-serif;   /* small bold font * /
 *   }
 *
 */
function Popup() {  // The constructor function for the Popup class
	this.popup = null ;
	this.margin = 30 ; // need enough to ensure we can see it all, but not too much so it cycles on/off
}

// Set the content and position of the popup and display it
Popup.prototype.show = function(content, x, y, width) 
{

	if (this.popup == null)
	{
	    this.popup = document.createElement("div"); // create div for content
	    this.popup.style.position = "absolute";     // absolutely positioned
	    this.popup.style.visibility = "hidden";     // starts off hidden
	    this.popup.className = "popupContent";     // so we can style it
	}
	
	if (typeof content == "string")
	{
    	this.popup.innerHTML = content;             // Set the text of the popup.
    }
    else
    {
    	// remove existing
		while( this.popup.hasChildNodes() ) 
		{ 
			this.popup.removeChild( this.popup.lastChild ); 
		}
		    	
    	// append node
    	this.popup.appendChild(content) ;
    }
    this.popup.style.left = x + "px";        // Set the position.
    this.popup.style.top = y + "px";
    this.popup.style.zIndex = 100;     // top of the heap
    this.popup.style.visibility = "visible"; // Make it visible.
    if (!width) width=300 ;
    this.popup.style.width = width+"px" ; 
    this.popup.style.visibility = "visible"; // Make it visible.

    // Add the popup to the document if it has not been added before
    if (this.popup.parentNode != document.body)
        document.body.appendChild(this.popup);
};

// Hide the popup
Popup.prototype.hide = function() {

	if (this.popup != null)
	{
	    this.popup.style.visibility = "hidden";  // Make it invisible.
        document.body.removeChild(this.popup);
        this.popup = null ;
	}
};

/*------------------------------------------------------------------------------------------------------*/
//Adjust x & y values to ensure popup is on screen 
//
Popup.prototype.adjustXY = function(x, y)
{
	if (this.popup == null)
		return ;

	var viewableDims = Geometry.viewableArea() ;
	
	// Check we haven't gone over the edge - as popup drops down from the on-screen node (has to be on-screen otherwise
	// we can't click it!) then just check bottom of popup hasn't gone past the end of the viewable area
	//
	// top:--------------
	//   ...
	//   y:
	//    | pop_height
	//    v
	//    -
	//
	//
	//bot:------------------
	//
	var pop_height = this.popup.scrollHeight ;
	if (y + pop_height + this.margin > viewableDims.bottomRight.y)
	{
		y = viewableDims.bottomRight.y - pop_height - this.margin ;
		if (y < viewableDims.topLeft.y) y=viewableDims.topLeft.y ;
		this.popup.style.top = y + "px";
	}
	
	var pop_width = this.popup.scrollWidth ;
	if (x + pop_width + this.margin > viewableDims.bottomRight.x)
	{
		x = viewableDims.bottomRight.x - pop_width - this.margin ;
		if (x < viewableDims.topLeft.x) x=viewableDims.topLeft.x ;
		this.popup.style.left = x + "px";
	}
	if (x < viewableDims.topLeft.x)
	{
		x = viewableDims.topLeft.x ;
		this.popup.style.left = x + "px";
	}

}

js/quartz/PopupHandler.js  view on Meta::CPAN

/**
 * PopupHandler.js: event handler factory for popups.
 * 
 *
 */
// The constructor function for the PopupHandler class
function PopupHandler() {}  

/*------------------------------------------------------------------------------------------------------*/
// Add a popup window to a DOM node - shows the window when moused over
//
//settings object must contain:
//	
//	settings.create_popup(settings, x, y, callback) 		Return a popup object
//	settings.popup_node(settings, popup) 					Get the DOM node from the popup
//	settings.show_popup(settings, popup, x, y)				Display popup
//	settings.hide_popup(settings, popup)					Hide it again
//	settings.callback(settings, vars) 						The callback to be called when values change
//
PopupHandler.add_popup = function(node, settings)
{
	//---------------------------------------------------------------------------------------------
	// This is the function that adds event handlers
	function addPopupToNode(link) 
	{
		// Add event handlers 
		$(link).mouseover(mouseover) ;
		$(link).mouseout(mouseout) ;
		
		var timer; // Used with setTimeout/clearTimeout
		var timerOff ;
		
		// Keep track of this instance's popup
		var popup ;
		var popupNode ;

		//----------------------------------------------------------------------------------------
		// Main node mouseover - show popup
		function mouseover(event) 
		{
			log.debug("mouseover popup");		

			// get coords of link
			var pos = $(link).offset() ;
			var x = pos.left ;
			var y = pos.top ;
			
			if (x < 0) x = 0 ;
			if (y < 0) y = 0 ;

			// If a hide popup is pending, cancel it
			if (timerOff) 
			{
			 	window.clearTimeout(timerOff);
			 	timerOff = null ;
			 	hidePopup() ;
			}
			
			// If a popup is pending, cancel it
			if (timer) window.clearTimeout(timer);
			
			// Schedule a popup to appear in half a second
			timer = window.setTimeout(showPopup, 500);

			//-----------------------------------------------------------------------------
			function showPopup() 
			{
				log.debug("show popup");		
				// Create the popup object - tell it the callback routine to be called (which is this one below)
				popup = settings.create_popup(settings, x, y, callback) ;
				
				// Show the popup window
				settings.show_popup(settings, popup, x, y);
             
				// Retrieve the DOM object to be used for the popup
				// NOTE: Do this AFTER showing to ensure object has been created
				popupNode = settings.popup_node(settings, popup) ;
				
		        // Add event handlers 
				$(popupNode).mouseover(popup_mouseover) ;
				$(popupNode).mouseout(popup_mouseout) ;

		        // Propagate 'mouseover' handler down to all popup children - otherwise we get a 'mouseout' as soon as we 
		        // move from the popup background on to one of it's children div's etc.
		        for (var child in popupNode.getElementsByTagName('*'))
		        {
		        	if (child.nodeType == 1 /* Node.ELEMENT_NODE */)
		        	{
						$(child).mouseover(popup_mouseover) ;
		        	}
		        }
			}
		}

		//----------------------------------------------------------------------------------------
		// Main node mouseout
		function mouseout(event) 
		{
			log.debug("mouseout popup");		
			// If a popup is pending, cancel it
			if (timerOff) window.clearTimeout(timerOff);
			
			// Schedule popup to close in half a second
			timerOff = window.setTimeout(hidePopup, 500);
			
			// When the mouse leaves a link, clear any 
			// pending popups or hide it if it is shown
			if (timer) window.clearTimeout(timer);
			timer = null;
		}

		//----------------------------------------------------------------------------------------
		// Popup child mouseover
		function popup_mouseover(event) 
		{
			// If a hide popup is pending, cancel it
			if (timerOff) 
			{
			 	window.clearTimeout(timerOff);
			 	timerOff = null ;
			}
			
			// If a popup is pending, cancel it
			if (timer) window.clearTimeout(timer);
		}

		//----------------------------------------------------------------------------------------
		// Popup child mouseover
		function popup_mouseout(event) 
		{
			// If a popup hide is pending, cancel it
			if (timerOff) window.clearTimeout(timerOff);
			
			// Schedule popup to close in half a second
			timerOff = window.setTimeout(hidePopup, 500);
			
			// When the mouse leaves a link, clear any 
			// pending popups or hide it if it is shown
			if (timer) window.clearTimeout(timer);
			timer = null;
		}

		//----------------------------------------------------------------------------------------
		function hidePopup() 
		{
			// Call callback to hide the popup window
			settings.hide_popup(settings, popup);
			
			// If a popup hide is pending, cancel it
			if (timerOff) window.clearTimeout(timerOff);
			// If a popup show is pending, cancel it
			if (timer) window.clearTimeout(timer);
		}

	    //----------------------------------------------------------------------------
	    // Callback handler - called from popup contents - needs to be passed any changed vars
		function callback(vars) 
		{
			// Close the popup BEFORE calling callback - callback may cause the DOM to be changed
			hidePopup() ;

			// Activate the real callback as specified
			settings.callback(settings, vars) ;
		}
		
		// useful for global close of all popups
		return hidePopup ;
	}

	// Add the popup
	var hidePopup = addPopupToNode(node);

	return hidePopup ;
}

js/tvguide/GridApp.js  view on Meta::CPAN


	GridApp.checkUrl() ;

	var params = {} ;
	if (options && options.parameters)
		params = options.parameters ;
	
	// Track each command (unless told not to) so we can reload on redraw
	if (!(options && options.nocache))
	{
		// check to see if popups should be closed
		if (!GridApp.cmdCache || (GridApp.cmdCache.cmd !== cmd))
		{
			// new command so close any open popups
			ClickHandler.closeAll() ;
			InPlace.closeAll() ;
		}
		
		// Update the cache
		GridApp.cmdCache = {
			cmd		: cmd,
			options	: options
		} ;
	}

js/tvguide/Objects/Multirec.js  view on Meta::CPAN

	width=1;
}

	var a = document.createElement("a");
	var class_name = "url uid" ;	// NOTE: Do *NOT* use variable name 'class' - IE fails!

	return a ;
}

/*------------------------------------------------------------------------------------------------------*/
Multirec.prototype.popup_contents = function(popupDiv, record_select)
{
	// log.dbg(this.logDebug, " + + Multirec.popup_contents()") ;

	var span = document.createElement("span");
	span.className = "wrap" ;
	popupDiv.appendChild(span) ;
	
	span.innerHTML = 
			'<span class="times">'+
				'<span class="dtstart">'+
					'<abbr class="value" title="'+this.start_date+'T'+this.start_time+'"></abbr>'+
					this.start_time+
				'</span>'+
				'-'+
				'<span class="dtend">'+
					'<abbr class="value" title="'+this.end_date+'T'+this.end_time+'"></abbr>'+
					this.end_time+
				'</span>'+
			'</span>' ;

	var desc = document.createElement("div");
	desc.className = "description" ;
	popupDiv.appendChild(desc) ;
	
		var spanDesc = document.createElement("span");
		spanDesc.className = "summary" ;
		spanDesc.appendChild(document.createTextNode('Multiplex Record ['+this.multid+']'));
		desc.appendChild(spanDesc) ;

	var ul = document.createElement("ul");
	popupDiv.appendChild(ul) ;
	
	for (var i = 0; i < this.progs.length; i++)
	{
		var prog = this.progs[i] ;
		var progid = "prog"+i ;

		var li = document.createElement("li");
		ul.appendChild(li) ;
		
		var progdiv = document.createElement("div");
		progdiv.id = progid ;
		progdiv.className = "multi" ;
		li.appendChild(progdiv);
		
		// log.dbg(this.logDebug, " + + Multirec.popup_contents() - progdiv "+i+" = "+progdiv) ;

		if (progdiv)
			prog.popup_contents(progdiv, record_select) ; 
	}
	
	
}

/*------------------------------------------------------------------------------------------------------*/
//return the class name fotr recording 
Multirec.prototype.record_class = function()
{
	return "multirec" ;

js/tvguide/Objects/Prog.js  view on Meta::CPAN

/*
Manages a single program on a channel

*/

// Create the popup object we'll use
Prog.popup = new Popup();

Prog.settings = {} ;

//Map from array index to prog field
Prog.PROG_MAP = {
	0	: "pid", 
	1	: "chanid", 
	2	: "start_time", 
	3	: "start_date", 
	4	: "end_time", 

js/tvguide/Objects/Prog.js  view on Meta::CPAN

				Prog.MAP_LOOKUP.RECORD[group][recVal] = recObj ;
			}
		}
	}
}
Prog.createMapLookup() ;


// Debug
Prog.DEBUG = {
	popup : 1
} ;

//Set to true to globally enable debugging
Prog.prototype.logDebug = 0 ;



/*------------------------------------------------------------------------------------------------------*/
// Constructor
//

js/tvguide/Objects/Prog.js  view on Meta::CPAN

		if (args[i])
		{
			this[field] = args[i] ;
		}
	}

}


/*------------------------------------------------------------------------------------------------------*/
Prog.prototype.popup_contents = function(popupDiv, record_select)
{
	var rid = -1 ;
	var recording = Prog.settings.app.grid.lookup_recording(this.pid) ;
	if (recording)
		rid = recording.rid ;
	
	var title = this.title ;
	if (Settings.debug())
	{
		title = '[RID:'+rid+' PID:'+this.pid+'] '+
	    		this.title+'</span>';
	}
	
	popupDiv.innerHTML = 
		'<span class="wrap">'+
		'<span class="times">'+
			'<span class="dtstart">'+
				'<abbr class="value" title="'+this.start_date+'T'+this.start_time+'"></abbr>'+
				this.start_time+
			'</span>'+
			'-'+
			'<span class="dtend">'+
				'<abbr class="value" title="'+this.end_date+'T'+this.end_time+'"></abbr>'+
				this.end_time+

js/tvguide/Objects/Prog.js  view on Meta::CPAN

	    '<span class="summary">'+
	    Prog.settings.app.allChans[this.chanid].name+
	    '</span>'+
	    '<span class="summary">'+
	    title+
	    '</span>'+
	    this.description+
	'</div>' ;

	var recUl = Prog.create_recsel(this, this.record, record_select)
	popupDiv.appendChild(recUl) ;
}


/*------------------------------------------------------------------------------------------------------*/
Prog.prototype.add_prog_popup = function(node)
{
	var progobj = this ;

	// use this width
	var popup_width = Prog.settings.POPUP_WIDTH_PX ;
	
	var progSettings = {
		//-----------------------------------------------------
		create_popup: function(settings, x, y, callback) {
			
			var popupDiv = document.createElement("div");
			progobj.popup_contents(popupDiv, callback) ; 
			var popupObj = {
				dom 	: popupDiv,	
				top		: Prog.popup
			} ;
			
			// save popup in prog for debug
			progobj['_progPopup'] = popupObj ;
			
			return popupObj ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			return popupObj.dom ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			log.debug("Prog.show_popup()");		
			var popupDiv = popupObj.dom ;

			x = x + 10 ;
			y = y + 10 ;
			
			// Show the popup window
            Prog.popup.show(popupDiv, x, y, popup_width);
            
			//Check we haven't gone over the edge
            Prog.popup.adjustXY(x, y);
			log.debug("Prog.show_popup() - end x="+x+" y="+y);		
		},
		//-----------------------------------------------------
		hide_popup	: function(settings, popupObj) {
			Prog.popup.hide();
		},
		//-----------------------------------------------------
		callback	: function(settings, vars) {
			
			var progObject = vars.prog ;
			var new_rec = vars.val ;
			
			// only update if changed
			if (new_rec != progObject.record)
			{

js/tvguide/Objects/Prog.js  view on Meta::CPAN

				progObject.record = new_rec ;
//				Prog.settings.app.set_rec(new_rec, progObject.chan, progObject.pid, progObject.record) ;
				Prog.settings.app.set_rec(progObject, old_rec) ;
			}

		}
	} ;
	
	if (Prog.settings.PROG_POPUP)
	{
		PopupHandler.add_popup(node, progSettings) ;
	}
	else
	{
		ClickHandler.add_popup(node, progSettings) ;
	}
}


/*------------------------------------------------------------------------------------------------------*/
// return the class name fotr recording - over ride with derived classes
Prog.prototype.record_class = function()
{
	return "record" ;
}

js/tvguide/Objects/Prog.js  view on Meta::CPAN

	if (this.record > 0)
	{
		class_name += " record" ;
		if (this.hasOnlyIPLAY())
		{
			class_name += " iplay" ;
		}
	}
	a.className = class_name ; 
	
	// add a popup display to show program details
	this.add_prog_popup(a) ;

		var span_wrap = document.createElement("span");
		span_wrap.className = "wrap" ; 
		span_wrap.style.width = width+"px" ; 
		a.appendChild(span_wrap);

			var span_summ = document.createElement("span");
			span_summ.className = "summary" ; 
			span_summ.style.width = width+"px" ; 
			span_summ.appendChild(document.createTextNode(this.title));

js/tvguide/Objects/Schedule.js  view on Meta::CPAN

		li = document.createElement("li");
		ol.appendChild(li) ;
		li.style.width = width+'px' ;
		li.className = "vevent" ;

		var a = document.createElement("a");
		li.appendChild(a) ;
		a.className = "url uid " ; 
		a.className = a.className + list[i].prog.record_class() ;
		
		// add a popup display to show program details
		list[i].prog.add_prog_popup(a) ;

	
		// Update start
		start = list[i].prog.end_mins ;
	}

// log.dbg(this.logDebug, " + start="+start+"  END="+this.settings.DISPLAY_END_MINS) ;
	
	// check for blank at end of list
	if (start < this.settings.DISPLAY_END_MINS)

js/tvguide/Objects/TvList.js  view on Meta::CPAN

 	  
Builds the contents into the normal "gridbox" div 

*/

//========================================================================================================
// CLASS
//========================================================================================================

TvList.settings = {} ;
TvList.popup = new Popup();

TvList.IMAGE_MAP = {
	'show'	: 'plus',	
	'hide'	: 'minus'	
} ;


/*------------------------------------------------------------------------------------------------------*/
// Constructor
function TvList(args)
{
	// Data - override with args
	this.rowClass = "" ;
	this.subrowClass = "" ;
	this.index = "pid" ;
	this.subindex = "" ;					// name of field containg list of sub-things
	this.sort = TvList.sort ;
	
	this.popupClassName = "tvListPop" ;		// added to popupDiv for setting record level
	this.recselCallback = TvList.setRecordings ;	// callback called when record level changed
	this.priCallback = TvList.setRecordings ;	// callback called when priority changed
	
	// add a ref to the global settings
	this.settings = TvList.settings ;
	this.popup = TvList.popup ;
	
	// override with settings
	if (args && (typeof args == "object"))
	{
		for (var setting in args)
		{
			this[setting] = args[setting] ;
		}
	}
	

js/tvguide/Objects/TvList.js  view on Meta::CPAN

TvList.prototype.clear_grid = function()
{
	var gridbox = document.getElementById("gridbox");
	gridbox.innerHTML = "" ;
}


//===[ Record Selector ]==================================================================================

/*------------------------------------------------------------------------------------------------------*/
TvList.prototype.popup_recsel_contents = function(popupDiv, record_select, progObj)
{
	popupDiv.className = this.popupClassName ;

	var recUl = document.createElement("ul");
	recUl.className = "recprog" ;
	
		var recLi = document.createElement("li");
		recLi.className = "sub" ;
		recUl.appendChild(recLi) ;
	
			// Add list of record options (with handler for each)
			Prog.create_recSelTabs(recLi, progObj, record_select) ;
	
	
	popupDiv.appendChild(recUl) ;
}



/*------------------------------------------------------------------------------------------------------*/
// Add a popup window for recording selection on multiple lines of the TvList display. 
//
TvList.prototype.add_record_popup = function(node, progobj)
{
	var thisObj = this ;
	
	// use this width
	var popup_width = thisObj.settings.POPUP_WIDTH_PX ;
	
	var progSettings = {
		//-----------------------------------------------------
		create_popup: function(settings, x, y, callback) {
			
			var popupDiv = document.createElement("div");
			thisObj.popup_recsel_contents(popupDiv, callback, progobj) ; 
			var popupObj = {
				dom 	: popupDiv
			} ;
			
			return popupObj ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			return popupObj.dom ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			var popupDiv = popupObj.dom ;
			
			// ensure we're over the popupDiv to stop the popup cycling up/down
			x = x - 10 ;
			y = y - 10 ;
			
			// Show the popup window
			thisObj.popup.show(popupDiv, x, y, popup_width);
			thisObj.popup.adjustXY(x, y) ;
		},
		//-----------------------------------------------------
		hide_popup	: function(settings, popupObj) {
			thisObj.popup.hide();
		},
		//-----------------------------------------------------
		callback	: function(settings, vars) {
			
			var progObject = vars.prog ;
			var new_rec = vars.val ;
			
			// only update if changed
			if (new_rec != progObject.record)
			{
				// Call the GridApp.set_rec() method
				var old_rec = progObject.record ;
				progObject.record = new_rec ;
				thisObj.recselCallback(progObject, old_rec) ;
				
			}

		}
	} ;
	
	PopupHandler.add_popup(node, progSettings) ;
}

/*------------------------------------------------------------------------------------------------------*/
//Add a record level selection element
TvList.prototype.display_recsel = function(ol, prog)
{
	var li ;

	li = document.createElement("li");
	li.className = "lcol" ;
	li.style.width = this.settings.REC_PX+'px' ;
	ol.appendChild(li) ;

		var a = document.createElement("a");
		li.appendChild(a) ;
	
			var img = document.createElement("img");
			img.src = Prog.RecImg(prog.record) ; 
			a.appendChild(img) ;

			// add a popup display to show program details
			this.add_record_popup(a, prog) ;
			
	return li ;
}


//===[ Priority Selector ]================================================================================

/*------------------------------------------------------------------------------------------------------*/
TvList.prototype.popup_prisel_contents = function(popupDiv, popup_callback, progObj)
{
	popupDiv.className = this.popupClassName ;

	var ul = document.createElement("ul");
	
	// Add list of record options (with handler for each)
//	Prog.create_priSelList(ul, progObj, progObj.record, popup_callback) ;
	Prog.create_priSelList(ul, progObj, popup_callback) ;

	popupDiv.appendChild(ul) ;
}



/*------------------------------------------------------------------------------------------------------*/
//Add a popup window for priority selection on multiple lines of the TvList display. 
//
TvList.prototype.add_priority_popup = function(node, progobj)
{
	var thisObj = this ;
	
	// use this width
	var popup_width = thisObj.settings.POPUP_WIDTH_PX ;
	
	var progSettings = {
		//-----------------------------------------------------
		create_popup: function(settings, x, y, popup_callback) {
			
			var popupDiv = document.createElement("div");
			thisObj.popup_prisel_contents(popupDiv, popup_callback, progobj) ; 
			var popupObj = {
				dom 	: popupDiv
			} ;
			
			return popupObj ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			return popupObj.dom ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			var popupDiv = popupObj.dom ;
			
			// ensure we're over the popupDiv to stop the popup cycling up/down
			x = x - 10 ;
			y = y - 10 ;
			
			// Show the popup window
			thisObj.popup.show(popupDiv, x, y, popup_width);
			thisObj.popup.adjustXY(x, y) ;
		},
		//-----------------------------------------------------
		hide_popup	: function(settings, popupObj) {
			thisObj.popup.hide();
		},
		//-----------------------------------------------------
		callback	: function(settings, vars) {
			
			var progObject = vars.prog ;
			var new_pri = vars.val ;
			
			// only update if changed
			if (new_pri != progObject.priority)
			{
				// Call the GridApp.set_rec() method
				progObject.priority = new_pri ;
//				thisObj.recselCallback(progObject.record, progObject.pid, progObject.rid, progObject.priority) ;
				thisObj.recselCallback(progObject, progObject.record) ;
			}

		}
	} ;
	
	PopupHandler.add_popup(node, progSettings) ;
}



/*------------------------------------------------------------------------------------------------------*/
//Add a record level selection element
TvList.prototype.display_prisel = function(ol, prog)
{
	var li ;

js/tvguide/Objects/TvList.js  view on Meta::CPAN

	li.style.width = this.settings.REC_PX+'px' ;
	ol.appendChild(li) ;

		var a = document.createElement("a");
		li.appendChild(a) ;
	
			var img = document.createElement("img");
			img.src = Prog.PriImg(pri) ; 
			a.appendChild(img) ;

			// add a popup display to show program details
			this.add_priority_popup(a, prog) ;
			
	return li ;
}


//===[ Path Selector ]====================================================================================

/*------------------------------------------------------------------------------------------------------*/
TvList.prototype.popup_dirsel_contents = function(popupDiv, popup_callback, progObj)
{
	popupDiv.className = this.popupClassName ;

//	var div = document.createElement("div");
	
	//----------------------------------------------------------------------------
	// Value change callback
	function add_editor_fn(progObj, callback) {
		
		return function(edit) {
			
			//----------------------------------------------------------------------------

js/tvguide/Objects/TvList.js  view on Meta::CPAN

			}
			
			// Create the text edit
			$(edit).change(function() {
				dir_change(progObj, edit.value);
			})
		} ;
	}

	// Add directory editor
	this.display_edit(popupDiv, 300, progObj.pathspec, add_editor_fn(progObj, popup_callback), "")

//	popupDiv.appendChild(div) ;
}



/*------------------------------------------------------------------------------------------------------*/
//Add a popup window for pathspec selection on multiple lines of the TvList display. 
//
TvList.prototype.add_dir_popup = function(node, progobj)
{
	var thisObj = this ;
	
	// use this width
	var popup_width = thisObj.settings.POPUP_WIDTH_PX ;
	
	var progSettings = {
		//-----------------------------------------------------
		create_popup: function(settings, x, y, popup_callback) {
			
			var popupDiv = document.createElement("div");
			thisObj.popup_dirsel_contents(popupDiv, popup_callback, progobj) ; 
			var popupObj = {
				dom 	: popupDiv
			} ;
			
			return popupObj ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			return popupObj.dom ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			var popupDiv = popupObj.dom ;
			
			x = x+10 ;
			y = y ;
			
			// Show the popup window
			thisObj.popup.show(popupDiv, x, y, popup_width);
			thisObj.popup.adjustXY(x, y) ;
		},
		//-----------------------------------------------------
		hide_popup	: function(settings, popupObj) {
			thisObj.popup.hide();
		},
		//-----------------------------------------------------
		callback	: function(settings, vars) {
			
			var progObject = vars.prog ;
			var new_dir = vars.val ;
			
			// only update if changed
			if (new_dir != progObject.pathspec)
			{
				// Call the GridApp.set_rec() method
				progObject.pathspec = new_dir ;
				thisObj.recselCallback(progObject, progObject.record) ;
			}

		}
	} ;
	
	PopupHandler.add_popup(node, progSettings) ;
}



/*------------------------------------------------------------------------------------------------------*/
//Add a record level selection element
TvList.prototype.display_dirsel = function(ol, prog)
{
	var pathspec = '' ;
	if (prog.hasOwnProperty('pathspec'))

js/tvguide/Objects/TvList.js  view on Meta::CPAN

				.append(
					$('<img>')
					.attr({
						'src'	: Prog.ImageCache['icon_dir'].src,
						'title'	: 'Dir: ' + pathspec
					})
				)
//				.click()
			) ;
				
	// add a popup display to show program details
	this.add_dir_popup($('.dirSel', $(li)).get(0), prog) ;
	
	return li ;
}



/*------------------------------------------------------------------------------------------------------*/
//Add a text edit
TvList.prototype.display_edit = function(ol, width, text, add_editor_fn, className)
{

js/tvguide/Pages/ChanSel.js  view on Meta::CPAN

//
//
ChanSel.setup = function(settings)
{
	// Copy settings
	for (var setting in settings)
	{
		ChanSel.settings[setting] = settings[setting] ;
	}
	
	// make our popup bigger
	ChanSel.settings.POPUP_WIDTH_PX = 600 ;
}



/*------------------------------------------------------------------------------------------------------*/
// Add/Create channels
//
ChanSel.prototype.update = function(chansel_data)
{

js/tvguide/Pages/RecList.js  view on Meta::CPAN

Manages a list of TV program recording requests

*/

/*======================================================================================================*/
// Constructor
/*======================================================================================================*/

RecList.settings = {} ;

//Create the popup object we'll use
RecList.popup = new Popup();


function RecList(override)
{
	var args = {
		
		index 		: "pid" ,
		subindex 	: "progsList" ,
		sort 		: RecList.sort,
		rowClass 	: "",
		subrowClass : "lprog",
			
		popupClassName 	: "recListPop",
		recselCallback 	: RecList.setRecordings,
		priCallback 	: RecList.setRecordings
			
	} ;
	
	// override with settings - provided for derived objects
	if (override && (typeof override == "object"))
	{
		for (var setting in override)
		{

js/tvguide/Pages/Recorded.js  view on Meta::CPAN

/*
Show the latest recorded programs
*/

/*======================================================================================================*/
// Constructor
/*======================================================================================================*/

Recorded.settings = {} ;

//Create the popup object we'll use
Recorded.popup = new Popup();


function Recorded()
{
	// fields
	this.list = [] ;
	
	// add a ref to the global settings
	this.settings = Recorded.settings ;
	this.popup = Recorded.popup ;
}



// Map from array index to entry field
Recorded.MAP = {
	0	: "pid", 
	1	: "rid", 
	2	: "rectype", 
	3	: "title", 

js/tvguide/Pages/Recorded.js  view on Meta::CPAN

//
//
Recorded.setup = function(settings)
{
	// Copy settings
	for (var setting in settings)
	{
		Recorded.settings[setting] = settings[setting] ;
	}
	
	// make our popup bigger
	Recorded.settings.POPUP_WIDTH_PX = 600 ;
}



/*------------------------------------------------------------------------------------------------------*/
// Add/Create progs
//
// Array of recordings "HASHes"
//

js/tvguide/Pages/Recorded.js  view on Meta::CPAN

			image = "audio" ;
		}
		if (recorded.rectype == "iplay")
		{
			image += "-iplay" ;
		}
		
		$("img", li$)
			.attr("src", this.settings.app.getImage(image)) ;
	
		// add a popup to show info
		this.add_recorded_popup($("a", li$).get(0), recorded) ;
	
		$("ol", recRowDiv$)
			.append(li$) ;
		
		if ( (col + CELL_WIDTH) >= TOTAL_WIDTH)
		{
			// start new row
			col = 0 ;
		}
	}
	
//	$("#gridbox")
//		.replaceWith(gridbox$) ;
//	
	
	return idx ;
	
}

/*------------------------------------------------------------------------------------------------------*/
//Add a popup window to show recorded program information. 
//
//<!-- 
//
//2	: "rectype", 
//3	: "title", 
//4	: "text", 
//5	: "date", 
//6	: "start", 
//7	: "duration", 
//8	: "chanid", 

js/tvguide/Pages/Recorded.js  view on Meta::CPAN

//File: /served/videos/PVR/Misc/TEST/CSI-Miami/Series RAUF/20110809205800-A young girl is kidnapped and the CSIs only witness is a blind man who hears the abduction, leading Horatio to an old nemesis serving a life sentence in prison.ts
//
//
//
//-->
//
//
//	<div
//		style="position: absolute; 
//		visibility: visible; left: 220px; top: 366px; z-index: 100; width: 600px;"
//		class="popupContent">
//	
//		<div>
//			<span class="wrap">
//				<span class="times">
//				Tue 21st Aug 2011
//				</span>
//			</span>
//			<span class="wrap">
//				<span class="times">
//					<span class="dtstart"><abbr title="2011-06-06T21:00" class="value"></abbr>21:00</span> - 

js/tvguide/Pages/Recorded.js  view on Meta::CPAN

//			</div>
//			<div class="info">
//				<img src="../css/theme/black/images/record-multi.png"><img src="../css/theme/black/images/priority-high.png">
//			</div>
//			<div class="fileName">
//				File: /served/videos/PVR/Misc/TEST/QI XL/Series KVEGDJ/20110808233800-Happiness.ts
//			</div>
//		</div>
//	</div>
//
Recorded.prototype.add_recorded_popup = function(node, recobj)
{
	var thisObj = this ;
	
	// use this width
	var popup_width = thisObj.settings.POPUP_WIDTH_PX ;
	
	var recSettings = {
		//-----------------------------------------------------
		create_popup: function(settings, x, y, popup_callback) {
			
			var popupDiv = $("<div>")
				.html(
					'<span class="wrap">'
				+	'	<span class="times">'
				+	recobj.dateStr
				+	'	</span>'
				+	'</span>'
				+	'<span class="wrap">'
				+	'	<span class="times">'
				+	'		<span class="dtstart">'+recobj.start+'</span> - ' 
				+	'		<span class="dtend">'+recobj.end+'</span>'

js/tvguide/Pages/Recorded.js  view on Meta::CPAN

				+	'</div>'
				+	'<div class="info">'
				+	'	<img src="'+Prog.RecImg(recobj.record)+'"><img src="'+Prog.PriorityImg(recobj.priority)+'">'
				+	'</div>'
				+	'<div class="fileName '+(recobj.filePresent ? '' : 'fileNotPresent')+'">'
				+	'	File: ' + recobj.file
				+	'</div>'
				)
				.get(0);

			var popupObj = {
				dom 	: popupDiv
			} ;
			
			return popupObj ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			return popupObj.dom ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			var popupDiv = popupObj.dom ;
			
			// ensure we're over the popupDiv to stop the popup cycling up/down
			x = x - 10 ;
			y = y - 10 ;
			
			// Show the popup window
			thisObj.popup.show(popupDiv, x, y, popup_width);
			thisObj.popup.adjustXY(x, y) ;
		},
		//-----------------------------------------------------
		hide_popup	: function(settings, popupObj) {
			thisObj.popup.hide();
		}
	} ;
	
	PopupHandler.add_popup(node, recSettings) ;
}


js/tvguide/Pages/Scan.js  view on Meta::CPAN

//
//
Scan.setup = function(settings)
{
	// Copy settings
	for (var setting in settings)
	{
		Scan.settings[setting] = settings[setting] ;
	}
	
	// make our popup bigger
	Scan.settings.POPUP_WIDTH_PX = 600 ;
}



/*------------------------------------------------------------------------------------------------------*/
// Add/Create channels
//
Scan.prototype.update = function(data)
{

js/tvguide/Pages/SearchList.js  view on Meta::CPAN


/*======================================================================================================*/
//Constructor
/*======================================================================================================*/

SearchList.settings = {} ;

// The last search object used in a search
SearchList.latestSearch = {} ;

//Create the popup object we'll use
SearchList.popup = new Popup();

// A dummy Prog to use with setting up new recordings
SearchList.srchProg = new Prog() ;

//Map search settings response
SearchList.SEARCH_MAP = {
	0	: "title", 
	1	: "desc",
	2	: "genre",
	3	: "channel",

js/tvguide/Pages/SearchList.js  view on Meta::CPAN



/*------------------------------------------------------------------------------------------------------*/
SearchList.args = {
		index 		: "date" ,
		subindex 	: "progsList" ,
		sort 		: SearchList.sort,
		rowClass 	: "",
		subrowClass : "lprog",
			
		popupClassName 	: "recListPop",
		
		// used to change an existing Prog (found in search)
		recselCallback 	: SearchList.setRecordings,
		priCallback 	: SearchList.setRecordings
			
	} ;


/*------------------------------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------------------------------*/

js/tvguide/Pages/SearchList.js  view on Meta::CPAN

	// create selector
	this.typeSelector = this.display_labelled_select(ol, 
			SearchList.settings.LABEL_TYPE_PX, 'Type:', 
			SearchList.settings.EDIT_TYPE_PX, this.listingsType, types, types,
			'select',
			createChangeHandler(this)) ;
}


/*------------------------------------------------------------------------------------------------------*/
SearchList.prototype.popup_fuzzyrecsel_contents = function(popupDiv, record_select)
{
	popupDiv.className = this.popupClassName ;

	var recUl = document.createElement("ul");
	recUl.className = "recprog" ;

	Prog.create_recSelList(recUl, "FUZZY", SearchList.srchProg, record_select) ;
	
	popupDiv.appendChild(recUl) ;
	
	this.recList = recUl ;
	
	// Find all entries that rely on the channel name being specified
	this.recList.reqChannel = $(".chan", $(this.recList)).toArray() ;

	// Update the dialog based on the channel name selection 
	this.update_rec_sel() ;
	
}

/*------------------------------------------------------------------------------------------------------*/
//Add a popup window for recording selection on multiple lines of the TvList display. 
//
SearchList.prototype.add_fuzzy_record_popup = function(node)
{
	var thisObj = this ;
	
	// use this width
	var popup_width = thisObj.settings.POPUP_WIDTH_PX ;
	
	var progSettings = {
		//-----------------------------------------------------
		create_popup: function(settings, x, y, callback) {
			
			var popupDiv = document.createElement("div");
			thisObj.popup_fuzzyrecsel_contents(popupDiv, callback) ; 
			var popupObj = {
				dom 	: popupDiv
			} ;
			
			return popupObj ;
		},
		//-----------------------------------------------------
		popup_node	: function(settings, popupObj) {
			return popupObj.dom ;
		},
		//-----------------------------------------------------
		show_popup	: function(settings, popupObj, x, y) {
			
			var popupDiv = popupObj.dom ;
			
			// ensure we're over the popupDiv to stop the popup cycling up/down
			x = x - 10 ;
			y = y - 10 ;
			
			// Show the popup window
			thisObj.popup.show(popupDiv, x, y, popup_width);
			thisObj.popup.adjustXY(x, y) ;
		},
		//-----------------------------------------------------
		hide_popup	: function(settings, popupObj) {
			thisObj.popup.hide();
		},
		//-----------------------------------------------------
		callback	: function(settings, vars) {
			
			var progObject = vars.prog ;
			var new_rec = vars.val ;
			
			// only update if changed
			if (new_rec != progObject.record)
			{
				// Call the fuzzy record method
				var old_rec = progObject.record ;
				progObject.record = new_rec ;
				SearchList.setFuzzyRecordings(progObject);
				
			}

		}
	} ;
	
	PopupHandler.add_popup(node, progSettings) ;
}

/*------------------------------------------------------------------------------------------------------*/
//Add a record level selection element
SearchList.prototype.display_fuzzyrecsel = function(ol)
{
	// Container
	var li = this._display_li(ol, this.settings.REC_PX, "") ;
	
		var a = document.createElement("a");
		a.id = "fuzzyrecsel" ;
		li.appendChild(a) ;

		this.fuzzyrecsel = a ;
		
			var img = document.createElement("img");
			img.src = Prog.RecImg(0) ; 
			a.appendChild(img) ;

			// add a popup display to show program details
			this.add_fuzzy_record_popup(a) ;
			
	return li ;
}

/*------------------------------------------------------------------------------------------------------*/
//Add a record level selection element
SearchList.prototype.display_searchButton = function(ol)
{
	// Container
	var li = this._display_li(ol, this.settings.SEARCH_PX, "") ;

php/PEAR/DB/NestedSet/TigraMenu.php  view on Meta::CPAN

// +----------------------------------------------------------------------+
// | Authors: Daniel Khan <dk@webcluster.at>                              |
// +----------------------------------------------------------------------+
//
// $Id: TigraMenu.php,v 1.6 2003/05/25 00:46:46 datenpunk Exp $
//

// {{{ DB_NestedSet_TigraMenu:: class

/**
* This class can be used to generate the data to build javascript popup menu
* from a DB_NestedSet node array.
* The Javascript part is done using the free available TigraMenu
* available at http://www.softcomplex.com/products/tigra_menu/.
* Currently version 1.0 is supported.
* Parts of this class where taken ftom the TreemMenu driver by Jason Rust
*
* @author       Daniel Khan <dk@webcluster.at>
* @package      DB_NestedSet
* @version      $Revision: 1.6 $
* @access       public

tpl/grid.tpl  view on Meta::CPAN


<!-- 
<script language="javascript" type="text/javascript">

function showProg()
{
	var grid = GridApp.grids.tv ;
	var chan = grid.channels.get(1) ;
	var progs = chan.progs.values(Prog.prog_in_display) ;
	var prog = progs[0] ;
	var popupObj = prog['_progPopup'] ;
	var popupDiv = popupObj.dom ;
	var popup = popupObj.top ;
	popup.show(popupDiv, 100, 100, 400);
}

function hideProg()
{
	var grid = GridApp.grids.tv ;
	var chan = grid.channels.get(1) ;
	var progs = chan.progs.values(Prog.prog_in_display) ;
	var prog = progs[0] ;
	var popupObj = prog['_progPopup'] ;
	var popupDiv = popupObj.dom ;
	var popup = popupObj.top ;
	popup.hide();
}

</script>
 -->

</head>

<body id="quartz-net-com">

<div id="quartz-body">



( run in 1.983 second using v1.01-cache-2.11-cpan-364913b4093 )