// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

var qbLibrary = new Object();
var qbLibrary = {
	blogsearch_start: 0,
	blogsearch_done_titles: [],
	blogsearch_done_hosts: new Object(),
	blogsearch_count: 0,
	debug: false,
	display_tweets: 5,
	max_start_index: 20,
	fetch_tweets: 30,
	dynamic_sidebar_done: false,

	update_hit_stats: function(){
		if(typeof(quarkbase) != "undefined" && typeof(quarkbase.website_id) != "undefined") {
			$.get('/pages/hit_stats/' + quarkbase.website_id + "?_f=" + Math.random() , function(data){qbLibrary.debug_log(data)});
		} else {
			$.get('/pages/hit_page_stats?url=' + window.location.pathname + "&_f=" + Math.random(), function(data){qbLibrary.debug_log(data)});
		}
	},

	setRightBoxHeight: function() {
		// var h = $('#leftcol').height() - $('.graybox').offset().top + $('#leftcol').offset().top;
		// $('.graybox').height((h > $('.graybox').height()) ? h : $('.graybox').height());
		// if ($('.graybox').height() < $('#leftcol').height()+30) {
		// 	$('.graybox').height($('#leftcol').height()+30);
		// }
		$('#leftcol, #rightcol').height('auto');
		if ($('#leftcol').height() < $('#rightcol').height()) {
			$('#leftcol').height($('#rightcol').height() - 50);
			// $('#leftcol').height($('#rightcol').height() + 200);
			// $('#rightcol').height($('#rightcol').height() + 250);
		} else {
			$('.graybox').height($('#container').height() - $('#header').height() - $('#brand').height() - $('#notmessage5').height() - $('#logo').height());
		}
	},
	
	find_bar_length: function(to_be_done) {
		var feats = []; 
		var new_done_features = [];
		jQuery.each(quarkbase.features, function(k, v){
			if (jQuery.inArray(k, quarkbase.not_counted_features) == -1) {
				feats.push(k);
			}
		});
		jQuery.each(to_be_done, function(k, v){
			if (jQuery.inArray(v, quarkbase.not_counted_features) == -1) {
				new_done_features.push(k);
			}
		});
		return ((feats.length - new_done_features.length)*100)/feats.length;
	},
	
	markUpdating: function(local){
		// $("#" + local).addClass('updating');
		if ($('#' + local + "update").length == 0) {
			$('#' + local + " .value").append("<div style='position:absolute;top:0;right:0;color:red;font-size:11px;' id='" + local + "update'>updating</div>");
		}
	},
	
	removeUpdating: function(id){
		// $('#' + id).removeClass('updating');
		$('#' + id + "update").remove();
	},
	
	update_bar_display: function() {
		var barheight = qbLibrary.find_bar_length(qbLibrary.feature_list());
		$("#loadpercent").html(parseInt(barheight) + "%");
		if( barheight > 98 ) {barheight = 98; setTimeout(function(){$('#messagepanel').remove();}, 10000);} else{$('#messagepanel').show();}
		$('#donebar').css('width', barheight+"%");
	},

	poll: function() {
		var to_be_done = qbLibrary.feature_list();
		if (quarkbase.feature_update_times.length > 0) {
			$.each(to_be_done, function(i, val){
				var local = quarkbase.feature_to_id_map[val];
				if ($.inArray(local, quarkbase.not_updated_features) == -1) { qbLibrary.markUpdating(local); }
				if (local == 'traffic_overview') { qbLibrary.markUpdating('fic');}
				if (local == 'pm') { qbLibrary.markUpdating('delicious');}
			});
		}
		qbLibrary.update_bar_display();
		if (to_be_done.length != 0) {
			$.get('/website/poll/' + quarkbase.website_id + "?f=" + to_be_done.join(','), function(data){
				$('#polldata').html(data);
				
				var testdata = $('#polldata .testdata');
				if (testdata.attr('id')!=undefined && testdata.attr('id').length > 0) {
					quarkbase.done_features = jQuery.merge(quarkbase.done_features, testdata.attr('id').split(','));
				}
				testdata.remove();
				
				var result = jQuery('#polldata>*[id]');
				$.each(result, function(i, elem) {
					var id = $(elem).attr('id').replace('_disp','');
					var selec = "#" + id;
					if ($.inArray(id, ['website_attributes_2', 'website_attributes', 'blog_posts', 'attrs']) == -1) {
						if (jQuery.inArray(id, ['snapshot', 'logo', 'location', 'ha', 'description', 'pp']) != -1) {
							$(selec).hide().html($(elem).html());
							$(selec).slideDown(1000);
						} else{
							$(selec).height($(selec).height());$(selec).css('overflow', 'hidden');
							var nheight = $(elem).height();
							$(selec).html($(elem).html());
							$(selec).animate({height: nheight+"px"},1000);
						}
					} else {
						$(selec).html($(elem).html());
					}
					if(id == 'blog_posts'){quarkbase.blog_posts_done = false;}
					qbLibrary.add_clicks_stats(selec + " a");
					$(selec).parent().show();
					qbLibrary.removeUpdating(id);
					$(selec).parent().next().show();
					$(elem).remove();
					qbLibrary.setRightBoxHeight();
					if(id == 'description'){qbLibrary.enable_description_toggle();}
					qbLibrary.enable_google_maps(id);
					qbLibrary.set_social_tally();
				});
				qbLibrary.update_bar_display();
				if(quarkbase.error_message != undefined && quarkbase.error_message != null) {
					$('#errormess').html(quarkbase.error_message);
				}
				qbLibrary.fetch_blog_posts();
				if(quarkbase.homepage_missing == undefined) {setTimeout("qbLibrary.poll();", 3000);} else{$('#messagepanel').remove();}
			});
		}	
	},
	
	fetchpoppages: function(){
		$.get('/website/poppages/' + quarkbase.website_id, function(data){
			try{$('#pp').html(data);}catch(ex){/* ie8 gives error while rounding span elements! */}
			qbLibrary.add_clicks_stats('#pp a');
		});
	},
	
	feature_list: function() {
		qbLibrary.debug_log('calculating feature_list');
		var to_be_done = [];
		var qfut = quarkbase.feature_update_times;
		var qf = quarkbase.features;
		var qdf = quarkbase.done_features;
		if (qfut.length == 0) {
			qbLibrary.debug_log('This is a new website request, since there is no feature update time');
			for(var i in qf) {
				if($.inArray(i, qdf) != -1) {continue;}
				to_be_done.push(i);
			}
		}
		for(var i=0; i < qfut.length ;i++) {
			if (jQuery.inArray(qfut[i][1], qdf) != -1) {
				continue;
			}
			if ((qf[qfut[i][1]]*3600*24*1000 + Date.parse(qfut[i][2])) < (new Date()).getTime()) {
				to_be_done.push(qfut[i][1]);
			}
		}
		qbLibrary.debug_log('to be done features.. ..  : ' + to_be_done);
		return to_be_done;
	},
	
	debug_log: function(m){
		if (qbLibrary.debug) {
			console.log(m);
		}
	},
	
	enable_description_toggle: function(){
		$('#descexpand').click(function(){$('#rdescrip').show();$('#descexpand').hide();$('#desshrink').show();});
		$('#desshrink').click(function(){$('#rdescrip').hide(); $('#descexpand').show();$('#desshrink').hide();});
		$('#translatedesc').click(function(){qbLibrary.do_google_translate('descrip');});
	},
	
	fetch_blog_posts: function() {
		if(quarkbase.blog_url == null || quarkbase.blog_url == undefined || quarkbase.blog_posts_done || quarkbase.blog_url == "") {return;}
		qbLibrary.fetch_feed('http://pipes.yahoo.com/pipes/pipe.run?_id=lszF1Yx23hGnj7F5_frsUA&_render=json&url=' + (typeof(quarkbase.blog_url) == 'string' ? quarkbase.blog_url : quarkbase.blog_url.join("/")) + '&_callback=qbLibrary.blog_posts_parse');
		// qbLibrary.fetch_feed("http://www.google.com/uds/Gfeeds?callback=qbLibrary.blog_posts_parse1&context=0&num=10&hl=en&output=xml&v=1.0&q=" + escape(quarkbase.blog_url));
		quarkbase.blog_posts_done = true;
	},
	
	fetch_feeds: function(searchstr) {
		if (searchstr == undefined || searchstr == null) {searchstr = quarkbase.basename;}
		quarkbase.feed_search_string = searchstr;
		qbLibrary.fetch_twitter_feed(searchstr);
		qbLibrary.fetch_google_feed(0);
		qbLibrary.fetch_blog_posts();
	},
	
	fetch_twitter_feed: function(searchstr, lang) {
		var l = "";
		if (lang) {l = "&lang=en";}
		qbLibrary.fetch_feed('http://search.twitter.com/search.json?callback=qbLibrary.twitter_feed_parse&rpp=' + qbLibrary.fetch_tweets + '&q=' + searchstr+l + "&since=");
	},
	
	fetch_google_feed: function(x, count) {
		if(count == undefined){count=20;}
		//qbLibrary.fetch_feed('http://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&q=' + quarkbase.basename + '&callback=qbLibrary.google_blogsearch_feed_parse&rsz=large&start='+x);
		// qbLibrary.fetch_feed('http://pipes.yahoo.com/pipes/pipe.run?_id=df087bcd6890c3657fa6696c408d78a8&_render=json&_callback=qbLibrary.google_blogsearch_feed_parse&q=' + quarkbase.basename+"&count="+count);
		qbLibrary.fetch_feed("http://www.google.com/uds/Gfeeds?callback=qbLibrary.google_blogsearch_feed_parse&context=0&num=" + count + "&hl=en&output=xml&v=1.0&q=http%3A//blogsearch.google.com/blogsearch_feeds%3Fhl%3Den%26q%3D" + quarkbase.basename + "%26num%3D" + count + "%26output%3Drss");
	},
	
	detect_language:function(x){
		qbLibrary.fetch_feed("http://www.google.com/uds/GlangDetect?callback=qbLibrary.detected&context=" + x + "&q=" + $("#" + x).text() + "&v=1.0")
	},
	
	do_google_translate: function(x,lang){
		//descrip
		var text = $('#' + x).text() + $('#rdescrip').text();
		qbLibrary.fetch_feed("http://www.google.com/uds/Gtranslate?callback=qbLibrary.translate&context="+x+"&q="+ text +"&langpair=|en&v=1.0");
	},
	
	detected: function(context, response, code, data1, data2){
		if(code == 200 && context == 'descrip' && response['language'] != 'en') {
			$('#description_disp').append('<div style="position:absolute;bottom:0px;right:0px;"><a href="javascript:void();" id="translatedesc">Translate</a></div>');
			$('#translatedesc').click(function(){qbLibrary.do_google_translate(context, response['language']);$('#translatedesc').parent().remove();});
		}
	},
	
	translate:function(context, response, code, data1, data2){
		$('#translatedesc').hide();
		$('#description p').append("<span id='translatedtext'>" + unescape(response["translatedText"]) + "</span>");
		$('#descexpand').hide();$('#descrip').hide();$('#translatedesc').hide();
		$('#translatedtext').after('<a href="javascript:void();" id="undodesc">Undo</a>');
		$('#undodesc').click(function(){$("#translatedtext").remove();$('#undodesc').remove();$('#descrip').show();$('#descexpand').show();$('#translatedesc').show();});
	},
	
	fetch_feed: function(url){
		var newScript = document.createElement('script');
		newScript.type = 'text/javascript';
		newScript.src = url;
		jQuery('body').append(newScript);
	},
	
	twitter_feed_parse: function(data){
		if (data.results.length == 0) {return;}
		$('#polldata').append('<div id="twittercomments_disp"></div>');
		var r = [];
		var user_count = {};
		var content = [];
		var regexp = new RegExp(quarkbase.basename, "i");
		jQuery.each(data.results, function(i, val){
			var found_content = false;
			for(var t=0;t<content.length;t++) {
				if (content[t].indexOf(val['text']) != -1) {
					found_content = true;
					break;
				}
			}
			if (!found_content) {
				r.push([val['text'], val['from_user'], val['created_at']]);
				if (user_count[val['from_user']] == null) {user_count[val['from_user']] = 1;} else {user_count[val['from_user']] += 1;}
				content.push(val['text']);
			}
		});
		
		var count = 0;
		jQuery.each(r, function(i, val) {
			if( count < qbLibrary.display_tweets && user_count[val[1]] <= 4 && val[0].match(/^RT /)==null && val[0].match(/ RT /)==null && val[1].match(regexp) == null) {
				$('#twittercomments_disp').append(
					"<div class='twititem'>" + 
					qbLibrary.twitter_content_clean(unescape(val[0])) + 
					"&nbsp;&nbsp;&nbsp;<span class='gray font11'>- <a target='_blank' href='http://twitter.com/" + val[1] + "'>" + unescape(val[1]) + "</a>" + 
					"&nbsp;&nbsp;&nbsp;" +  prettyDate(val[2], {no_replace:true}) + "</span>" + 
					"</div>");
				count += 1;
			} else {
				qbLibrary.debug_log('user count is greater than 3');
			}
		});
		if ($('#twittercomments_disp .twititem').length > 0) {
			$('#twittercomments .boxchild').html($('#twittercomments_disp').html());
			if($('#twitterpage').length == 0) {
				$('#twittercomments').after("<div class='rightalignmore'><a class='stdlink morelink' href='/twitter/" + quarkbase.website + "' id='twitterpage'>Read more twitter comments &#x25b8;</a></div>");
			}
			$('#twittercomments_disp').remove();
			$('#twitter').slideDown(1000).parent().show();
			$('#twitter').show().parent().next().show();
			setTimeout("qbLibrary.setRightBoxHeight();", 1000);
			qbLibrary.setRightBoxHeight();
			qbLibrary.add_clicks_stats('#twittercomments a');
			$('#twittercomments').css('background-color', '#89c2d3');
			$('#twittercomments .boxchild').css('background-color', '#f0f7f9');
		}
		return data;
	},
	
	twitter_content_clean: function(c) {
		var i = c.indexOf('http://');
		var j = -1;
		if (i != null && i >= 0) {
			var j = c.indexOf(' ', i+1);
			if (j == -1 || j == null) {j = c.length;}
		}
		return c.substring(0, i).replace(new RegExp(quarkbase.feed_search_string,"ig"),function(m){return "<b>"+m+"</b>";}) + "<a target='_blank' href='" + c.substring(i, j) + "'>" + c.substring(i, j).replace(new RegExp(quarkbase.feed_search_string,"ig"), function(m){return "<b>"+m+"</b>";}) + "</a>" + c.substring(j, c.length).replace(new RegExp(quarkbase.feed_search_string,"ig"), function(m){return "<b>"+m+"</b>";});
	},
	
	fetch_yahoo_title: function(url){
		var url = "http://query.yahooapis.com/v1/public/yql?q=use%20'http%3A%2F%2Fyqlblog.net%2Fsamples%2Fdata.html.cssselect.xml'%20as%20data.html.cssselect%3B%20select%20*%20from%20data.html.cssselect%20where%20url%3D%22" + url + "%22%20and%20css%3D%22title%22&format=json&callback=qbLibrary.yql_title&diagnostics=false";
		qbLibrary.fetch_feed(url);
	},
	
	yql_title: function(data){
		if (data['query']['results']['results'] != null){
			qbLibrary.debug_log(data['query']['results']['results']['title']);
		}
	},

	google_blogsearch_feed_parse:function(r, data){
		var xmlc = null;
		if ($.browser.msie){
			var tempXML = new ActiveXObject("Microsoft.XMLDOM");
			tempXML.async = false;
			tempXML.loadXML(data['xmlString']);
			xmlc = tempXML;
			items = $($(xmlc)[0]).find('channel');
		} else if(window.DOMParser){
			items = $(new DOMParser().parseFromString(data['xmlString'], "text/xml").childNodes[0].childNodes[0]);
		} else {
			xmlc = data['xmlString'];
			items = $($(xmlc)[1]).find('channel');
		}
		if (qbLibrary.blogsearch_start ==0 ) {
			// if (data.responseData.results.length == 0) {$('#blogs').hide();return;}
			// if (data.value.items.length == 0) {$('#blogs').hide();return;}
			if (items.find('item').length == 0) {$('#blogs').hide();return;}
			$('#polldata').append('<div id="blogreactions_disp"></div>');
		}
		// jQuery.each(data.responseData.results, function(i, val){
		// jQuery.each(data.value.items, function(i, val){
		jQuery.each(items.find('item'), function(i){
			var link = unescape($(this).find('guid').text());
			var title = unescape($(this).find('title').text()); var description = unescape($(this).find('description').text());
			var author = unescape($(this).find('link').next().text()); var datte = prettyDate($(this).find('pubDate').text(), {parsed:true});
			if (author.split(' ').length > 4 || author == 'Untitled') {
				author = URL.parse(link)[0].replace(/^www\./i,'');
				author = author.substring(0,1).toUpperCase() + author.substring(1,author.length);
			}
			if(qbLibrary.blogsearch_count < qbLibrary.display_tweets && 
					!URL.domain_in_hostname(link, quarkbase.website) && 
					(title.match(/<b>/) != null || description.match(/<b>/) != null) &&
					(qbLibrary.blogsearch_done_hosts[URL.parse(link)[0]]==null || qbLibrary.blogsearch_done_hosts[URL.parse(link)[0]] <= 3) && 
					($.inArray(title, qbLibrary.blogsearch_done_titles) == -1)) {
				$('#blogreactions_disp').append("<div class='listitem'><a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;&nbsp;&nbsp; - <span class='font12'><span class='green'>" + author + "</span>&nbsp;&nbsp;&nbsp;<span class='gf12'>" + datte + "</span></span></div>");
				qbLibrary.blogsearch_done_titles.push(title);
				if (qbLibrary.blogsearch_done_hosts[URL.parse(link)[0]] == null){
					qbLibrary.blogsearch_done_hosts[URL.parse(link)[0]]=0;
				}
				qbLibrary.blogsearch_done_hosts[URL.parse(link)[0]] += 1;
				qbLibrary.blogsearch_count += 1;
			}
		});
		// if (qbLibrary.blogsearch_count < qbLibrary.display_tweets && qbLibrary.blogsearch_start < qbLibrary.max_start_index) {
		// 	qbLibrary.blogsearch_start += 8;
		// 	qbLibrary.fetch_google_feed(qbLibrary.blogsearch_start);
		// } else {
			if(qbLibrary.blogsearch_count > 0) {
				$('#blogreactions').html($('#blogreactions_disp').remove());
				if($('#blogsearchpage').length == 0) {
					$('#blogreactions').after("<div class='rightalignmore'><a class='stdlink morelink' href='/blogsearch/" + quarkbase.website + "' id='blogsearchpage'>Read more blog mentions &#x25b8;</a></div>");
				}
				$('#blogs').slideDown(1000).parent().show();
				$('#blogs').parent().next().show();
				qbLibrary.setRightBoxHeight();
				setTimeout("qbLibrary.setRightBoxHeight();", 1000);
				qbLibrary.add_clicks_stats('#blogreactions a');
			}
		// }
	},
	
	blog_posts_parse1: function(r, data) {
		if (data == null || ($('item', data['xmlString']).length == 0 && $('entry', data['xmlString']).length == 0)|| $('#blogposts_disp .listitem').length > 0) {return;}
		$('#polldata').append('<div id="blogposts_disp"></div>');
		var name = 'item';
		if ($(name, data['xmlString']).length == 0){name = 'entry';}
		$(name, data['xmlString']).each(function(i) {
			if(i < 5) {
				var ldate = prettyDate($(this).find('pubDate').text(), {no_replace:true});
				var link = unescape($(this).html().replace(/.*<link>([^<]*).*/,"$1",'g')); 
				var title = unescape($(this).find('title').text()); 
				var stradd = "";
				if (ldate != undefined && ldate != null && ldate != "") {stradd = "&nbsp;&nbsp;&nbsp; <span class='gf12'>- " + ldate + "</span>";}
				$('#blogposts_disp').append("<div class='listitem'><a href='" + link + "'>" + title + "</a>" + stradd + "</div>");
				i += 1;
			}
		});
		var count = $('#blogposts_disp .listitem').length;
		if(count > 0) {
			$('#blogposts').html($('#blogposts_disp').remove());
			var is_blog = ($('#attrs').html().match(/blog/i) != null);
			$('#blog_posts strong').after("&nbsp;&nbsp;&nbsp;<span class='gray'>(at <a href='" + (typeof(quarkbase.blog_orig_url) == 'string' ? quarkbase.blog_orig_url : quarkbase.blog_orig_url.join("/")) + "'>" + quarkbase.basename.substring(0,1).toUpperCase() + quarkbase.basename.substring(1, quarkbase.basename.length) + " " + (is_blog ? "" : "Blog") + "</a><img class='extimg' src='/images/icons/externallink.png' />)</span>");
			$('#blog_posts').slideDown(1000).parent().show();
			qbLibrary.add_clicks_stats('#blog_posts a');
		}
	},
	
	blog_posts_parse: function(data){
		if (data.value.items.length == 0 || $('#blogposts_disp .listitem').length > 0) {return;}
		$('#polldata').append('<div id="blogposts_disp"></div>');
		jQuery.each(data.value.items, function(i, val){
			if(i < 5) {
				var ldate = prettyDate(val['pubDate'], {no_replace:true});
				var stradd = "";
				if (ldate != undefined && ldate != null && ldate != "") {stradd = "&nbsp;&nbsp;&nbsp; <span class='gf12'>- " + ldate + "</span>";}
				$('#blogposts_disp').append("<div class='listitem'><a href='" + val['link'] + "'>" + unescape(val['title']) + "</a>" + stradd + "</div>");
			}
		});
		var count = $('#blogposts_disp .listitem').length;
		if(count > 0) {
			$('#blogposts').html($('#blogposts_disp').remove());
			var is_blog = ($('#attrs').html().match(/blog/i) != null);
			$('#blog_posts strong').after("&nbsp;&nbsp;&nbsp;<span class='gray'>(at <a href='" + (typeof(quarkbase.blog_orig_url) == 'string' ? quarkbase.blog_orig_url : quarkbase.blog_orig_url.join("/")) + "'>" + quarkbase.basename.substring(0,1).toUpperCase() + quarkbase.basename.substring(1, quarkbase.basename.length) + " " + (is_blog ? "" : "Blog") + "</a><img class='extimg' src='/images/icons/externallink.png' />)</span>");
			$('#blog_posts').slideDown(1000).parent().show();
			qbLibrary.add_clicks_stats('#blog_posts a');
		}
	},
	
	enable_google_maps: function(elemid) {
		if (elemid == 'location') {
			qbLibrary.enable_google_maps_code('#locmapping');
		} else if (elemid == 'ha') {
			qbLibrary.enable_google_maps_code('#hamapping');
		}
	},
	
	enable_google_maps_code: function(id) {
		$(id).click(function(){
			jQuery.facebox("<div id='gmapmodel' style='height:400px; width:400px;'>&nbsp;</div>");
			appendBootstrap($(this));
		});
	},

	set_social_tally: function(){
		$('#blogico').parent().next().find('a').attr('href', 'http://technorati.com/search/' + quarkbase.website + "?reactions");
		$('#wikiico').parent().next().find('a').attr('href', 'http://search.yahoo.com/search?p=site%3Aen.wikipedia.org+linkdomain%3A' + quarkbase.website);
		$('#diggico1').parent().next().find('a').attr('href', "http://digg.com/search?s=site%3A" + quarkbase.website + "&sort=digg");
		$('#diggico').parent().next().find('a').attr('href', "http://digg.com/search?s=site%3A" + quarkbase.website);
		$('#yahooico').parent().next().find('a').attr('href', "http://search.yahoo.com/search?p=site%3Aanswers.yahoo.com+linkdomain%3A" + quarkbase.website);
		if (quarkbase.del_social_tally) {$('#delico').parent().next().find('a').attr('href', "http://delicious.com/url/" + quarkbase.del_social_tally + "?show=notes_only");}
		qbLibrary.add_clicks_stats('#pm a');
	},

	add_clicks_stats: function(elems){
		$(elems).click(function(){
			var id = null, elem = $(this);
			while(id == null) {id=elem.attr('id'); elem = elem.parent();}
			$.get("/pages/stats?from_url=" + encodeURIComponent(window.location.href) + "&to_url=" + encodeURIComponent($(this).attr('href')) + "&htmlid="+id + "&_f=" + Math.random(), function(data){});
			return true;
		});
	},
	
	add_clicky: function(){
		qbLibrary.fetch_feed("http://static.getclicky.com/js");
	},

	add_piwik: function() {
		var pkBaseURL = (("https:" == document.location.protocol) ? "https://analytics.quarkbase.com/" : "http://analytics.quarkbase.com/");
		qbLibrary.fetch_feed(pkBaseURL + "piwik.js");
		jQuery('body').append("<script>try {;var piwikTracker = Piwik.getTracker(\"" + pkBaseURL + "\" + \"piwik.php\", 1);piwikTracker.trackPageView();piwikTracker.enableLinkTracking();} catch( err ) {alert(err);}</script>");
	},

	fetch_dynamic_sidebar: function(){
		var ds = 'dynamic_sidebar';
		$.get('/pages/' + ds, function(data){
			$("body").append("<div id='dynamictemp' style='display:none;'></div>");
			$('#dynamictemp').append(data);
//                      $('#qbadv').html($('#qbadv1').html()); $('#qbadv2').html($('#qbadv1').html());
			$('#qbadv').css('height', '0px');
			$('#qbadv1').remove();
			$('#featuredsitedv .boxchild').html($('#fastestgrowing1 .boxchild').html());$('#fastestgrowing1').remove();
			$('#fastestgrowing .boxchild').html($('#featuredsitedv1 .boxchild').html());$('#featuredsitedv1').remove();
			$('#topwebtools .boxchild').html($('#topwebtools1 .boxchild').html());$('#topwebtools1').remove();
			$('#hostingservices .boxchild').html($('#hostingservices1 .boxchild').html());$('#hostingservices1').remove();
			$('#featuredsitedv, #fastestgrowing, #topwebtools, #hostingservices').show();//.slideDown(1000);
			qbLibrary.add_clicks_stats('#featuredsitedv a, #fastestgrowing a, #topwebtools a, #hostingservices a');
			qbLibrary.add_clicks_stats('#qbadv a');
			$('#dynamictemp').remove();
			qbLibrary.setRightBoxHeight();
			if ($.browser.msie) {
				$('.roundingraybox .boxchild').css('background-color','#fff');
				DD_roundies.addRule('.rbox', '5px');
			}
			setTimeout("qbLibrary.setRightBoxHeight();", 2000);
		});
	},
	
	add_woopra: function() {
		qbLibrary.fetch_feed("http://static.woopra.com/js/woopra.js");
	},
	
	fix_images_in_ie: function(){
		if ($.browser.msie) {
			var obj = {
				".peopleimg img": {"width":44, "height":44},
				".faviconimg": {'width':16, 'height':16},
				"#logo img": {'width':285, 'height':150}
			};
			for (var i in obj) {
				if (obj[i].width == obj[i].height) {
					$.each($(i), function(){
						$(this).removeAttr('width').removeAttr('height');
						if($(this).width() > $(this).height()){$(this).width(obj[i].width);}else{$(this).height(obj[i].height);}
					});
				} else {
					$.each($(i), function(){
						$(this).removeAttr('width').removeAttr('height');
						if($(this).width() > obj[i].width) {$(this).width(obj[i].width);}
						if($(this).height() > obj[i].height) {$(this).height(obj[i].height);}
					});
				}
			}
			$("img").css('background', 'transparent');
			// $("img").css("filter", "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+ $(this).attr('src') +"', sizingMethod='scale')");
		}
	}

};

// Takes an ISO time and returns a string representing how
// long ago the date represents.
function prettyDate(time, options){
	var date = null;
	try {
		if(typeof(time) == 'number') {
			date = new Date(time);
		} else if (options.parsed) {
			date = new Date(time);
		} else if(options.no_replace){
			date = new Date(time);
		} else {
			date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," "));
		}
	} catch(err) {}
	try{
		if (date.getMonth() > 0) {} else {
			date = new Date(time.substring(0, time.indexOf('T')).replace(/\-/g,'/'));
		}
	}catch(err){return '';}
	var diff = (((new Date()).getTime() - date.getTime()) / 1000), day_diff = Math.floor(diff / 86400);
	
	if ( isNaN(day_diff) || day_diff < 0) return;
	if (day_diff >= 31 ) {
		var t = Math.floor(day_diff/30);
		var c = t > 1 ? "s" : "";
		return  t + " month" + c + " ago";
	}
			
	return day_diff == 0 && (
		diff < 60 && "just now" || diff < 120 && "1 minute ago" || diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" || diff < 7200 && "1 hour ago" ||
		diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") || day_diff == 1 && "Yesterday" || day_diff < 7 && day_diff + " days ago" || day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago";
}

var URL = {
	parse: function(url) {
		url = url.replace(/http(s)?:\/\//,'')
		var hostname = url.substring(0, url.indexOf('/'));
		var path = url.substring(url.indexOf('/'),url.length);
		return [hostname, path];
	},
	
	domain_in_hostname: function(url, domain) {
		var host = URL.parse(url);
		return host[0].indexOf(domain) != -1;
	}
};

$(document).ready(function(){
	$('a.signin').toggle(
		function(){$('#signin_menu').show();$(this).addClass('menu-open');$('#signin_menu').css('right', $('#container').offset().left+"px");return false;},
		function(){$('#signin_menu').hide();$(this).removeClass('menu-open');return false;}
	);
	$('#twiterss').click(function(){
		qbLibrary.fetch_feeds(quarkbase.website);
		$('#twiterss1').show();$('#twiterss').hide();
		$('#twitresultterm').html('Tweets of "' + quarkbase.website + '"&nbsp;&nbsp;|&nbsp;&nbsp;');
	});
	$('#twiterss1').click(function(){
		qbLibrary.fetch_feeds(quarkbase.basename);
		$('#twiterss').show();$('#twiterss1').hide();
		$('#twitresultterm').html('Tweets of "' + quarkbase.basename + '"&nbsp;&nbsp;|&nbsp;&nbsp;');
	});
	$('#twittrans').toggle(function(){
		qbLibrary.fetch_twitter_feed(quarkbase.feed_search_string, true);
		$(this).html('Undo filtering');
	}, function(){
		qbLibrary.fetch_twitter_feed(quarkbase.feed_search_string);
		$(this).html('Filter english tweets');
	});
	qbLibrary.update_hit_stats();
	$('#sharethis').html($('#sharethisw #sharethis_0').remove());
	// qbLibrary.setRightBoxHeight();
	if (!qbLibrary.dynamic_sidebar_done){
		qbLibrary.fetch_dynamic_sidebar();
	}
	if (typeof(quarkbase) != "undefined"){
		quarkbase.currently_using = null;
		qbLibrary.enable_google_maps_code('#locmapping, #hamapping');
	}
	qbLibrary.fix_images_in_ie();
	// clicky.init(147830);
});

qbLibrary.add_clicks_stats('a');
// qbLibrary.add_clicky();
//qbLibrary.add_piwik();
$('#disclaimer').click(function(){
	jQuery.facebox("<b>Note: </b>In general we find more information for sites having higher Internet presence. Some information can be approximate or a little old.")
	$('#facebox').css({'left':"770px"});
});

function handleApiReady() {
	var myLatlng = new google.maps.LatLng(quarkbase.currently_using[0], quarkbase.currently_using[1]);
	var myOptions = {
		zoom: 8,
		center: myLatlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	var map = new google.maps.Map(document.getElementById('gmapmodel'), myOptions);
	var marker = new google.maps.Marker({
		position: myLatlng,
		map: map
	});
	var infowindow = new google.maps.InfoWindow({
		content: $(quarkbase.currently_using[2]).html()
	});
	google.maps.event.addListener(marker, 'click', function() {
	  infowindow.open(map,marker);
	});
}

function appendBootstrap(elem) {
	quarkbase.currently_using = quarkbase.gmap_data[elem.attr('id')];
   var script = document.createElement("script");
   script.type = "text/javascript";
   script.onload = function() {
     google.maps.loadScripts();
   };
   script.onreadystatechange= function() {
     if (this.readyState == 'loaded' || this.readyState == 'complete') {
       // google.maps.loadScripts();
     }
   };
   script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=handleApiReady";
   document.body.appendChild(script);
}

