// ==UserScript==
// @name           Link to Quakr (from flickr)
// @namespace      http://www.quakr.co.uk
// @description    A script to link fro flickr to a geotagged photo in quakr
// @include        http://www.flickr.com/photos/*
// @include        http://flickr.com/photos/*
// ==/UserScript==

function addGlobalStyle(css) {
    var head, style;
    head = document.getElementsByTagName('head')[0];
    if (!head) { return; }
    style = document.createElement('style');
    style.type = 'text/css';
    style.innerHTML = css;
    head.appendChild(style);
}

addGlobalStyle('.quakrLink { background-color:#ffff99;padding:6px;border:1px solid #ff9900; color:#000099;}');
addGlobalStyle('.quakrLink a:hover { color:#0000ff; }');

function FlickrQuakrLink() {

    var lat='';
    var long='';
    var headingexists = false;

    var thetags = document.getElementById("thetags");
    var nodes = thetags.getElementsByTagName("a");
    var point = new RegExp("^point");
    for (var i = 0; i < nodes.length; i++) {
    	var node = nodes[i];
	if (node.innerHTML.match(point))  { headingexists = true; }
    }

    if (!headingexists) {
	var themtags = document.getElementById("themachinetags");
	var mnodes = themtags.getElementsByTagName("a");
	var geodir = new RegExp("^geo:dir");
	var gehead = new RegExp("^ge:head");
	var geheading = new RegExp("^ge:heading");
	for (var i = 0; i < mnodes.length; i++) {
	    var mnode = mnodes[i];
	    if (mnode.innerHTML.match(geodir))  { headingexists = true; }
	    if (mnode.innerHTML.match(gehead))  { headingexists = true; }
	    if (mnode.innerHTML.match(geheading))  { headingexists = true; }
        }
    }

    var metatags = document.getElementsByTagName('meta');
    var icbmexp = new RegExp("ICBM");
    for(j=0;j<metatags.length;j++) {
        var metaTag = metatags[j];
        if(metaTag.name=='ICBM') {
		var latlong = metaTag.content;
		var comma = latlong.indexOf(",");
		lat = latlong.substring(0,comma);
		long = latlong.substring(comma+2);
	}
    }

    var about = document.getElementById("About");

    if(lat!='' && long!='' && headingexists) { 
	   var b = document.createElement('br');
           var l = document.createElement('a');
	   l.innerHTML = "<span class='quakrLink'>View this location in Quakr</span>";
	   l.href = "http://www.quakr.co.uk/viewr/?lat="+lat+"&lon="+long+"&tag=";
	   about.parentNode.insertBefore(b, about);
           about.parentNode.insertBefore(l, about);
    }
}

FlickrQuakrLink();


