document.write ('<script type="text/javascript" src="../../js/main_shared.js"></script>');

var mix_market_code = '9bd8663a8f903d54ada45ceac81d5def2e73e1f9';
var mix_market_products_code = '491cf932967104f3e8685f8f2b5dc053bb67f393';
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 design_base = '../shirt/';
var tie_design_base = '../customTie/';
var popups_url = 'popups2.html';
var cont1 = 'info';
var cont2 = 'support';
// не ставить запятую после последнего свойства объекта, ибо ie6 это не любит
var partnersEmails = {
    'partner1': 'capytalist@gmail.com',
    'partner2': 'andrey.pisarets@yandex.ru',
    'partner3': 'd.bekmansurov@mtsdistrib.ru',
    'partner4': 'deemonxxx@yandex.ru',
    'partner5': 'natali_s.83@mail.ru',
    'partner6': 'ke@conanima.ru'


};
var REGEX_EMAIL = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
var customerId = '';
var customerInfo = {};
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 leaflet_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 init_count = null;
var lastStackTrace = null;

var i;

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


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

productAttr.mens_shirt = productAttr.shirt;

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

var measurements = meas_mens;
var last_measurements_step = last_meas_mens_step;

var last_meas_ladies_step = 16;
var meas_ladies = {
    1 : {
        'neckAround' : ''
    },
    2 : {
        'chestAround' : ''
    },
    3 : {
        'waistAround' : ''
    },
    4 : {
        'seatAround' : ''
    },
    /*
    5 : {
        'lowerEdgeAround' : ''
    },
    */
    5 : {
        'bicepsAround' : ''
    },
    6 : {
        'threeQuatersAround': ''
    },
    7 : {
        'wristAround' : ''
    },
    8 : {
        'lengthToShoulder' : ''
    },
    9 : {
        'sleeveLength' : '',
        'shortSleeveLength' : ''
    },
    10 : {
        'bustHeight' : ''
    },
    11 : {
        'bustCenter' : ''
    },
    12 : {
        'chestWidth' : ''
    },
    13 : {
        'backWidth' : ''
    },
    14 : {
        'waistLengthBack': ''
    },
    15 : {
        '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) {
    if(result = document.getElementById(id)) {
        return result;
    } else {
        // console.log('cant find id: ', id);
        //if(window.printStackTrace)lastStackTrace = printStackTrace();
    }
    return null;
}

function write_inner (id, contents) {
    elt(id).innerHTML = contents;
}

function show_inline_item (item) {
    try {
        item.style.display = 'inline';
        item.style.visibility = 'visible';
    } catch (e) {
        el = elt(item);
        el.style.display = 'inline';
        el.style.visibility = 'visible';
    }
}

function show_item (item) {
    try {
        item.style.display = 'block';
        item.style.style.visibility = 'visible';
    } catch (e) {
        el = elt(item);
        el.style.display = 'block';
        el.style.visibility = 'visible';
    }
}

function hide_item (item) {
    try {
        item.style.display = 'none';
        item.style.visibility = 'hidden';
    } catch (e) {
        el = elt(item);
        el.style.display = 'none';
        el.style.visibility = 'hidden';
    }
}

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 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 = lastStackTrace ? msg + '\n\n' + lastStackTrace.join('->') : msg;
    p.url = url;
    p.line = line;
    p.ua = navigator.userAgent;
    customerService (0, 'error', error_callback, p);
    lastStackTrace = null;
    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);

    if (init_count != null && count > init_count) {
        var mixMarketProductsCardImg = new Image(1,1);
        mixMarketProductsCardImg.src = 'http://mixmarket.biz/tr.plx?e=3779415&r='+escape(document.referrer)+'&t='+(new Date()).getTime();
    }
    init_count = count;
}

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);
    //init_sum = sum;
    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 == 'customshirt' ? '../shirt/' + o.product + '/fabric_icon.png' : '../' + o.category + '/' + o.product + '_pict.jpg';
        var src = '';
        if (o.category.match(/^custom/)) { 
            if (o.variation && o.category == 'customshirt') {
                src = '../shirtPresets/'+ o.variation + '/pict.jpg';
            } else {
                src = '../' + o.category + '/'+ o.product + '/fabric_icon.png';
            }
            
        } else { 
            if (o.category == 'presets') {
                switch (o.variation) {
                    case 'ladiesSkirt':
                        src = '../skirtPresets/' + o.article + '/pict.jpg';
                        break;
                }
            } else {
                src = '../' + 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;
    var dateCheck = checkBirthdayFormat('r');
    if (dateCheck === false) {
        return;
    } else if (dateCheck === true) {
        p.birthday = elt('r_year').value + '-' + elt('r_month').value + '-' + elt('r_day').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 checkBirthdayFormat (prefix) {
    var regexp = /^\d{2}$/;
    var yearRegexp = /^\d{4}$/gi;
    var year = elt(prefix + '_year');
    var month = elt(prefix + '_month');
    var day = elt(prefix + '_day');
    if (year && month && day && year.value && month.value && day.value) {
        if (year.value != 'ГГГГ' && month.value != 'ММ' && day.value != 'ДД') {
            if (!year.value.match(yearRegexp) || parseInt(year.value,10) < 1) {
                myalert('Год указан неверно');
                return false;
            }
            if (!month.value.match(regexp) || parseInt(month.value,10) > 12 || parseInt(month.value,10) < 1) {
                myalert('Месяц указан неверно');
                return false;
            }
            if (!day.value.match(regexp) || parseInt(day.value,10) > 31 || parseInt(day.value,10) < 1) {
                myalert('День указан неверно');
                return false;
            }
            
            if (!IsValidDate(day.value, month.value, year.value)) {
                myalert('Неверная дата');
                return false;
            }
            
        }
        
        var numFilled = 0;
        if (year.value != 'ГГГГ') numFilled++;
        if (month.value != 'ММ') numFilled++;
        if (day.value != 'ДД') numFilled++;
        
        if (numFilled == 0) {
            return "default";
        }
        
        if (numFilled > 0 && numFilled != 3) {
            myalert('Дата указана не полностью');
            return false;
        }
        
        return true;
    }
    return "none";
}

 function IsValidDate(Day,Mn,Yr){
    var dateMonth = Mn - 1;
    //Mn-1 потому как у него месяцы с 0 начинаются видимо
    var dt = new Date(Yr, dateMonth, Day);
    
    if (dt.getDate() != Day) {
        return false;
    } else if (dt.getMonth() != dateMonth) {
        return false;
    } else if (dt.getFullYear() != Yr) {
        return false;
    }
        
    return true;
 }


function getDetails_callback (res) {
    eval (res);
    customerId = objectId;
    customerInfo = {
        'name' : firstName + ' ' + lastName,
        'firstName' : firstName,
        'lastName' : lastName,
        'email' : email,
        'phone' : phone
    };
    partner_status = partnerStatus;
    write_inner ('p_name', lastName + ' ' + firstName + ' ' + middleName);
    write_inner ('p_email', email);
    if (raiffeisenCode) {
        write_inner ('p_raiffeisen', raiffeisenCode);
        elt ('rc_raiffeisen').value = raiffeisenCode;
        elt ('raiffeisenCodeCheckout').value = raiffeisenCode;
    }
    //write_inner ('p_birthday', birthday && birthday != '0000-00-00' ? birthday : 'не указан');
    if (birthday && birthday != '0000-00-00') {
        var parts = birthday.split('-');
        if (parts.length && parts.length == 3) {
            write_inner ('p_birthday', parts[2] + '-' + parts[1] + '-' + parts[0]);
        }
    }
    
    write_inner ('p_phone', phone ? phone : 'не указан');
    write_inner ('p_sex', sex == 1 ? 'мужской' : sex == 2 ? 'женский' : 'не указан');
    write_inner ('p_subscribeNews', subscribeNews == 'true' ? 'да' : 'нет');
    write_inner ('p_personalCode', customerId.substr (0, 4) + '-' + customerId.substr (4, 4));
    if (mnogoRu) {
        write_inner ('p_mnogoRu', mnogoRu);
        elt('p_mnogoRu_row').className = '';
    } else {
        elt('p_mnogoRu_row').className = 'collapsed';
    }
    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;
    if (birthday && birthday != '0000-00-00') {
        var parts = birthday.split('-');
        if (parts.length && parts.length == 3) {
            elt('rc_year').value = parts[0];
            elt('rc_month').value = parts[1];
            elt('rc_day').value = parts[2];
        }
    }
    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}$)/,
        'rc_raiffeisen' : /(^$)|(^\d{9}$)/
    };
    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;
    var dateCheck = checkBirthdayFormat('rc');
    if (dateCheck === false) {
        return;
    } else if (dateCheck == true) {
        p.birthday = elt('rc_year').value + '-' + elt('rc_month').value + '-' + elt('rc_day').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;
    if (elt('rc_raiffeisen').value)
        p.raiffeisenCode = elt('rc_raiffeisen').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 photoGallery_page_init()
{
    var email = 'info@rubashka-na-zakaz.ru';
    var link  = document.getElementById('infoEmailLink');
    link.href = 'mailto:' + email;
    link.appendChild(document.createTextNode(email));
}


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>' + productAttr.shirt[attr].attr.displayName + '</b>: ' + val + '<br />');
}

function cart_shirt_attr (attr) {
    return (cart_shirt_attr_val (attr, productAttr.shirt[attr].values[cart_shirt[attr]].shortName));
}

function getShirt_callback (res) {
    eval (res);
    cart_shirt = a;
    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;
    var s = '';
    s += '<table summary="">';
    s += '<tr>';
    s += '<td width="50%">';
    //    s += '<span class="articleDescrHeader">Ткань:</span>';
    if (a.article) {
        s += '<img alt="" src="' + design_base + '../shirtPresets/' + a.article + '/pict.jpg" />';
    } else {
        s += '<img alt="" src="' + design_base + a.fabric + '/fabric_icon.png" />';
    }
    s += '<span class="articleDescrHeader">Описание:</span>';
    s += a.description;
    s += '</td>';
    s += '<td width="50%">';
    var i, j, n = 0;
    s += '<span class="articleDescrHeader">Размеры:</span>';
    for (i = 1; i < last_measurements_step; i++)
        for (j in measurements[i])
            if (a[j]) {
                if (attrs[j].attr.attrType == 'measure') {
                    s += ++n + '. ' + attrs[j].attr.displayName + ': ' + a[j] + ' см<br />';
                } else {
                    s += ++n + '. ' + attrs[j].attr.displayName + ': ' + attrs[j].values[a[j]].displayName + '<br />';
                }
            }
    if (a.stdSize && !a.model)
        s += ++n + '. ' + attrs.stdSize.attr.displayName + ': ' + a.stdSize + ' см<br />';
    if (a.article) {
        s += ++n + '. ' + attrs.volume.attr.displayName +': ' + attrs.volume.values[a.volume].shortName + '<br/>';
        /*switch(a.volume) {
            case 'volumeSlim':
                s += ++n + '. ' + attrs.sleeve.attr.displayName + ': ' + attrs.sleeve.values['sleeveLongNarrow'].shortName + '<br/>';
                break;
            default:
                s += ++n + '. ' + attrs.sleeve.attr.displayName + ': ' + attrs.sleeve.values['sleeveLong'].shortName + '<br/>';
                break;
        }*/
    }
    s += '</td>';
    s += '</tr>';
    s += '</table>';
    write_inner ('shirtView', s);
    if (design_sex == (a.model ? 'f' : 'm') && !a.article)
        show_inline_item ('copy2design');
    else
        hide_item ('copy2design');
    if (current_popup == 'cartView_page')
        change_popup2 ('shirtView_page');
    else
        change_popup4 ('shirtView_page');
}

function close_shirtView () {
    if (current_popup2 == 'shirtView_page')
        change_popup2 ('');
    else
        change_popup4 ('');
}

function close_skirtView () {
    if (current_popup2 == 'skirtView_page')
        change_popup2 ('');
    else
        change_popup4 ('');
}

function customshirtView (f, o) {
    var p = {};
    p.objectId = o.objectId;
    p.objectType = o.objectType;
    customerService (f, 'objectRead', getShirt_callback, p);
}

function presetsView (f, o) {
    if (o) {
        var html = '';
        var src = '../../images/dummy.gif';
        switch (o.variation) {
            case 'ladiesSkirt':
                src = '../skirtPresets/' + o.article + '/pict.jpg';
        }
        
        html += '<table summary="">';
        html += '<tr>';
        html += '<td width="50%">';
        html += '<img alt="" src="' + src + '"/>';
        
        /*
        if (a.article) {
            s += '<img alt="" src="' + design_base + '../shirtPresets/' + a.article + '/pict.jpg" />';
        } else {
            s += '<img alt="" src="' + design_base + a.fabric + '/fabric_icon.png" />';
        }
        */
        html += '<span class="articleDescrHeader">Описание:</span>';
        html += o.description;
        html += '</td>';
        html += '<td width="50%">&nbsp;</td>';
        html += '</tr>';
        html += '</table>';
        
        write_inner ('skirtView', html);
        
        if (current_popup == 'cartView_page')
            change_popup2 ('skirtView_page');
        else
            change_popup4 ('skirtView_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 disabled = a[i].shippingMethod == 'cpcrShipping' && (m == null || m.length < 10);
        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" 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) {
        //Фикс глюка в ie, когда пользовательская функция indexOf оказывается в списке его значений
        if (typeof a[i] != 'object') continue;
        
        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);
    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>';
    if (toPay) {
        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 'emoneyPayment':
                s += 'Вы выбрали оплату электронными деньгами.<br/>';
                s += 'Оплата производится на сервере платежной системы "Assist".<br/>';
                s += 'Сейчас будет произведен переход на сайт "Assist".<br/>';
                break;
            case 'postalPayment':
                s += 'Вы выбрали почтовый перевод для оплаты заказа.<br />';
                s += 'Ниже представлен бланк для оплаты в любом почтовом отделении.';
                break;
            case 'sbrfPayment':
                s += 'Вы выбрали оплату через Сбербанк.<br />';
                s += 'Ниже представлен бланк для оплаты заказа в любом отделении Сбербанка России.';
                break;
            case 'bankPayment':
                s += 'Вы выбрали оплату банковским переводом.<br />';
                s += 'Ниже представлен счет для оплаты заказа.';
                break;
        }
        s += '</p>';
        if (payment != 'cardPayment' && payment != 'emoneyPayment') {
            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>';
        
        switch (payment) {
            case 'cardPayment':
                s += '<p><span class="normal_link" onclick="payOrder(this,\'' + objectId + '\')">Оплатить заказ</span></p>';
                break;
            case 'emoneyPayment':
                s += '<p><span class="normal_link" onclick="payOrderAssist(this,\'' + objectId + '\')">Оплатить заказ</span></p>';
                break;
            default:
                s += '<p><span class="normal_link" onclick="checkout_confirm(this,\'' + objectId + '\')">Подтвердить заказ</span></p>';
                break;
        }
    } else {
        s += '&nbsp;</p></p></div>';
        s += '<p><span class="normal_link" onclick="checkout_confirm(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 ();
    }

    // if customer's referal is mixmarket then let's public tracking code
    if (feeId == mix_market_code) {
        var univar1= objectId;
        var mixMarketImg = new Image(1,1);
        mixMarketImg.src = 'http://mixmarket.biz/uni/tev.php?id=1294933142&r='+escape(document.referrer)+'&t='+(new Date()).getTime()+'&a1='+univar1;
    } else if (feeId == mix_market_products_code) {
        var mixMarketProductsCardImg = new Image(1,1);
        mixMarketProductsCardImg.src = 'http://mixmarket.biz/tr.plx?e=3779408&r='+escape(document.referrer)+'&t='+(new Date()).getTime();
    }
}

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;
    var raiffeisen = elt('raiffeisenCodeCheckout').value;
    if (mnogoRu) {
        var t = {
            'mnogoRu' : /^\d{8}$/
        };
        check_inputs (t);
        p.mnogoRu = mnogoRu;
    }
    
    if (raiffeisen) {
        var t = {
            'raiffeisenCodeCheckout' : /^\d{9}$/
        };
        check_inputs (t);
        p.raiffeisenCode = raiffeisen;
    }
    
    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 payOrderAssist (f, id) {
    //selected_address = {}; customerInfo =
    //console.log(selected_address);
    //console.log(customerInfo);
    elt('emoneyPayment_firstName').value = customerInfo.firstName;
    elt('emoneyPayment_lastName').value = customerInfo.lastName;
    elt('emoneyPayment_email').value = customerInfo.email;
    elt('emoneyPayment_phone').value = customerInfo.phone;
    
    elt('emoneyPayment_city').value = selected_address.city;
    elt('emoneyPayment_zip').value = selected_address.postIndex;
    elt('emoneyPayment_address').value = selected_address.streetAddress;
    
    elt('emoneyPayment_return').value = window.location;
    elt('emoneyPayment_order').value = id;
    ;
    
    var p = {};
    p.objectId = id;
    p.objectType = 'zorder';
    customerService (null, 'objectRead', function (res) {
        eval(res);
        elt('emoneyPayment_comment').value = 'Оплата заказа ' + zorder.orderNum;
        elt('emoneyPayment_subtotal').value = parseInt(0 + order_total, 10) - parseInt(0 + zorder.usedOst, 10) - parseInt(0 + zorder.usedVirtual);
        var form = elt('emoneyPayment_form');
        form.action = 'https://secure.assist.ru/shops/cardpayment.cfm';
        form.acceptCharset = 'windows-1251';
        document.charset = 'windows-1251';
        form.submit();
    }, 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 getFormRadioValue(form) {
    f = document.forms[form];
    if(!f){
        f = document.forms[form + 'Form'];
    }
    result = null;
    if(f) {
        for (i=0;i<f.elements.length;i++) {
            if (f.elements[i].checked) {
                result = f.elements[i].value;
                break;
            }
        }
    }
    return result;
}

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.shoulderHeightBack;
    profile = a;
    var attrs = productAttr.ladies_shirt;
    if (!a.bustHeight) {
        attrs = productAttr.mens_shirt;
        delete a.waistLengthBack;
    }
    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 input;
                    if(attrs[i].attr.attrType == 'measure') {
                        var size = attrs[i].attr.max > 99 ? 3 : 2;
                        input = '<input type="text" size="3" maxlength="' + size + '" id="up_' + i + '" value="' + a[i] + '" /> см.';
                    } else {
                        input  = '<select name="up_' + i + '" id="up_' + i + '">';
                        for (j in attrs[i].values) {
                            val = attrs[i].values[j].attrValue;
                            input += '<option value="' + val + (val == (a[i] ? a[i] : attrs[i].attr.defaultValue) ? '" selected="selected">' : '">') + attrs[i].values[j].displayName + '</option>';
                        }
                        input += '</select>'
                    }
                    s += '<tr>';
                    s += '<td class="left">';
                    s += attrs[i].attr.displayName;
                    s += '</td>';
                    s += '<td>';
                    s += input;
                    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' ) && attrs[i].attr.attrType == 'measure') {
            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 if(attrs[i].attr.attrType == 'enum') {
            profile[i] = e.options[e.selectedIndex].value;
        } else
            delete profile[i];
    }

    if (elt('up_bustHeight') || check_shirt(profile)) {
        customerService (f, 'updateShirtProfile', updateShirtProfile_callback, profile);
    } else {
        var e = elt('up_' + warn_attr);
        e.focus();
        e.select();
    }
}

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 += '<a class="addToCart" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</a>';
    s += '<p><span class="product_descr_hdr">Описание:</span><br />' + product.description + '</p>';
    write_inner ('tiesView', s);
    change_popup4 ('tiesView_page');
}

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="addToCart" 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 += '<a class="addToCart" onclick="addProduct(this,radiobuttons.socksSize)">Добавить в корзину</a>';
    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 += '<a class="addToCart" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</a>';
    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);
    get_ozon_books();
}

function samplesView (f, product) {
}

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

function orderLeaflet (f) {
    addProduct(f, leaflet_oid);
}

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

function samples_page () {
    var p = {};
    p.category = 'samples';
    p.article = 'booklet';
    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 += '<a class="addToCart" onclick="addProduct(this,\'' + product.objectId + '\')">Добавить в корзину</a>';
    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 shirtPreset_page () {
    var p = {
        category : 'presets'
    };
    customerService (0, 'productList', function (data) {
        eval (data);
        
        var ladiesPreset = [];
        var mensPreset = [];
        var ladiesSkirts = [];
        for(record in a) {
            var current = a[record];
            switch (current.variation) {
                case 'mensShirt':
                    mensPreset.push(current);
                    break;
                case 'ladiesShirt':
                    ladiesPreset.push(current);
                    break;
                case 'ladiesSkirt':
                    ladiesSkirts.push(current);
                    break;
            }
            /*
            if (current.variation == 'mensShirt') {
                mensPreset.push(current);
            } else if (current.variation == 'ladiesShirt') {
                ladiesPreset.push(current)
            } else if (current.variation)
            */
            //Мб другие будут пресеты
        }
        
        var counter = 0;
        if (ladiesPreset.length) {
            var table = elt('presetFemaleTable');
            if (table) {
                var html = generatePresetContents(ladiesPreset, 5);
                write_inner ('presetFemaleTable', html);
                addPresetClickHandlers(ladiesPreset, shirtPresetDetails, presetAddToCart);
            }
            
        }
        
        if (mensPreset.length) {
            var table = elt('presetMaleTable');
            if (table) {
                var html = generatePresetContents(mensPreset, 5);
                write_inner ('presetMaleTable', html);
                addPresetClickHandlers(mensPreset, shirtPresetDetails, presetAddToCart);
            }
        }
        
        if (ladiesSkirts.length) {
            var table = elt('presetSkirtsTable');
            if (table) {
                var html = generatePresetContents(ladiesSkirts, 5);
                write_inner ('presetSkirtsTable', html);
                addPresetClickHandlers(ladiesSkirts, skirtPresetDetails, presetAddToCart);
            }
        }
        
    }, p);
}

function skirtPreset_page () {
    shirtPreset_page ();
}

function generatePresetContents (container, perRow) {
    var html = '<table>';
    var cnt = 0;
    
    for (var i=0; i<container.length; i++) {
        if (cnt == 0) {
            html += '<tr>';
        }
        
        var current = container[i];
        var shirt = (current.variation == 'ladiesShirt' ? productAttr.ladies_shirt : productAttr.shirt);
        var testShirt = (current.variation == 'ladiesShirt' ? productAttr.ladies_testShirt : productAttr.testShirt);
        
        var path = '';
        switch (current.variation) {
            case 'ladiesSkirt':
                path = '../skirtPresets/';
                break;
            case 'mensShirt':
            case 'ladiesShirt':
                path = '../shirtPresets/';
                break;
        }
        
        //Рубашки
        if (((shirt.fabric.values[current.auxData1] || testShirt.fabric.values[current.auxData1]) && shirt.buttons.values[current.auxData2]) || (current.variation != 'mensShirt' && current.variation != 'ladiesShirt')) {
            html += '<td>';
            html += '<div id="'+ current.objectId +'" class="product_icon" style="background-image:url(' + path + current.article + '/pict.jpg)">';
            
            //html += '<img id="cart_'+ current.objectId +'" src="../../images/add2cart.png">';
            html += '&nbsp;';
            html += '</div>';
            html += '<div class="product_price">' + current.price + ' руб.</div>';
            html += '<div class="product_name">' + current.displayName + '</div>';
            
            html += '</td>';
            
            
            cnt++;
        } 

        if (cnt % perRow == 0) {
            html += '</tr>';
            cnt = 0;
        }
    }
    
    if (cnt % perRow != 0) {
        while (cnt % perRow != 0) {
            html += '<td>&nbsp;</td>';
            cnt++;
        }
        html += '</tr>';
    }
    
    html += '</table>';
    return html;
}

function addPresetClickHandlers(container, detailsFunction, cartFunction) {
    var obj = {};
    for (var i = 0; i < container.length; i++) {
        var pShirt = container[i];
        obj[pShirt.objectId] = pShirt;
        
        var el = elt(pShirt.objectId);
        if (el) {
            el.onclick = function () {
                detailsFunction(this, obj, cartFunction);
            }
        }
    }
}

function shirtPresetDetails (context, d, cartFunction) {
    var data = d[context.id];
    write_inner ('presetShirtImage', '<img src="../shirtPresets/' + data.article + '/pict_big.jpg"/>');
    
    var html = '<p>Цена: '+ data.price + 'руб. </p>';
    html += '<a id="addShirtPresetToCart" class="addToCart">Добавить в корзину</a>';
    html += '<p>';
    html += '<span class="product_descr_hdr">Описание:</span><br/>' + data.description;
    html += '</p>'
    
    write_inner ('presetShirtInfo', html);
    
    if (data.variation == 'mensShirt') {
        hide_item ('presetLadiesStdSizeTable');
        show_item ('presetMensStdSizeTable');
        elt('presetstdHeight').value = 176;
        elt('presetstdSize').value = 41;
    } else if (data.variation == 'ladiesShirt') {
        show_item ('presetLadiesStdSizeTable');
        hide_item ('presetMensStdSizeTable');
        elt('presetstdHeight').value = 170;
        elt('presetstdSize').value = 88;
    }
    elt('presetVolume').value = 'volumeStandard';
    
    el = elt ('addShirtPresetToCart');
    if (el) {
        el.onclick = function () {
            cartFunction(this, data);
        }
    }
    
    change_popup4 ('shirtPresetsDetailsView_page');
}

function skirtPresetDetails (context, d, cartFunction) {
    var data = d[context.id];
    var imgs = '<img src="../skirtPresets/' + data.article + '/pict_big1.jpg"/>';
    imgs += '<img src="../skirtPresets/' + data.article + '/pict_big2.jpg"/>'
    write_inner ('skirtPresetImage', imgs);
    
    var html = '<p>Цена: '+ data.price + 'руб. </p>';
    html += '<a id="addSkirtPresetToCart" class="addToCart">Добавить в корзину</a>';
    html += '<p>';
    html += '<span class="product_descr_hdr">Описание:</span><br/>' + data.description;
    html += '</p>'
    
    write_inner ('skirtPresetInfo', html);
    
    show_item ('skirtPresetsStdSizeTable');
    
    elt('skirtPresetStdHeight').value = 170;
    elt('skirtPresetStdSize').value = 88;
    
    elt('skirtPresetStdVolume').value = 80;
    
    el = elt ('addSkirtPresetToCart');
    if (el) {
        el.onclick = function () {
            cartFunction(this, data);
        }
    }
    
    change_popup4 ('skirtPresetsDetailsView_page');
}

function presetAddToCart (context, data) {

    switch (data.variation) {
        case 'mensShirt':
        case 'ladiesShirt':
            var p = {
                objectId    : data.objectId,
                article     : data.article,
                price       : data.price
            }
            var shirt = (data.variation == 'ladiesShirt' ? productAttr.ladies_shirt : productAttr.shirt);
            var testShirt = (data.variation == 'ladiesShirt' ? productAttr.ladies_testShirt : productAttr.testShirt);
            
            for (attr in shirt) {
                if(shirt[attr].attr.attrType != 'measure') {
                    p[attr] = getDefault (shirt, attr);
                }
            }
            if (shirt.fabric.values[data.auxData1] || testShirt.fabric.values[data.auxData1]) {
                //Ткань доступна
                p['fabric'] = data.auxData1;
            } else {
                myalert ('Извините, для пошива данной рубашки не хватает ткани');
                return;
            }
            
            if (shirt.buttons.values[data.auxData2]) {
                //Пуговицы доступны
                p['buttons'] = data.auxData2;
            } else {
                myalert ('Извините, для пошива данной рубашки не хватает');
                return;
            }
            
            p.height = elt('presetstdHeight').value;
            p.volume = elt('presetVolume').value;
            var stdSize = elt('presetstdSize').value;
            if (data.variation == 'ladiesShirt') {
                //var stdSeat = elt('stdSeat').value;
                var stdSeat = parseInt(stdSize) + 8;
                p.stdSize = '38';
                p.chestAround = stdSize;
                p.seatAround = stdSeat;
            } else {
                p.stdSize = stdSize;
                delete p.waistLengthBack;
            }
            
            delete p.waistLengthFront;
            delete p.shoulderHeightFront;
            delete p.shoulderType;
            delete p.shoulderHeightBack;
            
            customerService (context, data.variation == 'mensShirt' ? 'addShirt' : 'addLadiesShirt', function (data) {
                eval (data);
                change_cart (count, sum);
                
                if (data.variation == 'mensShirt') {
                    elt('mens_stdHeight_176').selected = true;
                    elt('presetstdHeight').value = elt('mens_stdHeight_176').value;

                    elt('mens_stdSize_41').selected = true;
                    elt('presetstdSize').value = elt('mens_stdSize_41').value;

                    elt('presetMensVolumeStandard').selected = true;
                    elt('presetVolume').value = elt('presetMensVolumeStandard').value;
                } else {
                    elt('ladies_stdHeight_170').selected = true;
                    elt('presetstdHeight').value = elt('ladies_stdHeight_170').value;

                    elt('ladies_stdSize_88').selected = true;
                    elt('presetstdSize').value = elt('ladies_stdSize_88').value;

                    elt('presetLadiesVolumeStandard').selected = true;
                    elt('presetVolume').value = elt('presetLadiesVolumeStandard').value;
                }
                
                myalert ('Готово');
            }, p);
            
            break;
        
        case 'ladiesSkirt':
            var h = elt('skirtPresetStdHeight');
            var s = elt('skirtPresetStdSize');
            var v = elt('skirtPresetStdVolume');
            
            if (h && s && v) {
                var p = {
                    objectId    : data.objectId,
                    details     : h.value + ';' + s.value + ';' + v.value + ';'
                };
                
                customerService (context, 'addProduct', function (data) {
                    eval (data);
                    change_cart (count, sum);
                    
                    elt('skirtStdHeight_170').selected = true;                    
                    elt('skirtPresetStdHeight').value = elt('skirtStdHeight_170').value;
                    
                    elt('skirtPresetStdSize_88').selected = true;
                    elt('skirtPresetStdSize').value = elt('skirtPresetStdSize_88').value;
    
                    elt('skirtPresetStdVolume').value = 80;
                    
                    myalert ('Готово');
                }, p);
            }
            break;
    }
}

function backToShirtPresets () {
    hide_item ('shirtDetails');
    show_item ('shirtsList');
}

function friends_page_details () {
    hide_item ('friends_unauthorized');
    show_item ('friends_authorized');
    //var link = location.protocol + '//' + location.host + '/?' + customerId;
    var code = customerId.substr (0, 4) + '-' + customerId.substr (4, 4);
    elt('friends_link').value = code;
    elt('friendsName').value = '';
    elt('friendsMail').value = '';
    elt('message').value = '';
    elt('friends_link').select();
    
    var mm = elt('hiddenmessage').value;
    
    var msg = mm.replace(/%CUSTOMERNAME%/g, customerInfo.name ? customerInfo.name : 'Ваш друг');
    msg = msg.replace(/%CUSTOMERMAIL%/g, customerInfo.email ? customerInfo.email : '')
    elt('mailmessage').value = elt('hiddenmessage').value = msg.replace(/%PERSONALCODE%/, customerId.substr (0, 4) + '-' + customerId.substr (4, 4));
    
    elt('friendsName').onkeyup = replaceFriendMailTokens;
    elt('message').onkeyup = replaceFriendMailTokens;
    
    elt('friendSubmitLink').onclick = function () {
        var friendsName = elt('friendsName');
        var friendsMail = elt('friendsMail');
        var msg = elt('message');
        if (friendsName.value && friendsMail.value) {
            if (!friendsMail.value.match(REGEX_EMAIL)) {
                myalert('Введенный email друга не является правильным')
                return false;
            }
            
            var p = {
                friendsName : friendsName.value,
                friendsMail : friendsMail.value,
                message     : msg.value
            }
            
            customerService (0, 'tellAFriend', function (data) {
                myalert('Готово');
            }, p);
            
        } else {
            myalert('Не заполнены необходимые поля');
            return false;
        }
        
        return false;
    }
}

function replaceFriendMailTokens() {
    elt('mailmessage').value = elt('hiddenmessage').value.replace(/%FRIENDSNAME%/g, elt('friendsName').value).replace(/%MESSAGE%/g, elt('message').value);
}

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);
    clearOnClick('r_day', 'r_month', 'r_year', 'rc_day', 'rd_month', 'rc_year');
    customerService (0, 'access', access_callback);
}

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

function init () {
    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 ();

    // tracker for adlabs
    var adLabsTracker = new Image(1,1);
    adLabsTracker.src = 'http://luxup.ru/tr/962/&r='+escape(document.referrer)+'&t='+(new Date()).getTime();
}

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);

    // вставляем почтовые адреса партнёров
    for (partner in partnersEmails) {
        var link = document.getElementById(partner);
        var email = partnersEmails[partner];
        link.href = 'mailto:' + email;
        link.appendChild(document.createTextNode(email));
    }


    var shown = false;
    
    var learnMoreSlide = new Fx.Slide ('press_about_us').hide ();
    $('press_about_us_button').addEvent ('click',function (){
        shown ? learnMoreSlide.hide () : learnMoreSlide.show ();
        shown = !shown;
    });

    /*
    hide_item('press_about_us');
    elt('press_about_us_button').onclick = function () {
       shown ? hide_item ('press_about_us') : show_item ('press_about_us');
       shown = !shown;
    };
    */
}

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 customBookletView (f, product) {

}

// checking ranges of product's attributes
function check_shirt(shirtConfig)
{
    var warn_message = "При сохранении профиля размеров проводится автоматический контроль указанных Вами размеров во избежании ошибок и неточностей при снятии мерок.\n Просим проверить указанные размеры:\n";

    //.\n";
    warn_step = null;

    var warn_message_neck   = check_shirt_neck(shirtConfig['neckAround'], shirtConfig['chestAround']);
    var warn_message_height = check_shirt_height(shirtConfig['height'], shirtConfig['sleeveLength'], shirtConfig['shirtLength']);
    var warn_flag = (warn_message_neck || warn_message_height) ? true : false;

/*
    warn_step  = 100;
    warn_attr  = null;
*/
    if (warn_message_neck) {
        warn_message += '"Обхват груди" - ' + shirtConfig['chestAround'] + ' см\n';
    }

    if (warn_message_height) {
        warn_message += '"Длина рукава" - ' + shirtConfig['sleeveLength'] + ' см\n';
        warn_message += '"Длина рубашки" - ' + shirtConfig['shirtLength'] + ' см\n';
    }

    if (warn_flag) {
        warn_message += '\nВаши размеры указаны с существенными отклонениями от типовых значений\n';
        warn_message += warn_message_neck + '\n' + warn_message_height + '\n\n Вы подтверждаете указанные Вами значения?';
        return myconfirm(warn_message);
    }

    return true;
}

// check chestAround
function check_shirt_neck(neckAround, chestAround)
{
    var warn_message = '';
    var chest_neck_step = 12;
    var neck_sizes = {
        '37': {'chestAroundMin': 80},
        '38': {'chestAroundMin': 84},
        '39': {'chestAroundMin': 88},
        '40': {'chestAroundMin': 92},
        '41': {'chestAroundMin': 96},
        '42': {'chestAroundMin': 100},
        '43': {'chestAroundMin': 104},
        '44': {'chestAroundMin': 108},
        '45': {'chestAroundMin': 112},
        '46': {'chestAroundMin': 116},
        '47': {'chestAroundMin': 120},
        '48': {'chestAroundMin': 124},
        '49': {'chestAroundMin': 128},
        '50': {'chestAroundMin': 132},
        '51': {'chestAroundMin': 136}
    }

    if (neck_sizes[neckAround]) {
        var chest_min = neck_sizes[neckAround]['chestAroundMin'];
        var chest_max = neck_sizes[neckAround]['chestAroundMin'] + chest_neck_step;
        if (chestAround > chest_max || chestAround < chest_min) {
            getAttrStep('chestAround');
            return warn_message = 'В типовой фигуре обхват шеи ' + neckAround + ' см соответствует обхвату груди ' + chest_min + '-' + chest_max + ' см';
        }
    }

    return warn_message;
}

function check_shirt_height(heightConf, sleeveLength, shirtLength)
{
    var warn_message = '';
    var height_step = 5;
    var sleeve_step = 6;

    var height_sizes = {
        '155': {'sleeveLengthMin':55, 
               'shirtLengthMin':62,
               'shirtLengthMax':71
              },
        '161': {'sleeveLengthMin':58, 
               'shirtLengthMin':66,
               'shirtLengthMax':75
              },
        '167': {'sleeveLengthMin':61, 
               'shirtLengthMin':71,
               'shirtLengthMax':79
              },
        '173': {'sleeveLengthMin':64, 
               'shirtLengthMin':74,
               'shirtLengthMax':83
              },
        '179': {'sleeveLengthMin':67, 
               'shirtLengthMin':78,
               'shirtLengthMax':87
              },
        '185': {'sleeveLengthMin':70, 
               'shirtLengthMin':83,
               'shirtLengthMax':91
              },
        '191': {'sleeveLengthMin':73, 
               'shirtLengthMin':86,
               'shirtLengthMax':95
              },
        '197': {'sleeveLengthMin':76, 
               'shirtLengthMin':91,
               'shirtLengthMax':99
              }
    }

    for (height_min in height_sizes) {
        var height_max = parseInt(height_min) + height_step;
        // let's check 
        if (heightConf <= height_max && heightConf >= height_min) {
            var sleeveLengthMin = height_sizes[height_min]['sleeveLengthMin'];
            var sleeveLengthMax = parseInt(sleeveLengthMin) + sleeve_step;
            var shirtLengthMin  = height_sizes[height_min]['shirtLengthMin'];
            var shirtLengthMax  = height_sizes[height_min]['shirtLengthMax'];

            if (sleeveLength > sleeveLengthMax ||
                sleeveLength < sleeveLengthMin) {
                warn_message += 'длина рукава обычно составляет ' + sleeveLengthMin + '-' + sleeveLengthMax + ' см\n';
                warn_step ? null : getAttrStep('sleeveLength');
            } 

            if (shirtLength > shirtLengthMax ||
                shirtLength < shirtLengthMin) {
                warn_message += warn_message ? 'а ' : '';
                warn_message += 'длина рубашки обычно составляет ' + shirtLengthMin + '-' + shirtLengthMax + ' см';
                warn_step ? null : getAttrStep('shirtLength');
            } 

            if (warn_message) {
                warn_message = 'При росте ' + heightConf + ' см ' + warn_message;
            }

            return warn_message;
        }
    }

    return warn_message;
}

function getAttrStep(attr)
{
    if (typeof(meas) != 'undefined') {
        for (meas_step in meas) {
            if (meas[meas_step][attr] != undefined) {
            //if (meas[meas_step][attr] != undefined && meas_step < warn_step) {
                warn_step = parseInt(meas_step);
                warn_attr = attr;
                return warn_step;
            }
        }
    } else {
        warn_step = 100;
        warn_attr = attr;
    }

    return false;
}

function clearOnClick () {
    var oldFocus = [];
    var oldBlur = [];
    for (var i=0; i< arguments.length; i++) {
        var el = elt(arguments[i]);
        if (el) {
            //Создадим новую область видимости, чтоб вместо ссылок были значения
            (function (defaultVal, oldFocus, oldBlur, el) {
                var defaultVal = defaultVal;
                var elLocal = el;
                var oldFocusLocal = oldFocus;
                var oldBlurLocal = oldBlur;
                el.onfocus = function () {
                    if (elLocal.value && elLocal.value == defaultVal) {
                        elLocal.value = '';
                    }
                    if (oldFocusLocal) {
                        oldFocusLocal();
                    }
                }
                
                el.onblur = function () {
                    if (!elLocal.value) {
                        elLocal.value = defaultVal;
                    }
                    if (oldBlurLocal) {
                        oldBlurLocal();
                    }
                }
            }) (el.value, el.onfocus, el.onblur, el);
        }
    }
}

