var product = {

	wishlist:function(a,e){
		var u;
		if((u=a.getAttribute("href"))){
			
			var x = new Ajax.Request();
			x.method = "GET";
			x.wistlist = a;
			
			//PRECISA SER TESTADO MAIS A FUNDO.
			//x.header.add("Cache-Control", "no-store, no-cache, must-revalidate");
			//x.header.add("Cache-Control", "post-check=0, pre-check=0");
			//x.header.add("Pragma", "no-cache");
			x.header.add("If-Modified-Since", "Wed, 15 Nov 1995 04:58:08 GMT")

			var p = compono.getByID('pnlMessage');
			var tl = compono.getByID('pnlMessageTitle');
			var tx = compono.getByID('pnlMessageText');
			
			var pB = compono.getByID('pnlMessageB');
			var tlB = compono.getByID('pnlMessageTitleB');
			var txB = compono.getByID('pnlMessageTextB');
			
			x.onComplete = function(){
			
				var response = eval( "(" + this.request.responseText + ")" );
				var code = response['code'];

				switch(code.toString()){
					case "1"://Adicao
						compono.appendClassName("wl-on",this.wistlist);
						compono.removeClassName("wl-off",this.wistlist);
						break;
					case "2"://Erro na adicao
						if (p != null)
						{
							compono.removeClassName('message-hidden',p);
							tl.innerHTML = response['title'];
							tx.innerHTML = response['text'];
						}
						
						if (pB != null)
						{
							compono.removeClassName('message-hidden',pB);
							tlB.innerHTML = response['title'];
							txB.innerHTML = response['text'];
						}
						
						break;
					case "3"://Remocao
						compono.removeClassName("wl-on",this.wistlist);
						compono.appendClassName("wl-off",this.wistlist);
						break;
					case "4"://Erro na remocao
						if (p != null)
						{
							compono.removeClassName('message-hidden',p);
							tl.innerHTML = response['title'];
							tx.innerHTML = response['text'];
						}
						
						if (pB != null)
						{
							compono.removeClassName('message-hidden',pB);
							tlB.innerHTML = response['title'];
							txB.innerHTML = response['text'];
						}
						
						break;
					case "5"://Nao autenticado
						if (p != null)
						{
							compono.removeClassName('message-hidden',p);
							tl.innerHTML = response['title'];
							tx.innerHTML = response['text'];
						}
						
						if (pB != null)
						{
							compono.removeClassName('message-hidden',pB);
							tlB.innerHTML = response['title'];
							txB.innerHTML = response['text'];
						}
						
						break;
					case "6"://Dominio invalido
						if (p != null)
						{
							compono.removeClassName('message-hidden',p);
							tl.innerHTML = response['title'];
							tx.innerHTML = response['text'];
						}
						
						if (pB != null)
						{
							compono.removeClassName('message-hidden',pB);
							tlB.innerHTML = response['title'];
							txB.innerHTML = response['text'];
						}
						
						break;
					default://Erro
						if (p != null)
						{
							compono.removeClassName('message-hidden',p);
							tl.innerHTML = response['title'];
							tx.innerHTML = response['text'];
						}
						
						if (pB != null)
						{
							compono.removeClassName('message-hidden',pB);
							tlB.innerHTML = response['title'];
							txB.innerHTML = response['text'];
						}
						
						break;
				}
				
				if (tl.innerHTML != "")
					window.scroll(0,p.offsetTop);
				
				/*
				if (pB != null)
				{
					compono.removeClassName('message-hidden',pB);
					tlB.innerHTML = tl.innerHTML;
					txB.innerHTML = tx.innerHTML;
				}
				*/
			}
			x.load(u);
		}
	},
	/**
	* Metodo que troca o thumb
	* @param {Node} anchor
	*/
	changeThumb:function(anchor){
		var target, img, anchorNew, s, t;
		
		if(!anchor.__image){anchor.__image = compono.getByTagName("img",anchor.parentNode);}
		img = anchor.__image;
		
		if(!img.__thumb){img.__thumb = compono.getByClassName("img","photo",anchor.parentNode.parentNode.parentNode);}
		target = img.__thumb; 
		
		s = img.getAttribute("src");
		t = img.getAttribute("thumb");
		
		img.setAttribute("thumb", target.getAttribute("src"));
		img.setAttribute("src", target.getAttribute("thumb"));
		
		var src = t;
		src = src.replace("195x180", "640x480");
		
		anchorNew = compono.getByTagName("a",target.parentNode);		
		anchorNew.setAttribute("href", src);
		
		target.setAttribute("thumb", s);
		target.setAttribute("src", t);
		
		if(window.attachEvent){
			this.timeoutID = window.setTimeout(function(){
				target.setAttribute("src", target.getAttribute("src"));
				img.setAttribute("src", img.getAttribute("src"));
				window.clearTimeout(product.timeoutID);
			},10);			
		}
		
	},
	changeThumbView:function(anchor){
		var target, img, anchorNew, s, t;
		
		if(!anchor.__image)
		{
			anchor.__image = compono.getByTagName("img",anchor.parentNode);
		}
		
		img = anchor.__image;
		
		if(!img.__thumb)
		{
			img.__thumb = compono.getByClassName("img","photo",anchor.parentNode.parentNode.parentNode);
		}
		
		target = img.__thumb; 
		
		s = img.getAttribute("src");
		t = img.getAttribute("thumb");
		
		img.setAttribute("thumb", target.getAttribute("src"));
		img.setAttribute("src", target.getAttribute("thumb"));
		
		var src = t;
		src = src.replace("195x180", "640x480");
		
		//alert(target.parentNode);
		
		anchorNew = compono.getByTagName("a",target.parentNode);		
		anchorNew.setAttribute("href", src);
		
		target.setAttribute("thumb", s);
		target.setAttribute("src", t);
		
		if(window.attachEvent){
			this.timeoutID = window.setTimeout(function(){
				target.setAttribute("src", target.getAttribute("src"));
				img.setAttribute("src", img.getAttribute("src"));
				window.clearTimeout(product.timeoutID);
			},10);			
		}
		
	},
	/**
	* Imagem transparente para resolver problemas do simbolo de imagem errado
	* Isso podera' ser portado para imagem em formato binario direto no src (URI 'data:')
	* Ou ser portado para 
	*/
	DEFAULT_IMAGE:"Theme/compono/img/empty.gif",
	/**
	* Me'todo que no onerror da imagem cria um outra imagem e tenta carrega'-la do server
	* se o retorno for o correto essa imagem e' passada para a __base.
	* se o retorno for erro o me'todo coloca um class na imagem __base.
	* @param {Node} i Imagem q executou o evento onerror.
	* @param {Event} e Evento erro.
	*/
	error:function(i,e){
		var c=" error";
		i.__img = new Image();
		i.__img.__base = i;
		i.__img.src = i.getAttribute("src");
		i.__img.onload = function(){
			this.__base.className = this.__base.className.replace(c,"");
			if(window.attachEvent)this.__base.setAttribute("src", "");
			this.__base.setAttribute("src", this.getAttribute("src"));
		}
		i.className+=c;
		i.setAttribute("src", product.DEFAULT_IMAGE);
		
		var a = i.nextSibling;
		if(a) {
			if(a.nodeName == "A"){		
				a.removeAttribute("href");
				a.removeAttribute("rel");
			}
		}
		
		return true;
	}
	
	,productnotification:function(a,e){
		var u;
		if((u=a.getAttribute("href"))){
			
			var x = new Ajax.Request();
			x.method = "GET";
			x.wistlist = a;
			
			var p = compono.getByID('pnlMessage');
			var tl = compono.getByID('pnlMessageTitle');
			var tx = compono.getByID('pnlMessageText');
			
			//PRECISA SER TESTADO MAIS A FUNDO.
			//x.header.add("Cache-Control", "no-store, no-cache, must-revalidate");
			//x.header.add("Cache-Control", "post-check=0, pre-check=0");
			//x.header.add("Pragma", "no-cache");
			x.header.add("If-Modified-Since", "Wed, 15 Nov 1995 04:58:08 GMT")
			
			x.onComplete = function(){
				var response = eval( "(" + this.request.responseText + ")" );
				var code = response['code'];

				switch(code.toString()){
					case "1"://Adicao
						compono.removeClassName('message-hidden',p);
						tl.innerHTML = response['title'];
						tx.innerHTML = response['message'];
						break;
					case "2"://Nao autenticado
						compono.removeClassName('message-hidden',p);
						tl.innerHTML = response['title'];
						tx.innerHTML = response['message'];
						break;
					default://Erro
						compono.removeClassName('message-hidden',p);
						tl.innerHTML = response['title'];
						tx.innerHTML = response['message'];
						break;
				}
			}
			x.load(u);
		}
	}
};
