// ==UserScript==
// @name           Googlen kuvahakuun suorat linkit
// @namespace      http://gm.taistelumarsu.org/
// @description    Googlen kuvahakuun suorat linkit
// @include        http://images.google.fi/*
// @include        http://images.google.com/*
// @include        http://*.google.fi/images*
// @include        http://*.google.com/images*
// @include        http://google.fi/images*
// @include        http://google.com/images
// ==/UserScript==

//asetukset
openToNew = false;

function getQV(query, name) {
	query = query.toString();
	query = query.substring(query.indexOf('?')+1);
	vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		p = vars[i].split("=");
		if (p[0] == name) {
      			return p[1];
		}
	}
	return false;
}

function teeLinkit() {
	prevParent = false;

	imgTbl = document.getElementById('imgtb');
	cells = imgTbl.getElementsByTagName('td');
	for (i = 0; i < cells.length; i++) {
		cell = cells[i];
		if (cell.id.indexOf('Image') != -1) {
			//image row
			if (!prevParent || cell.parentNode != prevParent) {
				images = [];
				prevParent = cell.parentNode;
			}
			images[images.length] = getQV(cell.getElementsByTagName('a')[0], 'imgurl');
			
		}
		if (cells[i].id.indexOf('Text') != -1) {
			//text row
			target = cell.getElementsByClassName('f')[0];
			target.innerHTML = '<a href="' + images[cell.cellIndex] + '"' + (openToNew?' target="_blank"':'') + '>' + target.innerHTML + '</a>';
		}
	}
}

teeLinkit();

var domInsertedHandler = function(event) {
	//FIXME: this is horrible, should do it once for each element, not for all elements every time an element is inserted!
	if (event.target.innerHTML.indexOf('class="f"') != -1) {
		teeLinkit();
	}
}

document.addEventListener('DOMNodeInserted', domInsertedHandler, false);
