// CUSTOM JAVASCRIPT FOR FMS MODULE

SortSelectCounter = 0;
SortSelectCounter_real = 0;


// Pop a custom dialogue to ask for a clerk
function askForClerk(TransactionType, ID, EvalJSAfter, EvalJSCancel) {

	/*
	CurrentCookieValue = getCookie('ClerkCookie_' + TransactionType + '_' + ID);
	if (CurrentCookieValue != '' && CurrentCookieValue != null && CurrentCookieValue != undefined && CurrentCookieValue != 'undefined') {
		eval(EvalJSAfter);
		return;
	}
	*/
	
	generateWaitDiv();
	
	EvalJSAfter2  = EvalJSAfter;
	EvalJSCancel2 = EvalJSCancel;

	AJAX_sendRequest(true,
	
	'/provisioner/fms/includes/ajax_get_clerks.php',
	
	"if (VarForResponseText.substr(0,7) == 'OUTPUT:') { deleteWaitDiv(); askForClerkAction(VarForResponseText.substr(7), '" + TransactionType + "', '" + ID + "', EvalJSAfter2, EvalJSCancel2); } " +
	"else { alert(VarForResponseText); deleteWaitDiv(); }");
}

function askForClerkAction(ClerksList, TransactionType, ID, EvalJSAfter, EvalJSCancel) {
	EvalJSAfter2 = EvalJSAfter;

	CSSArray = new Array();
	CSSArray['width'] = '350px';
	
	SetInnerHTML
	= '<select name="ClerksList" id="ClerksList_ID" style="width: 300px" onChange="if (this.selectedIndex > 0) document.getElementById(\'ClerkNew_ID\').value = \'\';">'
	+ '<option value=\"\">Select Clerk or Enter New One</option>';
	
	ClerksArray = ClerksList.split(',');
	for (i = 0; i < ClerksArray.length; i++)
		SetInnerHTML += '<option value="' + ClerksArray[i] + '">' + ClerksArray[i] + '</option>';
	
	SetInnerHTML
	+= '</select><br>'
	+  '<input type="text" name="ClerkNew" id="ClerkNew_ID" style="width: 300px" onFocus="document.getElementById(\'ClerksList_ID\').selectedIndex = 0;">'
	+  '<div style="margin-top: 15px">'
	+  '<input type="button" value="Set Clerk" style="width: 100px; margin-right: 5px" onClick="setClerk(\'' + TransactionType + '\', \'' + ID + '\', EvalJSAfter2)">'
	+  '<input type="button" value="Cancel" style="width: 100px;" onClick="' + EvalJSCancel + '; deleteWaitDiv();">'
	+  '</div>';
	
	generateWaitDiv(null, null, CSSArray, SetInnerHTML);
}

function setClerk(TransactionType, ID, EvalJSAfter) {
	
	SelectedClerk = document.getElementById('ClerksList_ID');
	SetClerk      = (SelectedClerk.selectedIndex > 0)?SelectedClerk[SelectedClerk.selectedIndex].value:document.getElementById('ClerkNew_ID').value;
	
	if (SetClerk == '') {
		alert('You need to select or enter a clerk');
		return;
	}
	
	deleteWaitDiv();
	
	generateWaitDiv('Please Wait'); 
	
	AJAX_sendRequest(true,
	
	'/provisioner/fms/includes/ajax_set_clerk.php?TransactionType=' + TransactionType + '&ID=' + ID + '&SetClerk=' + SetClerk,
	
	"if (VarForResponseText == 'GOOD') { deleteWaitDiv(); " + EvalJSAfter + " } else { alert(VarForResponseText); deleteWaitDiv(); }");
}

function getIDsFromReportCheckboxes(FormObj) {
	IDsArray   = new Array();
	FormFields = FormObj.elements;
	for (i = 0; i < FormFields.length; i++) {
		if (FormFields[i].type == 'checkbox' && FormFields[i].getAttribute('name') == 'MembershipID[]') {
			if (FormFields[i].checked)
				IDsArray.push(FormFields[i].value);
		}
	}
	
	return IDsArray;
}



function generateSortOpt(strValue, strText, Populate) {
	with (document) {
		NewOpt  = createElement('option');
		NewText = createTextNode(strText);
		
		with (NewOpt) {
			setAttribute('value', strValue);
			
			if (Populate && OrderBy_array[i] == strValue)
				setAttribute('selected', 'selected');
			
			appendChild(NewText);
		}
	}
	
	return NewOpt;
}

function addSortField(Num, Populate, SortSelectWidth) {
	
	if (!Num) Num = 1;
	
	for (i = 0; i < Num; i++) {
	
		with (document) {
			NewDiv    = createElement('div');
			NewSelect = createElement('select');
			
			NewA_X    = createElement('a');
			NewIcon_X = createElement('img');
		}
		
		DivID = 'arrange_container' + SortSelectCounter + '_ID';
		NewDiv.setAttribute('id', DivID);
		
		with (NewSelect) {
			setAttribute('name', 'arrange' + SortSelectCounter);
			setAttribute('id',   'arrange' + SortSelectCounter + '_ID');
			
			style.width = (SortSelectWidth != null)?SortSelectWidth:'300px';
			
			for (var j in SortValues)
				appendChild(generateSortOpt(SortValues[j], SortTexts[j], Populate));
		}
		
		with (NewA_X) {
			setAttribute('href', 'javascript: removeSortField(\'' + DivID + '\');');
			setAttribute('onFocus', 'this.blur()');
		}
		
		with (NewIcon_X) {
			setAttribute('src', '../admin/images/icon_x.gif');
			setAttribute('title', 'Delete this sort option');
			setAttribute('border', '0');
			setAttribute('align', 'absmiddle');
		}
		
		document.getElementById('SortFieldsContainer').appendChild(NewDiv);
		with (NewDiv) {
			appendChild(NewSelect);
			appendChild(NewA_X);
			NewA_X.appendChild(NewIcon_X);
		}
		
		SortSelectCounter++;
		SortSelectCounter_real++;
		
		document.getElementById('SortSelectCount_ID').value      = SortSelectCounter;
		document.getElementById('SortSelectCount_real_ID').value = SortSelectCounter_real;
	}
}

function removeSortField(ObjID) {
	if (SortSelectCounter_real > 1) {
		document.getElementById('SortFieldsContainer').removeChild(document.getElementById(ObjID));
		SortSelectCounter_real--;
	}
}