/**
* @author Grzegorz Pawlik <grzegorz.pawlik@gmail.com>
* @date 30-04-2010
* @licence please contact with me
*/
var manifest = {
  settings: [
    {
      name: "delay",
      type: "number",
      label: "Word display time (ms)",
      default: 175
    }
  ]
};
jetpack.future.import("jetpack.storage.settings");

var fr_textArr;
var fr_el;
var fr_intervalId;

function showWord(){
    if(fr_textArr.length ==0){
        clearInterval(fr_intervalId);
        return;
    }
    fr_el.innerHTML = fr_textArr.shift();
}

function prepareArray(text){
    txt = text.split(" ");
    var _newTxt = new Array();
    for(i=0; i<txt.length; i++){
        if(txt[i].indexOf(".")>-1){
            var tmp = txt[i].split(".");
            for(j=0; j< tmp.length; j++){
                if(j==0){
                    tmp[j] +=".";
                }
                _newTxt.push(tmp[j]);
            }
        }else{
            _newTxt.push(txt[i]);
        }       
    }
    txt = _newTxt;
    _newTxt = new Array();    
    for(i=0; i<txt.length; i++){
        if(txt[i].indexOf(".")>-1){
            _newTxt.push(txt[i], txt[i]);
        }else{
            _newTxt.push(txt[i]);
        }       
    }
    return _newTxt;
}

function readText(text, element){
    fr_textArr = prepareArray(text);
    fr_el = element;
    fr_intervalId = setInterval(showWord, jetpack.storage.settings.delay);
}

jetpack.statusBar.append({
    html: "FR!",
    onReady: function(widget){
        $(widget).click(function(){
            var doc = jetpack.tabs.focused.contentDocument;

            if(doc.getSelection()==""){
                jetpack.notifications.show({
                    title: "FastReader empty string",
                    icon: "",
                    body: "You have to select text to read"
                });
                return;
            }

            var text = "5 4 3 2 1 " + doc.getSelection();
            var element = doc.createElement("div");
            var overlay = doc.createElement("div");
            var id = element.id= "gp-fast-reader-"+new Date().getTime();
            overlay.id = "overlay-" + id;
            $(doc).find("body").get(0).appendChild(overlay);
            $(doc).find("body").get(0).appendChild(element);

            $(overlay).css({
                'position': "fixed", 'top': "0px", 'left': "0px", 
                'z-index': "999999", "width": "100%", 
                "height": doc.body.clientHeight+"px", 
                "background-color": "black", "opacity": "0.7"});
            $(element).css({
                "position": "fixed", "top": "50%",
                "left": "5%", "height": "50px", "width": "90%", 
                "background-color": "white", "z-index": "1000000",
                "font-size": "40px", "text-align": "center"
            }).click(function(){$(this).remove(); $(overlay).remove(); clearInterval(fr_intervalId);});
            
            readText(text, element);
        })
    }
});
