
	// General
	var popupGDFormBuilderForm_ControlUniqueID;
	var popupGDFormBuilderForm_CommandFieldSeparator;
	var popupGDFormBuilderForm_Permission;
	var popupGDFormBuilderForm_PermissionSeparator;
	
	// Menu
	var popupGDFormBuilderFormXREFID;
	var popupGDFormBuilderFormSectionID;
	var popupGDFormBuilderFormContentID;
	var popupGDFormBuilderFormContentVersionID;
	var popupGDFormBuilderFormJobID;
	var popupGDFormBuilderFormId;
	var popupGDFormBuilderForm;
	var popupGDFormBuilderFormNewHeading;
	var popupGDFormBuilderFormNewQuestion;
	var popupGDFormBuilderFormEdit;
	var popupGDFormBuilderFormHelp;
	var popupGDFormBuilderFormProperties;
	var popupGDFormBuilderFormDelete;
	var popupGDFormBuilderFormDeleteFromSection;
	var popupGDFormBuilderFormDeleteFromSystem;
	var popupGDFormBuilderFormWorkflow;
	var popupGDFormBuilderFormWorkflowSubmit;
	var popupGDFormBuilderFormWorkflowApprove;
	var popupGDFormBuilderFormWorkflowReject;
	var popupGDFormBuilderFormWorkflowPublish;
	var popupGDFormBuilderFormVersionControl;
	var popupGDFormBuilderFormVersionControlCheckIn;
	var popupGDFormBuilderFormVersionControlCheckOut;
	var popupGDFormBuilderFormVersionControlUndoCheckOut;
	    
    var LicenseHasVC = 0;
    var SectionIsDynamic = 1;
    var SectionCanUpdate = 2;    
    var SectionCanEdit = 3;   
    var ContentCanUpdate = 4;
    var ContentCanEdit = 5;
    var ContentCanRemove = 6;
    var ContentCanDelete = 7;    
    var ContentCanCheckIn = 8;
    var ContentCanCheckOut = 9;
    var ContentCanUndoCheckOut = 10;
    var ContentCanSubmit = 11;
    var ContentCanApprove = 12;    
    var ContentCanReject = 13;
    var ContentCanPublish = 14;

	
	function popupGDFormBuilderForm_InitializeMenu(menuId){
		popupGDFormBuilderFormId = menuId;
		popupGDFormBuilderForm = igmenu_getMenuById(menuId);
		// Get the first menu item
		var items = popupGDFormBuilderForm.getItems();
		var item = items[0];
		var child;
		while(item){
			switch(item.getTag()){
				case 'NewHeading':popupGDFormBuilderFormNewHeading=item;break;
				case 'NewQuestion':popupGDFormBuilderFormNewQuestion=item;break;
				case 'Edit':popupGDFormBuilderFormEdit=item;break;
				case 'Help':popupGDFormBuilderFormHelp=item;break;
				case 'Properties':popupGDFormBuilderFormProperties=item;break;
				case 'VersionControl':
					popupGDFormBuilderFormVersionControl=item;
					// Get the children
					child=item.getFirstChild();
					while(child){
						switch(child.getTag()){
							case 'VersionControlCheckIn':popupGDFormBuilderFormVersionControlCheckIn=child;break;
							case 'VersionControlCheckOut':popupGDFormBuilderFormVersionControlCheckOut=child;break;
							case 'VersionControlUndoCheckOut':popupGDFormBuilderFormVersionControlUndoCheckOut=child;break;
						}
						child=child.getNextSibling();
					}
					break;	
				case 'Workflow':
					popupGDFormBuilderFormWorkflow=item;
					// Get the children
					child=item.getFirstChild();
					while(child){
						switch(child.getTag()){
							case 'WorkflowSubmit':popupGDFormBuilderFormWorkflowSubmit=child;break;
							case 'WorkflowApprove':popupGDFormBuilderFormWorkflowApprove=child;break;
							case 'WorkflowReject':popupGDFormBuilderFormWorkflowReject=child;break;
							case 'WorkflowPublish':popupGDFormBuilderFormWorkflowPublish=child;break;
						}
						child=child.getNextSibling();
					}
					break;			
				case 'Delete':
					popupGDFormBuilderFormDelete=item;
					// Get the children
					child=item.getFirstChild();
					while(child){
						switch(child.getTag()){
							case 'DeleteFromSection':popupGDFormBuilderFormDeleteFromSection=child;break;
							case 'DeleteFromSystem':popupGDFormBuilderFormDeleteFromSystem=child;break;
						}
						child=child.getNextSibling();
					}
					break;		
			}
			item=item.getNextSibling();
		}
	}
		
	function popupGDFormBuilderForm_GeoDocsShowMenu(vControlUniqueID, vCommandFieldSeparator, vXREFID, vSectionID, vContentID, vContentVersionID, vJobID, vPermission, vPermissionSeparator, event){
		try {	
			var aPermission = vPermission.split(vPermissionSeparator);
			
			popupGDFormBuilderForm_Permission = vPermission;
			popupGDFormBuilderForm_PermissionSeparator = vPermissionSeparator;
			popupGDFormBuilderForm_ControlUniqueID = vControlUniqueID;
			popupGDFormBuilderForm_CommandFieldSeparator = vCommandFieldSeparator;
			popupGDFormBuilderFormXREFID = vXREFID;
			popupGDFormBuilderFormSectionID = vSectionID;
			popupGDFormBuilderFormContentID = vContentID;
			popupGDFormBuilderFormContentVersionID = vContentVersionID;
			popupGDFormBuilderFormJobID = vJobID;
			
			// set everything to true for the time being
			if (aPermission[LicenseHasVC] == '1') {
				popupGDFormBuilderFormNewHeading.setEnabled((aPermission[ContentCanCheckIn] == '1') && (aPermission[SectionIsDynamic] != '1'));
				popupGDFormBuilderFormNewQuestion.setEnabled((aPermission[ContentCanCheckIn] == '1') && (aPermission[SectionIsDynamic] != '1'));
			} else {
				popupGDFormBuilderFormNewHeading.setEnabled((aPermission[SectionIsDynamic] != '1'));
				popupGDFormBuilderFormNewQuestion.setEnabled((aPermission[SectionIsDynamic] != '1'));
			}
			popupGDFormBuilderFormProperties.setEnabled(1);
			
			popupGDFormBuilderFormDeleteFromSection.setEnabled((aPermission[SectionCanUpdate] == '1') && (aPermission[SectionIsDynamic] != '1'));
			if (aPermission[LicenseHasVC] == '1') {
				popupGDFormBuilderFormDeleteFromSystem.setEnabled((aPermission[ContentCanRemove] == '1') && ((aPermission[ContentCanCheckIn] == '1') || (aPermission[ContentCanCheckOut] == '1')));
			} else {
				popupGDFormBuilderFormDeleteFromSystem.setEnabled(aPermission[ContentCanRemove] == '1');
			}
			popupGDFormBuilderFormDelete.setEnabled(popupGDFormBuilderFormDeleteFromSection.getEnabled() || popupGDFormBuilderFormDeleteFromSystem.getEnabled());
			
			popupGDFormBuilderFormHelp.setEnabled(1);
			
			popupGDFormBuilderFormEdit.setEnabled(aPermission[ContentCanCheckIn] == '1');
			popupGDFormBuilderFormVersionControl.setEnabled((aPermission[LicenseHasVC] == '1') && ((aPermission[ContentCanCheckIn] == '1') || (aPermission[ContentCanCheckOut] == '1') || (aPermission[ContentCanUndoCheckOut] == '1')));
			popupGDFormBuilderFormVersionControlCheckIn.setEnabled(aPermission[ContentCanCheckIn] == '1');
			popupGDFormBuilderFormVersionControlCheckOut.setEnabled(aPermission[ContentCanCheckOut] == '1');
			popupGDFormBuilderFormVersionControlUndoCheckOut.setEnabled(aPermission[ContentCanUndoCheckOut] == '1');
			
			popupGDFormBuilderFormWorkflow.setEnabled((aPermission[ContentCanSubmit] == '1') || (aPermission[ContentCanApprove] == '1') || (aPermission[ContentCanReject] == '1') || (aPermission[ContentCanPublish] == '1'));
			popupGDFormBuilderFormWorkflowSubmit.setEnabled(aPermission[ContentCanSubmit] == '1');
			popupGDFormBuilderFormWorkflowApprove.setEnabled(aPermission[ContentCanApprove] == '1');
			popupGDFormBuilderFormWorkflowReject.setEnabled(aPermission[ContentCanReject] == '1');
			popupGDFormBuilderFormWorkflowPublish.setEnabled(aPermission[ContentCanPublish] == '1');
			
		}
		catch(exception){
			debugger;
		}
		igmenu_showMenu(popupGDFormBuilderFormId,event);
	}
	
	function popupGDFormBuilderForm_ItemClick(menuId, itemId){
		var menuItem=igmenu_getItemById(itemId);
		igmenu_showMenu();
		
		var aPermission = popupGDFormBuilderForm_Permission.split(popupGDFormBuilderForm_PermissionSeparator);
		
		switch(menuItem.getTag()){
			case 'NewHeading':
				popupGDFormBuilderForm_New(popupGDFormBuilderFormContentVersionID, menuItem.getTag());
				break;
			case 'NewQuestion':
				popupGDFormBuilderForm_New(popupGDFormBuilderFormContentVersionID, menuItem.getTag());
				break;
			case 'DeleteFromSection':
				popupGDFormBuilderForm_Delete(popupGDFormBuilderFormXREFID, menuItem.getTag());
				break;
			case 'DeleteFromSystem':
				if (aPermission[SectionIsDynamic] == '1') {
					popupGDFormBuilderForm_Delete(popupGDFormBuilderFormContentID, menuItem.getTag());
				}
				else {
					popupGDFormBuilderForm_Delete(popupGDFormBuilderFormXREFID, menuItem.getTag());
				}
				break;
			case 'Properties':
				popupGDFormBuilderForm_ShowProperties(popupGDFormBuilderFormContentID, popupGDFormBuilderFormSectionID);
				break;
			case 'Edit':
				popupGDFormBuilderForm_ShowProperties(popupGDFormBuilderFormContentID, popupGDFormBuilderFormSectionID);
				break;
			case 'VersionControlCheckIn':
				popupGDFormBuilderForm_VersionControl(popupGDFormBuilderFormContentID, popupGDFormBuilderFormContentVersionID, menuItem.getTag());
				break;
			case 'VersionControlCheckOut':
				popupGDFormBuilderForm_VersionControl(popupGDFormBuilderFormContentID, popupGDFormBuilderFormContentVersionID, menuItem.getTag());
				break;
			case 'VersionControlUndoCheckOut':
				popupGDFormBuilderForm_VersionControlUndoCheckOut(popupGDFormBuilderFormContentID);
				break;
			case 'WorkflowSubmit':
				popupGDFormBuilderForm_Workflow(popupGDFormBuilderFormContentVersionID, 0, menuItem.getTag());
				break;
			case 'WorkflowApprove':
				popupGDFormBuilderForm_Workflow(0, popupGDFormBuilderFormJobID, menuItem.getTag());
				break;
			case 'WorkflowReject':
				popupGDFormBuilderForm_Workflow(0, popupGDFormBuilderFormJobID, menuItem.getTag());
				break;
			case 'WorkflowPublish':
				popupGDFormBuilderForm_WorkflowPublish(popupGDFormBuilderFormContentID);
				break;
			case 'Help':
				window.open('/gd/webvieweditor/dialogs/dlgHelp.aspx?Element=Content&Version=70',null,'height=550,width=450,status=no,toolbar=no,menubar=no,location=no,scrollbars=yes');
				break;
		}
	}
	
	function popupGDFormBuilderForm_Refresh(){
		window.location = window.location;
	}
	
	function popupGDFormBuilderForm_New(vID, vMode) {
		var queryString;

		switch(vMode){
			case 'NewHeading':
				queryString = 'QuestionID=0&FormID=' + vID;
				Dialog('/gd/modules/FormBuilder/dlgHeadingProperties.aspx?' + queryString, function (param) {
					if (param) {
						popupGDFormBuilderForm_Refresh();
					}
				}, null);
				break;
			case 'NewQuestion':
				queryString = 'QuestionID=0&FormID=' + vID;
				Dialog('/gd/modules/FormBuilder/dlgQuestionProperties.aspx?' + queryString, function (param) {
					if (param) {
						popupGDFormBuilderForm_Refresh();
					}
				}, null);
				break;
		}
	}
	
	function popupGDFormBuilderForm_Delete(vID, vMode) {
		__doPostBack(popupGDFormBuilderForm_ControlUniqueID, vMode + popupGDFormBuilderForm_CommandFieldSeparator + vID);
	}
	
	function popupGDFormBuilderForm_ShowProperties(vContentID, vSectionID){
		var queryString;

		queryString = 'ContentID=' + vContentID + '&SectionID=' + vSectionID;
		Dialog('/gd/modules/FormBuilder/dlgFormProperties.aspx?' + queryString, function (param) {
			if (param) {
				popupGDFormBuilderForm_Refresh();
			}
		}, null);
	}
		
	// Version Control
	function popupGDFormBuilderForm_VersionControl(vContentID, vContentVersionID, vMode){
		var queryString;

		switch(vMode){
			case 'VersionControlCheckIn':
				queryString = 'ContentID=' + vContentID;
				Dialog('/gd/webvieweditor/dialogs/dlgCheckIn.aspx?' + queryString, function (param) {
					popupGDFormBuilderForm_Refresh();
				}, null);
				
				break;
			case 'VersionControlCheckOut':
				queryString = 'ContentID=' + vContentID;
				Dialog('/gd/webvieweditor/dialogs/dlgCheckOut.aspx?' + queryString, function (param) {
					if (param) {
						__doPostBack(popupGDFormBuilderForm_ControlUniqueID, 'VersionControlCheckOut' + popupGDFormBuilderForm_CommandFieldSeparator + vContentID + popupGDFormBuilderForm_CommandFieldSeparator + vContentVersionID);
					}
				}, null);
				
				break;
		}
	}
	
	// UNDO CHECK-OUT
	function popupGDFormBuilderForm_VersionControlUndoCheckOut(vContentID){
		__doPostBack(popupGDFormBuilderForm_ControlUniqueID, 'VersionControlUndoCheckOut' + popupGDFormBuilderForm_CommandFieldSeparator + vContentID);
	}
	
	// WORKFLOW SUBMIT, APPROVE, REJECT
	function popupGDFormBuilderForm_Workflow(vContentVersionID, vJobID, vMode){
		var queryString;

		switch(vMode){
			case 'WorkflowSubmit':
				queryString = 'ContentTypeIsPage=false&ContentId=' + vContentVersionID;
				Dialog('/gd/WebViewEditor/dialogs/dlgSelectWorkflowPlan.aspx?' + queryString, function (param) {
					if (param) {
						popupGDFormBuilderForm_Refresh();
					}
				}, null);

				break;
			case 'WorkflowApprove':
				queryString = 'ApprovalMode=approve&JobIDs=' + vJobID;
				Dialog('/gd/WebViewEditor/dialogs/dlgApproveComments.aspx?' + queryString, function (param) {
					if (param) {
						popupGDFormBuilderForm_Refresh();
					}
				}, null);
				
				break;
			case 'WorkflowReject':
				queryString = 'ApprovalMode=reject&JobIDs=' + vJobID;
				Dialog('/gd/WebViewEditor/dialogs/dlgApproveComments.aspx?' + queryString, function (param) {
					if (param) {
						popupGDFormBuilderForm_Refresh();
					}
				}, null);

				break;
		}
	}
	
	// PUBLISH
	function popupGDFormBuilderForm_WorkflowPublish(vContentID){
		__doPostBack(popupGDFormBuilderForm_ControlUniqueID, 'WorkflowPublish' + popupGDFormBuilderForm_CommandFieldSeparator + vContentID);
	}