//last.fm
(function($) {
    $.fn.lastfm = function( options ) {
        var el, o = $.extend(true, {}, defaults, options);
        $bod = $( document.body );
        el = this;
        connector( o.url, o.params, success );
        return this;        
        function success(jo) {
            if( o.params.limit > 1 && jo.recenttracks.track.length ) {
                for( i=0;i<jo.recenttracks.track.length;i++ ) {
                    renderItems( jo.recenttracks.track[i] ).appendTo( el );
                }
            } else {
                renderItems( jo.recenttracks.track ).appendTo( el );
            }
        }
        function handleDate( itm ) {
            var n=new Date(), t, ago = " ";
            if( itm.date && itm.date.uts ) {
              t =   Math.round( (n.getTime()/1000 - parseInt( itm.date.uts ) )/60 );
              ago += handleSinceDateEndings( t, itm.date.uts );
            } else {
                ago += "ahora";
            }
            return ago;            
            
        }
        function handleSinceDateEndings( t, original_timestamp ) {
            var ago = " ", date;
            if( t <= 1 ) {
                ago += "ahora";
            } else if( t<60) {
                ago += "hace " + t + " minutos";
            } else if( t>= 60 && t<= 120) {
                ago += "hace " + Math.floor( t / 60 ) + " hora"
            } else if( t<1440 ) {
                ago += "hace " + Math.floor( t / 60 )  + " horas";
            } else if( t< 2880) {
                ago +=  "hace 1 día";
            } else if( t > 2880  && t < 4320 ) {
                ago +=  "hace 2 días";
            } else {
                date = new Date( parseInt( original_timestamp )*1000 ) 
                ago += "el " + date.getDate() + " de " + o.months[ date.getMonth() ];
            }
            return ago;
        }        
        function renderItems( itm ) {
            var li = $("<li />"), ago = handleDate(itm), art = $("<span id='albumart'><img src='" + itm.image[1]['#text'] + "'/></span>").appendTo(li),
                a = $("<a />")
                    .html( itm.name ).attr( "href", itm.url )
                    .attr("target", "_blank").appendTo( li );
    
            var span = $("<span />").html( "de <i><font color=#000>" + itm.artist['#text'] + "</font></i>")
                                    .addClass("sp_list_itm_span").appendTo( li ),
				hace = $("<span />").html(ago).appendTo(li).addClass("sp_list_itm_span");
          
            return li;
        }        
    }
    var defaults = {
    
        url : 'http://ws.audioscrobbler.com/2.0/?method=user.getRecentTracks',
        page : 'http://www.last.fm/user/',        
        user : 'gregory80',
        pageName : 'last.fm',
        params : {
            limit : 5,
            format : 'json',            
            api_key : '0e08a37f63207afd22b959c4ba7a2c3e',
            user : 'gregory80'
        },
        months : ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Augosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
        
    }, $bod;
    function connector(url, params, callback) {
        var str = $.param( params );
        $.ajax({
            dataType: 'jsonp',
            data : str,
            jsonp: 'callback',
            'url' : url,
            success: callback            
        });
    }
})(jQuery);

//Cont Form
jQuery(document).ready(function() {
	try {
		jQuery('div.wpcf7 > form').ajaxForm({
			beforeSubmit: wpcf7BeforeSubmit,
			dataType: 'json',
			success: wpcf7ProcessJson
		});
	} catch (e) {
	}
	try {
		jQuery('div.wpcf7 > form').each(function(i, n) {
			wpcf7ToggleSubmit(jQuery(n));
		});
	} catch (e) {
	}
	try {
		if (_wpcf7.cached) {
			jQuery('div.wpcf7 > form').each(function(i, n) {
				wpcf7OnloadRefill(n);
			});
		}
	} catch (e) {
	}
});
// Exclusive checkbox
function wpcf7ExclusiveCheckbox(elem) {
	jQuery(elem.form).find('input:checkbox[name="' + elem.name + '"]').not(elem).removeAttr('checked');
}
// Toggle submit button
function wpcf7ToggleSubmit(form) {
	var submit = jQuery(form).find('input:submit');
	if (! submit.length) return;

	var acceptances = jQuery(form).find('input:checkbox.wpcf7-acceptance');
	if (! acceptances.length) return;

	submit.removeAttr('disabled');
	acceptances.each(function(i, n) {
		n = jQuery(n);
		if (n.hasClass('wpcf7-invert') && n.is(':checked') || ! n.hasClass('wpcf7-invert') && ! n.is(':checked'))
		submit.attr('disabled', 'disabled');
	});
}
function wpcf7BeforeSubmit(formData, jqForm, options) {
	wpcf7ClearResponseOutput();
	jQuery('img.ajax-loader', jqForm[0]).css({ visibility: 'visible' });

	formData.push({name: '_wpcf7_is_ajax_call', value: 1});
	jQuery(jqForm[0]).append('<input type="hidden" name="_wpcf7_is_ajax_call" value="1" />');

	return true;
}
function wpcf7NotValidTip(into, message) {
	jQuery(into).append('<span class="wpcf7-not-valid-tip">' + message + '</span>');
	jQuery('span.wpcf7-not-valid-tip').mouseover(function() {
		jQuery(this).fadeOut('fast');
	});
	jQuery(into).find(':input').mouseover(function() {
		jQuery(into).find('.wpcf7-not-valid-tip').not(':hidden').fadeOut('fast');
	});
	jQuery(into).find(':input').focus(function() {
		jQuery(into).find('.wpcf7-not-valid-tip').not(':hidden').fadeOut('fast');
	});
}
function wpcf7OnloadRefill(form) {
	var url = jQuery(form).attr('action');
	if (0 < url.indexOf('#'))
		url = url.substr(0, url.indexOf('#'));

	var id = jQuery(form).find('input[name="_wpcf7"]').val();
	var unitTag = jQuery(form).find('input[name="_wpcf7_unit_tag"]').val();

	jQuery.getJSON(url,
		{ _wpcf7_is_ajax_call: 1, _wpcf7: id },
		function(data) {
			if (data && data.captcha) {
				wpcf7RefillCaptcha('#' + unitTag, data.captcha);
			}
			if (data && data.quiz) {
				wpcf7RefillQuiz('#' + unitTag, data.quiz);
			}
		}
	);
}
function wpcf7ProcessJson(data) {
	var wpcf7ResponseOutput = jQuery(data.into).find('div.wpcf7-response-output');
	wpcf7ClearResponseOutput();

	if (data.invalids) {
		jQuery.each(data.invalids, function(i, n) {
			wpcf7NotValidTip(jQuery(data.into).find(n.into), n.message);
		});
		wpcf7ResponseOutput.addClass('wpcf7-validation-errors');
	}

	if (data.captcha) {
		wpcf7RefillCaptcha(data.into, data.captcha);
	}

	if (data.quiz) {
		wpcf7RefillQuiz(data.into, data.quiz);
	}

	if (1 == data.spam) {
		wpcf7ResponseOutput.addClass('wpcf7-spam-blocked');
	}

	if (1 == data.mailSent) {
		jQuery(data.into).find('form').resetForm().clearForm();
		wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ok');

		if (data.onSentOk)
			jQuery.each(data.onSentOk, function(i, n) { eval(n) });
	} else {
		wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ng');
	}

	if (data.onSubmit)
		jQuery.each(data.onSubmit, function(i, n) { eval(n) });

	wpcf7ResponseOutput.append(data.message).slideDown('fast');
}
function wpcf7RefillCaptcha(form, captcha) {
	jQuery.each(captcha, function(i, n) {
		jQuery(form).find(':input[name="' + i + '"]').clearFields();
		jQuery(form).find('img.wpcf7-captcha-' + i).attr('src', n);
		var match = /([0-9]+)\.(png|gif|jpeg)$/.exec(n);
		jQuery(form).find('input:hidden[name="_wpcf7_captcha_challenge_' + i + '"]').attr('value', match[1]);
	});
}
function wpcf7RefillQuiz(form, quiz) {
	jQuery.each(quiz, function(i, n) {
		jQuery(form).find(':input[name="' + i + '"]').clearFields();
		jQuery(form).find(':input[name="' + i + '"]').siblings('span.wpcf7-quiz-label').text(n[0]);
		jQuery(form).find('input:hidden[name="_wpcf7_quiz_answer_' + i + '"]').attr('value', n[1]);
	});
}
function wpcf7ClearResponseOutput() {
	jQuery('div.wpcf7-response-output').hide().empty().removeClass('wpcf7-mail-sent-ok wpcf7-mail-sent-ng wpcf7-validation-errors wpcf7-spam-blocked');
	jQuery('span.wpcf7-not-valid-tip').remove();
	jQuery('img.ajax-loader').css({ visibility: 'hidden' });
}
//Sexy Bookmarks
function showHide(element) {
	if (document.getElementById(element).style.display == "") {	// show it
		document.getElementById(element).style.display = "none";
		document.getElementById(element+"-hidden").style.display = "";
	} else {
		document.getElementById(element).style.display = "";
		document.getElementById(element+"-hidden").style.display = "none";
	}
}
function ShowInfo() {
	document.getElementById("comment-author").style.display = "";
	document.getElementById("showinfo").style.display = "none";
	document.getElementById("hideinfo").style.display = "";
}
function HideInfo() {
	document.getElementById("comment-author").style.display = "none";
	document.getElementById("showinfo").style.display = "";
	document.getElementById("hideinfo").style.display = "none";
}
formattingOpen = false;
function toggleFormatting() {
	if (formattingOpen == false) {
		document.getElementById("tags-allowed").style.display = "";
		formattingOpen = true;
	} else {
		document.getElementById("tags-allowed").style.display = "none";
		formattingOpen = false;
	}
}
function hideOnLoad(element) {
	document.getElementById(element).style.display = "none";
}
function addQuote(comment,quote){
	// IE support
	if (document.selection) {
		comment.focus();
		sel = document.selection.createRange();
		sel.text = quote;
		comment.focus();
	}
	// Mozilla support
	else if (comment.selectionStart || comment.selectionStart == '0') {
		var startPos = comment.selectionStart;
		var endPos = comment.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = comment.scrollTop;
		if (startPos != endPos) {
			comment.value = comment.value.substring(0, startPos)
			              + quote
			              + comment.value.substring(endPos, comment.value.length);
			cursorPos = startPos + quote.length
		}
		else {
			comment.value = comment.value.substring(0, startPos) 
				              + quote
				              + comment.value.substring(endPos, comment.value.length);
			cursorPos = startPos + quote.length;
		}
		comment.focus();
		comment.selectionStart = cursorPos;
		comment.selectionEnd = cursorPos;
		comment.scrollTop = scrollTop;
	}
	else {
		comment.value += quote;
	}
	try {
		ReloadTextDiv();
	}
	catch ( e ) {
	}	
}
function quote(postid, author, commentarea, commentID, textile) {
	var posttext = '';
	if (window.getSelection){
		posttext = window.getSelection();
	}
	else if (document.getSelection){
		posttext = document.getSelection();
	}
	else if (document.selection){
		posttext = document.selection.createRange().text;
	}
	else {
		return true;
	}
	if (posttext==''){
		var posttext = document.getElementById(commentID).innerHTML;
		var posttext = posttext.replace(/	/g, "");
		var posttext = posttext.replace(/<p>/g, "\n");
		var posttext = posttext.replace(/<\/\s*p>/g, "");
		var posttext = posttext.replace(/<br>/g, "")
		var posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "");
		var posttext = posttext.replace(/<blockquote>[^>]*<\/\s*blockquote>/g, "");

		var quote='<blockquote>\n'+posttext+'</blockquote>\n\n';

		var comment=document.getElementById(commentarea);
		addQuote(comment,quote);
		
	} else {
		if (textile) {
			var quote='bq. '+posttext+'\n\n';
		} else {
			var quote='<blockquote>\n\n'+posttext+'\n\n</blockquote>\n';
		}
		var comment=document.getElementById(commentarea);
		addQuote(comment,quote);
		
	}
	return false;
}
/*I like*/
function likeThis(postId) {
	if (postId != '') {
		jQuery('#iLikeThis-'+postId+' .counter').text('...');
		
		jQuery.post(blogUrl + "/wp-content/plugins/i-like-this/like.php",
			{ id: postId },
			function(data){
				jQuery('#iLikeThis-'+postId+' .counter').text(data);
			});
	}
}
/* Next gen gallery SHUTTER-RELOADED.JS*/
shutterOnload = function(){shutterReloaded.init('sh');}
if (typeof shutterOnload == 'function') {
	if ('undefined' != typeof jQuery) jQuery(document).ready(function(){shutterOnload();});
	else if( typeof window.onload != 'function' ) window.onload = shutterOnload;
	else {oldonld = window.onload;window.onload = function(){if(oldonld){oldonld();};shutterOnload();}};
}
shutterReloaded = {
	I : function (a) {
		return document.getElementById(a);
	},
	settings : function() {
		var t = this, s = shutterSettings;

		t.imageCount = s.imageCount || 0;
		t.msgLoading = s.msgLoading || 'L O A D I N G';
		t.msgClose = s.msgClose || 'Click to Close';
	},

	init : function (a) {
		var t = this, L, T, ext, i, m, setid, inset, shfile, shMenuPre, k, img;
		shutterLinks = {}, shutterSets = {};
		if ( 'object' != typeof shutterSettings ) shutterSettings = {};

		for ( i = 0; i < document.links.length; i++ ) {
			L = document.links[i];
			ext = ( L.href.indexOf('?') == -1 ) ? L.href.slice(-4).toLowerCase() : L.href.substring( 0, L.href.indexOf('?') ).slice(-4).toLowerCase();
			if ( ext != '.jpg' && ext != '.png' && ext != '.gif' && ext != 'jpeg' ) continue;
			if ( a == 'sh' && L.className.toLowerCase().indexOf('shutter') == -1 ) continue;
			if ( a == 'lb' && L.rel.toLowerCase().indexOf('lightbox') == -1 ) continue;

			if ( L.className.toLowerCase().indexOf('shutterset') != -1 )
			setid = L.className.replace(/\s/g, '_');			
			else if ( L.rel.toLowerCase().indexOf('lightbox[') != -1 )
			setid = L.rel.replace(/\s/g, '_');
			else setid = 0, inset = -1;
			
			if( setid ) {
				if ( ! shutterSets[setid] ) shutterSets[setid] = [];
					inset = shutterSets[setid].push(i);
			}
			
			shfile = L.href.slice(L.href.lastIndexOf('/')+1);
			T = ( L.title && L.title != shfile ) ? L.title : '';
			
			shutterLinks[i] = {link:L.href,num:inset,set:setid,title:T}
			L.onclick = new Function('shutterReloaded.make("' + i + '");return false;');
		}
		t.settings();

	},
	make : function(ln,fs) {
		var t = this, prev, next, prevlink = '', nextlink = '', previmg, nextimg, D, S, W, fsarg = -1, imgNum, NavBar;

		if ( ! t.Top ) {
			if ( typeof window.pageYOffset != 'undefined' ) t.Top = window.pageYOffset;
			else t.Top = (document.documentElement.scrollTop > 0) ? document.documentElement.scrollTop : document.body.scrollTop;
		}

		if ( typeof t.pgHeight == 'undefined' )
			t.pgHeight = Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);

		if ( fs ) t.FS = ( fs > 0 ) ? 1 : 0;
		else t.FS = shutterSettings.FS || 0;

		if ( t.resizing ) t.resizing = null;
		window.onresize = new Function('shutterReloaded.resize("'+ln+'");');

		document.documentElement.style.overflowX = 'hidden';
		if ( ! t.VP ) {
			t._viewPort();
			t.VP = true;
		}
		if ( ! (S = t.I('shShutter')) ) {
			S = document.createElement('div');
			S.setAttribute('id','shShutter');
			document.getElementsByTagName('body')[0].appendChild(S);
			t.hideTags();
		}

		if ( ! (D = t.I('shDisplay')) ) {
			D = document.createElement('div');
			D.setAttribute('id','shDisplay');
			D.style.top = t.Top + 'px';
			document.getElementsByTagName('body')[0].appendChild(D);
		}
		S.style.height = t.pgHeight + 'px';

		var dv = t.textBtns ? ' | ' : '';
		if ( shutterLinks[ln].num > 1 ) {
			prev = shutterSets[shutterLinks[ln].set][shutterLinks[ln].num - 2];
			prevlink = '<a href="#" onclick="shutterReloaded.make('+prev+');return false">&lt;&lt;</a>'+dv;
			previmg = new Image();
			previmg.src = shutterLinks[prev].link;
		} else {
			prevlink = '';
		}
		if ( shutterLinks[ln].num != -1 && shutterLinks[ln].num < (shutterSets[shutterLinks[ln].set].length) ) {
			next = shutterSets[shutterLinks[ln].set][shutterLinks[ln].num];
			nextlink = '<a href="#" onclick="shutterReloaded.make('+next+');return false">&gt;&gt;</a>'+dv;
			nextimg = new Image();
			nextimg.src = shutterLinks[next].link;
		} else {
			nextlink = '';
		}
		imgNum = ( (shutterLinks[ln].num > 0) && t.imageCount ) ? '<div id="shCount">&nbsp;(&nbsp;' + shutterLinks[ln].num + '&nbsp;/&nbsp;' + shutterSets[shutterLinks[ln].set].length + '&nbsp;)&nbsp;</div>' : '';

		NavBar = '<div id="shTitle"><div id="shPrev">' + prevlink + '</div><div id="shNext">' + nextlink + '</div><div id="shName">' + shutterLinks[ln].title + '</div>' + imgNum + '</div>';
		D.innerHTML = '<div id="shWrap"><img src="" id="shTopImg" title="' + t.msgClose + '" onload="shutterReloaded.showImg();" onclick="shutterReloaded.hideShutter();" />' + NavBar +'</div>';
		document.getElementById('shTopImg').src = shutterLinks[ln].link;
		
		window.setTimeout(function(){shutterReloaded.loading();},2000);
	},
	loading : function() {
		var t = this, S, WB, W;
		if ( (W = t.I('shWrap')) && W.style.visibility == 'visible' ) return;
		if ( ! (S = t.I('shShutter')) ) return;
		if ( t.I('shWaitBar') ) return;
		WB = document.createElement('div');
		WB.setAttribute('id','shWaitBar');
		WB.style.top = t.Top + 'px';
		WB.innerHTML = t.msgLoading;
		S.appendChild(WB);
	},
	hideShutter : function() {
		var t = this, D, S;
		if ( D = t.I('shDisplay') ) D.parentNode.removeChild(D);
		if ( S = t.I('shShutter') ) S.parentNode.removeChild(S);
		t.hideTags(true);
		window.scrollTo(0,t.Top);
		window.onresize = t.FS = t.Top = t.VP = null;
		document.documentElement.style.overflowX = '';
	},
	resize : function(ln) {
		var t = this;

		if ( t.resizing ) return;
		if ( ! t.I('shShutter') ) return;
		var W = t.I('shWrap');
		if ( W ) W.style.visibility = 'hidden';

		window.setTimeout(function(){shutterReloaded.resizing = null},500);
		window.setTimeout(new Function('shutterReloaded.VP = null;shutterReloaded.make("'+ln+'");'),100);
		t.resizing = true;
	},
	_viewPort : function() {
		var t = this;
		var wiH = window.innerHeight ? window.innerHeight : 0;
		var dbH = document.body.clientHeight ? document.body.clientHeight : 0;
		var deH = document.documentElement ? document.documentElement.clientHeight : 0;

		if( wiH > 0 ) {
			t.wHeight = ( (wiH - dbH) > 1 && (wiH - dbH) < 30 ) ? dbH : wiH;
			t.wHeight = ( (t.wHeight - deH) > 1 && (t.wHeight - deH) < 30 ) ? deH : t.wHeight;
		} else t.wHeight = ( deH > 0 ) ? deH : dbH;

		var deW = document.documentElement ? document.documentElement.clientWidth : 0;
		var dbW = window.innerWidth ? window.innerWidth : document.body.clientWidth;
		t.wWidth = ( deW > 1 ) ? deW : dbW;
	},
	showImg : function() {
		var t = this, S = t.I('shShutter'), D = t.I('shDisplay'), TI = t.I('shTopImg'), T = t.I('shTitle'), NB = t.I('shNavBar'), W, WB, wHeight, wWidth, shHeight, maxHeight, itop, mtop, resized = 0;

		if ( ! S ) return;
		if ( (W = t.I('shWrap')) && W.style.visibility == 'visible' ) return;
		if ( WB = t.I('shWaitBar') ) WB.parentNode.removeChild(WB);

		S.style.width = D.style.width = '';
		T.style.width = (TI.width - 4) + 'px';

		shHeight = t.wHeight - 7;

		if ( t.FS ) {
			if ( TI.width > (t.wWidth - 10) )
			S.style.width = D.style.width = TI.width + 10 + 'px';
			document.documentElement.style.overflowX = '';
		} else {
			window.scrollTo(0,t.Top);
			if ( TI.height > shHeight ) {
				TI.width = TI.width * (shHeight / TI.height);
				TI.height = shHeight;
				resized = 1;
			}
			if ( TI.width > (t.wWidth - 16) ) {
				TI.height = TI.height * ((t.wWidth - 16) / TI.width);
				TI.width = t.wWidth - 16;
				resized = 1;
			}
			T.style.width = (TI.width - 4) + 'px';
		}

		maxHeight = t.Top + TI.height + 10;
		if ( maxHeight > t.pgHeight ) S.style.height = maxHeight + 'px';
		window.scrollTo(0,t.Top);

		itop = (shHeight - TI.height) * 0.45;
		mtop = (itop > 3) ? Math.floor(itop) : 3;
		D.style.top = t.Top + mtop + 'px';
		W.style.visibility = 'visible';
	},
	hideTags : function(arg) {
		var sel = document.getElementsByTagName('select');
		var obj = document.getElementsByTagName('object');
		var emb = document.getElementsByTagName('embed');
		var ifr = document.getElementsByTagName('iframe');

		var vis = ( arg ) ? 'visible' : 'hidden';

		for (i = 0; i < sel.length; i++) sel[i].style.visibility = vis;
		for (i = 0; i < obj.length; i++) obj[i].style.visibility = vis;
		for (i = 0; i < emb.length; i++) emb[i].style.visibility = vis;
		for (i = 0; i < ifr.length; i++) ifr[i].style.visibility = vis;
	}
}
/* Facebook URL */
function ventanaSecundaria (URL){ 
   	window.open(URL, "sharer", "toolbar=0, status=0, width=626, height=436");
} 
/*Bookmarks*/
jQuery(document).ready(function(){jQuery(".shr-bookmarks a.external").attr("target","_blank");var c=jQuery(".shr-bookmarks").height(),d=jQuery(".shr-bookmarks ul.socials").height();d>c&&jQuery(".shr-bookmarks-expand").hover(function(){jQuery(this).animate({height:d+"px"},{duration:400,queue:false})},function(){jQuery(this).animate({height:c+"px"},{duration:400,queue:false})});if(jQuery(".shr-bookmarks-center")||jQuery(".shr-bookmarks-spaced")){var a=jQuery(".shr-bookmarks").width(),b=jQuery(".shr-bookmarks:first ul.socials li").width(), e=jQuery(".shr-bookmarks:first ul.socials li").length,f=Math.floor(a/b);b=Math.min(f,e)*b;if(jQuery(".shr-bookmarks-spaced").length>0){a=Math.floor((a-b)/(Math.min(f,e)+1));jQuery(".shr-bookmarks ul.socials li").css("margin-left",a+"px")}else if(jQuery(true)){a=(a-b)/2;jQuery(".shr-bookmarks-center").css("margin-left",a+"px")}}});

