window.onload = function() {
var keyword = getParameterFromURL("subject");
var list = "";
$.each(LinkData.getWorks(), function(workKey, workValue) {
$("#result").append("<h3>" + LinkData.getWorkName(workValue) + "</h3>");
$.each(LinkData.getFiles(workValue), function(fileKey, fileValue) {
var hit = "";
var nHit = 0;
list += "<hr><h4>Viewing file: " + fileValue + "</h4>";
$.each(LinkData.getSubjects(workValue, fileValue), function(subjKey, subjValue) {
var longitude = null;
var latitude = null;
var s = "";
s += "<hr><a href=\"" + subjValue + "\" target=\"_top\"><span class=\"subject\">" + highlight(decodeURIComponent(subjValue), keyword) + "</span></a>";
$.each( LinkData.getTriplesBySubject(workValue, fileValue, subjValue), function( tripleKey, tripleValue ) {
var prop = tripleValue.property;
var obj = tripleValue.object;
if ( prop == "http://www.w3.org/2003/01/geo/wgs84_pos#long" ) longitude = obj;
if ( prop == "http://www.w3.org/2003/01/geo/wgs84_pos#lat" ) latitude = obj;
if ( obj.indexOf("://www.youtube.com") != -1 && obj.indexOf("v=") != -1 ) {
videoId = (obj.split("v=")[1]).split("&")[0];
obj = "<a href=\"" + obj + "\" target=\"_blank\"><span class=\"object\">" + highlight(decodeURIComponent(obj), keyword) + "<br><img src=\"http://img.youtube.com/vi/" + videoId + "/mqdefault.jpg\" alt=\"YouTube video\" /><br></span></a>";
}
else if ( obj.indexOf("http") == 0 ) {
if ((obj.indexOf(".jpg" )>0 || obj.indexOf(".gif" )>0 || obj.indexOf(".png" )>0) || (obj.indexOf(".JPG" )>0 || obj.indexOf(".GIF" )>0 || obj.indexOf(".PNG" )>0))
obj = "<a href=\"" + obj + "\" target=\"_blank\"><span class=\"object\">" +shortenURL(obj) + "<br><img src=\"" + obj + "\" alt=\"image\" /><br></span></a>";
else
obj = "<a href=\"" + obj + "\" target=\"_blank\"><span class=\"object\">" + shortenURL(obj) + "</span></a>";
}
else
obj = "<span class=\"object\">" + highlight(obj, keyword) + "</span>";
s += "<br><span class=\"propertyName\">" + getLastName(prop) + ":\t</span>" + obj;
});
if ( latitude != null && longitude != null ) s += addLinkToMap( latitude, longitude );
list += s;
if ( decodeURIComponent(subjValue) == keyword ) {
hit += s;
nHit++;
}
});
if ( nHit > 0 ) {
if ( nHit == 1 )
$("#result").append( "<hr><h4>" + "1 subject hit in file: "+fileValue+"</h4>" );
else
$("#result").append( "<hr><h4>" + nHit + " subjects hit in file: "+fileValue+"</h4>" );
$("#result").append( hit + "<br><br>" );
}
});
});
$("#result").append( list );
window.find(highlight);
};
function getParameterFromURL( paramString )
{
var value = "";
var topWindow = top.window.location.search;
if( topWindow ){
var q = decodeURIComponent(topWindow.substring(1,topWindow.length)).split("&");
for ( var i = 0; i < q.length; i++ ){
var r = q[i].split("=");
if ( r[0] == paramString )
value = r[1];
}
}
return value;
}
function highlight( string, keyword )
{
if ( keyword.length > 0 ) {
var ss = string.split(keyword);
var len = ss.length;
if ( len > 1 ) {
string = ss[0];
for ( i = 1; i < len; i++ )
string += "<span class=\"highlight\">"+keyword+"</span>"+ss[i];
}
}
return string;
}
function getLastName( string )
{
string = decodeURIComponent(string);
var sharp = string.split("#");
var slash = sharp[sharp.length-1].split("/");