'+pages+''); $('.stream > div:odd').addClass('bgr_color'); updateHeight('#history'); }); window.activateTabArea = ensure(function(tab, areas){ var parsed = false; var parts = (areas || '').split('/'); window.fsonload = $.inArray('fs', parts) >= 0; if(fsonload){ parts.splice(parts.indexOf('fs'), 1); } var replayMode = false; if($.inArray('replay', parts)>=0){ replayMode = 'replay'; } var noSoundMode = false; if($.inArray('nosound', parts)>=0){ noSoundMode = 'nosound'; } if($.inArray('ns', parts)>=0){ noSoundMode = 'ns'; } var previewMode = null; if($.inArray('p', parts)>=0){ previewMode = 'p'; } if($.inArray('preview', parts)>=0){ previewMode = 'preview'; } if($.inArray('repeat', parts)>=0){ replayMode = 'repeat'; } if($.inArray('r', parts)>=0 || $.inArray('ro', parts)>=0){ replayMode = 'r'; } if(replayMode){ parts.splice(parts.indexOf(replayMode), 1); } if(noSoundMode){ parts.splice(parts.indexOf(noSoundMode), 1); } if(previewMode){ parts.splice(parts.indexOf(previewMode), 1); } if(previewMode){ if(!parts.length){ parts = ['1-14', '999:59']; } } var area = parts[0]; if(tab == 'history' && false){ var page = parseInt(area || '1') || 1; $.ajax({ url: 'https://login.wn.com/recent/json/?pp='+history_pp+'&skip='+history_pp*(page-1), dataType: 'jsonp', success: function(response){ $ensure(function(){ renderHistory(response, page); }); } }); return true; } if(tab == 'global_history' && false){ var page = parseInt(area || '1') || 1; globalHistory.fetchStream(page, '', function(){ updateHeight('#global_history'); }); return true; } if(tab == 'my_playlists' && false){ var page = parseInt(area || '1') || 1; myPlaylists.fetchStream(page, '', function(){ updateHeight('#my_playlists'); }); return true; } if(tab == 'my_videos' && false){ var page = parseInt(area || '1') || 1; myVideos.fetchStream(page, '', function(){ updateHeight('#my_videos'); }); return true; } if(tab == 'related_sites' && areas && matchPosition(areas)){ var seconds = parsePosition(areas); scrollRelated(seconds); return false; } if(matchPosition(area) || matchAction(area)){ parts.unshift('1'); area = parts[0]; } if(tab == 'expand' && area && area.match(/\d+/)) { var num = parseInt(area); if(num < 100){ //FIX ME. Load news page with ajax here } else if(num > 1900){ //FIX ME. Load timeline page with ajax here } } else if(tab.match(/^playlist\d+$/)){ var playerId = parseInt(tab.substring(8)); var vp = videoplayers[playerId]; window.descriptionsholder = $('.descriptionsplace'); if(!vp) return; // why? no player? if(replayMode){ $('.replaycurrent'+playerId).attr('checked', true); vp.setReplayCurrent(true); } var playQueue = []; window.playQueue = playQueue; var playQueuePosition = 0; var playShouldStart = null; var playShouldStop = null; var parseList = function(x){ var items = x.split(/;|,/g); var results = []; for (i in items){ try{ var action = parseAction(vp, items[i]); if(!action.video){ if(window.console && console.log) console.log("Warning: No video for queued entry: " + items[i]); }else{ results.push(action); } }catch(e){ if(window.console && console.log) console.log("Warning: Can''t parse queue entry: " + items[i]); } } return results; }; var scrollToPlaylistPosition = function(vp){ var ppos = vp.getPlaylistPosition(); var el = vp.playlistContainer.find('>li').eq(ppos); var par = el.closest('.playlist_scrollarea'); par.scrollTop(el.offset().top-par.height()/2); } var updateVolumeState = function(){ if(noSoundMode){ if(noSoundMode == 'turn-on'){ clog("Sound is on, vsid="+vp.vsid); vp.setVolumeUnMute(); noSoundMode = false; }else{ clog("Sound is off, vsid="+vp.vsid); vp.setVolumeMute(); noSoundMode = 'turn-on'; } } } var playQueueUpdate = function(){ var playPosition = playQueue[playQueuePosition]; vp.playFromPlaylist(playPosition.video); scrollToPlaylistPosition(vp); playShouldStart = playPosition.start; playShouldStop = playPosition.stop; }; var playQueueAdvancePosition = function(){ clog("Advancing play position..."); playQueuePosition ++; while(playQueuePosition < playQueue.length && !playQueue[playQueuePosition].video){ playQueuePosition ++; } if(playQueuePosition < playQueue.length){ playQueueUpdate(); }else if(vp.getReplayCurrent()){ playQueuePosition = 0; playQueueUpdate(); vp.seekTo(playShouldStart); vp.playVideo(); }else{ vp.pauseVideo(); playShouldStop = null; playShouldStart = null; } }; function loadMoreVideos(playerId, vp, start, finish, callback){ var playlistInfo = playlists[playerId-1]; if(playlistInfo.loading >= finish) return; playlistInfo.loading = finish; $.ajax({ url: '/api/upge/cheetah-photo-search/query_videos2', dataType: 'json', data: { query: playlistInfo.query, orderby: playlistInfo.orderby, start: start, count: finish-start }, success: function(response){ var pl = vp.getPlaylist().slice(0); pl.push.apply(pl, response); vp.setPlaylist(pl); callback(); } }); } if(parts.length == 1 && matchDash(parts[0])){ var pl = vp.getActualPlaylist(); var vids = parseDash(parts[0]); parts = []; for(var i = 0; i < vids.length; i++){ playQueue.push({ 'video': pl[vids[i]-1], 'start': 0, 'stop': null }) } if(vids.length){ if(vids[vids.length-1]-1>=pl.length){ loadMoreVideos(playerId, vp, pl.length, vids[vids.length-1], function(){ if(fsonload){ activateTabArea(tab, parts[0]+'/fs'); }else{ activateTabArea(tab, parts[0]); } var pls = vp.getPlaylist(); vp.playFromPlaylist(pls[pls.length-1]); vp.playVideo(); scrollToPlaylistPosition(vp); }); return true; } } if(playQueue){ playQueueUpdate(); vp.playVideo(); parsed = true; playShouldStart = 0; } } if(previewMode){ var vids = []; var dur = 0; var pl = vp.getActualPlaylist(); area = parts[0]; if(parts.length == 1 && matchPosition(parts[0])){ vids = parseDash('1-'+pl.length); dur = parsePosition(parts[0]); parts = []; }else if(parts.length == 1 && matchDash(parts[0])){ vids = parseDash(parts[0]); dur = parsePosition("999:59"); parts = []; } if(parts.length == 2 && matchDash(parts[0]) && matchPosition(parts[1])){ vids = parseDash(parts[0]); dur = parsePosition(parts[1]); parts = []; } for(var i = 0; i < vids.length; i++){ playQueue.push({ 'video': pl[vids[i]-1], 'start': 0, 'stop': dur }) } if(playQueue){ playQueueUpdate(); vp.playVideo(); parsed = true; } } if(parts.length>1){ for(var i = 0; i < parts.length; i++){ var sel = findMatchingVideo(vp, parts[i]); if(sel){ playQueue.push({ 'video': sel, 'start': 0, 'stop': null }) } } if(playQueue){ playQueueUpdate(); vp.playVideo(); parsed = true; } }else if(area){ var sel = findMatchingVideo(vp, area); if(sel){ vp.playFromPlaylist(sel); playShouldStart = 0; parsed = true; } } if(fsonload || replayMode){ playShouldStart = 0; } if(document.location.search.match('at=|queue=')){ var opts = document.location.search.replace(/^\?/,'').split(/&/g); for(var o in opts){ if(opts[o].match(/^at=(\d+:)?(\d+:)?\d+$/)){ playShouldStart = parsePosition(opts[o].substr(3)) } if(opts[o].match(/^queue=/)){ playQueue = parseList(opts[o].substr(6)); if(playQueue){ playQueuePosition = 0; playQueueUpdate(); } } } } if(matchPosition(parts[1])){ playShouldStart = parsePosition(parts[1]); parsed = true; } if(matchAction(parts[1])){ var action = parseAction(vp, area+'/'+parts[1]); playShouldStart = action.start; playShouldStop = action.stop; parsed = true; } if(playShouldStart !== null && !playQueue.length){ playQueue.push({ video: vp.getCurrentVideo(), start: playShouldStart, stop: playShouldStop }); } if(playShouldStart != null){ setInterval(function(){ if(playShouldStop && vp.currentPlayer && vp.currentPlayer.getCurrentTime() > playShouldStop){ playShouldStop = null; if(vp.getCurrentVideo() == playQueue[playQueuePosition].video){ playQueueAdvancePosition(); }else{ playShouldStart = null; } } }, 500); vp.playerContainer.bind('videoplayer.player.statechange', function(e, state){ if(state == 'ended'){ // advance to the next video playQueueAdvancePosition(); } }); vp.playerContainer.bind('videoplayer.player.readychange', function(e, state){ if(state){ updateVolumeState(); if(playShouldStart !== null){ vp.seekTo(playShouldStart); playShouldStart = null; }else{ playShouldStop = null; // someone started other video, stop playing from playQueue } } if(fsonload) { triggerFullscreen(playerId); fsonload = false; } }); } } else if(tab.match(/^wiki\d+$/)){ if(firstTimeActivate){ load_wiki($('#'+tab), function(){ if(area){ var areaNode = $('#'+area); if(areaNode.length>0){ $('html, body').scrollTop(areaNode.offset().top + 10); return true; } } }); } } return parsed; }) window.activateTab = ensure(function(tab, area){ window.activeArea = null; if(tab == 'import_videos'){ if(area){ import_videos(area); }else{ start_import(); } return true; } if(tab == 'chat'){ update_chat_position($('.chat').eq(0)); window.activeArea = 'chat'; jQuery('.tabtrigger').offscreentabs('activateTab', 'chat'); return true; } if(tab in rev_names){ tab = rev_names[tab]; } if(tab.match(':')){ return false; } var sup = $('ul li a[id=#'+tab+']'); if(sup && sup.length>0){ window.activeArea = area; sup.first().click(); if(!window.activateTabArea(tab, area)){ window.activeArea = null; } window.activeArea = null; return true; }else{ var have_tabs = $('#playlist_menu li').length; if(tab.match(/^playlists?\d+$/)){ var to_add = +tab.substring(8).replace(/^s/,'')-have_tabs; if(to_add>0 && have_tabs){ add_more_videos(to_add); return true; } } } return false; }); window.currentPath = ensure(function(){ return window.lastHistory.replace(basepath, '').split('?')[0]; }); window.main_tab = window.main_tab || 'videos'; window.addHistory = ensure(function(path){ if(window.console && console.log) console.log("Adding to history: "+path); if(window.history && history.replaceState && document.location.hostname.match(/^(youtube\.)?(\w{2,3}\.)?wn\.com$/)){ if(path == main_tab || path == main_tab+'/' || path == '' || path == '/') { path = basepath; } else if( path.match('^'+main_tab+'/') ){ path = basepath + '/' + path.replace(main_tab+'/', '').replace('--','/'); } else { path = basepath + '/' + path.replace('--','/'); } if(document.location.search){ path += document.location.search; } if(window.lastHistory) { history.pushState(null, null, path); } else if(window.lastHistory != path){ history.replaceState(null, null, path); window.lastHistory = path; } } else{ path = path.replace('--','/'); if(path == main_tab || path == main_tab+'/' || path == '' || path == '/') { path = ''; } if(window.lastHistory != '/'+path){ window.location.hash = path? '/'+path : ''; window.lastHistory = '/'+path; } } }); $('.tabtrigger li a').live('click', ensure(function() { var tab = $(this).attr('id'); if(tab.substring(0,1) == '#'){ var name = tab.substring(1); if(name in menu_names){ name = menu_names[name][0]; } realTab = rev_names[name]; $('#'+realTab).show(); if(window.console && console.log) console.log("Triggering tab: "+name+(window.activeArea?" activeArea="+window.activeArea:'')); var path = name; if(window.activeArea){ path = path + '/' + window.activeArea; } if(tab.match(/#playlist\d+/) || tab.match(/#details\d+/)){ $('.multiple-playlists').show(); $('.related_playlist').show(); $('.longest_videos_playlist').show(); }else { $('.multiple-playlists').hide(); $('.related_playlist').hide(); $('.longest_videos_playlist').hide(); } // start the related script only when the tab is on screen showing if (tab.match(/related_sites/)) { if (mc) { mc.startCredits(); } } window.activeTab = realTab; addHistory(path); setTimeout(ensure(function(){ if(tab.match(/language--/)){ $('.tabtrigger').offscreentabs('activateTab', 'language'); } if(tab.match(/weather/)) { $('.tabtrigger').offscreentabs('activateTab', 'weather'); loadContinent(); } updateMenus(tab); updateHeight(); }), 10); } return false; })); }); -->

'); } else { var query = elem.find('.keywords').html(); $.ajax({ context: elem, url: 'https://wn.com/api/upge/cheetah-search-adv/video', cache: true, data: { 'query': query }, dataType: 'jsonp', success: function(text) { if (text.length > 0) { video_id = text[0].id; elem.find('.player').html(''); } } }); } } var stopAllYouTubeVideos = function() { var iframes = document.querySelectorAll('iframe'); Array.prototype.forEach.call(iframes, function(iframe) { iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', func: 'pauseVideo' }), '*'); }); } jQuery(function() { jQuery(".playVideo").live("click", function() { if(!$(this).hasClass("played")){ stopAllYouTubeVideos(); var elem = $(this); setTimeout(function(){ mouseOverMe(elem); }, 1000); } }); jQuery(".description_box .expandContent").live("click", function() { elem = $(this).parent().parent().parent().find('.descContent'); if(elem.height() > 51) { elem.css('height', '44px'); $(this).html('Show More '); }else{ elem.css('height', 'auto'); $(this).html('Hide '); } }); jQuery('.interview-play-off').click(function() { $(".interview-play-off").hide(); $(".interview-play").show(); $(".videoplayer-control-pause").click(); }); jQuery(".video-desc .show_author_videos").live("click", function() { query = $(this).attr('title'); container = $(this).parent().parent().parent().find('.video-author-thumbs'); $(this).parent().parent().parent().find('.video-author-thumbs').css('height', '220px'); jQuery.ajax({ url: '/api/upge/cheetah-photo-search/videoresults', data: {'query': query}, success: function(text) { if(!text) { text = i18n("No results"); } container.html(jQuery(text)); } }); }); }); // -->

Latest News for: allan massie

Edit

Blood Sacrifice by Douglas Jackson review: 'a novel of rare intelligence and ambition'

The Scotsman 14 Nov 2024
Set in Warsaw during the Second World War, Douglas Jackson’s new novel finds his resistance fighter Jan Kalisz attempting to smuggle weapons into the ghetto. Review by Allan Massie ....
Edit

Holding the Line, by Barbara Kingsolver review: 'impassioned but one-sided'

The Scotsman 24 Oct 2024
This account of the Great Arizona Mine Strike of 1983 is passionate, committed and often very moving, but it never seems to have much interest in attempting to offer a balanced picture, writes Allan Massie ....
Edit

The Great Hippopotamus Hotel by Alexander McCall Smith review: 'full of generous understanding'

The Scotsman 20 Sep 2024
Although in some respects they seem to hark back to a bygone age, in terms of their sexual politics the novels of Alexander McCall Smith could hardly be more contemporary, writes Allan Massie ....
Edit

The Glassmaker by Tracy Chevalier review: 'a very clever novel'

The Scotsman 06 Sep 2024
Following the fortunes of a family of Venetian glassmakers over the course of several centuries, Tracy Chevalier’s new novel bends time ingeniously, writes Allan Massie ....
Edit

The Golden Road by William Dalrymple review: 'a wonderful book'

The Scotsman 30 Aug 2024
Outlining the many ways in which ancient Indian culture, inventions and ideas influenced the rest of the world, this latest book from William Dalrymple is a delight, writes Allan Massie ....
Edit

It's Safer to Donate a Kidney Now Than at Any Time in History

The Pioneer News 28 Aug 2024
... the procedure is safer than ever before,” said lead researcher Allan Massie, director of the NYU Grossman School of Medicine’s Center for Surgical and Transplant Applied Research Quantitative Core.
Edit

The Lies of the Flesh by FJ Watson review - 'not your average medieval blood-curdler'

The Scotsman 23 Aug 2024
Set in the years after Bannockburn, Fiona Watson’s new novel tells the story of an English noble with a secret identity. Review by Allan Massie ....
Edit

Precipice by Robert Harris review - 'a beautifully crafted novel'

The Scotsman 16 Aug 2024
Telling the story of Herbert Asquith’s infatuation with socialite Venetia Stanley during the early years of the First World War, Robert Harris’s latest novel is a dexterous blend of the political and the personal, writes Allan Massie ....
Edit

Death at the Sign of the Rook by Kate Atkinson review - 'offers purring pleasure'

The Scotsman 08 Aug 2024
Reminiscent of the Ealing comedies, this latest outing for detective turned investigator Jackson Brodie is a delight, writes Allan Massie ....
Edit

Hunted, by Abir Mukherjee review - 'The first half is compelling, the second confusing'

The Scotsman 01 Aug 2024
The second half of this novel fails to live up to its very enjoyable opening, but it still seems destined to become a bestseller, writes Allan Massie ....
Edit

Book review: Queen Macbeth, by Val McDermid

The Scotsman 25 Apr 2024
Val McDermid’s reimagining of the Macbeth story involves as daring a trick as anything Shakespeare provided for the theatre, writes Allan Massie ....
Edit

Allan Massie: Rugby World Cup like Novak Djokovic facing the No 12 seed in a Wimbledon semi-final

The Scotsman 21 Oct 2023
One felt – I guess most of us did – that the two marvellous matches in Paris last weekend should have been Rugby World Cup semi-finals, not mere quarter-finals ....
Edit

Book review:�The Wisest Fool, by�Steven Veerapen

The Scotsman 07 Sep 2023
He may not always have acted wisely during his reign, but a new biography shows that James VI and I was no fool. Review by Allan Massie ....
Edit

Book review:�Already, Too Late, by�Carl MacDougall

The Scotsman 01 Sep 2023
Technically it may be a memoir, but Already, Too Late has all the vitality and depth of fiction, writes Allan Massie ....
Edit

Book review: So Many Lives and All of Them Are Yours, by Ron Butlin

The Scotsman 25 Aug 2023
This follow-up to Ron Butlin’s award-winning 1987 novel The Sound of My Voice is rich in comedy while offering some melancholy truths, writes Allan Massie ....

Most Viewed

×

Loading...'); var query = jQuery('.radio_query').val(); jQuery.ajax({ data: { query: query }, url: '/api/upge/cheetah-photo-search/radio', success: function(text) { jQuery('.radio-search-results').html(jQuery(text)); updateHeight(); $('#RadioSearchTable').tablesorter(); $('#RadioSearchTable').trigger("update"); } }); return false; // do not submit the form }); $(".search-tools-btn").click(function () { header = $(this); content = $(".search-tools-content"); if(content.is(':visible')) { content.hide('slow'); header.html('Tools '); }else{ content.show('slow'); header.html('Hide '); } }); });