/* $Id: tmglDiggWidget.js,v 1.7 2009/07/02 11:21:24 baptisteo Exp $ */
/* static reference locations for JavaScript and images */
var jsSrc = $("script[src*='common.js']").attr("src").substring(0,$("script[src*='common.js']").attr("src").lastIndexOf("/")+1);
var DiggImgSrc = jsSrc.replace('js','i');
var noStoriesFound = "
Digg has not returned any stories
We're sorry for the inconvenience
";
function getJSONObj(url,callback,diggType) {
var jsonpid = Math.ceil( Math.random() * 100000000000 );
function wrapJson(data) {
data.type = diggType;
if(data.type == "popular") {
var popStories = buildDiggs(data.stories,true);
if (popStories != "") {
$("#diggStories > #diggMostPopContainer").append("").removeClass("diggStoriesLoader");
} else {
$("#diggStories > #diggMostPopContainer").append(noStoriesFound).removeClass("diggStoriesLoader");
}
$("#diggStories > #diggMostPopContainer > p").remove();
$("#diggStories > #diggMostPopContainer > .diggList > .diggStory a").click(function(){
dcsRebuild();
dcsMultiTrack('DCSext.widgetId','Digg Widget','DCSext.storyId',$(this).parents(".diggStory").comments(0),'DCSext.storyTitle',$(this).parents(".diggStory").find(".diggTitle").text(),'WT.tx_u','1','DCS.dcsref',DCS.dcssip+DCS.dcsuri);
});
if($("#diggStories > #diggMostPopContainer > ul").length > 1){
$("#diggStories > #diggMostPopContainer > ul:not(:first)").remove();
}
$("#diggStories > #diggMostPopContainer > ul").removeClass("hide");
} else if (data.type == "upcoming") {
var upStories = buildDiggs(data.stories,true);
if (upStories != "") {
$("#diggStories > #diggUpcomingContainer").append("").removeClass("diggStoriesLoader");
} else {
$("#diggStories > #diggUpcomingContainer").append(noStoriesFound).removeClass("diggStoriesLoader");
}
$("#diggStories > #diggUpcomingContainer > p").remove();
$("#diggStories > #diggUpcomingContainer > .diggList > .diggStory a").click(function(){
dcsRebuild();
dcsMultiTrack('DCSext.widgetId','Digg Widget','DCSext.storyId',$(this).parents(".diggStory").comments(0),'DCSext.storyTitle',$(this).parents(".diggStory").find(".diggTitle").text(),'WT.tx_u','1','DCS.dcsref',DCS.dcssip+DCS.dcsuri);
});
if($("#diggStories > #diggUpcomingContainer > ul").length > 1){
$("#diggStories > #diggUpcomingContainer > ul:not(:first)").remove();
}
$("#diggStories > #diggUpcomingContainer > ul").removeClass("hide");
} else if (data.type == "related") {
var relStories = buildDiggs(data.stories,false);
if (relStories != "") {
$("#diggStories > #diggRelatedContainer").append("").removeClass("diggStoriesLoader");
} else {
$("#diggStories > #diggRelatedContainer").append(noStoriesFound).removeClass("diggStoriesLoader");
}
$("#diggStories > #diggRelatedContainer > p").remove();
$("#diggStories > #diggRelatedContainer > .diggList > .diggStory a").click(function(){
dcsRebuild();
dcsMultiTrack('DCSext.widgetId','Digg Widget','DCSext.storyId',$(this).parents(".diggStory").comments(0),'DCSext.storyTitle',$(this).parents(".diggStory").find(".diggTitle").text(),'WT.tx_u','1','DCS.dcsref',DCS.dcssip+DCS.dcsuri);
});
if($("#diggStories > #diggRelatedContainer > ul").length > 1){
$("#diggStories > #diggRelatedContainer > ul:not(:first)").remove();
}
$("#diggStories > #diggRelatedContainer > ul").removeClass("hide");
}
}
window[callback+jsonpid] = wrapJson;
url += "&callback="+callback+jsonpid;
var hd = document.getElementsByTagName("head")[0];
var jsonScriptInc = document.createElement('script');
jsonScriptInc.type = 'text/javascript';
jsonScriptInc.src = url;
hd.appendChild(jsonScriptInc);
}
function buildDiggs(stories,internal){
var storyList = "";
if(stories.length > 0 || stories.length != null) {
for(i in stories){
/* Fix for t.connect */
if (typeof(stories[i]) != 'object') continue;
var storyUrl = stories[i].href;
/*if(internal){
storyUrl = stories[i].href;
}*/
storyList += ""
if(internal) {
var artId = "";
if (stories[i].link.indexOf(".jhtml") == -1) {
artId = stories[i].link.substring(0,stories[i].link.lastIndexOf("/")).substring(stories[i].link.substring(0,stories[i].link.lastIndexOf("/")).lastIndexOf("/")+1,stories[i].link.substring(0,stories[i].link.lastIndexOf("/")).length);
} else {
var XMLParam = stories[i].link.substring(stories[i].link.indexOf("xml=")+4,stories[i].link.length);
if (XMLParam.indexOf("&") == -1) {
artId = XMLParam;
} else {
artId = XMLParam.substring(0,XMLParam.indexOf("&"));
}
}
storyList += "";
} else {
storyList += ""
}
storyList += "";
storyList+="";
if (stories[i].thumbnail) {
if(internal) {
storyList += "";
} else {
storyList += "";
}
} else {
if(internal) {
storyList += "";
} else {
storyList += "";
}
}
storyList+=""
storyList += "";
}
}
return storyList;
}
var diggUCLoaded = false;
var diggRelLoaded = false;
$(function(){
if($("#diggWidget").length > 0){
$("#diggWidget").html("");
$("#diggWidget > .diggTabs > ul > .diggMPTab > a, #diggWidget > .diggTabs > ul > .diggUCTab > a, #diggWidget > .diggTabs > ul > .diggRTab > a").click(function(){
$("#diggWidget > .diggTabs > ul > li").removeClass("ui-tabs-selected");
$(this).parent().addClass("ui-tabs-selected")
$("#diggStories > div").hide();
$($(this).attr("href").substring($(this).attr("href").indexOf("#"),$(this).attr("href").length)).show();
if($(this).attr("href").substring($(this).attr("href").indexOf("#")+1,$(this).attr("href").length) == "diggUpcomingContainer") {
if(!diggUCLoaded) {
getJSONObj("http://digg.com/tools/services?type=javascript&endPoint=/stories/upcoming&domain=www.telegraph.co.uk&sort=digg_count-desc&count=6&size=a","TMGCallback","upcoming");
diggUCLoaded = true;
}
} else if($(this).attr("href").substring($(this).attr("href").indexOf("#")+1,$(this).attr("href").length) == "diggRelatedContainer") {
if(!diggRelLoaded) {
var keywordSearch = $(".storyHead > h1").text()+" "+$(".storyHead > h2").text();
keywordSearch = keywordSearch.replace(/[^a-z\d]/ig,"%20");
$.getJSON("http://search.yahooapis.com/ContentAnalysisService/V1/termExtraction?appid=deniHHzV34FqQPWGih.kDVGS9XU6CWMYkwNK8VJyzFlTmH8SzOSEwMTm2ghAMziODZvIiYAdnVdk8vI-&context="+keywordSearch+"&output=json&callback=?",
function(data){
if(data.ResultSet) {
var searchTerm = data.ResultSet.Result[0].replace(" ","%20");
if(data.ResultSet.Result.length > 1) {
searchTerm += "%20" + data.ResultSet.Result[1].replace(" ","%20");
}
} else {
var searchTerm = keywordSearch;
}
getJSONObj("http://digg.com/tools/services?type=javascript&endPoint=/stories/popular&search="+searchTerm+"&sort=promote_date-desc&count=6&size=a","TMGCallback","related");
});
diggRelLoaded = true;
}
}
return false;
});
$(".diggMPTab > a, .diggUCTab > a").click(function(){
if($("#diggFooter[class!='diggFTTele']").length > 0){
$("#diggFooter").removeClass("diggFTDigg").addClass("diggFTTele")
}
return false;
});
$(".diggRTab > a").click(function(){
if($("#diggFooter[class!='diggFTDigg']").length > 0){
$("#diggFooter").removeClass("diggFTTele").addClass("diggFTDigg")
}
return false;
});
getJSONObj("http://digg.com/tools/services?type=javascript&endPoint=/stories/popular&domain=www.telegraph.co.uk&sort=promote_date-desc&count=6&size=a","TMGCallback","popular");
}
});