var selected_lang = parent.__lang__;
var animation_id;

function update_ui_state() {
    //dummy
}

function setOpacity(elem, opacity) {
    if(elem.style.opacity || elem.style.opacity == "") {
        elem.style.opacity = opacity;
    }
    else {
        op = parseInt(100* opacity, 10);
        elem.style.filter = "alpha(opacity="+op+")";
    }
}

function removeOpacity(elem) {
    if(elem.style.opacity || elem.style.opacity == "") {
        elem.style.opacity = "1.0";
    }
    else {
        elem.style.filter = "";
    }
}

function fadeIn(elem){
    var opacity = 0.0;
    function fader(){
        opacity += 0.1;
        if (opacity <= 1.0) {
            setOpacity(elem, opacity);
            setTimeout(fader, 100);
        } else {
            removeOpacity(elem);
        }
    }
    fader();
}

function fillTextToType(lang){
    var str = screen1Msgs[lang][0];
    var length = str.length;
    var index = 0;
    var buffer = "";
    if (animation_id) {
        clearTimeout(animation_id);
    }
    function animate(){
        buffer+=str.charAt(index++);
        document.getElementById("textToType").value  = '" '+ buffer + ' "';
        if(index>=length){
            return; 
        }
        animation_id = setTimeout(animate,200);
    }
    setTimeout(animate,600);
}
function fillLangWord(lang){
	var str = screen2Msgs[lang][0];
	document.getElementById("langword").innerHTML = str;
}

function fillSelectedLang(lang){
	document.getElementById("selectedLanguage").innerHTML = lang;
}

function setPadding(frame_ptr) {
    var doc = frame_ptr.contentWindow.document || frame_ptr.contentWindow.contentDocument;
    doc.body.style.margin = "1px";
    doc.body.style.padding = "1px";
}

function init_editor(editor_id, grab_focus) {
    selected_lang = parent.__lang__;
    var frame_ptr = document.getElementById(editor_id);
    setPadding(frame_ptr);
    var pos = jQuery(frame_ptr).offset();
    var editor_window1 = frame_ptr.contentWindow;
    editor_window1.do_init(selected_lang, true, pos.left, pos.top);
    if (grab_focus) {
        editor_window1.editor.grab_focus();
    }
    return frame_ptr;
}

function init1(){
    $('#demo_langlist').val(selected_lang);
    $('#demo_langlist').change(function (){
        var lang= $(this).val();
        var lang_lower_case = lang.toLowerCase();
        frame_ptr.contentWindow.editor.clear_doc();
        frame_ptr.contentWindow.editor.init_lang_ = lang.toLowerCase();
        frame_ptr.contentWindow.editor.grab_focus();
        frame_ptr.contentWindow.editor.set_lang(lang_lower_case);
        frame_ptr.contentWindow.editor.set_bg_color('transparent');
        fillTextToType(lang);   
    });
    var frame_ptr = init_editor('editor_iframe1');
    frame_ptr.contentWindow.editor.default_bg_color = 'transparent';
	frame_ptr.contentWindow.editor.set_enter_callback(function(){});
	var words = screen1Msgs[selected_lang][0].split(/\s/);
	//frame_ptr.contentWindow.set_expected_input(words);
	frame_ptr.contentWindow.editor.disable_popup(true);
    fillTextToType(selected_lang);   
	frame_ptr.contentWindow.editor.grab_focus();
    var str = screen1Msgs[selected_lang][1];
    var fadedIn = false;
    window.setInterval(function(){
        if (frame_ptr.contentWindow.editor_root.innerText) {
            var quill_text = frame_ptr.contentWindow.editor_root.innerText;
        }
        else {
            var quill_text = frame_ptr.contentWindow.editor_root.textContent;
        }
        var trim_quill_text = quill_text.replace(/^\s*/, '').replace(/\s*$/, '').replace(/\s+/g,' ').replace(/\s/,' ');
        if (trim_quill_text.substr(0,str.length) == str && !fadedIn) {
			fillSelectedLang(selected_lang);
            fadeIn(document.getElementById("success"));
            fadedIn = true;
        }
    }, 1000);
	/*Cookie related stuff*/
	var path = document.URL;
	var regex=/([^:]*:\/\/)?[^\/]*[^\/]/;
	var p = path.replace(regex,'');
	var regex2=/\/[^\/]*$/;
	setCookie(selected_lang+"Demo",0,p.replace(regex2,''));
}
function init2(){	 
    selected_lang = parent.__lang__;
    var frame_ptr1 = init_editor("editor_iframe1", true);
    frame_ptr1.contentWindow.editor.default_bg_color = 'transparent';
	frame_ptr1.contentWindow.editor.set_enter_callback(function(){});

}

function init2a() {
    selected_lang = parent.__lang__;
	fillLangWord(selected_lang);
    var frame_ptr2 = init_editor("editor_iframe2");
    frame_ptr2.contentWindow.editor.default_bg_color = 'transparent';
	frame_ptr2.contentWindow.editor.set_enter_callback(function(){});
    fillSelectedLang(selected_lang);
    var str = screen2Msgs[selected_lang][0];
    var fadedIn = false;
    window.setInterval(function(){
        if (frame_ptr2.contentWindow.editor_root.innerText) {
            var quill_text = frame_ptr2.contentWindow.editor_root.innerText;
        }
        else {
            var quill_text = frame_ptr2.contentWindow.editor_root.textContent;
        }
        var trim_quill_text = quill_text.replace(/^\s*/, '').replace(/\s*$/, '').replace(/\s/,' ');
        if (trim_quill_text == str && !fadedIn) {
			document.getElementById("userInput").innerHTML = frame_ptr2.contentWindow.editor.get_english_text();
            fadeIn(document.getElementById("success"));
            fadedIn = true;
        }
    }, 1000);
}


function init3(){
    selected_lang = parent.__lang__;
    var frame_ptr1 = init_editor("editor_iframe1", true);
    frame_ptr1.contentWindow.editor.default_bg_color = 'transparent';
	frame_ptr1.contentWindow.editor.set_enter_callback(function(){});
    var frame_ptr2 = init_editor("editor_iframe2");
    frame_ptr2.contentWindow.editor.default_bg_color = 'transparent';
	frame_ptr2.contentWindow.editor.set_enter_callback(function(){});
    document.getElementById("language").innerHTML = selected_lang;
}

function init4(){
    selected_lang = parent.__lang__;
	document.getElementById("language").innerHTML = selected_lang;
}	


