var MiniCMS = new Object();

MiniCMS.Init = function() {
	window.name = 'MiniCMS';
	this.IE = document.all;
	this.OnFrameLoaded();
}


MiniCMS.Debug = function( msg ) {
	if( this.DebugLog = document.getElementById('DebugDisplay4') ) {
		this.DebugLog.innerHTML = msg + '<br>' + this.DebugLog.innerHTML;
	}
}

MiniCMS.FindParent = function( node, property, value ) {
	while( node != null && node != document && ( eval('node.' + property) == null || eval('node.' + property).search(value) == -1 ) )
		node = node.parentNode;
	return node
}


MiniCMS.FindSibling = function( node, property, value ) { 
	while( node != null && ( eval('node.' + property ) == null || eval('node.' + property).search(value) == -1 ) )
		node = node.nextSibling;
	return node
}


MiniCMS.FindChild = function( node, property, value ) {
	if( node == null || ( eval('node.'+property) != null && eval('node.' + property).search(value) != -1 ) )
		return node;
	node = node.firstChild;
	while( node != null ) {
		child = MiniCMS.FindChild( node, property, value );
		if( child != null ) return child;
		node = node.nextSibling
	}
	return node;
}


MiniCMS.ToggleDisplay = function( el, visible ) {
	if( visible ) {
		el.style.display = 'block';
		return true;
	}
	if( visible != null || (el.style != null && el.style.display != null && el.style.display != "none" ) ) {
		el.style.display = "none";
		return false;
	}
	el.style.display = 'block';
	return true;
}


MiniCMS.ToggleVisibility = function( el, visible ) {
	if( visible ) {
		el.style.visibility = 'visible';
		return true;
	}
	if( visible != null || (el.style != null && el.style.visibility != null && el.style.visibility != "hidden" ) ) {
		el.style.visibility = "hidden";
		return false;
	}
		el.style.visibility = 'visible';
	return true;
}


MiniCMS.Hover = function( el ) {
	el.className = el.className.replace( / Hover/, '' ) + ' Hover';
}


MiniCMS.Normal = function( el ) {
	el.className = el.className.replace( / ?Hover/, '' );
}


MiniCMS.ToggleImageState = function( img ) {
	img.src = img.src.match(/-on/) ? img.src.replace(/-on/,'') : img.src.replace(/\.gif/, '-on.gif');
}


MiniCMS.ShowStatus = function( msg ) {
	if( msg ) window.status = msg;
	else window.status = '';
}


MiniCMS.HideElement = function( elmID, overDiv ) {
	if( this.IE )
		for( i = 0; i < document.all.tags(elmID).length; i++ ) {
			var obj = document.all.tags( elmID )[i];
			if( !obj || !obj.offsetParent )
				continue;
  
			// Find the element's offsetTop and offsetLeft relative to the BODY tag.
			var objLeft   = obj.offsetLeft;
			var objTop    = obj.offsetTop;
			var objParent = obj.offsetParent;
			
			while( objParent.tagName.toUpperCase() != 'BODY' && objParent.tagName.toUpperCase() != 'HTML' ) {
				objLeft  += objParent.offsetLeft;
				objTop   += objParent.offsetTop;
				objParent = objParent.offsetParent;
			}

			var objHeight = obj.offsetHeight;
			var objWidth = obj.offsetWidth;

			if( (overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft );
			else if( (overDiv.offsetTop + overDiv.offsetHeight) <= objTop );
			else if( overDiv.offsetTop >= (objTop + objHeight) );
			else if( overDiv.offsetLeft >= (objLeft + objWidth) );
			else this.ToggleVisibility( obj, false );
		}
}


MiniCMS.ShowElement = function( elmID ) {
	if( this.IE )
		for( i = 0; i < document.all.tags(elmID).length; i++ ) {
			obj = document.all.tags( elmID )[i];
			
			if( !obj || !obj.offsetParent )
				continue;
			
			this.ToggleVisibility( obj, true );
		}
}

MiniCMS.OnFrameLoaded = function() {
	Function.prototype.bind = function() {
		var __method = this, args = [];
		for(var i = 0; i < arguments.length; i++) args.push(arguments[i]);
		var object = args.shift();
		return function() {
			for(var i = 0; i < arguments.length; i++) args.push(arguments[i]);
			return __method.apply( object, args.concat(arguments) );
		}
	};
}

MiniCMS.Init();