var xhReq;
var just_update = false;

function defaultResponseHandler() {
    if (xhReq.readyState != 4)  {
        return;
    }
    var serverResponse = xhReq.responseText;
}

function createXMLHttpRequest() {
    try {
        return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {}
    try {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    try {
        return new XMLHttpRequest();
    } catch(e) {}
    alert("XMLHttpRequest not supported");
    return null;
}
 
function doit() {
//alert("dddddddddddd............");
}

/***************************************************************************
*
*/
function ajxsubmit(value,postsnr) {
    var req = "&frm="+value;
    var huhu = "";
        
    var ecnt = document.forms[value].elements.length;
    for ( i=0 ; i < ecnt; i++ ) {
        var x = document.forms[value].elements[i];
		
        if(x.type == 'radio' || x.type == 'checkbox')
        {
            if(x.checked == true)
            {
                huhu = huhu + "&" + trim(x.name);
                huhu = huhu + "=" + trim(x.value);
            }
        }
        else
        {
            var newValue = x.value;
            //alert("deftext = " + x.defaultText);
            if ( x.defaultText ) {
                if ( newValue == x.defaultText) {
                    newValue = '';
                }
            } else {
                newValue = x.value.replace(/&/, "%26");
            }
            //alert(newValue);
            //alert(newValue +  " >> "+escapeToUtf16(newValue));
            huhu = huhu + "&" + trim(x.name);
            //huhu = huhu + "=" + trim(newValue);
            huhu = huhu + "=" + trim(escapeToUtf16(trim(newValue)));
        }
                
        if(x.name == "just_update_ajx" && x.value == "ja") {
            just_update = true;
        }
    }
        
    if(just_update == true) {
        for ( i=0 ; i < ecnt; i++ ) {
            var x = document.forms[value].elements[i];
            if(x.name != "just_update_ajx") {
                if(x.type == 'radio' || x.type == 'checkbox')
                {
                    if(x.checked == true)
                    {
                        document.getElementById("value_"+x.name.replace("select_", "").replace("radio_", "")).innerHTML = trim(x.value);
                    }
                } else {
                    document.getElementById("value_"+x.name.replace("select_", "").replace("radio_", "")).innerHTML = trim(x.value);
                }
            }
                
        }
    }
        
        
    huhu = huhu.replace(/\n/g, "<br>");
        
    //alert("" + huhu);
	
    xhReq = createXMLHttpRequest();
    xhReq.open("POST", "/ajxrq.html?ajx=1"
        + req
        + postsnr
        , true);

    xhReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    xhReq.setRequestHeader("Content-length", huhu.length);
    xhReq.setRequestHeader("Connection", "close");
    xhReq.onreadystatechange = doitreally;
    xhReq.send(huhu);
    return false;
}

function escapeToUtf16(str) {
  var escaped = ''
  for (var i = 0; i < str.length; ++i) {
    var hex = str.charCodeAt(i).toString(16).toUpperCase();
    escaped += "x" + "0000".substr(hex.length) + hex+ ";";
  }
  return "UTF16"+escaped;
}


function doitreally() {
    if ((xhReq.readyState != 4) || just_update)  {
        return;
    }
    document.dummyform.submit();
}

/***************************************************************************
*
*/
var dummyformname;
function ajxget(value, postsnr, frm) {
    var req = "&frm="+value;
    var huhu = "";
    dummyformname = frm;
        
    var ecnt = document.forms[value].elements.length;
    for ( i=0 ; i < ecnt; i++ ) {
        var x = document.forms[value].elements[i];
		
        if(x.type == 'radio' || x.type == 'checkbox')
        {
            if(x.checked == true)
            {
                huhu = huhu + "&" + trim(x.name);
                huhu = huhu + "=" + trim(x.value);
            }
        }
        else
        {
            var newValue = x.value;
            newValue = x.value.replace(/&/, "%26");
			
            huhu = huhu + "&" + trim(x.name);
            huhu = huhu + "=" + trim(newValue);
        }
                
        if(x.name == "just_update_ajx" && x.value == "ja") {
            just_update = true;
        }
    }
        
    if(just_update == true) {
        for ( i=0 ; i < ecnt; i++ ) {
            var x = document.forms[value].elements[i];
            if(x.name != "just_update_ajx") {
                if(x.type == 'radio' || x.type == 'checkbox')
                {
                    if(x.checked == true)
                    {
                        document.getElementById("value_"+x.name.replace("select_", "").replace("radio_", "")).innerHTML = trim(x.value);
                    }
                } else {
                    document.getElementById("value_"+x.name.replace("select_", "").replace("radio_", "")).innerHTML = trim(x.value);
                }
            }
                
        }
    }
        
        
    huhu = huhu.replace(/\n/g, "<br>");
        
    //alert("AJXGET : " + huhu);
	
    xhReq = createXMLHttpRequest();
    xhReq.open("POST", "/ajxrq.html?ajx=1"
        + req
        + postsnr
        , true);

    xhReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
    xhReq.setRequestHeader("Content-length", huhu.length);
    xhReq.setRequestHeader("Connection", "close");
    xhReq.onreadystatechange = doReallyGet;
    xhReq.send(huhu);
    return false;
}

function doReallyGet() {
    if ((xhReq.readyState != 4) || just_update)  {
        return;
    }
    document.forms[dummyformname].submit();
}


/***************************************************************************
*
*/
function trim (str) {
    return str.replace(/ +/g, ' ').replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function clearfield(form, field) 
{	
    if(document.forms[form].elements[field.name].className == 'default')
    {
        document.forms[form].elements[field.name].className = 'changed';
        document.forms[form].elements[field.name].value = '';
    }
}
