var myList = {	
	mlnFX: null,
	list: null,
	singLast: null,
	singFX: null,	
	initialize: function(type, obj) {
		$('mln').empty().setHTML('<ul><li>Loading&hellip;MyList</li></ul>').addClass('loader');
		mlnFX = new Fx.Style('mln', 'background-color', {duration: 1000,wait: false});
		myList.Load(type, obj);

	},
	setList: function(obj) {
		this.list = obj;
		return true;
	},
	signIn: function() {
		switch(Site.searchType) {
			case 'general': 
			case 'Packages': 	window.location.replace(unescape(window.location.pathname)); break;
			case 'Land': 		Land.changePage((Land.offset-9), Land.onPage); break;
			case 'Home': 		Home.changePage((Home.offset-9), Home.onPage); break;
			case 'Apartment': 	Apartment.changePage((Apartment.offset-9), Apartment.onPage); break;
			default: break;
		}
		myList.Load(Site.sUser.uDetails());
	},	
	signOut: function() {
		switch(Site.searchType) {
			case 'general': 
			case 'Packages': 	window.location.replace(unescape(window.location.pathname)); break;
			case 'create': 		window.location.replace(config['baseURI'] + 'selection/'); break;		
			case 'Land': 		Land.changePage((Land.offset-9), Land.onPage); myList.setList(null); break;
			case 'Home': 		Home.changePage((Home.offset-9), Home.onPage); myList.setList(null); break;
			case 'Apartment': 	Apartment.changePage((Apartment.offset-9), Apartment.onPage); myList.setList(null); break;
			default: break;	
		}
		$('mln').empty().setHTML('<ul><li>Loading&hellip;MyList</li></ul>').addClass('loader');
		myList.Load();
		
	},	
	Load: function(obj) {
		if($('logError')) $('logError').empty();

		var userURL = config['baseURI'] + config['userList'] + '?' + new Date().getTime() ;

		var request = new Json.Remote(userURL, {
			method: 'get',
			async: false,
			onComplete: function(jsonObj) {
				myList.setList(jsonObj);
				myList.populate(jsonObj);
			}
		}).send();
	},	
	populate: function(obj) {
		var holder 			= new Element('ul');
		var li_title 		= new Element('li').addClass('title').injectInside(holder);
		var title			= new Element('a',{'href': config['baseURI']+'mylist/default.aspx'}).setHTML('<div>My List</div> <span id="myList_Total">'+obj.MyListTotal+'</span>').injectInside(li_title);
		var li_Land 		= new Element('li').injectInside(holder);
		var Land_title		= new Element('a',{'href': config['baseURI']+'mylist/default.aspx?open=0'}).setHTML('Land <span id="Land_Total">'+obj.LandTotal+'</span>').injectInside(li_Land);
		var li_Home 		= new Element('li').injectInside(holder);
		var Home_title		= new Element('a',{'href':config['baseURI']+'mylist/default.aspx?open=1'}).setHTML('Home <span id="Home_Total">'+obj.HomesTotal+'</span>').injectInside(li_Home);
		var li_Apartment 	= new Element('li').injectInside(holder);
		var Apartment_title	= new Element('a',{'href':config['baseURI']+'mylist/default.aspx?open=2'}).setHTML('Apartments <span id="Apartment_Total">'+obj.ApartmentsTotal+'</span>').injectInside(li_Apartment);
		var li_Packages 	= new Element('li').injectInside(holder);
		var packTotal       = (obj.PackagesTotal != undefined) ? obj.PackagesTotal : 0;
		var pack_title		= new Element('a',{'href':config['baseURI']+'mylist/default.aspx?open=3'}).setHTML('Packages <span id="Packages_Total">' + packTotal + '</span>').injectInside(li_Packages);
		var li_tempInfo = new Element('li', {'id': 'tempInfo', 'class': 'none'}).setHTML('&larr; Click "SAVE" to add an to item your MyList').injectInside(holder);

		if(obj.MyListTotal < 1) li_tempInfo.removeClass('none');

		switch(Site.searchType) {
			case 'general': case 'create': case 'overview': break;
			default: eval('li_'+Site.searchType).addClass('current');
		}

		$('mln').empty().adopt(holder).removeClass('loader').removeClass('warning');
		//mlnFX.start('ff7f7f','ffffff');
	},
	removeFromList: function(id, name, obj, area) {
		
		if(area) Site.setType(area);
		
		eval('myList.list.'+Site.searchType+'Ids').remove(id);
		eval('myList.list.'+Site.searchType+'Links').remove(name);
		
		if($('fav_'+id)) $('fav_'+id).remove();
		
	// 	if($('detail_'+id)) $('detail_'+id).remove();
		if($('lot_'+id)) $('lot_'+id).getParent().getParent().removeClass('saved');
		
		if(Site.browseType == 'browse') {
		    switch(Site.searchType) {
			    case 'Land':
					var posID = myList.getElementPos(Land.details, 'LOT_nId', id);
					Land.details[posID]['iSaved'] = 0;
		
					if($('control_'+id)) $('control_'+id).setHTML('Save').onclick = function () {
	                            mySelection.save(id, name);
	                        };
					break;
			 	case 'Apartment':
					var posID = myList.getElementPos(Apartment.details, 'APPT_nId', id);
					Apartment.details[posID]['iSaved'] = 0;

					if($('control_'+id)) $('control_'+id).setHTML('Save').onclick = function () {
			                       mySelection.save(id, name);
			                   };
					break;

			    case 'Home':
					var posID = myList.getElementPos(Home.details, 'HOM_nId', id);
					Home.details[posID]['iSaved'] = 0;

					if($('control_'+id)) $('control_'+id).setHTML('Saved').onclick = function () {
	                            mySelection.saveHome(obj.name, obj.id, obj.facID, obj.aFacId);
	                        };
					break;
		    }
			
		}
		
		this.updateTotals('minus');
		
	},
	getElementPos: function(object, item, needle) {
		for(i=0; i< object.length; i++) {
			if (object[i][item] == needle) return i;
		}
		return false;
	},
	addToList: function(id, strName, obj) {
		eval('myList.list.'+Site.searchType+'Ids').push(id.toInt());
		eval('myList.list.'+Site.searchType+'Links').push(strName);

		if ($('actionButton')) {
			$('actionButton').setHTML('Saved').addClass('saved');
			$('actionButton').onclick = '';			
		};
		
		if($$('#list_detail li.holder').length > 0) {		
			$('item_'+id).addClass('saved');
			switch(Site.searchType) {
			    case 'Land':
					var posID = myList.getElementPos(Land.details, 'LOT_nId', id);
					Land.details[posID]['iSaved'] = 1;
					
					if($('control_'+id)) $('control_'+id).setHTML('Saved').onclick = function () {
                                    mySelection.Delete('LotIds', id, strName);
                                };
				break;
			    case 'Home':
					var posID = myList.getElementPos(Home.details, 'HOM_nId', id);
					Home.details[posID]['iSaved'] = 1;
					
					if($('control_'+id)) $('control_'+id).setHTML('Saved').onclick = function () {
                                    mySelection.deleteHome(strName, id, obj.facID, obj.aFacId);
                                };
				break;
			    case 'Apartment':
					var posID = myList.getElementPos(Apartment.details, 'APPT_nId', id);
					Apartment.details[posID]['iSaved'] = 1;
					
					if($('control_'+id)) $('control_'+id).setHTML('Saved').onclick = function () {
                                    mySelection.Delete('AptIds', id, strName);
                                };
			}
		}
		myList.updateTotals();
	},
	updateTotals: function(type) {
		var section = $(Site.searchType+'_Total').getText().toInt();
		var total = $('myList_Total').getText().toInt();

		if(type == 'minus')	{
			section = section - 1;
			total 	= total	  - 1;
		}
		 else {
			section = section + 1;
			total 	= total	  + 1;
		}
		if(section < 0) 	section = 0;
		if(total < 0) 		total = 0;
				
		$(Site.searchType+'_Total').setText(section);
		$('myList_Total').setText(total);

		if(total > 0) $('tempInfo').addClass('none');
		else $('tempInfo').removeClass('none');
	}

};
