// ==UserScript==
// @name           PiT Lite cenovnik sa PDV
// @namespace      http://localhost
// @description    Dodaje PDV na MPC i preračunava iznos u RSD
// @include        http://*.pit.co.yu/zasporuvezu.aspx
// ==/UserScript==
// Author: Aleksandar Urošević, urke@users.sourceforge.net
// Latest update: 11 May 2008
//---------------//
// Version : 0.3 //
//---------------//
// 0.3 (11.05.2008) automatsko uzimanje kursa Eura sa home stranice
// 0.2 (01.05.2008) dodato umetanje MPC sa PDV u € i RSD u nove ćelije
// 0.1 inicijalna verzija: umetanje MPC sa PDV u € i RSD kao SPAN elementi u ćeliju sa karakteristikama komponente

function pitcenovnik()
{
	// uzima kurs Eura sa home strane
	uzmiKurs();
	var kurs = GM_getValue("pit_euro", kurs);
	kurs = window.prompt("Po potrebi ažurirajte kurs Eura\nPit Computers trenutno kursira Euro na:", kurs);

	// definisanje objekta reda
	var red = document.getElementsByTagName('tr');

	// postavljanje naslova u zaglavlje
	umetniZaglavlje("RSD sa PDV");
	umetniZaglavlje("MPC sa PDV");

	// proračun PDV-a za svaki red u cenovniku
	for ( i = 1; i <= (red.length - 1); i++ ) {
		var celija = red[i].getElementsByTagName('td');

		// uzimam naziv komponente
		var komponenta = celija[1].innerHTML;

		// uzimam maloprodajnu cenu bez PDV-a
		var mpc = celija[2].innerHTML;

		// uzimam stopu PDV-a
		var pdv = celija[8].innerHTML;
		pdv = pdv.substr(0,pdv.length-4);

		// izračunavam MPC sa PDV i zaokružujem na 2 decimale
		var mpcpdv = parseFloat(mpc) + parseFloat(pdv);
		mpcpdv = mpcpdv.toFixed(2);

		// kursiram MPC sa PDV u dinarima i zaokružujem na 2 decimale
		var din = mpcpdv * parseFloat(kurs);
		din = din.toFixed(2);

		// dodajem sve to u nove ćelije
		umetniCeliju(i,mpcpdv);
		umetniCeliju(i,din);
	}

	// piše kurs eura na početak dokumenta
	document.getElementsByTagName('div')[0].innerHTML = "<span style=\" float: right; \">Kurs Eura: " + kurs + "</span>" + document.getElementsByTagName('div')[0].innerHTML;
}

function umetniZaglavlje(naziv)
{
	var newTD = document.createElement("th");
	var newText = document.createTextNode(naziv);
	newTD.appendChild(newText);
	var trElm = document.getElementsByTagName("tr")[0];
	var refTD = trElm.getElementsByTagName("th").item(2);
	trElm.insertBefore(newTD,refTD);
}

function umetniCeliju(red,iznos)
{
	// http://www.oreillynet.com/pub/a/javascript/synd/2001/08/17/DOM-2.html?page=3
	var newTD = document.createElement("td");
	var newText = document.createTextNode(iznos);
	newTD.appendChild(newText);
	newTD.style.textAlign = "right";
	var trElm = document.getElementsByTagName("tr")[red];
	var refTD = trElm.getElementsByTagName("td").item(2);
	trElm.insertBefore(newTD,refTD);
}

function uzmiKurs() {
	var file = "kurs.html";
	fh = fopen(file, 0); // Open the file for reading
	if(fh!=-1) // If the file has been successfully opened
	{
		length = flength(fh);         // Get the length of the file    
		str = fread(fh, length);     // Read in the entire file
		fclose(fh);                    // Close the file
		
		// Display the contents of the file
		write(str);    
	}
}

function uzmiKurs() {
	var pURL = "http://home.pit.co.yu/";
	if (window.XMLHttpRequest) { // code for Mozilla, Safari, etc 
		xmlhttp=new XMLHttpRequest();
		eval('xmlhttp.onreadystatechange=parseKurs;');		
		xmlhttp.open("GET", pURL, true); // leave true for Gecko
		xmlhttp.send(null);
	}
}

function parseKurs() {
	if (xmlhttp.readyState==4) { 
		if (xmlhttp.status==200) { 
			var tmpArr=xmlhttp.responseText.split('\n');
			var tmp;
			for (var idx=0;idx<tmpArr.length;idx++) {
				if ( tmpArr[idx].match("Kurs") ) {
					tmp = tmpArr[idx].split('Kurs')[1].substr(2,5);
					GM_setValue("pit_euro", tmp);
					return true;
				}
			}
		}
	}
}

pitcenovnik();
