Järjestelmäviesti:Verkkoviite helper dev.js

Wikipediasta
Siirry navigaatioon Siirry hakuun

Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.

  • Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
  • Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
  • Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Paina Ctrl-F5.
/*
*  Tämä kaksisainen scripti luo halutulla sivulla sivusta verkkoviitteen.
* 
* Scripti muodostuu kahdesta osasta:
* - Bookmarkletista joka lataa tämän sivun
* - Tällä sivulla olevasta koodista joka parsii kohdesivun ja tulostaa verkkoviitteen
*/

/* 
* Bookmarkletin koodi:
* "javascript:(function(){document.body.appendChild(document.createElement('script')).src='//fi.wikipedia.org/w/index.php?title=Mediawiki:verkkoviite_helper.js&action=raw&ctype=text/javascript';})();"
*/

/* 
* Yksittäisten sivujen parserit
*/

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

String.prototype.ucwords = function() {
    return this.toLowerCase().replace(/(^| )[a-z]/g, function(letter) { return letter.toUpperCase(); });
}

String.prototype.normalizedate = function() {
  // Jätetään pois kellonaika silloin kun päiväys on muodossa "16.6.2014 07:20"
  if (this.match("^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4} (klo )?[0-9]{1,2}[.:][0-9][0-9](:[0-9][0-9])?$"))
  {
     return this.split(" ")[0];
  }
  
  // parsitaan bi3dPubDate: 2014-06-19 12:13:36 
  var re=/^([12][0129][0-9][0-9])-([01]?[0-9])-([0123]?[0-9]) [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}$/;
  m = re.exec(this.trim());
  if (m)
  {
     var pvm = m[3] + "." + m[2] + "." + m[1];  // dd.mm.yyyy
     return pvm;
  }

  // Muutetaan 2014-06-16T06:01:07.000+03:00 muotoon dd.mm.yyyy
  if (this.match(/[12][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T/))
  {
     var d=new Date(this.trim());
     if (d.getFullYear())
     {
        var year = d.getFullYear();
        var month = d.getMonth() +1; // GetMonth() is zero based
        var day = d.getDate(); // GetMonth() is zero based
        return day + "." + month +"." + year;
     }
  }
  return this.trim();
}

String.prototype.parseIso8601 = function() {
  var regexIso8601 = /^(\d{4}|\+\d{6})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2}):(\d{2})\.(\d{1,})(Z|([\-+])(\d{2}):(\d{2}))?)?)?)?$/;
  var lOff = -(new Date().getTimezoneOffset());
  var lHrs = Math.floor(lOff / 60);
  var lMin = lOff % 60;

  var m = regexIso8601.exec(this.trim());
  if (m) {

     return Date.UTC(
        m[1],
        (m[2] || 1) - 1,
        m[3] || 1,
        m[4] - (m[8] ? m[9] ? m[9] + m[10] : 0 : lHrs) || 0,
        m[5] - (m[8] ? m[9] ? m[9] + m[11] : 0 : lMin) || 0,
        m[6] || 0,
        ((m[7] || 0) + '00').substr(0, 3)
     );
  }

  return Date.parse(this.trim());
}

function get_rss(p)
{
	var rss_url="";
	var target_url=p['url'];
	$("link[rel='alternate']").each(function(){
		
		if (typeof $(this).attr("type") != "undefined" && $(this).attr("type") == "application/rss+xml")
		{
			if ((rss_url)=="" ||  (rss_url.length > $(this).attr("href").length ) )
			{
				rss_url=$(this).attr("href");
			}
		}
	});
	var rss_feed="";
	var item;
	$.ajax({
        type: "GET",
        url: rss_url,
        async: false,
        success : function(data) {
            rss_feed = $(data);
            
            rss_feed.find("item").each(function() {
				var $this = $(this);
				if ($this.find("link").text()==target_url)
				{
					item = {
                		title: $this.find("title").text(),
                		link: $this.find("link").text(),
                		description: $this.find("description").text(),
                		pubDate: $this.find("pubDate").text(),
                		author: $this.find("author").text()
					}
					alert("found" + item['title']);
        		}
            });
            item['feed_title']=rss_feed.find("channel > title").text();
        }
    });
    if ((typeof p['nimike']=='undefined' || p['nimike']=="") && item['title'].length )
    {
    	p['nimike']=item['title'];
    }
    if ((typeof p['pvm']=='undefined' || p['pvm']=="") && item['pubDate'].length )
    {
    	p['pvm']=item['pubDate'];
    }
    if ((typeof p['julkaisija']=='undefined' || p['julkaisija']=="") && item['feed_title'].length )
    {
    	p['julkaisija']=item['feed_title'];
    }
    if ((typeof p['authors']=='undefined' || p['authors']=="") && item['author'].length )
    {
    	p['authors']=item['author'];
    }
    return p;
}

function parse_doria() {
  var ret={};
  ret['url']=$("meta[name='citation_abstract_html_url']").attr("content");
  ret['selite']=$("meta[name='citation_keywords']").attr("content");
  ret['nimike']=$("meta[name='citation_title']").attr("content");
  ret['kieli']=$("meta[name='citation_language']").attr("content");
  ret['authors']=$("meta[name='citation_authors']").attr("content");
  ret['pvm']=$("meta[name='citation_date']").attr("content");
  ret['julkaisija']=$("meta[name='DC.contributor']").attr("content");
  
  return ret;
}

/* 
Vaikkei wikipediaa voikkaan käyttää lähteenä itsellen, niin tuetaan 
mediawikiä jotta jengi voi testata linkkiä wikisivulla
*/
function parse_mediawiki() {
  var ret={};
  ret['url']=$("link[rel='canonical']").attr("href");
  if (typeof(ret['url'])=="undefined")
  {
     ret['url']=document.location.href;
  }  
  ret['selite']="revid:" + mw.config.get("wgRevisionId");
  ret['nimike']=mw.config.get("wgPageName");
  ret['kieli']=$("html").attr("lang");
  ret['authors']="";
  ret['pvm']=$("#mw-revision-date").text();
  if (ret['pvm']=="")
  {
  	ret['pvm']=$("#footer-info-lastmod").text();
  }
  ret['julkaisija']=$("#footer-copyrightico").find("img").attr("alt");
  
  return ret;
}

function parse_turunsanomat() {
  var ret={};
  ret['url']=$("meta[property='og:url']").attr("content");
  ret['selite']='';
  ret['nimike']=$("meta[property='og:title']").attr("content");
  ret['kieli']='';
  ret['authors']=$(".content-left").find(".author").text();

  if (ret['authors']=='')
  {
     // Yritetään hakea ISOLLA kirjoitettu henkilön nimi
     ret['authors']=$(".content-left").find(".text").find("p").filter(function () {
        return (/^[A-ZÄÖÅ ]+$/.test($(this).text()) && !(/(STT|TS|LUE L)/.test($(this).text())));
     }).text();
   }

  ret['authors']=(ret['authors'] + "").ucwords();

  // title-attribuutissa on pelkästään kuluvan päivän päivämäärä
  // muiden kohdalla päiväys haetaan tagin sisältä.
  ret['pvm']=$("div.info-container").find(".date").attr('title');
  if (typeof(ret['pvm'])=="undefined")
  {
    ret['pvm']=$("div.info-container").find(".date").html();
  }

  // Jätetään pois kellonaika silloin kun päiväys on muodossa "16.6.2014 07:20"
  if (ret['pvm'].match("^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4} [0-9]{1,2}:[0-9][0-9]$"))
  {
     ret['pvm']=ret['pvm'].split(" ")[0];
  }

  ret['julkaisu']=$(".papername").html();
  return ret;
}

// Funktio hakee artikkelin header-tiedoista yms julkaisupäivämäärän
function parse_meta_pubdate()
{
    var pvm;
    if (typeof($("meta[property='og:updated_time']").attr("content"))!="undefined")
    {
  	  pvm=$("meta[property='og:updated_time']").attr("content");
    }
    else if (typeof($("meta[property='article:modified_time']").attr("content"))!="undefined")
    {
  	  pvm=$("meta[property='article:modified_time']").attr("content");
    }
    else if (typeof($("meta[property='article:published_time']").attr("content"))!="undefined")
    {
  	  pvm=$("meta[property='article:published_time']").attr("content");
    }
    else if (typeof($("meta[name='bi3dPubDate']").attr("content"))!="undefined")
    {
  	  pvm=$("meta[name='bi3dPubDate']").attr("content").normalizedate();
    }
    
    return pvm;
}

function get_article_element()
{
	var e=$(".should_be_not_found");
	
	// Haetaan isensellä;
	if ($("isense").length)
	{
		e=$("isense").first();
	}
	else if ($("article").length)
	{
		e=$("article").first();
	}
	else if ($("div.article").length)
	{
		e=$("div.article").first();
	}
	return e;
}

// Funktio yrittää arvata sisällönperusteella sen mikä on julkaisupäivä
function parse_content_pubdate()
{
	var e=get_article_element();
	
	if (e.length)
	{
		
  	   // Sisällön tulkitseminen
	   var pvm=e.find("*").filter(function () {
              return (/[Jj]ulkaistu.{1,30}[12][0129][0-9][0-9]/.test(this.innerHTML));
           }).text();

           if (pvm=="")
           {
        	pvm=e.find(".date").text().trim();
           }
           if (pvm=="")
           {             
              var re=/[0123]?[0-9]\.[0123]?[0-9]\.[12][0129][0-9][0-9]/g;
              var delim="";
              while (m = re.exec(e.text().trim()))
              {
                 if (pvm.search(m[0])==-1)
                 {
                    pvm+=delim + m[0];
                    delim=", ";

                 }
              }             
              if (pvm!="") pvm="TARKISTA_PÄIVÄYS:" + pvm;
           }

	}
	return pvm;
}

function parse_og_and_bi3d() {
  var ret={};
  ret['url']=$("link[rel='canonical']").attr("href");
  if (typeof(ret['url'])=="undefined" 
      || (ret['url'].search("https://")==-1 && ret['url'].search("http://")==-1) )
  {
     ret['url']=$("meta[property='og:url']").attr("content");
  }
  ret['selite']='';
  ret['nimike']=$("meta[property='og:title']").attr("content");
  ret['kieli']='';
  ret['authors']="";
  ret['pvm']=parse_meta_pubdate();
  if (typeof(ret['pvm'])=="undefined")
  {
  	 ret['pvm']=parse_content_pubdate();
  }
  ret['julkaisu']=$("meta[property='og:site_name']").attr("content");
  return ret;
}



function parse_helsinginsanomat() {
  var ret=parse_og_and_bi3d();
  ret['authors']="";
  $('div.byline.vcard').each(function(i,e) { 
    var delim = i ? ", " : "";
    ret['authors']+= delim + $(e).find("p.fn").text(); 
  });
  return ret;
}


function parse_iltasanomat() {
  var ret=parse_og_and_bi3d();
  ret['authors']=($('#article-main').find('p.byline').text() + "").trim();
  return ret;
}

function parse_kaleva() {
  var ret=parse_og_and_bi3d();
  ret['authors']=$('span.news-info').find('span.author').text();
  return ret;
}

function parse_rumba() {
  var e=get_article_element();
  var ret=parse_generic();
  ret['authors']=e.find("em").filter(function () {
     return (/Teksti:/.test(this.innerHTML));
  }).text().replace("Teksti: ", "");

  var pvm=e.find(".main_content_singlestory_timestamp").text();
  var re=/[0-9]{1,2}:[0-9]{1,2} -? ?([0123]?[0-9]\.[0123]?[0-9]\.[12][0129][0-9][0-9])/g;
  var m = re.exec(e.text().trim());
  if (m)
  {
     ret['pvm']=m[1];
  }

  return ret;
}


function parse_uusisuomi() {
  var ret=parse_og_and_bi3d();
  var e=$("article");
  ret['authors']=e.find(".author-wrapper").find(".author-name").text();
  ret['pvm']=e.find(".author-wrapper").find("span[property='dc:date']").text().split(" ")[0];
  return ret;
}

function parse_kansanuutiset() {
  var ret=parse_generic();
  ret['nimike']=ret['nimike'].replace("| Kansan Uutiset | Verkkolehti", "").trim();
  ret['julkaisu']="Kansan uutiset";
  ret['authors']=$(".article").find("#author").text().trim();
  return ret;
}

function parse_iltalehti() {
  var ret=parse_og_and_bi3d();
  ret['pvm']=$('p.juttuaika').text().trim();
  var re=/^[A-Z][a-z]+ +([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}) +klo +[0-9]{1,2}[.:][0-9][0-9]$/;
  var m = re.exec(ret['pvm']);
  if (m)
  {
     ret['pvm']=m[1];
  }

  ret['julkaisu']=$("meta[name='application-name']").attr("content");
  
  // Muutetaan authorin capseilla kirjoitetut nimet muotoon Ville Pekka Vallaton
  var e=$('div.author');

//Tekijä on aina henkilö
  if (e.first().text().trim().match(/(IS|STT|STT-IS|IS-STT)/))
  {
     ret['authors']="";
  }
  else if (e.length)
  {
     var tmp=($('div.author').html() + "").split("<br") ;

     tmp=tmp[0].toLowerCase().split(" ");
     ret['authors']="";
     for (var n=0; n<tmp.length; n++)
     {
  	  ret['authors']+=tmp[n].capitalize()+ " ";
     }
     ret['authors']=ret['authors'].trim();
  }
  return ret;
}

function parse_yle_uutiset() {
  var ret={};
  ret['url']=$("meta[property='og:url']").attr("content");
  ret['selite']='';
  ret['nimike']=$("meta[property='og:title']").attr("content");
  ret['kieli']='';
  ret['authors']="";
  $("article.content").find('ul.writers').find('a.author').find('span').each(function()
  	{ 
  		var author=$(this).text(); 
  		if (ret['authors']=="") ret['authors']=author;
  		else ret['authors']+=", " + author;
  	});
  ret['pvm']="";
  $("article.content").find('header').find('span.meta').find('time').each(function()
  	{ 
  		var pvm=$(this).text(); 
  		if (ret['pvm']=="") ret['pvm']=pvm;
  		else ret['pvm']+=", " + pvm;
  	});
  ret['pvm']=ret['pvm'].normalizedate();
  ret['julkaisija']=$("meta[property='og:site_name']").attr("content");
  return ret;
}

function parse_ksml() {
  var ret={};
  ret['url']=$("meta[property='og:url']").attr("content");
  ret['selite']='';
  ret['nimike']=$("isense").find("#artPreHeadAndHead").find("h1").text().trim();
  ret['kieli']='';
  ret['authors']=$("isense").find("p.byline").find('span.authorName').text().trim();
  ret['pvm']=$("isense").find("span.article-meta").find('time.date-published').find("span.lastModified").text();
  if (typeof(ret['pvm'])=="undefined")
  {
  	ret['pvm']=$("isense").find("span.article-meta").find('time.date-published').find("span.date").text();
  }
  ret['julkaisu']="Keskisuomalainen"
  return ret;
}

/* MTV3 uutisparseri alkaa */
function parse_mtv3() {
  var ret={};
  ret['url']=$("meta[property='og:url']").attr("content");
  ret['selite']='';
  ret['nimike']=$("meta[property='og:title']").attr("content");
  ret['kieli']='';
  ret['authors']="";
  $('.article').find('.article-authors').find('.author').each(function(i,e) { 
    var delim = i ? ", " : "";
    ret['authors']+= delim + $(e).find(".author-name").text(); 
  });

  var datetime=$("div.article-info").find('time.dateCreated').attr("datetime");
  if (datetime != "undefined")
  {
      ret['pvm']=datetime.normalizedate();
  }
  ret['julkaisija']=$("meta[property='og:site_name']").attr("content");
  return ret;
}
/* MTV3 uutisparseri loppuu */

function parse_generic() {
  var ret=parse_og_and_bi3d();
  var article_element=get_article_element();
  if (typeof(ret['url'])=="undefined")
  {
  	ret['url']=document.location.href;
  }
  
  if (typeof(ret['nimike'])=="undefined")
  {
  	ret['nimike']=$('title').text();
  }
  
  if (typeof(ret['pvm'])=="undefined")
  {
  	 ret['pvm']=parse_content_pubdate();
  }
   if (ret['authors']=='')
   {
      ret['authors']=article_element.find(".meta").find(".assistant").text().trim();
   }

   if (ret['authors']=='')
   {
      ret['authors']=article_element.find(".meta").find(".author").text();
   }
   if (ret['authors'].match("^[A-ZÄÖÅ ]+$"))
   {
     ret['authors']=(ret['authors'] + "").ucwords();
   }

  // Haetaan koti-liitteen meta-blokki jos kellonaikaa ei olla muuten saatu
  if (ret['pvm']=='')
  {
     ret['pvm']=article_element.find(".meta").find("time").text().trim();
  }

  // Jätetään pois kellonaika silloin kun päiväys on muodossa "16.6.2014 07:20"
  if (ret['pvm'])
  {
    ret['pvm']=ret['pvm'].normalizedate();
  }

  return ret;
}

function parse_highfi_list()
{
	if ($("li.verkkoviite-bookmarklet").length) return undefined;
	var link=$("<a>W</a>");
	link.css('color', 'silver');
	link.hover(function() {
          $(this).css({'color': 'black'});
       }, function() {
          $(this).css({'color': 'silver'});
       });
	link.attr('href','#');
	link.click(function(){
		var article=$(this).parent().parent().parent();;
		var ret={};
		ret['url']=article.find("a.main-link").attr('href');
		ret['selite']='';
		ret['nimike']=article.find("header").text().trim();
		ret['kieli']='';
 		ret['authors']="";
		ret['pvm']=article.find("div.info").find('time').attr('datetime');
		ret['julkaisija']="";
		var julkaisu_tmp=article.find("div.info").find('p.source').text().trim().split("(");
		ret['julkaisu']=(julkaisu_tmp[0] + "").trim();
		var outstr=print_verkkoviite(ret);
		alert(outstr);
		return false;
	});
	
	var list_e=$("<li>");
	list_e.attr('class','verkkoviite-bookmarklet');
	list_e.css('vertical-align','top');
	list_e.append(link);
	
	$("ul.actions").append(list_e);	
}

function parse_ampparit_list()
{
	if ($("div.verkkoviite-bookmarklet").length) return undefined;
	var link=$("<a>W</a>");
	link.css('color', 'silver');
	link.hover(function() {
          $(this).css({'color': 'black'});
       }, function() {
          $(this).css({'color': 'silver'});
       });
	link.attr('href','#');
	link.click(function(){
		var article=$(this).parent().parent().parent();
		var ret={};
		ret['url']=article.find("a.news-item-headline").attr('href');
		ret['selite']='';
		ret['nimike']=article.find("a.news-item-headline").text().trim();
		ret['kieli']='';
 		ret['authors']="";
		ret['pvm']=article.find("div.news-item-date").text().trim() + new Date().getFullYear();
		ret['julkaisija']="";
		var julkaisu_tmp=article.find("div.news-item-source").text().trim().split("(");
		ret['julkaisu']=(julkaisu_tmp[0] + "").trim();
		var outstr=print_verkkoviite(ret);
		alert(outstr);
		return false;
	});
	
	var list_e=$("<div>");
	list_e.attr('class','verkkoviite-bookmarklet');
	list_e.css('vertical-align','top');
	list_e.css('float','right');
	list_e.css('padding-left', '1em');
	list_e.append(link);
	
	$("div.news-item-wrapper").find(".news-item-info").append(list_e);	
}

function test_is_set(value)
{
   return (typeof value != 'undefined' && value != '');
}


/* 
* Verkkoviitteen tulostus
*/

function print_verkkoviite(p, print_full_info)
{
  print_full_info = print_full_info == 1 ? 1 : 0;
  p['julkaisu'] = typeof(p['julkaisu'])=="undefined" ? "" : p['julkaisu'];
  p['julkaisija'] = typeof(p['julkaisija'])=="undefined" ? "" : p['julkaisija'];
  p['kieli']=(p['kieli'] != 'fi' ? p['kieli'] : '');
  var current_date   = new Date();
  var viitattu_pvm=current_date.getDate() + "." + (current_date.getMonth()+1) + "." + current_date.getFullYear();

  var end_of_line="";
  if (print_full_info)
  {
    end_of_line="\n";
  }
   
  var outstr="<ref>" + end_of_line;
  outstr +="{{Verkkoviite "              + end_of_line;
  outstr +="| Osoite = " + p['url']      + end_of_line;
  outstr +="| Nimeke = " + p['nimike']   + end_of_line;
  outstr +="| Tekijä = " + p['authors']  + end_of_line;

  if (print_full_info || test_is_set(p['tiedostomuoto']) )
  {
     outstr +="| Tiedostomuoto = "          + end_of_line;
  }

  if (print_full_info || test_is_set(p['selite']) )
  {
     outstr +="| Selite = " + p['selite']   + end_of_line;
  }

  if (print_full_info || test_is_set(p['julkaisu']) )	 
  {
     outstr +="| Julkaisu =" +p['julkaisu'] + end_of_line;
  }

  outstr +="| Ajankohta = " + p['pvm']   + end_of_line;

  if (print_full_info || test_is_set(p['julkaisupaikka']))
  {
     outstr +="| Julkaisupaikka = "         + end_of_line;
  }

  if (print_full_info || test_is_set(p['julkaisija']))
  {
     outstr +="| Julkaisija = " + p['julkaisija'] + end_of_line;
  }

  outstr +="| Viitattu = " + viitattu_pvm + end_of_line;

  if (print_full_info || test_is_set(p['kieli']))
  {
     outstr +="| Kieli = " + p['kieli']     + end_of_line;
  }

  outstr +="}}" + end_of_line;
  outstr +="</ref>" + end_of_line;
  return outstr;
}

/* 
* Logiikka sille mitä tehdään.
*/

function handle_request() {
   if (typeof($("meta[name='citation_abstract_html_url']").attr("content")) != "undefined" )
   {
	// Käsittelee tieteelliset tietokannat jotka julkaisevat head-osiossa citation tiedot
	// https://www.doria.fi/ 
	// http://www.theseus.fi
	// 
    var p=parse_doria();	
   }
   else if (($("meta[name='generator']").attr("content")+"").search("MediaWiki") != -1 )
   {
	// Käsittelee tieteelliset tietokannat jotka julkaisevat head-osiossa citation tiedot
	// https://www.doria.fi/ 
	// http://www.theseus.fi
	// 
    var p=parse_mediawiki();	
   }
   else if (document.location.href.search("www.ts.fi")!=-1)
   {
	var p=parse_turunsanomat();	
   }
   else if (document.location.href.search("kansanuutiset.fi")!=-1)
   {
	var p=parse_kansanuutiset();	
   }
   else if (document.location.href.search("koti.ts.fi")!=-1)
   {
	var p=parse_generic();	
   }
   else if (document.location.href.search("www.hs.fi")!=-1)
   {
	var p=parse_helsinginsanomat();	
   }
   else if ((document.location.href.search("yle.fi/uutiset")!=-1) || (document.location.href.search("yle.fi/urheilu")!=-1))
   {
	var p=parse_yle_uutiset();	
   }
   else if (document.location.href.search("mtv.fi")!=-1)
   {
	var p=parse_mtv3();	
   }
   else if (document.location.href.search("iltasanomat.fi")!=-1)
   {
	var p=parse_iltasanomat();	
   }
   else if (document.location.href.search("iltalehti.fi")!=-1)
   {
	var p=parse_iltalehti();	
   }
   else if (document.location.href.search("kaleva.fi")!=-1)
   {
	var p=parse_kaleva();	
   }
   else if (document.location.href.search("ksml.fi")!=-1)
   {
	var p=parse_ksml();	
   }
   else if (document.location.href.search("uusisuomi.fi")!=-1)
   {
        var p=parse_uusisuomi();	
   }
   else if (document.location.href.search("www.rumba.fi")!=-1)
   {
        var p=parse_rumba();	
   }
   else if (document.location.href.search("high.fi")!=-1)
   {
	var p=parse_highfi_list();	
   }
   else if (document.location.href.search("www.ampparit.com")!=-1)
   {
 	var p=parse_ampparit_list();	
   }
   else
   {
 	var p=parse_generic();	
   }

//p=get_rss(p);
   if (typeof(p)!="undefined") 	
   {
      var full_ref=print_verkkoviite(p,1);
      var one_line_ref=print_verkkoviite(p,0);
      prompt(full_ref, one_line_ref);
   }
   else
   {
      alert("ERROR: no data parsed");
   }
}

  // http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet/
  // more or less stolen form jquery core and adapted by paul irish

  function getScript(url,success){
    var script=document.createElement('script');
    script.src=url;
    var head=document.getElementsByTagName('head')[0],
        done=false;
    // Attach handlers for all browsers
    script.onload=script.onreadystatechange = function(){
      if ( !done && (!this.readyState
           || this.readyState == 'loaded'
           || this.readyState == 'complete') ) {
        done=true;
        success();
        script.onload = script.onreadystatechange = null;
        head.removeChild(script);
      }
    };
    head.appendChild(script);
  }
// $("body")==null tarkistus on sitä varten, että jokiin muu
if (typeof(window.jQuery) == "undefined"  ) {
   var jquery_url="//code.jquery.com/jquery-1.9.1.js";
   getScript(jquery_url,function() {
      if (typeof jQuery=='undefined') {
         alert("JQuery loading failed");
      } else {
        handle_request();
      }
   });
}
else
{
	handle_request();
}