﻿// 2009 NVMS, Inc.
// J. Scott King (www.nvms.com - sking@nvms.com)

function DoLogin() {
    var email = GetMyElement("email");
    var name = GetMyElement("my_name");

	if(name != "")
		GlobalAjax.UserLogin(email, name, DoLoginCallback);
	else	
		SetMyHTML("err_text", "Please enter your name and email first...");
}

function DoLoginCallback(res) {
    var e = res.value;
    var msg = e.split("|");
    var error = msg[0];
    var errmsg = msg[1];

    if (error == 0) {
        SetMyHTML("LoginForm", errmsg);
    }
    else {
        SetMyHTML("err_text", errmsg);
    }
    
}

function Validate_Tickets(){
	var pass = true;
	var ChkFields = new Array('CustomerName','CustomerEmail','TicketType','Department','Priority','Subject','Issue','SecureKey');
	// grab all input fields to validate
	var ip = document.getElementsByTagName('input');
	for (var i=0;i < ChkFields.length; i++){
	//Find Element
	var ele = document.getElementById(ChkFields[i]);
	val = ele.value;
		if(val == '')
		{
			ele.style.backgroundColor = '#FFFF00';
			pass = false;
		}
		else
		{
			ele.style.backgroundColor = '';
		}
	}
	
	if(!pass)
	{
		SetMyHTML('tick_err', 'Please complete hi-lighted fields before saving...');
	}
		return pass;
}

// Ticket Details ////////////////////////////////////////////////////////////////////////////////////
function SortRows_Tickets(){
	if(document.getElementById('Table1')){
		tigra_tables('Table1',1,0, '#DFE1E3', '#F8F8F8', '#FFFFCC', '#FFFFCC');
		var st = new SortableTable( document.getElementById('Table1'), 
		['None','CaseInsensitiveString','CaseInsensitiveString','CaseInsensitiveString','CaseInsensitiveString','None','CaseInsensitiveString'] );
	}
}

function TicketDetail(tID)
{
    if (tID >= 1) {
        MyTickets.ListTicketHeader(tID, TicketDetailCallback);
        SetMyElement('MyTicketID', tID);
    }
}

function TicketDetailCallback(res)
{
	var d = document.getElementById('MyTicketList');
	res.value == null || res.error != null ? d.innerHTML = res.error.Message + ' - ' + res.value: 
	d.innerHTML = res.value;
}

function GetMyTicketList()
{
	var e = GetMyElement("LoginEmail");
	MyTickets.ListUserTickets(e, '', TicketDetailCallback);
}

function DoReply() {
    var tID = GetMyElement('MyTicketID');
    ShowAlertManual('TicketReply');
    MyTickets.GetTickets(tID, FillReplyForm);
}

function FillReplyForm(res) {
    if (res.value == null || res.error != null) return false;
    var dTable = res.value.Tables[0].Rows[0];
    SetMyElement('TicketID', escapeNull(dTable.TicketID, 0));
    SetMyElement('ReplyEmail', dTable.Email);
    SetMyElement('ReplyText', '');
    SetMyElement('TicketSubject', '[#TK:' + dTable.TicketID + '] Re: ' + escapeNull(dTable.Subject, ''));
    SetMyHTML('TickReplySub', '<b>TK-' + dTable.TicketID + '</b>');
    SetMyHTML('reply_err', '');
}

function SendReply() {
    if (confirm("Are you sure you want to send and post this reply ticket?")) {
        var cd = MyTickets.GetTicketReplyClass().value;
        cd.TicketID = GetMyElement('MyTicketID');
        cd.Status = GetMyElement('Status');
        cd.PostByUser = GetMyElement('LoginEmail');
        cd.PostByEmail = GetMyElement('LoginEmail');
        cd.MailSubject = GetMyElement('TicketSubject');
        cd.MailTo = GetMyElement('ReplyEmail');
        cd.MailCC = GetMyElement('CCTo');
        cd.Reply = GetMyElement('ReplyText');
        
        //Pass class to server, Save data
        MyTickets.Process_TicketReply(cd, SendReplyCallback);
    }
}

function SendReplyCallback(res) {
    if (res.value >= 1) {
        SetMyHTML('reply_err', 'Your reply was sent successfully!');
    }
    else {
        SetMyHTML('reply_err', res.value);
    }
}

function CloseReply() {
    HideAlertManual('TicketReply');
    TicketDetail(GetMyElement("MyTicketID"));
}
