
var Coloresgf = {
  // some stuff our 'generic' function needs
	
  aasignar: function(event) {
    // Some generic, all-purpose checking (e.g. empty required fields)

	
  },
  blinkear: function(event,prop,directo) {
	var props= prop.split(':')
	var propiedad=props[0]
    var inicolor=props[1]	
	var fincolor=props[2]
	if(directo!=null)
		var t=$(directo)
	else
		var t = Event.element(event)
	
	var actual=new Array()
	var color=t.getStyle(propiedad)
	
	if(!aresamearray(rgbtodec(inicolor),rgbtodec(color)))
		return false
	var frames=64

	var xi=new Array()
	xi=rgbtodec(inicolor)
	var iR=xi[0]
	var iG=xi[1]
	var iB=xi[2]
	var xf=new Array()
	xf=rgbtodec(fincolor)
	var fR=xf[0]
	var fG=xf[1]
	var fB=xf[2]
	var sentido=1
	var dR=(((fR-iR+1)/frames)>0)?Math.ceil(((fR-iR+1)/frames)):Math.floor(((fR-iR+1)/frames))
	var dG=(((fG-iG+1)/frames)>0)?Math.ceil(((fG-iG+1)/frames)):Math.floor(((fG-iG+1)/frames))
	var dB=(((fB-iB+1)/frames)>0)?Math.ceil(((fB-iB+1)/frames)):Math.floor(((fB-iB+1)/frames))
	
	var aR=0
	var aG=0
	var aB=0
	
	
	new PeriodicalExecuter(function(pe) {
	actual=rgbtodec(color)
	aR=actual[0]
	aG=actual[1]
	aB=actual[2]
	if(sentido==1)
	{
		aR+=dR
		aG+=dG
		aB+=dB
		aR=((dR*aR)>(dR*fR))?fR:aR
		aG=((dG*aG)>(dG*fG))?fG:aG
		aB=((dB*aB)>(dB*fB))?fB:aB
		if(aR==fR&&aG==fG&&aB==fB)
			sentido=-1
		
	}
	else
	{
		aR-=dR
		aG-=dG
		aB-=dB
		aR=((dR*aR)<(dR*iR))?iR:aR
		aG=((dG*aG)<(dG*iG))?iG:aG
		aB=((dB*aB)<(dB*iB))?iB:aB
		if(aR==iR&&aG==iG&&aB==iB)
			sentido=1
	}
	//alert(aR+' '+aG+' '+aB)
	actual=[aR,aG,aB]
	color=dectorgb(actual)	
	if(propiedad=='color')
		t.setStyle({'color':color})
	else
		t.setStyle({'background-color':color})
  },
 0.04);
	}
 };
 
var Imagenesgf = {
  // some stuff our 'generic' function needs
	
  ampliar: function(event,nivel) {
    // Some generic, all-purpose checking (e.g. empty required fields)

	var t = Event.element(event)
	/*var x=Event.pointerX(event)
	var y=Event.pointerY(event)*/
	var total=$(document.createElement('div'))
	var ampliada=$(document.createElement('div'))
	ampliada.id='tensaiimg'
	if(!!window.opera)
		ampliada.id='optensaiimg'
	var fondoimagen=$(document.createElement('div'))
	fondoimagen.addClassName('fonpp');
	total.id='tensaitotal'
	if(total.getStyle('width')=='')
	{
		total.style.width=screen.width
		total.style.height=screen.height
	}
	if(fondoimagen.getStyle('width')=='')
	{
		fondoimagen.style.width=screen.width
		fondoimagen.style.height=screen.height
	}
	if(ampliada.getStyle('width')=='')
	{
		ampliada.style.width=screen.width
		ampliada.style.height=screen.height
	}
	var imagen=$(document.createElement('img'))
	
	imagen.setAttribute('src',t.src)
	imagen.addClassName('imgpp');
	ampliada.appendChild(fondoimagen)
	total.appendChild(ampliada)
	total.appendChild(imagen)
	
	document.body.appendChild(total)	

	
	cargareventos(['.imgpp'],null,['click'],['Imagenesgf.cerrar.1'])
	//imagen.setStyle({position:'absolute',top:'100',left:'200'})	
  },
  cerrar: function(event,num) {
  var t = Event.element(event)
  
  for(var i=0;i<num;i++)
	t=t.parentNode
	t.parentNode.removeChild(t)
  }
 };
 var Botonesgf = {
  // some stuff our 'generic' function needs
	
  enviar: function(event,prop,directo) {
    // Some generic, all-purpose checking (e.g. empty required fields)	

	var props= prop.split(':')
	var propiedad=props[0]
    var correo=props[1]	
	var msg=$(props[2]).value
	if(directo!=null)
		var t=$(directo)
	else
		var t = Event.element(event)
	var url = '/test/sendsong.php';
// notice the use of a proxy to circumvent the Same Origin Policy.
new Ajax.Request(url, {
  method: 'get',
  parameters: $H({song:msg, mail:correo}),
  onSuccess: function(transport) {
   var response = transport.responseText || "no response text";
      alert("Success! \n\n" + response);
  }
});

	  }
 };

function cargareventos(selectores,prenodo,eventos,funciones)
{
	var selector=selectores
	var nodo
	if(prenodo!=null)
		{
			nodo=$(prenodo)
			if(!nodo)
				nodo=document
		}
	else
	{
		nodo=document
		
	}
	if(nodo!=document)
		var objelems=$(nodo).getElementsBySelector(selector)
	else
		var objelems=$$(selector)
	objelems.each(function(obj){			
		$A(eventos).each(function(eve,index){		
			var funcion=funciones[index]
			if(funcion)
			{					
				var fs=funcion.split('.')
				var grupofun=fs[0]
				var propfun=fs[2]
				if(eve=='go')
				{
					var strfun=fs[0]+'.'+fs[1]+'(null,"'+propfun+'",obj);'
					eval(strfun)					
				}
				else
				{
					funcion=fs[0]+'.'+fs[1]
					var strfun=funcion+'.bindAsEventListener('+grupofun+",'"+propfun+"',null);"
					Event.observe(obj, eve, eval(strfun));
				}
			}
			
		});		
	});	
}
function asignar()
{
	if (typeof(tensai_ampliadas) != 'undefined')
	$A(tensai_ampliadas).each(function(selector){
		cargareventos([selector],null,['click'],['Imagenesgf.ampliar'])
	}
	)	
	if (typeof(tensai_colores) != 'undefined')
	$A(tensai_colores).each(function(colores){
		if(colores[4])
			ev=colores[4]
		else
			ev='go'
		cargareventos(colores[0],colores[1],['go'],['Coloresgf.blinkear.color:'+colores[2]+':'+colores[3]])
	}
	)
	if (typeof(tensai_fondos) != 'undefined')
	$A(tensai_fondos).each(function(fondos){
		if(fondos[4])
			ev=fondos[4]
		else
			ev='go'
		cargareventos(fondos[0],fondos[1],['go'],['Coloresgf.blinkear.background-color:'+fondos[2]+':'+fondos[3]])
	}
	)
	if (typeof(email) != 'undefined')
	{
		songbot=email[2]
		songval=email[1]
		songmail=email[0]
		songmail=songmail.replace(/\./g, "\$")
		cargareventos([songbot],null,['click'],['Botonesgf.enviar.mail:'+songmail+':'+songval])
	}
	//cargareventos(['ol li.ss'],null,['go','go'],['Coloresgf.blinkear.color:#000000:#AAAAAA','Coloresgf.blinkear.background-color:#FFFF00:#FFFFEE'])
	//cargareventos(['ol li'],null,['go'],['Coloresgf.blinkear.color:#000000:#99FF99'])	
	
}
//document.write('<link rel="stylesheet" type="text/css" href="http://www.tensaiweb.info/test/charger.css"></link>');
document.write('<link rel="stylesheet" type="text/css" href="http://tensaiweb.info/test/charger.css"></link>');
Event.observe(window, 'load', asignar);