// Constructor -- pass a REST request URL to the constructor
//
function JSONscriptRequest(fullUrl) {
    // REST request path
    this.fullUrl = fullUrl; 
    // Keep IE from caching requests
    this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
    // Get the DOM location to put the script tag
    this.headLoc = document.getElementsByTagName("head").item(0);
    // Generate a unique script tag id
    this.scriptId = 'JscriptId' + JSONscriptRequest.scriptCounter++;
}

// Static script ID counter
JSONscriptRequest.scriptCounter = 1;

// buildScriptTag method
//
JSONscriptRequest.prototype.buildScriptTag = function () {

    // Create the script tag
    this.scriptObj = document.createElement("script");
    
    // Add script object attributes
    this.scriptObj.setAttribute("type", "text/javascript");
    this.scriptObj.setAttribute("charset", "utf-8");
    this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
    this.scriptObj.setAttribute("id", this.scriptId);
}
 
// removeScriptTag method
// 
JSONscriptRequest.prototype.removeScriptTag = function () {
    // Destroy the script tag
    this.headLoc.removeChild(this.scriptObj);  
}

// addScriptTag method
//
JSONscriptRequest.prototype.addScriptTag = function () {
    // Create the script tag
    this.headLoc.appendChild(this.scriptObj);
}

function setCookie( name, value, expires, path,domain) { // , domain, secure
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) ; 
//		( ( domain ) ? ';domain=' + domain : 'surfshare.org' ); // +
//		( ( secure ) ? ';secure' : '' );
}

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}

function trackPre(jsonData) {
	setCookie('mp_tcode',jsonData.tcode,90,'/'); // refresh
    aObj.removeScriptTag();
 }

function trackNew(jsonData) {
	setCookie('mp_tcode',jsonData.tcode,90,'/');
    aObj.removeScriptTag();
 }

function track() {
	trackcode=getCookie('mp_tcode');
	title=document.getElementsByTagName("title")[0].innerHTML;	
	if (trackcode!=null && trackcode!="") {
		request='http://surfshare.org/index.php?track&scode='+mp_s+'&tcode='+trackcode+'&title='+encodeURI(title);		
	} else {
		request='http://surfshare.org/index.php?track&scode='+mp_s+'&title='+encodeURI(title);
	}
	 aObj = new JSONscriptRequest(request);
	 aObj.buildScriptTag();
	 aObj.addScriptTag();		
	var d = new Date();
	setCookie('mp_t',d.getTime(),90,'/');
}

function topStories(cnt,cbFunc) {
	if (!cnt) var cnt=7;
	if (!cbFunc) var cbFunc='defaultTopStoriesCallback';
	document.write("<div id='mp_topStories' style='display: none'></div>");
	request='http://surfshare.org/ajax.php?scode='+mp_s+'&m=topStories&cnt='+cnt+'&cbFunc='+cbFunc;
	 aObj = new JSONscriptRequest(request);
	 aObj.buildScriptTag();
	 aObj.addScriptTag();			
}

function badge(cbFunc) {
	if (!cbFunc) var cbFunc='defaultBadgeCallback';	
	trackcode=getCookie('mp_tcode');
	document.write("<div id='mp_badge' style='display: none'></div>");
	request='http://surfshare.org/ajax.php?scode='+mp_s+'&m=badge&cbFunc='+cbFunc+'&tcode='+trackcode;
	 aObj = new JSONscriptRequest(request);
	 aObj.buildScriptTag();
	 aObj.addScriptTag();			
}

function addLike(cbFunc) {
	if (!cbFunc) var cbFunc='likeCallback';
	trackcode=getCookie('mp_tcode');
	request='http://surfshare.org/ajax.php?scode='+mp_s+'&m=addLike&tcode='+trackcode+'&cbFunc='+cbFunc;		
	 aObj = new JSONscriptRequest(request);
	 aObj.buildScriptTag();
	 aObj.addScriptTag();			
}

function likeCallback(jsonData) {
	if (jsonData.status=='ok') {
		document.getElementById('mp_like').innerHTML=jsonData.msg;
	}
	//aObj.removeScriptTag();  
}

function badgeCallback(jsonData) {
	var str;
	if (jsonData.status=='ok') {
		str='<div class="module-typelist module"><h2 class="module-header">Your Site Activity</h2><div class="module-content">';
		str+='<ul class="module-list">';
		str+='<li class="module-list-item">Stories read: <a href="http://surfshare.org/history.php?siteid='+jsonData.siteid+'">'+jsonData.numStories+'</a></li>';
		str+='<li class="module-list-item">Total visits: <a href="http://surfshare.org/history.php?siteid='+jsonData.siteid+'">'+jsonData.numVisits+'</a></li>';
		str+='<li class="module-list-item">Time on site: <a href="http://surfshare.org/history.php?siteid='+jsonData.siteid+'">'+jsonData.timeSpent+'</li>';
		str+='<li class="module-list-item"><a href="http://surfshare.org/user.php">View your SurfShare</a></li>';
		str+='<li class="module-list-item"><div id="mp_like"><a href="#" onclick="addLike();">Add this page to favorites</a></div></li>';
		str+='</ul>';
		str+='</div></div>';			
		document.getElementById('mp_badge').innerHTML=str;
		document.getElementById('mp_badge').style.display='block';
	}
	//aObj.removeScriptTag(); 
}

function topStoriesCallback(jsonData) {
	var i=0;
	var str;
	str='<div class="module-typelist module"><h2 class="module-header">'+jsonData.heading+'</h2><div class="module-content"><ul class="module-list">';
	for (i=0;i<jsonData.numStories;i++)
	{
		str+='<li class="module-list-item"><a href="'+jsonData.url[i]+'">'+jsonData.title[i]+'</a></li>';
	}
	str+='</ul></div></div>';
	document.getElementById('mp_topStories').innerHTML=str;
	document.getElementById('mp_topStories').style.display='block';
	//aObj.removeScriptTag(); 
}

function defaultBadgeCallback(jsonData) {
	var str;
	if (jsonData.status=='ok') {
		str='<ul>';
		str+='<li>Stories read: <a href="http://surfshare.org/history.php?siteid='+jsonData.siteid+'">'+jsonData.numStories+'</a></li>';
		str+='<li>Total visits: <a href="http://surfshare.org/history.php?siteid='+jsonData.siteid+'">'+jsonData.numVisits+'</a></li>';
		str+='<li>Time on site: <a href="http://surfshare.org/history.php?siteid='+jsonData.siteid+'">'+jsonData.timeSpent+'</li>';
		str+='<li><a href="http://surfshare.org/user.php">View your activity summary</a></li>';
		str+='<li><div id="mp_like"><a href="#" onclick="addLike();">Add this page to favorites</a></div></li>';
		str+='</ul>';
		document.getElementById('mp_badge').innerHTML=str;
		document.getElementById('mp_badge').style.display='block';
	}
	//aObj.removeScriptTag(); 
}

function defaultTopStoriesCallback(jsonData) {
	var i=0;
	var str;
	str='<ul>';
	for (i=0;i<jsonData.numStories;i++)
	{
		str+='<li><a href="'+jsonData.url[i]+'">'+jsonData.title[i]+'</a></li>';
	}
	str+='</ul>';
	document.getElementById('mp_topStories').innerHTML=str;
	document.getElementById('mp_topStories').style.display='block';
	//aObj.removeScriptTag(); 
}

function ss_related(cbFunc) {
	if (!cbFunc) var cbFunc='ss_defaultRelatedCallback';
	document.write("<div id='ss_related' style='display:none'></div>");	
	request='http://surfshare.org/ajax.php?m=related&cbFunc='+cbFunc;		
	 aObj = new JSONscriptRequest(request);
	 aObj.buildScriptTag();
	 aObj.addScriptTag();			
}

function ss_defaultRelatedCallback(jsonData) {
	var i=0;
	var str;
	str='<ul>';
	if (jsonData.numStories>0) {
		for (i=0;i<jsonData.numStories;i++)
		{
			str+='<li><a href="'+jsonData.url[i]+'">'+jsonData.title[i]+'</a></li>';
			//if (i==(jsonData.numStories-2)) str+=' and '; else if (i<(jsonData.numStories-1)) str+=', '; 
		}		
	} else {
		str+='<li>None at this time</li>';
	}
	str+='</ul>';
	document.getElementById('ss_related').innerHTML=str;
	document.getElementById('ss_related').style.display='block';
}

function ss_tpRelatedCallback(jsonData) {
	var i=0;
	var str;
	if (jsonData.numStories>0) {
		str='<div class="module-typelist module"><h2 class="module-header">'+jsonData.heading+'</h2><div class="module-content"><ul class="module-list">';
		for (i=0;i<jsonData.numStories;i++)
		{
			str+='<li class="module-list-item"><a href="'+jsonData.url[i]+'">'+jsonData.title[i]+'</a></li>';
		}		
		str+='</ul></div></div>';
		document.getElementById('ss_related').innerHTML=str;
		document.getElementById('ss_related').style.display='block';
	} else {
		// str+='<li class="module-list-item">None found at this time</li>';
	}
}
