var Referrals = {
	lastSnippet:'',
	lastOutline:'',
	
	init:function()
	{
		var request = new STWRequest();
		var response = request.createSyncXMLRPCRequest("publishers.getForAccount",[Session.id,Session.User.getAccountNum()]);
		var jsobj = transformXMLRPCToJS(response);
		if (!checkXMLRPCToJSFault(jsobj))
		{
			var dd = document.getElementById("publishersites");
			if (dd)
			{
                          if(jsobj.length == 0)
	                  {
			    dd.innerHTML='Please set up a Publisher site in order to use this feature.';
                          }
                          else
                          {
				var s = "<select onchange='Referrals.updatePublisherIDs(this.value)' id='publisher'>";
				var first;
				for (var i=0; i<jsobj.length; i++)
				{
					var p = jsobj[i];
					if (i==0)
						first = p.number;
					s += "<option value='"+p.number+"'>"+p.url+"</option>";
				}
				s+="</select>";
				dd.innerHTML=s;
				this.updatePublisherIDs(first);
                          }
			}
				
		}
	},
	
	updatePublisherIDs:function(id)
	{
		for (var i=1; ; i++)
		{
			var d = document.getElementById("ref"+i);
			if (!d) break;
			d.innerHTML=id;	
		}
	},
	
	showCodeSnippet:function(selection, displayState)
	{
		var lastSnippet = this.lastSnippet;
		var lastOutline = this.lastOutline;
		var codePopup = document.getElementById('code-popup');
		
		//Closes popup
		if (displayState == 'none') 
		{
			document.getElementById(lastSnippet).style.display = 'none';
			document.getElementById(lastOutline).style.border = '3px solid white';
			document.getElementById('code-popup').style.display = 'none';
			lastOutline = '';
			lastSnippet = '';
			return
		}
		
		var newSnippet = ('code-' + selection);
		var newOutline = ('image-' + selection);
		
		//Turn off outline of previous selection if extant 
		if (lastSnippet != '') 
		{
			document.getElementById(lastSnippet).style.display = 'none';
			document.getElementById(lastOutline).style.border = '3px solid white';
		}
		
		//Set the position of code-popup according to selected image position
		var curTop = document.getElementById(newOutline).offsetTop;
		var curLeft = document.getElementById(newOutline).offsetLeft;
	
		codePopup.style.top = (curTop - 150) + 'px';
		codePopup.style.left = (curLeft + 20) + 'px';						
			
		//Apply outline to selection, display code snippet, display popup
		document.getElementById(newOutline).style.border = '3px solid #817E7E';
		document.getElementById(newSnippet).style.display = displayState;
		codePopup.style.display = displayState;
		this.lastOutline = newOutline;
		this.lastSnippet = newSnippet;
	}

};
