/*
*  from: http://www.netlobo.com/url_query_string_javascript.html
*/
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
function generateThumnails(sites)
{
  var labels = [
  	{'name':'Pagerank', 'id':'pr', 'url':'/gpr/'},
  	{'name':'Google indexed pages', 'id':'gpages' , 'url':'/gpages/'},
  	{'name':'Google back links', 'id':'glinks' , 'url':'/glinks/'},
  	{'name':'Live indexed pages', 'id':'lpages', 'url':'/livepages/'},
  	{'name':'Live back links', 'id':'llinks', 'url':'/livelinks/'},
  	{'name':'Yahoo indexed pages', 'id':'ypages', 'url':'/ypages/'},
  	{'name':'Yahoo back links', 'id':'ylinks', 'url':'/ylinks/'},
  	{'name':'Baidu indexed pages', 'id':'bpages', 'url':'/baidupages/'},
  	{'name':'Baidu back links', 'id':'blinks', 'url':'/baidulinks/'},
  ]; 
  var imgurl="http://images.websnapr.com/?size=T&key=sjVn6ncbXM85&url="; 
  var html="<table>"
  
  html+="<tr><td class='empty'></td>";
  for (var i in sites) 
  {
    html+="<td class='thumb'><img src='" + imgurl+sites[i]+"'/></td> ";
  }
  html+="</tr>";
  
  for (var j = 0; j < labels.length; j++) 
  {
	  html+="<tr><td class='name'>" + labels[j].name + "</td>";
	  for (var i in sites) 
	  {
	    html+="<td id='" + labels[j].id + i + "'> - </td> ";
	  }  
	  html+="</tr>";  	
  }
  
  html +="</table>";
  $("#thumnails")[0].innerHTML = html;  
  
  // start ajax requests
  for (var j = 0; j < labels.length; j++) 
  {
	  for (var i in sites) 
	  {
	  	var id = "#" + labels[j].id + i;
	  	site = sites[i]; 
	  	site = site.replace(/http:\/\//i, ''); // make sure remove all http://
	  	url =  "/proxy/fooseo.com" + labels[j].url + site;
	  	$(id).load(url);
	  }  
  }  
}

function generateGoogleTrendLegend(sites)
{
	var html = "";
	var url = "/proxy/trends.google.com/websites%3Fq="; // need to encode '? to %3f 
	var x = 1;
	for (var i in sites) 
	{
		html+= '<span class="trends-sitelist-site' + x + '">' + sites[i] + '</span>'; 
		url += sites[i] + ','; 
		x++;
	}
	$("#trendlegend")[0].innerHTML = html;
	
	$("#gtrends").load(url + " #trends-graphcontainer img", null, function() {
		// google trends use "www.google.com/chart?... which won't work when refer is not from google, we have to replace it to "chart.apis.google.com". 
		// Cost me over 2 hours to find out why!
	    img = $("#gtrends img")[0]; 
		img.src = img.src.replace(/www\.google\./i, "chart.apis.google.");
	} );
	
}

function setCompeteImage(sites)
{
	var html = "http://grapher.compete.com/";
	
	for (var i in sites) 
	{
		html+= sites[i] + '+'; 
	}
	html+='_uv.png'; 
	$("img#compete_uv")[0].src=html;
}

function setAlexaImage(sites)
{
	var html = "http://widgets.alexa.com/traffic/graph/?r=6m&y=r&z=3&h=400&w=648&c=1";

	for (var i in sites) 
	{
		html+= "&u[]="+ jQuery.trim(sites[i]);   // alexa can't work with lead or end spaces, other works
	}
	
	if (Alexa.sig != '') 
	{
		html+='&x=' + Alexa.exp + '&check=www.alexa.com&signature='+Alexa.sig; 
		//$("#debug")[0].innerHTML = html;
		$("img#alexa_uv")[0].src=html;
	}
	else 
	{
		// Alexa signature is not ready. wait for a while and try again
	}
	//$("#alexa_detail").load("/proxy/?url=http://www.alexa.com/data/details/traffic_details/robertmao.com .traffic_table");
}

function reverseDomain(domain)
{
  var parts = domain.split('.');
  var res = ''; 
  
  for (var i = parts.length; i > 0; i--) 
  {
	if (res != '') 
	  res +='.';
	res += parts[i-1];
  }
  
  return res; 
}
function setQuantcast(sites)
{
	var src='http://www.quantcast.com/livegraph.png?gt=mwg&dty=pp&dtr=dd&c=1&wunit=';
	for (var i in sites) 
	{
		src += "wd:"+ reverseDomain(sites[i]) + '|'+ i + '+';   
	}	
	$("img#quantcast_uv")[0].src=src;
}

function comparesites(sitestr)
{
	var sites = sitestr.split(',');
	
	if (sitestr.length >0) 
	{
		$("#content").show(); 
	}
	generateThumnails(sites);
	generateGoogleTrendLegend(sites);
	setCompeteImage(sites);
	setQuantcast(sites);
	setTimeout(function() { setAlexaImage(sites);}, 3000);
}

// sites should be defined already in page template
 
if (gup("bm") == 1) 
{
  // from bookmark 
  defaultsites = $.cookie("defaultsites"); 
  if (defaultsites != null) 
  {
    sites += ','+defaultsites;
  }
}

sites = sites.replace(/http:\/\//ig,'');
sites = sites.replace(/ /g,'');
sites = sites.replace(/\+/g,'');
comparesites(sites);
 
