var apeweb = new Object();

apeweb.get_element_contents = function (tagname, xmlDoc)
{
    var contents;
	if (xmlDoc)
	{
	    if (xmlDoc.getElementsByTagName(tagname)[0])
	    {
	        if (navigator.appName == "Microsoft Internet Explorer")
	        {
	            contents = xmlDoc.getElementsByTagName(tagname)[0].text;
	        }
	        else
	        {
	            contents = xmlDoc.getElementsByTagName(tagname)[0].textContent;
	        }
	    }
	}
	else
	{
	    if (document.getElementsByTagName(tagname)[0])
	    {
	        if (navigator.appName == "Microsoft Internet Explorer")
	        {
	            contents = dosument.getElementsByTagName(tagname)[0].text;
	        }
	        else
	        {
	            contents = document.getElementsByTagName(tagname)[0].textContent;
	        }
	    }	
	}
    return contents;
}

apeweb.httpObject = function ()
{
    var xmlHttp = false;
    try
    {
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    return xmlHttp;
}

apeweb.ajax_function = function (url, div, postget, data, id)
{
    var xmlHttp = apeweb.httpObject();
    xmlHttp.onreadystatechange=function()
    {
        if(xmlHttp.readyState==4)
        {
            switch (id)
            {
                case "none":
                break;
                
                case "quick_quote":
                    apeweb.insertAtCursor('post_text', xmlHttp.responseText);
                break;
                
                case "wi_item":
                    document.getElementById('wi_item_'+data).innerHTML = apeweb.get_element_contents('link', xmlHttp.responseXML);
                    document.getElementById('wi_item_div_'+data).innerHTML = apeweb.get_element_contents('div', xmlHttp.responseXML);
                break;

                case "portal":
                    var divs = new Array('ad_ban', 'lastposts', 'post_message', 'banter_message', 'groups_message','mark_read','shoutbox', 'user_text', 'clock', 'groups_posts', 'lastgroups');
                    var data;
                    for (var i = 0; i < divs.length; i++)
                    {
                        if (document.getElementById(divs[i]))
                        {
                            data = apeweb.get_element_contents(divs[i], xmlHttp.responseXML);
                            if (divs[i] == 'mark_read')
                            {
                                if (data != '')
                                {
                                    if (document.title.substring(0,8) != '(Unread)')
                                    {
                                        document.title = "(Unread) "+ document.title;
                                    }
                                }
                                else
                                {
                                    if (document.title.substring(0,8) == '(Unread)')
                                    {
                                        document.title = document.title.substring(9);
                                    }
                                }
                            }
                            if (typeof data != "undefined")
                            {
                                document.getElementById(divs[i]).innerHTML = apeweb.get_element_contents(divs[i], xmlHttp.responseXML);
                            }
                        }
                    }
                break;
                
                case "register":
                    if (apeweb.get_element_contents('message', xmlHttp.responseXML) == 'Error')
                    {
                        var elements = new Array('reg0', 'reg1', 'reg2');
                        for (var i = 0; i < elements.length; i++)
                        {
                            var contents = apeweb.get_element_contents(elements[i], xmlHttp.responseXML);
                            if (contents == '')
                            {
                                contents = '&#160;';
                            }
                            document.getElementById(elements[i]).innerHTML = contents;
                        }
                    }
                    else
                    {
                        document.getElementById('reg_box').innerHTML = apeweb.get_element_contents('message', xmlHttp.responseXML);
                    }
                break;

                case "shoutsug":
                    if (xmlHttp.responseText != '')
                    {
                        document.getElementById(div).innerHTML = xmlHttp.responseText;
                    }
                break

                default:
                    document.getElementById(div).innerHTML = xmlHttp.responseText;
                break
            }
        }

    }
    if (postget=='post')
    {
        xmlHttp.open('POST',url,true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", data.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(data);
    }
    else
    {
        xmlHttp.open('GET',url,true);
        xmlHttp.send(null);
    }
}

apeweb.wi_item = function (wi_item)
{
    var wi_item_id = 'wi_item_' + wi_item;
    var url = url_root + "/index.php?page=std_wi_item\&?id="+ wi_item;
    document.getElementById('wi_item_'+wi_item).innerHTML = 'Please wait.....';
    apeweb.ajax_function(url,wi_item_id,'get',wi_item,'wi_item');
}

apeweb.suggestbox = function (del)
{
    if (del == 'delete')
    {
        apeweb.ajax_function(url_root + "/index.php?page=std_shoutbox","suggestbox","post","delete=delete");
    }
    else
    {
        apeweb.ajax_function(url_root + "/index.php?page=std_shoutbox","suggestbox","post","shout_data="+encodeURIComponent(document.getElementById('shout_box_data').value));
    }
    document.getElementById('shout_box_data').value = '';
}

apeweb.shoutbox = function ()
{
    apeweb.ajax_function(url_root + "/index.php?page=std_shoutbox","shoutbox","post","shout_data="+encodeURIComponent(document.getElementById('shout_box_data').value));
    document.getElementById('shout_box_data').value = '';
}

apeweb.shoutboxUpdate = function()
{
    if (document.getElementById('shoutbox'))
    {
        apeweb.ajax_function(url_root + '/index.php?page=std_shoutbox','shoutbox','get', '', 'shoutsug');
    }
    if (document.getElementById('suggestbox'))
    {
        apeweb.ajax_function(url_root + '/index.php?page=std_shoutbox','suggestbox','get');
    }
}

apeweb.preview_post = function (direction, view_element, edit_element, post_id, area)
{
    var url_area;
    switch (area)
    {
        case "priv":
            url_area = '\&area=priv';
        break;
        
        case "groups":
            url_area = '\&area=groups';
        break;
        
        default:
            url_area = '';
        break;
    }
    if (direction == 'edit')
    {
        if (post_id)
        {
            apeweb.ajax_function(url_root + "/index.php?page=std_post_bbcode_view\&post_id="+ post_id + url_area,edit_element,"get");
        }
        document.getElementById(edit_element).style.display = 'block';
        document.getElementById(view_element).style.display = 'none';
    }
    else
    {
        if (!post_id)
        {
            apeweb.ajax_function(url_root + "/index.php?page=std_post_bbcode_view","new_preview","post","text="+encodeURIComponent(document.getElementById('post_text').value));
        }
        else
        {
            apeweb.ajax_function(url_root + "/index.php?page=std_post\&action=edit\&post_id="+ post_id + url_area, view_element, "post", "text="+encodeURIComponent(document.getElementById('p_'+ post_id +'_edit_data').value));
        }
        document.getElementById(view_element).style.display = 'block';
        document.getElementById(edit_element).style.display = 'none';
    }
    cg_wardbsyndication = new (Curse.WHO.Syndication);
}

apeweb.quick_quote = function (post_id, area)
{
    apeweb.ajax_function(url_root + '/index.php?page=std_quick_quote\&post_id=' + post_id + '\&area=' + area, '', 'get','','quick_quote');
}

apeweb.register = function ()
{
    document.getElementById('reg0').innerHTML = '&#160;';
    document.getElementById('reg1').innerHTML = '&#160;';
    document.getElementById('reg2').innerHTML = '&#160;';
    var data = "username="+encodeURIComponent(document.getElementById('reg_username').value)+"\&password="+encodeURIComponent(document.getElementById('reg_password').value)+"\&conf_password="+encodeURIComponent(document.getElementById('reg_password_conf').value)+"\&email="+encodeURIComponent(document.getElementById('reg_email').value)+"\&conf_email="+encodeURIComponent(document.getElementById('reg_email_conf').value);
    apeweb.ajax_function(url_root + '/index.php?page=std_register','','post',data,'register');
}

apeweb.last_posts = function (div)
{
    switch (div)
    {
        case "groups":
            document.getElementById('lastposts').style.display = 'none';
            document.getElementById('lastgroups').style.display = 'block';        
        break;
        
        case "posts":
            document.getElementById('lastposts').style.display = 'block';
            document.getElementById('lastgroups').style.display = 'none';
        break;
    }
}

apeweb.mark_read = function ()
{
    apeweb.ajax_function(url_root + "/index.php?page=std_main_ajax\&mark_read=1","","get","","portal");
}

apeweb.insertAtCursor = function (container, myValue)
{
    myField = document.getElementById(container);
    if (document.selection)
    {
        myField.focus();
        var sel = document.selection.createRange();
        switch (myValue)
        {
            case "[url]":
            case "[img]":
            case "[b]":
            case "[u]":
            case "[i]":
            case "[s]":
                var tagstart = myValue; 
                var str_len = myValue.length;
                var tagend = myValue.substring(0,1) + '/' + myValue.substring(1,str_len);
                sel.text = tagstart + sel.text + tagend;
            break;
            default:
                sel.text = myValue;
            break;
        }
    }
    else if (myField.selectionStart || myField.selectionStart == '0')
    {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        switch (myValue)
        {
            case "[url]":
            case "[img]":
            case "[b]":
            case "[u]":
            case "[i]":
            case "[s]":
                var tagstart = myValue;
                var str_len = myValue.length;
                var tagend = myValue.substring(0,1) + '/' + myValue.substring(1,str_len);
                myField.value = myField.value.substring(0, startPos) + tagstart + myField.value.substring(startPos, endPos) + tagend + myField.value.substring(endPos, myField.value.length);
            break;
            default:
                myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
            break;
        }
    }
    else
    {
        myField.value += myValue;
    }
}