var xmlreqs = new Array();

function CXMLReq(type, xmlhttp) { this.type = type; this.xmlhttp = xmlhttp; }

function lr(url, data, opt){
        var xmlhttp 	= false;
        var _targObject = null;
        var type 	= null;

        if( !data )
		data = 'content';

        _targObject = document.getElementById(data);

        if(window.XMLHttpRequest)
                xmlhttp2 = new XMLHttpRequest();
        else if(window.ActiveXObject)
                xmlhttp2 = new ActiveXObject("Microsoft.XMLHTTP");
        else alert('Please upgrade your browser.');

        switch( opt ){
		default: break;
        }

        if(window.XMLHttpRequest) {
                xmlhttp=new XMLHttpRequest();
                xmlhttp.onreadystatechange=xmlhttpChange;
                xmlhttp.open("POST",url,true);
                xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                xmlhttp.send(data);
        }else if(window.ActiveXObject) {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                if(xmlhttp) {
                        xmlhttp.onreadystatechange=xmlhttpChange;
                        xmlhttp.open("POST",url,true);
                        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                        xmlhttp.send(data);
                }
        }

        var xmlreq = new CXMLReq(data, xmlhttp); xmlreqs.push(xmlreq);
}

function xmlhttpChange() {
 if (typeof(window['xmlreqs']) == "undefined") return;

 var xmldoc = null;
 for (var i=0; i < xmlreqs.length; i++) {
        if (xmlreqs[i].xmlhttp.readyState == 4) {
                if (xmlreqs[i].xmlhttp.status == 200 || xmlreqs[i].xmlhttp.status == 304) {
                        response = xmlreqs[i].xmlhttp.responseText;
                        switch( xmlreqs[i].type ) {
                                default:{
                                        document.getElementById(xmlreqs[i].type).innerHTML = (response);
                                        break;
                                }
                        }

                        xmlreqs.splice(i,1); i--;
                } else {//error
                        xmlreqs.splice(i,1); i--;
                }
        }
 }
}

function number_format (number, decimals, dec_point, thousands_sep)
{
        number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
        var n = !isFinite(+number) ? 0 : +number,
                prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
                dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
                s = '',
                toFixedFix = function (n, prec) {
                        var k = Math.pow(10, prec);
                        return '' + Math.round(n * k) / k;
                };

                // Fix for IE parseFloat(0.55).toFixed(0) = 0;
                s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
                if (s[0].length > 3) {
                        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
                }
                if ((s[1] || '').length < prec) {
                        s[1] = s[1] || '';
                        s[1] += new Array(prec - s[1].length + 1).join('0');
                }

        return s.join(dec);
}

function cQ(form)
{
    var elements = document.getElementById(form).elements;
    var pairs = new Array();
    for (var i = 0; i < elements.length; i++) {
        if ((name = elements[i].name) && (value = elements[i].value))
            pairs.push(name + "=" + encodeURIComponent(value));
    }
    var tastypairpear = pairs.join("&");
    return tastypairpear;
}

function sfm(h,e,t) {
        var kc;
        if (window.event) kc = window.event.keyCode;
        else if (e) kc = e.which;
        else return true;

        if (kc == 13) {
                switch(t){
                        default: h.form.submit(); break;
                }

                return false;
        }else   return true;
}

function strstr (haystack, needle, bool) {
    var pos = 0;

    haystack += '';
    pos = haystack.indexOf(needle);
    if (pos == -1) {
        return false;
    } else {
        if (bool) {
            return haystack.substr(0, pos);
        } else {
            return haystack.slice(pos);
        }
    }
}

function strpos (haystack, needle, offset) {
    var i = (haystack + '').indexOf(needle, (offset || 0));
    return i === -1 ? false : i;
}

function strip_tags (input, allowed) {
    allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');
    var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
        commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
    return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
        return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
    });
}

function setFocus(doc){
        setTimeout("document.getElementById('"+doc+"').focus();",1000);
}

