//send ajax request
function sendAjaxRequest(urlquery, elementname, handlername) {
        
    var ajaxHttp; //ajax http object
    var bMozilla = false; //is mozzila

    //supports activex
    if (window.ActiveXObject)
    {
        ajaxHttp = new ActiveXObject("Microsoft.XMLHTTP");
        if (ajaxHttp ==  null) { ajaxHttp = new ActiveXObject ("Msxml2.XMLHTTP"); }
    }
    else if (window.XMLHttpRequest)
    {
        ajaxHttp = new XMLHttpRequest(); bMozilla = true;
    }
    else
    {
        //http request not supported
        alert("The XMLHttpRequest nor ActiveXObject object could not be created.");
    }
    
    //prevent caching
    if (urlquery.indexOf("?") > -1) 
    urlquery += "&"; 
    else urlquery += "?";
    urlquery += "timestamp=" + new Date().getTime();
                    
    //handle server response
    ajaxHttp.onreadystatechange = function() {
        if (ajaxHttp.readyState == 4) {
            if (ajaxHttp.status == 200) //response OK
            {
                //set response text by elementname
                if (elementname != "") {
                    if (document.getElementById(elementname)) {
                        document.getElementById(elementname).innerHTML = ajaxHttp.responseText;

                        //run javascripts
                        if (document.getElementById(elementname).getElementsByTagName('script').length > 0) {
                            for (var i = 0; i < document.getElementById(elementname).getElementsByTagName('script').length; i++) {
                                eval(document.getElementById(elementname).getElementsByTagName('script')[i].innerHTML);
                            }
                        }
                    }
                    else {
                        alert("Error: Div " + elementname + " not exsist!");
                    }
                }

                //set response text by handlername
                if (handlername != "") eval(handlername + "(ajaxHttp.responseText)");

            }
        }
    }
    
    // open
    ajaxHttp.open("GET", urlquery, true); //asynchronous
    ajaxHttp.send(null); // send
}

//handle myaccountad ajax
function handleMyAccountAjax(responseText) {
    var desc = document.getElementById("descriptionarea").value.replace(/###newline###/g, "\n");
    document.getElementById("descriptionarea").value = desc;
    ajaxImagesUploaded(document.getElementById("fileids").value, 0);
}

//handle ads selection ajax
function handleAdsSelectionAjax(responseText) {
    document.getElementById("seldiv" + responseText.split('####')[0]).innerHTML = responseText.split('####')[2];

    //set checkbox
    if (document.getElementById("values" + responseText.split('####')[0] + "-" + responseText.split('####')[1] + "div")) {
        setCheckboxValue(rooturl, "values", responseText.split('####')[0] + "-" + responseText.split('####')[1]);
    }

    if (responseText.split('####')[3].length == 8 && document.getElementById(responseText.split('####')[0] + "-" + responseText.split('####')[3].substring(0, 4) + "div"))
        if (document.getElementById(responseText.split('####')[0] + "-" + responseText.split('####')[3].substring(0, 4) + "div").innerHTML == "")
        setLevel(document.getElementById(responseText.split('####')[0] + "-" + responseText.split('####')[3].substring(0, 4) + "image"), responseText.split('####')[0], responseText.split('####')[1], responseText.split('####')[3]);
}

//handle ads selection by class ajax
function handleAdsSelectionByClass(responseText) {
    //set div
    document.getElementById(responseText.split('####')[1] + "-" + responseText.split('####')[0] + "div").style.display = "block";
    document.getElementById(responseText.split('####')[1] + "-" + responseText.split('####')[0] + "div").innerHTML = responseText.split('####')[3];

    //set checkbox
    if (responseText.split('####')[4].length == 8) {
        if (document.getElementById("values" + responseText.split('####')[1] + "-" + responseText.split('####')[2] + "div")) {
            if (document.getElementById("values").value.indexOf(responseText.split('####')[1] + "-" + responseText.split('####')[2]) < 0) {
                setCheckboxValue(rooturl, "values", responseText.split('####')[1] + "-" + responseText.split('####')[2]);
            }
        }
    }
}

//handle myaccountpersonal ajax
function handleMyAccountPersonalAjax(responseText) {
    ajaxPersonalImageUploaded(document.getElementById("fileid").value, 0);
}

//handle ajax myaccountpersonal ad image
function handleAjaxMyAccountPersonalAdImage(responseText) {
    //set content
    document.getElementById("ajaxmyaccountpersonaladimagediv").innerHTML = responseText.substring(responseText.split('#')[0].length + 3);

    //set fileid
    document.getElementById("fileid").value = responseText.split('#')[0];
}

//handle ajax myaccount ad images
function handleAjaxMyAccountAdImages(responseText) {
    //set content
    document.getElementById("ajaxmyaccountadimagesdiv").innerHTML = responseText.substring(responseText.split('#')[0].length + 3);

    //set fileids
    document.getElementById("fileids").value = responseText.split('#')[0];
}


//handle ajax myaccount missing value
function handleAjaxMissingValue(responseText) {
    var error = responseText.split('#')[0];
    var articlepropertytypeid = responseText.split('#')[1];

    if (error == 0) {
        document.getElementById(articlepropertytypeid + "missing").value = responseText.split('#')[2];
        document.getElementById(articlepropertytypeid + "suggestionerror").style.display = "none";
        document.getElementById(articlepropertytypeid + "suggestionerror2").style.display = "none";

        if (document.getElementById(articlepropertytypeid + "suggestionsent").innerHTML.indexOf(":") < 0)
            document.getElementById(articlepropertytypeid + "suggestionsent").innerHTML = document.getElementById(articlepropertytypeid + "suggestionsenttext").innerHTML + ":" + document.getElementById(articlepropertytypeid + "suggestionmessage").value;
        else
            document.getElementById(articlepropertytypeid + "suggestionsent").innerHTML += ", " + document.getElementById(articlepropertytypeid + "suggestionmessage").value;


        document.getElementById(articlepropertytypeid + "suggestionmessage").value = "";

    }
    else {
        if (error == -1)
            document.getElementById(articlepropertytypeid + "suggestionerror").style.display = "block";
        else
            document.getElementById(articlepropertytypeid + "suggestionerror").style.display = "none";


        if (error == -2)
            document.getElementById(articlepropertytypeid + "suggestionerror2").style.display = "block";
        else
            document.getElementById(articlepropertytypeid + "suggestionerror2").style.display = "none";
    }
}