// Simple follow the mouse script

var divName = 'ssindexhelpbox'; // div that is to follow the mouse
                       // (must be position:absolute)
var offX = 3;          // X offset from mouse position
var offY = -8;          // Y offset from mouse position

var	inIndexItem = false;
var	currentIndexItem = null;

var req;

var rollovers = new Array();

var tabs = new Array();
var seltabidx = -1;
//	alert(rollovers.length);

var inititalLoad = false;

var curLogin = null;
var curPW = null;


var is_ie = (navigator.appVersion.indexOf("MSIE") != -1);


if(!document.getElementById){
	if (document.all)
	{
		document.getElementById = function() 
		{
			if(typeof document.all[arguments[0]]!="undefined")
			return document.all[arguments[0]];
			else
			return null;
		};
	} else if(document.layers) {
		document.getElementById=function()
		{
			if (typeof document[arguments[0]]!="undefined")
			return document[arguments[0]];
			else
			return null;
		};
	}
}





function getComputedHeight(theElt)
{
	if(is_ie) {
		tmphght = document.getElementById(theElt).offsetHeight;
	} else {
		docObj = document.getElementById(theElt);
		var tmphght1 = document.defaultView.getComputedStyle(docObj, "").getPropertyValue("height");
		tmphght = tmphght1.split('px');
		tmphght = tmphght[0];
	}
	return parseInt(tmphght);
}







function loginWithPW(pw)
{
	alert('loging in with ' + pw);
}



function mouseX(evt)
{
	if (!evt)
		evt = window.event;
	if (evt.pageX)
		return evt.pageX;
	else if (evt.clientX)
		return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); 
	else 
		return 0;
	
}

function mouseY(evt)
{
	if (!evt)
		evt = window.event;
	if (evt.pageY)
		return evt.pageY;
	else if (evt.clientY)
		return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	else return 0;
}

function follow(evt)
{
	if (document.getElementById)
	{
		var obj = document.getElementById(divName);
		
		if (rollovers.length > 0)
		{
			obj.style.visibility = 'visible';
			
			obj.innerHTML = (rollovers[0][0]);
		} else {
			obj.style.visibility = 'hidden';
		}
		
		newLeft = (parseInt(mouseX(evt))+offX);
		newTop = (parseInt(mouseY(evt))+offY);
		
		newLeft += document.getElementById('ssindex').scrollLeft
		if (newTop > 47) newTop = 47;
		
		//alert(obj);
		
		//obj.visibility = 'visible';
		obj.style.left = newLeft + 'px';
		obj.style.top = newTop + 'px';
	}
}

function mouseEnteredThumb(url, comments)
{
	rollovers[rollovers.length] = (new Array(url, comments));
}

function mouseExitedThumb(url)
{
	newRO = null;
	
	for (i=0; ((i<rollovers.length) && (!newRO)); i++)
	{
		if (rollovers[i][0] == url)
		{
			newRO1 = rollovers.splice(0, i);
			newRO2 = rollovers.splice(i+1, rollovers.length - i - 1);
			
			newRO = newRO1.concat(newRO2);
		}
	}
	
	if (newRO)
	{
		rollovers = newRO;
	}
}

function showShotInFrame(encoded, frameIDX)
{
	var frameObj = document.getElementById('loadableShot' + frameIDX);
	//alert('will load ' + encoded);
	
	url = ('/getscreen?encodedscreen=' + encoded);
	
	loadXMLDoc(url);
}

function tryLogin(login, pw)
{
	url = ('/trylogin');
	
	formdata = ('login=' + login + '&pw=' + pw);
	
	loadXMLDoc(url, formdata);
}

function forgotPW(login)
{
	url = ('/forgotpw?login=' + login);
	
	loadXMLDoc(url);
}

function logout()
{
	url = ('/logout');
	
	loadXMLDoc(url);
}

function reloadTabs()
{
	url = ('/loadtabs');
	
	formdata = ('login=' + curLogin + '&pw=' + curPW);
	
	loadXMLDoc(url, formdata);
}

function getTabContent(tabid)
{
	url = ('/loadtabcontent');
	
	formdata = ('login=' + curLogin + '&pw=' + curPW + '&tabid=' + tabid);
	
	loadXMLDoc(url, formdata);
}

function getEditValues(shotID)
{
	url = ('/geteditvalues');
	
	formdata = ('login=' + curLogin + '&pw=' + curPW + '&shotid=' + shotID);
	
	loadXMLDoc(url, formdata);
}






function newFrameLoaded(newFrameData)
{
	var frameObj = document.getElementById('loadableShot' + 0);
	//alert(newFrameData);
	frameObj.innerHTML = newFrameData;
}








function clickTab(tabidx)
{
	if (tabidx >= tabs.length)
	{
		seltabidx = -1;
	} else {
		clickedid = tabs[tabidx][0];
		clickedname = tabs[tabidx][1];
		
		showTab(tabidx);
	}
}

function showTab(tabidx)
{
	seltabidx = tabidx;
	
	redrawView();
	
	getTabContent(tabs[tabidx][0]);
}


function popupTab(tabobj)
{
	tabobj.style.borderLeftStyle = 'dotted';
	tabobj.style.borderTopStyle = 'dotted';
	tabobj.style.borderRightStyle = 'dotted';
	
	tabobj.style.cursor = 'pointer';
	
	tabobj.innerHTML = tabs[tabobj.getAttribute('tabidx')][1];
}

function popdownTab(tabobj)
{
	tabobj.style.borderLeftStyle = 'none';
	tabobj.style.borderTopStyle = 'none';
	tabobj.style.borderRightStyle = 'none';
	
	tabobj.style.borderBottomStyle = 'solid';
	tabobj.style.borderBottomWidth = '1px';
	tabobj.style.borderBottomColor = '#888866';
	
	tabobj.style.cursor = 'default';
	
	tabobj.innerHTML = '';
}


function redrawView()
{
	for (i=0; i<tabs.length; i++)
	{
		thistabobj = document.getElementById('tab' + i);
		
		popupTab(thistabobj);
		
		if (seltabidx == i)
		{
			thistabobj.style.backgroundColor = '#222522';
			thistabobj.style.borderBottomColor = '#222522';
		} else {
			thistabobj.style.backgroundColor = '#272B28';
			thistabobj.style.borderBottomColor = '#272B28';
		}
		//thistabobj.innerHTML = tabs[i][1];
	}
	
	for (; i<5; i++)
	{
		thistabobj = document.getElementById('tab' + i);
		popdownTab(thistabobj);
	}
}



function closeImage()
{
	if (document.getElementById('editdiv').style.visibility != 'visible')
	{
		document.getElementById('blocker').style.visibility='hidden';
		document.getElementById('blocker').style.zindex='-3';
		document.getElementById('imagediv').style.visibility='hidden';
		document.getElementById('imagediv').style.zindex='-3';
		document.getElementById('linkdiv').style.visibility='hidden';
		document.getElementById('linkdiv').style.zindex='-3';
		
		document.getElementById('imageholder').src = 'http://support.screensend.com/images/spacer.gif';
	}
}


function closeEdit()
{
	document.getElementById('blocker').style.visibility='hidden';
	document.getElementById('blocker').style.zindex='-3';
	document.getElementById('editdiv').style.visibility='hidden';
	document.getElementById('editdiv').style.zindex='-3';
}

function editCancel()
{
	closeEdit();
}

function editSave()
{
	var edit_url = document.getElementById('edit_url');
	var edit_comments = document.getElementById('edit_comments');
	var edit_saveButton = document.getElementById('edit_saveButton');
	var edit_cancelButton = document.getElementById('edit_cancelButton');
	var edit_showLink = document.getElementById('edit_showLink');
	var edit_status = document.getElementById('edit_status');
	var edit_shotID = document.getElementById('edit_shotid');
	
	edit_status.innerHTML = 'Saving...';
	
	edit_cancelButton.value = 'Close';

	edit_saveButton.disabled = true;
	edit_url.disabled = true;
	edit_comments.disabled = true;
	edit_showLink.disabled = true;
	
	var shotURL = edit_url.value;
	var shotComments = edit_comments.value;
	var shotShowLink = edit_showLink.checked;
	var shotID = edit_shotID.value;
	
	var formdata = '';
	
	formdata += ('login=' + escape(curLogin) + '&pw=' + escape(curPW) + '&shotid=' + shotID);
	formdata += ('&');
	formdata += ('url=' + escape(shotURL));
	formdata += ('&');
	formdata += ('comments=' + escape(shotComments));
	formdata += ('&');
	formdata += ('showLink=' + (shotShowLink ? "1" : "0"));
	
	var url = ('/saveshot');
	loadXMLDoc(url, formdata);
}


function acctCancel()
{
	alert("Cancelled");
}

function acctSave()
{
	var acct_save = document.getElementById('acct_save');
	var acct_cancel = document.getElementById('acct_cancel');
	var acct_showindexonhomepage = document.getElementById('acct_showindexonhomepage');
	var acct_showindexonshotpage = document.getElementById('acct_showindexonshotpage');

	var acct_firstname = document.getElementById('acct_firstname');
	var acct_lastname = document.getElementById('acct_lastname');
	var acct_company = document.getElementById('acct_company');
	var acct_pw = document.getElementById('acct_pw');
	var acct_email = document.getElementById('acct_email');
	
	var new_showindexonhomepage = (acct_showindexonhomepage.checked ? true : false);
	var new_showindexonshotpage = (acct_showindexonshotpage.checked ? true : false);
	
	var new_firstname = acct_firstname.value;
	var new_lastname = acct_lastname.value;
	var new_company = acct_company.value;
	var new_pw = acct_pw.value;
	var new_email = acct_email.value;
	
	var formdata = '';
	
	acct_save.value = 'Saving...';
	acct_save.disabled = true;
	
	formdata += ('login=' + escape(curLogin) + '&pw=' + escape(curPW));
	formdata += ('&');
	formdata += ('firstname=' + escape(new_firstname));
	formdata += ('&');
	formdata += ('lastname=' + escape(new_lastname));
	formdata += ('&');
	formdata += ('company=' + escape(new_company));
	formdata += ('&');
	formdata += ('email=' + escape(new_email));
	formdata += ('&');
	formdata += ('newpw=' + escape(new_pw));
	formdata += ('&');
	formdata += ('showindexonhomepage=' + (new_showindexonhomepage ? "1" : "0"));
	formdata += ('&');
	formdata += ('showindexonshotpage=' + (new_showindexonshotpage ? "1" : "0"));
		
	var url = ('/saveaccount');
	loadXMLDoc(url, formdata);
}


function deleteShot(shotID)
{
	var formdata = '';
	formdata += ('login=' + escape(curLogin) + '&pw=' + escape(curPW) + '&shotid=' + shotID);
	
	var url = ('/deleteshot');
	loadXMLDoc(url, formdata);
}


function showFullImage(url, width, height)
{
	var imagediv = document.getElementById('imagediv');
	var imageholder = document.getElementById('imageholder');
	var blocker = document.getElementById('blocker');
	
	imageholder.src = ('/' + url + '.png');
	imageholder.style.width = (width + 'px');
	imageholder.style.height = (height + 'px');
	
	var vscroll = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	imagediv.style.width = ((width + 4) + 'px');
	imagediv.style.height = ((height + 4) + 'px');
	imagediv.style.top = (((vscroll < 95) ? 100 : (vscroll + 5)) + 'px');
	
	blocker.style.height = (100 + getComputedHeight('totalcontent') + getComputedHeight('loginarea')) + 'px';
	blocker.style.visibility = 'visible';
	blocker.style.zIndex=3;
	imagediv.style.visibility = 'visible';
	imagediv.style.zIndex=4;
}

function showLink(url, link)
{
	var linkdiv = document.getElementById('linkdiv');
	var linkname = document.getElementById('linkname');
	var linklink = document.getElementById('linklink');
	var blocker = document.getElementById('blocker');
	
	var vscroll = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	linkdiv.style.top = (((vscroll < 95) ? 100 : (vscroll + 5)) + 'px');
	
	linkname.innerHTML = ('link to <b>&ldquo;' + url + '&rdquo;</b> (copy and paste the link below)');
	linklink.value = link;
	
	blocker.style.height = (100 + getComputedHeight('totalcontent') + getComputedHeight('loginarea')) + 'px';
	blocker.style.visibility='visible';
	blocker.style.zIndex = 3;
	linkdiv.style.visibility = 'visible';
	linkdiv.style.zIndex = 4;
}

function showEditPanel(shotid)
{
	var editdiv = document.getElementById('editdiv');
	var blocker = document.getElementById('blocker');
	
	var edit_url = document.getElementById('edit_url');
	var edit_comments = document.getElementById('edit_comments');
	var edit_saveButton = document.getElementById('edit_saveButton');
	var edit_cancelButton = document.getElementById('edit_cancelButton');
	var edit_showLink = document.getElementById('edit_showLink');
	var edit_status = document.getElementById('edit_status');
	var edit_shotID = document.getElementById('edit_shotid');
	
	edit_cancelButton.value = 'Cancel';
	edit_status.innerHTML = 'Loading...';
	edit_url.value = '';
	edit_comments.value = '';
	edit_shotID.value = shotid;
	edit_showLink.checked = false;
	
	edit_saveButton.disabled = true;
	edit_url.disabled = true;
	edit_comments.disabled = true;
	edit_showLink.disabled = true;
	
	var vscroll = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);

	editdiv.style.top = (((vscroll < 95) ? 100 : (vscroll + 5)) + 'px');
	
	blocker.style.height = (100 + getComputedHeight('totalcontent') + getComputedHeight('loginarea')) + 'px';
	blocker.style.visibility='visible';
	blocker.style.zIndex=3;
	editdiv.style.visibility = 'visible';
	editdiv.style.zIndex = 4;
	
	getEditValues(shotid);
}








function loadXMLDoc(url, postdata) {
	req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		req.onreadystatechange = processReqChange;
		if (postdata)
		{
			req.open("POST", url, true);
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			req.send(postdata);
		} else {
			req.open("GET", url, true);
			req.send("");
		}
	}
}





function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        	var response = req.responseXML.documentElement;
        	var resptype = response.getElementsByTagName('resptype')[0].firstChild.nodeValue;
        	
        	if (resptype == "framedscreen") {
        		newFrameLoaded(response.getElementsByTagName('html')[0].firstChild.nodeValue);
        	} else if (resptype == "trylogin") {
        		var		resultCode;
        		resultCode = (response.getElementsByTagName('logingood')[0].firstChild.nodeValue);
        		
        		switch (resultCode)
        		{
        			case ('0'):
        				document.getElementById('loginform').innerHTML = loginFailed;
        				break;
        			case ('1'):
        				document.getElementById('loginform').innerHTML = loggedIn;
        				curLogin = response.getElementsByTagName('curLogin')[0].firstChild.nodeValue;
        				curPW = response.getElementsByTagName('curPW')[0].firstChild.nodeValue;
        				reloadTabs();
        				//if (seltabidx != -1) getTabContent(tabs[seltabidx][0]);
        				break;
        		}
        		
        	} else if (resptype == "forgotpw") {
        		var		resultCode;
        		resultCode = (response.getElementsByTagName('recallgood')[0].firstChild.nodeValue);
        	} else if (resptype == "logout") {
				document.getElementById('loginform').innerHTML = htmlInitial;
				//curLogin = null;
				curPW = null;
				reloadTabs();
         	} else if (resptype == "loadtabs") {
        		var		newtabs;
        		newtabs = response.getElementsByTagName('tab');
        		
        		tabs = new Array();
        		
        		for (i=0; i<newtabs.length; i++)
        		{
        			thistabobj = document.getElementById('tab' + i);
        			thistab = newtabs[i];
        			tabid = thistab.getAttribute('id');
        			tabname = thistab.getAttribute('name');
        			
        			tabs[i] = new Array(tabid, tabname);
        			
        			thistabobj.tabid = tabid;
					
        		}
        		
        		if (!inititalLoad)
        		{
        			clickTab(0);
        			inititalLoad = true;
        		} else if (seltabidx != -1) {
        			getTabContent(tabs[seltabidx][0]);
        		}
        		
				redrawView();

         	} else if (resptype == "loadtabcontent") {
         		newContentObj = (response.getElementsByTagName('tabcontent'));
         		
         		if (newContentObj.length == 1)
         		{
         			var buildStr = '';
         			var nodes = newContentObj[0].childNodes;
         			
         			for (i=0; i<nodes.length; i++)
         			{
         				buildStr += nodes[i].nodeValue;
         			}
         			
         			var contentobj = document.getElementById('tabbedcontent');
         			contentobj.innerHTML = buildStr;
				}	
         		
         	} else if (resptype == "geteditvalues") {
				
				if (response.getElementsByTagName('alertmsg').length == 0)
				{
					var edit_shotid = document.getElementById('edit_shotid');
					var edit_url = document.getElementById('edit_url');
					var edit_comments = document.getElementById('edit_comments');
					var edit_saveButton = document.getElementById('edit_saveButton');
					var edit_cancelButton = document.getElementById('edit_cancelButton');
					var edit_showLink = document.getElementById('edit_showLink');
					var edit_status = document.getElementById('edit_status');
					
					var shotURL = response.getElementsByTagName('shotURL')[0].childNodes[0].nodeValue;
					if (response.getElementsByTagName('shotComments')[0].childNodes.length == 0)
					{
						var shotComments = '';
					} else {
						var shotComments = response.getElementsByTagName('shotComments')[0].childNodes[0].nodeValue;
					}
					var shotShowLink = response.getElementsByTagName('shotShowLink')[0].childNodes[0].nodeValue;
					
					edit_status.innerHTML = 'Editing <b>&ldquo;' + shotURL + '&rdquo;</b>';
					edit_url.value = shotURL;
					edit_comments.value = shotComments;
					edit_showLink.checked = (shotShowLink == '1');
					
					edit_saveButton.disabled = false;
					edit_url.disabled = false;
					edit_comments.disabled = false;
					edit_showLink.disabled = false;
				}
				
         	} else if (resptype == "saveshot") {
				
				if (response.getElementsByTagName('alertmsg').length == 0)
				{					
					closeEdit();
					clickTab(seltabidx);
				} else {
					var edit_url = document.getElementById('edit_url');
					var edit_comments = document.getElementById('edit_comments');
					var edit_saveButton = document.getElementById('edit_saveButton');
					var edit_cancelButton = document.getElementById('edit_cancelButton');
					var edit_showLink = document.getElementById('edit_showLink');
					var edit_status = document.getElementById('edit_status');
					
					edit_saveButton.disabled = false;
					edit_url.disabled = false;
					edit_comments.disabled = false;
					edit_showLink.disabled = false;
					
					edit_status.innerHTML = 'Couldn\'t save';
					edit_cancelButton.value = 'Cancel';
				}
				
         	} else if (resptype == "saveaccount") {
				
				var acct_save = document.getElementById('acct_save');
				
				acct_save.value = 'Save';
				acct_save.disabled = false;
				
         	} else if (resptype == "deleteshot") {
         		
         		if (response.getElementsByTagName('alertmsg').length == 0)
				{					
					closeEdit();
					clickTab(seltabidx);
				}

	       	} else {
        		alert('Unrecognized result code "' + resptype + '"');
        	}
        	
        	var alerts = response.getElementsByTagName('alertmsg');
        	for (i=0; i<alerts.length; i++)
        	{
        		alert(alerts[i].firstChild.nodeValue);
        	}
        } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.status);
        }
    }
}


/*
.seltab
{
	background-color: #272B28;
	color: #dddddd;	

	border-left: solid 1px #888866;
	border-right: solid 1px #888866;
	border-top: solid 1px #888866;
	border-bottom-style: none;
}

.unseltab
{
	background-color: #222522;
	color: #888866;	

	border-left: dotted 1px #888866;
	border-right: dotted 1px #888866;
	border-top: dotted 1px #888866;
	border-bottom: solid 1px #888866;
	
	cursor: pointer;
}
*/






if (window.shouldFollow)
{
	document.onmousemove = follow;
}


