// admin.js

function popup(url_location, popupName, width, height, left, topAdjustment) {
	var top = getTop() + topAdjustment;
	var variables = "alwaysRaised=yes,directories=no,scrollbars=yes,width="+width+",height="+height+",left="+left+",top="+top;
 	var popupWindow = window.open (url_location, popupName, variables);
 	popupWindow.caller = this;
 	popupWindow.focus();
}

function admin_popup(url_location, name) {
	popup(url_location, name, 455, 500, 400, 100);
}

function editFaq(faqId) {
	document.location='/admin/viewManageFAQ.do?faqId='+faqId;
}
function moveFaq(faqId) {
	admin_popup('/admin/viewMoveFAQ.do?faqId='+faqId,'moveFaq');
}
function deleteFaq(faqId) {
	var deleteFlag = confirm('Are you sure you want to delete this help item?');
	if (deleteFlag) {
		var url = '/admin/processDeleteFAQ.do?faqId='+faqId+'&category='+document.manageTopicsBean.category.value;
		document.location=url;
	}
}

function faqEvent(faqId) {
	var el = document.getElementsByName('faq'+faqId)[0];
	if ( el.value == 'edit' ) {
		editFaq(faqId);
	} else if ( el.value == 'move' ) {
		moveFaq(faqId);
	} else if ( el.value == 'delete' ) {
		deleteFaq(faqId);
	}
}

function editTopic(shortName) {
	admin_popup('/admin/viewAddEditTopic.do?topicShortName='+shortName,'addEditTopic');
}
function moveTopic(shortName) {
	admin_popup('/admin/viewMoveTopic.do?topicShortName='+shortName,'moveTopic');
}

function addTopic() {
	admin_popup('/admin/viewAddEditTopic.do','addEditTopic');
}

function deleteTopic(shortName) {
	var deleteFlag = confirm('Are you sure you want to delete this topic?');
	if (deleteFlag) {
		var url = '/admin/processDeleteTopic.do?topicShortName='+shortName+'&category='+document.manageTopicsBean.category.value;
		document.location=url;
	}
}

function topicEvent(shortName, id) {
	var el = document.getElementsByName('topic'+id)[0];
	if ( el.value == 'edit' ) {
		editTopic(shortName);
	} else if ( el.value == 'delete' ) {
		deleteTopic(shortName);
	} else {
		moveTopic(shortName);
	}
}



function insertImageTag(element, imageRef) {
	var imgTag = '<img src="' + imageRef + '" border="0"/>';
	var newValue = '';
	if ( opener.document.selection ) {
		element.focus();
		sel =opener.document.selection.createRange();
		sel.text = imgTag;
	} else if ( document.getElementById ) {
		var pos = element.selectionStart;
		newValue = element.value.substring(0,pos) + imgTag + element.value.substring(pos);
		element.value = newValue;
	}
	self.close();
}

function insertLink() {
	var boxElem = document.forms[0].elements[6];
	var linkTag = '<a class="contentLink" href="'; 
	var linkURL = prompt("Copy or type link address here:", "Link URL here");
	linkTag = linkTag + linkURL;
	linkTag = linkTag + '">';
	var linkText = prompt("Enter link text here:", "Link text here");
	linkTag = linkTag + linkText + '</a><span class="contentText">';
	
	if ( document.selection ) {
		boxElem.focus();
		sel = document.selection.createRange();
		sel.text = linkTag;
	} else if ( document.getElementById ) {
		var pos = boxElem.selectionStart;
		newValue = boxElem.value.substring(0,pos) + linkTag + boxElem.value.substring(pos);
		boxElem.value = newValue;
	}
}

// Modified rollover 
function trimImage(imgName) {
	var first = imgName.indexOf('-');
	return imgName.substring(0,first);
}
function mOverAdmin(imgName)  { 
	document[imgName].src = imgPath+trimImage(imgName)+mOverExt+gif; 
}

function mOutAdmin(imgName)   { 
	document[imgName].src = imgPath+trimImage(imgName)+mOutExt+gif;  
}

function mOnAdmin(imgName)   { 
	document[imgName].src = imgPath+trimImage(imgName)+mOnExt+gif;  
}

// Check Team Active Devices
function checkTeamActiveDevices(teamId) {

	$('waiting').className = 'inlineDisplay';
	$('response').innerHTML = '';
	var parms = 'teamId=' + teamId;		
	var myAjax = new Ajax.Request( checkTeamActiveDevicesUrl, { method: 'get', parameters: parms, onComplete: showTeamDevicesResponse });
}

function showTeamDevicesResponse(originalRequest) {
		if(originalRequest.responseText.indexOf("true")!=-1) {
			var boinc_pos = originalRequest.responseText.indexOf("BOINC:");
			boinc_pos = boinc_pos + 6;
			var ud_pos = originalRequest.responseText.indexOf("UD:");
			if (boinc_pos > 0) { 
				var numBoinc = originalRequest.responseText.substring(boinc_pos, ud_pos);
				ud_pos = ud_pos + 3;
				var numUd = originalRequest.responseText.substring(ud_pos);
				var numDev = parseInt(numBoinc) + parseInt(numUd);
			} else {
				var numDev = 'Error';
			}
			$('waiting').className = 'noDisplay';
			$('response').className = 'blueTextBold';
			$('response').innerHTML = availableHTML + numDev + '&nbsp;active devices&nbsp;(' + numBoinc + '&nbsp;BOINC, ' + numUd + '&nbsp;UD)';
		} else {
			var boinc_pos = originalRequest.responseText.indexOf("BOINC:");
			boinc_pos = boinc_pos + 6;
			var ud_pos = originalRequest.responseText.indexOf("UD:");
			if (boinc_pos > 0) { 
				var numBoinc = originalRequest.responseText.substring(boinc_pos, ud_pos);
				ud_pos = ud_pos + 3;
				var numUd = originalRequest.responseText.substring(ud_pos);
				var numDev = parseInt(numBoinc) + parseInt(numUd);
			} else {
				var numDev = 'Error';
			}
			$('waiting').className = 'noDisplay';
			$('response').className = 'error';
			$('response').innerHTML = notAvailableHTML + 'only&nbsp;' + numDev + '&nbsp;active devices&nbsp;(' + numBoinc + '&nbsp;BOINC, ' + numUd + '&nbsp;UD)';
		}
}

// Find Partner
function findPartner(teamId) {

	$('waiting').className = 'inlineDisplay';
	$('response').innerHTML = '';
	var parms = 'teamId=' + teamId;		
	var myAjax = new Ajax.Request( findPartnerUrl, { method: 'get', parameters: parms, onComplete: findPartnerResponse});
}

function findPartnerResponse(originalRequest) {
	if(originalRequest.responseText.indexOf("false")> -1) { // we check for false, since "true" is not displayed when true
		$('waiting').className = 'noDisplay';
		$('searchResults').innerHTML = '<span class="error">There is no partner with the given Team ID</span>';
	} else {
		$('waiting').className = 'noDisplay';
		$('searchResults').innerHTML = originalRequest.responseText;
	}
}

