var myRequestBuilder = function(oState, oSelf) {
			// Get states or use defaults
			var sort = (oState.sortedBy) ? oState.sortedBy.key : "Date";
			var dir = (oState.sortedBy && oState.sortedBy.dir == YAHOO.widget.DataTable.CLASS_DESC) ? "desc" : "asc";
			var startIndex = (oState.pagination) ? oState.pagination.recordOffset : 0;
			var results = (oState.pagination) ? oState.pagination.rowsPerPage : 20;
			// Build custom request
			n = "cat="+myFilter+"&del="+myDel+"&startIndex=" + startIndex + "&results=" + results + "&sort=" + sort + "&dir=" + dir ;
			return n;
		 };

YAHOO.example.DynamicData = function() {
			
			var myColumnDefs = [
					{key:"Title", width:131, resizeable:true, sortable:true, formatter:"myCustom2"},
					{key:"Date", width:40, resizeable:true, sortable:true},
					{key:"Len", width:28, resizeable:true, sortable:true, formatter:"myCustom3"},
					{key:"State", width:14, resizeable:true, sortable:true, formatter:"myCustom"}
				];
				
				YAHOO.widget.DataTable.Formatter.myCustom = function(elCell, oRecord, oColumn, oData) {
					if(oRecord.getData("State") == 2) {
						elCell.innerHTML = '<img src="wait.gif">';
					}
					if(oRecord.getData("State") == 3) {
						elCell.innerHTML = '<img src="loading.gif">';
					}
					if(oRecord.getData("State") == 4) {
						elCell.innerHTML = '<img src="ok.gif">';
					}
				};
				
				YAHOO.widget.DataTable.Formatter.myCustom2 = function(elCell, oRecord, oColumn, oData) {
					elCell.innerHTML = '<div style="height:10px">'+unescape(oRecord.getData("Title"))+'</div>';
				};
				
				YAHOO.widget.DataTable.Formatter.myCustom3 = function(elCell, oRecord, oColumn, oData) {
					var time = oRecord.getData("Len");
					var hours = Math.floor(time / 3600);
					var minutes = Math.floor((time % 3600) / 60);
					var seconds = Math.floor(time % 60);
					minutes = String(minutes);
					seconds = String(seconds);
					if( minutes.length == 1) minutes = "0"+minutes;
					if( seconds.length == 1) seconds = "0"+seconds;
					elCell.innerHTML = minutes+":"+seconds;
				};
				
				myDataSource = new YAHOO.util.DataSource( "demovideos?" );
				myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
				myDataSource.responseSchema = { resultsList: "records", fields: ["Title","ID","Video","Image","ImageLow","Tags","Description","Date","Len","State"], metaFields: {totalRecords: "totalRecords", isConverting: "isConverting", recordsReturned: "recordsReturned"} };
				myDataSource.doBeforeCallback = function(oRequest, oFullResponse, oParsedResponse) {
					
					YAHOO.util.Dom.setStyle("single", "width", '316px');
					myDel = '';
					if(oParsedResponse.meta.isConverting==1)
					{
						setTimeout(checkMyVideos,45*1000);
					}
					if(oParsedResponse.meta.recordsReturned < 9) {
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(0), 131);
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(1), 40);
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(2), 28);
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(3), 31);
					}
					else
					{
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(0), 131);
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(1), 40);
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(2), 28);
						singleSelectDataTable.setColumnWidth(singleSelectDataTable.getColumn(3), 14);
					}
					return oParsedResponse;
				};
	  
				singleSelectDataTable = new YAHOO.widget.DataTable("single",
						myColumnDefs, myDataSource, {
							initialRequest:'sort=Date&dir=desc&startIndex=0&results=20',
							selectionMode:"single",
							dynamicData: true,
							generateRequest: myRequestBuilder,
							sortedBy:{key:"Date",dir:"desc"},
							paginator: new YAHOO.widget.Paginator({
								rowsPerPage: 20,
								pageLinks: 5,
								template: '{FirstPageLink}{PageLinks}{LastPageLink}'
							}),
							width:"314px",
							height:"180px",
							scrollable:true
						});
				singleSelectDataTable.handleDataReturnPayload = function(oRequest, oResponse, oPayload) {
					
							oPayload.totalRecords = oResponse.meta.totalRecords; 
							return oPayload;
						};
            
				// Subscribe to events for row selection
				singleSelectDataTable.subscribe("rowMouseoverEvent", singleSelectDataTable.onEventHighlightRow);
				singleSelectDataTable.subscribe("rowMouseoutEvent", singleSelectDataTable.onEventUnhighlightRow);
				singleSelectDataTable.subscribe("rowClickEvent", singleSelectDataTable.onEventSelectRow);
				singleSelectDataTable.subscribe("keydown", function( p_oEvent ) {
					nCharCode = YAHOO.util.Event.getCharCode(p_oEvent);
					if(nCharCode==46)
					{
						record = singleSelectDataTable.getRecord( singleSelectDataTable.getSelectedRows()[0] );
						if(confirm("Remove "+record.getData('Title')+" from the media manager ?"))
						{
							alert("This feature is not available in the DEMO version");
						}
					}
				});
				singleSelectDataTable.subscribe("rowSelectEvent", function( oArgs ) {
					o=document.getElementById('man_image');
					o.src=oArgs.record.getData('ImageLow');
					o=document.getElementById('man_descr');
					o.value=unescape( oArgs.record.getData('Description') );
					o=document.getElementById('man_title');
					o.value=unescape( oArgs.record.getData('Title') );
					o=document.getElementById('man_tags');
					o.value=unescape( oArgs.record.getData('Tags') );
				
				});
				
				return {
					ds: myDataSource,
					dt: singleSelectDataTable
				};

				
		}();


