
	// General
	var popupGDContent_ControlUniqueID;
	var popupGDContent_CommandFieldSeparator;
	var popupGDContent_Permission;
	var popupGDContent_PermissionSeparator;
	
	// Menu
	var popupGDContentXREFID;
	var popupGDContentSectionID;
	var popupGDContentContentID;
	var popupGDContentContentVersionID;
	var popupGDContentJobID;
	var popupGDContentId;
	var popupGDContent;
	var popupGDContentMoveUp;
	var popupGDContentMoveDown;
	var popupGDContentMoveTop;
	var popupGDContentMoveBottom;
	var popupGDContentEdit;
	var popupGDContentHelp;
	var popupGDContentProperties;
	var popupGDContentDelete;
	var popupGDContentDeleteFromSection;
	var popupGDContentDeleteFromSystem;
	var popupGDContentWorkflow;
	var popupGDContentWorkflowSubmit;
	var popupGDContentWorkflowApprove;
	var popupGDContentWorkflowReject;
	var popupGDContentWorkflowPublish;
	var popupGDContentVersionControl;
	var popupGDContentVersionControlCheckIn;
	var popupGDContentVersionControlCheckOut;
	var popupGDContentVersionControlUndoCheckOut;
	    
    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 popupGDContent_InitializeMenu(menuId){
		popupGDContentId = menuId;
		popupGDContent = igmenu_getMenuById(menuId);
		// Get the first menu item
		var items = popupGDContent.getItems();
		var item = items[0];
		var child;
		while(item){
			switch(item.getTag()){
				case 'MoveUp':popupGDContentMoveUp=item;break;
				case 'MoveDown':popupGDContentMoveDown=item;break;
				case 'MoveTop':popupGDContentMoveTop=item;break;
				case 'MoveBottom':popupGDContentMoveBottom=item;break;
				case 'Edit':popupGDContentEdit=item;break;
				case 'Help':popupGDContentHelp=item;break;
				case 'Properties':popupGDContentProperties=item;break;
				case 'VersionControl':
					popupGDContentVersionControl=item;
					// Get the children
					child=item.getFirstChild();
					while(child){
						switch(child.getTag()){
							case 'VersionControlCheckIn':popupGDContentVersionControlCheckIn=child;break;
							case 'VersionControlCheckOut':popupGDContentVersionControlCheckOut=child;break;
							case 'VersionControlUndoCheckOut':popupGDContentVersionControlUndoCheckOut=child;break;
						}
						child=child.getNextSibling();
					}
					break;	
				case 'Workflow':
					popupGDContentWorkflow=item;
					// Get the children
					child=item.getFirstChild();
					while(child){
						switch(child.getTag()){
							case 'WorkflowSubmit':popupGDContentWorkflowSubmit=child;break;
							case 'WorkflowApprove':popupGDContentWorkflowApprove=child;break;
							case 'WorkflowReject':popupGDContentWorkflowReject=child;break;
							case 'WorkflowPublish':popupGDContentWorkflowPublish=child;break;
						}
						child=child.getNextSibling();
					}
					break;			
				case 'Delete':
					popupGDContentDelete=item;
					// Get the children
					child=item.getFirstChild();
					while(child){
						switch(child.getTag()){
							case 'DeleteFromSection':popupGDContentDeleteFromSection=child;break;
							case 'DeleteFromSystem':popupGDContentDeleteFromSystem=child;break;
						}
						child=child.getNextSibling();
					}
					break;		
			}
			item=item.getNextSibling();
		}
	}
		
	function popupGDContent_GeoDocsShowMenu(vControlUniqueID, vCommandFieldSeparator, vXREFID, vSectionID, vContentID, vContentVersionID, vJobID, vPermission, vPermissionSeparator, event){
		try {		
			/*
			strPermission = LicenseHasVC.SectionIsDynamic.SectionCanUpdate
			strPermission &= ContentCanUpdate.ContentCanEdit.ContentCanRemove.ContentCanDelete
            strPermission &= ContentCanCheckIn.ContentCanCheckOut.ContentCanUndoCheckOut
            strPermission &= ContentCanApprove.ContentCanReject.ContentCanSubmit.ContentCanPublish
            */
            
			var aPermission = vPermission.split(vPermissionSeparator);
			
			popupGDContent_Permission = vPermission;
			popupGDContent_PermissionSeparator = vPermissionSeparator;
			popupGDContent_ControlUniqueID = vControlUniqueID;
			popupGDContent_CommandFieldSeparator = vCommandFieldSeparator;
			popupGDContentXREFID = vXREFID;
			popupGDContentSectionID = vSectionID;
			popupGDContentContentID = vContentID;
			popupGDContentContentVersionID = vContentVersionID;
			popupGDContentJobID = vJobID;
			
			// set everything to true for the time being
			popupGDContentMoveUp.setEnabled((aPermission[SectionCanUpdate] == '1') && (aPermission[SectionIsDynamic] != '1'));
			popupGDContentMoveDown.setEnabled((aPermission[SectionCanUpdate] == '1') && (aPermission[SectionIsDynamic] != '1'));
			popupGDContentMoveTop.setEnabled((aPermission[SectionCanUpdate] == '1') && (aPermission[SectionIsDynamic] != '1'));
			popupGDContentMoveBottom.setEnabled((aPermission[SectionCanUpdate] == '1') && (aPermission[SectionIsDynamic] != '1'));
			popupGDContentProperties.setEnabled(1);
			
			popupGDContentDeleteFromSection.setEnabled((aPermission[SectionCanEdit] == '1') && (aPermission[SectionIsDynamic] != '1'));
			if (aPermission[LicenseHasVC] == '1') {
				popupGDContentDeleteFromSystem.setEnabled((aPermission[ContentCanRemove] == '1') && ((aPermission[ContentCanCheckIn] == '1') || (aPermission[ContentCanCheckOut] == '1')));
			} else {
				popupGDContentDeleteFromSystem.setEnabled(aPermission[ContentCanRemove] == '1');
			}
			popupGDContentDelete.setEnabled(popupGDContentDeleteFromSection.getEnabled() || popupGDContentDeleteFromSystem.getEnabled());
			
			popupGDContentHelp.setEnabled(1);
			
			popupGDContentEdit.setEnabled(aPermission[ContentCanEdit]);
			popupGDContentVersionControl.setEnabled((aPermission[LicenseHasVC] == '1') && ((aPermission[ContentCanCheckIn] == '1') || (aPermission[ContentCanCheckOut] == '1') || (aPermission[ContentCanUndoCheckOut] == '1')));
			popupGDContentVersionControlCheckIn.setEnabled(aPermission[ContentCanCheckIn] == '1');
			popupGDContentVersionControlCheckOut.setEnabled(aPermission[ContentCanCheckOut] == '1');
			popupGDContentVersionControlUndoCheckOut.setEnabled(aPermission[ContentCanUndoCheckOut] == '1');
			
			popupGDContentWorkflow.setEnabled((aPermission[ContentCanSubmit] == '1') || (aPermission[ContentCanApprove] == '1') || (aPermission[ContentCanReject] == '1') || (aPermission[ContentCanPublish] == '1'));
			popupGDContentWorkflowSubmit.setEnabled(aPermission[ContentCanSubmit] == '1');
			popupGDContentWorkflowApprove.setEnabled(aPermission[ContentCanApprove] == '1');
			popupGDContentWorkflowReject.setEnabled(aPermission[ContentCanReject] == '1');
			popupGDContentWorkflowPublish.setEnabled(aPermission[ContentCanPublish] == '1');
			
		}
		catch(exception){
			debugger;
		}
		igmenu_showMenu(popupGDContentId,event);
	}
	
	function popupGDContent_ItemClick(menuId, itemId){
		var menuItem=igmenu_getItemById(itemId);		
		var aPermission = popupGDContent_Permission.split(popupGDContent_PermissionSeparator);
		
		switch(menuItem.getTag()){
			case 'MoveUp':
				igmenu_showMenu();
				popupGDContent_Move(popupGDContentXREFID, menuItem.getTag());
				break;
			case 'MoveDown':
				igmenu_showMenu();
				popupGDContent_Move(popupGDContentXREFID, menuItem.getTag());
				break;
			case 'MoveTop':
				igmenu_showMenu();
				popupGDContent_Move(popupGDContentXREFID, menuItem.getTag());
				break;
			case 'MoveBottom':
				igmenu_showMenu();
				popupGDContent_Move(popupGDContentXREFID, menuItem.getTag());
				break;
			case 'DeleteFromSection':
				igmenu_showMenu();
				popupGDContent_Delete(popupGDContentXREFID, menuItem.getTag());
				break;
			case 'DeleteFromSystem':
				igmenu_showMenu();
				if (aPermission[SectionIsDynamic] == '1') {
					popupGDContent_Delete(popupGDContentContentID, menuItem.getTag());
				}
				else {
					popupGDContent_Delete(popupGDContentXREFID, menuItem.getTag());
				}
				break;
			case 'Properties':
				igmenu_showMenu();
				popupGDContent_ShowProperties(popupGDContentContentID, popupGDContentSectionID);
				break;
			case 'Edit':
				igmenu_showMenu();
				if (aPermission[ContentCanCheckOut] == '1') {
					popupGDContent_PopCheckOutOnEdit(popupGDContentContentID);
				}
				else {
					if (aPermission[SectionIsDynamic] == '1') {
						popupGDContent_Edit(popupGDContentContentID);
					}
					else {
						popupGDContent_Edit(popupGDContentXREFID);
					}
				}	
				break;
			case 'VersionControlCheckIn':
				igmenu_showMenu();
				popupGDContent_VersionControl(popupGDContentContentID, menuItem.getTag());
				break;
			case 'VersionControlCheckOut':
				igmenu_showMenu();
				popupGDContent_VersionControl(popupGDContentContentID, menuItem.getTag());
				break;
			case 'VersionControlUndoCheckOut':
				igmenu_showMenu();
				popupGDContent_VersionControlUndoCheckOut(popupGDContentContentID);
				break;
			case 'WorkflowSubmit':
				igmenu_showMenu();
				popupGDContent_Workflow(popupGDContentContentVersionID, 0, menuItem.getTag());
				break;
			case 'WorkflowApprove':
				igmenu_showMenu();
				popupGDContent_Workflow(0, popupGDContentJobID, menuItem.getTag());
				break;
			case 'WorkflowReject':
				igmenu_showMenu();
				popupGDContent_Workflow(0, popupGDContentJobID, menuItem.getTag());
				break;
			case 'WorkflowPublish':
				igmenu_showMenu();
				popupGDContent_WorkflowPublish(popupGDContentContentID);
				break;
			case 'Help':
				igmenu_showMenu();
				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 popupGDContent_Refresh(){
		window.location = window.location;
	}
	
	function popupGDContent_Move(vXREFID, vMode) {
		__doPostBack(popupGDContent_ControlUniqueID, vMode + popupGDContent_CommandFieldSeparator + vXREFID);		
	}
	
	function popupGDContent_Delete(vID, vMode) {
		__doPostBack(popupGDContent_ControlUniqueID, vMode + popupGDContent_CommandFieldSeparator + vID);
	}
	
	function popupGDContent_PopCheckOutOnEdit(vContentID){
		var queryString;

		queryString = 'ContentID=' + vContentID + '&inEditMode=true';
		Dialog('/gd/webvieweditor/dialogs/dlgCheckOut.aspx?' + queryString, function (param) {
			if (param) {
				popupGDContent_Refresh();
			}
		}, null);
	}
	
	function popupGDContent_ShowProperties(vContentID, vSectionID){
		var queryString;

		queryString = 'ContentID=' + vContentID + '&SectionID=' + vSectionID;
		Dialog('/gd/webvieweditor/dialogs/dlgContentProperties.aspx?' + queryString, function (param) {
			if (param) {
				popupGDContent_Refresh();
			}
		}, null);
	}
	
	// EDIT
	function popupGDContent_Edit(vID) {
		__doPostBack(popupGDContent_ControlUniqueID, 'Edit' + popupGDContent_CommandFieldSeparator + vID);
	}
	
	// Version Control
	function popupGDContent_VersionControl(vContentID, vMode){
		var queryString;

		switch(vMode){
			case 'VersionControlCheckIn':
				queryString = 'ContentID=' + vContentID;
				Dialog('/gd/webvieweditor/dialogs/dlgCheckIn.aspx?' + queryString, function (param) {
					popupGDContent_Refresh();
				}, null);
				
				break;
			case 'VersionControlCheckOut':
				queryString = 'ContentID=' + vContentID;
				Dialog('/gd/webvieweditor/dialogs/dlgCheckOut.aspx?' + queryString, function (param) {
					popupGDContent_Refresh();
				}, null);
				
				break;
		}
	}
	
	// UNDO CHECK-OUT
	function popupGDContent_VersionControlUndoCheckOut(vContentID){
		__doPostBack(popupGDContent_ControlUniqueID, 'VersionControlUndoCheckOut' + popupGDContent_CommandFieldSeparator + vContentID);
	}
	
	// WORKFLOW SUBMIT, APPROVE, REJECT
	function popupGDContent_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) {
						popupGDContent_Refresh();
					}
				}, null);

				break;
			case 'WorkflowApprove':
				queryString = 'ApprovalMode=approve&JobIDs=' + vJobID;
				Dialog('/gd/WebViewEditor/dialogs/dlgApproveComments.aspx?' + queryString, function (param) {
					if (param) {
						popupGDContent_Refresh();
					}
				}, null);
				
				break;
			case 'WorkflowReject':
				queryString = 'ApprovalMode=reject&JobIDs=' + vJobID;
				Dialog('/gd/WebViewEditor/dialogs/dlgApproveComments.aspx?' + queryString, function (param) {
					if (param) {
						popupGDContent_Refresh();
					}
				}, null);

				break;
		}
	}
	
	// PUBLISH
	function popupGDContent_WorkflowPublish(vContentID){
		__doPostBack(popupGDContent_ControlUniqueID, 'WorkflowPublish' + popupGDContent_CommandFieldSeparator + vContentID);
	}