// JavaScript Document
//***********************************
 function trimAll( strValue ) {
/************************************************
DESCRIPTION: Removes leading and trailing spaces.

PARAMETERS: Source string from which spaces will
  be removed;

RETURNS: Source string with whitespaces removed.
*************************************************/
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }

   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}


String.prototype.toProperCase = function(){
     return this.toLowerCase().replace(/\w+/g,function(s){
          return s.charAt(0).toUpperCase() + s.substr(1);
     })
}

function replaceSubstring(inputString, fromString, toString) {
   // Goes through the inputString and replaces every occurrence of fromString with toString
   var temp = inputString;
   if (fromString == "") {
      return inputString;
   }
   if (toString.indexOf(fromString) == -1) { // If the string being replaced is not a part of the replacement string (normal situation)
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else { // String being replaced is part of replacement string (like "+" being replaced with "++") - prevent an infinite loop
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      // Find a string that doesn't exist in the inputString to be used
      // as an "inbetween" string
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      } // Keep on going until we build an "inbetween" string that doesn't exist
      // Now go through and do two replaces - first, replace the "fromString" with the "inbetween" string
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      // Next, replace the "inbetween" string with the "toString"
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } // Ends the check to see if the string being replaced is part of the replacement string or not
   return temp; // Send the updated string back to the user
} // Ends the "replaceSubstring" function

function change_to_lowercase(obj) { 
	var val =obj.value;
	val = trimAll(val);
	val = val.toLowerCase();
	obj.value = val; 
}
function capitalize_name(obj) {
        var val =obj.value;
		val = trimAll(val);
		val = replaceSubstring(val, "ñ", "n");
		val = replaceSubstring(val, "á", "a");
		val = replaceSubstring(val, "é", "e");
		val = replaceSubstring(val, "í", "i");
		val = replaceSubstring(val, "ó", "o");
		val = replaceSubstring(val, "ú", "u");
		val = replaceSubstring(val, "à", "a");
		val = replaceSubstring(val, "è", "e");
		val = replaceSubstring(val, "ì", "i");
		val = replaceSubstring(val, "ò", "o");
		val = replaceSubstring(val, "ù", "u");
		val = replaceSubstring(val, "Á", "A");
		val = replaceSubstring(val, "É", "E");
		val = replaceSubstring(val, "Í", "I");
		val = replaceSubstring(val, "Ó", "O");
		val = replaceSubstring(val, "Ú", "U");
		val = replaceSubstring(val, "À", "A");
		val = replaceSubstring(val, "Ì", "I");
		val = replaceSubstring(val, "Ò", "O");
		val = replaceSubstring(val, "Ù", "U");
		val = replaceSubstring(val, "Ñ", "N");
		val = replaceSubstring(val, "È", "E");

				
		var newval = val.toProperCase(); 
		obj.value = newval;
}


function capitalize_country(obj) {
        var val =obj.value;
		val = trimAll(val);		
		val = replaceSubstring(val, "ñ", "n");
		val = replaceSubstring(val, "á", "a");
		val = replaceSubstring(val, "é", "e");
		val = replaceSubstring(val, "í", "i");
		val = replaceSubstring(val, "ó", "o");
		val = replaceSubstring(val, "ú", "u");
		val = replaceSubstring(val, "à", "a");
		val = replaceSubstring(val, "è", "e");
		val = replaceSubstring(val, "ì", "i");
		val = replaceSubstring(val, "ò", "o");
		val = replaceSubstring(val, "ù", "u");
		val = replaceSubstring(val, "Á", "A");
		val = replaceSubstring(val, "É", "E");
		val = replaceSubstring(val, "Í", "I");
		val = replaceSubstring(val, "Ó", "O");
		val = replaceSubstring(val, "Ú", "U");
		val = replaceSubstring(val, "À", "A");
		val = replaceSubstring(val, "Ì", "I");
		val = replaceSubstring(val, "Ò", "O");
		val = replaceSubstring(val, "Ù", "U");
		val = replaceSubstring(val, "Ñ", "N");
		val = replaceSubstring(val, "È", "E");
		var val2 = val.split(' ');
		var size = val2.length;
        if(size>1) {  
			var newval = val.toProperCase();
			//alert("double words with spaces"); 	       	
        }
		else {
			//var newval = val;
			var str = val;
			var chr = "";
			var ndigits = 0;
			var nLowerAlpha = 0;
			var nUpperAlpha = 0;
			var nOtherChars = 0;

			for (position = 0; position < str.length; position++){
			   chr = str.charAt(position)
   			   if (chr >= "0" && chr <= "9") nUpperAlpha++;
			   else if (chr >= "A" && chr <= "Z") nUpperAlpha++;
			   
			}
			if(nUpperAlpha==val.length) {
				newval = val;
			}
			else {
				var newval = val.toProperCase();
			}
				
			
		}	
		obj.value = newval;
}
