Ext.onReady(function() {
 Ext.QuickTips.init();
}); // eo function onReady

 function showLinkEdit(initOptions){
      var _self = this;
      var _settings = {};
      _settings.editorLinkID = 0;
      
      Ext.apply(_settings, initOptions);
	 
	var targetData = [['', 'Open In the Same Window'], ['_blank', 'Open In A New Window']];
	var targetStore = new Ext.data.SimpleStore({
		 fields:['TargetCode', 'TargetName']
		,data:targetData
	}); 

	function saveForm(){
		return LinkPanel.getForm().submit({
			clientValidation: true,            
			url:'/ajax/navigation/submitLink.cfm', 
			waitMsg:'Saving Link...',
			params: {
			  link_id: _settings.editorLinkID,
			  link_element: _settings.editorELID
			},
			errorReader : new Ext.data.JsonReader({
				root:'errors',
				successProperty:'success'
			  }, ['id','title', 'msg']),
			success: function(form, action) {
			  $(_settings.editorELID).update(action.result.link_title);
			  $(_settings.editorELID).setAttribute('href', action.result.link_url);
			  $(_settings.editorELID).setAttribute('target', action.result.link_target);
			  Ext.getCmp('link_editor_'+_settings.editorLinkID).close();
			  if(action.result.link_id)
				_settings.editorLinkID = action.result.link_id;
			  return true;
			},
			failure: function(form, action) {
			  switch (action.failureType) {
				case Ext.form.Action.CLIENT_INVALID:
				  Ext.Msg.alert('Failure', 'Please verify all form fields are correct.');
				  break;
				case Ext.form.Action.CONNECT_FAILURE:
				  Ext.Msg.alert('Failure', 'Ajax communication failed');
				  break;
				case Ext.form.Action.SERVER_INVALID:
				default:
				  Ext.Msg.alert('Failure', action.result.msg);
			  }
			  return false;
			}
		});
	}
	
	
	 // application main entry point
	 
	 // create form panel with anchored fields
	   var LinkPanel = new Ext.form.FormPanel({
		 id:'formanchor-form',
		 reader:new Ext.data.XmlReader({
					  record : 'result',
					  success : '@success'
				  }, [{name: 'linktitle', mapping: 'linktitle'},
					  {name: 'linkurl', mapping: 'linkurl'},
					  {name: 'linktarget', mapping: 'linktarget'}

				  ]),
		 labelWidth:70,
		 bodyStyle:'padding:15px',
		 border:false,
		 frame:true,
		 defaults: {
			anchor: '95%',
			msgTarget: 'side'
		 },
		 items:[{
					xtype:'textfield',
					fieldLabel: 'Link Title',
					name:'linktitle',
					id: 'link_editor_title_'+_settings.editorLinkID,
					allowBlank:false,
					maxLength: 70, 
					maskRe:/^([, _a-zA-Z0-9\-])+$/,
					maxLengthText: 'Maximum keyword length is 70 characters'
				 },{
					xtype:'textfield',
					fieldLabel: 'Link URL',
					name:'linkurl',
					allowBlank:false,
					id: 'link_editor_url_'+_settings.editorLinkID,
					maxLength: 255, 
					maxLengthText: 'Maximum keyword length is 255 characters'
				 },new Ext.form.ComboBox({
					  store:targetStore,
					  triggerAction: 'all',
					  allowBlank:false, 
					  editable: false,
					  mode: 'local',
					  hiddenName: 'linktarget',
					  id: 'link_editor_combo_'+_settings.editorLinkID,
					  valueField: 'TargetCode',
					  displayField: 'TargetName',
					  value:'_blank'
				  })],
		 buttons:[{
					text:'Save',
					handler: function(){ saveForm(); }
				  },{
					text:'Cancel',
					handler: function(){ win.close() }
			      }]
	   });
	  
	 // create and show window
	 var win = new Ext.Window({
	 id:'link_editor_'+_settings.editorLinkID
	 ,width:450
	 ,minWidth:400
	 ,height:200
	 ,minHeight:200
	 ,maxHeight:200
	 ,plain:true
	 ,title:'Link Editor'
	 ,layout:'fit'
	 ,border:false
	 ,closable:false
	 ,items:LinkPanel
	 });
	 win.show();
	  
	  
	LinkPanel.getForm().load({url:'/ajax/editor/getLink.cfm?id='+_settings.editorLinkID, waitMsg:'Loading...'});
  }
  

