function getPortalInfo(portals,pid){
		for (var i=0; i < portals.length; i++) {
			if (portals[i].pid  == pid) {
				return portals[i];
			}
		}
		return null;  // no object available, maybe its not in the DB anymore
	}
	
	
	// LOGIN SEQUENCE AND PORTLET LOAD
	
var portalConfig = 	{
		id: 'mainportal',
		bodyStyle: "background-image:url(img/viewport_bg.gif);background-repeat:repeat",
        margins:'10 0 0 0',	
		items:[{
			id: 'leftcol',
            columnWidth: 0.50,
            style:'padding:10px 10px 10px 10px;'

			},{
			id: 'rightcol',
            columnWidth: 0.50,
            style:'padding:10px 10px 10px 0px'
			  
				}

		], // end portal items
		listeners: {'drop': function(e){
			
				//Examine left and right columns and stable and write prefs to cookie
				
				var currLCitems = Ext.getCmp('leftcol').items.items;
				var currRCitems = Ext.getCmp('rightcol').items.items;
				var newLCArray = [];
				var newRCArray = [];
				
				prefArray = [];
				
				for (var i=0; i < currLCitems.length; i++) {
					newLCArray.push(currLCitems[i].id);
				}
				prefArray[0] = newLCArray;
				
				
				for (var j=0; j < currRCitems.length; j++) {
					newRCArray.push(currRCitems[j].id);
				}
				prefArray[1] = newRCArray;
				prefArray[2] = [];
				cp.set('prefs', prefArray);
				
			}}
        };



function loadPortal(){


	var myMask = new Ext.LoadMask(Ext.getCmp('mainview').getEl(), {msg:"Loading Service Provider Portal, Please wait..."});
	myMask.show();
	
	// REMOVE PORTLETS
	var lcc = Ext.getCmp('leftcol');

	if (lcc.items) {
		lcc.items.each(function(portlet){
			lcc.remove(portlet);
		});
	}
	
	var rcc = Ext.getCmp('rightcol');
	if (rcc.items) {
		rcc.items.each(function(portlet){
			rcc.remove(portlet);
		});
	}
	
	
	// MAKE REQUEST


		Ext.Ajax.request({
			url: "inc/functions/factory.php",
			method: "POST",
	 		disableCaching: true,
			autoAbort: false,
			params: {
				action: "load"
			},	

			success: function(response, options) {

				var o = eval("("+response.responseText+")");

				var lc = Ext.getCmp('leftcol');
				var rc = Ext.getCmp('rightcol');

				// GET User Prefs
				var currPref = cp.get('prefs',-1);

				var useOrder = [];

				var currSpecials = ['cflow','rss','news'];
				var currLoad = o.defaultorder.concat(currSpecials);


				// USE THIS BLOCK TO HAVE STICKY PORTLET POSITIONING
				if (currPref == -1) { // NO Cookie use default order
					useOrder[0] = o.defaultorder;
					useOrder[1] =  currSpecials;
					useOrder[2] = []; // blank stable
					cp.set('prefs', useOrder);
				}else{

					// CHECK COOKIE BASED ORDER TO INCLUDE ANY NEW PORTLETS

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

						if ((currPref[0].indexOf(currLoad[i]) == -1) && (currPref[1].indexOf(currLoad[i]) == -1)){ 

							if (currLoad[i].substr(0,6) == 'portal') {
								currPref[0].push(currLoad[i]);
							}else{
								currPref[1].push(currLoad[i]);
							};
						}
					}; // end for


					useOrder[0] = currPref[0];
					useOrder[1] = currPref[1];
					useOrder[2] = currPref[2];
					cp.set('prefs', useOrder); // REWRITE COOKIE
				}


				// USE THIS BLOCK FOR NON-STICKY POSITIONS
				/*
				useOrder[0] = o.defaultorder; // LEFT COLUMN
				useOrder[1] = ['cflow', 'calp', 'products','rss','map','pod','news','training','ezine', 'webinar' ]; // RIGHT COLUMn
				useOrder[2] = []; // STABLE, NOT USED 
				*/

				// LOAD ALL PORTLETS INTO COLLECTION FOR RENDERING

				var portletStore = new Ext.util.MixedCollection();


				// LOAD ADMIN CREATED PORTLETS INTO COLLECTION

				for (var i=0; i < o.portals.length; i++) {
					portletStore.add(o.portals[i].pid, createPortlet(o.portals[i])) ;
				};


				// ADD SPECIAL PORTLETS TO COLLECTION
					///loadProductPortlet();  //start loading the Product Portlet - should be synchronus call

					//portletStore.add('products', spp.ppp);
					portletStore.add('cflow', coverflowPortlet());
					//portletStore.add('calp', calPortlet());
					portletStore.add('rss', rssPortlet());
					//portletStore.add('map', mapPortlet());
					//portletStore.add('pod', podPortlet());
	 				//portletStore.add('training', trainingPortlet());
					//portletStore.add('ezine', ezinePortlet());
					//	portletStore.add('webinar', webinarPortlet());	
					portletStore.add('news', newsPortlet());
					//portletStore.add('gallery', galleryPortlet());



				// ADD LEFT COLUMN PORTLETS TO THE PLAYING FIELD
				Ext.each(useOrder[0], function(p,idx,all){
					tp = portletStore.get(p);
					if (tp != null) {

							lc.add(tp);
							/*
							if (currPref[2].indexOf(p) > 0){ // see if the portlet is 'stabled'
								tp.hide();
								Ext.getCmp(tp.id+'rep').show();
							}
							*/
						};
					});

				lc.doLayout();

	 			// ADD RIGHT COLUMN PORTLETS TO THE PLAYING FIELD

	  			Ext.each(useOrder[1], function(p,idx,all){
					tp = portletStore.get(p);
					if (tp != null) {
							rc.add(tp);

							if (currPref[2].indexOf(p) > 0){ // see if the portlet is 'stabled'
								tp.hide();
								Ext.getCmp(tp.id+'rep').show();
							}

						};

					});

		 		rc.doLayout();

 
				if (o.level != 4) {
					Ext.getCmp('changepassbtn').show();
				};



	  		myMask.hide();

			},
			failure: function(response, options) {
				return true;
			}	
		});
		
}; // end loadportal