//Decode JSON strings
function doJSON(stringData) {
      try {
          return Ext.util.JSON.decode(stringData);
      }
      catch (err) {
          Ext.MessageBox.alert('ERROR', 'Could not decode ' + stringData);
      }
}

//Check existence permalink through AJAX while editing permalinks
var checkingPermalink = false;

function checkPermalink() {
    var permalink = Ext.get('frm-url').getValue();

    if(permalink == '') {
        Ext.get('frm-url-test').dom.innerHTML = "Your internet address cannot be empty.";
    }
    else if(permalink.length < 3) {
        Ext.get('frm-url-test').dom.innerHTML = "Your internet address is invalid. It must be longer then 3 characters.";
    }
    else {
        Ext.get('frm-url-test').dom.innerHTML = '&nbsp;';

        if(!checkingPermalink)
        {
            checkingPermalink = true;

            Ext.Ajax.request({
                url: '/spot/exists/format/json',
                success: function(result, request) {
                    var jsonObject = doJSON(result.responseText);

                    Ext.get('frm-url-test').insertHtml('beforeEnd', jsonObject.exists);

                    if(jsonObject.exists == '0') {
                        Ext.get('frm-url').setStyle('color', 'black');
                        Ext.get('frm-url-test').setStyle('color', 'green');

                        Ext.get('frm-url-test').dom.innerHTML = "'" + permalink + "' is available";
                    }
                    else {
                        Ext.get('frm-url').setStyle('color', 'red');
                        Ext.get('frm-url-test').setStyle('color', 'red');

                        Ext.get('frm-url-test').dom.innerHTML = "'" + permalink + "' is not available";
                    }

                },
                failure: function(result, request) {
                    Ext.MessageBox.alert('Failed', 'Successfully posted form, but error occurred: '+result.responseText);
                },
                headers: {
                    'X-Requested-With': 'XMLHttpRequest'
                },
                params: {
                    'permalink': permalink
               }
             });

             checkingPermalink = false;
        }
     }
}
  
  

