var id_call=null;
var id_call_stop=null;
var oBtnPressed=null;
//constantes para animación
var cDesplazarAdelante = 1;
var cDesplazarAtras = 2;
var cDesordenar = 3;
var cInvertir = 4;

function armarArray(text){
	var text = window.document.frmEdit.txtInput.value;
	var arOrig = new Array();
	var arEstrofas = new Array();
	var txtArray="";
	var selectElement;
	
	arOrig = text.split("\n");
	arOrig = trimArray(arOrig);
	
	for(var i=0; i<=arOrig.length-1;i++){
		if(arOrig[i].replace(/^\s*|\s*$/g,"")!=""){
			txtArray += arOrig[i] + "\n";
			if(i==arOrig.length-1){
				if(txtArray.replace(/^\s*|\s*$/g,"")!=""){arEstrofas.push(txtArray);}
			}
		}else{
			if(txtArray.replace(/^\s*|\s*$/g,"")!=""){arEstrofas.push(txtArray);}
			txtArray = "";
		}
	}
	
	text = arEstrofas.join("\n");
	
	for(var i=0; i<window.document.frmEdit.elemento.length ;i++){
		if(window.document.frmEdit.elemento[i].checked){
			selectElement=window.document.frmEdit.elemento[i].value;
		}
	}
	
	if(selectElement=="versos"){
		arResult = text.split("\n");
	}else{
		arResult = arEstrofas;
	}
	
	return arResult;
}

function trimArray(arOrig){
	for(i=0; i<arOrig.length; i++){
		arOrig[i] = arOrig[i].replace(/^\s*|\s*$/g,"");
	}
	return arOrig;
}

function desordenar(){
	var indexToMove;
	var indexElected;
	var valueToMove;
	var valueElected
	var arOrig = new Array();
	var arReturns = new Array();
	
	arOrig  = armarArray(arOrig);
	arReturns = obtenerReturns(arOrig);
	arOrig = quitarReturns(arOrig);
	
	for(i=0; i<arOrig.length; i++){
		indexElected = Math.round(Math.random() * (arOrig.length - 1));
		valueElected = arOrig[indexElected];
		valueToMove = arOrig[i];
		arOrig[i] = valueElected;
		arOrig[indexElected] = valueToMove;
	}
	
	arOrig = insertReturns(arOrig,arReturns);
	reescribir(arOrig);
}

function invertir(){
	var text = window.document.frmEdit.txtInput.value;
	var arOrig = new Array();
	var arReturns = new Array();
	
	arOrig  = armarArray(arOrig);
	arReturns = obtenerReturns(arOrig);
	arOrig = quitarReturns(arOrig);
	
	arOrig.reverse();
	if(arReturns.length>0){arOrig = insertReturns(arOrig,arReturns)};
	reescribir(arOrig);
}

function desplazar(direccion){
	var text = window.document.frmEdit.txtInput.value;
	var arOrig = new Array();
	var arReturns = new Array();
	var currentValue="";
	var precedentValue="";
	
	arOrig  = armarArray(arOrig);
	arReturns = obtenerReturns(arOrig);
	arOrig = quitarReturns(arOrig);
	
	if (direccion=="adelante"){
		precedentValue = arOrig[arOrig.length-1];
		for(i=0; i<arOrig.length; i++){
			currentValue = arOrig[i];
			arOrig[i]=precedentValue;
			precedentValue=currentValue;
		}
	}else{
		precedentValue = arOrig[0];
		for(i=arOrig.length-1; i>=0; i--){
			currentValue = arOrig[i];
			arOrig[i]=precedentValue;
			precedentValue=currentValue;
		}
	}
	
	if(arReturns.length>0){arOrig = insertReturns(arOrig,arReturns)};
	
	reescribir(arOrig);
}

function reescribir(arTexto){
	var texto="";
	for(var i=0; i<=arTexto.length - 1;i++){
		if(i==arTexto.length-1){
			texto += arTexto[i];
		}else{
			texto += arTexto[i] + "\n";
		}
	}
	window.document.frmEdit.txtInput.value = texto;
}

function insertReturns(arOrig, arReturns){
	var currentValue="";
	var precedentValue="";
	
	for(var i=0; i<=arReturns.length - 1;i++){
		arOrig.push("valor nuevo");
		precedentValue="";
		for(var ii=arReturns[i]; ii<=arOrig.length-1;ii++){
			currentValue = arOrig[ii]; 
			arOrig[ii]=precedentValue; 
			precedentValue=currentValue;
		}
	}
	
	return arOrig;
}

function animar(mode){
	if(mode==null){mode=Math.round(Math.random() * (4));}
	procesarPoema(mode);
}

function animarPoema(mode, oBtn){
	var selectElement;
	clearInterval(id_call);
	clearInterval(id_call_stop);
	
	if(checkContenido()){
		id_call = window.setInterval("animar(" + mode + ")",180);
		id_call_stop = window.setInterval("destacarStop()",1200);
	}
}

function pressedButton(oBtn){
	if(oBtnPressed!=null){oBtnPressed.style.backgroundColor="ButtonFace"};
	
	oBtnPressed=oBtn;	
	oBtnPressed.style.backgroundColor="#E5E5E5";
}

function checkContenido(){
	if(window.document.frmEdit.txtInput.value.replace(/^\s*|\s*$/g,"")==""){
		alert("escriba algo en el cuadro de texto o copie algún poema");
		return false;
	}
	return true;
}

function detenerAnimacion(){
	window.clearInterval(id_call);
	window.clearInterval(id_call_stop);
	oBtnPressed.style.backgroundColor="ButtonFace";
	window.document.getElementById("btnDetener").style.backgroundColor="ButtonFace";
}

function obtenerReturns(arOrig){
	var arReturns=new Array();
	
	for(var i=0; i<arOrig.length;i++){
		if(arOrig[i]==""&&i<arOrig.length-1){arReturns.push(i);}
	}
	
	return arReturns;
}

function quitarReturns(arOrig){
	for(var i=0; i<=arOrig.length - 1;i++){
		if(arOrig[i]==""){
			for(var ii=i; ii<=arOrig.length-2;ii++){
				arOrig[ii]=arOrig[ii+1];
			}
			arOrig.pop();
			quitarReturns(arOrig);
		}
	}
	return arOrig;
}

function insertarVerso(){
	var oText = window.document.frmEdit.txtInput;
	var oVerso = window.document.frmEdit.nuevo;
	
	oText.value +=  "\n" + oVerso.value;
	oVerso.value="";
}

function procesarPoema(mode){
	if(checkContenido()){
		switch(parseInt(mode)){
			case cInvertir:
				invertir();
				break;
			case cDesordenar:
				desordenar();
				break;
			case cDesplazarAdelante:
				desplazar("adelante");
				break;
			case cDesplazarAtras:
				desplazar("atras");
				break;
		}
	}
}
function destacarStop(){
	if(window.document.getElementById("btnDetener").style.backgroundColor=="buttonface"){
		window.document.getElementById("btnDetener").style.backgroundColor="InfoBackground";
	}else{
		window.document.getElementById("btnDetener").style.backgroundColor="ButtonFace";
	}
}