productDropDownSelected = 0;

//Hover functions
function hoverOn(idIn)
{
	$(idIn).src = site_url + "/_images/buttons/" + site_language + "/" + idIn + "2.gif";
}

function hoverOff(idIn)
{
	$(idIn).src = site_url + "/_images/buttons/" + site_language + "/" + idIn + ".gif";
}

//Set visibility of table row on statistics page
function switchTrVisibility(idIn)
{
	if(document.getElementById(idIn).style.display == "none"){
		document.getElementById(idIn).style.display = "block";
		document.getElementById(idIn).style.display = "visible";
	}else{
		document.getElementById(idIn).style.display = "none";
		document.getElementById(idIn).style.display = "hidden";
	}
}

//Edit a post's content
function editPost(post_id_in)
{
	var readOnlyText = "posttext_" + post_id_in;
	var editText = "editpost_" + post_id_in;
	
	if($(readOnlyText).style.display == "block"){
		$(readOnlyText).style.display = "none";
		$(readOnlyText).style.visibility = "hidden";
	
		$(editText).style.display = "block";
		$(editText).style.visibility = "visible";
	}else{
		$(readOnlyText).style.display = "block";
		$(readOnlyText).style.visibility = "visible";
	
		$(editText).style.display = "none";
		$(editText).style.visibility = "hidden";
	}
}

function doEdit(post_id_in)
{
	var readOnlyText = "posttext_" + post_id_in;
	var editText = "editpost_" + post_id_in;
	var editTextField = "edittext_" + post_id_in;
	
	var readOnlyContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$(readOnlyText).innerHTML = readOnlyContent;
	$(readOnlyText).style.display = "block";
	$(readOnlyText).style.visibility = "visible";
	
	$(editText).style.display = "none";
	$(editText).style.visibility = "hidden";

	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'editPost', 'newText': $(editTextField).value, 'postId': post_id_in}, onComplete: postEdited});
}

function postEdited(transporter)
{
	var json = transporter.responseText.evalJSON();
	var post = json['post_id'];
	var new_text = json['new_text'];
	
	var readOnlyText = "posttext_" + post;
	$(readOnlyText).innerHTML = new_text;
}


//Assign ticket to an admin
function assignTicket(ticket_id_in)
{
	var userId = $("assignTicketTo").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignTicketSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignTo', 'userId': userId, 'ticketId': ticket_id_in}, onComplete: ticketAssigned});
	
}

function ticketAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignTicketSymbol").innerHTML = meahwhileContent;
	
	if(json['reply'] == "yes"){
		$("adminReplyForm").style.display = "block";
		$("adminReplyForm").style.visibility = "visible";
		$("adminCommentForm").style.display = "none";
		$("adminCommentForm").style.visibility = "hidden";
	}else{
		$("adminReplyForm").style.display = "none";
		$("adminReplyForm").style.visibility = "hidden";
		$("adminCommentForm").style.display = "block";
		$("adminCommentForm").style.visibility = "visible";
	}
}

//Set a ticket's priority
function assignPriority(ticket_id_in)
{
	var prio = $("assignPriority").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignPrioritySymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignPriority', 'prio': prio, 'ticketId': ticket_id_in}, onComplete: priorityAssigned});
	
}

function priorityAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignPrioritySymbol").innerHTML = meahwhileContent;
}

//Set a reminder time for a ticket
function setReminder(ticket_id_in)
{
	var reminderTime = $("setReminder").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("setReminderSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'setReminder', 'reminderTime': reminderTime, 'ticketId': ticket_id_in}, onComplete: reminderSet});
	
}

function reminderSet(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("setReminderSymbol").innerHTML = meahwhileContent;
}

//Set snooze for a reminder
function setReminderSnooze(ticket_id_in)
{
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("setReminderSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'setReminderSnooze', 'ticketId': ticket_id_in}, onComplete: reminderSnoozeSet});
	
}

function reminderSnoozeSet(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		$("reminderSnoozeButton").disabled = "disabled";
		$("reminderStopButton").disabled = "disabled";
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("setReminderSymbol").innerHTML = meahwhileContent;
}

//Stop a reminder
function setReminderStop(ticket_id_in)
{
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("setReminderSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'setReminderStop', 'ticketId': ticket_id_in}, onComplete: reminderStopSet});
	
}

function reminderStopSet(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		$("reminderSnoozeButton").disabled = "disabled";
		$("reminderStopButton").disabled = "disabled";
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("setReminderSymbol").innerHTML = meahwhileContent;
}

//Assign store to a ticket
function assignStore(ticket_id_in)
{
	var store = $("assignStore").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignStoreSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignStore', 'store': store, 'ticketId': ticket_id_in}, onComplete: storeAssigned});
	
}

function storeAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignStoreSymbol").innerHTML = meahwhileContent;
}

//Assign question category to a ticket
function assignSoftware(ticket_id_in)
{
	var software = $("assignSoftware").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignSoftwareSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignSoftware', 'software': software, 'ticketId': ticket_id_in}, onComplete: softwareAssigned});
	
}

function softwareAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
		$("assignQuestion").innerHTML = "";
		var myAjax = new Ajax.Updater('assignQuestion', site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getQuestions', 'softwareId': json['softwareId']}, insertion: Insertion.Top});
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignSoftwareSymbol").innerHTML = meahwhileContent;
}

//Assign question to a ticket
function assignQuestion(ticket_id_in)
{
	var question = $("assignQuestion").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignQuestionSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignQuestion', 'question': question, 'ticketId': ticket_id_in}, onComplete: questionAssigned});
	
}

function questionAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignQuestionSymbol").innerHTML = meahwhileContent;
}

//Assign product to a ticket
function assignProduct(ticket_id_in)
{
	var product = $("assignProduct").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignProductSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignProduct', 'product': product, 'ticketId': ticket_id_in}, onComplete: productAssigned});
	
}

function productAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignProductSymbol").innerHTML = meahwhileContent;
}

//Assign time spent on a ticket
function assignTime(ticket_id_in)
{
	var minutes = $("assignTime").value;
	var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
	
	$("assignTimeSymbol").innerHTML = meahwhileContent;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'assignTime', 'minutes': minutes, 'ticketId': ticket_id_in}, onComplete: timeAssigned});
	
}

function timeAssigned(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['result'] == "success"){
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/check.png\" />";
	}else{
		var meahwhileContent = "<img src=\"" + site_url + "/_images/graphics/error.png\" />";
	}
	
	$("assignTimeSymbol").innerHTML = meahwhileContent;
}

//Set standard replies
function getStandardReply()
{
	var replyId = $("standardReplies").value;
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getReply', 'replyId': replyId}, onComplete: fillStandardReply});
}

function fillStandardReply(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	$("replyMessageBox").value = json['replyText'];
}

//Prevent people from being logged out when leaving a ticket page open for a long time
function keepSessionAlive()
{
	var aRandomNumber = Math.random();
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'keepAlive', 'randomStuff': aRandomNumber}, onComplete: sessionAliveComplete});
}

function sessionAliveComplete(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	//Currently we don't need to do anything here,
	//so this function is reserved for future use
}

//Show/hide ticket popup on statistics page
function flipTickets(idIn, storeIdIn, startTimeIn, endTimeIn)
{
	if(document.getElementById(idIn).style.display == "none"){
		document.getElementById(idIn).style.display = "block";
		document.getElementById(idIn).style.visibility = "visible";
		document.getElementById(idIn).innerHTML = "<div style=\"text-align:center; padding:15px;\"><img src=\"" + site_url + "/_images/graphics/spinner.gif\" /></div>";
		var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getStatTickets', 'questionId': idIn, 'storeId': storeIdIn, 'startTime': startTimeIn, 'endTime': endTimeIn}, onComplete: flipTicketsComplete});
	}else{
		document.getElementById(idIn).style.display = "none";
		document.getElementById(idIn).style.visibility = "hidden";
	}
}

function flipTicketsComplete(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	document.getElementById(json['id']).innerHTML = json['ticket_links'];
}

//Get user information for ticket page
function searchUserInfo(searchStringIn, searchTypeIn)
{
	var imagePosition = $("customerInformationImage");
	var offsetLeft = imagePosition.offsetLeft;
	var offsetTop = imagePosition.offsetTop;
	
	while (imagePosition = imagePosition.offsetParent){  
		offsetLeft += imagePosition.offsetLeft;  
		offsetTop += imagePosition.offsetTop;
		
		if(imagePosition.offsetLeft != 0){
			var lastLeft = imagePosition.offsetLeft;
		}
	}
	
	var infoBoxLeft = offsetLeft - lastLeft + 15;
	var infoBoxTop = offsetTop + 15;
	
	if($("customerInformationBox").style.display == "none"){
		$("customerInformationBox").style.top = infoBoxTop + "px";
		$("customerInformationBox").style.left = infoBoxLeft + "px";
		$("customerInformationBox").innerHTML = "<img src=\"" + site_url + "/_images/graphics/spinner.gif\" />";
		$("customerInformationBox").style.display = "block";
		$("customerInformationBox").style.visibility = "visible";
		
		if(searchTypeIn == "mail"){
			var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getCustomerId', 'searchType': searchTypeIn, 'customerEmail': searchStringIn}, onComplete: searchUserInfoComplete});
		}else{
			$("customerInformationBoxSearchFromOrder").style.display = "none";
			$("customerInformationBoxSearchFromOrder").style.visibility = "hidden";
			var orderId = $("searchCusterFromInfoOrderId").value;
			var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getCustomerId', 'searchType': searchTypeIn, 'orderId': orderId}, onComplete: searchUserInfoComplete});
		}
	}else{
		$("customerInformationBox").style.display = "none";
		$("customerInformationBox").style.visibility = "hidden";
	}
}

function searchUserInfoComplete(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['user_id'] == 0){
		$("customerInformationBox").innerHTML = "";
		$("customerInformationBox").style.display = "none";
		$("customerInformationBox").style.visibility = "hidden";
		
		var imagePosition = $("customerInformationImage");
		var offsetLeft = imagePosition.offsetLeft;
		var offsetTop = imagePosition.offsetTop;
	
		while (imagePosition = imagePosition.offsetParent){  
			offsetLeft += imagePosition.offsetLeft;  
			offsetTop += imagePosition.offsetTop;
		
			if(imagePosition.offsetLeft != 0){
				var lastLeft = imagePosition.offsetLeft;
			}
		}
	
		var infoBoxLeft = offsetLeft - lastLeft + 15;
		var infoBoxTop = offsetTop + 15;
		
		if($("customerInformationBoxSearchFromOrder").style.display == "none"){
			$("customerInformationBoxSearchFromOrder").style.top = infoBoxTop + "px";
			$("customerInformationBoxSearchFromOrder").style.left = infoBoxLeft + "px";
			$("customerInformationBoxSearchFromOrder").style.display = "block";
			$("customerInformationBoxSearchFromOrder").style.visibility = "visible";
		}else{
			$("customerInformationBoxSearchFromOrder").style.display = "none";
			$("customerInformationBoxSearchFromOrder").style.visibility = "hidden";
		}
	}else{
		showCustInfoBox(json['user_id']);
	}
}

function showCustInfoBox(customerIdIn)
{
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getCustomerInfo', 'customerId': customerIdIn}, onComplete: custInfoboxComplete});
}

function custInfoboxComplete(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	$("customerInformationBox").innerHTML = json['html_return'];
}

//Show/hide order content rows in customer information box
function flipOrderContent(orderIdIn)
{
	var orderBox = "order_content_" + orderIdIn;
	
	if($(orderBox).style.display == "none"){
		$(orderBox).style.display = "block";
		$(orderBox).style.visibility = "visible";
	}else{
		$(orderBox).style.display = "none";
		$(orderBox).style.visibility = "hidden";
	}
}

//Search for products in search page form
function doAjaxProductSearch(e) {
	if (!e) var e = window.event;
	var key = e.keyCode;
	
	if($('searchTicketProductField').value.length >= 3){
		//User hit "esc", hide box
		if(key == 27){
			$('searchProductAjaxBox').hide();
			productDropDownSelected = 0;
		//User hit "return"
		}else if(key == 13){
			return false;
		
		//User hit "arrow up"
		}else if(key == 38){
			return false;
			
		//User hit "arrow down"
		}else if(key == 40){
			return false;
			
		//User hit other key, 
		}else{
			var searchString = $('searchTicketProductField').value;
			var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getProductsList', 'searchString': searchString}, onComplete: ajaxProductSearchUpdate});
			$('searchProductAjaxBox').show();
			productDropDownSelected = 0;
		}
	}else{
		$('searchProductAjaxBox').hide();
		productDropDownSelected = 0;
	}
}

function ajaxProductSearchUpdate(transporter)
{
	var json = transporter.responseText.evalJSON();

	if(json['hit_count'] > 0){
		$("searchProductAjaxBox").innerHTML = json['html_return'];
		$('searchProductAjaxBox').show();
	}else{
		$("searchProductAjaxBox").innerHTML = "";
		$('searchProductAjaxBox').hide();
		productDropDownSelected = 0;
	}
}

function setProductSearchOption(prodNameIn, prodIdIn)
{
	$("searchTicketProductField").value = prodNameIn;
	$("searchTicketProductIdField").value = prodIdIn;
	
	$("searchProductAjaxBox").innerHTML = "";
	$('searchProductAjaxBox').hide();
	productDropDownSelected = 0;
}

//Hover functions for menu
function dropDownHoverOn(numberIn)
{
	$("dropdownMenuItem" + numberIn).style.backgroundColor = "#DDDDDD";
	$("dropdownMenuItem" + numberIn).style.cursor = "pointer";
}

function dropDownHoverOff(numberIn)
{
	$("dropdownMenuItem" + numberIn).style.backgroundColor = "#FFFFFF";
}

//Functions to find and handle tickets that are still open, but have been read
function findOldReadTickets()
{
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getOldReadTickets'}, onComplete: closeReadTickets});
}

function closeReadTickets(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['num_of_tickets'] > 0){
		if(confirm(lang_you_have + " " + json['num_of_tickets'] + " " + lang_read_manage, lang_read_headline)){
			var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'closeOldReadTickets'}, onComplete: closedReadTickets});
		}else{
			window.location.reload();
		}
	}
}

function closedReadTickets(transporter)
{
	var json = transporter.responseText.evalJSON();
	if(json['result'] == "ok"){
		window.location.reload();
	}
}

function findOldUnreadTickets()
{
	var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'getOldUnreadTickets'}, onComplete: closeUnreadTickets});
}

function closeUnreadTickets(transporter)
{
	var json = transporter.responseText.evalJSON();
	
	if(json['num_of_tickets'] > 0){
		if(confirm(lang_you_have + " " + json['num_of_tickets'] + " " + lang_unread_manage, lang_unread_headline)){
			var myAjax = new Ajax.Request(site_url + '/ajax/tickets.php', {method: 'post', parameters: {'do': 'closeOldUnreadTickets'}, onComplete: closedUnreadTickets});
		}else{
			window.location.reload();
		}
	}
}

function closedUnreadTickets(transporter)
{
	var json = transporter.responseText.evalJSON();
	if(json['result'] == "ok"){
		window.location.reload();
	}
}
