function get_page(file,getValues,tagid,updateit,updatetext){
	var xmlObj = null;

	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	_objetus= xmlObj; //crear objeto
	_values_send= getValues;//"n1=1&n2=1" //variables

	if ((/\.\p\h\p\?/).test(file)) {
		_URL_= file+'&'+_values_send; //URL
	} else {
		_URL_= file+'?'+_values_send; //URL
	}

	//_URL_= file+'?'+_values_send //URL
	_objetus.open("GET",_URL_,true); //abrir procesador
	_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST





	_objetus.onreadystatechange=function() { //funcion controlador

		if (_objetus.readyState==1 && updateit) {
			 	updateObj(tagid, updatetext)
		} else if(_objetus.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(_objetus.status==200 ){

				 updateObj(tagid,_objetus.responseText)
			}
		}
	}

	_objetus.send(null); //enviar variables

	return false;
}

function get_page_actualizacion(file,getValues,tagid,tagid2,updateit,updatetext){
	var xmlObja = null;

	if(window.XMLHttpRequest){
		xmlObja = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlObja = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	_objetusa= xmlObja; //crear objeto
	_values_senda= getValues;//"n1=1&n2=1" //variables
	
	if ((/\.\p\h\p\?/).test(file)) {
		a_URL_= file+'&'+_values_senda; //URL
	} else {
		a_URL_= file+'?'+_values_senda; //URL
	}
		
	//_URL_= file+'?'+_values_send //URL
	_objetusa.open("GET",a_URL_,true); //abrir procesador
	_objetusa.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST


	
	
	
	_objetusa.onreadystatechange=function() { //funcion controlador

		if (_objetusa.readyState==1 && updateit) {
			 	if(tagid != '')
                                    updateObj(tagid,_objetusa.responseText);
                                 if(tagid2 != '')
                                    updateObj(tagid2,_objetusa.responseText);
		} else if(_objetusa.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(_objetusa.status==200 ){
				
                                 if(tagid != '')
                                    updateObj(tagid,_objetusa.responseText);
                                 if(tagid2 != '')
                                    updateObj(tagid2,_objetusa.responseText);
			}
		}
	}

	_objetusa.send(null); //enviar variables

	return false;
}

function get_page_post(file,postValues,tagid){
	var xmlObj = null;

	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	_objetus= xmlObj; //crear objeto
	_values_send= postValues;//"n1=1&n2=1" //variables
	_URL_= file+'?' //URL
	_objetus.open("POST",_URL_,true); //abrir procesador
	_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST
	_objetus.send('&'+_values_send); //enviar variables
	_objetus.onreadystatechange=function() { //funcion controlador
		if (_objetus.readyState==4) //control de estados del proceso
		{
			//si se da un status 200 (TERMINADO CON EXITO)
			if(_objetus.status==200)
			{
				updateObj(tagid,_objetus.responseText)
				
			}
		}
	}

	return false;
}

function get_results(file,getValues,tagid,updateit,updatetext){
	var xmlObj = null;

	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	_objetus= xmlObj; //crear objeto
	_values_send= getValues;//"n1=1&n2=1" //variables
	
	if ((/\.\p\h\p\?/).test(file)) {
		_URL_= file+'&'+_values_send; //URL
	} else {
		_URL_= file+'?'+_values_send; //URL
	}
	
	//_URL_= file+'?'+_values_send //URL
	_objetus.open("GET",_URL_,true); //abrir procesador
	_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST

	
	_objetus.onreadystatechange=function() { //funcion controlador

		if (_objetus.readyState==1 && updateit) {
			 results_updateObj(tagid, updatetext)
		} else if(_objetus.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(_objetus.status==200){
				 results_updateObj(tagid,_objetus.responseText)
			}
		}
	}

	_objetus.send(null); //enviar variables

	return false;
}



function get_menu(file,getValues,tagid,updateit,updatetext){
	var myxmlObj = null;

	if(window.XMLHttpRequest){
		myxmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		myxmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	my_objetus= myxmlObj; //crear objeto
	_values_send= getValues;//"n1=1&n2=1" //variables
	
	if ((/\.\p\h\p\?/).test(file)) {
		_URL_= file+'&'+_values_send; //URL
	} else {
		_URL_= file+'?'+_values_send; //URL
	}
	
	//_URL_= file+'?'+_values_send //URL
	my_objetus.open("GET",_URL_,true); //abrir procesador
	my_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST

	my_objetus.onreadystatechange=function() { //funcion controlador

		if (my_objetus.readyState==1 && updateit) {
			menu_updateObj(tagid, updatetext)
		} else if(my_objetus.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(my_objetus.status==200)
			{
				menu_updateObj(tagid,my_objetus.responseText)
			}
		}
	}

	my_objetus.send(null); //enviar variables

	return false;
}

function get_carro(file,getValues,tagid,updateit,updatetext){
	var myxmlObj = null;

	if(window.XMLHttpRequest){
		myxmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		myxmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	my_objetus= myxmlObj; //crear objeto
	_values_send= getValues;//"n1=1&n2=1" //variables
	
	if ((/\.\p\h\p\?/).test(file)) {
		_URL_= file+'&'+_values_send; //URL
	} else {
		_URL_= file+'?'+_values_send; //URL
	}
	
	//_URL_= file+'?'+_values_send //URL
	my_objetus.open("GET",_URL_,true); //abrir procesador
	my_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST

	my_objetus.onreadystatechange=function() { //funcion controlador

		if (my_objetus.readyState==1 && updateit) {
			carro_updateObj(tagid, updatetext)
		} else if(my_objetus.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(my_objetus.status==200)
			{
				carro_updateObj(tagid,my_objetus.responseText)
			}
		}
	}

	my_objetus.send(null); //enviar variables

	return false;
}

function results_updateObj(obj, data){
	document.getElementById(obj).innerHTML = data;
	return false;
}

function menu_updateObj(obj, data){
	document.getElementById(obj).innerHTML = data;
	return false;
}

function carro_updateObj(obj, data){
	document.getElementById(obj).innerHTML = data;
	document.location = 'pedido.php';
	return false;
}

function updateObj(obj, data){
	document.getElementById(obj).innerHTML = data;
	return false;
}



function concat_form(f){

	function getMultiple(ob) {
		var arSelected = new Array();
		while (ob.selectedIndex != -1) {
			if (ob.selectedIndex != 0)
			arSelected.push(ob.options[ob.selectedIndex].value);
			ob.options[ob.selectedIndex].selected = false;
		} // You can use the arSelected array for further processing. }
		return arSelected;
	}

	var cadena = 'rdv='+Math.random();

	for(j=0;j<f.elements.length;j++){
		if (f.elements[j].type == 'text' || f.elements[j].type == 'button' || f.elements[j].type == 'hidden' || f.elements[j].type == 'select-one' || f.elements[j].type == 'submit' || (f.elements[j].type == 'textarea')){
			cadena = cadena + '&' + f.elements[j].name +'='+ f.elements[j].value;
		} else if (f.elements[j].type == 'checkbox' || f.elements[j].type == 'radio'){
			if (f.elements[j].checked){
				cadena = cadena + '&' + f.elements[j].name +'='+ f.elements[j].value;
			}
		} else if (f.elements[j].type == 'select-multiple'){
			cadena = cadena + '&' + f.elements[j].name +'='+ getMultiple(f.elements[j]);
		} else if ( f.elements[j].type == 'file') {

		}else{
			//alert (f.elements[j].type + ' ' + f.elements[j].value);
		}
	}

	return cadena;

}

function send_form (url,form,tableDiv){
	
	var url_resultado= url+'?'+concat_form(form);

	get_results(url_resultado,'',tableDiv,true,'recargando...');

	return false;
}

function enviarFormBuscador(item, form, reset){
    form.itemChanged.value = item;
    
    var url_menu='menu.php?RvL='+(new Date).getTime();
    var url_resultado='resultados.php?RvL='+(new Date).getTime();
    
    if(!reset) {
        for(var i=0 ; i < form.elements.length ; i++ ) {
            var value = (form.elements[i].options)
                ?form.elements[i].options[form.elements[i].selectedIndex].value
                :form.elements[i].value
            if(value){
                url_menu += '&'+escape(form.elements[i].name)+'='+escape(value);
                url_resultado += '&'+escape(form.elements[i].name)+'='+escape(value);
            }
        }
    }
    
    //actualizar la grilla resultado
	get_results(url_resultado,'','resultado',true,'... buscando resultado...');
    
	//actualizar los combos resultados
    get_menu(url_menu,'','menu',false);
    
    
    return false;
}

function    AssignOptionsToSelect(elt,options,value) {
    elt = document.getElementById(elt);
    return AssignOptionsToSelect(elt,options,value)
}

function additem($id,$price,$cant){
	
	//actualizar la grilla resultado
	get_carro('carro.php?action=add&id='+$id+'&price='+$price+'&cant='+$cant,'','carro',false);
    
}


function addpreferido($id){
	
	//agrego un preferido
	get_page('set_favoritos.php?action=add&id='+$id,'','preferidos',false,'');
    
}

function delpreferido($id,$modo_listado){
	//agrego un preferido
	get_page('set_favoritos.php?action=del&id='+$id+'&modo_listado='+$modo_listado,'','preferidos',true,'');
    
}

function addactualizacionlibro(id,label,label2){

	//agrego un preferido
        get_page('set_actualizacion.php?action=add&id='+id+'&label='+label+'&label2='+label2+'&trocar=1','',label,true,'<img src=images/ajax-loader-s.gif align="center" />');
        get_page_actualizacion('set_actualizacion.php?solapa=1&action=add&id='+id+'&label='+label+'&label2='+label2+'&trocar=1','',label2,'',true,'<img src=images/ajax-loader-s.gif align="center" />');

}

function delactualizacionlibro(id,label,label2){

	//agrego un preferido
	get_page('set_actualizacion.php?action=del&id='+id+'&label='+label+'&label2='+label2+'&trocar=1','',label,true,'<img src=images/ajax-loader-s.gif align="center" />');
        get_page_actualizacion('set_actualizacion.php?solapa=1&action=del&id='+id+'&label='+label+'&label2='+label2+'&trocar=1','',label2,'',true,'<img src=images/ajax-loader-s.gif align="center" />');
        

}



function addactualizacion(id,label){
	
	//agrego un preferido
	get_page('set_actualizacion.php?action=add&id='+id+'&label='+label+'&trocar=1','',label,true,'<img src=images/ajax-loader-s.gif align="center" />');
    
}

function delactualizacion(id,label,trocar){
	
	//agrego un preferido
	get_page('set_actualizacion.php?action=del&id='+id+'&label='+label+'&trocar='+trocar,'',label,true,'<img src=images/ajax-loader-s.gif align="center" />');
    
}

function changefoto(file){
	//agrego un preferido
	get_page('get_foto.php?file='+file,'','idfoto',false,'cargando...');
    
}


/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};


function activatetab(id){
	
	var currTabElem = document.getElementById(id);
	
	var items = getElementsByClassName("active");

	items[0].setAttribute("class", "");
	items[0].setAttribute("className", "");
		
	currTabElem.setAttribute("class", "active");
	currTabElem.setAttribute("className", "active");
	
	
	
	document.getElementById('tab_general').style.display = "none"; 
	document.getElementById('tab_prologo').style.display = "none"; 
	document.getElementById('tab_indices_general').style.display = "none"; 
	document.getElementById('tab_indices_alfabetico').style.display = "none"; 
	document.getElementById('tab_indices_capitulos').style.display = "none"; 
	document.getElementById('tab_actualizaciones').style.display = "none"; 
	document.getElementById('tab_autor').style.display = "none"; 
		
	document.getElementById('tab_'+id).style.display = "block"; 

	
	return; 
}


function flipAnswer(answerId) {
	var thisAnswer = document.getElementById(answerId);
	if (thisAnswer.style.display == "none") {
		thisAnswer.style.display = "block";
	} else {
		thisAnswer.style.display = "none";
	}
	document.location="#" + answerId;
	return false;
}

function do_login(username,password,cookear){
	if(username == '' ||username == ''){
		alert('Por favor, complete sus datos para poder ingresar.');
		return false;
	}else{
		get_login('do_login.php','username='+username+'&password='+password+'&cookear='+cookear,'msg',false);
	}
}



			
function get_login(file,getValues,tagid,updateit,updatetext){
	var xmlObj = null;

	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	_objetus= xmlObj; //crear objeto
	_values_send= getValues;//"n1=1&n2=1" //variables
	
	if ((/\.\p\h\p\?/).test(file)) {
		_URL_= file+'&'+_values_send; //URL
	} else {
		_URL_= file+'?'+_values_send; //URL
	}
		
	//_URL_= file+'?'+_values_send //URL
	_objetus.open("GET",_URL_,true); //abrir procesador
	_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST


	
	
	
	_objetus.onreadystatechange=function() { //funcion controlador

		if (_objetus.readyState==1 && updateit) {
			 	updateLogin(tagid, updatetext)
		} else if(_objetus.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(_objetus.status==200 ){
				
				 updateLogin(tagid,_objetus.responseText)
			}
		}
	}

	_objetus.send(null); //enviar variables

	return false;
}

function updateLogin(obj, data){
	if(data =='OK'){
		parent.location = 'index.php';
		parent.fb.end();
	}else{
		document.getElementById(obj).innerHTML = data;
		return false;
	}
	
	
	
}


function do_forgot(email){
	if(email == ''){
		alert('Por favor, ingrese su E-mail para poder reestrablecer su contraseņa.');
		return false;
	}else{
		get_forgot('do_forgot.php','email='+email,'msg',false);
	}
}


			
function get_forgot(file,getValues,tagid,updateit,updatetext){
	var xmlObj = null;

	if(window.XMLHttpRequest){
		xmlObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		return;
	}

	_objetus= xmlObj; //crear objeto
	_values_send= getValues;//"n1=1&n2=1" //variables
	
	if ((/\.\p\h\p\?/).test(file)) {
		_URL_= file+'&'+_values_send; //URL
	} else {
		_URL_= file+'?'+_values_send; //URL
	}
		
	//_URL_= file+'?'+_values_send //URL
	_objetus.open("GET",_URL_,true); //abrir procesador
	_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//cabeceras POST


	
	
	
	_objetus.onreadystatechange=function() { //funcion controlador

		if (_objetus.readyState==1 && updateit) {
			 	updateLogin(tagid, updatetext)
		} else if(_objetus.readyState==4) {//control de estados del proceso

			//si se da un status 200 (TERMINADO CON EXITO)
			if(_objetus.status==200 ){
				
				 updateForgot(tagid,_objetus.responseText)
			}
		}
	}

	_objetus.send(null); //enviar variables

	return false;
}

function updateForgot(obj, data){
	if(data =='ERROR'){
		alert('No existe un usuario registrado con el E-mail provisto.');
		return false;
	}else{
		document.getElementById(obj).innerHTML = data;
	}
	
}

function correct_number(f,e,dot,neg,whatdot) {

	form_name = f.form.name;

	field_name = 'hidden_'+f.name;

	hidden_field = document.forms[form_name].elements[field_name];

	if (dot && neg && (whatdot == 46) && (/^\-?\d+\.?\d*$|^-?$/).test(f.value)) {
        	hidden_field.value = f.value;
	} else if (dot && neg && (whatdot == 44) && (/^\-?\d+\,?\d*$|^-?$/).test(f.value)) {
		hidden_field.value = f.value;
	} else if (dot && !neg && (whatdot == 46) && (/^\d+\.?\d*$|^\d?$/).test(f.value)) {
		hidden_field.value = f.value;
	} else if (dot && !neg && (whatdot == 44) && (/^\d+\,?\d*$|^\d?$/).test(f.value)) {
                hidden_field.value = f.value;
	} else if (!dot && neg && (/^\-?\d*$/).test(f.value)) {
		hidden_field.value = f.value;
	} else if (!dot && !neg && (/^\d*$/).test(f.value)) {
		hidden_field.value = f.value;
	} else {
		f.value = hidden_field.value;
	}


}

function validate_key(f,e,dot,neg,whatdot) {

        
	key =((e.which)?e.which:(e.keyCode?e.keyCode:0));


          
            
	if (key == 0 || key == 8 || key >= 48 && key <= 57 || key == 13 || key == 9
	|| key >= 37 && key <= 40){
		return true;
	} else if (dot && key == whatdot) {
		return true;
	} else if (neg && key == 45) {
		return true;
	} else {
		return false;
	}

}
