var PROJECT_URL = "/webapps";
var audioImage = '/webapps/media/images/audio.jpg';	//image for audio icon
var videoImage = '/webapps/media/images/video.jpg';	//image for video icon
var otherImage = '/webapps/media/images/other.jpg';	//image for other file icon
var plusImage = '/webapps/media/images/plus.gif';	//image for + icon
var minusImage = '/webapps/media/images/minus.gif';	//image for - icon
var folderImage2 = '/webapps/media/images/folder.gif';	//image for folder icon
var plusImage2 = '/webapps/media/images/plus--.gif';	//image for + icon
var minusImage2 = '/webapps/media/images/minus--.gif';	//image for - icon
var initExpandedNodes = '';			// Cookie - initially expanded nodes;
var showHideLinks = 0;
var clients = {};

//function for opening specified url
function open_win(url)
{           
    window.open(url,"_self"); 
}

//function for displaying number of remaining characters for remark
//used in file_upload.html
function showRemaining(evt)
{
    remaining = 1000 - document.getElementById('remark').value.length;
    if(remaining < 0)
        document.getElementById('remainingChar').innerHTML = '<span class="errorField">' + remaining + '</span>';
    else
        document.getElementById('remainingChar').innerHTML = remaining;
}


//function for displaying number of remaining characters for describtion
//used in add_ticket.html
function showRemain(evt)
{
    remaining = 1000 - document.getElementById('desc').value.length;
    if(remaining < 0)
        document.getElementById('remainingChar').innerHTML = '<span class="errorField">' + remaining + '</span>';
    else
        document.getElementById('remainingChar').innerHTML = remaining;
}


//function for checking or unchecking user permission checkboxes
//used in client_setup.html
function checkPermission(thisObj)
{   
    name = thisObj.name;
    id = name.substring(6,name.length);
    if(thisObj.checked)
    {     
        document.getElementsByName('upload' + id)[0].disabled = false;
        document.getElementsByName('upload' + id)[0].checked = document.getElementById('id_upload').checked;
        document.getElementsByName('download' + id)[0].disabled = false;
        document.getElementsByName('download' + id)[0].checked = document.getElementById('id_download').checked;
        document.getElementsByName('archive' + id)[0].disabled = false;
        document.getElementsByName('archive' + id)[0].checked = document.getElementById('id_archive').checked;
    }
    else
    {
        document.getElementsByName('upload' + id)[0].disabled = true;
        document.getElementsByName('upload' + id)[0].checked = false;
        document.getElementsByName('download' + id)[0].disabled = true;
        document.getElementsByName('download' + id)[0].checked = false;
        document.getElementsByName('archive' + id)[0].disabled = true;
        document.getElementsByName('archive' + id)[0].checked = false;
    }
}

//function for checking or unchecking all user checkboxes
//used in client_setup.html
function checkAllUsers(thisObj)
{   
    if(thisObj.checked)     
        for(i=0;i<userIds.length;i++)
        {
            document.getElementsByName('member' + userIds[i])[0].checked = true;
            document.getElementsByName('upload' + userIds[i])[0].disabled = false;
            document.getElementsByName('upload' + userIds[i])[0].checked = document.getElementById('id_upload').checked;
            document.getElementsByName('download' + userIds[i])[0].disabled = false;
            document.getElementsByName('download' + userIds[i])[0].checked = document.getElementById('id_download').checked;
            document.getElementsByName('archive' + userIds[i])[0].disabled = false;
            document.getElementsByName('archive' + userIds[i])[0].checked = document.getElementById('id_archive').checked;
        }
    else
        for(i=0;i<userIds.length;i++)
        {
            document.getElementsByName('member' + userIds[i])[0].checked = false;                      
            document.getElementsByName('upload' + userIds[i])[0].disabled = true;
            document.getElementsByName('download' + userIds[i])[0].disabled = true;
            document.getElementsByName('archive' + userIds[i])[0].disabled = true;
        }
}

//function for checking or unchecking all archive checkboxes
//used in client_file.html
function checkAllFiles(thisObj)
{   
    if(thisObj.checked)     
        for(i=0;i<fileIds.length;i++)
            document.getElementsByName('archive' + fileIds[i])[0].checked = true;
    else
        for(i=0;i<fileIds.length;i++)
            document.getElementsByName('archive' + fileIds[i])[0].checked = false;                      
}

//function for handling archive of file process
//used in client_file.html
function archive_file(c)
{  
	cnt = 0;        
	for(i=0;i<fileIds.length;i++){
		if(document.getElementsByName('archive'+fileIds[i])[0].checked == true)
			//total of number selected items
			cnt = cnt + 1;
        }              
        if (cnt>0)
	{
	    document.clientFile.action =c ;
            document.clientFile.target = "_self";
            document.clientFile.submit();
        }
        else
            alert('Please select a file.');
}	

//AJAX handler
//used in file_download.html, file_upload.html
function AJAXInteraction(url, callback, parameters) {

    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest () {
      // readyState of 4 signifies request is complete
      if (req.readyState == 4) {
	// status of 200 signifies sucessful HTTP call
        if (req.status == 200) {
          if (callback) callback(req);
        }
      }
    }

    this.doGet = function() {
      // make a HTTP GET request to the URL asynchronously
      req.open("GET", url, true);
      req.send(null);
    }

    this.doPost = function() {
      // make a HTTP POST request to the URL asynchronously
      req.open('POST', url, true);
      req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      req.setRequestHeader("Content-length", parameters.length);
      req.setRequestHeader("Connection", "close");
      req.send(parameters);
    }
}

//this function saves click on the file as a hit in database using AJAX handler
//used in file_download.html
function updateHitCounter(fileId) { 
    document.getElementById('spinner').style.visibility = 'visible'
    var url = PROJECT_URL + "/vault/file_download/" + fileId + "/?fileId=" + fileId; 
    var ajax = new AJAXInteraction(url, counterCallback, ""); 
    ajax.doGet(); 
}

//call back function of AJAX handler for updateHitCounter
//used in file_download.html
function counterCallback(responseXML) {
    document.getElementById('spinner').style.visibility = 'hidden';
    window.location.reload();
}

//function for enable or disable application readio button and notify checkboxes
//used in user_add.html, user_preference.html and pendingUser_setup
function checkApp(appId)
{   
    app = document.getElementById('app' + appId)
    if (app.checked==true)
    {
		appFlag = 1;
		applicationFlag = 0;
        document.getElementById('application' + appId).disabled = false;
        document.getElementById('notify' + appId).disabled = false;
        document.getElementById('notify' + appId).checked = true;
		for(i=0;i<applicationIds.length;i++)
		{
			if(document.getElementById('app' + applicationIds[i]).checked)
				appFlag = appFlag + 1
			if(document.getElementById('application' + applicationIds[i]).checked)
				applicationFlag = applicationFlag + 1
		}
		if(appFlag == 1)
		{
			document.getElementById('application' + appId).checked = true;
		}
		else if(appFlag > 1)
		{
			if(applicationFlag == 0)
			{
				document.getElementById('application' + appId).checked = true;
			}
			else if(applicationFlag > 0)
			{}
		}
		
    }
    else
    {
		appFlag = 0;
		applicationFlag = 0;
        document.getElementById('application' + appId).disabled = true;
        document.getElementById('application' + appId).checked = false;
        document.getElementById('notify' + appId).disabled = true;
        document.getElementById('notify' + appId).checked = false;
		for(i=0;i<applicationIds.length;i++)
		{
			if(document.getElementById('app' + applicationIds[i]).checked)
				appFlag = appFlag + 1
			if(document.getElementById('application' + applicationIds[i]).checked)
				applicationFlag = applicationFlag + 1
		}
		if(appFlag > 0)
		{
			if(applicationFlag == 0)
			{
				for(i=0;i<applicationIds.length;i++)
				{
					if(document.getElementById('app' + applicationIds[i]).checked)
					{
						document.getElementById('application' + applicationIds[i]).checked=true;
						break;
					}
				}
			}
			else if(applicationFlag > 0)
			{}					
		}
		else if(appFlag == 0)
		{}		
    }
}

//function for checking or unchecking client permission checkboxes
//used in account_setup.html
function checkClientPermission(thisObj,upload,download,archive)
{   
    name = thisObj.name;
    id = name.substring(6,name.length);
    if(thisObj.checked)
    {     
        document.getElementsByName('upload' + id)[0].disabled = false;
        document.getElementsByName('upload' + id)[0].checked = upload;
        document.getElementsByName('download' + id)[0].disabled = false;
        document.getElementsByName('download' + id)[0].checked = download;
        document.getElementsByName('archive' + id)[0].disabled = false;
        document.getElementsByName('archive' + id)[0].checked = archive;
    }
    else
    {
        document.getElementsByName('upload' + id)[0].disabled = true;
        document.getElementsByName('upload' + id)[0].checked = false;
        document.getElementsByName('download' + id)[0].disabled = true;
        document.getElementsByName('download' + id)[0].checked = false;
        document.getElementsByName('archive' + id)[0].disabled = true;
        document.getElementsByName('archive' + id)[0].checked = false;
    }
}

//function for checking or unchecking client permission checkboxes
//used in user_permissions.html
function checkUserClientPermission(thisObj,upload,download,archive,read,write,admin)
{   
    name = thisObj.name;
    id = name.substring(6,name.length);
    if(thisObj.checked)
    {     
        document.getElementsByName('upload' + id)[0].disabled = false;
        document.getElementsByName('upload' + id)[0].checked = upload;
        document.getElementsByName('download' + id)[0].disabled = false;
        document.getElementsByName('download' + id)[0].checked = download;
        document.getElementsByName('archive' + id)[0].disabled = false;
        document.getElementsByName('archive' + id)[0].checked = archive;
        document.getElementsByName('read' + id)[0].disabled = false;
        document.getElementsByName('read' + id)[0].checked = read;
        document.getElementsByName('write' + id)[0].disabled = false;
        document.getElementsByName('write' + id)[0].checked = write;
        document.getElementsByName('admin' + id)[0].disabled = false;
        document.getElementsByName('admin' + id)[0].checked = admin;
    }
    else
    {
        document.getElementsByName('upload' + id)[0].disabled = true;
        document.getElementsByName('upload' + id)[0].checked = false;
        document.getElementsByName('download' + id)[0].disabled = true;
        document.getElementsByName('download' + id)[0].checked = false;
        document.getElementsByName('archive' + id)[0].disabled = true;
        document.getElementsByName('archive' + id)[0].checked = false;
        document.getElementsByName('read' + id)[0].disabled = true;
        document.getElementsByName('read' + id)[0].checked = false;
        document.getElementsByName('write' + id)[0].disabled = true;
        document.getElementsByName('write' + id)[0].checked = false;
        document.getElementsByName('admin' + id)[0].disabled = true;
        document.getElementsByName('admin' + id)[0].checked = false;
    }
}

//function for checking or unchecking all client checkboxes
//used in user_client_permission.html
function checkAllClients(thisObj)
{   
    if(thisObj.checked)     
        for(i=0;i<clientIds.length;i++)
        {
            document.getElementsByName('client' + clientIds[i][0])[0].checked = true;
            document.getElementsByName('upload' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('upload' + clientIds[i][0])[0].checked = clientIds[i][1];
            document.getElementsByName('download' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('download' + clientIds[i][0])[0].checked = clientIds[i][2];
            document.getElementsByName('archive' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('archive' + clientIds[i][0])[0].checked = clientIds[i][3];
        }
    else
        for(i=0;i<clientIds.length;i++)
        {
            document.getElementsByName('client' + clientIds[i][0])[0].checked = false;                      
            document.getElementsByName('upload' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('upload' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('download' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('download' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('archive' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('archive' + clientIds[i][0])[0].checked = 0;
        }
}

//function for checking or unchecking all client checkboxes
//used in user_permissions.html
function checkUserAllClients(thisObj)
{   
    if(thisObj.checked)     
        for(i=0;i<clientIds.length;i++)
        {
            document.getElementsByName('client' + clientIds[i][0])[0].checked = true;
            document.getElementsByName('upload' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('upload' + clientIds[i][0])[0].checked = clientIds[i][1];
            document.getElementsByName('download' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('download' + clientIds[i][0])[0].checked = clientIds[i][2];
            document.getElementsByName('archive' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('archive' + clientIds[i][0])[0].checked = clientIds[i][3];
            document.getElementsByName('read' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('read' + clientIds[i][0])[0].checked = clientIds[i][7];
            document.getElementsByName('write' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('write' + clientIds[i][0])[0].checked = clientIds[i][8];
            document.getElementsByName('admin' + clientIds[i][0])[0].disabled = false;
            document.getElementsByName('admin' + clientIds[i][0])[0].checked = clientIds[i][9];
        }
    else
        for(i=0;i<clientIds.length;i++)
        {
            document.getElementsByName('client' + clientIds[i][0])[0].checked = false;                      
            document.getElementsByName('upload' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('upload' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('download' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('download' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('archive' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('archive' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('read' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('read' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('write' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('write' + clientIds[i][0])[0].checked = 0;
            document.getElementsByName('admin' + clientIds[i][0])[0].disabled = true;
            document.getElementsByName('admin' + clientIds[i][0])[0].checked = 0;
        }
}

//function for checking to see if at least one application is selected
//used in account_application.html and user_preference.html
function checkApplications()
{
    accessCnt = 0;
    landingCnt = 0;
    for(i=0;i<applicationIds.length;i++)
        if(document.getElementsByName('app' + applicationIds[i]).length != 0)
            if(document.getElementsByName('app' + applicationIds[i])[0].checked)
            {
                accessCnt = 1;
                break;
            }

    for(i=0;i<applicationIds.length;i++)
        if(document.getElementById('application' + applicationIds[i]).checked)
        {
            landingCnt = 1;
            break;
        }
     
    if(document.getElementsByName('app' + applicationIds[0]).length != 0 && accessCnt == 0)
        alert('Please select at least one application to be accessible by user.');
    else if(landingCnt == 0)
        alert('Please select your starting application after login.');
    else       
        document.setup.submit();
}

//this function submits the userform to the account_setup screen
//used in account_list.html
function submitUserForm(id)
{
    document.frmUser.id.value=id;
    document.frmUser.submit();
}

// function for removing recipient from recipient list to users list
//  used by file_upload.html
function removeRecipient() {
    var si, txt, y ;
    //save index of selected option in si
    si=document.uploadForm.recipientList.selectedIndex;
                     
    if (si>=0){
        //activate undo button
        document.getElementById('undo').disabled = false;
	//add this selected options to user list
	for(var x=document.uploadForm.recipientList.length - 1; x>=0; x--){
	    if (document.uploadForm.recipientList.options[x].selected){
                undoList.push(document.uploadForm.recipientList.options[x]);
                document.uploadForm.recipientList.remove(x);
            }
        }
    }
    else{
        // if no option from recipient list selected
        if (document.uploadForm.recipientList.options.length){
	        window.alert ('Please select a recipient from the recipient list.');
	    }
        else{
			//if recipient list is empty
            window.alert ('There are currently no recipients in the recipient list.');
        }
    }	
}

//function for removing all recipients from recipient list to users list
//used by file_upload.html
function removeAllRecipients() {
    selectAllOptions(document.uploadForm.recipientList);
    removeRecipient();
}

//function for undoing remove action
//used by file_upload.html
function undoRemove() {
    //inactivate undo button
    document.getElementById('undo').disabled = true;
    for(var x=0;x<undoList.length;x++)
        document.getElementById('recipientList').add(undoList[x],null);
}

//function for selecting all items of a listbox
//used in file_upload.html
function selectAllOptions(selectObj)
{
    len = selectObj.length;
    for (i = 0; i < len; i++)
    {
    	selectObj.options[i].selected=true;
    }
}

//this functon select all items in recipient list while uploading a file
//used by file_upload.html
function submitUploadForm(){
    remaining = 1000 - document.getElementById('remark').value.length;
    if(remaining < 0)
        alert("Remark must not be more than 1000 characters.");
    else
    {
        selectAllOptions(document.uploadForm.recipientList);
        document.getElementById('progress').style.display = "block";
        document.uploadForm.submit();
    }
}

//this functon select all items in recipient list while uploading a file
//used by client_merge.html
function submitMergeForm(baseClient){  
    if(confirm('You wish to merge client ' + baseClient + ' with client ' + document.clientMerge.clientName.value + '. Is this what you want to do?'))
        document.clientMerge.submit();
}

//this function is reponsible for obtaining status of tree from cookie 
function Get_Cookie(name) { 
    var start = document.cookie.indexOf(name+"="); 
    var len = start+name.length+1; 
    if ((!start) && (name != document.cookie.substring(0,name.length))) 
        return null; 
    if (start == -1) 
        return null; 
    var end = document.cookie.indexOf(";",len); 
    if (end == -1) 
        end = document.cookie.length; 
    return unescape(document.cookie.substring(len,end)); 
} 

//this function is responsible for storing status of tree in cookie
function Set_Cookie(name,value,expires,path,domain,secure) { 
    expires = expires * 60*60*24*1000;
    var today = new Date();
    var expires_date = new Date( today.getTime() + (expires) );
    var cookieString = name + "=" +escape(value) + 
                       ( (expires) ? ";expires=" + expires_date.toGMTString() : "") + 
                       ( (path) ? ";path=" + path : "") + 
                       ( (domain) ? ";domain=" + domain : "") + 
                       ( (secure) ? ";secure" : ""); 
    document.cookie = cookieString; 
}

//this function expands or collapse tree nodes
function showHideNode(e,inputId){
    liControl = document.getElementById(inputId);
    imgControl = liControl.getElementsByTagName('IMG')[0];
    if(liControl.getElementsByTagName('UL')[0].style.display == 'block'){
	liControl.getElementsByTagName('UL')[0].style.display = 'none';
	imgControl.src = plusImage;
        initExpandedNodes = initExpandedNodes.replace(',' + inputId,'');
    }
    else{
	liControl.getElementsByTagName('UL')[0].style.display = 'block';
	imgControl.src = minusImage;
        if(!initExpandedNodes)
            initExpandedNodes = ',';
        if(initExpandedNodes.indexOf(',' + inputId + ',')<0)
            initExpandedNodes = initExpandedNodes + inputId + ',';			
    }
    Set_Cookie('faq_order',initExpandedNodes,500);
    return false;
}


//this function expands or collapse tree nodes witout
function showHideNode2(e,inputId){
    liControl = document.getElementById(inputId);
    imgControl = liControl.getElementsByTagName('IMG')[0];
    if(liControl.getElementsByTagName('UL')[0].style.display == 'block'){
	liControl.getElementsByTagName('UL')[0].style.display = 'none';
	imgControl.src = plusImage;
        initExpandedNodes = initExpandedNodes.replace(',' + inputId,'');
    }
    else{
	liControl.getElementsByTagName('UL')[0].style.display = 'block';
	imgControl.src = minusImage;
        if(!initExpandedNodes)
            initExpandedNodes = ',';
        if(initExpandedNodes.indexOf(',' + inputId + ',')<0)
            initExpandedNodes = initExpandedNodes + inputId + ',';			
    }
    
    return false;
}



//this function expands or collapse answer
function showHideAnswer(aId){
    aControl = document.getElementById(aId);
    thisNode = aControl;
    if(aControl.tagName=='A') 
        thisNode = aControl.parentNode.getElementsByTagName('A')[0];				

    if(thisNode.style.visibility=='hidden')
        return;
    var parentNode = thisNode.parentNode;
    
    if(thisNode.innerHTML=='Show Answer'){
        thisNode.innerHTML = 'Hide Answer';
        parentNode.getElementsByTagName('LI')[0].style.display='block';
    }
    else{
        thisNode.innerHTML = 'Show Answer';
        parentNode.getElementsByTagName('LI')[0].style.display='none';
    }	
		
    return;
}

//this function specifies the state of each topic in tree and its nodes (faqs)
function createTree(){
    initExpandedNodes = Get_Cookie('faq_order');
    if(initExpandedNodes){
        var nodes = initExpandedNodes.split(',');
        for(var no=0;no<nodes.length;no++){
            if(nodes[no]) showHideNode('',nodes[no]); 
        }   
    }
}

//this function changes action of frmForm
function changeFormAction(formAction){
    document.frmForm.target = '_self';
    document.frmForm.action = formAction;
    document.frmForm.submit();
}

//this function changes action of a form
function changeFormAction2(myform,formAction){
    myform.target = '_self';
    myform.action = formAction;
    myform.submit();
}

//this function adds options to comboboxes of page
function addOptions (scoreList) {
    for(var i=0; i<scoreList.length; i++){
	var sSelect = document.getElementById('id_combo' + scoreList[i][0]);

        for(var j=i; j<scoreList.length; j++){
		var oOption = document.createElement("OPTION");	
		oOption.id='option'+i+'_'+j-i;
                oOption.value=scoreList[j][0];
                oOption.text=scoreList[j][1];
		if (i==j)	
			oOption.selected='selected';
		sSelect.options.add (oOption,j-i);
        }
    }	
}

//this function changes options to comboboxes of page
function changeOptions (scoreList,comboId) {
    var isChanege = false;
    var isSelected = false;
    var isComboValue = false;
    var comboValues = [];
    for(var i=0; i<scoreList.length; i++){
      var sSelect = document.getElementById('id_combo' + scoreList[i][0]);

      if(isChanege){
        for(var j=i; j<scoreList.length; j++){
		var oOption = document.getElementById('option'+i+'_'+j-i);	
		sSelect.remove(oOption.index);
        }
	isSelected = true;
        for(var j=0; j<scoreList.length; j++){
	    isComboValue = false;
	    for(var k=0; k<comboValues.length; k++){
	      if(scoreList[j][0] == comboValues[k])
		  isComboValue = true;
	    }
	    if(!isComboValue){
		var oOption = document.createElement("OPTION");	
		oOption.id='option'+i+'_'+j;
                oOption.value=scoreList[j][0];
                oOption.text=scoreList[j][1];
		if (isSelected){
			oOption.selected='selected';
			comboValues[comboValues.length] = oOption.value;
			isSelected = false;
		}
		sSelect.options.add (oOption,j);
	    }
	}
      }
      else{
	comboValues[comboValues.length] = sSelect.options[sSelect.selectedIndex].value;
      }

      if(sSelect.id==comboId)
	isChanege = true;
    }
}

function confirmDelete(confirmMessage,formAction) {
	var res=confirm(confirmMessage);
	if (res)
		changeFormAction(formAction);
}

//this functon show progress icon while uploading a file
//used by media_add.html
function submitMediaUploadForm(){
	document.getElementById('progress').style.visibility = "visible";
	document.uploadForm.submit();
}

//this functon show a new window to  select media
function selectMedia(url) {
  window.open(url);
}

//this function used to set selected media into answer textarea
function setMedia(mediaObj, url){
	mediaTag = mediaObj[1];
	switch(mediaObj[3]) {
	  case 'I':
	    minWidth = 360;
	    if(mediaObj[4] < minWidth)
		minWidth = mediaObj[4];
	    mediaTag = '<p align="center"><a href="/' + mediaObj[0] + '/' + mediaObj[1] + '" alt="View full image" title="View full image" target="_blank"><img src="/' + mediaObj[0] + '/' + mediaObj[1] + '" border="0" width="' + minWidth + '" /></a><br />' + mediaObj[2] + '</p>';
	    break;
	  case 'V':
	    mediaTag = '<p align="center"><a href="/' + mediaObj[0] + '/' + mediaObj[1] + '" alt="View video" title="View video"><img src="' + videoImage + '" border="0" width="40" height="40" /></a><br />' + mediaObj[2] + '</p>';
	    break;
	  case 'A':
	    mediaTag = '<p align="center"><a href="/' + mediaObj[0] + '/' + mediaObj[1] + '" alt="Listen to audio" title="Listen to audio"><img src="' + audioImage + '" border="0" width="40" height="40" /></a><br />' + mediaObj[2] + '</p>';
	    break;
	  case 'O':
	    mediaTag = '<p align="center"><a href="/' + mediaObj[0] + '/' + mediaObj[1] + '" alt="Download file" title="Download file"><img src="' + otherImage + '" border="0" width="40" height="40" /></a><br />' + mediaObj[2] + '</p>';
	    break;
	}

        objAnswer = document.getElementById('id_answer');
	objAnswer.focus();

  //IE support
  if (document.selection){
   sel = document.selection.createRange();
   sel.text = mediaTag;
  }
  //MOZILLA/NETSCAPE support
  else if (objAnswer.selectionStart || objAnswer.selectionEnd == '0'){
	var startPos = objAnswer.selectionStart;
	var endPos = objAnswer.selectionEnd;
	objAnswer.value = objAnswer.value.substring(0, startPos)+mediaTag+objAnswer.value.substring(endPos, objAnswer.value.length);
	objAnswer.selectionStart = startPos;
	objAnswer.selectionEnd = startPos + mediaTag.length;
  }
  //other browsers support
  else
	objAnswer.value += mediaTag;

	window.open(url);
	objAnswer.focus();
} 

//this function generate preview of FAQ
function faqPreview(previewUrl){
	document.frmForm.target = '_blank';
	document.frmForm.action = previewUrl;
	document.frmForm.submit();
}

//this function generates preview of Fields page
function fieldsPreview(previewUrl){
	document.frmForm.target = '_blank';
	document.frmForm.action = previewUrl;
	document.frmForm.submit();
}

//this function for publish button
function createFile(fileUrl){
	document.frmForm.target = '_blank';
	document.frmForm.action = fileUrl;
	document.frmForm.submit();
}

//function for displaying number of remaining characters for question or topic
//used in faq_setup.html, faq_add.html, topic_setup.html, topic_add.html
function showRemaining2(fieldId)
{
    remaining = 255 - document.getElementById(fieldId).value.length;
    if(remaining < 0)
        document.getElementById('remainingChar').innerHTML = '<span class="errorField">' + remaining + '</span>';
    else
        document.getElementById('remainingChar').innerHTML = remaining;
}

function fileDownload()
{
	updateHitCounter(document.frmForm.fileId.value);
	document.frmForm.target = '_blank';
	document.frmForm.action = PROJECT_URL + '/vault/download/' + document.frmForm.fileId.value + '/';
	document.frmForm.submit();
}

// this functon is responsible to submit form information if enter press
//    used by search
function checkKey(url,textControl,evt)
    {   
	if (evt.keyCode == '13')
		submitSearchForm(url);
	else
        return; 
    } 

function checkSearchKey(url,textControl,evt)
    {   
	if (evt.keyCode == '13')
		submitTicketSearchForm(url);
	else
        return; 
    } 
// this functon is responsible to submit form information
//    used by search
function submitSearchForm(url)
    {
	count = 0;
    topic= document.forms[0].topic.value;
    keyword = document.forms[0].keyword.value;
    temp = keyword;
    if (temp == '')
     alert('You must enter keyword to be searched')   
    else if ((temp.search(/%/) != -1) || (temp.search(/"/) != -1)|| (temp.search(/_/) != -1))
      alert('Invalid characters are used.');
    else if ((temp.indexOf('+') != -1) || (temp.indexOf('*') != -1)|| (temp.indexOf('_') != -1))
      alert('Invalid characters are used.');
    else
     {
      document.forms[0].hiddAdvance.value = '0';
      temp = getkeyword(keyword)
      if (url.indexOf('sc') != -1)
	     url  = url + topic + '/' + temp + '/1/0/0/0/0/'  ;   
	  else
	    url  = url + topic + '/' + temp + '/1/'  ;   
      document.forms[0].action = url;   
      document.forms[0].target = "_self"; 
	  document.forms[0].submit();
	 }
    
    } 

// this functon is responsible to submit form information
//    used by ticket search
function submitTicketSearchForm(url)
    {
	count = 0;
	application = '0';
	ttype = '0';
	status = '0';
	priority = '0';
    topic= document.forms[0].topic.value;
    keyword = document.forms[0].keyword.value;
    temp = keyword;
    if (temp == '')
     alert('You must enter keyword to be searched')   
    else if ((temp.search(/%/) != -1) || (temp.search(/"/) != -1)|| (temp.search(/_/) != -1))
      alert('Invalid characters are used.');
    else if ((temp.indexOf('+') != -1) || (temp.indexOf('*') != -1)|| (temp.indexOf('_') != -1))
      alert('Invalid characters are used.');
    else
     {
      document.forms[0].hiddAdvance.value = '0';
      temp = getkeyword(keyword)
      url  = url + topic + '/' + temp + '/1/' + application + '/' + ttype + '/' + status + '/' + priority + '/'  ;   
      document.forms[0].action = url;   
      document.forms[0].target = "_self"; 
	  document.forms[0].submit();
	 }
    
    } 

// this function return keyword of search
function getkeyword(keyword)
   {
     last ='' 
     temp = keyword;
     
     
     first = temp.indexOf('[ ')   
     if(temp.search(/ /) == -1) 
     {
      if ((temp.charAt(0) == '[') && (temp.charAt(temp.length-1) == ']'))                    
        temp = temp.slice(1,temp.length-1)
          
     }
     else   
     {
       
       if (temp.charAt(temp.length-1) == ' ')              
         temp.slice(0,temp.length-1)

       if (temp.charAt(0) == '[')                
          temp = " " + temp         

      if (temp.charAt(temp.length-1) == ']')                    
        temp = temp.slice(0,temp.length)+ ' '

      for(i=0 ;i<=temp.length; i++ )
      {
        temp = temp.replace('[ ', "[");
        temp = temp.replace(' ]', "]");
      }                    
       for(i=0 ;i<=temp.length; i++ )
      { 
        if ((temp.indexOf(' [') != -1) && (temp.indexOf('] ') != -1) ||(temp.indexOf('+[') != -1)) 
        {
          first = temp.indexOf('+[');
          last = temp.indexOf('] ');
          if (last != -1)
          {
            if (first == -1 )
            {                        
              first = temp.indexOf(' [');                                             
              temp = temp.slice(0,first)+ ' ' +temp.slice(first+2,last).replace(/ /g, "$")+ ' ' + temp.slice(last+1,temp.length+1)                
              
            }
            else
              temp = temp.slice(0,first)+ ' ' +temp.slice(first+2,last).replace(/ /g, "$")+ ' ' +temp.slice(last+1,temp.length+1)                
               
          }

        }
      
      } 
      for(i=0 ;i<=temp.length; i++ )
      {
        temp = temp.replace('  ', " ");
      }         
      for(i=0 ;i<=temp.length; i++ )
      {
        temp = temp.replace(/ or /i, "*");        
      }     
      for(i=0 ;i<=temp.length; i++ )
      {
        temp = temp.replace('+ ', "+");
        temp = temp.replace(' +', "+");
      }      

      for(i=0 ;i<=temp.length; i++ )
      {
        temp = temp.replace(' ', "+");
      }

      for(i=0 ;i<=temp.length; i++ )
      {
        temp = temp.replace('++', "+");
      }
      if (temp.charAt(temp.length-1) == '+') 
        temp = temp.slice(0,temp.length-1)
      if (temp.charAt(0) == '+') 
        temp = temp.slice(1,temp.length)    
    }
    
    return temp
  }


// this functon is responsible to display user list according to selected status (active:Yes/No/All)

function getUserList(url)
 {
  status = document.forms[0].list.value     
  if (status=='yes')
    window.open(url + 'yes' + '/1','_self')
  if (status=='no')
    window.open(url + 'no' + '/1','_self')
  if (status=='all')
    window.open(url + 'all' + '/1','_self')
  
 }

 // this functon is responsible to display task/bug list according to selected group 
 function getTBList(url,status)
 {
  groupId = document.forms[0].list.value     
  if (status != ' ')
    url += status + '/0/1/' + groupId
  else
    url += '0/1/' + groupId 
  window.open(url ,'_self')
  
 }

// this functon is responsible to display task/bug list according to selected status (closed/current/latest/all)
function getList(url,id)
 {
   status  = document.forms[0].list.value
   if (status != 'current')
     url += status + '/'
   url += id + '/0/1'
   window.open(url,'_self')
  }

// this functon is responsible to submit form information
//    used by search
function submitAdvanceSearch(url)
    {
	topic = document.forms[0].topic.value;
    andkeywords = document.forms[0].andkeywords.value;
    phrasekeyword = document.forms[0].phrasekeyword.value;
    orkeywords = document.forms[0].orkeywords.value;    
          
    if ((orkeywords == '') && (phrasekeyword == '') && (andkeywords == ''))
     alert('You must enter keyword to be searched')
    else if (((andkeywords.search(/%/) != -1) || (andkeywords.search(/"/) != -1)) || ((phrasekeyword.search(/%/) != -1) || (phrasekeyword.search(/"/) != -1)) || ((orkeywords.search(/%/) != -1) || (orkeywords.search(/"/) != -1)))
      alert('Invalid characters are used.')
    else if (((phrasekeyword.indexOf('+') != -1) || (phrasekeyword.indexOf('*') != -1) || (phrasekeyword.indexOf('_') != -1)) || ((andkeywords.indexOf('+') != -1) || (andkeywords.indexOf('*') != -1) || (andkeywords.indexOf('_') != -1)) || ((orkeywords.indexOf('+') != -1) || (orkeywords.indexOf('*') != -1)|| (orkeywords.indexOf('_') != -1)))
      alert('Invalid characters are used.')
    else if ((phrasekeyword.indexOf('$') != -1) || (andkeywords.indexOf('$') != -1) || (orkeywords.indexOf('$') != -1))
      alert('Invalid characters are used.')
    else
      {
      for(i=0 ;i<=andkeywords.length; i++ )
      {
        andkeywords = andkeywords.replace('  ', " ");
      }
      for(i=0 ;i<=andkeywords.length; i++ )
      {
        andkeywords = andkeywords.replace(' ', "+");
      }
      for(i=0 ;i<=andkeywords.length; i++ )
      {
        andkeywords = andkeywords.replace('++', "+");
      }     
      if (andkeywords.charAt(0) == '+')                    
        andkeywords = andkeywords.slice(1,andkeywords.length-1)
      
      if (andkeywords.charAt(andkeywords.length-1) == '+')                    
        andkeywords = andkeywords.slice(0,andkeywords.length-1)     
      

      for(i=0 ;i<=orkeywords.length; i++ )
      {
        orkeywords = orkeywords.replace('  ', " ");
      }
      for(i=0 ;i<=orkeywords.length; i++ )
      {
        orkeywords = orkeywords.replace(' ', "*");
      }
      for(i=0 ;i<=orkeywords.length; i++ )
      {
        orkeywords = orkeywords.replace('**', "*");
      }     
      if (orkeywords.charAt(0) == '*')                    
        orkeywords = orkeywords.slice(1,orkeywords.length-1)
      
      if (orkeywords.charAt(orkeywords.length-1) == '*')                    
        orkeywords = orkeywords.slice(0,orkeywords.length-1)

      for(i=0 ;i<=phrasekeyword.length; i++ )
      {        
        phrasekeyword = phrasekeyword.replace(' ', "$");
      }
      if (phrasekeyword.charAt(0) == '$')                    
        phrasekeyword = phrasekeyword.slice(1,phrasekeyword.length-1)
      
      if (phrasekeyword.charAt(phrasekeyword.length-1) == '$')                    
        phrasekeyword = phrasekeyword.slice(0,phrasekeyword.length-1)
    
      
      url = url + '/' + topic + '/' + andkeywords + '_' + phrasekeyword + '_' +orkeywords +'/1/';
      document.forms[0].action = url;   
      document.forms[0].target = "_self"; 
	  document.forms[0].submit();
    }
    }

// this functon is responsible to submit form information
//    used by Advance ticket search
function submitTicketAdvanceSearch(url)
    {
	application = document.forms[0].application.value;
	ttype = document.forms[0].type.value;
	status = document.forms[0].status.value;
	priority = document.forms[0].priority.value;
	topic = document.forms[0].topic.value;
    andkeywords = document.forms[0].andkeywords.value;
    phrasekeyword = document.forms[0].phrasekeyword.value;
    orkeywords = document.forms[0].orkeywords.value;    
          
    if ((orkeywords == '') && (phrasekeyword == '') && (andkeywords == ''))
     alert('You must enter keyword to be searched')
    else if (((andkeywords.search(/%/) != -1) || (andkeywords.search(/"/) != -1)) || ((phrasekeyword.search(/%/) != -1) || (phrasekeyword.search(/"/) != -1)) || ((orkeywords.search(/%/) != -1) || (orkeywords.search(/"/) != -1)))
      alert('Invalid characters are used.')
    else if (((phrasekeyword.indexOf('+') != -1) || (phrasekeyword.indexOf('*') != -1) || (phrasekeyword.indexOf('_') != -1)) || ((andkeywords.indexOf('+') != -1) || (andkeywords.indexOf('*') != -1) || (andkeywords.indexOf('_') != -1)) || ((orkeywords.indexOf('+') != -1) || (orkeywords.indexOf('*') != -1)|| (orkeywords.indexOf('_') != -1)))
      alert('Invalid characters are used.')
    else if ((phrasekeyword.indexOf('$') != -1) || (andkeywords.indexOf('$') != -1) || (orkeywords.indexOf('$') != -1))
      alert('Invalid characters are used.')
    else
      {
      for(i=0 ;i<=andkeywords.length; i++ )
      {
        andkeywords = andkeywords.replace('  ', " ");
      }
      for(i=0 ;i<=andkeywords.length; i++ )
      {
        andkeywords = andkeywords.replace(' ', "+");
      }
      for(i=0 ;i<=andkeywords.length; i++ )
      {
        andkeywords = andkeywords.replace('++', "+");
      }     
      if (andkeywords.charAt(0) == '+')                    
        andkeywords = andkeywords.slice(1,andkeywords.length-1)
      
      if (andkeywords.charAt(andkeywords.length-1) == '+')                    
        andkeywords = andkeywords.slice(0,andkeywords.length-1)     
      

      for(i=0 ;i<=orkeywords.length; i++ )
      {
        orkeywords = orkeywords.replace('  ', " ");
      }
      for(i=0 ;i<=orkeywords.length; i++ )
      {
        orkeywords = orkeywords.replace(' ', "*");
      }
      for(i=0 ;i<=orkeywords.length; i++ )
      {
        orkeywords = orkeywords.replace('**', "*");
      }     
      if (orkeywords.charAt(0) == '*')                    
        orkeywords = orkeywords.slice(1,orkeywords.length-1)
      
      if (orkeywords.charAt(orkeywords.length-1) == '*')                    
        orkeywords = orkeywords.slice(0,orkeywords.length-1)

      for(i=0 ;i<=phrasekeyword.length; i++ )
      {        
        phrasekeyword = phrasekeyword.replace(' ', "$");
      }
      if (phrasekeyword.charAt(0) == '$')                    
        phrasekeyword = phrasekeyword.slice(1,phrasekeyword.length-1)
      
      if (phrasekeyword.charAt(phrasekeyword.length-1) == '$')                    
        phrasekeyword = phrasekeyword.slice(0,phrasekeyword.length-1)
    
      
      url = url + '/' + topic + '/' + andkeywords + '_' + phrasekeyword + '_' +orkeywords + '/1/' + application + '/' + ttype + '/' + status + '/' + priority + '/';
      document.forms[0].action = url;   
      document.forms[0].target = "_self"; 
	  document.forms[0].submit();
    }
    }
// this functon is responsible to submit form information if enter press
//    used by search
function checkKeyAdvance(url,textControl,evt)
    {   if (evt.keyCode == '13')
			submitTicketAdvanceSearch(url);
        else
			return; 
    } 



// this functon is responsible to submit form information
//    used by simple search
function submitAdvanceForm(url)
    {
    document.forms[0].hiddAdvance.value = '1';
    document.forms[0].action = url;   
    document.forms[0].target = "_self";   
    document.forms[0].submit();  
    }  

	
//function for checking or unchecking user permission checkboxes
//used in ticket_client_setup.html
function checkTicketPermission(thisObj)
{   
    name = thisObj.name;
    id = name.substring(6,name.length);
    if(thisObj.checked)
    {     
        document.getElementsByName('upload' + id)[0].disabled = false;
        document.getElementsByName('upload' + id)[0].checked = true;
        document.getElementsByName('download' + id)[0].disabled = false;
        document.getElementsByName('download' + id)[0].checked = true;
        document.getElementsByName('archive' + id)[0].disabled = false;
        document.getElementsByName('archive' + id)[0].checked = true;
		document.getElementsByName('read' + id)[0].disabled = false;
        document.getElementsByName('read' + id)[0].checked = true;
		document.getElementsByName('write' + id)[0].disabled = false;
        document.getElementsByName('write' + id)[0].checked = true;
		document.getElementsByName('admin' + id)[0].disabled = false;
        document.getElementsByName('admin' + id)[0].checked = true;
    }
    else
    {
        document.getElementsByName('upload' + id)[0].disabled = true;
        document.getElementsByName('upload' + id)[0].checked = false;
        document.getElementsByName('download' + id)[0].disabled = true;
        document.getElementsByName('download' + id)[0].checked = false;
        document.getElementsByName('archive' + id)[0].disabled = true;
        document.getElementsByName('archive' + id)[0].checked = false;
		document.getElementsByName('read' + id)[0].disabled = true;
        document.getElementsByName('read' + id)[0].checked = false;
		document.getElementsByName('write' + id)[0].disabled = true;
        document.getElementsByName('write' + id)[0].checked = false;
		document.getElementsByName('admin' + id)[0].disabled = true;
        document.getElementsByName('admin' + id)[0].checked = false;
    }
}

//function for checking or unchecking all user checkboxes
//used in ticket_client_setup.html
function checkAllTicketUsers(thisObj)
{   
    if(thisObj.checked)     
        for(i=0;i<userIds.length;i++)
        {
            document.getElementsByName('member' + userIds[i])[0].checked = true;
            document.getElementsByName('upload' + userIds[i])[0].disabled = false;
            document.getElementsByName('upload' + userIds[i])[0].checked = true;
            document.getElementsByName('download' + userIds[i])[0].disabled = false;
            document.getElementsByName('download' + userIds[i])[0].checked = true;
            document.getElementsByName('archive' + userIds[i])[0].disabled = false;
            document.getElementsByName('archive' + userIds[i])[0].checked = true;
			document.getElementsByName('read' + userIds[i])[0].disabled = false;
            document.getElementsByName('read' + userIds[i])[0].checked = true;
			document.getElementsByName('write' + userIds[i])[0].disabled = false;
            document.getElementsByName('write' + userIds[i])[0].checked = true;
			document.getElementsByName('admin' + userIds[i])[0].disabled = false;
            document.getElementsByName('admin' + userIds[i])[0].checked = true;
        }
    else
        for(i=0;i<userIds.length;i++)
        {
            document.getElementsByName('member' + userIds[i])[0].checked = false;                      
            document.getElementsByName('upload' + userIds[i])[0].disabled = true;
            document.getElementsByName('download' + userIds[i])[0].disabled = true;
            document.getElementsByName('archive' + userIds[i])[0].disabled = true;
			 document.getElementsByName('read' + userIds[i])[0].disabled = true;
			  document.getElementsByName('write' + userIds[i])[0].disabled = true;
			   document.getElementsByName('admin' + userIds[i])[0].disabled = true;
        }
}

///////// For sumbit Form , it is used from frm search form//////////////	  
function submitForm(url)
{
	document.forms[0].action = url;   
    	document.forms[0].target = "_self";   
    	document.forms[0].submit();			
}

///////// For sumbit Form , it is used from comment preview form//////////////	  
function submitPreview(url)
{
	document.forms[0].action = url;   
    	document.forms[0].target = "_blank";   
    	document.forms[0].submit();			
}

//this functon used for uploading a file in support center
//used by file_upload.html
function submitTicketUploadForm(uploadType){
    remaining = 1000 - document.getElementById('remark').value.length;
    if(remaining < 0)
        alert("Remark must not be more than 1000 characters.");
    else
    {
        document.getElementById('progress').style.display = "block";
        document.uploadTicketForm.action = document.uploadTicketForm.action + uploadType + "/";
        document.uploadTicketForm.submit();
    }
}


//This function  used for changeing the name of "Hide" to "Show"
function changeShowHide(obj, name, flag) {
    if(obj.oldText){
        obj.innerHTML = obj.oldText;
        obj.oldText = null;
    }
    else {
        obj.oldText = obj.innerHTML;
        if(flag == 0){
            obj.innerHTML = 'Hide ' + name;
        }
        else{
            obj.innerHTML = 'Show ' + name;
        }
    }
}


//This function  used for showing or hiding "Ticket No." column in ticket center table
function showElementsOfTable(listLenght, elementId) {
    if(elementId == 1){
        if(document.getElementById('sclient').style.display=='none' ) {
            document.getElementById('sclient').style.display='';
	    document.getElementById('one').value = 'S';
        }
        else {
            document.getElementById('sclient').style.display='none';
	   document.getElementById('one').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('one').value == 'S') {
                document.getElementById('client'+i).style.display='';
            }
            else {
                document.getElementById('client'+i).style.display='none';
            }
        }
    }

    if(elementId == 2){
        if(document.getElementById('sprior').style.display=='none' ) {
            document.getElementById('sprior').style.display='';
	    document.getElementById('two').value = 'S';
        }
        else {
            document.getElementById('sprior').style.display='none';
	    document.getElementById('two').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('two').value == 'S') {
                document.getElementById('pri'+i).style.display='';
            }
            else {
                document.getElementById('pri'+i).style.display='none';
            }
        }
    }
 
    if(elementId == 3){
        if(document.getElementById('stype').style.display=='none' ) {
            document.getElementById('stype').style.display='';
	    document.getElementById('three').value = 'S';
        }
        else {
            document.getElementById('stype').style.display='none';
	    document.getElementById('three').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('three').value == 'S') {
                document.getElementById('type'+i).style.display='';
            }
            else {
                document.getElementById('type'+i).style.display='none';
            }
        }
    }
 
    if(elementId == 4){
        if(document.getElementById('screat').style.display=='none' ) {
            document.getElementById('screat').style.display='';
	    document.getElementById('four').value = 'S';
        }
        else {
            document.getElementById('screat').style.display='none';
	    document.getElementById('four').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('four').value == 'S') {
                document.getElementById('date'+i).style.display='';
            }
            else {
                document.getElementById('date'+i).style.display='none';
            }
        }
    }

    if(elementId == 5){
        if(document.getElementById('sticketcode').style.display=='none' ) {
            document.getElementById('sticketcode').style.display='';
	    document.getElementById('five').value = 'S';
        }
        else {
            document.getElementById('sticketcode').style.display='none';
	    document.getElementById('five').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('five').value == 'S') {
                document.getElementById('tCode'+i).style.display='';
            }
            else {
                document.getElementById('tCode'+i).style.display='none';
            }
        }
    }

    if(elementId == 6){
        if(document.getElementById('sauthor').style.display=='none' ) {
            document.getElementById('sauthor').style.display='';
	    document.getElementById('six').value = 'S';
        }
        else {
            document.getElementById('sauthor').style.display='none';
	    document.getElementById('six').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('six').value == 'S') {
                document.getElementById('author'+i).style.display='';
            }
            else {
                document.getElementById('author'+i).style.display='none';
            }
        }
    }

    if(elementId == 7){
        if(document.getElementById('sassignee').style.display=='none' ) {
            document.getElementById('sassignee').style.display='';
	    document.getElementById('seven').value = 'S';
        }
        else {
            document.getElementById('sassignee').style.display='none';
	    document.getElementById('seven').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('seven').value == 'S') {
                document.getElementById('assignee'+i).style.display='';
            }
            else {
                document.getElementById('assignee'+i).style.display='none';
            }
        }
    }

    if(elementId == 8){
        if(document.getElementById('sowner').style.display=='none' ) {
            document.getElementById('sowner').style.display='';
	    document.getElementById('eight').value = 'S';
        }
        else {
            document.getElementById('sowner').style.display='none';
	    document.getElementById('eight').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('eight').value == 'S') {
                document.getElementById('owner'+i).style.display='';
            }
            else {
                document.getElementById('owner'+i).style.display='none';
            }
        }
    }

    if(elementId == 9){
        if(document.getElementById('sapplication').style.display=='none' ) {
            document.getElementById('sapplication').style.display='';
	    document.getElementById('nine').value = 'S';
        }
        else {
            document.getElementById('sapplication').style.display='none';
	    document.getElementById('nine').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('nine').value == 'S') {
                document.getElementById('app'+i).style.display='';
            }
            else {
                document.getElementById('app'+i).style.display='none';
            }
        }
    }

    if(elementId == 10){
        if(document.getElementById('sversion').style.display=='none' ) {
            document.getElementById('sversion').style.display='';
	    document.getElementById('ten').value = 'S';
        }
        else {
            document.getElementById('sversion').style.display='none';
	    document.getElementById('ten').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('ten').value == 'S') {
                document.getElementById('version'+i).style.display='';
            }
            else {
                document.getElementById('version'+i).style.display='none';
            }
        }
    }

    if(elementId == 11){
        if(document.getElementById('sstatus').style.display=='none' ) {
            document.getElementById('sstatus').style.display='';
	    document.getElementById('eleven').value = 'S';
        }
        else {
            document.getElementById('sstatus').style.display='none';
	    document.getElementById('eleven').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('eleven').value == 'S') {
                document.getElementById('status'+i).style.display='';
            }
            else {
                document.getElementById('status'+i).style.display='none';
            }
        }
    }

    if(elementId == 12){
        if(document.getElementById('supdate').style.display=='none' ) {
            document.getElementById('supdate').style.display='';
	    document.getElementById('twelve').value = 'S';
        }
        else {
            document.getElementById('supdate').style.display='none';
	    document.getElementById('twelve').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('twelve').value == 'S') {
                document.getElementById('up'+i).style.display='';
            }
            else {
                document.getElementById('up'+i).style.display='none';
            }
        }
    }

    if(elementId == 13){
        if(document.getElementById('splatform').style.display=='none' ) {
            document.getElementById('splatform').style.display='';
	    document.getElementById('thirteen').value = 'S';
        }
        else {
            document.getElementById('splatform').style.display='none';
	    document.getElementById('thirteen').value = 'H';
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('thirteen').value == 'S') {
                document.getElementById('platform'+i).style.display='';
            }
            else {
                document.getElementById('platform'+i).style.display='none';
            }
        }
    }
}

// This function uses in ticket_list_client.html page. It shows if the submit is for save or for sort.
function IsSaveOrSort()
{ 
    document.getElementById('spinner').style.visibility = 'visible';
    var url = PROJECT_URL + "/sc/ticket_list_save/";
    parameters = "hiddAuthor=" + document.getElementById('six').value + "&";
    parameters += "hiddClient=" + document.getElementById('one').value + "&";
    parameters += "hiddPriority=" + document.getElementById('two').value + "&";
    parameters += "hiddType=" + document.getElementById('three').value + "&";
    parameters += "hiddCreatdate=" + document.getElementById('four').value + "&";
    parameters += "hiddTicketCode=" + document.getElementById('five').value + "&";
    parameters += "hiddAssignee=" + document.getElementById('seven').value + "&";
    parameters += "hiddOwner=" + document.getElementById('eight').value + "&";
    parameters += "hiddApplication=" + document.getElementById('nine').value + "&";
    parameters += "hiddVersion=" + document.getElementById('ten').value + "&";
    parameters += "hiddStatus=" + document.getElementById('eleven').value + "&";
    parameters += "hiddUpdateDate=" + document.getElementById('twelve').value + "&";
    parameters += "hiddPlatform=" + document.getElementById('thirteen').value + "&";

    parameters += "saveElements=Save";
    var ajax = new AJAXInteraction(url, saveResetCallback, parameters); 
    ajax.doPost();
}


// This function uses in ticket_list_client.html page. It shows if the submit is for save or for sort.
function IsResetOrSort(ticketsNo)
{ 
    document.getElementById('spinner').style.visibility = 'visible';
    var url = PROJECT_URL + "/sc/ticket_list_save/";
    parameters = "saveElements=Reset";

    //make all columns visible at first
    document.getElementById('sclient').style.display = '';
    document.getElementById('clientCheckbox').checked = '';
    document.getElementById('sowner').style.display = '';
    document.getElementById('ownerCheckbox').checked = '';
    document.getElementById('sassignee').style.display = '';
    document.getElementById('assigneeCheckbox').checked = '';
    document.getElementById('sauthor').style.display = '';
    document.getElementById('authorCheckbox').checked = '';
    document.getElementById('sticketcode').style.display = '';
    document.getElementById('ticketCodeCheckbox').checked = '';
    document.getElementById('stype').style.display = '';
    document.getElementById('typeCheckbox').checked = '';
    document.getElementById('sprior').style.display = '';
    document.getElementById('priorityCheckbox').checked = '';
    document.getElementById('screat').style.display = '';
    document.getElementById('createDateCheckbox').checked = '';
    document.getElementById('splatform').style.display = '';
    document.getElementById('platformCheckbox').checked = '';
    document.getElementById('sapplication').style.display = 'none';
    document.getElementById('applicationCheckbox').checked = 'checked';
    document.getElementById('sversion').style.display = 'none';
    document.getElementById('versionCheckbox').checked = 'checked';
    document.getElementById('sstatus').style.display = 'none';
    document.getElementById('statusCheckbox').checked = 'checked';
    document.getElementById('supdate').style.display = 'none';
    document.getElementById('updateDateCheckbox').checked = 'checked';

    //this loop changes status of all columns
    for(i=1;i<14;i++)
    {
        showElementsOfTable(ticketsNo,i);
    }
    var ajax = new AJAXInteraction(url, saveResetCallback, parameters); 
    ajax.doPost();
}

function saveResetCallback(response)
{
    document.getElementById('spinner').style.visibility = 'hidden';
}


//This function is used for showing or hiding columns in results table
function showElementsOfFormTable(listLenght, elementId) {
    if(elementId == 1){
        if(document.getElementById('sdate').style.display=='none' ) {
            document.getElementById('sdate').style.display='';
	    document.getElementById('one').value = 'S'
        }
        else {
            document.getElementById('sdate').style.display='none';
	    document.getElementById('one').value = 'H'
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('filld'+i).style.display=='none' ) {
                document.getElementById('filld'+i).style.display='';
            }
            else {
                document.getElementById('filld'+i).style.display='none';
            }
    
        }
    }

    if(elementId == 2){
        if(document.getElementById('sfirst').style.display=='none' ) {
             document.getElementById('sfirst').style.display='';
	     document.getElementById('two').value = 'S'
        }
        else {
             document.getElementById('sfirst').style.display='none';
	     document.getElementById('two').value = 'H'
        }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('firstn'+i).style.display=='none' ) {
                 document.getElementById('firstn'+i).style.display='';
            }
            else {
                 document.getElementById('firstn'+i).style.display='none';
              }
         }
    }
 
    if(elementId == 3){
        if(document.getElementById('slast').style.display=='none' ) {
             document.getElementById('slast').style.display='';
	     document.getElementById('three').value = 'S'
        }
        else {
             document.getElementById('slast').style.display='none';
	     document.getElementById('three').value = 'H'
          }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('lastn'+i).style.display=='none' ) {
                 document.getElementById('lastn'+i).style.display='';
            }
            else {
                 document.getElementById('lastn'+i).style.display='none';
              }
         }
    }
 
    if(elementId == 4){
        if(document.getElementById('scountry').style.display=='none' ) {
             document.getElementById('scountry').style.display='';
	     document.getElementById('four').value = 'S'
        }
        else {
             document.getElementById('scountry').style.display='none';
	     document.getElementById('four').value = 'H'
          }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('countr'+i).style.display=='none' ) {
                 document.getElementById('countr'+i).style.display='';
            }
            else {
                 document.getElementById('countr'+i).style.display='none';
              }
         }
    }

    if(elementId == 5){
        if(document.getElementById('sdegree').style.display=='none' ) {
             document.getElementById('sdegree').style.display='';
	     document.getElementById('five').value = 'S'
        }
        else {
             document.getElementById('sdegree').style.display='none';
	     document.getElementById('five').value = 'H'
          }
        var i=1;
        for(i=1; i<=listLenght ; i++){
            if(document.getElementById('lastdeg'+i).style.display=='none' ) {
                 document.getElementById('lastdeg'+i).style.display='';
            }
            else {
                 document.getElementById('lastdeg'+i).style.display='none';
              }
         }
    }
}

//This function is for loading the assignee  and owner drop downs according to selected client if needed
//used in ticket_list_client.html
function showAssigneeOwner(clientId,isPageLoad)
{
    if(clientId != -1)
    {
        clientData = clients[clientId];

        //if user has Admin permission and list of owners and assignees are not empty, show them
        if(clientData[1] == 1 && clientData[2].length > 0 && clientData[3].length > 0)
        {
            ownerSelect = document.getElementById('owner');
            var ownerId = document.getElementById('ownerId').value;
            assigneeSelect = document.getElementById('assignee');
            var assigneeId = document.getElementById('assigneeId').value;

            //remove items of owner drop down
            var l = ownerSelect.length;
            for(i=0;i<l;i++)
                ownerSelect.remove(1);

            //remove items of assignee drop down
            var l = assigneeSelect.length;
            for(i=0;i<l;i++)
                assigneeSelect.remove(1);

            //add item to owner drop down
            for(i=0;i<clientData[2].length;i++)
            {
                var opt = document.createElement('option');
                opt.value = clientData[2][i];
                opt.text = clientData[2][i];
                if(ownerId == opt.value)
                    opt.selected = "selected";
                try{
                    ownerSelect.add(opt,null); // standards compliant
  	          }
      	    catch(ex){
      	        ownerSelect.add(opt); // IE only
                }
            }

            //add item to assignee drop down
            for(i=0;i<clientData[3].length;i++)
            {
                var opt = document.createElement('option');
                opt.value = clientData[3][i][0];
                opt.text = clientData[3][i][1];
                if(assigneeId == opt.value)
                    opt.selected = "selected";
                try{
                    assigneeSelect.add(opt,null); // standards compliant
                }
                catch(ex){
      	        assigneeSelect.add(opt); // IE only
      	    }
            }

            //make the next row icon and assignee and owner drop downs visible
            if(document.getElementById('showNextRow'))document.getElementById('showNextRow').style.display = "";
            if(document.getElementById('assignee'))document.getElementById('assignee').style.display = "";
            if(document.getElementById('owner'))document.getElementById('owner').style.display = "";
        }

        //page is loaded because of a filtering. So Show/Hile links must be loaded
        if(isPageLoad == 1)
        {
            //make the Show/Hide links visible
            if(document.getElementById('showHideAssignee'))document.getElementById('showHideAssignee').style.display = "";
            if(document.getElementById('showHideOwner'))document.getElementById('showHideOwner').style.display = "";

            //make the Assignee column of table visible or hidden according to user's settings
            if(document.getElementById('ticketAssignee'))
            {
                if(document.getElementById('ticketAssignee').value == "S")
                {
                    document.getElementById('sassignee').style.display = "";
                    assigneeData = document.getElementsByName('assigneeData');
                    for(i=0;i<assigneeData.length;i++)
                    {
                        assigneeData[i].style.display = "";
                    }
                }
                else
                {
                    document.getElementById('sassignee').style.display = "none";
                    assigneeData = document.getElementsByName('assigneeData');
                    for(i=0;i<assigneeData.length;i++)
                    {
                        assigneeData[i].style.display = "none";
                    }
                }
            }

            //make the Owner column of table visible or hidden according to user's settings
            if(document.getElementById('ticketOwner'))
            {
                if(document.getElementById('ticketOwner').value == "S")
                {
                    document.getElementById('sowner').style.display = "";
                    ownerData = document.getElementsByName('ownerData');
                    for(i=0;i<ownerData.length;i++)
                    {
                        ownerData[i].style.display = "";
                    }
                }
                else
                {
                    document.getElementById('sowner').style.display = "none";
                    ownerData = document.getElementsByName('ownerData');
                    for(i=0;i<ownerData.length;i++)
                    {
                        ownerData[i].style.display = "none";
                    }
                }
            }
        }
    }
    else
    {
        //make the next row icon and assignee and owner drop downs invisible
        if(document.getElementById('showNextRow'))document.getElementById('showNextRow').style.display = "none";
        if(document.getElementById('assignee'))document.getElementById('assignee').style.display = "none";
        if(document.getElementById('owner'))document.getElementById('owner').style.display = "none";        
    }
}

// if enter press, sumit form
function EnterKeyPress(url,textControl,evt){	
	 if (evt.keyCode == 13)
         submitForm(url);
        else
        return; 
    } 

//function used to focus in text input when page load used by login
function text_focus()
{
	document.forms[0].email.focus();
}

function checkKeyAdvanceFAQ(url,textControl,evt)
{   
    if (evt.keyCode == '13')
        submitAdvanceSearch(url);
    else
        return; 
}

function switchStatus(historyId,historyType) 
{
    if(historyType == "comment")
        document.getElementById('historyspinner'+historyId).style.visibility = 'visible';
    else
        document.getElementById('uploadspinner'+historyId).style.visibility = 'visible';
    var url = PROJECT_URL + "/sc/ticket_history_switch_status/" + historyId + "/" + historyType + "/"; 
    var ajax = new AJAXInteraction(url, switchStatusCallback, ""); 
    ajax.doGet(); 
}

function switchStatusCallback(response) 
{
    data = response.responseText.split("|||");
    historyId = data[1];
    historyType = data[0];
    
    if(historyType == "comment")
    {
        document.getElementById('historyspinner'+historyId).style.visibility = 'hidden';
        historySpan = document.getElementById('history' + historyId);
        if(historySpan.innerHTML == "Public")
            historySpan.innerHTML = "Private";
        else
            historySpan.innerHTML = "Public";

        historyLink = document.getElementById('historylink' + historyId);
        if(historyLink.innerHTML == "Public")
            historyLink.innerHTML = "Private";
        else
            historyLink.innerHTML = "Public";
    }
    else
    {
        document.getElementById('uploadspinner'+historyId).style.visibility = 'hidden';
        uploadSpan = document.getElementById('upload' + historyId);
        if(uploadSpan.innerHTML == "Public")
            uploadSpan.innerHTML = "Private";
        else
            uploadSpan.innerHTML = "Public";

        uploadLink = document.getElementById('uploadlink' + historyId);
        if(uploadLink.innerHTML == "Public")
            uploadLink.innerHTML = "Private";
        else
            uploadLink.innerHTML = "Public";
    }
}
