var GoodsOpinion_oInterval = "";
var GoodsOpinion_cancel = false;
var GoodsID4Opinion = 0;
var GoodsOpinion_words = Array("Очень плохо", "Плохо", "Средне", "Хорошо", "Отлично");

/// проверка простой формы на заполненость
/// GoodsID - идентификатор товара
function GoodsOpinion_onSubmitSimple(GoodsID) {
    var obj;
    // Имя
    obj = document.getElementById("fullname" + GoodsID);
    if (obj == null) {
        alert("GoodsOpinion_onSubmitSimple: Не найден объект по ID: \"fullname" + GoodsID + "\"");
        return false;
    }
    if (obj.value == "") {
        alert("Необходимо ввести имя");
        return false;
    }
    // E-mail
    obj = document.getElementById("email" + GoodsID);
    if (obj == null) {
        alert("GoodsOpinion_onSubmitSimple: Не найден объект по ID: \"email" + GoodsID + "\"");
        return false;
    }
    if (obj.value == "") {
        alert("Необходимо ввести E-mail");
        return false;
    }
    if (!GoodsOpinion_isValidEmail(obj.value)) {
        alert("Необходимо ввести правильный E-mail");
        return false;
    }
    
    // общая оценка
    obj = document.getElementById("go" + GoodsID + "_sg_mark");
    if (obj == null) {
        alert("GoodsOpinion_onSubmitSimple: Не найден объект по ID: \"go" + GoodsID + "_sg_mark\"");
        return false;
    }
    if (obj.value < 1) {
        alert("Необходимо выбрать общую оценку");
        return false;
    }
    // Опыт использования
    obj = document.getElementById("experience" + GoodsID);
    if (obj == null) {
        alert("GoodsOpinion_onSubmitSimple: Не найден объект по ID: \"experience" + GoodsID + "\"");
        return false;
    }
    if (GoodsOpinion_get_selected(obj) < 0) {
        alert("Необходимо указать опыт использования");
        return false;
    }
    // Комментарий
    obj = document.getElementById("comment" + GoodsID);
    if (obj == null) {
        alert("GoodsOpinion_onSubmitSimple: Не найден объект по ID: \"comment" + GoodsID + "\"");
        return false;
    }
    if (obj.value == "") {
        alert("Необходимо ввести комментарий");
        return false;
    }
    // Комментарий
    obj = document.getElementById("captcha" + GoodsID);
    if (obj == null) {
        alert("GoodsOpinion_onSubmitSimple: Не найден объект по ID: \"captcha" + GoodsID + "\"");
        return false;
    }
    if (obj.value == "") {
        alert("Необходимо ввести код подтверждения");
        return false;
    }

    return GoodsOpinion_WriteOpinion(GoodsID);
}

// отправляет информацию по оценке товара в БД для записи
function GoodsOpinion_WriteOpinion(GoodsID) {
    // тут когда все проверки пройдены надо просто подтвердить iframe

    var StURL = "/adm/80Port/AddGoodsOpinionIFrame.asp?rej=add&idg=" + GoodsID;
    StURL += "&fullname" + GoodsID + "=" + document.getElementById("fullname" + GoodsID).value;
    StURL += "&email" + GoodsID + "=" + document.getElementById("email" + GoodsID).value;
    StURL += "&go" + GoodsID + "_sg_mark=" + document.getElementById("go" + GoodsID + "_sg_mark").value;
    StURL += "&experience" + GoodsID + "=" + GoodsOpinion_get_selected(document.getElementById("experience" + GoodsID));
    StURL += "&comment" + GoodsID + "=" + document.getElementById("comment" + GoodsID).value;
    StURL += "&approveddate" + GoodsID + "=01.01.2000";
    StURL += "&captcha=" + document.getElementById("captcha" + GoodsID).value;
	GoodsOpinion_show_divMODE("Cnt_MessageError", "none");
	GoodsOpinion_show_divMODE("Cnt_SUBMIT", "none");
    GoodsOpinion_show_divMODE("Cnt_WAIT", "block");
    //alert(StURL);
    document.getElementById("iFrameDB").src = StURL;
    return false;
}


/// рисует статичную оценку (для установки использовать GoodsOpinion_SetMark)
/// GoodsID - идентификатор товара
/// IDSuffix - суффикс для ID элемента span со звездой (например, "_m")
/// ShowOpinionsCount - показывать ли текст с количеством отзывов
function GoodsOpinion_DrawStars(GoodsID, IDSuffix, ShowOpinionsCount) {
    var i;
    var st = '<span class="GoodsOpinion">';
    st += '<span class="GoodsMark" id="go' + GoodsID + '_mmark">';
    for (i = 1; i <= 5; i++)
        st += '<span class="grey" id="go' + GoodsID + IDSuffix + i + '"><img src="/80Port/GoodsOpinion/0.gif" alt="*" /></span>';
    st += '</span>';
    if (ShowOpinionsCount) {
        st += '<a href="goodsinfo.html?opinion=1">Отзывов: <font id="go' + GoodsID + '_mcnt">0</font></a> <a href="javascript:void(0);" onclick="javascript:GoodsOpinion_ShowForm(GoodsID4Opinion);">Оставить отзыв</a>';
    }
    st += '</span>';
    //alert(st);
    document.writeln(st);
}

/// рисует оценку для ввода пользователем
/// GoodsID - идентификатор товара
/// IDSuffix - суффикс для ID элемента span со звездой (например, "_m")
/// className - имя класса для отображения ("gold" или "blue")
function GoodsOpinion_DrawStars4Select(GoodsID, IDSuffix, className) {
    var i;
    var st = '<span class="GoodsOpinion">';
    st += '<span class="GoodsMark4Select" id="go' + GoodsID + '_mmark")" onmouseout="javascript:GoodsOpinion_OUT(' + GoodsID + ', \'' + IDSuffix + '\', \'' + className + '\')">';
    for (i = 1; i <= 5; i++) {
        //st += '<span class="grey" id="go' + GoodsID + IDSuffix + i + '"><a href="javascript:void(0);" onclick="javascript:GoodsOpinion_Vote(' + GoodsID + ', \'' + IDSuffix + '\', \'' + className + '\', ' + i + ');" title="' + GoodsOpinion_words[i - 1] + '" onmouseover="javascript:GoodsOpinion_IN(' + GoodsID + ', \'' + IDSuffix + '\', ' + i + ', \'' + className + '\')"><img src="/i/0.gif" alt="' + GoodsOpinion_words[i - 1] + '" /></a></span>';
        st += '<span class="grey" id="go' + GoodsID + IDSuffix + i + '" onclick="javascript:GoodsOpinion_Vote(' + GoodsID + ', \'' + IDSuffix + '\', \'' + className + '\', ' + i + ');" title="' + GoodsOpinion_words[i - 1] + '" onmouseover="javascript:GoodsOpinion_IN(' + GoodsID + ', \'' + IDSuffix + '\', ' + i + ', \'' + className + '\')"><img src="/i/0.gif" alt="' + GoodsOpinion_words[i - 1] + '" /></span>';
    }
    st += '</span>';
    st += '</span>';
    st += '<input type="hidden" name="go' + GoodsID + IDSuffix + '_mark" id="go' + GoodsID + IDSuffix + '_mark" value="0" />';
    //alert(st);
    document.writeln(st);
}

/// функция голосования, которая фиксирует результат выбранный пользователем в hidden-поле
/// GoodsID - идентификатор товара
/// IDSuffix - суффикс для ID элемента span со звездой (например, "_m")
/// className - имя класса для отображения ("gold" или "blue")
/// Mark - оценка [1; 5]
function GoodsOpinion_Vote(GoodsID, IDSuffix, className, Mark) {
    var obj = document.getElementById("go" + GoodsID + IDSuffix + "_mark");
    if (obj == null) {
        alert("GoodsOpinion_Vote: не найден элемент по ID: '" + "go" + GoodsID + IDSuffix + "_mark'");
        return;
    }
    obj.value = Mark;
    GoodsOpinion_SetMark(GoodsID, 0, Mark, className, IDSuffix);
    //alert("GoodsOpinion_Vote: " + Mark);
}

/// функция для получения текущего значения оценки [1; 5], 0 - не задано
/// GoodsID - идентификатор товара
/// IDSuffix - суффикс для ID элемента span со звездой (например, "_m")
function GoodsOpinion_GetVoteValue(GoodsID, IDSuffix) {
    var obj = document.getElementById("go" + GoodsID + IDSuffix + "_mark");
    if (obj == null) {
        return 0;
    }
    return obj.value;
}

/// функция-обработчик потери фокуса ШКАЛОЙ
function GoodsOpinion_OUT(GoodsID, IDSuffix, className) {
    var i, obj;
    i = GoodsOpinion_GetVoteValue(GoodsID, IDSuffix);
    if (i > 0) {    // если текущая оценка есть - установим ее и не очищаем шкалу
        GoodsOpinion_SetMark(GoodsID, 0, i, className, IDSuffix);
        return;
    }
    // не выбрал юзер оценку - очищаем шкалу полностью!
    for (i = 1; i <= 5; i++) {
        obj = document.getElementById("go" + GoodsID + IDSuffix + i);
        if (obj != null) {
            obj.className = "grey";
        }
    }
}

/// функция-обработчик приобретения фокуса звездой шкалы
function GoodsOpinion_IN(GoodsID, IDSuffix, Mark, className) {
    // устанаваем шкалу
    for (i = 1; i <= 5; i++) {
        obj = document.getElementById("go" + GoodsID + IDSuffix + i);
        if (obj != null) {
            if (i <= Mark)
                obj.className = className;
            else
                obj.className = "grey";
        }
    }
}


/// устанавливает оценку для товара
/// GoodsID - идентификатор товара
/// VotesCount - количество голосов [0; +)
/// MarkValue - значение оценки [0; 5]
/// className - имя класса для отображения ("gold" или "blue")
/// IDSuffix - суффикс для ID элемента span со звездой (например, "_m")
function GoodsOpinion_SetMark(GoodsID, VotesCount, MarkValue, className, IDSuffix) {
    var i, obj;
    for (i = 1; i <= 5; i++) {
        obj = document.getElementById("go" + GoodsID + IDSuffix + i);
        if (obj == null) {
            alert("GoodsOpinion_SetMark: не найден элемент по ID: '" + "go" + GoodsID + IDSuffix + i + "'");
            continue;
        }
        // серая звезда
        if (MarkValue < i - 0.66) { // серая звезда
            obj.className = "grey";
            continue;
        }
        if (MarkValue < i - 0.33) { // серая звезда
            obj.className = "semi" + className;
            continue;
        }
        obj.className = className;
    }
    obj = document.getElementById("go" + GoodsID + IDSuffix + "cnt");
    if (obj == null) {
        //alert("GoodsOpinion_SetMark: не найден элемент по ID: '" + "go" + GoodsID + IDSuffix + "cnt'");
    }
    else
        obj.innerText = VotesCount;
    /*            
    if (VotesCount == 0) {
    obj = document.getElementById("go" + GoodsID + IDSuffix + "mark");
    if (obj == null) {
    //alert("GoodsOpinion_SetMark: не найден элемент по ID: '" + "go" + GoodsID + IDSuffix + "mark'");
    }
    else
    obj.style.display = "none";
    }
    */
}

// показать форму с оставлением отзыва по товару GoodsID
function GoodsOpinion_ShowForm(idgoods) {
    fr_opinion.document.location = "/80Port/GoodsOpinion/GoodsOpinion.html?idg=" + idgoods + "&r=" + RND;
    document.getElementById("fr_opinion_id").style.display="block";
}

function GoodsOpinion_get_selected(p) {
    if (p == null) return "";
    for (i = 0; i < p.options.length; i++) {
        if (p.options[i].selected) { return p.options[i].value; }
    }
    return "";
}


// закрытие фрейма
function GoodsOpinion_close_frame(IDframe) {
    if (parent == null || parent.document == null)
        return;
    var f = parent.document.getElementById(IDframe);
    if (f != null) f.style.display = "none";
}

function GoodsOpinion_CountDown(myEl, secs) {
    if (GoodsOpinion_cancel)
        return;
    var obj = document.getElementById(myEl)
    if (secs > 0) {
        if (obj != null) obj.innerHTML = secs;
        setTimeout("GoodsOpinion_CountDown('" + myEl + "', " + (secs - 1) + ");", 990);
    }
    else {	/*
		secs = 10;
		setTimeout("GoodsOpinion_CountDown('" + myEl + "', " + (secs-1) + ");", 990);
		*/
        if (obj != null) obj.innerHTML = "Закрываем окно";
        GoodsOpinion_close_frame("fr_opinion_id");
    }
    if (parent == null || parent.document == null)
        return;
    /*
    var f = parent.document.getElementById("fr_opinion_id");
    if (f != null) {
        f.height = 300;
        f.style.height = 300;
        f.style.minHeight = 300;
    }
    */
}


function GoodsOpinion_SetInitHeight() {
    if (parent == null || parent.document == null)
        return;
    var f = parent.document.getElementById("fr_opinion_id");
    if (f != null) {
        f.height = 300;
        f.style.height = 300;
        f.style.minHeight = 300;
    }
}


// отменить автоматическое закрытие
function GoodsOpinion_Cancel_Close() {
    GoodsOpinion_cancel = true;
    var obj = document.getElementById("close_span");
    if (obj != null) obj.style.display = "none";
}

function GoodsOpinion_show_divMODE(id_cur, mode) {
    var div_set = null;
    div_set = document.getElementById(id_cur);
    if (div_set != null)
        div_set.style.display = mode;
}

function GoodsOpinion_isValidEmail(email) {
    return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

function GoodsOpinion_endPart() {
    //выполняем оставшиеся действия после задержки
    var obj = document.getElementById("Cnt_MessageOk");
    if (obj == null)
        return;
    if (obj.style.display == "none")
        return;
    clearInterval(GoodsOpinion_oInterval);
    GoodsOpinion_CountDown("mySec", 3);
}

function refreshCaptcha() {
    var RND=parseInt(Math.random()*100000);
    var obj = document.getElementById("captchaImg");
    if (obj == null)
	{
		alert("ошибка refreshCaptcha: не найден элемент по ИД: '" + objID + "'")
        return;
	}
	obj.src="/adm/i/0.gif";
	obj.src="/adm/80Port/captcha.asp?rnd=" + RND;
}
