/* by qhapaq - moises torres romero */

//Compartir y sendmail
$.fn.sharer = function(settings) {
	if(this.length==0) return false;
	options = $.extend({
		container_id:"sharer_panel",
		icon_root:"/f/i/sharer/",
		createTo:"body",
		action:"/ajax/recomienda"
	},settings);
	//options.showed = false;
	options.showedObj = null;
	var html = '<div style="display:none" id="'+options.container_id+'"><div class="sharer-cab"></div><div class="sharer-cnt"></div><div class="sharer-pie"></div>';
	var layer = $("#"+options.container_id,options.createTo);
	if (layer.length==0)  layer = $(html).appendTo($(options.createTo));
	layer.mouseenter(function(){ 
		clearTimeout(waitHide);
	}).mouseleave(function(){ 
		waitHide = 	setTimeout(function(){
						if (layer.css("display") == "none"){
							clearTimeout(waitHide);
						}else {
							layer.css("display","none");
							options.showedObj.removeClass("press");
							options.showedObj = null;
						};
						
					},1000);
	});
	var waitHide = null;
	var links = function(url, tittle){
		return[ 
			["twitter",{		name:"Twitter",     	url:"http://twitter.com/home?status="+url}],
			["facebook",{		name:"Facebook",     	url:"http://www.facebook.com/sharer.php?u="+url+"&title="+tittle}],
			["delicious",{  name:"del.icio.us",   url:"http://del.icio.us/post?url="+url+"&title="+tittle}],
			["digg",{     	name:"Digg",        	url:"http://digg.com/submit?phase=2&url="+url+"&title="+tittle}],
			["google",{  		name:"G. Bookmarks",	url:"http://www.google.com/bookmarks/mark?op=edit&bkmk="+url+"&title="+tittle}],
			["yahoo",{  		name:"Yahoo! My Web", url:"http://myweb2.search.yahoo.com/myresults/bookmarklet?u="+url+"&t="+tittle}],
			["technorati",{ name:"Technorati",  	url:"http://www.technorati.com/faves?add="+url}],
			["stumbleupon",{name:"StumbleUpon",   url:"http://www.stumbleupon.com/submit?url="+url+"&title="+tittle}],
			["myspace",{    name:"Myspace",   		url:"http://www.myspace.com/Modules/PostTo/Pages/?l=3&u="+url+"&t="+tittle}],
			["reddit",{    	name:"Reddit",   			url:"http://reddit.com/submit?url="+url+"&title="+tittle}]
		]
	};
	var form_html = function(url,title,bajada){
		var inoutput  ='<form method="post" action="'+options.action+'">';
			inoutput +='<input type="text" value="Tu nombre" name="nombre1" class="alpha" onfocus="if (this.value==this.defaultValue) {this.value=\'\';$(this).addClass(\'black\')}" onblur="if (this.value==\'\') {this.value = this.defaultValue; $(this).removeClass(\'black\');}else{$(this).addClass(\'none\')}" />';
			inoutput +='<input type="text" value="Nombre de tu amigo" name="nombre2" class="alpha" onfocus="if (this.value==this.defaultValue) {this.value=\'\';$(this).addClass(\'black\')}" onblur="if (this.value==\'\') {this.value = this.defaultValue; $(this).removeClass(\'black\');}else{$(this).addClass(\'none\')}" />';
			inoutput +='<input type="text" value="Email de tu amigo" name="email2" class="mail" onfocus="if (this.value==this.defaultValue) {this.value=\'\';$(this).addClass(\'black\')}" onblur="if (this.value==\'\') {this.value = this.defaultValue; $(this).removeClass(\'black\');}else{$(this).addClass(\'none\')}" />';
			inoutput +='<input type="hidden" value="'+title+'" name="titulo"/>';
			inoutput +='<input type="hidden" value="'+bajada+'" name="bajada"/>';
			inoutput +='<input type="hidden" value="'+url+'" name="pag"/>';
			inoutput +='<button type="submit" class="sendme">Enviar</button>';
			inoutput +='</form>';
		return inoutput;
	};
	var set_links_html = function(url,title){
		var sitelist = links(url,title);
		var inoutput = "<ul>";
		for(i = 0; i<sitelist.length; i++){
			inoutput += '<li><a href="'+sitelist[i][1].url+'"><span><img src="'+options.icon_root+sitelist[i][0]+'.png" /></span> '+sitelist[i][1].name+'</a></li>';
		}
		return inoutput + "</ul>";;
	}
	
	this.each(function(i){
		//var url, title;
		var isSendMail = $(this).hasClass("email");
		// compartir
		$(this).bind("click", function(e){
			clearTimeout(waitHide);
			var t = $(e.target);
			var top = t.offset().top + t.height();
			if (options.showedObj != null) {
				layer.css("display","none");
				//options.showed = false;
				options.showedObj.removeClass("press");
				options.showedObj = null;
				if (parseInt(layer.css("top")) == parseInt(top) ) return false;
			}
			if(isSendMail){
				var url = document.location.href;
				var title = $("div.wrapper h1","div#news").text();
				var bajada = $("div.bajada-nota p","div#news").text();
				var f = $(form_html(url,title,bajada));
				
				$("div.sharer-cnt",layer).empty().prepend(f).css("height",null);
				f.submit(function(){ 
					f.find(".mail").each(function(){
						if ((/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this.value)) && (this.value != this.defaultValue) ){
							$(this).removeClass("error");
						}else{
							$(this).addClass("error");
						}
					});
					f.find(".alpha").each(function(){
						if (this.value=="" || (this.value == this.defaultValue) ){
							$(this).addClass("error");
						}else{
							$(this).removeClass("error");
						}
					});
					
					er = f.find(".error"); 
					if (er.length>0){
						er.get(0).focus();
						return false;
					}
					//var p=f.attr("action");
					var e=f.serialize();
					
					f.find(".sendme").html('Enviando...').attr("disabled","disabled");
					$.post(f.attr("action"),e,function(){
						setTimeout(function(){ f.parent().html("<p>Tu mensaje ha sido enviado</p>").css("height","30px"); });
						return false;
					});

					return false; 
				});
				var left = t.offset().left - layer.width() + t.width();
				layer.css({"top":top, "left":left, "position":"absolute","display":"block"});
			}else{
				//var url = String(encodeURIComponent(  "http://elcomercio.pe/"+t.parent().siblings("h2").children("a").attr("href") ));
				//var title = String(encodeURIComponent(  t.parent().siblings("h2").text() ));
				
				var url = String(encodeURIComponent(t.parent().next().find("h2").children("a").attr("href") ));
				var title = String(encodeURIComponent( t.parent().next().find("h2").text() ));
				if (url == "undefined") {
					url = document.location.href;
					title = document.title;
				}
				
				
				var lis = set_links_html(url,title);
				$("div.sharer-cnt",layer).html(lis).css("height",null);
				
				var left = t.offset().left - layer.width() + t.width();
				layer.css({"top":top, "left":left, "position":"absolute","display":"block"});
			}
			t.addClass("press");
			options.showedObj = t;
			return false;
		}).mouseleave(function(e){
			if (layer.css("display") == "none") return false;
			waitHide = 	setTimeout(function(){
				if (layer.css("display") == "none"){
					clearTimeout(waitHide);
				}else {
					layer.css("display","none");
					options.showedObj = null;
					$(e.target).removeClass("press");
				};
			},1000);
		});
	});

};
