var actualVisible = 'loading';

function showSupportCenter( isLoggedIn ) {
  if(isLoggedIn) {
    getTickets();
    showAndHideObject(document.getElementById('ticketOverviewMask'),document.getElementById(actualVisible));
  } else {
    showAndHideObject(document.getElementById('loginMask'),document.getElementById(actualVisible));
  }
  document.getElementById('newTicketMask').style.visibility='visible';
  document.getElementById('newTicketMask').style.position='static';
};

function getTickets( order, otype, status ) {
  
  if(!status) status = '0';
  if(!order) order = 'id';
  if(!otype) otype = 'DESC';
  AjaxCallbackRequest('/scAjax.php', { method:'POST', parameter:'type=scGetTickets&status=' + status + '&order=' + order + '&otype=' + otype, callbackMethod:"getTicketsCallback( returnObject )" });
};

function getTicketsCallback( returnObject ) {
  json = JSON.decode(returnObject);
  
  var tmp = "";
  
  document.getElementById('scTicketOverviewWaiter').style.visibility = 'hidden';
  document.getElementById('scTicketOverviewWaiter').style.position = 'absolute';
  
  if(json.length == 0) {
    document.getElementById('noTicketsText').style.visibility = 'visible';
    document.getElementById('noTicketsText').style.position = 'static';
  }
  
  var bugimg = '';
  
  for (i=0;i<json.length;i=i+1) {
    bugimg = 'bug';
    if(json[i]) {
      if(json[i].status == '1') bugimg = 'folder_bug';
      tmp = tmp + "<tr onClick='showBug(\""+json[i].id+"\");return false;' onmouseover='this.style.cursor = \"pointer\";style.backgroundColor=\"#FBC3AF\"' onmouseout='style.backgroundColor=\"#ffffff\"'><td class='td_message_content' valign='top'><img src='http://static.friendsgossip.com/templates/default/global/images/icons/ffm/"+bugimg+".png'></td><td class='td_message_content' valign='top'>#"+json[i].id+"</td><td class='td_message_content' valign='top'>"+json[i].created+"</td><td class='td_message_content' valign='top'>"+json[i].subject+"</td>";
      if(us == '9') tmp = tmp + "<td class='td_message_content' valign='top'>"+json[i].department+"</td><td class='td_message_content' valign='top'>"+json[i].priority+"</td><td class='td_message_content' valign='top'>";
      if(json[i].userInfos.link != "0") {
    	  tmp = tmp + "<a href='/profile.html?view="+json[i].link+"'>"+json[i].userInfos.name+"</a></td>";
      } else {
    	  tmp = tmp + json[i].userInfos.name+"</td>";    	  
      }
      tmp = tmp + "</tr>";
    }
  }
  var table = document.getElementById('ticketOverviewTableBody');
  table.innerHTML = tmp;
  
};

function showBug( id ) {
  AjaxCallbackRequest('/scAjax.php', { method:'POST', parameter:'type=scGetTicketDetails&id=' + id.replace(/^\s+/,""), callbackMethod:"getTicketDetailsCallback( returnObject )" });
};

function getTicketDetailsCallback( returnObject ) {
  json = JSON.decode(returnObject);
  var answers = json.answers;
  
  document.getElementById('scTD_id').innerHTML = json.id;
  document.getElementById('scTD_status').innerHTML = json.status;
  document.getElementById('scTD_priority').innerHTML = json.priority;
  document.getElementById('scTD_department').innerHTML = json.department;
  document.getElementById('scTD_created').innerHTML = json.created;
  if(json.user_link != '0') {
    document.getElementById('scTD_userInfo_name').innerHTML = '<a href="/profile.html?view='+json.user_link+'">'+json.user_name+'</a>';
  } else {
    document.getElementById('scTD_userInfo_name').innerHTML = json.user_name;
  }
  document.getElementById('scTD_userInfo_email').innerHTML = json.email_address;
  document.getElementById('scTD_userInfo_phone').innerHTML = json.user_phone;
  document.getElementById('scTD_subject').innerHTML = json.subject;
  document.getElementById('scTD_ReplyFormTicketID').value = json.id;
  
  document.getElementById('scTD_lastResponse').innerHTML = json.lastResponse;
  
  if(json.supporter.name && document.getElementById('scTD_supporter')) {
	if(json.supporter.name == "-") {
		document.getElementById('scTD_supporter').innerHTML = "-";
	} else {
		document.getElementById('scTD_supporter').innerHTML = "<a href='/profile.html?view="+json.supporter.link+"'>"+json.supporter.name+"</a>";
	}
  }
  
  if(json.statusNumber == '1' && document.getElementById('scTDreplyDiv')) {
    document.getElementById('scTDreplyDiv').disabled = true;
  } else {
    document.getElementById('scTDreplyDiv').disabled = false;
  }
  
  
  var tmp = '<table cellspacing="0" cellpadding="1" width="100%" border=0><tr><td><b>'+document.getElementById('scTD_userInfo_name').innerHTML+' '+json.created+'</b></td></tr><tr><td>'+json.content+'</td></tr></table>';
  
  var tmpName='';
  for(i=0;i<answers.length;i=i+1) {
    if(answers[i].user_link == "0") {
      tmpName = answers[i].user_name;
    } else {
      tmpName = '<a href="/profile.html?view='+answers[i].user_link+'">'+answers[i].user_name+'</a>';
    }
    
    tmp = tmp + '<table style="margin-top:10px;padding-top:4px;border-top:1px solid #999;" cellspacing="0" cellpadding="1" width="100%" border=0><tr><td><b>'+tmpName+' '+answers[i].created+'</b></td></tr><tr><td>'+answers[i].content+'</td></tr></table>';
  }
    
  document.getElementById('ticketthread').innerHTML = tmp;
  
  showAndHideObject(document.getElementById('ticketDetailMask'),document.getElementById('ticketOverviewMask'));
  showAndHideObject(document.getElementById('ticketDetailMask'),document.getElementById('loginMask'));
};

function scSelectTicket( userName, userLink ) {
	var ticketId = document.getElementById('scTD_id').innerHTML;
	
	var parameters = '&type=scUpdateTicketAttribute&attribute=supporter&ticketId='+ticketId;
	AjaxCallbackRequest('/scAjax.php', { method:'POST', parameter: parameters });
	
	document.getElementById('scTD_supporter').innerHTML = "<a href='/profile.html?view="+userLink+"'>"+userName+"</a>";
}

function scNewTicketSubmit( formId ) {
  var form = document.getElementById(formId);
  
  formSerialized = formSerialize( form );
  
  var error = false;
  
  if(formId == 'replyform') {
    if(document.getElementById('scTDresponse').value != '') {
      showAndHideObject(document.getElementById('scDreplyformWait'),document.getElementById('scTDreplyformButtons'));
    } else {
      return false;    
    }
  } else if( formId == 'scNewTicket') {
    if(document.getElementById('scNewTicketName').value != '') {
      document.getElementById('scNewTicketName').style.backgroundColor = '#FFF';
    } else {
      document.getElementById('scNewTicketName').style.backgroundColor = '#FBC3AF';
      error = true;
    }
    if(document.getElementById('scNewTicketEmail').value != '' && scCheckEMail(document.getElementById('scNewTicketEmail').value) == true) {
      document.getElementById('scNewTicketEmail').style.backgroundColor = '#FFF';
    } else {
      document.getElementById('scNewTicketEmail').style.backgroundColor = '#FBC3AF';
      error = true; 
    }
    if(document.getElementById('scNewTicketSubject').value != '') {
      document.getElementById('scNewTicketSubject').style.backgroundColor = '#FFF';
    } else {
      document.getElementById('scNewTicketSubject').style.backgroundColor = '#FBC3AF';
      error = true; 
    }
    if(document.getElementById('scNewTicketMessage').value != '' && !error) {
      document.getElementById('scNewTicketMessage').style.backgroundColor = '#FFF';
    } else {
      document.getElementById('scNewTicketMessage').style.backgroundColor = '#FBC3AF';
      error = true;    
    }
  }
  
  if(error == true && formId == 'scNewTicket') {
    return false;
  } else if( formId == 'scNewTicket') {
    showAndHideObject(document.getElementById('scNewTicketWait'),document.getElementById('scNewTicketButtons'));
  }
  
  var parameters = formSerialized + '&type=scSaveTicket';
  
  AjaxCallbackRequest('/scAjax.php', { method:'POST', parameter: parameters, callbackMethod:"scNewTicketSubmitCallback( returnObject, '"+formId+"' )" });
};

function scNewTicketSubmitCallback( returnObject, formId ) { 

  if(returnObject == '0') {
    alert("An error has occured, please try again later.");
    return false;
  } else {
    showBug(returnObject);
  }
  document.getElementById(formId).reset();
  if(formId == 'replyform') {
      showAndHideObject(document.getElementById('scTDreplyformButtons'),document.getElementById('scDreplyformWait'));
  } else if( formId == 'scNewTicket') {
      getTickets();
      showAndHideObject(document.getElementById('scNewTicketButtons'),document.getElementById('scNewTicketWait'));
  }
};

function scLogin() {
  showAndHideObject(document.getElementById('scLoginWait'),document.getElementById('scLoginButtons'));
  var form = document.getElementById('scLoginForm');
  formSerialized = formSerialize( form );
  var parameters = formSerialized + '&type=scCheckLogin';
  
  AjaxCallbackRequest('/scAjax.php', { method:'POST', parameter: parameters, callbackMethod:"scLoginCallback( returnObject )" });
};

function scLoginCallback( returnObject ) {
  showAndHideObject(document.getElementById('scLoginButtons'),document.getElementById('scLoginWait'));

  document.getElementById('scLoginCritical').style.visibility = 'hidden';
  document.getElementById('scLoginCritical').style.position = 'absolute';
  document.getElementById('scLoginCriticalUserN').style.visibility = 'hidden';
  document.getElementById('scLoginCriticalUserN').style.position = 'absolute';
  
  if(returnObject == '1') {
    document.getElementById('scLoginButtons').style.visibility = 'hidden';
    getTickets();
    showAndHideObject(document.getElementById('ticketOverviewMask'),document.getElementById('loginMask'));
  } else if(returnObject == '2') {
    document.getElementById('scLoginCriticalUserN').style.visibility = 'visible';
    document.getElementById('scLoginCriticalUserN').style.position = 'static';
  } else {
    document.getElementById('scLoginCritical').style.visibility = 'visible';
    document.getElementById('scLoginCritical').style.position = 'static';
  }
  
};

function scCheckEMail(s)
{
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  reg = new RegExp('^([a-zA-Z0-9\-\.\_]+)'+
                   '(\@)([a-zA-Z0-9\-\.]+)'+
                   '(\.)([a-zA-Z]{2,4})$');
  res = (reg.test(s));
 }
 else
 {
  res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
 }
 return(res);
}