dojo.provide("finder.app.util");

finder.app.util._PHONE_FORMAT_STRING = [ "n", "nn", "nnn", "nnn n", "nnn nn", "nnn nnn", "nnn nnn n", "nnn nnn nn",
      "nnn nnn nnn", "nnn nnn nnn", "nnn nnn nnn" ];
finder.app.util._PHONE_INPUT_TEXT_LENGTH = 11; // 9 digits + 2 white spaces
// e.g. 123 456 789

// Strip out unwanted characters from phone number
finder.app.util.getPhoneNumberFormatted = function(phoneNumber) {
   if (phoneNumber) {
      var reExtraChars = /[()\ ]/g;
      return dojo.trim(phoneNumber).replace(reExtraChars, "");
   }

   return phoneNumber;
};

finder.app.util.formatPhoneNumber = function(inputTextNode, e) {
   if(e && (e.keyCode == dojo.keys.HOME || e.keyCode == dojo.keys.END || e.shiftKey || e.ctrlKey 
         || e.keyCode == dojo.keys.BACKSPACE || e.keyCode == dojo.keys.DELETE 
         || e.keyCode == dojo.keys.LEFT_ARROW || e.keyCode == dojo.keys.RIGHT_ARROW)) {
      return;
   }
   
   finder.ftabs.util.limitTextArea(inputTextNode, finder.app.util._PHONE_INPUT_TEXT_LENGTH);
   inputTextNode.value = finder.app.util.formatPhoneNumberByValue(inputTextNode.value);
};

finder.app.util.formatPhoneNumberByValue = function(phoneNumber) {
   var reExtraChars = /[()\ ]/g;
   var inputTextValue = dojo.trim(phoneNumber).replace(reExtraChars, "");
   if (inputTextValue.length > 0) {
      var formatString = finder.app.util._PHONE_FORMAT_STRING[inputTextValue.length - 1];
      inputTextValue = finder.ftabs.text.simpleFormatTel(inputTextValue,
            formatString).valueOf();
   }
   return inputTextValue;
};

/**
 * @param id input box element id
 * @param isFocus this value will be either true(when we want to focus input box) or false(when we don't want to focus input box)
 * @param isFlush this value will be either true(when we want to reset input box) or false(when we don't want to reset
 *  input box)
 */

finder.app.util.setCursorBehavior = function(id, isFocus, isFlush, defaultValue) {
   var element = dojo.byId(id);
   if (element != null && isFlush) {
      if (defaultValue) {
         element.value = defaultValue;
         dojo.style(element, "color", "#cccccc"); 
      }
      else {
         element.value = "";
      }
   }                    
   if (element != null && isFocus) {
      element.focus();
      element.value = "";
      dojo.style(element, "color", "#000000"); 
   }
 };


