if(typeof(g_currentDomain) == undefined) {
    g_currentDomain = 'look.fo';
}

gglToSpacerChars = /[\+-\._ ]+/g;
gglToInvalidChars = /[^\wÀ-ÿ\+\-\.@:" ]/g;

g_spacers = ['-', '.', '_', '+'];
var g_spaces = [' ', '\t', '\n'];

function isSpacer(aChar) {
    
    return (g_spacers.indexOf(aChar) != -1);
}

function isSpace(aChar) {    
    
    return (g_spaces.indexOf(aChar) != -1);
}

function escapeSpaceCharacters(inStr) {
    
    var outStr = "";
    
    var inSpaceRun = false;
    var inSpacerRun = false;
    var sparcerRunChar = '';
    
    var charBeforeSpaceRun = null;
    
    for(var i=0;i!=inStr.length;i++) {
        var isLastChar = i==inStr.length-1;
        
        // End spacer runs
        if(inSpacerRun && inStr.charAt(i) != sparcerRunChar) {            
            inSpacerRun = false;
        }
        
        // End space runs
        if(inSpaceRun && !isSpace(inStr.charAt(i))) {            
            inSpaceRun = false;
            // output a spacer which is neither the previous nor
            // the next character            
            for(var j=0;j!=g_spacers.length;j++) {
                if(g_spacers[j] != inStr.charAt(i) && g_spacers[j] != charBeforeSpaceRun) {
                    outStr += g_spacers[j];
                    break;
                }
            }
        }
        
        // if the character is the start of a spacer run
        if(!inSpacerRun && isSpacer(inStr.charAt(i))) {
            inSpacerRun = true;
            sparcerRunChar = inStr.charAt(i);
            outStr += inStr.charAt(i);
            outStr += inStr.charAt(i);
        }        
        // if the character is the start of a space run
        else if(!inSpaceRun && isSpace(inStr.charAt(i))) {
            // take note of the previous character
            inSpaceRun = true;
            if(i>0) {
                charBeforeSpaceRun = inStr.charAt(i-1);
            } 
        }
        // if the character is the middle of a space run
        else if(inSpaceRun && isSpace(inStr.charAt(i))) {
            
        }        
        else {            
            outStr += inStr.charAt(i);
        }
            
    }

    return outStr;
}

function updateHintBox(value) {
    var filteredValue = value;
    filteredValue = filteredValue.replace(gglToInvalidChars, '');
    //filteredValue = filteredValue.replace(gglToSpacerChars, '-');
    filteredValue = escapeSpaceCharacters(filteredValue);
    $('hintBox').show();
    $('hint').innerHTML = g_currentDomain + '/' + filteredValue;
    $('hintLink').writeAttribute('href', 'http://' + g_currentDomain + '/' + filteredValue);    
}

document.observe("dom:loaded", function() {

  if($('searchTermsInput').value != '') {
    updateHintBox($('searchTermsInput').value);
  }

  $('searchTermsInput').observe("keyup", function(event) {
    updateHintBox(this.value);
  });
  
  //$('searchTermsInput').focus();
});
