	//THIS REQUIRES THAT swcm_util.js be included
	//THIS REQUIRES THAT swcm_ajax.js be included
	//THIS REALLY ISN'T A CLASS, BUT IT'S ORGANIZED HERE

	var swcm_admin_pages=new Array();
	var swcm_admin_pages_last_unq=null;
	var swcm_showing_admin_home=true;

	function get_doc_height(doc) {
	    doc = doc || document;
	    var body = doc.body, html = doc.documentElement;
		var b_offset_height=0;
		if (body!=null){
			if (body.offsetHeight!=null){
				b_offset_height=body.offsetHeight;
			}
		}
			
	    //var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
		var height = Math.max( b_offset_height, html.scrollHeight, html.offsetHeight );
	    return height;
	}
	
	function resize_iframe(d){
		
	    var ifrm = document.getElementById(d);
	    var doc;
		if (ifrm!=null){
			doc = ifrm.contentDocument? ifrm.contentDocument: ifrm.contentWindow.document;
			ifrm.style.height = get_doc_height( doc ) + "px";
		}	   
		//ifrm.style.height = ifrm.offsetHeight + "px";
	}
	
	function resize_iframe_repeat(d){
		var total_runs=0;
		setInterval( function() { 
			total_runs++;
			//stop after 16 runs, so a total of 8 seconds after page load (json data) for full page load to remove iframe scroll bars
			if (total_runs<17){
				resize_iframe(d);
			}
		}, 500 );
	}
	
	function swcm_show_admin_page(_obj){
		var _path, _unq, _disp_name;
		_unq=_obj.page_id+'_swcm_admin_display_div';
		_path=_obj.page_path;
		_disp_name=_obj.display_name;

		var _a=document.getElementById('swcm_admin_applicationarea');
		var _d=document.getElementById('swcm_admin_dock');
		
		if (_path!="#"){
			if (swcm_admin_pages.indexOf(_unq)<0){
				var _div, _p;				
				
				if ((_path.substring(0,7)!="http://") && (_path.substring(0,8)!="https://") )
					_path='../'+_path;				
	
				_p='';
				_p+='<div id="'+_unq+'-content" class="applicationarea-content">';
				_p+=	'<iframe src="'+_path+'" seamless="seamless" id="'+_unq+'-iframe" width="100%" height="700px" frameborder="0" style="background-color: transparent;border: 0 none transparent;padding: 0;overflow: hidden;" onload="resize_iframe_repeat(this.id);window.parent.window.scrollTo(0,0);"></iframe>'; //need to remove width="100%" height="600px" frameborder="0"...it's NOT HTML5, but nothing currently support 'seamless'
				//Replace this onload with new onload on 29-08-2016
				//onload="resize_iframe_repeat(this.id);window.parent.window.scrollTo(0,0);"
				_p+='</div>';
	
				
				_div=document.createElement('DIV');
				_div.style.visibility='hidden';
				_div.style.display='none';
				_div.id=_unq;
				_div.innerHTML=_p;
				_div.className='openapp-div';
	
				_a.appendChild(_div);	//NEVER USE innerHTML here...it basically causes a refresh of every iframe
				swcm_admin_pages.push(_unq);
	
				//need to add item to top nav bar
				var _t='<div class="btn btn-primary btn-small paddingright30 positionrelative margin2" id="'+_unq+'_dock"><span onclick="javascript: displayWindow(\''+_unq+'\');">'+unescape(_disp_name)+'</span><div class="close color-white positionabsolute top0 right2" onclick="javascript:removeWindow(\''+_unq+'\');">×</div></div>';
				_d.innerHTML+=_t;
			}
							
			if (swcm_admin_pages_last_unq!=null){
				minimizeWindow(swcm_admin_pages_last_unq);		
			}
			
			swcm_admin_pages_last_unq=_unq;
			swcm_showing_admin_home=false;
			hideWindow('swcm_admin_homeappsarea');
			showWindow(_unq);
		}
		
	}

	function my_menu_display(){
		var mm, ul,is_child=true;
		if ((swcm_admin_pages_last_unq!=null)&&(swcm_showing_admin_home==false)){
			var curr_iframe=document.getElementById(swcm_admin_pages_last_unq+'-iframe');
			var curr_iframe_doc = curr_iframe.contentDocument || curr_iframe.contentWindow.document;
			mm=curr_iframe_doc.getElementById('my_admin_navigation');
			ul=curr_iframe_doc.getElementById('my_admin_navigation_items');
			//get the current admin navigation and hiden
			var curr_nav=curr_iframe_doc.getElementById('admin_navigation');
			
			//we are going to be swapping what is visible
			if (is_visible(mm))
				set_visible(curr_nav);
			else
				set_hidden(curr_nav);
			
		}else{
			is_child=false;
			mm=document.getElementById('my_admin_navigation');
			ul=document.getElementById('my_admin_navigation_items');
		}
		if (is_visible(mm)){
			set_hidden(mm);
		}
		else{
			
			
			var ajax_success = function (req, cust) {
				var _html='', _parent_js='';
				var icon_display_name=escape('<i class="icon-cog icon-white"></i><i class="icon-list icon-white"></i>');
				if (is_child)
					_parent_js='parent.';
				_html+='<li><a href="javascript:'+_parent_js+'swcm_show_admin_page({page_id:\'my_menu_settings\',page_path:\'admin/admin_my_menu_settings.php\',display_name:\''+icon_display_name+'\'})" title=""><i class="icon-cog icon-white"></i></a></li>';
				if (req.responseText!=""){
					var _json = eval('(' + req.responseText + ')');
					if (_json.length>0){
						for (var i=0;i<_json.length;i++){
							_html+='<li><a href="javascript:'+_parent_js+'swcm_show_admin_page({page_id:\'my_menu_'+_json[i].id+'\',page_path:\''+_json[i].nav_url+'\',display_name:\''+_json[i].display_name+'\'})" title="'+_json[i].display_name+'">'+_json[i].display_name+'</a></li>';
							
						}
					}
					
				}
				ul.innerHTML=_html;
			};
			var ajax_fail = function (status) {};
			var _url='admin_json.php?a=my_admin_menu_links';
			var _ajax = new swcm_ajax(_url, 'GET', ajax_success, ajax_fail, null, false);
			
			set_visible(mm);
			
		}

	}
	function my_admin_home_display(){
		//alert("my admin home");
		
		//my_admin_home_link
		var ajax_success = function (req, cust) {
			if (req.responseText!=""){
				var _json = eval('(' + req.responseText + ')');
				if (_json.nav_url==''){
					show_admin_home();
				}else{
					swcm_show_admin_page({page_id:'my_admin_home_'+_json.id,page_path:_json.nav_url,display_name:_json.display_name});
				}
			}else{
				show_admin_home();
			}
		};
		var ajax_fail = function (status) {};
		var _url='admin_json.php?a=my_admin_home_link';
		var _ajax = new swcm_ajax(_url, 'GET', ajax_success, ajax_fail, null, false);
		
	}
	
	function show_admin_home(){
		if (swcm_admin_pages_last_unq!=null){
			minimizeWindow(swcm_admin_pages_last_unq);		
		}
		swcm_showing_admin_home=true;
		showWindow('swcm_admin_homeappsarea');
	
	}


	function hideWindow(windowid) {
		var temp_dock_div=windowid+'_dock';
		if (document.getElementById(temp_dock_div)){
			document.getElementById(temp_dock_div).className = "btn btn-default btn-small paddingright30 positionrelative margin2";
		}
		var _w=document.getElementById(windowid);
		set_hidden(_w);
	}
	
	function showWindow(windowid) {
		var temp_dock_div=windowid+'_dock';
		if (document.getElementById(temp_dock_div)){
			document.getElementById(temp_dock_div).className = "btn btn-primary btn-small paddingright30 positionrelative margin2";
		}
		
		var _w=document.getElementById(windowid);
		set_visible(_w);
	}

	function set_hidden(el){
		el.style.visibility='hidden';
		el.style.display='none';
		
	}
	function set_visible(el){
		el.style.visibility='';
		el.style.display='';
	}
	function is_visible(el){
		if ((el.style.visibility=='hidden')||(el.style.display=='none'))
			return false;
		else
			return true;
		
	}

	function removeWindow(windowid) {
		hideWindow(windowid);
		
		
		var _i=swcm_admin_pages.indexOf(windowid);
		swcm_admin_pages.splice(_i,1);				//remove item from array

		if (swcm_admin_pages.length==0){			//if (_i>=0){
			swcm_admin_pages_last_unq=null;			//this is because we now no longer have any open windows
			showWindow('swcm_admin_homeappsarea'); 	//since we don't have any open windows, we should show the home page
			swcm_showing_admin_home=true;
		}else{
			if (swcm_admin_pages_last_unq==windowid){
				//show an already open window
				if (_i>0){
					swcm_admin_pages_last_unq=swcm_admin_pages[_i-1];
				}else{
					swcm_admin_pages_last_unq=swcm_admin_pages[_i]; //_i is no longer in the array so everything moved down, so don't need _i+1
				}
				showWindow(swcm_admin_pages_last_unq);
			}
			
		}
		
		//remove html from dock at top
		var _t=windowid+'_dock';
		var _d=document.getElementById(_t);
		_d.parentNode.removeChild(_d);
		
		
		//remove html from main area
		_d=document.getElementById(windowid);
		_d.parentNode.removeChild(_d);
	}
	
	function minimizeWindow(windowid) {
		hideWindow(windowid);
		showWindow('swcm_admin_homeappsarea'); //since we don't have any open windows, we should show the home page
		swcm_showing_admin_home=true;
	}
	
	function displayWindow(windowid) {
		//hide last element
		if (swcm_admin_pages_last_unq!=null)
			minimizeWindow(swcm_admin_pages_last_unq);

		hideWindow('swcm_admin_homeappsarea');
		swcm_showing_admin_home=false;
		
		showWindow(windowid);		
		swcm_admin_pages_last_unq=windowid;
	}		
	
		
	function resizeBg (itemid){ 
		var h = self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 
		var w = self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
		var elem = document.getElementById(itemid); 
		if(w > h){ 
				elem.width = w; 
				elem.height = w; 
		}else{ 
				elem.height = h; 
				elem.width = h; 
		} 
	}

/*
	function resize_dock(){
	   var w = document.getElementById('adminApplicationBar').offsetWidth;
	   var d = document.getElementById('swcm_admin_dock');
       //remove 200 pixels to account for icons and logout
       d.style.width = (w - 200) + "px";
	}
*/
	

