/*
 * This is main WP Job Board JavaScript file
 */

function getHTTPObject()
{
    var xhr = false;
    if (window.XMLHttpRequest) {
        xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
            try {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {
                xhr = false;
            }
        }
    }
    return xhr;
}

function addLoadEvent(func)
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function registerEvents()
{
    document.getElementById("check").style.visibility = "hidden";

    document.getElementById('verify-code').addEventListener(
        'click',
        function() {

            if(formHelper.discount > 0 || this.value == "unset")
            {
                document.getElementById("code").value = "";
                document.getElementById("code").removeAttribute("readonly");
                this.value = "check";
                formHelper.reset();
                formHelper.update();
                document.getElementById("check").style.visibility = "hidden";
                return;
            }

            var response = Object;
            response.discount = 10;
            response.type = 1; // 1% $2
            response.message = "Response text";
            response.status = 1;

            var code = document.getElementById('code');
            var post = 'code='+code.value+'&';
            var url = self.location.href;
            url = url.substr(0, url.length-4) + "/check";

            request = getHTTPObject();
            request.open("POST", url, true);
            request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            request.setRequestHeader("Content-length", post.length);
            request.setRequestHeader("Connection", "close");
            request.onreadystatechange = function()
            {
                if(request.readyState == 1)
                {

                }

                if(request.readyState == 4)
                {
                    //alert(request.responseText);
                    eval("var obj = "+request.responseText);
                    formHelper.type = obj.type;
                    formHelper.discount = obj.discount;

                    formHelper.update();

                    var check = document.getElementById("check");
                    check.innerHTML = obj.message;
                    check.style.visibility = "visible";

                    if(obj.status == 0) {
                        check.style.border = "1px dotted #880000";
                        check.style.background = "#fedede";
                        check.style.color = "#330000";
                    } else {
                        document.getElementById("code").
                            setAttribute("readonly", "readonly");
                        document.getElementById('verify-code').value = "unset";
                        check.style.border = "1px dotted #3872bb";
                        check.style.background = "#d1dffd";
                        check.style.color = "#003333";
                        //check.innerHTML += " Added discount "+tv+""+obj.discount+""+tp+".";
                    }
                }

            };
            request.send(post);

        },
        false
        );

    var radios = document.forms["addJobForm"].elements["listingType"];

    if(radios instanceof HTMLInputElement) {
        radios = new Array(radios);
    }

    for (i=0;i<radios.length;i++) {

        radios[i].addEventListener(
            "click",
            function() {
                var id = this.getAttribute("value");
                var  price = document.getElementById("list-price-"+id).value;
                var  curr = document.getElementById("list-price-curr-"+id).value;
                formHelper.price = price;
                formHelper.currency = curr;
                formHelper.update();
            },
            false
            );
        if(radios[i].checked)
        {
            radios[i].click();
        }
    }

    var code = document.getElementById('code');
    if(code.value.length > 0) {
        document.getElementById('verify-code').click();
    }

}

var formHelper = new Object;
formHelper.TYPE_PERCENT = 1;
formHelper.update = function() {
    if(typeof this.price == 'undefined') {
        return;
    }
    var price = parseFloat(this.price).toFixed(2);
    var value = parseFloat(this.value(price)).toFixed(2);

    document.getElementById("txtCost").innerHTML = this.currency + price;
    document.getElementById("txtDiscount").innerHTML = this.currency + value;
    var total = (price-value).toFixed(2);
    document.getElementById("txtTotal").innerHTML = this.currency + (total);
}

formHelper.value = function(cost) {
    if(this.type == this.TYPE_PERCENT) {
        return cost * this.percent(cost) / 100;
    } else {
        return this.discount;
    }
}

formHelper.percent = function(cost) {
    if(this.type == this.TYPE_PERCENT) {
        return this.discount;
    } else {
        return this.value(cost)/cost * 100;
    }
}
formHelper.reset = function() {
    this.type = 1;

    this.discount = 0;
}

formHelper.reset();
addLoadEvent(registerEvents);
