// JavaScript Document

var textLoading = '';

/* Ajax/Url functions */

function makeQuery(url){
    var par = Array();
    
    query = '';
    q_sign = ((arguments.length > 1 && arguments[1] == false)) ? '' : '?';
    if (ajax_url[url]) 
        ajax_url[url] = ajax_url[url].replace(/\?.*/g, query);
    i = 0;
    if (params[url]) 
        for (p_name in params[url]) {
            p_value = params[url][p_name] + '';
            if (p_value != '') {
                //p_value = p_value.replace(/\+/,'%2B');
                //p_value = encodeURI(escape(p_value));
                par[i] = (p_name + '=' + p_value);
                //alert('makeQuery('+url+'): '+par[i]);
                i++;
            }
        }
    query += (par.length) ? (q_sign + par.join('&')) : ''; //'?defaultquery=1';
    if (query && q_sign != '') 
        ajax_url[url] += query.replace(/\+/, '%2B');
    return query;
}

function copyURL(src_url, dst_url){
    //alert('copyURL('+expose(arguments)+')');
    if_copy = (arguments[2] && (arguments[2] == true));
    if (ajax_url[dst_url] && if_copy) {
        return 1;
    }
    else 
        if (ajax_url[src_url]) {
            ajax_url[dst_url] = Array();
            ajax_url[dst_url] = ajax_url[src_url] + '';
            params[dst_url] = Array();
            for (i in params[src_url]) 
                params[dst_url][i] = params[src_url][i];
            defaults[dst_url] = Array();
            for (i in defaults[src_url]) 
                defaults[dst_url][i] = defaults[src_url][i];
            makeQuery(dst_url);
            //alert(src_url+' - params:\n'+expose(params[src_url])+'\n'+src_url+' - ajax_url:\n'+expose(ajax_url[src_url]));
            //alert(dst_url+' - params:\n'+expose(params[dst_url])+'\n'+dst_url+' - ajax_url:\n'+expose(ajax_url[dst_url]));
            return 2;
        }
    return 0;
}

function chParams(url){
    //alert('chParams('+expose(arguments)+')');
    if (arguments.length > 1) {
        for (i = 1; i < arguments.length; i += 2) {
            param_name = arguments[i];
            param_value = arguments[i + 1];
            params[url][param_name] = param_value;
        }
    }
    else {
        params[url] = Array();
        copyArray(defaults[url], params[url]);
        //alert('defaults:\n\n'+expose(defaults[url]));
        //alert('params:\n\n'+expose(params[url]));
    }
    return makeQuery(url);
}

function trigger(){
    //alert('trigger('+expose(arguments)+')');
    for (i = 0; i < arguments.length; i += 3) {
        trigger_target = arguments[i];
        trigger_url = arguments[i + 1];
        trigger_reset = arguments[i + 2];
        if (trigger_reset) {
            params[trigger_url] = Array();
            copyArray(defaults[trigger_url], params[trigger_url]);
        }
        makeQuery(trigger_url);
        //alert('ajaxurl:\n'+expose(ajax_url));
        //alert('ajaxpage('+ajax_url[trigger_url]+',\''+trigger_target+'\')');
        ajaxpage(ajax_url[trigger_url], trigger_target);
    }
}


function triggerURL(){
    //alert(arguments.length);
    for (i = 0; i < arguments.length; i += 2) {
        trigger_target = arguments[i];
        document.getElementById(trigger_target).innerHTML = textLoading;
        trigger_url = arguments[i + 1];
        ajaxpage(trigger_url, trigger_target);
    }
}

function triggerAction(){
    //alert('trigger('+expose(arguments)+')');
    for (i = 0; i < arguments.length; i += 4) {
        trigger_target = arguments[i];
        trigger_url = arguments[i + 1];
        trigger_action = arguments[i + 2];
        trigger_reset = arguments[i + 3];
        if (trigger_reset) {
            //alert('reset url '+trigger_url);
            params[trigger_url] = Array();
            copyArray(defaults[trigger_url], params[trigger_url]);
        }
        makeQuery(trigger_url);
        //alert('params['+trigger_url+']:\n'+expose(params[trigger_url]));
        //alert('ajaxurl:\n'+expose(ajax_url));
        //alert('ajaxpage('+ajax_url[trigger_url]+',\''+trigger_target+'\')');
        ajaxpage(ajax_url[trigger_url], trigger_target);
        if (trigger_action) 
            eval(trigger_action);
    }
}

function ajaxobj(url, target_obj){
    var page_request = false
    if (window.XMLHttpRequest) // if Mozilla, Safari etc
        page_request = new XMLHttpRequest()
    else 
        if (window.ActiveXObject) { // if IE
            try {
                page_request = new ActiveXObject("Msxml2.XMLHTTP")
            } 
            catch (e) {
                try {
                    page_request = new ActiveXObject("Microsoft.XMLHTTP")
                } 
                catch (e) {
                }
            }
        }
        else 
            return false
    page_request.onreadystatechange = function(){
        loadpageobject(page_request, target_obj)
    }
    page_request.open('GET', url, true);
    page_request.send(null);
		return false;
}


function loadpageobject(page_request, target_obj){
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) 
        target_obj.innerHTML = page_request.responseText
}

