var processing = 0;
var onLoginVoteId = null;
var voteInterval = 0;
addEvent(window, 'load', start);
var ids=new Array('Propeller','Web','All','Propeller-bottom','Web-bottom','All-bottom');
var checkMailID, checkMailCount = 0;
var checkMailInterval = 60; // seconds
var charCountId = null;
var numSelectedFriends = 0;

function switchSearchType(id,formval){
	//loop through the array and hide each element by id
	for (var i=0;i<ids.length;i++){
		resetClass(ids[i],'');
	}
	resetClass(id,'on');
	resetClass(id+'-bottom','on');
	setFormValue('showval',formval);
	setFormValue('showval-bottom',formval);
}

function setFormValue(id,formval) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).value = formval;
		//alert(id+action);
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.value = formval;
		}
		else { // IE 4
			document.all.id.value = formval;
		}
	}
}


function resetClass(id,action) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).className = action;
		//alert(id+action);
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.className = action;
		}
		else { // IE 4
			document.all.id.className = action;
		}
	}
}

function showhide(id,action) {
	//safe function to show an element with a specified id

	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = action;
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = action;
		}
		else { // IE 4
			document.all.id.style.display = action;
		}
	}
}


function start(){
	//DWO.regurg();
	//Tag forms with events
	var forms = document.getElementsByTagName('form');
	var monitorTyping = [];
	for(var i = 0; i < forms.length; i++){
		var form = forms[i];
		//Check for special interest commands
		for(var j = 0; j < form.length; j++){
			var elem = form.elements[j];
			if(elem.name == "monitor"){
				monitorTyping = elem.value.split(",");
				break;
			}
		}
		//Add Events
		for(var j = 0; j < form.length; j++){
			var elem = form.elements[j];

			for(var k = 0; k < monitorTyping.length; k++){
				if(monitorTyping[k] == elem.name){
					if(elem.type == 'text' || elem.type == 'textarea'){
						addEvent(elem, 'keypress', onFinishTyping);
					} else {
						//addEvent(elem, 'change', onFinishTyping);
					}
				}
			}
			//alert(form.elements[j].name);
		}
	}

	// add the mail checks
	checkMailID = setInterval('checkMail();',checkMailInterval * 1000);
}		

function submitVote(storyId, from_comment_dialog, newVote) {
	if (!newVote) newVote=1;

	//Hide the "Don't forget to Vote" text if present... (on story permlink)
	var commentVoteDialogContainer = document.getElementById('commentVoteDialogContainer');
	if (commentVoteDialogContainer) {
		commentVoteDialogContainer.innerHTML = '';
	}
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=SubmitVote&voteDivId="+storyId+"&storyId="+storyId+"&newVote="+newVote, respVote);
}

function respVote(resp) {
	if(resp) {
		//If no login is available ask to login
		if(!resp.loggedIn){
			var onLoginVoteId = resp.storyId;
			var docHeight=document.body.scrollTop;
			if (document.getElementById("nswidget") != null) {
				if (parent.parent != parent){
					parent.parent.location.href = resp.storyPermaLink+"/vote?backurl="+escape(parent.document.referrer)+"&newVote="+resp.newVote;
				}
				else {
					parent.location.href=resp.storyPermaLink+"/vote?backurl="+escape(document.referrer)+"&newVote="+resp.newVote;
				}
			} else if (document.getElementById("storyFramePage") != null) {
				parent.location.href=resp.storyPermaLink+"/vote?backurl="+escape(parent.location.href)+"&newVote="+resp.newVote;
			} else {
				document.location.href=resp.storyPermaLink+"/vote?backurl="+escape(document.location.href)+"&newVote="+resp.newVote;
			}
			return;
		} else if (resp.voted) {
			var element = document.getElementById('synvoteBadge'+resp.storyId);
			if (element) {
				// apply vote to syndicated voting widget
				element.href = '';
				element.onclick = '';
				element.innerHTML = '<span class="vote-count" id="voteCount'+resp.storyId
					+'" name="voteCount'+resp.storyId+'">'+resp.votesFor
					+'</span><span class="vote-text">Voted</span>';
				element = document.getElementById('synvoteCount'+resp.storyId);
				element.innerHTML = resp.votesFor;
			}
			element = document.getElementById('frvoteBadge'+resp.storyId);
			if (element) {
				// apply vote to framenav story
				element.href = '';
				element = document.getElementById('frvoteCount'+resp.storyId);
				element.innerHTML = resp.votesFor;
				element = document.getElementById('frframeVote'+resp.storyId);
				element.href = '';
				element.innerHTML = '<img src="http://'+resp.IMAGE_HOST+'/media/iconVoteSwitchBlack.gif" width="10" height="10" border="0" /> Voted';
			}
			element = document.getElementById('dlvotebadge'+resp.storyId);
			if (element) {
				// apply vote to DL story
				element.innerHTML = resp.voteBadge;
			}
			
			element = document.getElementById('votebadge'+resp.storyId);
			if (element) {
				// apply vote to storycapsule
				element.innerHTML = resp.voteBadge;
				element = document.getElementById('ratingdesc'+resp.storyId);
				element.innerHTML = resp.ratingDesc;
				element = document.getElementById('capsule'+resp.storyId);
				if (resp.sunk) {
					if (element.className.indexOf(' sunk') == -1)
						element.className += ' sunk';
				} else {
					element.className = element.className.replace(' sunk', '');
				}
			}
		} else {
			element = document.getElementById('postDisplay'+resp.storyId);
			element.innerHTML = resp.debug;
		}
		return;
	}
}

function retractVote(storyId) {
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=RetractVote&voteDivId="+storyId+"&storyId="+storyId, retractVoteResponse);
}

function retractVoteResponse(resp) {
	if(resp) { if (resp.retracted) {
		var element = document.getElementById('dlvotebadge'+resp.storyId);
		if (element) {
			// apply retract to DL story
			element.innerHTML = resp.voteBadge;
	}
		
		element = document.getElementById('votebadge'+resp.storyId);
		if (element) {
			// apply retract to storycapsule
			element.innerHTML = resp.voteBadge;
			element = document.getElementById('ratingdesc'+resp.storyId);
			element.innerHTML = resp.ratingDesc;
			element = document.getElementById('capsule'+resp.storyId);
			if (resp.sunk) {
				if (element.className.indexOf(' sunk') == -1)
					element.className += ' sunk';
			} else {
				element.className = element.className.replace(' sunk', '');
			}
		}
	} else {
		element = document.getElementById('postDisplay'+resp.storyId);
		element.innerHTML = resp.debug;
	} }
}


function switchUserinfo(size){
        processing=0;
        ajaxObj.method="POST";
        ajaxObj.format="JSON";
        ajaxObj.call("action=GetUserInfo&userinfoType="+size, respSwitchUserInfo);
}

function respSwitchUserInfo(resp){
        if (resp) {
            if (resp.success) {
                document.getElementById('userinfo').innerHTML=resp.content;
            }
        }
}

function remFriend(memberId,friendId,friendAlias,cacheKey){
		if(!confirm('Are you sure you want to remove ' + friendAlias + ' from your friends list?')) { return false; }

        processing=0;
        ajaxObj.method="POST";
        ajaxObj.format="JSON";
        ajaxObj.call("action=RemoveFriend&memberid="+memberId+"&friendid="+friendId+"&friendalias="+friendAlias+"&cacheKey="+cacheKey, removeFriendResponse);
}

function removeFriendResponse(resp) {
        if (resp) {
            if (resp.success) {
               document.getElementById('friendAvatar'+resp.friendid).style.display='none';
               document.getElementById('friendAvatar'+resp.friendid).innerHTML="";
               document.getElementById('removeFriend').innerHTML=resp.friendalias+" is no longer one of your friends.";
            }
        }
}

function remUnclaimedFriend(memberId,friendId,friendAlias,cacheKey){
        processing=0;
        ajaxObj.method="POST";
        ajaxObj.format="JSON";
        ajaxObj.call("action=RemoveUnclaimedFriend&memberid="+memberId+"&friendid="+friendId+"&friendalias="+friendAlias+"&cacheKey="+cacheKey, remUnclaimedFriendResponse);
}

function remUnclaimedFriendResponse(resp) {
	if (resp) {
		if (resp.success) {
			document.getElementById('friendAvatar'+resp.friendid).style.display='none';
			document.getElementById('friendAvatar'+resp.friendid).innerHTML="";
		}
	}
}

function addFriend(memberId,friendId,friendAlias) {
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=AddFriend&memberid="+memberId+"&friendid="+friendId+"&friendalias="+friendAlias, addFriendSimpleResponse);
}

function addFriendSimpleResponse(resp) {
	if (resp) {
		if (resp.success) {
			if (document.getElementById("friendAdded") != undefined) {
				document.getElementById("friendAdded").innerHTML=resp.friendalias+" has been added as your friend.";
			}
		}
	}
}

function addFriendToProfile(memberId,friendId,friendAlias,querylim,cacheKey){
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=AddFriend&memberid="+memberId+"&friendid="+friendId+"&friendalias="+friendAlias+"&limit="+querylim+"&cacheKey="+cacheKey, addFriendResponse);
}

function addFriendResponse (resp) {
	if (resp) {
		if (resp.success) {
			var fof=document.getElementById("memberfof");
			var pfvote=document.getElementById("memberpfvote");
			var pfcrating=document.getElementById("memberpfcrating");
			var ucf=document.getElementById("memberucf");
			var foffon=document.getElementById("friendsOfflineOnlineDiv");
			if (fof != null) { fof.innerHTML=resp.memberfof; }
			if (pfvote != null) { pfvote.innerHTML=resp.memberpfvote; }
			if (pfcrating != null)  { pfcrating.innerHTML=resp.memberpfcrating; }
			if (ucf != null) { ucf.innerHTML=resp.memberucf; }
			if (foffon != null) { foffon.innerHTML=resp.friendsoffon; }
			document.getElementById("friendAdded").innerHTML=resp.friendalias+" has been added as your friend.";
		}
	}
}

function removeMsg(msgId,divid,lim,page,msgtype,folder){
	if (!folder) folder = '';
       processing=0;
       ajaxObj.method="POST";
       ajaxObj.format="JSON";
       ajaxObj.call("action=RemoveMessage&messageid="+msgId+"&divid="+divid+"&lim="+lim+"&page="+page+"&msgtype="+msgtype+"&folder="+folder, removeMsgResponse);
}

function removeMsgResponse(resp) {
	if (resp) {
		if (resp.success) {
			var btn = document.getElementById('deleteall');
			btn.disabled = false;
			btn.value="Delete checked messages";
		
		
			document.getElementById(resp.divid).innerHTML=resp.contents;

			if (document.getElementById('newMessageCount') && resp.newMessageCount >= 0){
				document.getElementById('newMessageCount').innerHTML = resp.newMessageCount;
				if (resp.newMessageCount == 1){
					document.getElementById('newMessageCountPlural').style.display = 'none';
				}
				else {
					document.getElementById('newMessageCountPlural').style.display = '';
				}
			}

			if (resp.totalcount <= resp.Limit * (resp.page-1) && resp.page > 1) {
				// all messages from this page are removed, back up
				document.location.href = resp.navurlprefix + (resp.page-1)
			} else {
				// update the navigation bar
				document.getElementById('pageNavTop').innerHTML = resp.navBar;
				document.getElementById('pageNavBottom').innerHTML = resp.navBar;
			}
		}
	}
}


function removeMsgsResponse(resp) {
	window.location.reload();
}

function removeMsgs(divid, lim, page, folder){

	if(!confirm("Are you sure you want to delete the checked messages?")) return;

	var btn = document.getElementById('deleteall');
	
	var friends = document.getElementsByName('ck_friend');
	var members = document.getElementsByName('ck_member')
	
	if(friends == undefined && members == undefined) return;
	
	// need to maintain two lists for the two different message types
	var friend_msgids = '';
	var member_msgids = '';

	if(friends != undefined){
		// figure out which messages are checked
		if(friends.length == undefined){
			if (friends.checked){
				friend_msgids = friends.value;	
			}
		}else{
			for (var i=0;i<friends.length;i++){
				if (friends[i].checked){
					friend_msgids = friend_msgids + friends[i].value + ',';
				}
			}
		}
	}
		
	if(members != undefined){	
		// figure out which messages are checked
		if(members.length == undefined){
			if (members.checked){
				member_msgids = members.value;	
			}
		}else{
			for (var i=0;i<members.length;i++){
				if (members[i].checked){
					member_msgids = member_msgids + members[i].value + ',';
				}
			}
		}
	}

	if(friend_msgids == '' && member_msgids == '') return;

	btn.disabled = true;
	btn.value="Deleting...";
	if (!folder) folder = '';
       processing=0;
       ajaxObj.method="POST";
       ajaxObj.format="JSON";
       ajaxObj.call("action=RemoveMessages&memberids="+member_msgids+"&friendids="+friend_msgids+"&divid="+divid+"&lim="+lim+"&page="+page+"&folder="+folder, removeMsgsResponse);
}



function checkAllMsgs(){
		var friends = document.getElementsByName('ck_friend');
		var members = document.getElementsByName('ck_member')

		

	if(friends != undefined){
		if(friends.length == undefined){
			friends.checked = true;
		}else{
			for (var i=0;i<friends.length;i++){
				friends[i].checked = true;
			}
		}
	}
		
	if(members != undefined){	
		
		if(members.length == undefined){
			members.checked = true;
		}else{
			for (var i=0;i<members.length;i++){
				members[i].checked = true;
			}
		}
	}

}



function getCommentForm(divid, storyId, parentCommentId, title, origin) {
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=GetContent&template=AddComment&divid="+divid+"&storyId="+storyId+"&parentCommentId="+parentCommentId+"&title="+title+"&origin="+encodeURIComponent(origin), getContent_callback);
}


function getNoteForm(divid, storyId, cacheKey){
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=GetContent&template=AddNote&divid="+divid+"&storyId="+storyId+"&cacheKey="+cacheKey, getContent_callback);
	
}

function getContent_callback(resp) {
	if (resp) { if (resp.success) {
		element = document.getElementById(resp.divid);
		element.innerHTML = resp.content;
	} }
}

function getTopStories(divid, divother, limit) {
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=TopStories&divid="+divid+"&divother="+divother+"&limit="+limit, getTopStoriesResponse);
}

function buildStoryHtml(story) {
	date = story.createdOn;
	url = '/story/' + date.substring(0,4) + '/' + date.substring(5, 7) + '/' + date.substring(8,10) + '/' + story.slug;
	link = '<p><a href="#" onclick="windowNavigate(window.opener, \''+url+'\');return false;">' + story.title + '</a></p>';
	return link;
}

function getTopStoriesResponse(resp) {
	if (resp) { if (resp.success) {
		topstory = buildStoryHtml(resp.content[0]);
		otherstories = '';
		for (i=1; i<resp.content.length; i++) {
			otherstories += buildStoryHtml(resp.content[i]);
		}

		divid = document.getElementById(resp.divid);
		divother = document.getElementById(resp.divother);
		divid.innerHTML = topstory;
		divother.innerHTML = otherstories;
	} }
}

function getMsgForm(alias,memberId,rootMessageId,parentMessageId,divid,folder,page) {
	if (!folder) folder = '';
       processing=0;
       ajaxObj.method="POST";
       ajaxObj.format="JSON";
       ajaxObj.call("action=GetMsgForm&alias="+alias+"&memberid="+memberId+"&rootmessageid="+rootMessageId+"&parentmessageid="+parentMessageId+"&divid="+divid+"&folder="+folder+"&page="+page, getMsgFormResponse);
}

function getMsgFormResponse(resp) {
	if(resp){
  	if(resp.success) {
  		document.getElementById(resp.divid).innerHTML=resp.content;
		}
	}
}

function hideFrameNav(memberId,url) {
        processing=0;
        ajaxObj.method="POST";
        ajaxObj.format="JSON";
        ajaxObj.call("action=HideFrameNav&memberid="+memberId+"&url="+url, hideFrameNavResponse);
}

function hideFrameNavResponse(resp) {
        var status=document.getElementById('hideFrameStatus');
        if (resp) {
            status.innerHTML=resp.htmlStatus;
            if (resp.success) {
	        parent.location.href=resp.url;
                return;
            }
        }
        status.innerHTML='<em class="error">Error hiding frame</em>';
}

function submitSignin(formId) {
	var qs = ajaxObj.getForm(formId);
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=Signin"+qs, respSignin);
}

var loginCallback = null;
function respSignin(resp) {
	var formStatus = document.getElementById('signinAjaxFormStatus');
	if(resp){
		formStatus.innerHTML = resp.message;
		if(resp.success){
			destroyPop('signinAjaxPopup');
                        var miniMemberBar = document.getElementById('miniMemberBar');
                        var miniMember = document.getElementById('miniMember');
                        if(miniMemberBar != null) {
                            pushHTML('miniMemberBar', 'framesignedin');
                        }else if (miniMember != null) {
                            pushHTML('miniMember', 'profilesignedin');
                        } else {
			    pushHTML('member','signedin');
                        }
			if(onLoginVoteId){
				submitVote(onLoginVoteId,0);
			}
			if(loginCallback){
				loginCallback();
			}
			retrieveVoteCounts();
			//window.location.reload();
		}
		return;
	}
	formStatus.innerHTML = 'Error Logging In';
}

function submitResetPassword(formId) {
        var qs = ajaxObj.getForm(formId);
        ajaxObj.method = "POST";
        ajaxObj.format = "JSON";
        ajaxObj.call("action=ResetPassword"+qs, respResetPassword);
}

function respResetPassword(resp){
        var formStatus = document.getElementById('forgotPasswordAjaxFormStatus');
        if(resp){
               formStatus.innerHTML = resp.message;
               if(resp.success){
                     destroyPop('forgotPasswordAjaxPopup');
                     pushHTML('member', 'passwordreset');
               }
               return;
        }
        formStatus.innerHTML = 'Error Resetting Password';
}

function refreshDlContent(divid) {
        var qs="divid="+divid;
        ajaxObj.method="POST";
        ajaxObj.format="JSON";
        ajaxObj.call("action=RefreshDl&"+qs,refreshDlContentResp);
}

function refreshDlContentResp(resp) {
        if (resp.content) {
        	document.getElementById(resp.divid).innerHTML=resp.content;
        }
}

function checkSubmitUrl(url){
	document.getElementById('urlCheckStatus').innerHTML = 'Validating URL';
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=CheckSubmitUrl&url="+encodeURIComponent(url), submitUrlResponse);
}

function submitUrlResponse(resp){
	var status = document.getElementById('urlCheckStatus');

	if(resp){
		status.innerHTML = resp.htmlStatus;
	}
	else {
		status.innerHTML = '<span style="color:red;">URL Check Failed</span>';
	}

	return;
}

function checkSubmitText(text){
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=CheckSubmitText&text="+encodeURIComponent(text),submitTextResponse);
}

function submitTextResponse(resp){
	if(resp){
		var status = document.getElementById('textCheckStatus');
		status.innerHTML = resp.htmlStatus;
	}

	return;
}

function checkSubmitTitle(title){
	document.getElementById('titleCheckStatus').innerHTML = 'Validating Title';
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=CheckSubmitTitle&title="+ encodeURIComponent(title), submitTitleResponse);
	
}

function submitTitleResponse(resp){
	var status = document.getElementById('titleCheckStatus');

	if(resp){
		status.innerHTML = resp.htmlStatus;
	}
	else {
		status.innerHTML = '<span style="color:red;">Title Check Failed</span>';
	}

	return;
}

function checkSubmitChannel(){
	var channel = document.getElementById('storyChannel').value
 //	document.getElementById('channelCheckStatus').innerHTML = 'Validating Channel '  + channel;
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=CheckSubmitChannel&channel="+channel, submitChannelResponse);
}

function submitChannelResponse(resp){
	var status = document.getElementById('channelCheckStatus');
	if(resp){
		status.innerHTML = resp.htmlStatus;
	}
	return;
}

function trackOutbound(storyId){
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=OutboundStory&storyId="+storyId, trackOutboundResponse);
	return true;
}

function trackOutboundResponse(resp){
	return true;
}

//For tracker
var timeUntilUpdate=0;
var trackCheckInt=0;
function updateTrackerEvents(numevents,eventtype,divname,directory,trspeed,pagenum,trackchannel){
     timeUntilUpdate=timeUntilUpdate - trackCheckInt;
     if (timeUntilUpdate <=0) {
         timeUntilUpdate=trspeed;
         ajaxObj.method = "POST";
         ajaxObj.format = "JSON";
         ajaxObj.call("action=UpdateTrackerList&numevents="+numevents+"&divid="+divname+"&directory="+directory+"&eventtype="+eventtype+"&page="+pagenum+"&trackchannel='"+trackchannel+"'", updateTrackerEventResponse);
     }
     var seconds = eval (timeUntilUpdate / 1000);
     if (seconds < 10) {
         seconds = "0" + seconds;
     } else {
         seconds = "" + seconds;
     }
     document.getElementById('secondsUntilNextUpdate').innerHTML=seconds;
     if (tprunning) {
         setTimeout("updateTrackerEvents("+numevents+", "+eventtype+", '"+divname+"', '"+directory+"', "+trspeed+", "+pagenum+", '"+trackchannel+"')", trackCheckInt);
     }
}

function updateTrackerEventResponse(resp){
     for(i=0; i<resp.limit; i++) {
        var eventcontent=document.getElementById(resp.divid+'Content'+i);
        if (eventcontent != null) {
           if (i==0) {
              eventcontent.setAttribute('class', 'track trackOn');
           } else {
              eventcontent.setAttribute('class', 'track');
           }
           eventcontent.innerHTML=eval('resp.eventcontent'+i);
        }
    }
}

function updateMiniTrackerEvent(divname,directory,mtrpos,mtrspeed,mtrnum){
    var nextpos=mtrpos + 1;
    if(mtrpos >= 30 || mtrcache == null || eval('mtrcache.eventcontent'+nextpos) == null){
      mtrpos=0;
      ajaxObj.method="POST";
      ajaxObj.format="JSON";
      ajaxObj.call("action=UpdateTrackerList&numevents=30&divid="+divname+"&directory="+directory+"&eventtype=0", updateMiniTrackerEventResponse);
    } else {
      mtrpos = nextpos;
      var fillPos=0;
      for (i=0; i < mtrnum; i++) {
      	var eventcontent = document.getElementById(divname+'Content'+i);
	if (eval('mtrcache.eventcontent'+(mtrpos + i)) != null) {
		eventcontent.innerHTML=eval('mtrcache.eventcontent'+(mtrpos + i));
	} else {
		fillPos = fillPos + 1;
		eventcontent.innerHTML=eval('mtrcache.eventcontent'+(fillPos));
	}
      }
    }

    setTimeout("updateMiniTrackerEvent('tphp', 'tracker', "+mtrpos+", "+mtrspeed+", "+mtrnum+")", mtrspeed);
}

function updateMiniTrackerEventResponse(resp){
    resp.divid="tphp";
    mtrcache=resp;
    var eventcontent=document.getElementById(resp.divid+'Content0');
    if (resp.eventcontent0 != null) {
    	eventcontent.innerHTML=eval('resp.eventcontent0');
    }
    var eventcontent1=document.getElementById(resp.divid+'Content1');
    if (resp.eventcontent1 != null) {
        eventcontent1.innerHTML=eval('resp.eventcontent1');
    }
}

//For comment
function submitCommentRating(bit,commentId){
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=RateComment&rating="+bit+"&commentId="+commentId, submitCommentRatingResponse);
}

function submitCommentRatingResponse(resp){
	if(resp){
		if(!resp.loggedIn){
			document.location.href = resp.commentPermaLink + "/rate/?&rating=" + resp.rating + "&id=" + resp.commentId + "&backurl=" + escape(document.location.href);
			return;
		}

			var status = document.getElementById('commentStatus'+resp.commentId);
		if(resp.success){
	        if (resp.rating >= 1) {   
				var respText='You gave this comment a positive vote.';
 
	        } else {
				var respText='You gave a negative vote. Rating:' + resp.modifiedRating;
				respText = respText + ' [<a href="javascript:showComment(' + resp.commentId + ')">show</a> | ';
				respText = respText + '<a href="javascript:hideComment(' + resp.commentId + ')">hide</a>]</span> | ';
				respText = respText + '<a href="' + resp.commentPermaLink + '">' + resp.entrydate + '</a>';
			
				status.innerHTML = respText;
	        	document.getElementById('comment-body'+resp.commentId).style.display = 'none';
	        }
			document.getElementById('commentRating'+resp.commentId).innerHTML = resp.modifiedRating;
                        document.getElementById('rateSpan'+resp.commentId).innerHTML=respText;
                        document.getElementById('rateSpan'+resp.commentId).className="my-vote";
			return;
		}
		status.innerHTML = 'Error rating comment';
	}
}

function blockMessages(memberId,divid,lim,page){
        processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=BlockMessages&memberId="+memberId+"&divid="+divid+"&lim="+lim+"&page="+page,blockMessageResponse);
}

function blockMessageResponse(resp){
	if (resp) {
		if (resp.success) {
			document.getElementById(resp.divid).innerHTML=resp.contents;

			if (document.getElementById('newMessageCount') && resp.newMessageCount >= 0){
				document.getElementById('newMessageCount').innerHTML = resp.newMessageCount;
				if (resp.newMessageCount == 1){
					document.getElementById('newMessageCountPlural').style.display = 'none';
				}
				else {
					document.getElementById('newMessageCountPlural').style.display = '';
				}
			}

			if (resp.totalcount <= resp.Limit * (resp.page-1) && resp.page > 1) {
				// all messages from this page are removed, back up
				document.location.href = resp.navurlprefix + (resp.page-1)
			} else {
				// update the navigation bar
				document.getElementById('pageNavTop').innerHTML = resp.navBar;
				document.getElementById('pageNavBottom').innerHTML = resp.navBar;
			}
		}
	}

}

function blockCommenter(commentId){
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=BlockComment&commentId="+commentId, blockCommenterResponse);
}

function blockCommenterResponse(resp){
	var status = document.getElementById('commentStatus'+resp.commentId);
	if(resp){
		status.innerHTML = resp.htmlResponse;
		if(!resp.loggedIn){
        	var docHeight=document.body.scrollTop;
			document.location.href = resp.commentPermaLink + "/block?&id=" + resp.commentId + "&backurl=" + escape(document.location.href);
			return;
		}

		return;
	}
	//status.innerHTML = 'Error rating comment';
}

function submitConfirmAccount(alias, key) {
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ConfirmAccount&alias=" + alias + "&key=" + key, respConfirmAccount);
}
function respConfirmAccount(resp) {
	if(resp) {
		if (resp.success){
			//If no login is available ask to login
			if (resp.confirmed) {
				window.location = '/signup/done';
				return;
			}
			else {
				var confirm_status = document.getElementById('confirm_status');
				confirm_status.innerHTML = resp.HTMLreturn;
			}
		}
	}
	return;
}

function editComment(commentId, origin) {
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=EditComment&commentId="+commentId+"&origin="+encodeURIComponent(origin), editCommentResponse);
}

function editCommentResponse(resp){
	if (resp) {
		if (resp.success){
			document.getElementById('comment'+resp.commentId).innerHTML = resp.contents;
			document.getElementById('editSpan'+resp.commentId).innerHTML = ' ';
		}
		else {
			document.getElementById('editSpan'+resp.commentId).innerHTML = '<em>'+resp.error+'</em>';
		}
	}
}

function editNote(storyId, page, cacheKey) {
	if (!page) page = 1;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=EditNote&storyId="+storyId+"&page="+page+"&cacheKey="+cacheKey, editNoteResponse);
}

function editNoteResponse(resp){
	if (resp) {
		if (resp.success){
			document.getElementById('addNoteDiv'+resp.storyId).innerHTML = resp.contents;
		}else {
			document.getElementById('addNoteDiv'+resp.storyId).innerHTML = '<em>'+resp.error+'</em>';
		}
	}
}

function removeNote() {
	return confirm("Are you sure you would like to remove this note?");
}



function addStar(commentId){
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ChangeStars&commentId="+commentId+"&change=up", starResponse);
}

function subStar(commentId){
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ChangeStars&commentId="+commentId+"&change=dn", starResponse);
}

function starResponse(resp){
	if(resp){
		document.getElementById('commentStars'+resp.commentId+'Status').innerHTML = resp.htmlResponse;
		var stars = document.getElementById('commentStars'+resp.commentId);
		if(resp.stars){
			stars.innerHTML = resp.stars;
		}
	}
}

function commentValidate(commentform){
	var qs = ajaxObj.getForm(commentform);
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ValidateComment"+qs, commentValidateResponse);
	document.getElementById('postId').value = document.getElementById('storyId').value;
}

function commentValidateResponse(resp){
	if (resp) {
		if (resp.valid) {
			//Check for the vote...
			var storyId = document.getElementById('storyId').value;
		if (document.getElementById('commentVoteCheckbox') != undefined) {
				var commentVoteCheckbox = document.getElementById('commentVoteCheckbox').checked;
				if (commentVoteCheckbox == 1) {
					submitVote(storyId,0,1);
				}
			}
			document.getElementById(resp.formName).submit();
		} else {
			document.getElementById('inlineCommentTextStatus'+resp.parentCommentId).innerHTML = resp.statusText;
		}
	}
}

function noteValidate(noteform){
	var qs = ajaxObj.getForm(noteform);
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ValidateNote"+qs, noteValidateResponse);
	document.getElementById('postId').value = document.getElementById('storyId').value;
}

function noteValidateResponse(resp){
	if (resp) { 
		if (resp.valid) {
			//Check for the vote...
			var storyId = document.getElementById('storyId').value;
			
			document.getElementById(resp.formName).submit();
		} else {
			document.getElementById('inlineNoteTextStatus'+resp.storyId).innerHTML = resp.statusText;
		}
	}
}

function sendMessage(divid,alias,statid){
	pushHTML(divid,'sendmessageform','alias='+alias+'&divid='+divid+'&statid='+statid);
}

function sendMessageSubmit(){
	var qs = ajaxObj.getForm('sendMessageForm');
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=SendMsg"+qs, sendMessageResponse);
}

function sendMessageResponse(resp){
	if (resp){
		var e = document.getElementById(resp.divid);
		e.innerHTML='';
		if (resp.divid != resp.statid) e.style.display='none';
		var r = document.getElementById(resp.statid);
		r.innerHTML=resp.message;
		r.className="status";
		r.onClick="";
	}
}

function showMessageThread(rootMessageId, myId, lim, page) {
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=ShowMessageThread&rootMessageId="+rootMessageId+"&myId="+myId+"&lim="+lim+"&page="+page, showMessageThreadResponse);
}

function showMessageThreadResponse(resp) {
	if (resp) {
		if (resp.success) {
			threadDiv = document.getElementById('thread'+resp.rootMessageId);
			threadDiv.style.border = '2px #7fbdc2 solid';
			threadDiv.innerHTML = resp.content;
		}
	}
}

//For comment
function reportComment(commentId){
	pushHTML('postCommDisplay'+commentId,'reportcommentpop','commentId='+commentId);
}

function reportCommentSubmit(){
	var qs = ajaxObj.getForm('reportCommentPop');
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ReportComment"+qs, reportCommResponse);
}

function reportCommResponse(resp){
	if(resp){
		if(resp.success){
			var e = document.getElementById('postCommDisplay'+resp.commentId);
			e.innerHTML = '';
			e.style.display = 'none';
			var r = document.getElementById('commentStatus'+resp.commentId);
			r.innerHTML=resp.htmlStatus;
			r.className="status";
		}
	}
}

//Fore Personal Note
function reportNote(notetId){
        pushHTML('postNoteDisplay'+notetId,'reportnotepop','noteId='+notetId);
}
        
function reportNoteSubmit(){
        var qs = ajaxObj.getForm('reportNotePop');
        ajaxObj.method = "POST";
        ajaxObj.format = "JSON";
        ajaxObj.call("action=ReportNote"+qs, reportNoteResponse);
}
         
function reportNoteResponse(resp){
        if(resp){
                if(resp.success){
                        var e = document.getElementById('postNoteDisplay'+resp.noteId);
                        e.innerHTML = '';
                        e.style.display = 'none';
                        var r = document.getElementById('noteStatus'+resp.noteId);
                        r.innerHTML=resp.htmlStatus;
                        r.className="status";
                }
        }
}
//For story
function reportStory(storyId){
	pushHTML('postDisplay'+storyId,'reportstorypop','storyId='+storyId);
	//getFormHTML('reportAjaxPop','reportstorypop','storyId='+storyId);
}
function closeDupe(storyId){
	pushHTML('postDisplay'+storyId,'closedupepop','storyId='+storyId);
}
function killSpam(storyId){
	pushHTML('postDisplay'+storyId,'killspampop','storyId='+storyId);
}
function redirectStory(storyId){
	pushHTML('postDisplay'+storyId,'redirectstorypop','storyId='+storyId);
}

function forwardStory(storyId){
	numSelectedFriends = 0;
	pushHTML('postDisplay'+storyId,'forwardstorypop','storyId='+storyId);
}
function editTagsStory(storyId) {
	pushHTML('postDisplay'+storyId,'storyedittagpop','storyId='+storyId);	
}


function setSelectFriendOption(checkObj, memberId, memberAlias) {
	if (checkObj.checked == false) {
		unsetSelectFriendOption(memberId, memberAlias);
		return false;
	}
	
	if (numSelectedFriends >= 5) {
		alert('You may only select a maximum of 5 friends. ');
		checkObj.checked = false;
		return false;
	}
	var friendSelectSpan = document.getElementById('friendSelect' + memberId);
	document.getElementById('friendListSelectedNoneMessage').style.display = 'none';

	var friendListSelected = document.getElementById('friendListSelected');
	friendListSelected.innerHTML += 
	'<div id="friendSelected' + memberId + '"><p class="friend-selected"><input type="hidden" name="memberAliasInput" id="memberAlias[]" value="' + memberAlias + '"/>' + memberAlias + '<a href="javascript:void();" onClick="unsetSelectFriendOption(' + memberId +  ', \'' + memberAlias + '\')">Remove</a></p>';

	numSelectedFriends++;
}
function unsetSelectFriendOption(memberId, memberAlias) {
	var friendSelectedDiv = document.getElementById('friendSelected' + memberId);
	var friendListSelected = document.getElementById('friendListSelected');
	friendListSelected.removeChild(friendSelectedDiv);
	
	var friendSelectSpan = document.getElementById('friendSelect' + memberId);
	document.getElementById('selectFriendOptionCheckbox' + memberId).checked = false;
	
	numSelectedFriends--;
	if (numSelectedFriends <= 0) {
		document.getElementById('friendListSelectedNoneMessage').style.display = 'block';
		numSelectedFriends = 0; //just to be safe if somehow it dropped below...
	}
}
function submitStoryEditTags(formObj) {
	var storyId = formObj.elements['storyId'].value;
    var storyTags = formObj.elements['storyTags'].value;
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=SubmitStoryEditTags&storyId=" + storyId + '&storyTags=' + storyTags, respSubmitStoryEditTags);
}
function respSubmitStoryEditTags(resp) {
	if(resp) {
		document.getElementById('postDisplay' + resp.storyId).style.display = 'none'
		alert('Tags Added. Please Reload Page To see New Tags.');
	}
	return;
}
	
function submitSaveJunky(id, start_date, end_date) {
	e = document.getElementById('junky' + id);
	if (e.value == '') { alert('Please enter the alias of a member.'); return false; }
		
	//Send Ajax Request to store the member...			
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=NewsJunkyAdmin&njaction=add&id=" + id + "&alias=" + e.value + '&start_date=' +  start_date + '&end_date=' + end_date, respSaveJunky);
}

function respSaveJunky(resp) {
	if (resp.memberNotFound) {
		alert('Alias not found. Please Check Spelling!')
		return;
	}

	var div = document.getElementById(resp.id + '-container') 
	div.innerHTML = resp.statusHTML;
	return;
}
function submitRemoveJunky(id, alias, start_date, end_date) {
	//Send Ajax Request to store the member...			
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=NewsJunkyAdmin&njaction=remove&id=" + id + "&alias=" + alias + '&start_date=' +  start_date + '&end_date=' + end_date, respRemoveJunky);
}

function respRemoveJunky(resp) {
	if (resp.memberNotFound) {
		alert('Alias not found. This member may no longer exist.')
		return;
	}

	var div = document.getElementById(resp.id + '-container') 
	div.innerHTML = resp.statusHTML;
	return;
}

	


function submitForwardStory(formObj) {

	var storyId = formObj.elements['storyId'].value;
    var emails = formObj.elements['emails'].value;
    var myname = formObj.elements['myname'].value;
    var message = formObj.elements['message'].value;

	//Get All the important elements/values
	if (numSelectedFriends == 0 && emails == '') {
		alert('Please select up to 5 friends or enter up to 5 email addresses.');
		return false;
	}

	var memberAliasString = '';
	var aliasInputs = document.getElementsByName('memberAliasInput');
	
	for(var x =0; x < aliasInputs.length; x++) {
		if (aliasInputs[x] && aliasInputs[x].value) {
			memberAliasString += '&memberAlias[]=' + aliasInputs[x].value;
		}
	}

	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=SubmitForwardStory&storyId=" + storyId + '&emails=' + emails + '&myname=' + myname + '&message=' + message + memberAliasString, respForwardStory);
}

function respForwardStory(resp) {
	if(resp) {
		pushHTML('postDisplay' + resp.storyId, 'forwardstorypopframe', 'message=' + resp.statusHTML  + '&storyId='+resp.storyId);
	}
	window.location.hash = 'forwardStoryPop';
	return;
}


function submitNeverShowTips(template_set) {
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=Tips&tip_action=show_never&template_set=" + template_set, respNeverShowTips);
}

function respNeverShowTips(resp) {
	if(resp){
		var e = document.getElementById('tip_dialog');
		e.innerHTML = resp.statusHTML;
	}
	return;
}
function clearTip() {
	var e = document.getElementById('tip_dialog');
	e.innerHTML = '';
	return;
}



function reportStorySubmit(){
	var qs = ajaxObj.getForm('reportStoryPop');
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=ReportStory"+qs, reportResponse);
}

function reportResponse(resp){
	if(resp){
		if(resp.success){
			var e = document.getElementById('postDisplay'+resp.storyId);
			e.innerHTML = '';
			e.style.display = 'none';
			var r = document.getElementById('reportStoryButtons');
			r.innerHTML = resp.htmlStatus;
			r.className = "status";
		}
	}
}

function closeDupeSubmit(){
	var qs = ajaxObj.getForm('closeDupePop');
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=CloseDupe"+qs, closeDupeResponse);
}

function closeDupeResponse(resp){
	if(resp){
		if(resp.success){
			var e = document.getElementById('postDisplay'+resp.storyId);
			e.innerHTML = '';
			e.style.display = 'none';
			var r = document.getElementById('reportStoryButtons');
			r.innerHTML = resp.htmlStatus;
			r.className = "status";
		}
	}
}

function killSpamSubmit(){
	var qs = ajaxObj.getForm('killSpamPop');
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=KillSpam"+qs, killSpamResponse);
}

function killSpamResponse(resp){
	if(resp){
		if(resp.success){
			var e = document.getElementById('postDisplay'+resp.storyId);
			var r = document.getElementById('reportStoryButtons');
			e.innerHTML = '';
			e.style.display = 'none';
			r.innerHTML = resp.htmlStatus;
			r.className = "status";
		}
		else {
			var r = document.getElementById('killSpamStatus');
			r.innerHTML = resp.error;
		}
	}
}

function redirectStorySubmit(){
	var qs = ajaxObj.getForm('redirectStoryPop');
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=RedirectStory"+qs, redirectStoryResponse);
}

function redirectStoryResponse(resp){
	if(resp){
		if(resp.success){
			document.location.href = document.location.href;
		}
		else {
			var r = document.getElementById('reportStoryButtons');
			r.innerHTML = resp.htmlStatus;
			r.className = "error";
		}
	}
}

//For registration only
function checkItem(itemid,itemclass){
	document.getElementById(itemid+'Status').innerHTML = 'Validating Alias';
	var itemValue = document.getElementById(itemid).value;
	processing = 0;
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action="+itemclass+"&item="+itemValue+"&itemid="+itemid, checkItemResponse);
}

function checkItemResponse(resp){
	var status = document.getElementById(resp.itemid+'Status');
	if(resp){
		status.innerHTML = resp.htmlStatus;
		if(resp.exists){
			//button.disabled = true;
		} else {
			//button.disabled = false;
		}
		return;
	}
	status.innerHTML = '<span style="color:red;">Alias Check Failed</span>';
}



//Voting Magic
function retrieveVoteCounts(){
	var votes = scrapeStories();

	if(votes.length == 0){
		clearInterval(voteInterval);
		return;
	}

	var qs = votes.join(",");

	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=GetVoteStats&indexes="+qs, applyVoteCounts);

}

function applyVoteCounts(resp){
	if(resp){
		for(i in resp){
			var info = resp[i];
			var countarr = document.getElementsByName('voteCount'+info.storyId);
			//var count = document.getElementById('voteCount'+info.storyId);
			for (i=0; i<countarr.length; i++) {
			    countarr[i].innerHTML=info.votes;
			}

			//if(count){
			//	count.innerHTML = info.votes;
			//}

			//If memberId isn't null then change to voted.
			if(info.memberId){
			        var statusarr = document.getElementsByName('voteStatus'+info.storyId);
				for (j=0; j<statusarr.length; j++) {
				    if (statusarr[i]) {
					statusarr[i].innerHTML = '<img src="'+ihost+'/media/iconVoteSwitch.gif" width="10" height="10" border="0" /> Voted';
			            }
				}
				var badgearr = document.getElementsByName('voteBadge'+info.storyId);
				for (k=0; k < badgearr.length; k++) {
				     if (badgearr[k]) {
				         badgearr[k].className='voted';
			             }
				}
				//var status = document.getElementById('voteStatus'+info.storyId);
				//var voteBadge = document.getElementById('voteBadge'+info.storyId);
				//if(status){
			//		status.innerHTML = '<img src="/media/iconVoteSwitch.gif" width="10" height="10" border="0" /> Voted';
			//	}
			//	if(voteBadge){
			//		voteBadge.className = 'voted';
			//	}
			}
		}
	}
}


function scrapeStories(){
	var elems = document.getElementsByTagName('span');
	var votes = new Array();

	for(var i = 0; i < elems.length; i++){
		if(elems[i].id){
			var idStr = elems[i].id;
			if(idStr.substr(0,9) == 'voteCount'){
				votes.push(idStr.substr(9));
			}
		}
	}
	return votes;
}


function previewSubmit(){
	var qs = ajaxObj.getForm('submitStory');
	ajaxObj.method = "POST";
	ajaxObj.format = "JSON";
	ajaxObj.call("action=PreviewSubmit"+qs, previewResponse);
	return false;
}

function previewResponse(resp){
	document.getElementById('submissionPreview').innerHTML = resp.preview;
	document.getElementById('storySubmitButtonTop').disabled=false;
        window.location.href="#preview";
}


//Multi use functions
//Hack to use the same AJAX class for pulling templates
var pushDivId = '';
function pushHTML(divId,template){

	if(arguments[2]){
		template += "&" + arguments[2];
	}

	pushDivId = divId;
	ajaxObj.method = "POST";
	ajaxObj.format = "TEXT";
	ajaxObj.call("action=PullTemplate&templateName="+template, pushHTMLResponse);
}

function pushHTMLResponse(resp){
	if(resp){
		var e = document.getElementById(pushDivId);
		e.innerHTML = resp;
		e.style.display = 'block';
	}
}

function getFormHTML(popName,templateName){
	var popDiv = createPop(popName,'');

	if(arguments[2]){
		templateName += "&" + arguments[2];
	}

	ajaxObj.method = "POST";
	ajaxObj.format = "TEXT";
	ajaxObj.call("action=PullTemplate&templateName="+templateName, getFormHTMLResponse);
}

function getFormHTMLResponse(resp){
	if(resp){
		document.getElementById('displayNode').innerHTML = resp;
		return;
	}
}

var processingIndex = [];
function onFinishTyping(e){
	var obj;
	if(e.keyCode && e.keyCode == 9) return;
	if(e.originalTarget){
		obj = e.originalTarget;
	} else {
		obj = e.srcElement;
	}

	if(!processingIndex[obj.id]){
		processingIndex[obj.id] = setInterval("finishTyping('"+obj.id+"')",500);
		return;
	}

	clearInterval(processingIndex[obj.id]);
	processingIndex[obj.id] = setInterval("finishTyping('"+obj.id+"')",500);
}

function finishTyping(objid){
	clearInterval(processingIndex[objid]);
	eval(finishTypingArr[objid]);
}

var finishTypingArr = [];
function finishTypingCallback(obj,callback){
	finishTypingArr[obj.id,callback];
}

function charCountdown(objId, displayId, limit){
	if (charCountId) window.clearTimeout(charCountId);
	charCountId = window.setTimeout("doCharCountdown('"+objId+"','"+displayId+"',"+limit+");", 500);
}

function doCharCountdown(objId,displayId,limit){
	var tb = document.getElementById(objId);
	var hb = document.getElementById(displayId);

	if (tb.value.length <= limit){
		hb.innerHTML = limit - tb.value.length + ' character';
		if (tb.value.length != (limit - 1)) hb.innerHTML += 's';
		hb.innerHTML += ' left.';
		return true;
	}
	else {
		hb.innerHTML = (tb.value.length-limit) + ' character';
		if (tb.value.length-limit != 1) hb.innerHTML += 's';
		hb.innerHTML += ' over comment length limit.';
		return false;
	}
}

function createPop(name,className){
	//var popDiv = document.createElement('div');
	//Hackey Shortcut
	lightBox();
	var popDiv = document.getElementById('displayNode');

	m = measure(popDiv);

	popDiv.style.top = ((m.scrollY+(m.height/2))-(m.eHeight/2))+"px";
	popDiv.style.left = ((m.scrollX+(m.width/2))-(m.eWidth/2))+"px";

	popDiv.style.visibility = "visible";
	popDiv.innerHTML = 'Please Wait...';
	//popDiv.style.classname = className;
	return popDiv;
}

function lightBox(){
	var lightBox = document.getElementById("lightBox");
	lightBox.style.display = "block";
	lightBox.style.position = "absolute";

	//IE Needs this
	lightBox.style.left = 0;
	lightBox.style.right = 0;

	m = measure();

	lightBox.style.height = m.contentHeight+"px";
	lightBox.style.width = m.contentWidth+"px";

	lightBox.style.backgroundColor = "black";
	lightBox.style.zIndex = 5;
	lightBox.onclick = function(){
		destroyPop('');
	}

	//new Function('this.style.display = "none"');

	if(document.all){
		lightBox.style.filter = "alpha(opacity=70)";
	} else {
		lightBox.style.opacity = 0.7;
	}

	//Turn off elemebts that punch through the div.
	var objTags = document.getElementsByTagName('object');
	for(var i = 0; i < objTags.length; i++){
		var tag = objTags[i];
		tag.style.display = 'none';
	}

	return;
}

function destroyPop(popName){
	//Actually remove this
	var lightBox = document.getElementById("lightBox");
	lightBox.style.display = "none";
	var popDiv = document.getElementById('displayNode');
	popDiv.style.visibility = "hidden";
	popDiv.style.innerHTML = "";

	//Turn on elemebts that punch through the div.
	var objTags = document.getElementsByTagName('object');
	for(var i = 0; i < objTags.length; i++){
		var tag = objTags[i];
		tag.style.display = 'block';
	}
}

/*
var DWO = {
	Write:document.write,
	CurrentStackItem:"unset",
	Capture:function(str){
		if(!DWO.DisplayStack[DWO.CurrentStackItem]){
			DWO.DisplayStack[DWO.CurrentStackItem] = [];
		}
		DWO.DisplayStack[DWO.CurrentStackItem].push(str);
		//document.writeln(str);
	},
	delayedWrite:function(func,stack){
		DWO.CurrentStackItem = stack;
		eval(func);
	},
	DisplayStack:[],
	ScriptRegex:new RegExp("<script.*?src=[\"|'](.*)?[\"|']","im"),
	regurg:function(){
		for(i in DWO.DisplayStack){
			var str = DWO.DisplayStack[i].join("");
			DWO.DisplayStack[i] = [];
			if(DWO.ScriptRegex.exec(str)){
				DWO.stripNestedScripts(str);
				return DWO.regurg();
			}

			//DWO.insertScriptBlock(i,newJs);
			//document.getElementById(i).innerHTML = str;
			//document.writeln(str);
		}
		//alert(DWO.DisplayStack.length);
	},
	stripNestedScripts:function(str){
		var srcMatch = DWO.ScriptRegex.exec(str);
		if(srcMatch){
			req.open("GET", "/util/geturl.php?url="+srcMatch[1], false);
			req.send(null);
			return DWO.stripNestedScripts(req.responseText);
		}
		DWO.insertScriptBlock(i,str);
		return str;
	},
	insertScriptBlock:function(elemId,newJs){
		var html_div = document.getElementById(elemId);
		var js = document.createElement('script');
		for(x in js){
			//document.writeln(x+"<br>");
		}
		js.setAttribute('language', 'javascript');
		js.setAttribute('type', 'text/javascript');
		js.textContent = newJs;
		html_div.appendChild(js);
	}
}

if (window.XMLHttpRequest) {
	req = new XMLHttpRequest();
} else if(window.ActiveXObject){
	req = new ActiveXObject("Microsoft.XMLHTTP");
}

document.write = DWO.Capture;
*/

function measure(elem){
	var m = new Array();
	//IE stats
	if(document.all){
		m.contentHeight = document.body.clientHeight;
		m.contentWidth = document.body.clientWidth;
		m.height = document.documentElement.offsetHeight;
		m.width = document.documentElement.offsetWidth;
		m.scrollX = document.documentElement.scrollLeft;
		m.scrollY = document.documentElement.scrollTop;
		if(elem){
			m.eContentHeight = elem.clientHeight;
			m.eContentWidth = elem.clientWidth;
			m.eHeight = elem.offsetHeight;
			m.eWidth = elem.offsetWidth;
			m.eScrollX = elem.scrollLeft;
			m.eScrollY = elem.scrollTop;
		}

	} else {
		//Moz
		m.contentHeight = document.body.offsetHeight;
		m.contentWidth = document.body.offsetWidth;
		m.height = window.innerHeight;
		m.width = window.innerWidth;
		m.scrollX = window.pageXOffset;
		m.scrollY = window.pageYOffset;
		if(elem){
			m.eContentHeight = elem.offsetHeight;
			m.eContentWidth = elem.offsetWidth;
			m.eHeight = elem.offsetHeight;
			m.eWidth = elem.offsetWidth;
			m.eScrollX = elem.pageXOffset;
			m.eScrollY = elem.pageYOffset;
		}
	}
	return m;
}

function addEvent(obj, eventType,fn, useCapture)
{
	if (obj.addEventListener) {
		obj.addEventListener(eventType, fn, useCapture);
		return true;
	} else {
		if (obj.attachEvent) {
			var r = obj.attachEvent("on"+eventType, fn);
			return r;
		}
	}
}

var dlindex=0;
var dlrunning=true;
var dlrotationcount=0;

function changeDlTab(index){
    dlrunning=false;
    dlindex=index;
    for (i=0; i<=dlnumtabs; i++)
    {
       document.getElementById('dlPrevImg'+i).setAttribute('src', ihost+'/media/iconDlPrev.gif');
       document.getElementById('dlPauseImg'+i).setAttribute('src', ihost+'/media/iconDlPauseOn.gif');
       document.getElementById('dlPlayImg'+i).setAttribute('src', ihost+'/media/iconDlPlay.gif');
       document.getElementById('dlNextImg'+i).setAttribute('src', ihost+'/media/iconDlNext.gif');
    }
    return switchTab('dlTabs', dlindex, 'dl', 'dlContentWrapper');
}

function rotateContent() {
    if(dlrunning) {
       if (dlindex > dlnumtabs) {
          dlindex = 0;
          if (dlrotate==0) {
             dlrotationcount=dlrotationcount + 1;
             if (dlrotationcount >= dlnumrotations) {
                refreshDlContent('dlAll');
                dlrotationcount=0;
                var keepgoing=true;
                var newdlnumtabs=0;
                while (keepgoing) {
                    if (document.getElementById('dlPrevImg'+newdlnumtabs) == null) {
			newdlnumtabs = newdlnumtabs - 1;
			keepgoing=false;
		    } else { newdlnumtabs = newdlnumtabs + 1; }
                }
                dlnumtabs=newdlnumtabs;
             }
          }
       }
       switchTab('dlTabs', dlindex, 'dl', 'dlContentWrapper');
       dlindex++;
       setTimeout("rotateContent()", dlspeed);
    }
    return false;
}

function incrementContent(){
		if (dlrunning) {
			// If it's running, then dlindex is set to the next tab
			dlindex--;
		}

    dlrunning=false;
    dlindex=dlindex + 1;
    if (dlindex > dlnumtabs) { dlindex = 0; }
    for (i=0; i<=dlnumtabs; i++)
    {
       document.getElementById('dlPrevImg'+i).setAttribute('src', ihost+'/media/iconDlPrev.gif');
       document.getElementById('dlPauseImg'+i).setAttribute('src', ihost+'/media/iconDlPause.gif');
       document.getElementById('dlPlayImg'+i).setAttribute('src', ihost+'/media/iconDlPlay.gif');
       document.getElementById('dlNextImg'+i).setAttribute('src', ihost+'/media/iconDlNextOn.gif');
    }
    switchTab('dlTabs', dlindex, 'dl', 'dlContentWrapper');
    return false;
}

function decrementContent(){
		if (dlrunning) {
			// If it's running, then dlindex is set to the next tab
			dlindex--;
		}

    dlrunning=false;
    dlindex=dlindex - 1;
    if (dlindex < 0) { dlindex = dlnumtabs; }
    for (i=0; i<=dlnumtabs; i++)
    {
       document.getElementById('dlPrevImg'+i).setAttribute('src', ihost+'/media/iconDlPrevOn.gif');
       document.getElementById('dlPauseImg'+i).setAttribute('src', ihost+'/media/iconDlPause.gif');
       document.getElementById('dlPlayImg'+i).setAttribute('src', ihost+'/media/iconDlPlay.gif');
       document.getElementById('dlNextImg'+i).setAttribute('src', ihost+'/media/iconDlNext.gif');
    }
    switchTab('dlTabs', dlindex, 'dl', 'dlContentWrapper');
    return false;
}

function stopRotateContent(){
    dlrunning=false;
    for (i=0; i<=dlnumtabs; i++)
    {
       document.getElementById('dlPrevImg'+i).setAttribute('src', ihost+'/media/iconDlPrev.gif');
       document.getElementById('dlPauseImg'+i).setAttribute('src', ihost+'/media/iconDlPauseOn.gif');
       document.getElementById('dlPlayImg'+i).setAttribute('src', ihost+'/media/iconDlPlay.gif');
       document.getElementById('dlNextImg'+i).setAttribute('src', ihost+'/media/iconDlNext.gif');
    }
    return false;
}

function startRotateContent(){
    dlrunning=true;
    for (i=0; i<=dlnumtabs; i++)
    {
       document.getElementById('dlPrevImg'+i).setAttribute('src', ihost+'/media/iconDlPrev.gif');
       document.getElementById('dlPauseImg'+i).setAttribute('src', ihost+'/media/iconDlPause.gif');
       document.getElementById('dlPlayImg'+i).setAttribute('src', ihost+'/media/iconDlPlayOn.gif');
       document.getElementById('dlNextImg'+i).setAttribute('src', ihost+'/media/iconDlNext.gif');
    }
    rotateContent();
}

function stopTrackerContent(){
    tprunning=false;
    document.getElementById('trPlayImg').setAttribute('src', ihost+'/media/iconDlPlay.gif');
    document.getElementById('trPauseImg').setAttribute('src', ihost+'/media/iconDlPauseOn.gif');
    return false;
}

function startTrackerPageContent(trackerType){
	if (!trackerType) trackerType = 'trackerpage';
	tprunning=true;
	document.getElementById('trPlayImg').setAttribute('src', ihost+'/media/iconDlPlayOn.gif');
	document.getElementById('trPauseImg').setAttribute('src', ihost+'/media/iconDlPause.gif');
	timeUntilUpdate=trspeed;
	trackCheckInt=1000;
	setTimeout("updateTrackerEvents("+numevents+", "+eventtype+", 'tp', '"+trackerType+"', "+trspeed+","+trackerpagenum+", '"+trackerchannel+"')", trackCheckInt);
	return false;
}

function startMiniTrackerContent(){
    setTimeout("updateMiniTrackerEvent('tphp', 'tracker', "+mtrpos+", "+mtrspeed+", "+mtrnum+")", mtrspeed);
    return false;
}


function switchTab(tabMenu,activeTab,contentWrap,contentClass) {
	/*
	ARGS
	----
	tabMenu = the UL with the tabs
	activeTab = the tab/content you're switching to
	contentWrap = the element around the content of the box
	contentClass = the className for the divs (they have to be divs) you're switching to/from
	*/
	var menu = document.getElementById(tabMenu);
	var menuTabs = menu.getElementsByTagName("li");
	var contentWrap = document.getElementById(contentWrap);
	var contentAreas = contentWrap.getElementsByTagName("div");

	for(var i=0; i<menuTabs.length; i++) {
		var tabType = "";
		if (menuTabs[i].className == "on dl-ad") { tabType = "dl-ad"; }
		if (menuTabs[i].className == "dl-ad") { tabType = "dl-ad"; }
		menuTabs[i].className = "";
		if(menuTabs[i].id.indexOf(activeTab)>-1) {
			menuTabs[i].className = "on";
			if (tabType == "dl-ad") { menuTabs[i].className = "on "+tabType; }
		} else {
			if (tabType == "dl-ad") { menuTabs[i].className = tabType; }
		}
	}
	for(j=0;j<contentAreas.length;j++) {
		if(contentAreas[j].className.indexOf(contentClass)>-1 ) {
			contentAreas[j].className = contentClass + " off";
			if(contentAreas[j].id.indexOf(activeTab)>-1) {
				contentAreas[j].className = contentClass;
			}
		}
	}

	return false;
}

var currentframepos=0;
function switchFrameStory(pos) {
     //alert('calling switchFrameStory('+pos+')');
     currentframepos=pos;
     for(var i=0; i<numRecs; i++) {
        var framediv=document.getElementById('frameElem'+i);
        if(i==pos){
            framediv.className="frameContent on";
        }else{
            framediv.className="frameContent";
        }
     }
     document.getElementById('back').setAttribute("href", storyUrlArr[pos]);
     document.getElementById('close').setAttribute("href", urlArr[pos]);
     parent._right.location=urlArr[pos];

     return false;
}

function createCookie(name,value,days){
	if (days){
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name){
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++){
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name){
	createCookie(name,"",-1);
}

function selectAvatar(avatarNum){
	for(var i=2; i <= 6; i++) {
		if (avatarNum == i) {
			document.getElementById( 'defaultAvatar'+i).style.border='2px #007c85 solid';
		} else {
			document.getElementById('defaultAvatar'+i).style.border='';
		}
	}
}

function checkMail(){
	processing=0;
	var mailChecker = ajaxObj;
	mailChecker.method="POST";
	mailChecker.format="JSON";
	mailChecker.call("action=CheckMail&interval="+checkMailInterval,checkMailResponse);
}

function checkMailResponse(resp){
	if (resp.success){
		if (resp.messages > 0){
			document.getElementById('member-notify').style.display = '';
			if (document.getElementById('messageCenterLink')){
				document.getElementById('messageCenterLink').innerHTML = getMessageCenterLink(resp.totalNewMessages, resp.alias);
			}
		}
	}
}

function getMessageCenterLink(newMessageCount, alias){
	var link = '<a href="/member/'+alias+'/messages/" title="';

	if (newMessageCount == 0){
		link += 'Message Center">Message Center';
	}
	else {
		link += 'New Messages"><strong>'+newMessageCount+'</strong> new message';

		if (newMessageCount > 1){
			link += 's';
		}
	}

	link += '</a>';

	return link;
}

function closeMsgAlert(disableAlerts){
	document.getElementById('member-notify').style.display = 'none';
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=CloseMsgAlert&disable="+disableAlerts,closeMsgAlertResponse);
}

function closeMsgAlertResponse(resp){
}

function playInlineVideo(videoId, divId){
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=PlayInlineVideo&videoId=" + videoId + "&divId="+divId, playInlineVideoResponse);
}

function playInlineVideoResponse(resp){
	if (resp.success){
		document.getElementById(resp.divId).innerHTML = resp.contents;
		document.getElementById(resp.divId).style.display = '';
	}
}

function getVideoEmbedCode(guid, size){
	document.getElementById('embedCode'+guid).innerHTML = 'Loading embed code...';
	document.getElementById('embedCode'+guid).style.display = '';
	processing=0;
	ajaxObj.method="POST";
	ajaxObj.format="JSON";
	ajaxObj.call("action=GetVideoEmbedCode&guid=" + guid + "&size="+size, getVideoEmbedCodeResponse);
}

function getVideoEmbedCodeResponse(resp){
	if (resp){
		// Firefox is smart and knows that a textarea can display < characters.
		// IE, on the other hand, is dumb.
		resp.embedCode = resp.embedCode.replace(/</g,'&lt;');
		document.getElementById('embedCode'+resp.guid).innerHTML = resp.embedCode;
		document.getElementById('embedCode'+resp.guid).style.display = '';
	}
}

function showUploadProgress() {
	var vidUpload = document.getElementById('storyVideo');

	if (vidUpload) {
		if (vidUpload.value != ''){
			document.getElementById('submitButtons').style.display = 'none';
			document.getElementById('progressBar').style.display = '';
			// For IE - All animations are stopped when a form is submitted, so
			// so we reset the img after the submit.
			document.getElementById('progressBarAnimation').src = ihost + "/media/progressBar.gif";
		}
	}
}

function findPosition(obj) {
	var posLeft = posTop = 0;

	if (obj.offsetParent) {
		posLeft = obj.offsetLeft;
		posRight = obj.offsetRight;
		obj = obj.offsetParent;
		while (obj != null) {
			posLeft += obj.offsetLeft;
			posTop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}

	return [posLeft, posTop];
}

function matchMember(partial) {
       processing=0;
       ajaxObj.method="POST";
       ajaxObj.format="JSON";
       ajaxObj.call("action=MatchMember&partial="+partial, matchMemberResponse);
}

function matchMemberResponse(resp) {
	if(resp){
		if(resp.success) {
			var matchDiv = document.getElementById("matchDiv");
			var matchList = document.getElementById("matches");
			var sendToAlias = document.getElementById("sendToAlias");
			var page = document.getElementById("page");
			var matches = resp.content;
			var pos = findPosition(sendToAlias);
			var posPage = findPosition(page);
			if (matches.length > 0) {
				//alert(pos[0] + ' ' + posPage[0]);
				var offsetLeft = pos[0] - posPage[0] - 10;
				matchDiv.style.left = offsetLeft + "px";
				matchDiv.style.top = "3em";
				matchDiv.style.display = "block";
				matchList.options.length = 0; //reset the states dropdown
				matchList.size = matches.length > 20 ? 20 : matches.length;

				for (var i = 0; i < matches.length; i++) {
					var option = new Option()
					option.text = matches[i]['alias'];
					option.value = matches[i]['alias'];
					matchList.options[matchList.options.length] =new Option(matches[i]['alias']);
				}
			} else {
				matchDiv.style.display = "none";
			}
		}
	}
}

function MatchSelected(obj) {
	var matchDiv = document.getElementById("matchDiv");
	var sendToAlias = document.getElementById("sendToAlias");
	var matches = document.getElementById("matches");
	sendToAlias.value = matches.options[matches.selectedIndex].text;
	matchDiv.style.display = "none";
	sendToAlias.focus();
}

function openChatWindow() {
	chat = window.open('/chat', 'netscapechat', 'width=800,height=600');
	chat.focus();
}

function windowNavigate(win, url) {
	win.location = url;
	win.focus();
}

ai_ie=document.all;
function ai_ge(x) { return (document.getElementById(x)); }

//function below injects content element into target element - used in non-ie browsers
function ai_ad(pid, aid) {
	var par=ai_ge(pid);
	var adpt=ai_ge(aid);
	par.appendChild(adpt);
		adpt.style.position='inherit';
}

//function to determine x-coordinate of target element
function ai_posX(obj) {
	var left=0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			left+=obj.offsetLeft;
			obj=obj.offsetParent;
		}
	} else if (obj.x) { left+=obj.x }
	return left;
}

//function to determine y-coordinate of target element
function ai_posY (obj) {
	var top=0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			top+=obj.offsetTop;
			obj=obj.offsetParent;
		}
	} else if (obj.x) { top+=obj.y }
	return top;
}

//function to assign coordinates to content element
function ai_pos(targ,hid) {
	var targA=ai_ge(targ);
	var hidB=ai_ge(hid);
	hidB.style.display='block';
	hidB.style.top=ai_posY(targA)+'px';
	hidB.style.left=ai_posX(targA)+'px';
}

var ai_posArr=new Array();
//function to reposition absolutely positioned elements
function ai_poo() {
	if (ai_ie) {
		for (var i=0; i<ai_posArr.length;i++) {
			ai_pos(ai_posArr[i].targ,ai_posArr[i].hid);
		}
	}
}

//function to apply either DOM Injection (non-IE) or reposition (IE)
function ai_inj(targ,tad){
	if (!ai_ie) {
		ai_ad(targ,tad);
	} else {
		ai_pos(targ,tad);
		ai_posArr.push({targ:targ,hid:tad});
	}
}

function showComment(commentId) {
	element = document.getElementById('comment-body' + commentId);
	element.style.display = "block";
}

function hideComment(commentId) {
	element = document.getElementById('comment-body' + commentId);
	element.style.display = "none";
}

