/***
* util object
* @version 1.0 build 100
* @package util
* @copyright (C) 2006 by RDG - All rights reserved!
**/

var messagedisplayed=false;

var util={

	schemes: {
			"critical": {
				bgcolor:"#cc0000",
				fgcolor:"#FFF",
				icon:"/admin/images/icons/48x48/plain/delete.gif"
			},
			"warning": {
				bgcolor:"#FFFF99",
				fgcolor:"#000",
				icon:"/admin/images/icons/48x48/plain/biginfo.gif"
			},
			"success": {
				bgcolor:"#71ed6e",
				fgcolor:"#003300",
				icon:"/admin/images/icons/48x48/plain/check.gif"
			},
			"fatal": {
				bgcolor:"#000",
				fgcolor:"#FFF",
				icon:"/admin/images/icons/48x48/plain/craig.gif"
			},
			"funny": {
				bgcolor:"#98ccfc",
				fgcolor:"brown",
				icon:"/admin/images/icons/48x48/plain/guy.gif"
			}
	}
	,


	/**
	* @function:
	* scrollMessage()
	*
	* @description:
	* Scrolls error message header
	*
	* @returns:
	* Nothing
	**/

	scrollMessage:function(){

		var msg=document.getElementById("messages");

		if(messagedisplayed==false){

			var sel=document.getElementsByTagName("select");

			for(i=0;i<sel.length;i++){

				if(util.findPosY(sel[i])<100){

					sel[i].style.visibility="hidden";

				}
			}


			messagedisplayed=true;

			var content=msg.innerHTML;

         if(this.scheme=="funny"){

            content="Something Funny Happened!<br />"+content;

         }

			msg.innerHTML="<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\" height=\"100\"><tr><td valign=\"middle\" style=\"width:60px\"><a href=\"javascript:util.hideMessage()\" title=\"Click to close\"><img src=\""+this.schemes[this.scheme].icon+"\" border=\"0\" alt=\"Click to Close\"/></a></td><td valign=\"middle\"><div onclick=\"util.hideMessage()\" title=\"Click to close\" style=\"margin-right:60px;text-align:center;\">"+content+"</div></td></tr></table>";

		}


		if(msg.offsetTop < 0){

			msg.style.top=(msg.offsetTop + 10) +  "px";

			setTimeout("util.scrollMessage()",20);

			return;
			
		}

	
	},

	/**
	* @function:
	* hideMessage()
	*
	* @description:
	* Hides error message
	*
	* @returns:
	* Nothing
	**/

	hideMessage:function(){
	
		var msg=document.getElementById("messages");

		if(msg.offsetTop >= -1*(msg.offsetHeight)){

			msg.style.top=(msg.offsetTop - 10) +  "px";

			setTimeout("util.hideMessage()",20);

			return;
			
		}

		var sel=document.getElementsByTagName("select");

		for(i=0;i<sel.length;i++){

			if(util.findPosY(sel[i])<=105){

				sel[i].style.visibility="visible";

			}
		}


		messagedisplayed=false;
	},

	/**
	* @function:
	* setMessage(String text)
	*
	* @description:
	* Sets message text for errors
	*
	* @returns:
	* Nothing
	**/

	setMessage:function(text){

			var scheme = util.setMessage.arguments[1];

			if(scheme=='' || scheme==undefined)scheme='warning';

			this.scheme=scheme;

			if(!document.getElementById("messages")){

				var el=document.createElement("div");
				el.id="messages";				
				
				el.style.visibility="visible";
				el.style.top="-100px";
				el.style.left="0px";
				el.style.width=(document.all ? document.body.offsetWidth : document.documentElement.offsetWidth)+"px";
				el.style.MozOpacity=.95;

				el.style.filter="alpha(opacity=95);";
				el.style.opacity=.95;

				el.style.font="bold 15px 'Microsoft Sans Serif',Verdana,sans-serif";
				el.style.color=this.schemes[scheme].fgcolor;
				el.style.position="absolute";

				el.style.zIndex="5000000";
				el.style.textAlign="center";

				el.style.height="99px";
				el.style.backgroundColor=this.schemes[scheme].bgcolor;
				el.style.borderBottom="1px solid #C0C0C0";

				el.onclick=function(){util.hideMessage();}

				el.innerHTML=text;
				document.body.appendChild(el);
			

			}else{

				if(messagedisplayed==false){

					var msg=document.getElementById("messages");
					msg.innerHTML=text;

				}

			}

	

	},

	/**
	* @function
	* disableElement(Array [element ID's])
	*
	* @description
	* Disables any web page element by use of floating DIV
	*
	* @returns:
	* Nothing
	**/
	
	disableElements:function(els){

		for(i=0;i<els.length;i++){

			var el=document.getElementById(els[i]);

			if(el){

				if(!document.getElementById("disabler"+i)){

					var newbox=document.createElement("div");
					newbox.id="disabler"+i;
					document.body.appendChild(newbox);

				}else{
					
					var newbox=document.getElementById("disabler"+i);

				}

				newbox.style.position="absolute";
				newbox.style.top=util.findPosY(el)+"px";
				newbox.style.left=util.findPosX(el)+"px";
				newbox.style.width=el.offsetWidth+"px";
				newbox.style.height=el.offsetHeight+"px";
				newbox.style.zIndex=2000000;
				newbox.style.overflow="hidden";
				newbox.style.MozOpacity=.75;
				newbox.title="This element is disabled";
				newbox.style.opacity=.75;
				newbox.style.filter="alpha(opacity=75)";
				newbox.style.backgroundColor="#FFF";

			}
		}

	},

	/**
	* @function
	* findPosX(Object HTMLElement)
	*
	* @description
	* Finds true X coordinate of an HTML element
	* 
	* @returns:
	* Integer
	**/

	findPosX:function(obj)
	{
		var curleft = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x)
			curleft += obj.x;
		return curleft;
	},

	/**
	* @function
	* findPosY(Object HTMLElement)
	*
	* @description
	* Finds true Y coordinate of an HTML element
	* 
	* @returns:
	* Integer
	**/

	findPosY:function(obj)
	{
		var curtop = 0;
		if (obj.offsetParent)
		{
			while (obj.offsetParent)
			{
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y)
			curtop += obj.y;
		return curtop;
	},

	popupWin:function(href,hgt,wid){

		var win_name=util.popupWin.arguments[3];

		var resize=util.popupWin.arguments[4];
		// Make all popup windows resizable 
                resize = 'yes';

		if(win_name == null) win_name="cms_popup_win";

		var pwin=window.open(href,win_name,"modal=yes,width="+wid+",height="+(hgt)+",screenX="+(screen.width/2-wid/2)+",left="+(screen.width/2-wid/2)+",screenY="+(screen.height/2-(hgt/2+50))+",top="+(screen.height/2-(hgt/2+50))+",toolbar=no,status=yes,scrollbars=yes,resizable="+resize);
                pwin.focus();

		//return false;

	},

	fixSelBoxes:function(){

		var s=document.getElementsByTagName("select");

		for(i=0;i<s.length;i++){

         s[i].style.width="auto";

		}
		for(i=0;i<s.length;i++){

			s[i].style.width=(s[i].parentNode.offsetWidth)+"px";

		}
	},
	trim:function(s){
		return s.replace(/^\s+|\s+$/,'');
	}

	
}
