var bidID = 0;

function getFormPosition(element) {
	var left = element.offsetLeft;
	var top = element.offsetTop;
  		for (var parent = element.offsetParent; parent; parent = parent.offsetParent)	{
    		left += parent.offsetLeft;
    		top += parent.offsetTop;
  		}
	var top = top + element.height;
	return {left: left, top: top};
}

function formShow(form, position) {
	if (isShowed(form)) {
		form.style.left = ''+position.left + 'px';
		form.style.top = ''+position.top + 'px';
		form.style.visibility = "visible";
		return true;
	}
	else {
		form.style.visibility = "hidden";
		return false;
	}
}
function isShowed(form) {
	if (form.style.visibility == "hidden")
		return true;
	else
		return false;
}

function showCommentForm(project_id, id, form, user_name) {
	bidID = id;
	var position = getFormPosition($('comment'+id))
	if (!formShow($(form), position)) {
		$('comDiv').style.visibility = 'hidden';
		$('comWaitDiv').style.visibility = 'hidden';
		}
	else {
		startWait(position);
		$('comTitle').innerHTML = '<b>Internal Note about <i>' + user_name + "</i>"; $('comArea').value = '';
		getResponse(base_url + '/projects/edit-bid.php', 'get_bid_id=' + id + '&pr_id=' + project_id + '&html=1', outResult);
	}
}

function outResult(request){
	response = parseResponseComments(request);
	if (response)
		$('comArea').value = response.descr;
	stopWait();
}

function sendRequest(url, pars, resFunction) {
	var myAjax = new ajax(
		url,
		{	method: 'post',
			postBody: pars,
			onComplete: resFunction
		});
}

function getResponse(url, pars, resFunction) {
	var myAjax = new ajax(
		url,
		{	method: 'post',
			postBody: pars,
			onComplete: resFunction
		});
}

function startWait(position) {
	formShow($('comWaitDiv'), position);
}

function stopWait() {
	formShow($('comWaitDiv'), false);
}

function parseResponseComments(request) {
	if (!request.responseXML || !request.responseXML.documentElement) return false;
	var response = request.responseXML.documentElement;
	var bid_id = '', descr = '';
	if (response.getElementsByTagName('bid_id')[0].firstChild)
		bid_id = response.getElementsByTagName('bid_id')[0].firstChild.data;
	if (response.getElementsByTagName('descr')[0].firstChild)
		descr = response.getElementsByTagName('descr')[0].firstChild.data;
	if (response.getElementsByTagName('hidden')[0].firstChild)
		hidden = response.getElementsByTagName('hidden')[0].firstChild.data;
	return {bid_id: bid_id, descr: descr, hidden: hidden};
}

function saveComment(project_id, form) {
	var form = $(form);
	var comment = escape($('comArea').value);
	if (!isShowed(form)) {
		startWait(getFormPosition($('comment'+bidID)));
		sendRequest(base_url + '/projects/edit-bid.php',
					'bid_id=' + bidID +
					'&pr_id=' + project_id +
					'&descr=' + comment,
					function(){getResponse(base_url + '/projects/edit-bid.php', 'get_bid_id=' + bidID + '&pr_id=' + project_id , outSaveCommentResult);});
	}
}

function outSaveCommentResult(request){
	response = parseResponseComments(request);
	$('comArea').value = response.descr;
	if (response.descr == '')
		$('outcomment'+bidID).innerHTML = '<i></i>';
	else
		$('outcomment'+bidID).innerHTML = '<i>' + response.descr + '</i>';
	stopWait();
	$('comDiv').style.visibility = "hidden";
}

function getMessageText(action) {
	var resMes='';
	switch(action) {
		case 'not interesting':
				resMes = "Do you want to hide this bid because it is not interesting?";
				break;
		case 'contacts':
				resMes = "Do you want to hide this bid because contact details are posted?";
				break;
		case 'advertising':
				resMes = "Do you want to hide this bid because it is advertising or spam?";
				break;
		case 'fake':
				resMes = "Do you want to hide this bid because it is fake?";
				break;
		case 'harassment':
				resMes = "Do you want to hide this bid because it contains obscenities?";
				break;
		case 'unhide':
				resMes = "Do you want to make this bid visible again?";
				break;
		case 'winner':
				resMes = "Do you want to choose this bid as the winner?";
				break;
		case 'task description':
				resMes = "Do you want to request a task description from this bidder?";
				break;
	}
	return resMes;
}

function changeBidAction(project_id, bid_id, element, action) {
	var newState = $(element).value;
	if( newState != '' && confirm(getMessageText(newState))) {
		if (newState == 'winner') {
			window.location = base_url + '/buyers/pick.php?id=' + project_id + '&winner_bid=' + bid_id;
		} else
		if (newState == 'task description') {
			window.location = base_url + '/task-description/buyers/new-request.php?id=' + project_id + '&bidId=' + bid_id;
		}
		else if (newState) {
			$(element).disabled = true;
			sendRequest(base_url + '/projects/edit-bid.php',
					'bid_id=' + bid_id +
					'&pr_id=' + project_id +
					'&hide_reason=' + newState +
					'&showhidden=' + action +
					'&url=' + cur_url,
					function(){getResponse(base_url + '/projects/edit-bid.php', 'get_bid_id=' + bid_id + '&pr_id=' + project_id , hideBidOnAction);});
		}
	}
	else
	{
		$(element).options[0].selected = true;
	}
}

function hideBidOnAction(request) {
	response = parseResponseComments(request);
	if (response) {
		if (response.hidden != showhidden) {
			hideBidRow(response.bid_id);
			if (showhidden) hidden_num--;
				else hidden_num++;
			setHiddenTabText(hidden_num);
			addNoBidsRow();
		}
	}
}

function hideBidRow(id) {
	if ($('bid'+id)) Element.remove('bid'+id);
}

function addNoBidsRow() {
		    if (showhidden) bids_type = "hidden ";
		    	else bids_type = "visible ";
			if ($('bids').childElementCount==0) {
			    $('bids').innerHTML = "&nbsp;&nbsp;&nbsp; <small>There are currently no " + bids_type + "bids</small>";
			}

}

function setHiddenTabText(number) {
	$('hiddenCount').innerHTML = 'Hidden Bids (' + number + ')';
}

