//Event Listener Functions
	function addLoadListener(fn){if(typeof window.addEventListener!='undefined'){window.addEventListener('load',fn,false);}else if (typeof document.addEventListener != 'undefined'){document.addEventListener('load',fn,false);}else if(typeof window.attachEvent!='undefined'){window.attachEvent('onload',fn);}else{return false;}return true;}
	function attachEventListener(target, eventType, functionRef, capture){if(typeof target.addEventListener!="undefined"){target.addEventListener(eventType,functionRef,capture);}else if(typeof target.attachEvent!="undefined"){target.attachEvent("on"+eventType,functionRef);}else{return false;}return true;}
	function getEventTarget(e){var o;if(!e){var e=window.event;}if(e.target){o=e.target;}else if(e.srcElement){o=e.srcElement;}if(o.nodeType==3){o=o.parentNode;}return o;}

//Get Functions
	//returns an object
	function getObj(oId){var d=document,i,el;el=d.getElementById?d.getElementById(oId):d.all?d.all[oId]?d[oId]:d[oId]:null;if(!el){if(d.forms.length>0){for(i=0; !el && i<d.forms.length; i++){el=d.forms[i][oId];}}}return el;}
	//returns width & height of the viewport window
	function getViewportWH(){var w=window.innerWidth?window.innerWidth-21:document.documentElement?document.documentElement.clientWidth:document.body.clientWidth?document.body.clientWidth:null;var h=window.innerHeight?window.innerHeight-21:document.documentElement?document.documentElement.clientHeight:document.body.clientHeight?document.body.clientHeight:null;if(w&&h){return [w,h];}}

//Global Variables
	var g_viewportX;
	var g_viewportY;
	
	//set values
	function setViewportXY(){
		g_viewportX=getViewportWH()[0];
		g_viewportY=getViewportWH()[1];
	}	
	
//Attach Events
	attachEventListener(window,"load",setViewportXY,false);
	attachEventListener(window,"resize",setViewportXY,false);
	attachEventListener(window,"load",Moogler_adjustDialogDisplay,false);
	
//Misc
	function Moogler_appendCssClass(obj,n){obj.className+=n;}
	function Moogler_restoreCssClass(obj,n){obj.className=obj.className.replace(n,'');}
	function Moogler_adjustDialogDisplay(){if(dialog){try{var oDialog=getObj(dialog.get_id());if(oDialog.style.display==''){oDialog.style.display='none';}}catch(err){}}}
	function Moogler_PostParent(){
		if(parent.oMoogler.post){
			try{
				parent.oMoogler.post=false;
				parent.document.forms[0].submit();
				return;
			}
			catch(err){
			
			}
		}else{
			return;
		}
	}
	
	function Moogler_CollapseItem(el,m){
		if(el){
			if(m==''){
				if(el.style.display=='' || el.style.display=='none'){
					el.style.display='block';
					Moogler_UpdateCssClass(getObj('moogler-form-title'),'show');
				}else if(el.style.display=='block'){
					el.style.display='none';
					Moogler_UpdateCssClass(getObj('moogler-form-title'),'hide');
				}
			}else{
				if(m=='show'){
					el.style.display='block';
					Moogler_UpdateCssClass(getObj('moogler-form-title'),'show');
				}else if(m=='hide'){
					el.style.display='none';
					Moogler_UpdateCssClass(getObj('moogler-form-title'),'hide');
				}
			}
		}
	}
	
	function Moogler_UpdateCssClass(el,m){
		if(m=='show'){
			Moogler_appendCssClass(el,' hide-form');
		}else if(m=='hide'){
			Moogler_restoreCssClass(el,' hide-form')
		}
	}