document.getElementsByClassName = function(cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = this.getElementsByTagName('*');
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
		return retnode;
};
var formulario_replica = '<li class="postAvisoForm">'+
		'<form method="get" action="" id="form">'+
			'<h3>Enviar un mensaje</h3>'+
			'<p>(todos los campos son obligatorios)</p>'+
			'<fieldset>'+
				'<label for="nombre">Nombre:</label>'+
				'<input type="text" name="nombre" id="nombre" tabindex="17" value="" />'+
			'</fieldset>'+
			'<fieldset>'+
				'<label for="email">Email:</label>'+
				'<input type="text" name="email" id="email" tabindex="18" value="" />'+
			'</fieldset>'+
			'<fieldset>'+
				'<label for="mensaje">Aviso:</label>'+
				'<textarea name="mensaje" id="mensaje" cols="10" rows="3" tabindex="19" class="mensaje limit_'+numeroCaracteres+'_"></textarea>'+
				'<span class="caractCount">'+numeroCaracteres+'</span>'+
			'</fieldset>'+
			'<p>Tus datos sólo seran utilizados para contacto comercial con los interesados.</p>'+
			'<fieldset id="publicar" class="cf">'+
				'<input type="submit" name="publicar_replica" id="publicar_replica" value="Enviar" tabindex="5" class="boton" />'+
				'<span>o <a href="#" title="Cerrar esta ventana" rel="prev" id="cancel_replica" class="js">Cancelar</a></span>'+
			'</fieldset>'+
		'</form>'+
	'</li>';

var formulario_aviso = '<form method="get" action="" id="form">'+
			'<h3>¡Publica tu aviso ahora!</h3>'+
			'<p>(todos los campos son obligatorios)</p>'+
			'<fieldset>'+
				'<label for="nombre">Nombre:</label>'+
				'<input type="text" name="nombre" id="nombre" tabindex="13" value="" />'+
			'</fieldset>'+
			'<fieldset>'+
				'<label for="email">Email:</label>'+
				'<input type="text" name="email" id="email" tabindex="14" value="" />'+
			'</fieldset>'+
			'<fieldset>'+
				'<label for="mensaje">Aviso:</label>'+
				'<textarea name="mensaje" id="mensaje" cols="10" rows="3" tabindex="15" class="mensaje limit_'+numeroCaracteres+'_"></textarea>'+
				'<span class="caractCount">'+numeroCaracteres+'</span>'+
			'</fieldset>'+
			'<p>Tus datos sólo seran utilizados para contacto comercial con los interesados.</p>'+
			'<fieldset id="publicar" class="cf">'+
				'<input type="submit" name="publicar_aviso" id="publicar_aviso" value="Publicar" tabindex="16" class="boton" />'+
				'<span>o <a href="#" title="Cerrar esta ventana" rel="prev" id="cancel_aviso" class="js">Cancelar</a></span>'+
			'</fieldset>'+
		'</form>';

var murket_porid = {
	idname: function(e) {
		if(e.target.id){
			if(eval("this."+e.target.id)!=undefined){
				eval("this."+e.target.id)(e.target);
				}
			}
	},
	new_aviso : function(e){
		boton = jQuery("#"+e.target.id);
		//if(document.getElementsByClassName('postAvisoForm')){ murket_porid.cancel_replica(); }
		jQuery(".postFormAviso").html(formulario_aviso);
		boton.remove();
		murket_porclass.detects();
	},
	new_replica : function(e){
		boton = jQuery("#"+e.target.id);
		n = e.target.id.split("_");
		aviso = jQuery("#aviso-"+n[1]);
		jQuery("#aviso-"+n[1]).addClass("selectPost");
		//if(document.getElementsByClassName('postAvisoForm')){ murket_porid.cancel_replica(); }
		aviso.after(formulario_replica);
		boton.remove();
		if(jQuery(".postFormAviso #form")){ murket_porid.cancel_aviso(); }
	},
	cancel_aviso : function(){
		boton = '<a href="" title="&iexcl;Publica un nueva aviso aqu&iacute;!" class="js publiBotoAviso" id="new_aviso">&iexcl;Publica tu aviso ahora!</a>';
		jQuery(".postFormAviso").html(boton);
		murket_porclass.detects();
	},
	cancel_replica : function(){
		id_aviso = jQuery(".postAvisoForm").prev();
		id_aviso = jQuery("#"+id_aviso[0].id).removeClass("selectPost");
		jQuery(".postAvisoForm").remove();
		id = id_aviso[0].id.split("-");
		jQuery("#"+id_aviso[0].id).append("<p class='mensAviso'><a href='#' title='Enviar un mensaje' id='mensaje_"+id[1]+"' class='publicar_replica'>Enviar un mensaje</a></p>");
		murket_porclass.detects();
	},
	comprobar : function(e){
		boton = e.target.id;

		comp = jQuery("#form").serialize();
		str = jQuery("#form").serializeArray();

		var filtro = new RegExp(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
  		jQuery.each(str, function(i, field){
			if ((field.value=="" || (field.name=="email" && filtro.test(field.value)==false))){
				jQuery('#'+field.name).addClass('alert');
			}
			else{
				var req = field.name+"req";
				jQuery('#'+field.name).removeClass('alert');
			}
		});
		var total = comp+"&total=true";
		jQuery.get("index.php", total, function(data){
			if(data=="ok"){
				comp = jQuery("#form").serialize();
				str = jQuery("#form").serializeArray();
				if(boton == "publicar_aviso"){
					comp = comp+"&publicar_aviso=true";
					jQuery.get("index.php", comp, function(data){
 						jQuery("#MurkeAvisos ul").prepend(data);
						texto = '<a href="" title="&iexcl;Publica un nueva aviso aqu&iacute;!" class="js publiBotoAviso" id="new_aviso">&iexcl;Publica tu aviso ahora!</a>';
 						jQuery(".postFormAviso").html(texto);
					});
				}
				if(boton == "publicar_replica"){
					id_aviso = jQuery(".postAvisoForm").prev().attr("id");
					id_aviso = id_aviso.split("-");
					comp = comp+"&publicar_replica=true&id_aviso="+id_aviso[1];
					jQuery.get("index.php", comp, function(data){
 						jQuery(".postAvisoForm").html("<form><h3>Haz enviado un mensaje</h3><p>"+data+", Le haz enviado un mensaje al autor del aviso.</p></form>");
					});
				}
			}
		});
	}
}

var murket_porclass = {
	detects : function(){
		jQuery(".js").bind("click", function(e){murket_porid.idname(e); return false;});
		jQuery("#publicar_aviso").bind("click", function(e){murket_porid.comprobar(e); return false;});
		jQuery("#publicar_replica").bind("click", function(e){murket_porid.comprobar(e); return false;});
		jQuery(".publicar_replica").bind("click", function(e){murket_porid.new_replica(e); return false;});
		jQuery(".mensaje").each(function() {
			jQuery(this).focus(function() {
				var c = jQuery(this).attr("class");
				countdown.max = parseInt(c.match(/limit_[0-9]{1,}_/)[0].match(/[0-9]{1,}/)[0]);
				countdown.obj = this;
				iCount = setInterval(countdown.init,1000);
			}).blur(function() {
				countdown.init();
				clearInterval(iCount);
			});
		});
	},
	eliminar_aviso : function(e){
		id_aviso = e.target.id.split("-");
	}
}

var countdown = {
	init: function() {
		countdown.remaining = countdown.max - jQuery(countdown.obj).val().length;
		clases = jQuery(countdown.obj).attr("class");
		if (countdown.remaining > countdown.max) {
			jQuery(countdown.obj).val(jQuery(countdown.obj).val().substring(0,countdown.max));
		}
		if (countdown.remaining < 0){
			jQuery(countdown.obj).addClass("alert");
		}
		if (countdown.remaining >= 0 && clases.match('alert')){
			jQuery(countdown.obj).removeClass("alert");
		}
		jQuery(countdown.obj).siblings(".caractCount").html(countdown.remaining);
	},
	max: null,
	remaining: null,
	obj: null
}

/***********************************************************************************  Detecciones ***/
jQuery(document).ready( function(e){
	murket_porclass.detects();
	//jQuery(".eliminar_aviso").bind("click",function(e){porclass.eliminar_aviso(e); return false; });
});