var TinyLib = {};

TinyLib.hasClass = function(ele, className)
{
	if (!ele || !className || !ele.className || ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)
	{
		return false;
	}
	return true;
};

TinyLib.addClass = function(ele, className)
{
	if (!ele || !className || TinyLib.hasClass(ele, className))
		return;
	ele.className += (ele.className ? " " : "") + className;
};

TinyLib.removeClass = function(ele, className)
{
	if (!ele || !className || !TinyLib.hasClass(ele, className))
		return;
	ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
};

TinyLib.addEvent = function(element, eventType, handler)
{
    var h = function(e)
    {
        e.obj = element;
        handler(e);
    }
	try
	{
		if (element.addEventListener)
		{
			element.addEventListener(eventType, h, false);
		}
		else if (element.attachEvent)
		{
			element.attachEvent('on' + eventType, h);
		}
	}
	catch (e) {}
};



TinyRollover = function(parent)
{
	this.init = function(img)
	{
		var rsrc = img.getAttribute('rsrc');
		var src = img.src;
	    var rollover = new Image();
	    rollover.src = rsrc;
		rsrc = rollover.src;
		
		TinyLib.addEvent(img, 'mouseover', function(e)
		{
	    	img.src = rsrc;
		}, false);

		TinyLib.addEvent(img, 'mouseout', function(e)
		{
			img.src = src;
		}, false);
	}
	
	var images = parent.getElementsByTagName('img');
	for(var i = 0; i < images.length; i++)
	{
		if (images[i].getAttribute('rsrc')) this.init(images[i]);
	}
};

TinyToggle = function()
{
	var x = document.getElementsByTagName('a');
	for (var i=0;i<x.length;i++) {
	    if (x[i].getAttribute('action') != 'toggle') continue;
	    x[i].relatedElement = document.getElementById(x[i].getAttribute('targetobj'));
	    TinyLib.addEvent(x[i], 'click', function(e)
    	{
	        if (TinyLib.hasClass(e.obj.relatedElement, 'visible'))
    	    {
                TinyLib.removeClass(e.obj.relatedElement, 'visible');
	        }
    	    else
	        {
                TinyLib.addClass(e.obj.relatedElement, 'visible');
    	    }
    	});
	}
}


TinyFix = function(e)
{
	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
	{
		if (e.tagName=='IMG' && /\.png$/i.test(e.src))
      	{
			var src = e.src;
			e.src = "/tinycms/adminimages/spacer.gif";
			e.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
    	}
		else if(/\.png/i.test(e.currentStyle.backgroundImage))
		{
			var path=e.currentStyle.backgroundImage.split('"');
			var rep=(e.currentStyle.backgroundRepeat=='no-repeat')?'crop':'scale';
			e.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+path[1]+"',sizingMethod='"+rep+"')";
			e.style.height=e.clientHeight+'px';
			e.style.backgroundImage='none';
			var elkids=e.getElementsByTagName('*');
			if (elkids)
			{
				var j=elkids.length;
				if(e.currentStyle.position!="absolute") e.style.position='static';
				while (j-- >0) if(!elkids[j].style.position) elkids[j].style.position="relative";
			}
		}
	}
	else e.runtimeStyle.filter = "none";
}


function TinyUploads(templateroot) {

	var fakeFileUpload = document.createElement('div');
	fakeFileUpload.className = 'fakefile';
	fakeFileUpload.appendChild(document.createElement('input'));
	var x = document.getElementsByTagName('input');
	
	for (var i=0;i<x.length;i++) {
		if (TinyLib.hasClass(x[i], 'focusField'))
		{
	        TinyLib.addEvent(x[i], 'focus', function(e) {
	            if (TinyLib.hasClass(e.obj, 'focusField')) e.obj.select(0, e.obj.value.length);
		    });
		    TinyLib.addEvent(x[i], 'change', function(e) {
	            TinyLib.removeClass(e.obj, 'focusField');
	        });
		}
		if (x[i].type != 'file') continue;
		if (x[i].parentNode.className != 'fileinputs') continue;
		x[i].className = 'file hidden';
		var clone = fakeFileUpload.cloneNode(true);
		x[i].parentNode.appendChild(clone);
		x[i].relatedElement = clone.getElementsByTagName('input')[0];
		x[i].relatedElement.value = x[i].getAttribute('ivalue');
		
		TinyLib.addEvent(x[i], 'change', function(e) {
			e.obj.relatedElement.value = e.obj.value;
		});
	}
}