/*

tingelets.js by Maurice Kühlborn
www.minimalweb.de
$Date: 2007-04-15 12:21:45 +0200 (Sun, 15 Apr 2007) $
$Revision: 291 $

*/

tingelets = {
	
	host:'http://tingelets.com/public/',
	tags:new Array('p','ul','li','div','a','h1','h2','h3','h4','h5','h6','form'),

	tingeTag:function(tagname,silent) {
		var tagnames = tagname.split(' '); // support for multiple tags seperated by space
		var missing = tagname.split(' '); // per default all tags are missing
		
		for(var i=0; i < tagnames.length; i++) {
			var tags = document.getElementsByTagName(tagnames[i]);
			if(tags.length > 0) {
				var tile = 'generic-green';
				for (j=0; j<tingelets.tags.length; j++) {
					if(tingelets.tags[j] == tagnames[i]) tile = tagnames[i];
				}
				for (k=0; k<tags.length; k++) {
					tags[k].style.background = tingelets.bgImage(tile);
				}
				missing[i] = false; // mark existing classes as false in the missing-array
			}
		}
		missing = tingelets.clearArray(missing);
		if ((missing.length > 0) && (silent == null)) tingelets.notify('Sorry, tags named "'+missing.join(', ')+'" were not found in this document.');
	},
	
	tingeId:function(id) {
		var ids = id.split(' '); // support for multiple ids seperated by space
		var missing = id.split(' '); // per default all ids are missing
		for(var i=0; i < ids.length; i++) {
			if(document.getElementById(ids[i])) {
				missing[i] = false; // mark existing classes as false in the missing-array
				document.getElementById(ids[i]).style.background = tingelets.bgImage('generic-yellow');
			}
		}
		missing = tingelets.clearArray(missing);
		if (missing.length > 0) tingelets.notify('Sorry, id(s) "'+missing.join(', ')+'" were not found in this document.');
	},
	
	tingeClass:function(classname) {
		var classnames = classname.split(' '); // support for multiple classes seperated by space
		var missing = classname.split(' '); // per default all classes are missing
		var tags = document.getElementsByTagName('*');
		for (i=0; i<tags.length; i++) {
			if (tags[i].className != '') {
				var classes = tags[i].className.split(' ');
				for(var j=0; j < classes.length; j++) {
					for(var k=0; k < classnames.length; k++) {
						if (classes[j] == classnames[k]) {
							tags[i].style.background = tingelets.bgImage('generic-blue');
							missing[k] = false; // mark existing classes as false in the missing-array
						}
					}
				}
			}
		}
		missing = tingelets.clearArray(missing);
		if (missing.length > 0) tingelets.notify('Sorry, classes named "'+missing.join(', ')+'" were not found in this document.');
	},
	
	clearArray:function(arr) {
		var cleared = new Array();
		for(var i=0; i < arr.length; i++) {
			if(arr[i]) cleared.push(arr[i]);
		}
		return cleared;
	},
	
	bgImage:function(filename) {
		return 'url('+tingelets.host+'images/'+filename+'.png) repeat 0 0';
	},
	
	promptUser:function(message) {
		var inp = '';
		while( inp == '' ) {
			inp = prompt(message,'');
		}
		return (inp != null)? inp : false;
	},
	
	notify:function( message ) {
			
			var box = document.createElement('div');
			box.setAttribute('id','tingelet-notifier');
			box.style.width = '100%';
			box.style.margin = '0';
			box.style.position = 'fixed';
			box.style.top = '0px';
			box.style.left = '0px';
			box.style.fontSize = '12px';
			box.style.fontWeight = 'bold';
			box.style.fontFamily = 'Tahoma, Arial, Verdana, sans-serif';
			box.style.background = 'url('+tingelets.host+'images/transparent-black.png) repeat';
			box.style.textAlign = 'left';
		
			var paragraph = document.createElement('div');
			paragraph.style.padding = '0 0 0 60px';
			paragraph.style.lineHeight = '45px';
			paragraph.style.height = '45px';
			paragraph.style.background = 'url('+tingelets.host+'images/medium-signet-green.png) no-repeat 0 50%';
			paragraph.style.color = '#fff';
		
			var msg = document.createTextNode(message);
		
			paragraph.appendChild(msg);
			box.appendChild(paragraph);
			document.getElementsByTagName('body')[0].appendChild(box);
			document.getElementsByTagName('body')[0].onclick = function() {
				currentBox = document.getElementById('tingelet-notifier');
				document.getElementsByTagName('body')[0].removeChild(currentBox);
				document.getElementsByTagName('body')[0].onclick = null;
			}
	},

	closeBox:function() {
		currentBox = document.getElementById('tingelet-notifier');
		document.getElementsByTagName('body')[0].removeChild(currentBox);
	},


	/* Coming soon */
	
	hoverMode:function() {
		var tags = document.getElementsByTagName('*');
		for(x=0; x < tags.length; x++) {
			tags[x].onmouseover = function() {
				this.style.background = tingelets.bgImage('generic-blue');
			}
			tags[x].onmouseout = function() {
				this.style.background = none;
			}
		}
	}
	
}
