	/* Se encarga de desplegar en una ventana modal todos los wambeos recibidos por el usuario */
	function viewAllWambingsUser(url){
		var wambings = false;
		if ($type(window.guiObj) == 'object') {
			if ($type(window.guiObj.wambingCache)) {
				wambings = window.guiObj.wambingCache;
			}
		}
		wambings = false;
		if (wambings == false) {
			var jSonRequest = new Json.Remote(url, { 
				onComplete: function (request) {
						if (request.status == 1) {
							window.guiObj.wambingCache = request.html;
							displayAllWambings (request.html);
						} else {
							alert(request.html, "error");
						}
				}
			}).send();
		} else {
			displayAllWambings (wambings);
		}
	}
	
	function displayAllWambings(wBody) {
		startModalWindow({
			cssClass	: 'wambings',
			body  		: wBody,
  				title 		: jsLang.LBL_SEE_ALL_WAMBINGS + " " + $$(".userName")[0].innerHTML,
  				footer		: "<button type='button' onclick='stopModalWindow()'>Cerrar</button>",
  				hideOnClick : false
		});
	}
	
	/////////////////////////////////////////////////////////
	
	var WambingUser = new Class({

		 options: {
		 	requestWambingsUrl	: '/zone/group/getAllWambingCategoriesJSON',
		 	sendWambingsUrl		: '/zone/group/wambUserJSON',
		 	selectionLimit		: window.guiObj.wambingsLeft,//3,
		 	ui					: window.guiObj.userId,
		 	btnWambings			: $("btnWambeame")
		 },
		 
		initialize: function (options) {
			this.setOptions(options);
			
			this.alreadyShowed 			= false;
			this.selectedCheckboxes  	= null;
			this.availableCheckboxes 	= null;		
			
			this._addEvents();
		},
		
		_addEvents: function () {
			var me = this;
			if(this.options.btnWambings){
				this.options.btnWambings.addEvent("click", function () {
					me.requestWambingsData();
				});
			}
		},
		
		requestWambingsData: function () {
			var me			= this;
			var jSonRequest = new Json.Remote(me.options.requestWambingsUrl, {
				onRequest: function () {
					startWaiter(me.options.btnWambings);
				},
				
				onComplete: function (request) {
					stopWaiter();
					if (request.status == 1) {
						me.displayWambings (request.html);
					}else {						
						alert(request.msg);
					}
				},				
				
				onFailure: function () {
					stopWaiter();
					alert("No ha sido posible obtener los datos de wambeo. Por favor intente nuevamente o contacte al soporte de Wamba.");
				}
				
			}).send({"u": this.options.ui});
		},
		
		hideFlashForIE: function () {
				var flashObjects = $$('object');
				flashObjects.each(function (swf, index) {
					$(swf).style.visibility = "hidden";
				});
		},
		
		showFlashForIE: function () {
				var flashObjects = $$('object');
				flashObjects.each(function (swf, index) {
					$(swf).style.visibility = "visible";
				});
		},
		
		_showTopWambings: function () {
			var me = this;
			var jSonRequest = new Json.Remote("/zone/group/getTopWambingJSON", {
				onRequest: function () {
					startWaiter(me.options.btnWambings);
				},
				
				onComplete: function (request) {
					stopWaiter();
					if (request.status == 1) {
						$("topWambingsHolder").setHTML(request.html);
						$$('#topWambingsHolder .seeAllWambings a')[0].addEvent('click', function (e) {
							new Event(e).stop();
							showAllWambingsUser();
						});
					}else {						
						alert(request.msg);
					}
				},				
				
				onFailure: function () {
					stopWaiter();
					alert("No ha sido posible obtener los datos de wambeo. Por favor intente nuevamente o contacte al soporte de Wamba.");
				}
				
			}).send({"u": me.options.ui});
			
		},
		
		toggleCheckboxes: function (chkId){
			var me = this;
			this.selectedCheckboxes		= this.selectedCheckboxes || [];
			if(this.selectedCheckboxes.contains(chkId)){
				
				this.selectedCheckboxes.remove(chkId);
				if (this.selectedCheckboxes.length>=window.guiObj.wambingsLeft) {
					$$('.allowWamb').setProperty("disabled", true).addClass("disabled");
				} else {
					$$('.allowWamb').setProperty("disabled", false).removeClass("disabled");
				}
				$(chkId).removeClass("justCheck");
				$(chkId).addClass("allowWamb");
			} else {
				this.selectedCheckboxes.push(chkId);
				$(chkId).removeClass("allowWamb");
				$(chkId).addClass("justCheck");
				if (this.selectedCheckboxes.length>=window.guiObj.wambingsLeft) {
					$$('.allowWamb').setProperty("disabled", true).addClass("disabled");
				} else {
					$$('.allowWamb').setProperty("disabled", false).removeClass("disabled");
				}
			}
			
		},
		
		sendWambingsData: function () {
			var me				= this;	
			var sendingWambingsId = [];
			this.selectedCheckboxes		= this.selectedCheckboxes || [];
			
			sendingWambingsId = me.selectedCheckboxes;
			
			var sendObj = {"u": this.options.ui, "w": sendingWambingsId};
			
			var jSonRequest = new Json.Remote(me.options.sendWambingsUrl, {
				
				onComplete: function (request) {
					
					if (request.status == 1) {
						
						window.guiObj.wambingsLeft = (request.left).toInt();
						$('overlayWambs').remove();
						$('wamsLayer').remove();
						me.showFlashForIE();
						me.toggleWambingButton();
						
						setTimeout(function() {
							me._showTopWambings();
							showAllWambingsUser();
						}, 500);
						
					}else {						
						alert(request.msg);
					}
				},				
				
				onFailure: function () {
					stopWaiter();
					alert("No ha sido posible obtener los datos de wambeo. Por favor intente nuevamente o contacte al soporte de Wamba.");
				}
				
			}).send(sendObj);
			
			me.selectedCheckboxes = null;
		},
		
		displayWambings: function (html) {
			var me 					= this;
			
			var wamsDiv = new Element('div', {'id': 'wamsLayer', 'class':'wamsLayerLayout'});
			var overlayWambs = new Element('div', {'id':'overlayWambs'});
			wamsDiv.setHTML(html);
			wamsDiv.injectInside($('wrapper'));
			overlayWambs.injectInside($('wrapper'));
			overlayWambs.setOpacity(0.8);
			me.hideFlashForIE();
			$$('.radioWambings').each(function(chk, i){
				$(chk.id).addEvent('click', function(){
					me.toggleCheckboxes(chk.id);
				});
			});
			
			$('SendWambsBtn').addEvent("click", function () {
				me.sendWambingsData();
			});
			
			$('closeWambsLayer').addEvent("click", function () {
				$('overlayWambs').remove();
				$('wamsLayer').remove();
				me.showFlashForIE();
			});
		},
		
		toggleWambingButton : function () {
			var btn = $("btnWambeame");
			
			if (window.guiObj.wambingsLeft==0) {
				btn.setProperty("disabled", true).addClass("disabled");
			} else {
				btn.setProperty("disabled", false).removeClass("disabled");
			}
		}
		
	});
	
	WambingUser.implement(new Events, new Options);