﻿function CMSOnSubmit() {
    CMSClearEmptyText4Password()
}

function CMSClearEmptyText4Password() {
    var elements = document.getElementsByTagName('input');
    if (elements != null) {
        for (var i = 0; i < elements.length; i++) {
            if (elements[i].type == 'password') {
                CMSFieldOnFocus(elements[i]);
            }
        }
    }
}

function CMSFieldOnFocus(o) {
    if ((o != null) && (o.attributes['emptyText'] != null) && (o.value == o.attributes['emptyText'].value))
        o.value = '';
}
function CMSFieldOnBlur(o) {
    if ((o != null) && (o.attributes['emptyText'] != null) && (o.value == ''))
        o.value = o.attributes['emptyText'].value;
}
function CMSFieldInitializeEmptyValue(o) {
    if ((o != null) && (o.attributes['emptyText'] != null) && (o.value == ''))
        o.value = o.attributes['emptyText'].value;
}

function CMSOverlayLabel(inputControlClientID, labelControlClientID) {
    this.inputControl = document.getElementById(inputControlClientID);
    this.labelControl = document.getElementById(labelControlClientID);

    this.hideLabel = function(event) {
        event = event || window.event;
        var eventTarget = event.target || event.srcElement;
        if (!eventTarget || !eventTarget.overlayObject) return;

        eventTarget.overlayObject.labelControl.style.display = 'none';
        eventTarget.overlayObject.inputControl.focus();
    };

    this.showLabel = function(event) {
        event = event || window.event;
        var eventTarget = event.target || event.srcElement;
        if (!eventTarget || !eventTarget.overlayObject) return;

        if (eventTarget.overlayObject.inputControl.value.length <= '0') {
            eventTarget.overlayObject.labelControl.style.display = '';
        }
    };

    ///////////////////////////////////////////////////////////////////////////////////
    // Initialization
    this.Init = function() {
        if (!this.labelControl || !this.inputControl) return;

        this.labelControl.overlayObject = this;
        this.inputControl.overlayObject = this;

        var imputControlDim = getDimensions(this.inputControl);
        this.labelControl.style.height = imputControlDim.height + 'px';
        this.labelControl.style.width = imputControlDim.width + 'px';
        this.labelControl.style.position = 'absolute';
        this.labelControl.style.lineHeight = imputControlDim.height + 'px';
        //this.labelControl.style.textAlign = 'center';

        if ((this.inputControl.disabled == null) || (this.inputControl.disabled == undefined) ||
            !this.inputControl.disabled) {
            attachEventToElement(this.labelControl, 'click', this.hideLabel);
            attachEventToElement(this.inputControl, 'focus', this.hideLabel);
            attachEventToElement(this.inputControl, 'blur', this.showLabel);
        }

        if (this.inputControl.value.length <= '0') {
            this.labelControl.style.display = '';
        }
        else {
            this.labelControl.style.display = 'none';
        }
    }
    this.Init();
}

function BuyButtonPerformAction(buttonClientID, hiddenFieldClientID, articleData) {
    buttonControl = document.getElementById(buttonClientID);
    hiddenFieldControl = document.getElementById(hiddenFieldClientID);
    if (!buttonControl || !hiddenFieldControl) return;

    hiddenFieldControl.value = articleData;
    buttonControl.click();
    return false;
}

function getXMLHttpRequest()
{
    var xhr;
    if (window.XMLHttpRequest)
    {
        if (!(xhr = new XMLHttpRequest())) return false;
    } else
    {
        try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e)
        {
            try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { return false; }
        }
    }
    return xhr;
}

function voteArticle(url, vote, controlID, articleID, currRateLiID, maxValue, imgWidth, avgRateLabelID, totalVotesLabelID, voteSuccesLabelID, voteFailedLabelID)
{
    var xhr = getXMLHttpRequest();
    if (xhr != null)
    {
        var url = url + '?cid=' + controlID + '&aid=' + articleID + '&vote=' + vote;
        xhr.open('GET', url, true);
        xhr.setRequestHeader('If-Modified-Since', 'Thu, 1 Jan 1970 00:00:00 GMT');
        xhr.setRequestHeader('Cache-Control', 'no-cache');
        xhr.onreadystatechange = function()
        {
            if (xhr.readyState === 4)
            {
                xhr.onreadystatechange = function() { };
                voteResponse(xhr, currRateLiID, maxValue, imgWidth, avgRateLabelID, totalVotesLabelID, voteSuccesLabelID, voteFailedLabelID);
            }
        };
        xhr.send(null);
    }
    return false;
}

function voteResponse(xhr, currRateLiID, maxValue, imgWidth, avgRateLabelID, totalVotesLabelID, voteSuccesLabelID, voteFailedLabelID)
{
    var success = false;
    var avgRateLabel = document.getElementById(avgRateLabelID);
    var totalVotesLabel = document.getElementById(totalVotesLabelID);
    var voteSuccesLabel = document.getElementById(voteSuccesLabelID);
    var voteFailedLabel = document.getElementById(voteFailedLabelID);
    var currRateLi = document.getElementById(currRateLiID);
    
    if (xhr && (xhr.status == 200) && xhr.responseText && (xhr.responseText != ''))
    {
        var values = xhr.responseText.split(';');
        if (values.length && values.length >= 1)
        {
            var result = values[0].toLowerCase();
            if ((result == 'ok') && (values.length >= 3) && avgRateLabel && totalVotesLabel)
            {
                var votes = values[1];
                var avgRate = values[2];
                avgRateLabel.innerHTML = avgRate;
                totalVotesLabel.innerHTML = votes;
                setRateWidth(currRateLi, maxValue, imgWidth, avgRate);
                success = true;
            }
            else ((result == 'fail') && (values.length >= 2))
            {
                var errorMessage = values[1];
                voteFailedLabel.innerHTML = errorMessage;
            }
        }
    }
    if (voteSuccesLabel && voteFailedLabel)
    {
        setControlVisible(voteSuccesLabel, success);
        setControlVisible(voteFailedLabel, !success);
    }
}

function setRateWidth(currRateLi, maxValue, imgWidth, rate)
{
    var rateValueFloat = parseFloat(rate.replace(',', '.')) * 100;
    if (rateValueFloat && rateValueFloat != NaN)
    {
        var rateValue = parseInt(rateValueFloat);
        if (currRateLi && rateValue && rateValue != NaN)
        {
            var width = (imgWidth * maxValue * rateValue / maxValue) / 100;
            currRateLi.style.width = parseInt(width) + 'px';
        } 
    }
}

function setControlVisible(control, visible)
{
    control.style.display = visible ? 'block' : 'none';
}
