
$(document).ready(function(){
//Editor jwysiwyg
	$(".wysiwyg").wysiwyg();
	
//Textarea maxlength
	$("textarea").each(function(){
          if ($(this).attr('maxlength') > 0){
            $(this).keyup(textarea_maxlength).focus(textarea_maxlength).blur(textarea_maxlength);
          }
        });
	
//Cuadros expandibles
	$(".expandable").prepend("<img alt='v' src='http://mydomus.org/mod/mydomus/_graphics/expand.gif' title='expandir' class='expand'/>");
	$(".expand").click(function(){
		var parent = $(this).parents(".expandable");
		parent.toggleClass('exp_shrunk').toggleClass('exp_expanded');
	});
	
//Tooltips para la visualización de ideas
	$('.tooltip_l').hover(show_tooltip, hide_tooltip).mousemove(function (e){
		var parent = $(this).parent();
		parent.children('.tooltip_t').css({ top:e.pageY+15, left:e.pageX+15});
	});
	
//Menu del avatar - se dan y quitan valorez z-index para corregir los errores en IE
	$('div.usericon').hover(
		function(){
			$(this).css('z-index', 1);
			$(this).children('.sub_menu').show();
		},
		function(){
			$(this).css('z-index', '');
			$(this).children('.sub_menu').hide();
		}
	);					   
	

//Iconos de ayuda
	$('img.help').hover(
		function(){
			var p = $(this).offset();
			//var h = $(this).height();
			var w = $(this).width();
			var id = $(this).attr('rel');
			$("#"+id).css({left: p.left+w, top: p.top}).show();
		},
		function(){
			var id = $(this).attr('rel');
			$("#"+id).hide();
		}
	);
});


/**
 * Muestra los mensajes de error del sistema
 */
function messages_error() {
	//Parpadeo
	$('.messages_error_icon').fadeTo('fast', 0.2).fadeTo('fast', 1).fadeTo('fast', 0.2).fadeTo('fast', 1);
	//Muestra - Oculta
	$(".messages_error_icon").click(function (){
		$('.messages').hide();
		$('.messages_error').toggle();
	});
	//Oculta el icono al cabo del tiempo
	/*
	setTimeout(function(){
		$('.messages_error').fadeOut();
		$('.messages_error_icon').fadeOut();
	},5000);
	*/
}  

/**
 * Muestra los mensajes del sistema
 */
function messages() {
	//Parpadeo
	$('.messages_icon').fadeTo('fast', 0.2).fadeTo('fast', 1).fadeTo('fast', 0.2).fadeTo('fast', 1);
	//Muestra - Oculta
	$(".messages_icon").click(function (){
		$('.messages_error').hide();
		$('.messages').toggle();
	});
	/*
	//Oculta el icono al cabo del tiempo
	setTimeout(function(){
		$('.messages').fadeOut();
		$('.messages_icon').fadeOut();
	},5000);
	*/

} 


/**
 * Limita el numero de caracteres de los textarea con la propiedad maxlength
 */
function textarea_maxlength(){
  maxlength = $(this).attr('maxlength')
  var length = this.value.length;
  if (maxlength < length){
          this.value = this.value.substr(0, maxlength);
          length = maxlength;
  }
  var remaining = maxlength - length;
  $(this).next("div.remaining").remove();
  $(this).after("<div class='remaining'>"+remaining+" caracteres restantes.</div>");
}



/**
 * Funciones para mostrar y ocultar los tooltips en la visualización de ideas
 */

function show_tooltip(){
	var parent = $(this).parent();
	var tooltip = parent.children('.tooltip_t');
	if ( tooltip.hasClass("ajax") ){
		var url = tooltip.html();
		tooltip.html("<img src='http://mydomus.org/mod/mydomus/_graphics/ajax-loader.gif' alt='cargando...'/>");
		tooltip.load(url, {}, function(){
			$(this).removeClass('ajax');
		});
	}
	tooltip.show();
}

function hide_tooltip(){
	var parent = $(this).parent();
	parent.children('.tooltip_t').hide();
}function mydomuspro(){
	//Creamos el contenedor
	$("#two_column_left_sidebar").append("<div id='mydpro_container'></div>");
	
	//Recolectamos tags	
	q = "";
	$("a[rel=tag]").each(function(){
		q += $(this).html()+",";
	});
	
	url = mydpro_url+q;
	
	//Obtenemos la publicidad contextual
	$.get(url,{},function(data){
		$("#mydpro_container").html(data).fadeIn("slow");
		$(".mydpro-pro-title").click(mydomuspro_collapsepro);
		$(".mydpro-pro-votes-up, .mydpro-pro-votes-down").click(mydomuspro_vote);
		$(".mydpro-pro-more a").click(mydomuspro_getpro);
		$(".mydpro-makerelated").click(mydomuspro_makerelated);
		$(".mydpro-pro-getcomments a").click(mydomuspro_getcomments);
		$(".mydpro-pro-addcomment a").click(mydomuspro_addcomment);
	});
}



/**
 * Encoje un profesional
 */
function mydomuspro_collapsepro(){
	if ($(this).hasClass('mydpro-selected')){
		$(this).removeClass('mydpro-selected');
		$(this).next(".mydpro-pro-description").slideUp();
	}else{
		$(".mydpro-pro-title").removeClass('mydpro-selected');
		$(".mydpro-pro-description").slideUp();
		$(this).addClass('mydpro-selected');
		$(this).next(".mydpro-pro-description").slideDown();
	}
}



/**
 * Vota
 */
function mydomuspro_vote(){
	var url = $(this).attr("href");
	var self = $(this);
	
	$.getJSON(url, function(r){
		if (r.success) {
			self.html(r.votes);
		}
		alert(r.message);
	});
	
	return false;
}



/**
 * Obtiene un profesional
 */
function mydomuspro_getpro(){
	var self = $(this);
	var url = self.attr("href");
	
	$.get(url, {}, function(r){
		target = self.parents(".mydpro-pro").find(".mydpro-pro-target");
		self.remove();
		target.html(r);
		target.slideDown();
	});
	return false;
}



/**
 * Abre el dialogo para relacionar con un profesional
 */
function mydomuspro_makerelated(){
	var url = $(this).attr("href");
	$.get(url, {}, function(data){
		$.modal(data);
		$("#simplemodal-data #mydpro_protype").change(mydomuspro_prosubtypes).change(mydomuspro_prosearch);
		$("#simplemodal-data #mydpro_prosubtype").change(mydomuspro_prosearch);
		$("#simplemodal-data .input-search").keyup(mydomuspro_prosearch);
		$("#simplemodal-data #mydpro_addpro").click(mydomuspro_addpro);
		$("#simplemodal-data").submit(function(){return false;});
	});
	
	return false;
}

/**
 * Abre diálogo para agregar a un nuevo profesional
 */
function mydomuspro_addpro(){
	u = $(this).attr("href");
	
	if (confirm("¿Estás seguro de que el profesional no existe ya en nuestra base de datos?")){
		$.get(u, {}, function(data){
			$("#simplemodal-data").html(data);
			$("#simplemodal-data #mydpro_protype").change(mydomuspro_prosubtypes);
			$("#mydpro_provincia").change(mydomuspro_getLocalidades);
			$("#mydpro_comunidad").change(mydomuspro_getProvincias).change();
			$("#simplemodal-data form").submit(mydomuspro_addprosubmit);
		});
	}
	
	return false;
}

/**
 * Valida y envía el formulario para crear un nuevo profesional
 */
function mydomuspro_addprosubmit(){
	var self = $(this);
	
	try{
	  if (!self.find("#mydpro_name").val()){
			throw("Debes indicar un nombre para el profesional");
		}
		if (!parseInt(self.find("#mydpro_protype").val())){
			throw("Debes indicar un tipo de profesional.");
		}
		if (!parseInt(self.find("#mydpro_prosubtype").val())){
			throw("Debes indicar un subtipo de profesional.");
		}
		if (!parseInt(self.find("#mydpro_localidad").val())){
			throw("Debes indicar una localidad.");
		}
		
		self.unbind("submit").submit();
		return true;
		
	}catch(err){
	  alert(err);
		return false;
	}
	
}

/**
 * Obtiene la lista de subtipos mediante ajax y los carga en su correspondiente combo
 */
function mydomuspro_prosubtypes(){
	v = $(this).val();
	$.getJSON("/pg/mydpro/prosubtype", {t: v}, function(r){
		t = $("#mydpro_prosubtype");
		t.html("");
		$.each(r, function(i,v){
			t.append("<option value='"+i+"'>"+v+"</option>");
		});
	});
}

/**
 * Busca un profesional
 */
function mydomuspro_prosearch(){
	form = $(this).parents("form");
	url = form.attr("action");
	target = form.next("#mydpro-search-results").find("form");
	//var loader = "<img src='/mod/mydomuspro/img/ajax-loader.gif' alt='cargando...'/>";
	//target.html(loader);
	target.fadeTo("fast", 0.5);
	$.post(url, form.serialize(), function(data){
		target.html(data);
		target.find(".mydpro-prosearch-item").unbind("click").click(function(){
			location.href = $(this).parents("form").attr("action") + "/"+ $(this).attr("id");
		});
		target.fadeTo("fast", 1);
	})
	
}

/**
 * Obtiene comentarios
 */
function mydomuspro_getcomments (){
	var url = $(this).attr("href");
	var target = $(this).parents(".mydpro-pro").find(".mydpro-pro-comments-target");
	//var loader = "<img src='/mod/mydomuspro/img/ajax-loader.gif' alt='cargando...'/>";
	target.fadeTo("fast",0.5);

	$.get(url, {}, function(data){
		target.html(data);
		target.find(".mydpro-next-comment").click(mydomuspro_getcomments);
		target.fadeTo("fast", 1);
	});
	
	return false;
}

/**
 * Añade un formulario para añadir comentario
 */
function mydomuspro_addcomment(){
	var target = $(this).parents(".mydpro-pro").find(".mydpro-pro-comments-target");
	var max = 255;
	
	target.html("<textarea></textarea><span class='mydpro-comment-char'>"+max+"</span> caracteres.<input type='submit' class='input-submit' value='comentar'/><div class='clear'></div>");
	target.find("textarea").keyup(function(){
		v = $(this).val();
		
		if (v.length > max){
			v = v.substr(0, max);
			$(this).val(v);
		}
		
		l = max - v.length;
		if (l<=0) l = "0";
		$(this).next(".mydpro-comment-char").html(l);
	});
	target.find(".input-submit").click(mydomuspro_sendcomment);
	
	return false;
}

/**
 * Envía un comentario
 */
function mydomuspro_sendcomment(){
		var max = 255;
		var a = $(this).parents(".mydpro-pro").find(".mydpro-pro-addcomment a");
		var url = a.attr("href");
		var v = $(this).parents(".mydpro-pro").find(".mydpro-pro-comments-target textarea").val();
		v = v.substr(0, max);
		var target = $(this).parents(".mydpro-pro").find(".mydpro-pro-comments-target");
		var self = $(this);
		
		if (v){
			
			$.ajax({
				type:"POST",
				url:url,
				data: { comment: v },
				dataType:"json",
				beforeSend:function(){
					target.fadeTo("fast",0.5);
					self.unbind("click").click(function (){return false;});
				},
				success:function(data){
					if (data.success){
						alert(data.message);
						self.parents(".mydpro-pro").find(".mydpro-pro-getcomments a").html(data.n+" comentarios");
						self.parents(".mydpro-pro").find(".mydpro-pro-getcomments a").click();
						a.remove();
					}else{
						alert(data.message);
						self.unbind("click").click(mydomuspro_sendcomment);
					}
				},
				error:function(){
					alert("Hubo un error al realizar tu comentario. Por favor, inténtalo de nuevo.");
					self.unbind("click").click(mydomuspro_sendcomment);
				},
				complete: function(){
					target.fadeTo("fast",1);
				}
			});
			
		}
		
		return false;
	}
	

function mydomuspro_getProvincias(){
		url = mydpro_wwwroot+"pg/mydpro/getprovincias/"+$(this).val();
		target = $("#mydpro_provincia");
		target.html("<option value='0'>Cargando...</option>");
		$("#mydpro_localidad").html("<option value='0'>Cargando...</option>");
		
		$.getJSON(url, {}, function(r){
			target.html("");
			$.each(r, function(i,v){
				target.append("<option value='"+i+"'>"+v+"</option>");
			});
			target.change();
		});
}

function mydomuspro_getLocalidades(){
		url = mydpro_wwwroot+"pg/mydpro/getlocalidades/"+$(this).val();
		target = $("#mydpro_localidad");
		target.html("<option value='0'>Cargando...</option>");
		
		$.getJSON(url, {}, function(r){
			target.html("");
			$.each(r, function(i,v){
				target.append("<option value='"+i+"'>"+v+"</option>");
			});
		});
}
/*
 * SimpleModal 1.3.3 - jQuery Plugin
 * http://www.ericmmartin.com/projects/simplemodal/
 * Copyright (c) 2009 Eric Martin (http://twitter.com/EricMMartin)
 * Dual licensed under the MIT and GPL licenses
 * Revision: $Id: jquery.simplemodal.js 228 2009-10-30 13:34:27Z emartin24 $
 */
;(function($){var ie6=$.browser.msie&&parseInt($.browser.version)==6&&typeof window['XMLHttpRequest']!="object",ieQuirks=null,w=[];$.modal=function(data,options){return $.modal.impl.init(data,options);};$.modal.close=function(){$.modal.impl.close();};$.fn.modal=function(options){return $.modal.impl.init(this,options);};$.modal.defaults={appendTo:'body',focus:true,opacity:50,overlayId:'simplemodal-overlay',overlayCss:{},containerId:'simplemodal-container',containerCss:{},dataId:'simplemodal-data',dataCss:{},minHeight:200,minWidth:300,maxHeight:null,maxWidth:null,autoResize:false,autoPosition:true,zIndex:9999,close:true,closeHTML:'<a class="modalCloseImg" title="Close"></a>',closeClass:'simplemodal-close',escClose:true,overlayClose:false,position:null,persist:false,onOpen:null,onShow:null,onClose:null};$.modal.impl={o:null,d:{},init:function(data,options){var s=this;if(s.d.data){return false;}ieQuirks=$.browser.msie&&!$.boxModel;s.o=$.extend({},$.modal.defaults,options);s.zIndex=s.o.zIndex;s.occb=false;if(typeof data=='object'){data=data instanceof jQuery?data:$(data);if(data.parent().parent().size()>0){s.d.parentNode=data.parent();if(!s.o.persist){s.d.orig=data.clone(true);}}}else if(typeof data=='string'||typeof data=='number'){data=$('<div></div>').html(data);}else{alert('SimpleModal Error: Unsupported data type: '+typeof data);return s;}s.create(data);data=null;s.open();if($.isFunction(s.o.onShow)){s.o.onShow.apply(s,[s.d]);}return s;},create:function(data){var s=this;w=s.getDimensions();if(ie6){s.d.iframe=$('<iframe src="javascript:false;"></iframe>').css($.extend(s.o.iframeCss,{display:'none',opacity:0,position:'fixed',height:w[0],width:w[1],zIndex:s.o.zIndex,top:0,left:0})).appendTo(s.o.appendTo);}s.d.overlay=$('<div></div>').attr('id',s.o.overlayId).addClass('simplemodal-overlay').css($.extend(s.o.overlayCss,{display:'none',opacity:s.o.opacity/100,height:w[0],width:w[1],position:'fixed',left:0,top:0,zIndex:s.o.zIndex+1})).appendTo(s.o.appendTo);s.d.container=$('<div></div>').attr('id',s.o.containerId).addClass('simplemodal-container').css($.extend(s.o.containerCss,{display:'none',position:'fixed',zIndex:s.o.zIndex+2})).append(s.o.close&&s.o.closeHTML?$(s.o.closeHTML).addClass(s.o.closeClass):'').appendTo(s.o.appendTo);s.d.wrap=$('<div></div>').attr('tabIndex',-1).addClass('simplemodal-wrap').css({height:'100%',outline:0,width:'100%'}).appendTo(s.d.container);s.d.data=data.attr('id',data.attr('id')||s.o.dataId).addClass('simplemodal-data').css($.extend(s.o.dataCss,{display:'none'})).appendTo('body');data=null;s.setContainerDimensions();s.d.data.appendTo(s.d.wrap);if(ie6||ieQuirks){s.fixIE();}},bindEvents:function(){var s=this;$('.'+s.o.closeClass).bind('click.simplemodal',function(e){e.preventDefault();s.close();});if(s.o.close&&s.o.overlayClose){s.d.overlay.bind('click.simplemodal',function(e){e.preventDefault();s.close();});}$(document).bind('keydown.simplemodal',function(e){if(s.o.focus&&e.keyCode==9){s.watchTab(e);}else if((s.o.close&&s.o.escClose)&&e.keyCode==27){e.preventDefault();s.close();}});$(window).bind('resize.simplemodal',function(){w=s.getDimensions();s.setContainerDimensions(true);if(ie6||ieQuirks){s.fixIE();}else{s.d.iframe&&s.d.iframe.css({height:w[0],width:w[1]});s.d.overlay.css({height:w[0],width:w[1]});}});},unbindEvents:function(){$('.'+this.o.closeClass).unbind('click.simplemodal');$(document).unbind('keydown.simplemodal');$(window).unbind('resize.simplemodal');this.d.overlay.unbind('click.simplemodal');},fixIE:function(){var s=this,p=s.o.position;$.each([s.d.iframe||null,s.d.overlay,s.d.container],function(i,el){if(el){var bch='document.body.clientHeight',bcw='document.body.clientWidth',bsh='document.body.scrollHeight',bsl='document.body.scrollLeft',bst='document.body.scrollTop',bsw='document.body.scrollWidth',ch='document.documentElement.clientHeight',cw='document.documentElement.clientWidth',sl='document.documentElement.scrollLeft',st='document.documentElement.scrollTop',s=el[0].style;s.position='absolute';if(i<2){s.removeExpression('height');s.removeExpression('width');s.setExpression('height',''+bsh+' > '+bch+' ? '+bsh+' : '+bch+' + "px"');s.setExpression('width',''+bsw+' > '+bcw+' ? '+bsw+' : '+bcw+' + "px"');}else{var te,le;if(p&&p.constructor==Array){var top=p[0]?typeof p[0]=='number'?p[0].toString():p[0].replace(/px/,''):el.css('top').replace(/px/,'');te=top.indexOf('%')==-1?top+' + (t = '+st+' ? '+st+' : '+bst+') + "px"':parseInt(top.replace(/%/,''))+' * (('+ch+' || '+bch+') / 100) + (t = '+st+' ? '+st+' : '+bst+') + "px"';if(p[1]){var left=typeof p[1]=='number'?p[1].toString():p[1].replace(/px/,'');le=left.indexOf('%')==-1?left+' + (t = '+sl+' ? '+sl+' : '+bsl+') + "px"':parseInt(left.replace(/%/,''))+' * (('+cw+' || '+bcw+') / 100) + (t = '+sl+' ? '+sl+' : '+bsl+') + "px"';}}else{te='('+ch+' || '+bch+') / 2 - (this.offsetHeight / 2) + (t = '+st+' ? '+st+' : '+bst+') + "px"';le='('+cw+' || '+bcw+') / 2 - (this.offsetWidth / 2) + (t = '+sl+' ? '+sl+' : '+bsl+') + "px"';}s.removeExpression('top');s.removeExpression('left');s.setExpression('top',te);s.setExpression('left',le);}}});},focus:function(pos){var s=this,p=pos||'first';var input=$(':input:enabled:visible:'+p,s.d.wrap);input.length>0?input.focus():s.d.wrap.focus();},getDimensions:function(){var el=$(window);var h=$.browser.opera&&$.browser.version>'9.5'&&$.fn.jquery<='1.2.6'?document.documentElement['clientHeight']:$.browser.opera&&$.browser.version<'9.5'&&$.fn.jquery>'1.2.6'?window.innerHeight:el.height();return[h,el.width()];},getVal:function(v){return v=='auto'?0:v.indexOf('%')>0?v:parseInt(v.replace(/px/,''));},setContainerDimensions:function(resize){var s=this;if(!resize||(resize&&s.o.autoResize)){var ch=s.getVal(s.d.container.css('height')),cw=s.getVal(s.d.container.css('width')),dh=s.d.data.outerHeight(true),dw=s.d.data.outerWidth(true);var mh=s.o.maxHeight&&s.o.maxHeight<w[0]?s.o.maxHeight:w[0],mw=s.o.maxWidth&&s.o.maxWidth<w[1]?s.o.maxWidth:w[1];if(!ch){if(!dh){ch=s.o.minHeight;}else{if(dh>mh){ch=mh;}else if(dh<s.o.minHeight){ch=s.o.minHeight;}else{ch=dh;}}}else{ch=ch>mh?mh:ch;}if(!cw){if(!dw){cw=s.o.minWidth;}else{if(dw>mw){cw=mw;}else if(dw<s.o.minWidth){cw=s.o.minWidth;}else{cw=dw;}}}else{cw=cw>mw?mw:cw;}s.d.container.css({height:ch,width:cw});if(dh>ch||dw>cw){s.d.wrap.css({overflow:'auto'});}}if(s.o.autoPosition){s.setPosition();}},setPosition:function(){var s=this,top,left,hc=(w[0]/2)-(s.d.container.outerHeight(true)/2),vc=(w[1]/2)-(s.d.container.outerWidth(true)/2);if(s.o.position&&Object.prototype.toString.call(s.o.position)==="[object Array]"){top=s.o.position[0]||hc;left=s.o.position[1]||vc;}else{top=hc;left=vc;}s.d.container.css({left:left,top:top});},watchTab:function(e){var s=this;if($(e.target).parents('.simplemodal-container').length>0){s.inputs=$(':input:enabled:visible:first, :input:enabled:visible:last',s.d.data[0]);if((!e.shiftKey&&e.target==s.inputs[s.inputs.length-1])||(e.shiftKey&&e.target==s.inputs[0])||s.inputs.length==0){e.preventDefault();var pos=e.shiftKey?'last':'first';setTimeout(function(){s.focus(pos);},10);}}else{e.preventDefault();setTimeout(function(){s.focus();},10);}},open:function(){var s=this;s.d.iframe&&s.d.iframe.show();if($.isFunction(s.o.onOpen)){s.o.onOpen.apply(s,[s.d]);}else{s.d.overlay.show();s.d.container.show();s.d.data.show();}s.focus();s.bindEvents();},close:function(){var s=this;if(!s.d.data){return false;}s.unbindEvents();if($.isFunction(s.o.onClose)&&!s.occb){s.occb=true;s.o.onClose.apply(s,[s.d]);}else{if(s.d.parentNode){if(s.o.persist){s.d.data.hide().appendTo(s.d.parentNode);}else{s.d.data.hide().remove();s.d.orig.appendTo(s.d.parentNode);}}else{s.d.data.hide().remove();}s.d.container.hide().remove();s.d.overlay.hide().remove();s.d.iframe&&s.d.iframe.hide().remove();s.d={};}}};})(jQuery);
