var user_products = new Array(); //0-EL5_ID  1-QTY  2-PERIOD
if (typeof av_img_path == "undefined")
	av_img_path = '';
if (typeof base_address == "undefined")
	base_address = '';
function getEl5Id(id_prd, period) {
    var id_el5 = new Array();
    for (var i=0;i<periods.length;i++) {
        if (periods[i][0] == id_prd && periods[i][1] == period) {
            id_el5 = el5ids[id_prd][period];
            break;
        }
    }
    return id_el5;
}

/*
function draw_EL5OS_combo(id_prd) {
    var combo = '';
    var os = '';
    var el5ids = '';
    for (var i=0;i<el5os_prd.length;i++) {
        if (id_prd == el5os_prd[i][0]) {
            os = el5os_prd[i][1];
            el5ids = el5os_prd[i][2];
        }
    }

    if (os != '') {
        var chunks = os.split('|');
        var el5_chunks = el5ids.split('|');
        combo += 'OS: <select name="el5os_'+id_prd+'" id="el5os_'+id_prd+'" class="shop_txt" style="width:110px; text-align: left;" onBlur="setOS('+id_prd+',this.value)">';
        combo += '<option value="">...</option>';
        for (var i=0;i<chunks.length;i++) {
            if (chunks[i] != '') {
                combo += '<option value="'+el5_chunks[i]+'"' + (el5_chunks[i] == getOS(id_prd) ? 'selected' : '') + '>';
                var os_name = '';
                for (var j=0;j<el5os.length;j++) {
                    if (chunks[i] == el5os[j][0]) {
                        os_name = el5os[j][1];
                    }
                }
                combo += os_name+'</option>';
            }
        }
        combo += '</select>';
    } else {
        combo = '&nbsp;'
    }
    return combo;
}
*/
function remove_os_record(os_combo_id) {
    if (document.getElementById(os_combo_id)) {
        if (document.getElementById(os_combo_id).options[1].value == 3) {
            //remove Win2000
            document.getElementById(os_combo_id).remove(1);
            document.getElementById(os_combo_id).options[0].selected = true;
        }
    }
}

function add_os_record(os_combo_id) {
    if (document.getElementById(os_combo_id)) {
        if (document.getElementById(os_combo_id).options[1].value != 3) {
            //add Win2000
            var elSel = document.getElementById(os_combo_id);
            var elOptNew = document.createElement('option');
            elOptNew.text = 'Windows 2000';
            elOptNew.value = '3';
            var elOptOld = elSel.options[1];  
            try {
                elSel.add(elOptNew, elOptOld); // standards compliant; doesn't work in IE
            } catch(ex) {
                elSel.add(elOptNew, 1); // IE only
            }
        }
    }
}


function fillUsersCombo(id_prd, period) {
    var combo;

	/*
    if ((id_prd == 1 || id_prd == 2) && period == 3) {        
        remove_os_record('el5os_'+id_prd);
    } else {
        add_os_record('el5os_'+id_prd);
    }
    */
    if (document.getElementById('qty_' + id_prd) && document.getElementById('qty_' + id_prd).type == 'select-one') {
        if (period == 0) {
            document.getElementById('qty_' + id_prd).length = 0;
            document.getElementById('qty_' + id_prd).disabled = true;
            setPeriod(id_prd,0);
        } else {
            combo = document.getElementById('qty_' + id_prd);
            combo.length = 0;

            var oOption = new Option('...',0);
            var selLength = combo.length;
            combo.options[selLength] = oOption;

            var id_el5 = getEl5Id(id_prd, period);

            if (id_el5.length > 0) {
                for (var p=0;p<id_el5.length;p++) {
                    for (var i=0;i<prices.length;i++) {
                        if (prices[i][0] == id_el5[p]) {
                            var crtLabel = '';
                            if (prices[i][2]== 9999) {
                                crtLabel = lngresource['Unlimited'];
                                crtUsers = prices[i][2];
                            } else {
                                crtLabel = prices[i][2];
                                crtUsers = prices[i][2];
                            }
                            var oOption = new Option(crtLabel,crtUsers);
                            var selLength = combo.length;
                            combo.options[selLength] = oOption;
                        }
                    }
                }
            }
            if (combo.options.length > 1)  {
                document.getElementById('qty_' + id_prd).disabled = false;
            } else {
                combo.length = 0;
                document.getElementById('qty_' + id_prd).disabled = true;
            }
        }
    }
}

function getValue(id_prd) {
    var ret_val = 0;
    for (var i=0;i<user_products.length;i++) {
        if (id_prd == user_products[i][0]) {
            ret_val = user_products[i][1];
        }
    }
    return ret_val;
}

function getPeriod(id_prd) {
    var ret_val = 0;
    for (var i=0;i<user_products.length;i++) {
        if (id_prd == user_products[i][0]) {
            ret_val = user_products[i][2];
        }
    }
    return ret_val;
}

function getOS(id_prd) {
    var ret_val = 0;
    for (var i=0;i<user_products.length;i++) {
        if (id_prd == user_products[i][0]) {
            ret_val = user_products[i][3];
        }
    }
    return ret_val;
}

function getPriceValue(id_prd) {
    var users = getValue(id_prd);
    var period = getPeriod(id_prd)
    if (users == 0) {
        return '\u20ac ' + 0;
    } else if (period == 0) {
        return '\u20ac ' + 0;
    } else {
        var id_el5 = getEl5Id(id_prd, period);
        for (var p=0;p<id_el5.length;p++) {
            for (var i=0;i<prices.length;i++) {
                if (prices[i][0] == id_el5[p]) {
                    if (users <= prices[i][2] && users >= prices[i][1]) {
                        var sub_price = prices[i][3] * users;
                    }
                }
            }
        }
        return format(sub_price/1.19);
    }
}

function setQty(id_prd,qty) {
    var found = false;
    for (var i=0;i<user_products.length;i++) {
        if (id_prd == user_products[i][0]) {
            user_products[i][1] = qty;
            found = true;
            break;
        }
    }
    if (!found) {
        user_products.push(new Array(id_prd,qty,0));
    }
}

function setPeriod(id_prd,period) {
    var found = false;
    for (var i=0;i<user_products.length;i++) {
        if (id_prd == user_products[i][0]) {
            user_products[i][2] = period;
            found = true;
            break;
        }
    }
    if (!found) {
        user_products.push(new Array(id_prd,0,period));
    }
}

function setOS(id_prd,os) {
    var found = false;
    for (var i=0;i<user_products.length;i++) {
        if (id_prd == user_products[i][0]) {
            user_products[i][3] = os;
            found = true;
            break;
        }
    }
    if (!found) {
        user_products.push(new Array(id_prd,0,0,os));
    }
}

function getCategLink(id_categ) {
    var address = '#';

    for (var i=0;i<categories.length;i++) {
        if (categories[i][0] == id_categ) {
            address = base_address+categories[i][2];
            break;
        }
    }
    return address;
}

function buildCategories() {
    var tbl_work = document.getElementById('categories_tbl');

    var row = tbl_work.insertRow(tbl_work.rows.length);
    var cell = row.insertCell(0);
    cell.colSpan = 2;
    cell.className = 'shop_categ';
    cell.innerHTML = '<br><h2>'+lngresource['r2']+'<\/h2>&nbsp;<span class="shop_categ">'+lngresource['r3']+'<\/span>';

    for (var i=0;i<categories.length;i++) {
        var row = tbl_work.insertRow(tbl_work.rows.length);
        row.className = 'shop_categ';
        row.id = categories[i][0];
        row.onclick = function () { open_close_categ(this.id) };
        row.onmouseover = function () { this.style.backgroundColor = '#F6E8CB'; };
        row.onmouseout = function () { this.style.backgroundColor = ''; };
        var cell = row.insertCell(0);
        cell.className = 'shop_categ';
        cell.innerHTML = '&nbsp;&nbsp;<a href="javascript:void(0);"><img src="'+av_img_path+'/images/common/estore/open.gif" border="0" class="align_middle" id="img_oc_' + categories[i][0] + '"><\/a>&nbsp;' + categories[i][1];
        cell.title = lngresource['r4'];
        row = tbl_work.insertRow(tbl_work.rows.length);
        row.id = categories[i][0] + '_submenu';
        cell = row.insertCell(0);
        cell.innerHTML = '<img src="'+av_img_path+'/images/common/spacer.gif" width="100%" height="2" alt="">';
        if (categories[i+1] && categories[i+1][3] == 1) {
            bundle++;
        }
        if (bundle == 1 && categories[i+1]) {
            var row = tbl_work.insertRow(tbl_work.rows.length);
            row.id = categories[i][0];
            var cell = row.insertCell(0);
            cell.colSpan = 2;
            cell.className = 'shop_categ';
            cell.innerHTML = '<br>&nbsp;<span class="shop_categ">'+lngresource['r5']+'<\/span>';
        }
    }
}

function open_close_categ(id_categ) {
    if (document.getElementById(id_categ + '_submenu')) {
        if (document.getElementById(id_categ + '_submenu').cells[0].className == '') {
            document.getElementById(id_categ + '_submenu').cells[0].innerHTML = build_products(id_categ);
            document.getElementById(id_categ + '_submenu').cells[0].className = 'products'
            document.getElementById('img_oc_' + id_categ).src = av_img_path+'/images/common/estore/close.gif';
        } else {
            document.getElementById(id_categ + '_submenu').cells[0].innerHTML = '<img src="'+av_img_path+'/images/common/spacer.gif" width="100%" height="2" alt="">';
            document.getElementById(id_categ + '_submenu').cells[0].className = '';
            document.getElementById('img_oc_' + id_categ).src = av_img_path+'/images/common/estore/open.gif';
        }
    }
    for (var i=0;i<document.forms['estore'].elements.length;i++) {
        if (document.forms['estore'].elements[i].id.indexOf('qty_') != -1 && document.forms['estore'].elements[i].type == 'select-one') {
            var id_prd = document.forms['estore'].elements[i].id.substring(document.forms['estore'].elements[i].id.indexOf('_') + 1);
            if (document.getElementById('period_' + id_prd).value == 0) {
                document.getElementById('qty_' + id_prd).disabled = true;
            } else {
                document.getElementById('qty_' + id_prd).disabled = false;
                var sel_value = getValue(id_prd);
                fillUsersCombo(id_prd,document.getElementById('period_' + id_prd).value);
                for (var j=0;j<document.getElementById('qty_' + id_prd).options.length;j++) {
                    if (sel_value == document.getElementById('qty_' + id_prd).options[j].value) {
                        document.getElementById('qty_' + id_prd).options[j].selected = true;
                    }
                }
            }
        }
    }
}

function draw_user_input(name,type) {
    var ret_str = '';

    switch(type) {
        case 'INPUT':
            ret_str = '<input type="text" name="' +  name + '" value="' + getValue(name) + '" class="shop_txt" size="4" maxlength="4" onkeyup="document.getElementById(\'img_cart_' + name + '\').src = \''+av_img_path+'/images/common/estore/cart_on.gif\'; document.getElementById(\'img_cart_total\').src = \''+av_img_path+'/images/common/estore/cart_on.gif\';" onblur="computePrice(' + name + ');" id="qty_' + name + '" style="width:45px;">';
        break;
        case 'SELECT':
            var disabled = ' disabled="disabled"';
            if (document.getElementById('period_' + name)) {
                disabled = '';
            }
            ret_str  = '<select name="' + name + '" class="shop_txt" onchange="document.getElementById(\'img_cart_' + name + '\').src = \''+av_img_path+'/images/common/estore/cart_on.gif\'; document.getElementById(\'img_cart_total\').src = \''+av_img_path+'/images/common/estore/cart_on.gif\';" onblur="computePrice(' + name + ');" id="qty_' + name + '" style="text-align:left; width:50px;">';
            ret_str += '<option value="0">...<\/option>';
            for (var i=0;i<prices.length;i++) {
                if (prices[i][0] == name) {
                    ret_str += '<option value="' + prices[i][1] + '"' + (prices[i][1] == getValue(name) ? ' selected' : '') + '>' + prices[i][1] + '<\/option>';
                }
            }
            ret_str += '<\/select>';
        break;

        default:
        break;
    }

    return ret_str;
}

function draw_product_periods(name) {
    var ret_str = '';
    var end_str = '';
    var ret_str_mid = '';
    var display = 'inline';

    ret_str += '<select name="period_' + name + '" class="shop_txt" onChange="fillUsersCombo(' + name + ',this.value); document.getElementById(\'img_cart_' + name + '\').src = \''+av_img_path+'/images/common/estore/cart_on.gif\'; document.getElementById(\'img_cart_total\').src = \''+av_img_path+'/images/common/estore/cart_on.gif\';" onblur="computePrice(' + name + ');" id="period_' + name + '" style="text-align: left;';
    var ret_str_start = '<option value="0">...<\/option>';
    var counter = 0;
    for (var i=0;i<periods.length;i++) {
        if (periods[i][0] == name) {
            ret_str_mid += '<option value="' + periods[i][1] + '"' + (periods[i][1] == getPeriod(name) ? ' selected' : '') + '>' + periods[i][1] + ' ' + (periods[i][1] > 1 ? lngresource['r6'] : lngresource['r7']) + '<\/option>';
            switch (periods[i][1]) {
                case 255:
                    display = 'none';
                    ret_str += ' display: none;';
                    end_str = '<span>'+lngresource['r1']+'<\/span>';
                break;

                case 254:
                    display = 'none';
                    ret_str += ' display: none;';
                    end_str = '<span>7 '+lngresource['r8']+'<\/span>';
                break;
            }
            counter++;
        }
    }
    ret_str += '">';
    if (counter == 1) {
        ret_str += ret_str_mid;
    } else {
        ret_str += ret_str_start + ret_str_mid;
    }
    ret_str += '<\/select>' + end_str;

    return ret_str;
}

function build_products(id_categ) {
    var content = '';
    var no_elements = true;
    content += '<table width="100%" border="0" class="shop_submenu" cellspacing="1" cellpadding="0">';
    for (var i=0;i<products.length;i++) {
        if (id_categ == products[i][1]) {
            no_elements = false;
            var descr = (products[i][3]).replace(/'/g,"\\'");
            content += '<tr onMouseOver="this.style.backgroundColor=\'#FCF8F0\';" onMouseOut="this.style.backgroundColor=\'\';">';
            content += '<td class="shop_product" valign="top" width="50%">';
	    if (base_address!='#')
		content += '<a class="simple" href="' + getCategLink(id_categ) + '" onMouseOver="return overlib(\''+descr+'\',DELAY,500,VAUTO,HAUTO,WIDTH,350);" onMouseOut="return nd();">';
	    content += products[i][2];
	    if (base_address!='#')
		content += '<\/a>';
            if (products[i][6].length > 0) {
                content += '<br>' + products[i][6];
            }
            content += '<\/td>';
            content += '<td class="shop_product" align="right" nowrap valign="top" width="15%">' + draw_product_periods(products[i][0],products[i][1]) + ' '+lngresource['r9']+' '+ '<\/td>';
            content += '<td class="shop_product" align="left" nowrap valign="top" width="15%">'  + draw_user_input(products[i][0],products[i][4]) + ' ' + products[i][7] + '<\/td>';
            //content += '<td class="shop_product" align="left" nowrap valign="top">'  + draw_EL5OS_combo(products[i][0]) + '<\/td>';
            content += '<td class="shop_product" nowrap valign="top" width="10%"><input type="text" name="price_' + products[i][0] + '" value="' + (getPriceValue(products[i][0])) + '" class="shop_txt_subtotal" size="8" id="price_' + products[i][0] + '" readonly="readonly"><\/td>';
            content += '<td class="shop_product" nowrap valign="top" width="10%"><a href="javascript:calculate_total_price();" title="'+lngresource['r10']+'"><img src="'+av_img_path+'/images/common/estore/cart_off.gif" border="0" class="align_middle" alt="'+lngresource['r10']+'" id="img_cart_' + products[i][0] + '"><\/a><\/td>';
            content += '<\/tr>';
        }
    }
    if (no_elements) {
        content += '<tr onMouseOver="this.style.backgroundColor=\'#FCF8F0\';" onMouseOut="this.style.backgroundColor=\'\';">';
        content += '<td width="100%" class="shop_product">';
        content += '<div align="center" class="shop_alert">'+lngresource['r11']+'<\/div>';
        content += '<\/td>';
        content += '<\/tr>';
    }
    content += '<\/table>';
    return content;
}

function computePrice(id_prd) {
    if (document.getElementById('period_' + id_prd).value == 0) {
        setPeriod(id_prd,0);
        //document.getElementById('qty_' + id_prd).value = getValue(id_prd);
        document.getElementById('price_' + id_prd).value = getPriceValue(id_prd);
        //calculate_total_price();
        return false;
    } else {
        setPeriod(id_prd,document.getElementById('period_' + id_prd).value);
    }

    if (document.getElementById('qty_' + id_prd).value == '' || document.getElementById('qty_' + id_prd).value == 0 || isNaN(parseInt(document.getElementById('qty_' + id_prd).value))) {
        setQty(id_prd,0);
        document.getElementById('qty_' + id_prd).value = 0;
        document.getElementById('price_' + id_prd).value = getPriceValue(id_prd);
        //calculate_total_price();
        return false;
    } else {
        setQty(id_prd,document.getElementById('qty_' + id_prd).value);
    }

    if (document.getElementById('qty_' + id_prd).value == parseFloat(document.getElementById('qty_' + id_prd).value) && parseFloat(document.getElementById('qty_' + id_prd).value) > 0) {

        var id_el5 = getEl5Id(id_prd, document.getElementById('period_' + id_prd).value);

        if (id_el5.length > 0) {
            var min_licences = eval('min_' + id_el5[0]);
            var max_licences = eval('max_' + id_el5[id_el5.length-1]);

            if (document.getElementById('qty_' + id_prd).value > max_licences) {
                alert(lngresource['r12']+' ' + max_licences + ' ' +lngresource['r13']);
                document.getElementById('qty_' + id_prd).value = max_licences;
                setQty(id_prd,max_licences);
            } else if (document.getElementById('qty_' + id_prd).value < min_licences) {
                alert(lngresource['r14'] + ' ' + min_licences + ' '+ lngresource['r15']);
                document.getElementById('qty_' + id_prd).value = min_licences;
                setQty(id_prd,min_licences);
            } else {
                setQty(id_prd,document.getElementById('qty_' + id_prd).value);
            }
        }
    } else {
        alert(lngresource['r16']);
        document.getElementById('qty_' + id_prd).value = getValue(id_prd);
        document.getElementById('price_' + id_prd).value = getPriceValue(id_prd);
    }
    //calculate_total_price();
    return false;
}

function format(val) {
    if (val == '')
        return '\u20ac ' + 0;
    else {
        var reverse_str = '';
        var new_val = '';
        val = '' + val;
        var chunks = val.split('.');
        for (var i=0;i<=chunks[0].length;i++) {
            reverse_str += chunks[0].charAt((chunks[0].length) - i);
            if (i % 3 == 0 && i < chunks[0].length && i > 0) {
                reverse_str += ',';
            }
        }
        for (var i=0;i<=reverse_str.length;i++) {
            new_val += reverse_str.charAt((reverse_str.length) - i);
        }

        var decimals = chunks[1] ? chunks[1].substr(0,2) : '00';
        if (decimals.length < 2) decimals = decimals + '0';
        return '\u20ac ' + new_val + '.' + decimals;
    }
}
function calculate_total_price() {
    var total_price = 0.00;
    var vat = 0.00;
    var price_w_vat = 0.00;

    for (var k=0;k<user_products.length;k++) {
        var users = user_products[k][1];
        var period = user_products[k][2];
        if (users > 0 && period > 0) {
            var id_prd = user_products[k][0];

            var id_el5 = getEl5Id(id_prd, period);
            for (var p=0;p<id_el5.length;p++) {
                for (var i=0;i<prices.length;i++) {
                    if (prices[i][0] == id_el5[p]) {
                        if (users <= prices[i][2] && users >= prices[i][1]) {
                            var sub_price = prices[i][3] * (users == 9999 ? 1 : users);
							total_price += sub_price;
                            sub_price = Math.floor(sub_price*100)/100;
                            document.getElementById('price_' + id_prd).value = format(sub_price/1.19);
                            break;
                        }
                    }
                }
                if (id_el5.length == 1 && total_price > 0) {
                    break;
                }
            }
        }
    }
	total_price = Math.floor(total_price * 100) / 100;
	price_w_vat = total_price / 1.19;
	price_w_vat = Math.floor(price_w_vat * 100) / 100;
	vat = (total_price * 100 - price_w_vat * 100) / 100;
	vat = Math.floor(vat * 100) / 100;

    for(var i=0;i<document.images.length;i++) {
        if (document.images[i].id.indexOf('img_cart_') != -1) {
            document.images[i].src = av_img_path+'/images/common/estore/cart_off.gif';
        }
    }

    document.getElementById('total_price').value = format(total_price);
    document.getElementById('vat').value = format(vat);
    document.getElementById('price_w_vat').value = format(price_w_vat);
}

function open_category(id_categ) {
    if (id_categ == 0) {
        id_categ = categories[0][0];
    }
    open_close_categ(id_categ);
}

function checkout() {
    calculate_total_price();
    var submit = true;

 
    var id_el5 = 0
    for (var i=0;i<user_products.length;i++) {
		/*
        if (user_products[i][2] && document.getElementById('el5os_' + user_products[i][0]) && document.getElementById('el5os_' + user_products[i][0]).selectedIndex == 0) {
            alert(lngresource['r17']+'!');
            document.getElementById('el5os_' + user_products[i][0]).focus();
            submit = false;
        }
        if (!submit)
           break;
		*/
        id_el5 = getEl5Id(user_products[i][0],user_products[i][2]);
        if (id_el5.length > 0) {
            if (id_el5.length == 1)
                varid_el5 = id_el5[0];
            else
                varid_el5 = id_el5[document.getElementById('qty_'+user_products[i][0]).selectedIndex-1];
            var add_params = '';
            url += '&PRODUCT['+varid_el5+']=' + (user_products[i][1] == 9999 ? 1 : user_products[i][1]);
			/*
            if (document.getElementById('el5os_'+user_products[i][0]) && document.getElementById('el5os_'+user_products[i][0]).value != '' && document.getElementById('el5os_'+user_products[i][0]).value > 0) {
                url += '&HADD['+varid_el5+'][ADDITIONAL1]=' + document.getElementById('el5os_'+user_products[i][0]).value;
            }
			*/
            for (var j=0;j<products.length;j++) {
                if (products[j][0] == user_products[i][0]) {
                    add_params = products[j][5];
                    break;
                }
            }
            url += add_params;
        }
    }
    url += '&backlink=' + backlink;
    url += '&cookies=1';
    url += '&languageid='+languageid;

    //submit user products
    if (user_products.length > 0 && submit && document.getElementById('total_price').value != ('\u20ac ' + 0))
        window.location = url;
}