/*
------------------------------------------
        Flipbox written by CrappoMan
        simonpatterson@dsl.pipex.com
------------------------------------------
*/
function flipBox(who,panel_id) {
        var tmp;
        var panel_state;
        if (document.images['b_' + who].src.indexOf('_on') == -1) {
                tmp = document.images['b_' + who].src.replace('_off', '_on');
                document.getElementById('box_' + who).style.display = 'none';
                document.images['b_' + who].src = tmp;
        panel_state=1;
        } else {
                tmp = document.images['b_' + who].src.replace('_on', '_off');
                document.getElementById('box_' + who).style.display = 'block';
                document.images['b_' + who].src = tmp;
        panel_state=0;
        }
        new Image().src = 'update_panel_state.php'+'?panel_id='+panel_id+'&panel_state='+panel_state;
}

function removePanel(panel_id) {
var loc=window.location.href + (window.location.href.indexOf('?')==-1)?('?'):('&');
window.location.href=loc+'removepanel='+panel_id
};

function xGetElementById(elemid){
var x;
if(typeof(elemid)!='string') return elemid;
if(document.getElementById) x=document.getElementById(elemid);
else if(document.all) x=document.all[elemid];
else if(document.layers) x=xLayer(elemid);
else x=null;
return x;
}

function xLayer(id,root) { // only for NN4
var i,layer,found=null;
if(!root) root=window;
for(i=0;i<root.document.layers.length;i++){
layer=root.document.layers[i];
if(layer.id==id) return layer;
if(layer.document.layers.length) found=xLayer(id,layer);
if(found) return found;
}
return null;
}

function mozVersion(){
var ua=navigator.userAgent.toLowerCase();
var rvIndex=ua.indexOf("rv:");
if((0<=ua.indexOf("gecko"))&&(0<=rvIndex)){
return ua.substring(rvIndex+3,rvIndex+6);
}else{
return 0;
}
}

function storeCaret(ftext){
if(ftext.createTextRange){
ftext.caretPos=document.selection.createRange().duplicate();
}
}

function getText(textarea_id){
var tarea = xGetElementById(textarea_id);
if(tarea.createTextRange && tarea.caretPos){
return tarea.caretPos.text;
}
if(mozVersion()>1.3){
return tarea.value.substr(tarea.selectionStart,tarea.selectionEnd-tarea.selectionStart);
}
return '';
}

function insertText(textarea_id,text){
var tarea=xGetElementById(textarea_id);
if(mozVersion()>1.3){
tarea.value=tarea.value.substr(0,tarea.selectionStart)+text+tarea.value.substr(tarea.selectionEnd);
tarea.focus();
}else{
if(tarea.createTextRange && tarea.caretPos){
var caretPos=tarea.caretPos;
caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==' '?text+' ':text;
}else{
tarea.value+=text;
}
tarea.focus(caretPos);
}
}

function insertUBBTag(textarea_id,tag){
insertText(textarea_id,'['+tag+']'+getText(textarea_id)+'[/'+tag+']');
}

function addText(elname, wrap1, wrap2) {
        if (document.selection) { // for IE
                var str = document.selection.createRange().text;
                document.forms['inputform'].elements[elname].focus();
                var sel = document.selection.createRange();
                sel.text = wrap1 + str + wrap2;
                return;
        } else if ((typeof document.forms['inputform'].elements[elname].selectionStart) != 'undefined') { // for Mozilla
                var txtarea = document.forms['inputform'].elements[elname];
                var selLength = txtarea.textLength;
                var selStart = txtarea.selectionStart;
                var selEnd = txtarea.selectionEnd;
                var oldScrollTop = txtarea.scrollTop;
                //if (selEnd == 1 || selEnd == 2)
                //selEnd = selLength;
                var s1 = (txtarea.value).substring(0,selStart);
                var s2 = (txtarea.value).substring(selStart, selEnd)
                var s3 = (txtarea.value).substring(selEnd, selLength);
                txtarea.value = s1 + wrap1 + s2 + wrap2 + s3;
                txtarea.selectionStart = s1.length;
                txtarea.selectionEnd = s1.length + s2.length + wrap1.length + wrap2.length;
                txtarea.scrollTop = oldScrollTop;
                txtarea.focus();
                return;
        } else {
                insertText(elname, wrap1 + wrap2);
        }
}

function insertText(elname, what) {
        if (document.forms['inputform'].elements[elname].createTextRange) {
                document.forms['inputform'].elements[elname].focus();
                document.selection.createRange().duplicate().text = what;
        } else if ((typeof document.forms['inputform'].elements[elname].selectionStart) != 'undefined') { // for Mozilla
                var tarea = document.forms['inputform'].elements[elname];
                var selEnd = tarea.selectionEnd;
                var txtLen = tarea.value.length;
                var txtbefore = tarea.value.substring(0,selEnd);
                var txtafter =  tarea.value.substring(selEnd, txtLen);
                var oldScrollTop = tarea.scrollTop;
                tarea.value = txtbefore + what + txtafter;
                tarea.selectionStart = txtbefore.length + what.length;
                tarea.selectionEnd = txtbefore.length + what.length;
                tarea.scrollTop = oldScrollTop;
                tarea.focus();
        } else {
                document.forms['inputform'].elements[elname].value += what;
                document.forms['inputform'].elements[elname].focus();
        }
}