var is_design_page = false;
var design_sex = '';
var domain = 'rubashka-na-zakaz';
var customerServiceUrl = '/customerService.php';
var invoiceUrl = '../../invoice.php?oid=';
var getReceiptUrl = '../../paymentResult.php?';
var tie_design_base = '../customTie/';
var cont1 = 'info';
var cont2 = 'support';
//Шаблон утянут с http://fightingforalostcause.net/misc/2006/compare-email-regex.php
var REGEX_EMAIL = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
var customerId = '';
var cookieId = '';
var sessId = 0;
var click_count = 0;
var current_page = '';
var current_popup = '';
var current_popup2 = '';
var current_popup3 = '';
var current_popup4 = '';
var current_popup5 = '';
var current_popup6 = '';
var authorized = false;
var partner_status = 'none';
var addresses = {};
var selected_address = {};
var profiles = {};
var last_profile_number = 0;
var profile = {};
var orders = {};
var show_all_orders = false;
var current_order = '';
var order = {};
var order_contents = {};
var cart_contents = {};
var cart_shirt = {};
var shipping_list = {};
var country_list = {};
var order_total = 0;
var account_balance = 0;
var use_balance = false;
var payment_list = {};
var cuffLinks_list = {};
var books_list = {};
var ties_list = {};
var socks_list = {};
var full_socks_list = {};
var samples_oid = '';
var giftCerts_list = {};
var virtualGiftCert_oid = '';
var last_captcha = '';
var radiobuttons = {};
var ckboxes = {};
var li_counter1 = new Image(1,1);
var li_counter2 = new Image(1,1);

var i;

for (i in currentProductAttr)
    if (currentProductAttr[i].attr.attrType == 'measure') {
        currentProductAttr[i].attr.min = currentProductAttr[i].attr.mensMin;
        currentProductAttr[i].attr.max = currentProductAttr[i].attr.mensMax;
    }

/*
for (i in productAttr.ladies_shirt)
    if (productAttr.ladies_product[i].attr.attrType == 'measure') {
        productAttr.ladies_product[i].attr.min = productAttr.ladies_product[i].attr.ladiesMin;
        productAttr.ladies_product[i].attr.max = productAttr.ladies_product[i].attr.ladiesMax;
    }
*/
productAttr.mens_shirt = currentProductAttr;

var last_meas_mens_step = 11;
var meas_mens = {
    /*1 : {
        'neckAround' : ''
    },
    2 : {
        'chestAround' : ''
    },
    3 : {
        'waistAround' : ''
    },
    4 : {
        'seatAround' : ''
    },
    5 : {
        'bicepsAround' : ''
    },
    6 : {
        'wristAround' : ''
    },
    */
    /* 7 : {
        'lengthToShoulder' : ''
    }, */
    /*
    7 : {
        'sleeveLength' : '',
        'shortSleeveLength' : ''
    },
    8 : {
        'chestWidth' : ''
    },
    9 : {
        'backWidth' : ''
    },
    10 : {
        'shirtLength' : '',
        'height' : ''
    },
    */
    1 : {
        tieWidth : ''
    },
    2 : {
        tieLength : ''
    },
    last_meas_mens_step : {}
};

var measurements = meas_mens;
var last_measurements_step = last_meas_mens_step;

var last_meas_ladies_step = 14;
var meas_ladies = {
    1 : {
        'neckAround' : ''
    },
    2 : {
        'chestAround' : ''
    },
    3 : {
        'waistAround' : ''
    },
    4 : {
        'seatAround' : ''
    },
    5 : {
        'bicepsAround' : ''
    },
    6 : {
        'wristAround' : ''
    },
    7 : {
        'lengthToShoulder' : ''
    },
    8 : {
        'sleeveLength' : '',
        'shortSleeveLength' : ''
    },
    9 : {
        'bustHeight' : ''
    },
    10 : {
        'bustCenter' : ''
    },
    11 : {
        'chestWidth' : ''
    },
    12 : {
        'backWidth' : ''
    },
    13 : {
        'shirtLength' : '',
        'height' : ''
    },
    last_meas_ladies_step : {}
};

function date_conv (d) {
    var a = d.split('-');
    return (a[2] + '.' + a[1] + '.' + a[0]);
}

function date_conv_yy (d) {
    var a = d.split('-');
    return (a[2] + '.' + a[1] + '.' + a[0].substr(2));
}

function myalert (msg) {
    alert (msg);
}

function myconfirm (msg) {
    return (confirm (msg));
}

function elt (id) {
    return (document.getElementById(id));
}

function write_inner (id, contents) {
    try{
        elt(id).innerHTML = contents;
    } catch (err) {
        document.getElementById('dbg').innerHTML += 'Element '+ id + 'is not set';
    }
}

function show_inline_item (item) {
    elt(item).style.display = 'inline';
}

function show_item (item) {
    elt(item).style.display = 'block';
}

function hide_item (item) {
    elt(item).style.display = 'none';
}

function check_inputs (t) {
    var err = false;
    for (var i in t) {
        var e = elt (i);
        if (e.value.match(t[i])) {
            if (e.saved_bgcolor != undefined)
                e.style.backgroundColor = e.saved_bgcolor;
        } else {
            if (e.saved_bgcolor == undefined)
                e.saved_bgcolor = e.style.backgroundColor;
            e.style.backgroundColor = 'red';
            if (!err)
                e.focus();
            err = true;
        }
    }
    if (err) {
        myalert ('Обнаружены ошибки');
        throw 'err validating input';
    }
}

function check_birthday() {
    if (elt('rc_birthday').value) {
        
    }
}

function enable_ckbox (item, set_state) {
    elt(item).className = set_state;
}

function disable_ckbox (item) {
    elt(item).className = 'disabled';
}

function select_ckbox (what) {
    var x = elt(what);
    var c = x.className;
    if (c == 'disabled')
        return;
    eval ('select_ckbox_' + what + '()');
}

function enable_ckbox_button (item, set_state) {
    elt(item).className = 'ckbox ' + set_state;
}

function disable_ckbox_button (item) {
    elt(item).className = 'ckbox disabled';
}

function select_ckbox_button (what) {
    var x = elt(what);
    var c = x.className;
    if (c == 'ckbox disabled')
        return;
    eval ('select_ckbox_button_' + what + '()');
}

function cursor_wait (item) {
    elt(item).style.cursor = 'progress';
}

function cursor_clear (item) {
    elt(item).style.cursor = 'pointer';
}

function hide_popup6 () {
    if (current_popup6)
        hide_item (current_popup6);
    else
        hide_popup5 ();
}

function hide_popup5 () {
    if (current_popup5)
        hide_item (current_popup5);
    else
        hide_popup4 ();
}

function hide_popup4 () {
    if (current_popup4)
        hide_item (current_popup4);
    else
        hide_popup3 ();
}

function hide_popup3 () {
    if (current_popup3)
        hide_item (current_popup3);
    else
        hide_popup2 ();
}

function hide_popup2 () {
    if (current_popup2)
        hide_item (current_popup2);
    else
        hide_popup ();
}

function hide_popup () {
    if (current_popup)
        hide_item (current_popup);
    else {
        hide_item (current_page);
        show_item ('popups');
    }
}

function show_popup6 () {
    if (current_popup6)
        show_item (current_popup6);
    else
        show_popup5 ();
}

function show_popup5 () {
    if (current_popup5)
        show_item (current_popup5);
    else
        show_popup4 ();
}

function show_popup4 () {
    if (current_popup4)
        show_item (current_popup4);
    else
        show_popup3 ();
}

function show_popup3 () {
    if (current_popup3)
        show_item (current_popup3);
    else
        show_popup2 ();
}

function show_popup2 () {
    if (current_popup2)
        show_item (current_popup2);
    else
        show_popup ();
}

function show_popup () {
    if (current_popup)
        show_item (current_popup);
    else {
        hide_item ('popups');
        show_item (current_page);
    }
}

function change_popup6 (p) {
    hide_item (current_page);
    show_item ('popups');
    if (current_popup6)
        hide_item (current_popup6);
    current_popup6 = p;
    // change_popup7 ('');
    if (p)
        hide_popup5 ();
    else
        show_popup5 ();
}

function change_popup5 (p) {
    if (current_popup5)
        hide_item (current_popup5);
    current_popup5 = p;
    change_popup6 ('');
    if (p)
        hide_popup4 ();
    else
        show_popup4 ();
}

function change_popup4 (p) {
    if (current_popup4)
        hide_item (current_popup4);
    current_popup4 = p;
    change_popup5 ('');
    if (p)
        hide_popup3 ();
    else
        show_popup3 ();
}

function change_popup3 (p) {
    if (current_popup3)
        hide_item (current_popup3);
    current_popup3 = p;
    change_popup4 ('');
    if (p)
        hide_popup2 ();
    else
        show_popup2 ();
}

function change_popup2 (p) {
    if (current_popup2)
        hide_item (current_popup2);
    current_popup2 = p;
    change_popup3 ('');
    if (p)
        hide_popup ();
    else
        show_popup ();
}

function change_popup (p) {
    if (current_popup)
        hide_item (current_popup);
    current_popup = p;
    change_popup2 ('');
}

function change_page (name) {
    current_page = name + '_page';
    try {
        eval (current_page + '_init()');
    } catch (e) {}
    show_item (current_page);
}

function clear_email (f) {
    if (f.value == 'e-mail')
        f.value = '';
}

function loadURL (url, callback) {
    var xmlhttp = null;
    if (window.XMLHttpRequest)  // code for Firefox, Opera, IE7, etc.
        xmlhttp = new XMLHttpRequest ();
    else if (window.ActiveXObject)    // code for IE6, IE5
        xmlhttp = new ActiveXObject ('Microsoft.XMLHTTP');
    if (xmlhttp != null) {
        if (callback)
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4)  // 4 = "loaded"
                    if (xmlhttp.status == 200)  // 200 = "OK"
                        callback (xmlhttp.responseText);
                    else
                        myalert('Произошла ошибка получения данных с сервера: ' + xmlhttp.statusText);
            }
        xmlhttp.open ('GET', url, callback ? true : false);
        xmlhttp.send (null);
    } else
        myalert ('Ваш браузер не поддерживает XMLHTTP.');
}

function customerService (f, action, callback, params) {
    var xmlhttp = null;
    if (window.XMLHttpRequest)  // code for Firefox, Opera, IE7, etc.
        xmlhttp = new XMLHttpRequest ();
    else if (window.ActiveXObject)    // code for IE6, IE5
        xmlhttp = new ActiveXObject ('Microsoft.XMLHTTP');
    if (xmlhttp != null) {
        var i;
        if (f)
            f.style.cursor = 'wait';
        var s = 'action=' + action;
        for (i in params)
            s += '&' + i + '=' + encodeURIComponent(params[i]);
        xmlhttp.onreadystatechange = function () {
            try {
                if (xmlhttp.readyState == 4) {  // 4 = "loaded"
                    if (f)
                        f.style.cursor = 'pointer';
                    if (xmlhttp.status == 200) {  // 200 = "OK"
                        eval (xmlhttp.responseText);
                        if (customerServiceCode) {
                            myalert ('Ошибка ' + customerServiceCode + ': ' + customerServiceErr);
                            if (customerServiceCode == 453)
                                authorize ();
                            else if (customerServiceCode == 454)
                                get_captcha (last_captcha);
                            return;
                        }
                        callback (xmlhttp.responseText);
                    } else
                        myalert('Произошла ошибка получения данных с сервера: ' + xmlhttp.statusText);
                }
            } catch(e) {
                //Античный баг в Firefox - при ошибке вызывает исключение
                //См. https://bugzilla.mozilla.org/show_bug.cgi?id=238559
                myalert('Произошла ошибка получения данных с сервера: ' + e.message);
            }
        }
        xmlhttp.open ('POST', customerServiceUrl, true);
        xmlhttp.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.send (s);
    } else
        myalert ('Ваш браузер не поддерживает XMLHTTP.');
}

function error_callback (res) {
}

function handleErr (msg, url, line) {
    var p = {};
    p.msg = msg;
    p.url = url;
    p.line = line;
    p.ua = navigator.userAgent;
    customerService (0, 'error', error_callback, p);
    return false;
}

onerror = handleErr;

document.onclick = function () {
    click_count++;
}

function switch2authorized (name) {
    write_inner ('customerName', name);
    hide_item ('unauthorized');
    show_item ('authorized');
    authorized = true;
    getDetails ();
    try {
        eval (current_page + '_authorized()');
    } catch (e) {}
}

function login_callback (res) {
    eval (res);
    switch2authorized (customerName);
}

function login (f) {
    var p = {};
    p.email = elt('email').value;
    p.password = elt('password').value;
    elt('password').blur();
    elt('password').value = '*****';
    customerService (f, 'login', login_callback, p);
    return (false);
}

function switch2unauthorized (dont_close) {
    if (!dont_close)
        change_popup ('');
    hide_item ('authorized');
    show_item ('unauthorized');
    authorized = false;
    if (is_design_page) {
        elt('measurementsName').value = '';
        elt('measurementsName').disabled = true;
        write_inner ('select_profile', '&nbsp;');
        write_inner ('select_profile_cart', 'Для использования сохраненных размеров необходимо <u onclick="authorize()">авторизоваться или зарегистрироваться</u>');
    }
    try {
        eval (current_page + '_unauthorized()');
    } catch (e) {}
}

function logout_callback (res) {
    switch2unauthorized ();
}

function logout (f) {
    customerService (f, 'logout', logout_callback);
}

function change_cart (count, sum) {
    write_inner ('cart_count', count);
    write_inner ('cart_sum', sum);
}

function days2text (t) {
    switch (t % 100) {
        case 11:
        case 12:
        case 13:
        case 14:
            return 'дней';
    }
    switch (t % 10) {
        case 1:
            return 'день';
        case 2:
        case 3:
        case 4:
            return 'дня';
    }
    return 'дней';
}

function change_productionTime (t) {
    if (is_design_page) {
        if (design_sex == 'f')
            t = t > 7 ? t : 7;
        write_inner ('production_time', t);
        write_inner ('production_time_days', days2text (t));
    }
}

function getCart_callback (res) {
    eval (res);
    change_cart (count, sum);
    change_productionTime (productionTime)
    var i;
    var s = '';
    cart_contents = a;
    for (i in a) {
        var o = a[i];
        var src = o.category.match(/^custom/) ? '../' + o.category + '/'+ o.product + '/fabric_icon.png' : '../' + o.category + '/' + o.product + '_pict.jpg';
        s += '<div class="cart_article">';
        s += '<table summary="">';
        s += '<tr>';
        s += '<td width="100">';
        s += '<img alt="" src="' + src + '" /><br />';
        if (o.category != 'giftCerts')
            s += '<span class="normal_link" onclick="updateArticleAmount(this,\'' + i + '\')">Пересчитать</span><br />';
        s += '<span class="normal_link" onclick="removeArticle(this,\'' + i + '\')">Удалить</span>';
        s += '</td>';
        s += '<td width="130">';
        s += '<span class="articleName" onclick="articleView(this,\'' + i + '\')">';
        s += o.displayName;
        s += '</span>';
        s += '<br />Цена: ' + o.price + ' руб.<br />';
        s += '<br />Количество: <input type="text" id="article_count_' + i + '" size="1" maxlength="1" value="' + o.count + '" /><br />';
        s += '<br />Сумма: ' + o.sum + ' руб.';
        s += '</td>';
        s += '<td>';
        s += '<span class="articleDescrHeader">Описание:</span><br />';
        s += o.shortDescription;
        s += '</td>';
        s += '</tr>';
        s += '</table>';
        s += '</div>';
    }
    write_inner ('cartView', s);
    if (s)
        change_popup ('cartView_page');
}

function getCart (getCartContents) {
    var p = {};
    if (getCartContents)
        p.getCartContents = 'true';
    customerService (0, 'getCart', getCart_callback, p);
}

function get_captcha (id) {
    last_captcha = id;
    var d = new Date ();
    var t = d.getTime();
    elt(id).src = customerServiceUrl + '?action=captcha&rnd=' + t;
    elt('r_captcha').value = '';
    elt('rgc_captcha').value = '';
}

function change_subscribeNews () {
    enable_ckbox_button ('subscribeNews', ckboxes.subscribeNews);
}

function select_ckbox_button_subscribeNews () {
    ckboxes.subscribeNews = !ckboxes.subscribeNews;
    change_subscribeNews ();
}

function change_subscribeNews2 () {
    enable_ckbox_button ('subscribeNews2', ckboxes.subscribeNews2);
}

function select_ckbox_button_subscribeNews2 () {
    ckboxes.subscribeNews2 = !ckboxes.subscribeNews2;
    change_subscribeNews2 ();
}

function show_register () {
    if (!cookieId) {
        myalert ('Требуется поддержка cookies');
        return;
    }
    elt('r_male').checked = false;
    elt('r_male_img').className = 'radio false';
    elt('r_female').checked = false;
    elt('r_female_img').className = 'radio false';
    radiobuttons.r_sex = '';
    ckboxes.subscribeNews = true;
    change_subscribeNews ();
    elt('r_feeEmail').value = '';
    get_captcha ('captcha');
    change_popup ('registration_page');
}

function register_callback (res) {
    eval (res);
    myalert ('Готово');
    change_popup ('');
    elt('email').value = elt('r_email').value;
    var f = elt('r_form');
    for (var i=0; i<f.length; i++)
        if (f.elements[i].type == 'text' || f.elements[i].type == 'password')
            f.elements[i].value = '';
    switch2authorized (customerName);
}

function register (f) {
    var t = {
        'r_email' : REGEX_EMAIL,
        'r_password' : /./,
        'r_password2' : /./,
        'r_lastName' : /[А-Яа-яA-Za-z]{2}/,
        'r_firstName' : /[А-Яа-яA-Za-z]{2}/,
        'r_mnogoRu' : /(^$)|(^\d{8}$)/,
        'r_captcha' : /[0-9a-z]{5}/
    };
    check_inputs (t);
    if (elt('r_password').value != elt('r_password2').value) {
        myalert ('Введенные пароли не совпадают');
        elt('r_password').focus();
        return;
    }
    var p = {};
    p.lastName = elt('r_lastName').value;
    p.firstName = elt('r_firstName').value;
    p.middleName = elt('r_middleName').value;
    p.email = elt('r_email').value;
    if (elt('r_feeEmail').value)
        p.feeEmail = elt('r_feeEmail').value;
    p.subscribeNews = ckboxes.subscribeNews;
    if (elt('r_birthday').value)
        p.birthday = elt('r_birthday').value;
    p.sex = elt('r_male').checked ? 1 : elt('r_female').checked ? 2 : 9;
    p.phone = elt('r_phone').value;
    if (elt('r_mnogoRu').value)
        p.mnogoRu = elt('r_mnogoRu').value;
    p.password = elt('r_password').value;
    p.captcha = elt('r_captcha').value;
    customerService (f, 'register', register_callback, p);
}

function getDetails_callback (res) {
    eval (res);
    customerId = objectId;
    partner_status = partnerStatus;
    if(birthday) {
        if(birthday.length > 10) {
            birthday = birthday.substring(0,10); //Уберем время если есть.
        }
        
        if(birthday.indexOf('-') != -1) {
            parts = birthday.split('-', 3);
            birthday = parts[2] + '/' + parts[1] + '/' + parts[0];
        }
    }

    write_inner ('p_name', lastName + ' ' + firstName + ' ' + middleName);
    write_inner ('p_email', email);
    write_inner ('p_birthday', birthday && birthday != '0000-00-00' ? birthday : 'не указан');
    write_inner ('p_phone', phone ? phone : 'не указан');
    write_inner ('p_sex', sex == 1 ? 'мужской' : sex == 2 ? 'женский' : 'не указан');
    write_inner ('p_subscribeNews', subscribeNews == 'true' ? 'да' : 'нет');
    account_balance = parseInt (ost, 10);
    account_balance -= parseInt (usedOst, 10);
    account_balance += parseInt (virtualOst, 10);
    account_balance -= parseInt (usedVirtual, 10);
    write_inner ('account_balance', account_balance);
    elt('account_balance_nonzero').style.display = account_balance ? 'inline' : 'none';
    elt('rc_email').value = email;
    elt('rc_lastName').value = lastName;
    elt('rc_firstName').value = firstName;
    elt('rc_middleName').value = middleName;
    elt('rc_birthday').value = birthday && birthday != '0000-00-00' ? birthday : '';
    elt('rc_phone').value =  phone ? phone : '';
    elt('rc_mnogoRu').value =  mnogoRu;
    elt('mnogoRu').value =  mnogoRu;
    radiobuttons.rc_sex = '';
    elt('rc_male').checked = false;
    elt('rc_male_img').className = 'radio false';
    elt('rc_female').checked = false;
    elt('rc_female_img').className = 'radio false';
    if (sex == 1)
        elt('rc_male').click();
    else if (sex == 2)
        elt('rc_female').click();
    ckboxes.subscribeNews2 = subscribeNews == 'true';
    change_subscribeNews2 ();
    if (ckboxes.subscribeNews2)
        hide_item ('subscribeNews_link');
    else
        show_inline_item ('subscribeNews_link')
    /*if (is_design_page)
        elt('measurementsName').disabled = false;
        */
    customerService (0, 'shirtProfileList', profileList_callback);
    try {
        eval (current_page + '_details()');
    } catch (e) {}
}

function getDetails () {
    customerService (0, 'getDetails', getDetails_callback);
}

function personal_page () {
    change_popup ('personal_page');
}

function changeDetails_page () {
    change_popup2 ('changeDetails_page');
}

function setDetails_callback (res) {
    myalert ('Готово');
    personal_page ();
    elt('email').value = elt('rc_email').value;
    switch2authorized (elt('rc_firstName').value + (elt('rc_middleName').value ? ' ' + elt('rc_middleName').value : ''));
}

function setDetails (f) {
    var t = {
        'rc_email' : REGEX_EMAIL,
        'rc_lastName' : /[А-Яа-яA-Za-z]{2}/,
        'rc_firstName' : /[А-Яа-яA-Za-z]{2}/,
        'rc_mnogoRu' : /(^$)|(^\d{8}$)/
    };
    check_inputs (t);
    var p = {};
    p.lastName = elt('rc_lastName').value;
    p.firstName = elt('rc_firstName').value;
    p.middleName = elt('rc_middleName').value;
    p.email = elt('rc_email').value;
    p.subscribeNews = ckboxes.subscribeNews2;
    if (elt('rc_birthday').value)
        p.birthday = elt('rc_birthday').value;
    p.sex = elt('rc_male').checked ? 1 : elt('rc_female').checked ? 2 : 9;
    p.phone = elt('rc_phone').value;
    if (elt('rc_mnogoRu').value)
        p.mnogoRu = elt('rc_mnogoRu').value;
    customerService (f, 'setDetails', setDetails_callback, p);
}

function countryList_callback (res) {
    eval (res);
    country_list = a;
    var s = '';
    for (var i in a) {
        var o = a[i];
        var c = o.alpha2 + ' ' + o.nameRU;
        s += '<span class="normal_link" onclick="select_country(\'' + o.iso + '\')">' + c + '</span><br />';
    }
    write_inner ('countryList', s);
    change_popup3 ('countryList_page');
}

function countryList (f) {
    customerService (f, 'countryList', countryList_callback);
}

function select_country (iso) {
    var c = country_list[iso];
    elt('cia_iso').value = iso;
    elt('cia_country').value = c.nameEN + ' / ' + c.nameRU;
    elt('cia_postIndex').value = '';
    elt('cia_region').value = '';
    elt('cia_city').value = '';
    elt('cia_streetAddress').value = '';
    elt('cia_recipientName').value = '';
    elt('cia_contactPhone').value = '';
    change_popup3 ('createIntlAddress_page');
    elt('cia_postIndex').focus();
}

function changePass_callback (res) {
    myalert ('Готово');
    change_popup2 ('');
}

function changePass (f) {
    if (!elt('cp_oldpassword').value) {
        myalert ('Не заполнено поле "Старый пароль"');
        elt('cp_oldpassword').focus();
        return;
    }
    if (!elt('cp_newpassword').value) {
        myalert ('Не заполнено поле "Новый пароль"');
        elt('cp_newpassword').focus();
        return;
    }
    if (elt('cp_newpassword').value != elt('cp_newpassword2').value) {
        myalert ('Введенные пароли не совпадают');
        elt('cp_newpassword').focus();
        return;
    }
    var p = {};
    p.oldpassword = elt('cp_oldpassword').value;
    p.newpassword = elt('cp_newpassword').value;
    customerService (f, 'changePass', changePass_callback, p);
}

function changePass_page () {
    elt('cp_oldpassword').value = '';
    elt('cp_newpassword').value = '';
    elt('cp_newpassword2').value = '';
    change_popup2 ('changePass_page');
}

function redeemGiftCert_page () {
    elt('rgc_giftCode1').value = '';
    elt('rgc_giftCode2').value = '';
    // elt('rgc_giftCode3').value = '';
    // elt('rgc_giftCode4').value = '';
    elt('rgc_captcha').value = '';
    get_captcha ('captcha2');
    change_popup2 ('redeemGiftCert_page');
}

function redeemGiftCert_callback (res) {
    myalert ('Готово');
    getDetails ();
    change_popup2 ('');
}

function redeemGiftCert (f) {
    var t = {
        'rgc_giftCode1' : /^[0-9a-f]{4}$/i,
        'rgc_giftCode2' : /^[0-9a-f]{4}$/i,
        // 'rgc_giftCode3' : /^[0-9a-f]{4}$/i,
        // 'rgc_giftCode4' : /^[0-9a-f]{4}$/i,
        'rgc_captcha' : /^\w+$/
    };
    check_inputs (t);
    var p = {};
    p.giftCode = elt('rgc_giftCode1').value + elt('rgc_giftCode2').value; // + elt('rgc_giftCode3').value + elt('rgc_giftCode4').value;
    p.captcha = elt('rgc_captcha').value;
    customerService (f, 'redeemGiftCert', redeemGiftCert_callback, p);
}

function createAddress_page () {
    elt('ca_postIndex').value = '';
    elt('ca_country').value = '';
    elt('ca_region').value = '';
    elt('ca_rn').value = '';
    elt('ca_city').value = '';
    elt('ca_np').value = '';
    elt('ca_streetAddress').value = '';
    elt('ca_recipientName').value = '';
    elt('ca_contactPhone').value = '';
    change_popup3 ('createAddress_page');
    elt('ca_postIndex').focus();
}

function getAddressByIndex_callback (res) {
    eval (res);
    elt('ca_country').value = country;
    elt('ca_region').value = region;
    elt('ca_rn').value = rn;
    elt('ca_city').value = city;
    elt('ca_np').value = np;
}

function getAddressByIndex (f) {
    elt('ca_country').value = '';
    elt('ca_region').value = '';
    elt('ca_rn').value = '';
    elt('ca_city').value = '';
    elt('ca_np').value = '';
    var p = {};
    p.postIndex = elt('ca_postIndex').value;
    if (!p.postIndex.match(/^\d{6}$/)) {
        myalert ('Почтовый индекс должен состоять из 6 цифр');
        elt('ca_postIndex').focus();
        return;
    }
    customerService (f, 'getAddressByIndex', getAddressByIndex_callback, p);
}

function createAddress_callback (res) {
    customerService (0, 'addressList', addressList_callback);
    change_popup3 ('');
}

function createAddress (f) {
    var p = {};
    p.country = elt('ca_country').value;
    p.postIndex = elt('ca_postIndex').value;
    p.region = elt('ca_region').value;
    p.rn = elt('ca_rn').value;
    p.city = elt('ca_city').value;
    p.np = elt('ca_np').value;
    p.streetAddress = elt('ca_streetAddress').value;
    p.recipientName = elt('ca_recipientName').value;
    p.contactPhone = elt('ca_contactPhone').value;
    if (!p.country) {
        myalert ('Ошибка в почтовом индексе');
        elt('ca_postIndex').focus();
        return;
    } else if (!p.streetAddress) {
        myalert ('Не заполнен адрес');
        elt('ca_streetAddress').focus();
        return;
    } else if (!p.recipientName) {
        myalert ('Не заполнено ФИО получателя');
        elt('ca_recipientName').focus();
        return;
    }
    customerService (f, 'createAddress', createAddress_callback, p);
}

function createIntlAddress_callback (res) {
    customerService (0, 'addressList', addressList_callback);
    change_popup3 ('');
}

function createIntlAddress (f) {
    var p = {};
    p.iso = elt('cia_iso').value;
    p.country = elt('cia_country').value;
    p.postIndex = elt('cia_postIndex').value;
    p.region = elt('cia_region').value;
    p.rn = '';
    p.city = elt('cia_city').value;
    p.np = '';
    p.streetAddress = elt('cia_streetAddress').value;
    p.recipientName = elt('cia_recipientName').value;
    p.contactPhone = elt('cia_contactPhone').value;
    if (!p.postIndex && !myconfirm ('Не заполнен почтовый индекс, Вы уверены, что хотите сохранить адрес без индекса?')) {
        elt('cia_postIndex').focus();
        return;
    }
    if (!p.streetAddress) {
        myalert ('Не заполнен адрес');
        elt('cia_streetAddress').focus();
        return;
    } else if (!p.recipientName) {
        myalert ('Не заполнено имя получателя');
        elt('cia_recipientName').focus();
        return;
    }
    customerService (f, 'createAddress', createAddress_callback, p);
}

function addressList_callback (res) {
    eval (res);
    addresses = a;
    write_inner ('checkout_address', '<span class="normal_link" onclick="createAddress_page()">(+) Добавить адрес доставки</span>');
    write_inner ('addressList', '');

    var empty = true;
    var oid;
    for (oid in a) {
        empty = false;
        break;
    }
    if (empty)
        return;

    var s = '';
    s += '<table summary="" cellspacing="0">';
    s += '<tr><th width="60%">Адрес</th><th>Действия</th></tr>';
    for (oid in a) {
        var obj = a[oid];
        s += obj.selected == 'true' ? '<tr class="selected">' : '<tr>';
        s += '<td>';
        s += obj.displayName;
        s += '</td>';
        s += '<td>';
        s += '<span class="normal_link" onclick="updateAddress_page(\'' + oid + '\')">';
        s += 'Изменить';
        s += '</span>';
        s += ' ';
        s += '<span class="normal_link" onclick="deleteAddress(this,\'' + oid + '\')">';
        s += 'Удалить';
        s += '</span>';
        if (obj.selected != 'true') {
            s += '<br />';
            s += '<span class="normal_link" onclick="setActiveAddress(this,\'' + oid + '\')">';
            s += 'Назначить текущим';
            s += '</span>';
        } else {
            selected_address = obj;
            var phone = selected_address.contactPhone;
            var displayPhone = phone ? ', тел.' + phone : '';
            write_inner ('checkout_address', obj.displayName + displayPhone
                + '<br /><span class="normal_link" onclick="addressList_page()">Изменить адрес</span>'
                + '<p><span class="normal_link" onclick="checkout2()">Продолжить</span></p>');
        }
        s += '</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('addressList', s);
}

function addressList_page () {
    customerService (0, 'addressList', addressList_callback);
    change_popup2 ('addressList_page');
}

function updateNatlAddress_page (oid) {
    elt('ua_objectId').value = oid;
    elt('ua_postIndex').value = addresses[oid].postIndex;
    elt('ua_country').value = addresses[oid].country;
    elt('ua_region').value = addresses[oid].region;
    elt('ua_rn').value = addresses[oid].rn;
    elt('ua_city').value = addresses[oid].city;
    elt('ua_np').value = addresses[oid].np;
    elt('ua_streetAddress').value = addresses[oid].streetAddress;
    elt('ua_contactPhone').value = addresses[oid].contactPhone;
    elt('ua_recipientName').value = addresses[oid].recipientName;
    change_popup3 ('updateAddress_page');
}

function updateIntlAddress_page (oid) {
    elt('uia_objectId').value = oid;
    elt('uia_iso').value = addresses[oid].iso;
    elt('uia_postIndex').value = addresses[oid].postIndex;
    elt('uia_country').value = addresses[oid].country;
    elt('uia_region').value = addresses[oid].region;
    elt('uia_city').value = addresses[oid].city;
    elt('uia_streetAddress').value = addresses[oid].streetAddress;
    elt('uia_contactPhone').value = addresses[oid].contactPhone;
    elt('uia_recipientName').value = addresses[oid].recipientName;
    change_popup3 ('updateIntlAddress_page');
}

function updateAddress_page (oid) {
    if (addresses[oid].iso)
        updateIntlAddress_page (oid);
    else
        updateNatlAddress_page (oid);
}

function updateAddress_callback (res) {
    addressList_page ();
}

function updateAddress (f) {
    var p = {};
    p.objectId = elt('ua_objectId').value;
    p.country = elt('ua_country').value;
    p.postIndex = elt('ua_postIndex').value;
    p.region = elt('ua_region').value;
    p.rn = elt('ua_rn').value;
    p.city = elt('ua_city').value;
    p.np = elt('ua_np').value;
    p.streetAddress = elt('ua_streetAddress').value;
    p.recipientName = elt('ua_recipientName').value;
    p.contactPhone = elt('ua_contactPhone').value;
    customerService (f, 'updateAddress', updateAddress_callback, p);
}

function updateIntlAddress (f) {
    var p = {};
    p.objectId = elt('uia_objectId').value;
    p.iso = elt('uia_iso').value;
    p.country = elt('uia_country').value;
    p.postIndex = elt('uia_postIndex').value;
    p.region = elt('uia_region').value;
    p.rn = '';
    p.city = elt('uia_city').value;
    p.np = '';
    p.streetAddress = elt('uia_streetAddress').value;
    p.recipientName = elt('uia_recipientName').value;
    p.contactPhone = elt('uia_contactPhone').value;
    customerService (f, 'updateAddress', updateAddress_callback, p);
}

function deleteAddress_callback (res) {
    addressList_page ();
}

function deleteAddress (f, oid) {
    var p = {};
    p.objectId = oid;
    customerService (f, 'deleteAddress', deleteAddress_callback, p);
}

function setActiveAddress_callback (res) {
    customerService (0, 'addressList', addressList_callback);
    change_popup2 ('');
}

function setActiveAddress (f, oid) {
    var p = {};
    p.objectId = oid;
    customerService (f, 'setActiveAddress', setActiveAddress_callback, p);
}

function cartView () {
    getCart (1);
}

function removeArticle (f, oid) {
    var p = {};
    p.objectId = oid;
    p.objectType = cart_contents[oid].objectType;
    p.getCartContents = 'true';
    customerService (f, 'removeArticle', getCart_callback, p);
}

function updateArticleAmount (f, oid) {
    var p = {};
    p.objectId = oid;
    p.objectType = cart_contents[oid].objectType;
    p.newCount = elt('article_count_' + oid).value;
    p.getCartContents = 'true';
    customerService (f, 'updateArticleAmount', getCart_callback, p);
}

function cart_shirt_attr_val (attr, val) {
    return ('<b>' + currentProductAttr[attr].attr.displayName + '</b>: ' + val + '<br />');
}

function cart_shirt_attr (attr) {
    return (cart_shirt_attr_val (attr, currentProductAttr[attr].values[cart_product[attr]].shortName));
}

function getShirt_callback (res) {
    eval (res);
    cart_shirt = a;
    var s = '';
    s += '<table summary="">';
    s += '<tr>';
    s += '<td width="50%">';
    //    s += '<span class="articleDescrHeader">Ткань:</span>';
    s += '<img alt="" src="' + design_base + a.fabric + '/fabric_icon.png" />';
    s += '<span class="articleDescrHeader">Описание:</span>';
    s += a.description;
    s += '</td>';
    //проверим хоть таким образом...
    /*
    if(typeof cart_shirt.tieEnding == 'undefined') {
        var last_measurements_step = a.model ? last_meas_ladies_step : last_meas_mens_step;
        var measurements = a.model ? meas_ladies : meas_mens;
        var attrs = a.model ? productAttr.ladies_shirt : productAttr.mens_shirt;

        s += '<td width="50%">';
        var i, j, n = 0;
        s += '<span class="articleDescrHeader">Размеры:</span>';
        for (i = 1; i < last_measurements_step; i++)
            try {
            for (j in measurements[i])
                if (a[j])
                    s += ++n + '. ' + attrs[j].attr.displayName + ': ' + a[j] + ' см<br />';
            } catch (Ex) {
                //alert(j +": " +measurements[i]);
            }
        if (a.stdSize && !a.model)
            s += ++n + '. ' + attrs.stdSize.attr.displayName + ': ' + a.stdSize + ' см<br />';
        s += '</td>';
    }
    */
    s += '</tr>';
    s += '</table>';
    write_inner ('shirtView', s);
    //if (design_sex == (a.model ? 'f' : 'm'))
        show_inline_item ('copy2design');
    //else
        //hide_item ('copy2design');
    if (current_popup == 'cartView_page')
        change_popup2 ('shirtView_page');
    else
        change_popup4 ('shirtView_page');
}


function articleView (f, oid) {
    var o = cart_contents[oid];
    eval (o.category + 'View (f, o)');
}

function orderArticleView (f, oid) {
    var o = order_contents[oid];
    eval (o.category + 'View (f, o)');
}

function checkout () {
    if (elt('cart_count').innerHTML == '0') {
        myalert ('Ваша корзина пуста');
        return;
    }
    customerService (0, 'addressList', addressList_callback);
    write_inner ('checkout_sum', elt('cart_sum').innerHTML);
    change_popup ('checkout_page');
}

function shippingList_callback (res) {
    eval (res);
    shipping_list = a;
    var s = '';
    s += '<table summary="">';
    s += '<tr><td>&nbsp;</td><td><span class="articleDescrHeader">Способы доставки:</span></td><td>&nbsp;</td></tr>';
    var sel = 'true';
    for (var i in a) {
        if (sel == 'true')
            radiobuttons.shippingMethod = i;
        var m = selected_address.contactPhone.match(/\d/g);
        var bad_phone = (m == null || m.length < 10);
        var disabled = bad_phone && jQuery.inArray(a[i].shippingMethod, ['cpcrShipping', 'maxiPostPickupShipping', 'dhlShipping'] ) > -1;
        var system_radio_class = disabled ? ' disabled="disabled"' : sel == 'true' ? ' checked' : '';
        var img_radio_class = disabled ? ' disabled' : sel;
        s += '<tr>';
        s += '<td>';
        s += '<input type="radio" name="shippingMethod" class="shippingMethod_radio" id="' + i + '" value="' + i + '"' + system_radio_class + ' onclick="change_radio(this)" />';
        s += '<img alt="" class="radio ' + img_radio_class + '" src="../../images/dummy.gif" id="' + i + '_img" onclick="elt(\'' + i + '\').click()" />';
        s += '</td>';
        s += '<td>';
        s += '<label for="' + i + '" onclick="elt(\'' + i + '\').click();return(false)">' + a[i].description + '</label>';
        s += disabled ? ' (<span class="normal_link" id="contactPhone_required_'+a[i].shippingMethod+'" onclick="addressList_page()">Требуется контактный телефон</span>)' : '';
        s += '</td>';
        s += '<td>';
        s += 'Стоимость<br />' + a[i].price + '&nbsp;руб.';
        s += '</td>';
        s += '</tr>';
        sel = 'false';
    }
    s += '</table>';
    write_inner ('checkout_shipping', s);
}

function shippingList () {
    var p = {};
    p.objectType = 'shipping';
    customerService (0, 'objectList', shippingList_callback, p);
}

function checkout2 () {
    write_inner ('checkout2_sum', elt('cart_sum').innerHTML);
    shippingList ();
    change_popup2 ('checkout2_page');
}

function change_use_balance () {
    enable_ckbox ('use_balance', use_balance);

    if (use_balance && account_balance >= order_total)
        hide_item ('checkout_payment');
    else
        show_item ('checkout_payment');
}

function select_ckbox_use_balance () {
    use_balance = !use_balance;
    change_use_balance ();
}

function checkout3_paymentList_callback (res) {
    eval (res);
    payment_list = a;
    var intl = false;
    for (var i in shipping_list) {
        intl = shipping_list[i].shippingMethod.match (/^intl/);
        break;
    }
    var s = '';
    s += '<table summary="">';
    for (i in a) {
        var pm = a[i].paymentMethod;
        var sel = pm == 'cardPayment';
        if (sel)
            radiobuttons.paymentMethod = pm;
        else if (intl)
            continue;
        s += '<tr>';
        s += '<td>';
        s += '<input type="radio" name="paymentMethod" class="paymentMethod_radio" id="' + pm + '" value="' + pm + '"' + (sel ? ' checked' : '') + ' onclick="change_radio(this)" />';
        s += '<img alt="" class="radio ' + sel + '" src="../../images/dummy.gif" id="' + pm + '_img" onclick="elt(\'' + pm + '\').click()" />';
        s += '</td>';
        s += '<td>';
        s += '<label for="' + pm + '" onclick="elt(\'' + pm + '\').click();return(false)">' + a[i].displayName + '</label>';
        s += '</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('checkout_payment', s);
    change_use_balance ();
    write_inner ('checkout_balance', account_balance);
    if (account_balance)
        show_item ('use_account_balance');
    else
        hide_item ('use_account_balance');
    change_popup ('checkout3_page');
}

function checkout3 (f) {
    var sum = parseInt (0 + elt('cart_sum').innerHTML, 10);
    var shipping_cost = parseInt (0 + shipping_list[radiobuttons.shippingMethod].price, 10);
    order_total = sum + shipping_cost;
    if (!order_total) {
        checkout4 ();
        return;
    }
    write_inner ('checkout3_sum', sum);
    write_inner ('checkout3_shipping', shipping_cost);
    write_inner ('checkout3_total', order_total);
    customerService (f, 'paymentList', checkout3_paymentList_callback);
}

function get_invoice_paymentList_callback (res) {
    eval (res);
    payment_list = a;
    var objectId = order.objectId;
    var total = parseInt (0 + order.sum, 10);
    var shipping_cost = parseInt (0 + order.shippingSum, 10);
    write_inner ('get_invoice_sum', total - shipping_cost);
    write_inner ('get_invoice_shipping', shipping_cost);
    write_inner ('get_invoice_total', total);
    var s = '';
    s += '<table summary="">';
    for (var i in a) {
        var pm = a[i].paymentMethod;
        if (pm == 'cardPayment')
            continue;
        var sel = pm == 'postalPayment';
        if (sel)
            radiobuttons.invoice_paymentMethod = pm;
        s += '<tr>';
        s += '<td>';
        s += '<input type="radio" name="invoice_paymentMethod" class="invoice_paymentMethod_radio" id="invoice_' + pm + '" value="' + pm + '"' + (sel ? ' checked' : '') + ' onclick="change_invoice_radio(this)" />';
        s += '<img alt="" class="radio ' + sel + '" src="../../images/dummy.gif" id="invoice_' + pm + '_img" onclick="elt(\'invoice_' + pm + '\').click()" />';
        s += '</td>';
        s += '<td>';
        s += '<label for="invoice_' + pm + '" onclick="elt(\'invoice_' + pm + '\').click();return(false)">' + a[i].displayName + '</label>';
        s += '</td>';
        s += '</tr>';
    }
    s += '</table>';
    s += '<p>';
    s += 'Получить бланк в формате <a id="invoice_doc" href="' + invoiceUrl + objectId + '&format=doc&payment=postalPayment" target="_blank">DOC</a> (MS Word)';
    s += ', <a id="invoice_pdf" href="' + invoiceUrl + objectId + '&format=pdf&payment=postalPayment" target="_blank">PDF</a> (Acrobat Reader), ';
    s += '<a id="invoice_jpg" href="' + invoiceUrl + objectId + '&format=jpg&payment=postalPayment" target="_blank">JPEG</a>';
    s += '</p>';
    write_inner ('get_invoice_payment', s);
    change_popup3 ('get_invoice_page');
}

function get_invoice (f) {
    customerService (f, 'paymentList', get_invoice_paymentList_callback);
}

function change_invoice_radio (f) {
    change_radio (f);
    var objectId = order.objectId;
    var pm = radiobuttons.invoice_paymentMethod;
    elt('invoice_doc').href = invoiceUrl + objectId + '&format=doc&payment=' + pm;
    elt('invoice_pdf').href = invoiceUrl + objectId + '&format=pdf&payment=' + pm;
    elt('invoice_jpg').href = invoiceUrl + objectId + '&format=jpg&payment=' + pm;
}

function createOrder_callback (res) {
    eval (res);

    //createAffilitate(objectId);

    write_inner ('checkout4_sum', sum - shippingSum);
    write_inner ('checkout4_shipping', shippingSum);
    write_inner ('checkout4_total', sum);
    var toPay = sum - usedOst - usedVirtual;
    var discount = sum - toPay;
    write_inner ('checkout4_usedBalance', discount);
    write_inner ('checkout4_toPay', toPay);
    if (discount) {
        elt('checkout4_usedBalance_row').className = '';
        elt('checkout4_toPay_row').className = '';
    } else {
        elt('checkout4_usedBalance_row').className = 'collapsed';
        elt('checkout4_toPay_row').className = 'collapsed';
    }
    var payment = radiobuttons.paymentMethod;
    var s = '';
    s += '<div id="checkout_invoice">';
    s += '<p>';
    switch (payment) {
        case 'cardPayment':
            s += 'Вы выбрали оплату пластиковой картой.<br/>';
            s += 'Оплата производится на сервере платежной системы "КиберПлат".<br/>';
            s += 'Сейчас будет произведен переход на сайт "КиберПлат".<br/>';
            s += 'По возвращении обратно на наш сайт Ваш заказ будет доступен в истории заказов в Вашем "Личном кабинете".';
            if (0 && !document.referrer) {
                s += '<br/><br/><b>Внимание!</b><br/>';
                s += 'Ваш браузер не предоставил адрес ссылающейся страницы (Referer).<br/>';
                s += 'Пожалуйста, проверьте настройки Вашего браузера или других систем, которые могут блокировать отправку Referer.<br/>';
                s += 'Сервер КиберПлат требует предоставления Referer и проверяет его соответствие регистрационным данным интернет-магазина.<br/>';
                s += 'В случае отсутствия или несоответствия возвращается отказ с сообщением "В переданных магазином данных заказа содержится ошибка. Свяжитесь с администратором магазина".';
            }
            break;
        case 'postalPayment':
            s += 'Вы выбрали почтовый перевод для оплаты заказа.<br />';
            s += 'Ниже представлен бланк для оплаты в любом почтовом отделении.';
            break;
        case 'sbrfPayment':
            s += 'Вы выбрали оплату через Сбербанк.<br />';
            s += 'Ниже представлен бланк для оплаты заказа в любом отделении Сбербанка России.';
            break;
        case 'bankPayment':
            s += 'Вы выбрали оплату банковским переводом.<br />';
            s += 'Ниже представлен счет для оплаты заказа.';
            break;
    }
    s += '</p>';
    if (payment != 'cardPayment') {
        s += '<p>';
        s += 'Получить бланк в формате <a href="' + invoiceUrl + objectId + '&payment=' + payment + '&format=doc" target="_blank">DOC</a> (MS Word)';
        s += ', <a href="' + invoiceUrl + objectId + '&payment=' + payment + '&format=pdf" target="_blank">PDF</a> (Acrobat Reader), ';
        s += '<a href="' + invoiceUrl + objectId + '&payment=' + payment + '&format=jpg" target="_blank">JPEG</a>';
        s += '</p>';
    }
    s += '</div>';
    if (payment != 'cardPayment' || !toPay)
        s += '<p><span class="normal_link" onclick="checkout_confirm(this,\'' + objectId + '\')">Подтвердить заказ</span></p>';
    else
        s += '<p><span class="normal_link" onclick="payOrder(this,\'' + objectId + '\')">Оплатить заказ</span></p>';
    write_inner ('checkout_payment_instr', s);
    getCart (0);
    if (!toPay)
        hide_item ('checkout_invoice');
    else
        show_item ('checkout_invoice');
    change_popup ('checkout4_page');
    if (use_balance) {
        select_ckbox_use_balance ()
        getDetails ();
    }
}

function checkout4 () {
    var sum = parseInt (0 + elt('cart_sum').innerHTML, 10);
    var shipping_cost = parseInt (0 + shipping_list[radiobuttons.shippingMethod].price, 10);
    var p = {};
    p.sum = sum + shipping_cost;
    p.shipping = shipping_list[radiobuttons.shippingMethod].shippingMethod;
    p.shippingSum = shipping_cost;
    p.useBalance = use_balance;
    var mnogoRu = elt('mnogoRu').value;
    if (mnogoRu) {
        var t = {
            'mnogoRu' : /^\d{8}$/
        };
        check_inputs (t);
        p.mnogoRu = elt('mnogoRu').value;
    }
    customerService (0, 'createOrder', createOrder_callback, p);
}

function confirmOrder_callback (res) {
    myalert ('Спасибо за Ваш заказ!');
    change_popup ('');
}

function checkout_confirm (f, oid) {
    var p = {};
    p.objectId = oid;
    customerService (f, 'confirmOrder', confirmOrder_callback, p);
}

function payOrder_callback (res) {
    eval (res);
    if (retval != '0') {
        myalert ('Ошибка подготовки данных для платежной системы');
        return;
    }
    elt('payOrder_version').value = version;
    elt('payOrder_message').value = decodeURIComponent (message);
    elt('payOrder_form').action = action;
    elt('payOrder_form').acceptCharset = charset;
    document.charset = charset;
    elt('payOrder_form').submit();
}

function payOrder (f, id) {
    var p = {};
    p.objectId = id;
    p.returnUrl = document.URL;
    customerService (f, 'payOrder', payOrder_callback, p);
}

function getReceipt (id) {
    elt('getReceipt_orderid').value = id;
    elt('getReceipt_form').action = getReceiptUrl + location;
    elt('getReceipt_form').submit();
}

function authorize () {
    elt('au_email').value = elt('email').value == 'e-mail' ? '' : elt('email').value;
    elt('au_password').value = '';
    change_popup ('authorization_page');
    elt('au_email').focus();
    elt('au_email').select();
}

function authorize_login (f) {
    var p = {};
    p.email = elt('au_email').value;
    p.password = elt('au_password').value;
    elt('email').value = elt('au_email').value;
    change_popup ('');
    elt('au_password').value = '';
    customerService (f, 'login', login_callback, p);
    return (false);
}

function lost_password () {
    change_popup ('lost_password_page');
}

function generatePassword_callback (res) {
    myalert ('Готово');
    change_popup ('');
}

function generatePassword (f) {
    var p = {};
    p.email = elt('lp_email').value;
    customerService (f, 'generatePassword', generatePassword_callback, p);
    return (false);
}

function change_radio (e) {
    if (e.disabled)
        return;
    var t = e.type;
    var n = e.name;
    var f = e.form;
    radiobuttons[n] = e.value;
    for (var i = 0; i < f.length; i++) {
        var x = f.elements[i];
        if (x.type == t && x.name == n && !x.disabled)
            elt(x.id+'_img').className = 'radio ' + x.checked;
    }
}

function profileList_callback (res) {
    eval (res);
    profiles = a;
    last_profile_number = 0;
    write_inner ('profileList', '');
    if (is_design_page) {
        write_inner ('select_profile', '(нет сохраненных размеров)');
        write_inner ('select_profile_cart', '&nbsp;');
    }

    var empty = true;
    var oid;
    for (oid in a) {
        empty = false;
        break;
    }
    if (empty)
        return;

    var s = '', sp = '';
    s += '<table summary="" cellspacing="0">';
    s += '<tr><th>Название</th><th>Пол</th><th>Дата изменения</th><th>Действия</th></tr>';
    for (oid in a) {
        var dn = a[oid].displayName;
        s += '<tr>';
        s += '<td>';
        s += dn;
        if (dn.toLowerCase().indexOf('профиль ') == 0) {
            var n = parseInt (0 + dn.slice(8), 10);
            if (n > last_profile_number)
                last_profile_number = n;
        }
        s += '</td>';
        s += '<td>';
        s += a[oid].sex == 'm' ? 'м' : 'ж';
        s += '</td>';
        s += '<td>';
        s += date_conv (a[oid].modifyDate);
        s += '</td>';
        s += '<td>';
        s += '<span class="normal_link" onclick="updateProfile_page(\'' + oid + '\')">';
        s += 'Изменить';
        s += '</span>';
        s += ' ';
        s += '<span class="normal_link" onclick="deleteProfile(this,\'' + oid + '\')">';
        s += 'Удалить';
        s += '</span>';
        s += '</td>';
        s += '</tr>';
        if (a[oid].sex == design_sex) {
            sp += '<option value="' + oid + '">';
            sp += dn;
            sp += '</option>';
        }
    }
    s += '</table>';
    write_inner ('profileList', s);
    if (is_design_page) {
        if (sp) {
            sp = '<select id="profile_select">' + sp;
            sp += '</select> <u onclick="updateProfile_page(elt(\'profile_select\').value)">Изменить профиль</u>';
            write_inner ('select_profile', sp);
            write_inner ('select_profile_cart', '<a class="addToCart" onclick="addShirt_with_profile(this,elt(\'profile_select\').value)">Добавить в корзину</a>');
        }
        elt('measurementsName').value = 'Профиль ' + (last_profile_number + 1);
    }
}

function profileList_page () {
    write_inner ('profileList', '');
    customerService (0, 'shirtProfileList', profileList_callback);
    change_popup2 ('profileList_page');
}

function deleteProfile_callback (res) {
    profileList_page ();
}

function deleteProfile (f, oid) {
    if (!myconfirm ('Удалить профиль, Вы уверены?')) return;
    var p = {};
    p.objectId = oid;
    customerService (f, 'deleteShirtProfile', deleteProfile_callback, p);
}

function readShirtProfile_callback (res) {
    eval (res);
    delete a.waistLengthFront;
    delete a.shoulderHeightFront;
    delete a.waistLengthBack;
    delete a.shoulderHeightBack;
    profile = a;
    var attrs = a.bustHeight ? productAttr.ladies_shirt : productAttr.mens_shirt;
    var s = '';
    s += '<table summary="">';
    for (var i in a)
        switch (i) {
            case 'objectId':
                elt('up_' + i).value = a[i];
                break;
            case 'customerId':
                break;
            case 'displayName':
                s += '<tr>';
                s += '<td class="left">';
                s += 'Имя профиля';
                s += '</td>';
                s += '<td>';
                s += '<input type="text" size="16" maxlength="32" id="up_' + i + '" value="' + a[i] + '" />';
                s += '</td>';
                s += '</tr>';
                break;
            default:
                if (attrs[i]) {
                    var size = attrs[i].attr.max > 99 ? 3 : 2;
                    s += '<tr>';
                    s += '<td class="left">';
                    s += attrs[i].attr.displayName;
                    s += '</td>';
                    s += '<td>';
                    s += '<input type="text" size="3" maxlength="' + size + '" id="up_' + i + '" value="' + a[i] + '" /> см.';
                    s += '</td>';
                    s += '</tr>';
                } else
                    delete profile[i];
        }
    s += '</table>';
    write_inner ('updateProfile', s);
}

function updateProfile_page (oid) {
    write_inner ('updateProfile', '');
    var p = {
        'objectId' : oid
    };
    customerService (0, 'readShirtProfile', readShirtProfile_callback, p);
    change_popup3 ('updateProfile_page');
}

function updateShirtProfile_callback (res) {
    profileList_page ();
}

function updateProfile (f) {
    var attrs = elt('up_bustHeight') ? productAttr.ladies_shirt : productAttr.mens_shirt;
    for (var i in profile) {
        var e = elt('up_'+i);
        var v;
        if (i != 'customerId')
            v = e.value;
        if (i == 'objectId' || i == 'customerId') {
        // nop
        } else if (i == 'displayName') {
            if (!v) {
                myalert ('Не заполнено имя профиля');
                e.focus();
                return;
            } else
                profile[i] = v;
        } else if (v || i != 'sleeveLength' && i != 'shortSleeveLength') {
            var a = attrs[i].attr;
            v = parseInt (0 + v, 10);
            var min = parseInt (0 + a.min, 10);
            var max = parseInt (0 + a.max, 10);
            if (v < min) {
                myalert ('Значение "' + a.displayName + '" не должно быть меньше ' + min + ' см.');
                e.focus();
                e.select();
                return;
            }
            if (v > max) {
                myalert ('Значение "' + a.displayName + '" не должно быть больше ' + max + ' см.');
                e.focus();
                e.select();
                return;
            }
            profile[i] = v;
        } else
            delete profile[i];
    }
    customerService (f, 'updateShirtProfile', updateShirtProfile_callback, profile);
}

function subscribeNews_page () {
    ckboxes.subscribeNews2 = true;
    change_subscribeNews2 ();
    changeDetails_page ();
}

function orderHistory_callback (res) {
    eval (res);
    orders = a;
    write_inner ('orderHistory', '');

    var trigger = show_all_orders ? 0 : 1;
    write_inner ('orderHistory_trigger', '<span class="normal_link" onclick="orderHistory_page(this,' + trigger + ')">Показать ' + (trigger ? 'все' : 'активные') + '</span>');
    var s = '';
    s += '<table summary="" cellspacing="0">';
    s += '<tr><th>Дата заказа</th><th>N заказа</th><th>Стоимость</th><th>Статус</th></tr>';
    for (var oid in a) {
        s += '<tr onclick="show_order(this,\'' + oid + '\')">';
        s += '<td>';
        s += date_conv (a[oid].orderDate);
        s += '</td>';
        s += '<td>';
        s += a[oid].orderNum;
        s += '</td>';
        s += '<td>';
        s += a[oid].sum;
        s += '</td>';
        s += '<td>';
        s += a[oid].displayOrderState;
        s += '</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('orderHistory', s);
    change_popup2 ('orderHistory_page');
}

function orderHistory_page (f, show_all) {
    var p = {};
    p.activeOnly = show_all ? false : true;
    p.compact = false;
    show_all_orders = show_all;
    customerService (f, 'orderList', orderHistory_callback, p);
}


function show_order (f, oid) {
    current_order = oid;
    var p = {};
    p.objectId = oid;
    p.objectType = 'zorder';
    customerService (f, 'objectRead', getOrder_callback, p);
}

function cancelOrder_callback (res) {
    myalert ('Готово');
    orderHistory_page (0, show_all_orders);
    if (order.usedOst != '0' || order.usedVirtual != '0' || order.paidByCard != '0')
        getDetails ();
}

function cancelOrder (f) {
    var p = {};
    p.objectId = current_order;
    if (myconfirm ('Отменить заказ, Вы уверены?'))
        customerService (f, 'cancelOrder', cancelOrder_callback, p);
}

function confirmDelivery_callback (res) {
    myalert ('Готово');
    orderHistory_page (0, show_all_orders);
}

function confirmDelivery (f) {
    var p = {};
    p.objectId = current_order;
    if (myconfirm ('Подтвердить получение заказа, Вы уверены?'))
        customerService (f, 'confirmDelivery', confirmDelivery_callback, p);
}

function copyOrder_callback (res) {
    myalert ('Готово');
    getCart (1);
}

function copyOrder (f) {
    var p = {};
    p.objectId = current_order;
    if (myconfirm ('Некоторые товары или материалы могут быть уже недоступны для заказа. Продолжить?'))
        customerService (f, 'copyOrder', copyOrder_callback, p);
}

function addProduct_callback (res) {
    myalert ('Готово');
    change_popup ('');
    getCart_callback (res);
}

function addProduct (f, oid) {
    if (!oid) {
        myalert ('Не выбран вариант товара');
        return;
    }
    var p = {};
    p.objectId = oid;
    if (oid == virtualGiftCert_oid) {
        var t = {
            'virtualGiftCert_value' : /^[1-9]\d{3,4}$/
        };
        check_inputs (t);
        p.giftCertValue = elt('virtualGiftCert_value').value;
    }
    customerService (f, 'addProduct', addProduct_callback, p);
}

function tiesView (f, product) {
    var s = '';
    s += '<h1>' + product.displayName + '</h1>';
    s += '<img alt="" class="product_photo" src="../' + product.category + '/' + product.product + '_photo.jpg" />';
    s += '<p>Цена: ' + product.price + ' руб.</p>';
    if (!current_popup)
        s += '<span class="inverse_link" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</span>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('tiesView', s);
    change_popup4 ('tiesView_page');
}

function customBookletView (f, product) {

}

function ties_callback (res) {
    eval (res);
    ties_list = a;
    var cols = 4;
    var s = '';
    var i = 0;
    var j;
    s += '<table class="product_table" cellpadding="5">';
    for (var oid in a) {
        var p = a[oid];
        s += i ? '' : '<tr>';
        s += '<td>';
        s += '<div class="product_icon" style="background-image:url(../ties/' + p.product + '_pict.jpg)" onclick="tiesView(this,ties_list[\'' + oid + '\'])">';
        //        s += '<div class="product_icon">';
        //        s += '<img src="../ties/' + p.product + '_pict.jpg" onclick="tiesView(this,ties_list[\'' + oid + '\'])" />';
        s += '<img src="../../images/add2cart.png" onclick="addProduct(this,\'' + oid + '\')" />';
        s += '</div>';
        s += '<div class="product_price">' + p.price + ' руб.</div>';
        s += '<div class="product_name">' + p.displayName + '</div>';
        s += '</td>';
        i++;
        if (i >= cols)
            i = 0;
        s += i ? '' : '</tr>';
    }
    if (i) {
        for (j = i; j < cols; j++)
            s += '<td>&nbsp;</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('ties', s);
}

function ties_page () {
    var p = {};
    p.category = 'ties';
    customerService (0, 'productList', ties_callback, p);
}

function cuffLinksView (f, product) {
    var s = '';
    s += '<h1>' + product.displayName + '</h1>';
    s += '<img alt="" class="product_photo" src="../' + product.category + '/' + product.product + '_photo.jpg" />';
    s += '<p>Цена: ' + product.price + ' руб.</p>';
    if (!current_popup)
        s += '<a class="inverse_link" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</a>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('cuffLinksView', s);
    change_popup4 ('cuffLinksView_page');
}

function cuffLinks_callback (res) {
    eval (res);
    cuffLinks_list = a;
    var cols = 4;
    var s = '';
    var i = 0;
    var j;
    s += '<table class="product_table" cellpadding="5">';
    for (var oid in a) {
        var p = a[oid];
        s += i ? '' : '<tr>';
        s += '<td>';
        s += '<div class="product_icon" style="background-image:url(../cuffLinks/' + p.product + '_pict.jpg)" onclick="cuffLinksView(this,cuffLinks_list[\'' + oid + '\'])">';
        //        s += '<div class="product_icon">';
        //        s += '<img src="../cuffLinks/' + p.product + '_pict.jpg" onclick="cuffLinksView(this,cuffLinks_list[\'' + oid + '\'])" />';
        s += '<img src="../../images/add2cart.png" onclick="addProduct(this,\'' + oid + '\')" />';
        s += '</div>';
        s += '<div class="product_price">' + p.price + ' руб.</div>';
        s += '<div class="product_name">' + p.displayName + '</div>';
        s += '</td>';
        i++;
        if (i >= cols)
            i = 0;
        s += i ? '' : '</tr>';
    }
    if (i) {
        for (j = i; j < cols; j++)
            s += '<td>&nbsp;</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('cuffLinks', s);
}

function cuffLinks_page () {
    var p = {};
    p.category = 'cuffLinks';
    customerService (0, 'productList', cuffLinks_callback, p);
}

function socksView (f, product) {
    var s = '';
    s += '<h1>' + product.displayName + '</h1>';
    s += '<img alt="" class="product_photo" src="../' + product.category + '/' + product.product + '_photo.jpg" />';
    s += '<p>Цена: ' + product.price + ' руб.<br/>(Цена женских носков указывается за одну пару, мужских &ndash; за комплект из трех пар)</p>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('socksView', s);
    change_popup4 ('socksView_page');
}

function socksGroupView (g) {
    var product = socks_list[g];
    var s = '';
    s += '<h1>' + product.displayName + '</h1>';
    s += '<form>';
    s += '<span class="product_descr_hdr">Выберите размер:</span><br/>';
    s += '<label for="23" onclick="elt(\'23\').click();return(false)">23</label> ';
    s += '<input type="radio" name="socksSize" class="socksSize_radio" id="23" value="" disabled="disabled" onclick="change_radio(this)" />';
    s += '<img alt="" class="radio disabled" src="../../images/dummy.gif" id="23_img" onclick="elt(\'23\').click()" />';
    s += '&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;';
    s += '<label for="25" onclick="elt(\'25\').click();return(false)">25</label> ';
    s += '<input type="radio" name="socksSize" class="socksSize_radio" id="25" value="" disabled="disabled" onclick="change_radio(this)" />';
    s += '<img alt="" class="radio disabled" src="../../images/dummy.gif" id="25_img" onclick="elt(\'25\').click()" />';
    s += '&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;';
    s += '<label for="27" onclick="elt(\'27\').click();return(false)">27</label> ';
    s += '<input type="radio" name="socksSize" class="socksSize_radio" id="27" value="" disabled="disabled" onclick="change_radio(this)" />';
    s += '<img alt="" class="radio disabled" src="../../images/dummy.gif" id="27_img" onclick="elt(\'27\').click()" />';
    s += '&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;';
    s += '<label for="29" onclick="elt(\'29\').click();return(false)">29</label> ';
    s += '<input type="radio" name="socksSize" class="socksSize_radio" id="29" value="" disabled="disabled" onclick="change_radio(this)" />';
    s += '<img alt="" class="radio disabled" src="../../images/dummy.gif" id="29_img" onclick="elt(\'29\').click()" />';
    s += '</form>';
    s += '<img alt="" class="product_photo" src="../' + product.category + '/' + product.product + '_photo.jpg" />';
    s += '<p>Цена: ' + product.price + ' руб.<br/>(Цена женских носков указывается за одну пару, мужских &ndash; за комплект из трех пар)</p>';
    s += '<span class="inverse_link" onclick="addProduct(this,radiobuttons.socksSize)">Добавить в корзину</span>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('socksView', s);
    radiobuttons.socksSize = '';
    for (var sz in full_socks_list[g]) {
        elt(sz).disabled = false;
        elt(sz).value = full_socks_list[g][sz].objectId;
        elt(sz + '_img').className = 'radio false';
    }
    change_popup4 ('socksView_page');
}

function socks_callback (res) {
    eval (res);
    socks_list = {};
    full_socks_list = {};
    for (var oid in a) {
        var o = a[oid];
        socks_list[o.product] = o;
        if (!full_socks_list[o.product])
            full_socks_list[o.product] = {};
        full_socks_list[o.product][o.variation] = o;
    }
    var cols = 4;
    var s = '';
    var i = 0;
    var j;
    s += '<table class="product_table" cellpadding="5">';
    for (var product in socks_list) {
        var p = socks_list[product];
        s += i ? '' : '<tr>';
        s += '<td>';
        // s += '<div class="product_icon">';
        // s += '<img src="../socks/' + product + '_pict.jpg" onclick="socksGroupView(\'' + product + '\')" />';
        s += '<div class="product_icon" style="background-image:url(../socks/' + product + '_pict.jpg)" onclick="socksGroupView(\'' + product + '\')">';
        // s += '<img src="../images/add2cart.png" onclick="addProduct(this,\'' + oid + '\')" />';
        s += '</div>';
        s += '<div class="product_price">' + p.price + ' руб.</div>';
        s += '<div class="product_name">' + p.displayName + '</div>';
        s += '</td>';
        i++;
        if (i >= cols)
            i = 0;
        s += i ? '' : '</tr>';
    }
    if (i) {
        for (j = i; j < cols; j++)
            s += '<td>&nbsp;</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('socks', s);
}

function socks_page () {
    var p = {};
    p.category = 'socks';
    customerService (0, 'productList', socks_callback, p);
}

function booksView (f, product) {
    var s = '';
    s += '<h1>' + product.displayName + '</h1>';
    s += '<img alt="" class="product_photo" src="../' + product.category + '/' + product.product + '_photo.jpg" />';
    s += '<p>Цена: ' + product.price + ' руб.</p>';
    if (!current_popup)
        s += '<span class="inverse_link" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</span>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('booksView', s);
    change_popup4 ('booksView_page');
}

function books_callback (res) {
    eval (res);
    books_list = a;
    var cols = 4;
    var s = '';
    var i = 0;
    var j;
    s += '<table class="product_table" cellpadding="5">';
    for (var oid in a) {
        var p = a[oid];
        s += i ? '' : '<tr>';
        s += '<td>';
        s += '<div class="product_icon" style="background-image:url(../books/' + p.product + '_pict.jpg)" onclick="booksView(this,books_list[\'' + oid + '\'])">';
        //        s += '<div class="product_icon">';
        //        s += '<img src="../books/' + p.product + '_pict.jpg" onclick="booksView(this,books_list[\'' + oid + '\'])" />';
        s += '<img src="../../images/add2cart.png" onclick="addProduct(this,\'' + oid + '\')" />';
        s += '</div>';
        s += '<div class="product_price">' + p.price + ' руб.</div>';
        s += '<div class="product_name">' + p.displayName + '</div>';
        s += '</td>';
        i++;
        if (i >= cols)
            i = 0;
        s += i ? '' : '</tr>';
    }
    if (i) {
        for (j = i; j < cols; j++)
            s += '<td>&nbsp;</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('books', s);
}

function books_page () {
    var p = {};
    p.category = 'books';
    customerService (0, 'productList', books_callback, p);
}

function samplesView (f, product) {
}

function orderSamples (f) {
    addProduct (f, samples_oid);
}

function samples_callback (res) {
    eval (res);
    for (var oid in a)
        samples_oid = oid;
}

function samples_page () {
    var p = {};
    p.category = 'samples';
    customerService (0, 'productList', samples_callback, p);
}

function giftCertsView (f, product) {
    var s = '';
    s += '<h1>' + product.displayName + '</h1>';
    s += '<img alt="" class="product_photo" src="../' + product.category + '/' + product.product + '_photo.jpg" />';
    s += '<p>Цена: ' + product.price + ' руб.</p>';
    if (!current_popup)
        s += '<span class="inverse_link" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</span>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('giftCertsView', s);
    change_popup4 ('giftCertsView_page');
}

function giftCerts_callback (res) {
    eval (res);
    giftCerts_list = a;
    var cols = 4;
    var s = '';
    var i = 0;
    var j;
    s += '<table class="product_table" cellpadding="5">';
    for (var oid in a) {
        var p = a[oid];
        if (p.product == 'virtual') {
            virtualGiftCert_oid = oid;
            continue;
        }
        s += i ? '' : '<tr>';
        s += '<td>';
        s += '<div class="product_icon" style="background-image:url(../giftCerts/' + p.product + '_pict.jpg);" onclick="giftCertsView(this,giftCerts_list[\'' + oid + '\'])">';
        //        s += '<div class="product_icon">';
        //        s += '<img src="../giftCerts/' + p.product + '_pict.jpg" onclick="giftCertsView(this,giftCerts_list[\'' + oid + '\'])" />';
        s += '<img src="../../images/add2cart.png" onclick="addProduct(this,\'' + oid + '\')" />';
        s += '</div>';
        s += '<div class="product_price">' + p.price + ' руб.</div>';
        s += '<div class="product_name">' + p.displayName + '</div>';
        s += '</td>';
        i++;
        if (i >= cols)
            i = 0;
        s += i ? '' : '</tr>';
    }
    if (i) {
        for (j = i; j < cols; j++)
            s += '<td>&nbsp;</td>';
        s += '</tr>';
    }
    s += '</table>';
    write_inner ('giftCerts', s);
}

function giftCerts_page () {
    var p = {};
    p.category = 'giftCerts';
    customerService (0, 'productList', giftCerts_callback, p);
}

function friends_page_details () {
    hide_item ('friends_unauthorized');
    show_item ('friends_authorized');
    var link = location.protocol + '//' + location.host + '/?' + customerId;
    elt('friends_link').value = link;
    elt('friends_link').select();
}

function friends_page_unauthorized () {
    hide_item ('friends_authorized');
    show_item ('friends_unauthorized');
}

function feedbacks_page_authorized () {
    hide_item ('feedbacks_unauthorized');
    show_item ('feedbacks_authorized');
}

function feedbacks_page_unauthorized () {
    hide_item ('feedbacks_authorized');
    show_item ('feedbacks_unauthorized');
}

function feedback_callback (res) {
    myalert ('Спасибо за Ваш отзыв! Ваш отзыв принят и будет опубликован после проверки модератором.');
    elt('feedback_public_name').value = '';
    elt('feedback_location').value = '';
    elt('feedback_text').value = '';
}

function feedback (f) {
    var p = {};
    p.displayName = elt('feedback_public_name').value;
    p.location = elt('feedback_location').value;
    p.content = elt('feedback_text').value;
    customerService (f, 'feedback', feedback_callback, p);
}

function news_left_callback (res) {
    eval (res);
    var n = 0, s = '';
    for (var i in a) {
        if (++n > 3) break;
        d = date_conv_yy (a[i].newsDate);
        c = a[i].shortContent;
        s += '<span class="news_left_date">' + d + '</span>&nbsp;';
        s += '<span class="news_left_text">' + c + '</span><br/>';
        // s += '<a class="normal_link" href="news.php">...</a>';
    }
    if (s)
        write_inner ('news_left', '<a class="normal_link" href="news.php">Новости</a><br/>' + s);
}

function news_left () {
    var p = {};
    p.offset = 0;
    customerService (0, 'newsList', news_left_callback, p);
}

function change_section (s) {
    if (!s)
        return;
    var e = elt (s + '_section_link');
    if(e) {
        e.className = 'selected';
    }
    //e.innerHTML += '&rarr;';
    //e = elt (s + '_section_link_line');
    //e.src = '../../images/lines_row_active.gif';
    current_page = s + '_page';
    eval (current_page + '()');
    show_item (current_page);
}

function getCookie (name) {
    var prefix = name + '=';
    var cookieStartIndex = document.cookie.indexOf(prefix);
    if (cookieStartIndex == -1)
        return null;
    var cookieEndIndex = document.cookie.indexOf(';', cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1)
        cookieEndIndex = document.cookie.length;
    return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function cancelAccess_callback (res) {
}

function access_callback (res) {
    eval (res);
    if (email)
        elt('email').value = email;
    if (logged == 'true')
        switch2authorized (customerName);
    else
        switch2unauthorized (1);
    cookieId = getCookie ('ID');
    if (cookieId) {
        var d = new Date();
        sessId = d.getTime();
        loadURL ('../../images/session_dummy.gif?session_start=' + sessId + '&ID=' + cookieId + '&xres=' + screen.width + '&yres=' + screen.height
            + '&ref=' + encodeURIComponent (document.referrer));
        getCart (0);
    } else {
        var p = {};
        p.sessionId = sessionId;
        customerService (0, 'cancelAccess', cancelAccess_callback, p);
        myalert ('Для корректной работы требуется поддержка cookies');
    }
}

function load_popups_callback (res) {
    write_inner ('popups', res);
    customerService (0, 'access', access_callback);
    //Typecast.Init(); //Инициализация typecast в этом месте, т.к. только тут появляются нужные инпуты в профиле
}

function li_counter2_load () {
    li_counter2.src = 'http://counter.yadro.ru/logo?44.12';
}

function init () {
    genderset();
    langset();

    popups_url = '/' + contentGender + '/' + contentLang + '/popups2';
    design_base = '/' + contentGender + '/shirt/';
    li_counter1.src = "http://counter.yadro.ru/hit?r"+
        escape(document.referrer)+((typeof(screen)=="undefined")?"":
        ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
        screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
        ";h"+escape(document.title.substring(0,80))+";"+Math.random();
    li_counter1.onload = li_counter2_load;
    loadURL (popups_url, load_popups_callback)
    // news_left ();
}

function init_section (section) {
    init ();
    change_section (section);
}

function contacts_page_init () {
    var s = cont1.concat('@', domain, '.ru');
    elt('contact1').href = 'mailto:'.concat(s);
    write_inner ('contact1', s);
    s = cont2.concat('@', domain, '.ru');
    elt('contact2').href = 'mailto:'.concat(s);
    write_inner ('contact2', s);
}

function init_page (page) {
    init ();
    change_page (page);
}

function goodbye () {
    if (cookieId)
        loadURL ('../../images/session_dummy.gif?session_end=' + sessId + '&ID=' + cookieId + '&c=' + click_count);
}

function createAffilitate(ObjectId) {
    document.write('<img src="http://mixmarket.biz/uni/tev.php?id=1294933142&r='+escape(document.referrer)+'&t='+(new Date()).getTime()+'&a1='+ObjectId+'" width="1" height="1"/>');
}

