IKViews

By Taka Last update Dec 4, 2007 — Installed 78 times.
// ==UserScript==
// @name           IKViews
// @namespace      http://www.taka.nl/greasemonkey
// @description    displays the views of individual images in an imagekind gallery
// @include        http://*imagekind.com/member/gallery.aspx?*
// ==/UserScript==

var aGalleryImages = [];
var oGalleryResultTable;

function main() {
	var aGalleryLink = document.getElementById('ctl00_mainContent_linkGallery');
	var oButton = document.createElement('input');
	oButton.setAttribute('type','button');
	oButton.setAttribute('id','viewcountbutton');
	oButton.value = 'Click to see views on all images';
	oButton.style.zIndex = 5;
	aGalleryLink.parentNode.appendChild(oButton);
	oButton.addEventListener('click', CountViews, false);
}


function HideDiv() {
	document.getElementById('countviewsdiv').style.display = 'none';
}

function CountViews() {
	var oImageDiv, sImageId, oImage, oNewRow, i, sPhotoUrl, sPhotohtml, oPhotoXML;
	var iViewsCountSpan, iSalesCountSpan;

	document.getElementById('viewcountbutton').style.display = 'none';
	
	var oDiv = document.createElement('div');
	oDiv.style.position = 'absolute';
	oDiv.style.backgroundColor = 'white';
	oDiv.style.left = '50px';
	oDiv.style.top = '50px';
	oDiv.setAttribute('id','countviewsdiv');

	//oDiv.style.width = '400px';

	var oGalleryResultTable = document.createElement('table');
	oGalleryResultTable.border='1';

	oDiv.style.zIndex = 200;

	var oHideRow = document.createElement('tr');
	var oHideCell = document.createElement('td');
	oHideCell.colspan = 2;
	oHideCell.setAttribute('align','right');

	var oHideButton = document.createElement('input');
	oHideButton.setAttribute('type','button');
	oHideButton.value = 'Hide';
	oHideButton.addEventListener('click', HideDiv, false);
	oHideCell.appendChild(oHideButton);

	oHideRow.appendChild(oHideCell);
	oGalleryResultTable.appendChild(oHideRow);

	var oUpperRow = document.createElement('tr');
	var oTableCell = document.createElement('th');

	var oImageHeader = oUpperRow.appendChild(oTableCell.cloneNode(false));
	var oImageHeaderText = document.createTextNode('image');
	oImageHeader.appendChild(oImageHeaderText);

	var oViewsHeader = oUpperRow.appendChild(oTableCell.cloneNode(false));
	var oViewsHeaderText = document.createTextNode('views');
	oViewsHeader.appendChild(oViewsHeaderText);
	
	oUpperRow.appendChild(oImageHeader);
	oUpperRow.appendChild(oViewsHeader);
	oGalleryResultTable.appendChild(oUpperRow);

	oDiv.appendChild(oGalleryResultTable);
	document.body.insertBefore(oDiv,null);

	var oViewRow = document.createElement('tr');
	var oImageCell = document.createElement('td');
	var oViewCell = document.createElement('td');

	oViewRow.appendChild(oImageCell);
	oViewRow.appendChild(oViewCell);
	oViewCell.style.whiteSpace='nowrap';


	var oGallyDiv = document.getElementById('gallerysImages');	
	if(oGallyDiv) {
		var oImageDivs = oGallyDiv.childNodes;
		//alert(oImageDivs.length);
		for(i=0;i<oImageDivs.length;i++) {
			oImageDiv = oImageDivs.item(i);
			if(oImageDiv.tagName=='DIV') {
				sImageId = oImageDiv.id;
				oImages = oImageDiv.getElementsByTagName('img');
				oImage = oImages.item(oImages.length - 1);
				if(oImage) {
					oNewRow = oViewRow.cloneNode(true);
					oNewRow.id = 'imageresult_'+ sImageId;
					oNewRow.firstChild.appendChild(oImage.cloneNode(true));
					GetViewsSales(sImageId, oNewRow);
					oGalleryResultTable.appendChild(oNewRow);
				}
			}
		}
	}
};



function GetViewsSales(sImageId, oRow) {
	GM_xmlhttpRequest({
		method: 'GET',
		url: 'http://uploads.imagekind.com/member/image.aspx?IMID='+sImageId,
		onload: function(responseDetails) {
			var sStatus = responseDetails.status.toString();
			//alert(sStatus);
			if(sStatus=='200') {
				var oImageRow = document.getElementById('imageresult_'+ sImageId);
				if(oImageRow) {

					var sResponseText = responseDetails.responseText;
					var sSpanId = 'ctl00_mainContent_lblTimesViewed'
					var iSpanStart = sResponseText.indexOf(sSpanId);
					var iSpanEnd = sResponseText.indexOf('</span>',iSpanStart);
					var sViewText = 'viewed: ' + sResponseText.substring(iSpanStart + sSpanId.length + 2, iSpanEnd);
					oImageRow.lastChild.appendChild(document.createTextNode(sViewText));
					oImageRow.lastChild.appendChild(document.createElement('br'));

					sSpanId = 'ctl00_mainContent_lblTimesSold'
					iSpanStart = sResponseText.indexOf(sSpanId);
					iSpanEnd = sResponseText.indexOf('</span>',iSpanStart);
					sViewText = 'sold: ' + sResponseText.substring(iSpanStart + sSpanId.length + 2, iSpanEnd);
					oImageRow.lastChild.appendChild(document.createTextNode(sViewText));

					//oImageRow.lastChild.appendChild(document.createElement('br'));
					//sSpanId = 'ctl00_mainContent_lblNoComments'
					//iSpanStart = sResponseText.indexOf(sSpanId);
					//iSpanEnd = sResponseText.indexOf('</span>',iSpanStart);
					//sViewText = 'comments: ' + sResponseText.substring(iSpanStart + sSpanId.length + 2, iSpanEnd);
					//oImageRow.lastChild.appendChild(document.createTextNode(sViewText));

				}
			}
			
		}
	});
}



//main();
window.onload = main();