function showStackTrace(trace)
{
	var trace = Url.decode(trace);
	trace = trace.replace(/\n/g, "<br/>");
	if(trace == 0 || trace == '' || trace == null)
		trace = "We have no stack trace for this submission in the database." ;
	alertPopUp("Stack trace", '<div style="text-align: left;padding:10px 0px 10px 10px; font-weight:bold; text-align:venter; color:#333333;">' + trace + '</div>');
}

function changeTitle(tab, oldTitle, link)
{
	oldTitle = Url.decode(oldTitle);
	var fields = '<div class="popUpRow">Insert new title of the challenge:</div>'
				+ '<div class="popUpRow"><input type="hidden" name="o" value="title"/><input type="hidden" name="tab" value="' + tab + '"/>'
				+ '<input type="text" name="title" style="width:200px" value="' + oldTitle + '"/></div>';
	formPopUp(link, 'Change title', fields);
}

function evalBothChanged(submit){
	if($('#evalBothCheck').attr('checked'))
	{
		if(!submit)
		{
			document.getElementById('evalSingleDiv').style.display = 'block';
			document.getElementById('evalDouble').style.display = 'none';
		}
		else 
			confirmPopUpFull("$('#singleEvalForm').submit();", "$('#evalBothCheck').attr('checked', false);", "Warning",
					"Preliminary evaluation procedure will overwrite the final one. Are you sure you want to continue?");
	} else {
		document.getElementById('evalSingleDiv').style.display = 'none';
		document.getElementById('evalDouble').style.display = 'block';	
	}
}

function datasetBothChanged(){
	
	if(document.getElementById('datasetBothCheck').checked){			
			confirmPopUpFull(" document.getElementById('datasetSingleDiv').style.display = 'block';document.getElementById('datasetDouble').style.display = 'none'; $('#datasetBothCheck').attr('checked', true);	$('#singleDatasetForm').submit(); $('#mainPopUp').remove();$('#popUpBg').remove();", 
					"$('#datasetBothCheck').attr('checked', false);", "Warning",
					"Preliminary dataset will overwrite the final one. Are you sure you want to continue?");
	} else {
		$('#datasetBothCheck').attr('checked', false);
		document.getElementById('datasetSingleDiv').style.display = 'none';
		document.getElementById('datasetDouble').style.display = 'block';	
	}
}


function timeBothChanged(){
		
	if(document.getElementById('timeBothCheck').checked){
		document.getElementById('timeSingle').style.display = 'none';
		document.getElementById('timeDouble').style.display = 'block';
		
			confirmPopUpFull("$('#timeoutOption').val('singleTimeout'); document.getElementById('timeSingle').style.display = 'block';document.getElementById('timeDouble').style.display = 'none'; $('#mainPopUp').remove();$('#popUpBg').remove();",
					"$('#timeBothCheck').attr('checked', false); $('#timeoutOption').val('doubleTimeout'); document.getElementById('timeSingle').style.display = 'none'; document.getElementById('timeDouble').style.display = 'block';	", 
					"Warning",
					"Preliminary timeout will overwrite the final one. Are you sure you want to continue?");		
	} else {
		document.getElementById('timeSingle').style.display = 'none';
		document.getElementById('timeDouble').style.display = 'block';
		$('#timeoutOption').val('timeout');	
	}
}

function timeBothChanged_old(submit){
	if(document.getElementById('timeBothCheck').checked){
		if(!submit){
			document.getElementById('timeSingle').style.display = 'block';
			document.getElementById('timeDouble').style.display = 'none';
		} else
			confirmPopUpFull("$('#timeoutOption').val('singleTimeout'); $('#timeoutForm').submit();",
					"$('#timeBothCheck').attr('checked', false);", "Warning",
					"Preliminary timeout will overwrite the final one. Are you sure you want to continue?");
	} else {
		document.getElementById('timeSingle').style.display = 'none';
		document.getElementById('timeDouble').style.display = 'block';	
	}
}

function editTrack(trackName){
	var plains = $("#" + trackName + "Row .plain");
	var inputs = $("#" + trackName + "Row .input");
	if(plains.hasClass("hidden")){
		plains.removeClass("hidden");
		inputs.addClass("hidden");
	} else {
		inputs.removeClass("hidden");
		plains.addClass("hidden");
	}
}

function publish(status)
{
	var msg = "";
	if(status != 'New')
		confirmPopUp("document.getElementById('publishForm').submit(); document.getElementById('messageBox').innerHTML = '';", "Warning:", 
				"The challenge after being published, will be visible to all users.\n\nDo you want to proceed?");
	else
		document.getElementById('publishForm').submit();
	document.getElementById('messageBox').innerHTML = msg;
}

function deleteChallenge(status)
{
	var msg = "";
	if(status != 'New')
		confirmPopUp("document.getElementById('deleteForm').submit(); document.getElementById('messageBox').innerHTML = ''; ", "Warning:", 
				"Are you sure you want to delete this challenge?");
	else
		document.getElementById('deleteForm').submit();
	document.getElementById('messageBox').innerHTML = msg;
}

function unpublish()
{
	document.getElementById('unpublishForm').submit();
}

//parsing from YYYY-MM-DD HH:MM:SS date format into Date javascript object
function parseDate(string)
{
	var dateArr = string.replace(/-/g, '/').split(' ');
	if(dateArr.length == 1)
		var timeArr = new Array(0, 0, 0);
	else
		var timeArr = dateArr[1].split(':');
	var date = new Date(dateArr[0]);
	if(isNaN(date.getTime()))
		return null;
	if(timeArr.length > 0)
		date.setHours(timeArr[0]);
	if(timeArr.length > 1)
		date.setMinutes(timeArr[1]);
	if(timeArr.length > 2)
		date.setSeconds(timeArr[2]);
	if(isNaN(date.getTime()))
		return null;
	return date;
}

function changeIcon(url, oldVal)
{
	html = '<div class="popUpRow">File name from Repository:</div>';
	html += '<div class="popUpRow" style="text-align:center;"><input type="hidden" name="o" value="icon"/><input type="text" name="icon" value="' + oldVal + '" style="width:210px;" /></div>';
	formPopUp(url, "Change icon", html);
}

function changePrize(url, prizeVal, prizeCur, trackName, tab, list)
{
	var html = '<div class="popUpRow" style="text-align:center;"><div style="width:58%;float:left;text-align:right;overflow:auto;">';
	html += '<input type="hidden" name="o" value="prize"/><input type="hidden" name="tr" value="' + trackName + '"/><input type="hidden" name="tab" value="' + tab + '"/>';
	html += '<input type="text" name="value" value="' + prizeVal + '" style="width: 100px;"/></div>';
	html += '<div style="width:42%;float:left;overflow:auto;"><select name="currency">';
	$.each(list, function(i, el){
		if(el == prizeCur)
			html += '<option selected="1">' + el + '</option>';
		else
			html += '<option>' + el + '</option>';
	});
	html += '</select></div></div>';
	formPopUp(url, "Change prize", html);
	$('#popupCurrency').autocomplete(list, {
		width: 0,
		minChars: 0,
		scrollHeight: 240,
		max: 239,
		formatItem: function(row) { return row[0]; }
	});
}

function addNewMember(element)
{	
	var memberList = document.getElementById('membersList');
	
	var newDiv = document.createElement('div');
	newDiv.setAttribute('class','simpleInputContainer');
	newDiv.setAttribute('style','float:none;width:250px;overflow:auto;display:block;');
	
	var newDivTxt = document.createElement('div');
	newDivTxt.setAttribute('style','float:left;width:20px;overflow:auto;display:block; padding-top:5px;');
	
	var newTxt = document.createTextNode((memberList.childNodes.length/2+1)+'. ');
	
	newDivTxt.appendChild(newTxt);
	
	var newInput = document.createElement('input');
	newInput.setAttribute('class','simpleInput');
	newInput.setAttribute('type','text');
	newInput.setAttribute('name','member_'+(memberList.childNodes.length/2+1));
	
	newDiv.appendChild(newInput);
	
	memberList.appendChild(newDivTxt);
	memberList.appendChild(newDiv);
}
