$(function() {
    if (OPT.IamPopup) 
    	$("#header").hide();
    $(".loading_panel").css("display", "none");
});

function ajax(options) {
    options = {
        type: options.type || "POST",
        url: options.url || "",
        onComplete: options.onComplete || function() {},
        onError: options.onError || function() {},
        onSuccess: options.onSuccess || function() {},
        dataType: options.dataType || "text"
    };
    var xml = new XMLHttpRequest();
    xml.open(options.type, options.url, false);
    xml.onreadystatechange = function() {
        if (xml.readyState == 4) {
            if (httpSuccess(xml)) {
                var returnData = (options.dataType == "xml") ? xml.responseXML : xml.responseText
                options.onSuccess(returnData);
            } else {
                options.onError();
            }
            options.onComplete();
            xml = null;
        }
    };
    xml.send();

    function httpSuccess(r) {
        try {
            return (r.status >= 200 && r.status < 300 || r.status == 304 || navigator.userAgent.indexOf("Safari") >= 0 && typeof r.status == "undefined")
        } catch (e) {
            return false;
        }
    }
}

function SetTabIndexs() {
    var main = document.getElementById('main');
    var td = main.getElementsByTagName('td');
    var selectedTable = null;
    //var selectingColor = 'red';
    //var selectingCellTable = 'green';
    var TableIndex = 0;
    for (var i = 0; i < td.length; i++) {
        if (td[i].className == 'tabEditViewDF') {
            var TI = 0;
            if (td[i].parentNode.cells.item(1) == td[i]) TI = 101 + TableIndex;
            else TI = 102 + TableIndex;
            var nodes = td[i].getElementsByTagName('input');
            for (var j = 0; j < nodes.length; j++) nodes[j].tabIndex = TI;
            var nodes = td[i].getElementsByTagName('select');
            for (var j = 0; j < nodes.length; j++) nodes[j].tabIndex = TI;
            var nodes = td[i].getElementsByTagName('textarea');
            for (var j = 0; j < nodes.length; j++) nodes[j].tabIndex = TI;
            if (td[i].parentNode.parentNode.parentNode !== selectedTable) {
                //if(selectingColor == 'red') selectingColor = 'blue'; else selectingColor = 'red';
                selectedTable = td[i].parentNode.parentNode.parentNode;
                TableIndex++;
            }
        }
    }
}

function doRequest(where, post, doFunction, error) {
    this.Display = function(result) {
        doFunction(result.responseText);
    }
    this.Fail = function(result) {
        if (error) alert(error);
    }
    YAHOO.util.Connect.asyncRequest('POST', where, {
        success: this.Display,
        failure: this.Fail
    }, post);
}

function changeValidateRequired(formname, name, required) {
    for (var i = 0; i < validate[formname].length; i++)
        if (validate[formname][i][0] == name) {
            validate[formname][i][2] = required;
            break;
        }
}

function set_focus() {
    document.getElementById('name').focus();
}

function my_popup(module, field_array, met, call_back_function, form_name) {
    if (!call_back_function) call_back_function = "set_return";
    if (!form_name) form_name = "EditView";
    return open_popup(module, 900, 700, met, true, false, {
        "call_back_function": call_back_function,
        "form_name": form_name,
        "field_to_name_array": field_array
    });
}

function addEvent(object, eventName, do_function) {
    if (typeof(object) == "string") object = document.getElementById(object);
    if (!object) {
        alert('No object in function addEvent!');
        return;
    }
    if (object.addEventListener) {
        object.addEventListener(eventName, do_function, false);
    } else {
        object.attachEvent('on' + eventName, do_function);
    }
}

function findPos(obj) {
    var nleft = 0;
    var ntop = 0;
    if (obj.offsetParent) {
        nleft = obj.offsetLeft
        ntop = obj.offsetTop
        while (obj = obj.offsetParent) {
            nleft += obj.offsetLeft
            ntop += obj.offsetTop
        }
    }
    return [nleft, ntop];
}

function cursorEOT(isField) {
    isRange = isField.createTextRange();
    isRange.move('textedit');
    isRange.select();
    testOverflow = isField.scrollTop;
    if (testOverflow != 0) {
        return true
    } else {
        return false
    }
}

function adjustRows(isField) {
    while (cursorEOT(isField)) {
        isField.rows++
    }
}

function insertText(isField, isText) {
    isField.value = testText;
    isField.focus();
}

function changer() {
    this.list = new Object();
    this.add = function(object, type, do_function, start_value) {
        if (typeof(object) == "string") object = document.getElementById(object);
        if (!object) return;
        this.list[object.id] = new Object();
        this.list[object.id].object = object;
        this.list[object.id].type = type;
        this.list[object.id].do_function = do_function;
        this.list[object.id].start_value = start_value;
        this.list[object.id].value = '';
    }
    this.getValue = function(element) {
        var value = null;
        if (element.object) {
            if (element.type == "innerHTML") value = element.object.innerHTML;
            if (element.type == "value") value = element.object.value;
            if (element.type == "checked") value = element.object.checked;
        }
        return value;
    }
    this.interval = 1000;
    this.timer = null;
    this.startTimer = function() {
        var cc = this;
        this.timer = setInterval(
            function() {
                var list = cc.list;
                for (x in list) {
                    if (list[x].start_value) {
                        list[x].value = cc.getValue(list[x]);
                        list[x].start_value = false;
                    } else {
                        var value = cc.getValue(list[x]);
                        if (list[x].value !== value)
                            if (list[x].do_function)
                                list[x].do_function(list[x].object);
                        list[x].value = value;
                    }
                }
            },
            this.interval
        );
    }
    this.stopTimer = function() {
        clearInterval(this.timer);
        this.timer = null;
    }
}
var ERROR = false;
var ItemListSave = function(json) {}

function ShowLoadingView() {
    var slv = document.getElementById('ShowLoadingView');
    if (!slv) {
        slv = document.createElement('div');
        slv.id = 'ShowLoadingView';
        slv.className = 'transparent_class_loading';
        slv.style.width = '100%';
        slv.style.height = '500%';
        var sli = document.createElement('img');
        sli.className = 'transparent_class_loading_image';
        sli.src = 'themes/default/images/loading.gif';
        slv.appendChild(sli);
        document.body.appendChild(slv);
    }
    slv.style.display = '';
}

function HideLoadingView() {
    var slv = document.getElementById('ShowLoadingView');
    if (slv) slv.style.display = 'none';
}

function SaveForm() {
    ShowLoadingView();
    setTimeout(function() {
        if (OPT['checkbox_demo'] == 1 && document.forms.EditView.record.value == '') {
            alert(MOD.LBL_DEMO_VERSION_INFORMATION);
            return;
        }
        ERROR = false;
        //document.getElementById('position_list').value = ItemListSave(true);
        if (ERROR) {
            alert(MOD['LBL_SAVE_FORM_ERROR']);
            HideLoadingView();
            return false;
        }
        document.forms.EditView.action.value = 'Save';
        if (check_form('EditView')) {
            var result = confirm(MOD.LBL_CONFIRM_QUESTION);
            if (result) document.forms.EditView.status.value = (OPT['auto_commiting'] ? 's30' : 's20');
            doRequest('index.php', getFormPost('Save'), function(result) {
                    document.forms.EditView.record.value = result.substring(result.length - 36);
                    alert(MOD['LBL_SAVED']);
                    if (OPT['setEmailTab']) setEMAIL(true);
                    else window.location = 'index.php?module=' + document.forms.EditView.module.value + '&action=DetailView&record=' + document.forms.EditView.record.value;
                },
                MOD['LBL_NOT_SAVED']
            );
        } else {
            alert(MOD['LBL_NOT_SAVED']);
            HideLoadingView();
            return false;
        }
    }, 200);
}

function ItemListClear() {
    while (N.rowCount() > 0) N.row(0).deleteRow();
}

function getFormPost(action) {
        if (!action) action = 'previewPDF';
        var pd = 'to_pdf=1' + '&module=EcmQuotes&action=' + action + '&record=' + document.forms.EditView.record.value;
        pd += '&cache=fromJava' + ItemListSave(true);
        var pd2 = new Object();
        pd2['module'] = 'EcmQuotes';
        pd2['action'] = action;
        pd2['record'] = document.forms.EditView.record.value;
        pd2['to_pdf'] = '1';
        pd2['cache'] = 'fromJava';
        document.forms.EditView.position_list.value = '';
        document.forms["EditView"].action.value = action;
        var tmp;
        for (var i = 0; i < document.forms["EditView"].elements.length; i++) {
            tmp = document.forms["EditView"].elements[i];
            if (tmp.name != '') {
                if (tmp.type == "checkbox")
                    pd2[document.forms["EditView"].elements[i].name] = (document.forms["EditView"].elements[i].checked ? '1' : '0');
                else
                    pd2[document.forms["EditView"].elements[i].name] = document.forms["EditView"].elements[i].value;
            }
        }
        pd += '&otherFormData=' + JSON.stringifyNoSecurity(pd2);
        return pd;
    }
    /*
    function sendFormPostToPdf() {
    ShowLoadingView();
    setTimeout( function() {
    ERROR = false;
    //document.getElementById('position_list').value = ItemListSave(true);
    if(ERROR) { alert('There are some errors on list'); HideLoadingView(); return false; }
    doRequest("index.php",getFormPost(),function(result){
    HideLoadingView();
    SetTab('PREVIEW');
    EcmPreviewPDF('index.php?module=EcmQuotes&action=previewPDF&to_pdf=1&from=EcmQuotes',{zoom:75});
    }
    );
    }, 200);
    }*/
function sendFormPostToPdf() {
    ERROR = false;
    document.getElementById('position_list').value = ItemListSave(true);
    if (ERROR) {
        alert('There are some errors on list');
        return false;
    }
    doRequest("index.php", getFormPost(), function(result) {
        if (SHOW_PDF_IN_DIV == 1) {
            HideLoadingView();
            //SetTab('PREVIEW');
            EcmPreviewPDF('index.php?module=EcmQuotes&action=previewPDF&to_pdf=1&from=EcmQuotes', {
                zoom: 75
            });
        } else {
            SetTab('PREVIEW');
            document.getElementById('previewPDF').innerHTML = "<iframe style='border:none;width:100%;height:1200px;' frameborder='no' src='index.php?module=EcmQuotes&action=previewPDF&to_pdf=1&from=EcmQuotes#zoom=75'>Yours browser not accept iframes!</iframe>";
        }
    });
}

function canConfirm() {
    if (document.forms.EditView.status.value == "accepted" && !OPT.user.confirm_quotes) {
        alert('This option is disabled for You.');
        document.forms.EditView.status.value = ((OPT.old_status) ? OPT.old_status : '');
    }
    OPT.old_status = document.forms.EditView.status.value;
}

function CheckDiscount(noAlert) {
        var discount = 0;
        var tmp = UserFormatNumberToNumber(document.getElementById('discount').value);
        if (tmp == -1) {
            if (!noAlert)
                alert(MOD['LBL_DISCOUNT_ERROR'] + ' (' + document.getElementById('discount').value + ')');
            discount = -1;
            document.getElementById('discount').style.color = 'red';
        } else {
            discount = tmp;
            document.getElementById('discount').value = NumberToUserFormatNumber(discount);
            document.getElementById('discount').style.color = 'black';
        }
        return discount;
    }
    //document.getElementById('previewPDF').innerHTML = "<iframe style='border:0px; width:100%; height:100%;' src='index.php?module=EcmInvoiceOuts&action=InvoicePDFPreview&to_pdf=1'>Yours browser not accept iframes!</iframe>";
    //ProductListSave();
    //YAHOO.util.Connect.asyncRequest('POST','index.php',{success:this.Display,failure:this.Fail},this.postData());
var AjaxSearchProducts;
var parentFL;
var productFL;
var contactFL;
var first_code;
addEvent(
    window,
    'load',
    function() {
        first_code = document.getElementById('code').value;
        var CHANGER = new changer();
        CHANGER.interval = 500;
        set_focus();
        //initialize table
        N = new MyTable('itemsTable');
        N.divParent = document.getElementById('itemsTableDIV');
        var from_popup_return = false;

        function returnedData(popup_reply_data) {
            from_popup_return = true;
            var form_name = popup_reply_data.form_name;
            var name_to_value_array = popup_reply_data.name_to_value_array;
            for (var the_key in name_to_value_array) {
                if (the_key == 'toJSON') {} else {
                    var displayValue = name_to_value_array[the_key].replace(/&amp;/gi, '&').replace(/&lt;/gi, '<').replace(/&gt;/gi, '>').replace(/&#039;/gi, '\'').replace(/&quot;/gi, '"');;
                    var e = document.getElementById(the_key);
                    if (e) {
                        e.value = displayValue;
                    }
                }
            }
            //if(N.selectedRow) N.selectedRow.calculateTotal();
        };
        N.onRefreshRowIndex = function(row) {
            var data = new Object();
            data['index'] = (row.index + 1).toString();
            row.cells.item(0).setData(data);
        }
        N.onCreateRow = function(row) {
            row.newPos = false;
            //row.style.height = OPT['row_item_height'];
            row.ondblclick = function() {
                this.newPos = !this.newPos;
                /*
                var img = this.cells.item(1).getElementsByTagName('img');
                //if(!this.newPos)
                img[0].src = "modules/EcmQuotes/images/insertrow.gif";
                //else img[0].src = "modules/EcmQuotes/images/editset.gif";
                */
                for (var i = 0; i < this.myTable.colCount(); i++)
                    this.cells.item(i).change(!this.newPos);
            }
            row.onSelect = function() {
                for (var i = 0; i < this.myTable.colCount(); i++) {
                    this.cells.item(i).style.height = OPT['row_item_height_selected'];
                    this.cells.item(i).change(!this.newPos);
                }
            }
            row.onDeselect = function() {
                for (var i = 0; i < this.myTable.colCount(); i++) {
                    this.cells.item(i).style.height = OPT['row_item_height'];
                    this.cells.item(i).change(false);
                }
            }
            row.calculateTotal = function() {
                /*
                var data = new Object();
                this.cells.item(3).getData(data,true);
                this.cells.item(4).getData(data,true);
                this.cells.item(5).getData(data,true);
                this.cells.item(6).getData(data,true);
                if(data.quantity && data.price)
                data.total = data.quantity*data.price-data.quantity*data.price*data.discount/100;
                else
                data.total = 0;
                this.cells.item(8).setData(data);
                calculateTotal();
                */
            }
        }
        var itd = document.getElementById('itemsTableDIV');
        itd.onscroll = function() {
            if (!AjaxSearchProducts.AjaxSearchFrozen)
                if (N.selectedCell && N.selectedCell.LeftPosition && N.selectedCell.TopPosition) {
                    var top = N.selectedCell.TopPosition + N.selectedCell.offsetHeight;
                    if (((N.selectedCell.offsetTop + N.selectedCell.offsetHeight - this.scrollTop) > (this.offsetHeight + 5)) || ((N.selectedCell.offsetTop - this.scrollTop) < (-10)))
                        AjaxSearchProducts.div.style.display = 'none';
                    else
                        AjaxSearchProducts.div.style.display = '';
                    AjaxSearchProducts.div.style.top = top - this.scrollTop;
                }
        }
        N.onCreateCell = function(cell) {
            var i = cell.index;
            cell.change = function(select) {};
            cell.style.height = OPT['row_item_height'];
            cell.onDeselect2 = function() {
                var data = this.parentNode.getData();
                if (!data.id || data.id == '') {
                    var data2 = new Object();
                    this.parentNode.setData(data2);
                }
            }
            if (i == 0) {
                cell.setData = function(data) {
                    if (data.index) cell.firstChild.value = data.index;
                };
                cell.getData = function(data) {
                    data.index = cell.firstChild.value;
                }
                cell.select = function() {
                    this.selectNext();
                }
                var edit = document.createElement('input');
                edit.setAttribute('type', 'text');
                edit.setAttribute('readOnly', 'readonly');
                edit.setAttribute('tabIndex', 1);
                edit.className = 'inputs';
                cell.appendChild(edit);
            }
            if (i == 1) {
                cell.change = function(select) {
                    var cn = this.getElementsByTagName('input');
                    var c;
                    if (select) {
                        c = cn[0];
                        c.name = 'code_p';
                        c.id = 'code_p';
                        c.className = 'inputs'; // sqsEnabled';
                        c = cn[1];
                        c.name = 'id_p';
                        c.id = 'id_p';
                        c = cn[2];
                        c.name = 'unit_id_p';
                        c.id = 'unit_id_p';
                        //c = cn[3]; c.name = 'vat_id_p'; c.id = 'vat_id_p';
                        c = cn[3];
                        c.name = 'category_id_p';
                        c.id = 'category_id_p';
                        c = cn[4];
                        c.name = 'currency_id_p';
                        c.id = 'currency_id_p';
                        c = cn[5];
                        c.name = 'currency_symbol_p';
                        c.id = 'currency_symbol_p';
                    } else {
                        c = cn[0];
                        c.name = '';
                        c.id = '';
                        c.className = 'inputs';
                        c = cn[1];
                        c.name = '';
                        c.id = '';
                        c = cn[2];
                        c.name = '';
                        c.id = '';
                        //c = cn[3]; c.name = ''; c.id = '';
                        c = cn[3];
                        c.name = '';
                        c.id = '';
                        c = cn[4];
                        c.name = '';
                        c.id = '';
                        c = cn[5];
                        c.name = '';
                        c.id = '';
                    }
                }
                cell.onSelect = function() {
                    var xy = findPos(this);
                    this.TopPosition = xy[1];
                    this.LeftPosition = xy[0];
                    var top = xy[1] + this.offsetHeight;
                    var itd = document.getElementById('itemsTableDIV');
                    AjaxSearchProducts.setInputCode(this.getElementsByTagName('input')[0]);
                    if (!AjaxSearchProducts.AjaxSearchFrozen) {
                        AjaxSearchProducts.div.style.left = xy[0];
                        AjaxSearchProducts.div.TopPosition = top;
                        AjaxSearchProducts.div.style.top = top - itd.scrollTop;
                    }
                    this.ajax_search = false;
                    this.parentNode.noHideASP = false;
                }
                cell.onDeselect = function() {
                    if (!this.parentNode.noHideASP) AjaxSearchProducts.div.style.display = 'none';
                    this.ajax_search = false;
                }
                cell.getData = function(data) {
                    var cn = this.getElementsByTagName('input');
                    data.code = cn[0].value;
                    data.id = cn[1].value;
                    data.unit_id = cn[2].value;
                    //data.vat_id = cn[3].value;
                    data.category_id = cn[3].value;
                    data.currency_id = cn[4].value;
                    data.currency_symbol = cn[5].value;
                }
                cell.setData = function(data) {
                    var cn = this.getElementsByTagName('input');
                    cn[0].value = ((data.code) ? data.code : '');
                    cn[1].value = ((data.id) ? data.id : '');
                    cn[2].value = ((data.unit_id) ? data.unit_id : OPT['default_unit']);
                    //if(data.vat_id) cn[3].value = data.vat_id;
                    cn[3].value = ((data.category_id) ? data.category_id : OPT['default_category']);
                    cn[4].value = ((data.currency_id) ? data.currency_id : OPT['default_currency_id']);
                    cn[5].value = ((data.currency_symbol) ? data.currency_symbol : OPT['default_category']);
                }
                cell.onKeyDownEvent = function(ev, input) {
                    var keynum;
                    if (window.event) keynum = ev.keyCode;
                    else keynum = ev.which;
                    if (keynum != 13 && keynum != 9) this.ajax_search = true;
                    if (this.ajax_search == true) {
                        AjaxSearchProducts.div.style.display = '';
                        setTimeout(function() {
                            AjaxSearchProducts.inputSearch.value = input.value;
                            AjaxSearchProducts.inputSearchOnKeyDown(keynum, "clear");
                        }, 50);
                    }
                    if (input.value == '' && keynum == 40) {
                        setSelectionRange(AjaxSearchProducts.inputSearch);
                        return false;
                    }
                    if (keynum == 13 || keynum == 9) {
                        if (input.value == '') return false;
                        if (this.ajax_search != true && this.parentNode.myTable.selectedCell && this.parentNode.myTable.selectedCell.index == 1) this.selectNext();
                        return false;
                    }
                    if (keynum == 27) {
                        return false;
                    }
                    return true;
                    //return input.parentNode.myTable.KeyPressed(ev,input.parentNode,null,true);
                }
                var edit = '<input type="text" onFocus="this.parentNode.select();" tabindex="1" class="inputs" style="height:16px;" autocomplete="off" onKeyDown="return this.parentNode.onKeyDownEvent(event,this);">';
                cell.innerHTML = edit;
                cell.align = 'right';
                var id = document.createElement('input');
                id.setAttribute('type', 'hidden');
                cell.appendChild(id);
                var unit_id = document.createElement('input');
                unit_id.setAttribute('type', 'hidden');
                unit_id.setAttribute('value', OPT['default_unit']);
                cell.appendChild(unit_id);
                /*
                var vat_id = document.createElement('input');
                vat_id.setAttribute('type','hidden');
                vat_id.setAttribute('value',OPT['default_vat']);
                cell.appendChild(vat_id);
                */
                var category_id = document.createElement('input');
                category_id.setAttribute('type', 'hidden');
                category_id.setAttribute('value', OPT['default_category']);
                cell.appendChild(category_id);
                var currency_id = document.createElement('input');
                currency_id.setAttribute('type', 'hidden');
                currency_id.setAttribute('value', OPT['default_currency']);
                cell.appendChild(currency_id);
                var currency_symbol = document.createElement('input');
                currency_symbol.setAttribute('type', 'hidden');
                currency_symbol.setAttribute('value', OPT['default_category']);
                cell.appendChild(currency_symbol);
                var img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_IMG_SEARCH']);
                img.setAttribute('src', 'modules/EcmQuotes/images/search.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    try {
                        this.parentNode.select();
                    } catch (e) {}
                    if (!this.parentNode.noHideASP) AjaxSearchProducts.div.style.display = 'none';
                    this.parentNode.ajax_search = false;
                    var ecmpopup = my_popup('EcmProducts', {
                        'id': 'id_p',
                        'code': 'code_p',
                        'name': 'name_p',
                        'selling_price': 'price_p',
                        'encoded_unit_id': 'unit_id_p',
                        'vat_id': 'vat_id_p',
                        'vat_value': 'vat_value_p',
                        'vat_name': 'vat_name_p',
                        'encoded_category_id': 'category_id_p',
                        'currency_id': 'currency_id_p',
                        'currency_symbol': 'currency_symbol_p'
                    });
                    setTimeout(function() {
                        ecmpopup.focus();
                    }, 200);
                }
                cell.appendChild(img);
                cell.appendChild(document.createTextNode(" "));
                var img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_IMG_EDIT']);
                img.setAttribute('src', 'modules/EcmQuotes/images/edit_position.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    try {
                        this.parentNode.select();
                    } catch (e) {}
                    if (!this.parentNode.noHideASP) AjaxSearchProducts.div.style.display = 'none';
                    this.parentNode.ajax_search = false;
                    var data = new Object();
                    this.parentNode.getData(data);
                    var ecmpopup = window.open("index.php?module=EcmQuotes&action=formloader&to_pdf=1&loaderAction=ViewForm&loaderFieldName=productFL&createModule=EcmProducts&fl_record=" + data.id, "New", "resizable=yes,scrollbars=no,status=no,height=700,width=900");
                    setTimeout(function() {
                        ecmpopup.focus();
                    }, 200);
                };
                cell.appendChild(img);
                cell.appendChild(document.createTextNode(" "));
                var img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_IMG_NEW']);
                img.setAttribute('src', 'modules/EcmQuotes/images/add_position.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    try {
                        this.parentNode.select();
                    } catch (e) {}
                    if (!this.parentNode.noHideASP) AjaxSearchProducts.div.style.display = 'none';
                    this.parentNode.ajax_search = false;
                    var ecmpopup = window.open("index.php?module=EcmQuotes&action=formloader&to_pdf=1&loaderAction=ViewForm&loaderFieldName=productFL&createModule=EcmProducts", "Create", "resizable=yes,scrollbars=no,status=no,height=700,width=900");
                    setTimeout(function() {
                        ecmpopup.focus();
                    }, 200);
                    /*
                    this.parentNode.addToBase = !this.parentNode.addToBase;
                    if(!this.parentNode.addToBase) this.src = 'modules/EcmQuotes/images/new.gif';
                    else this.src = 'modules/EcmQuotes/images/newset.gif'
                    */
                };
                cell.appendChild(img);
            }
            if (i == 2) {
                cell.change = function(select) {
                    var c;
                    if (select) {
                        c = this.childNodes[0];
                        c.name = 'name_p';
                        c.id = 'name_p'; //c.className = 'sqsEnabled';
                    } else {
                        c = this.childNodes[0];
                        c.name = '';
                        c.id = '';
                        c.className = '';
                    }
                }
                cell.getData = function(data) {
                    var cn = this.getElementsByTagName('textarea');
                    data.name = cn[0].value;
                }
                cell.setData = function(data) {
                    var cn = this.getElementsByTagName('textarea');
                    cn[0].value = ((data.name) ? data.name : '');
                }
                var textarea = '<textarea tabindex="1" onFocus="this.parentNode.select();" style="width:100%;height:100%;" class="inputs" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,null,true);"></textarea>';
                cell.innerHTML = textarea;
            }
            if (i == 3) {
                cell.change = function(select) {
                    var c;
                    if (select) {
                        c = this.childNodes[0];
                        c.name = 'unit_p';
                        c.id = 'unit_p'; //c.className = 'sqsEnabled';
                    } else {
                        c = this.childNodes[0];
                        c.name = '';
                        c.id = '';
                        c.className = '';
                    }
                }
                cell.getData = function(data) {
                    var cn = this.getElementsByTagName('select');
                    data.unit_id = cn[0].value;
                }
                cell.setData = function(data) {
                    var cn = this.getElementsByTagName('select');
                    cn[0].value = ((data.unit_id) ? data.unit_id : '');
                }
                var textarea = '<select tabindex="1" onFocus="this.parentNode.select();" style="" class="" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,null,true);">' + OPT.ecmproduct_usage_units_options + '</select>';
                cell.innerHTML = textarea;
            }
            if (i == 4) {
                cell.change = function(select) {
                    var c;
                    if (select) {
                        c = this.childNodes[0];
                        c.name = 'quantity_p';
                        c.id = 'quantity_p';
                    } else {
                        c = this.childNodes[0];
                        c.name = '';
                        c.id = '';
                    }
                }
                cell.getData = function(data, noAlert) {
                    var tmp = UserFormatNumberToNumber(this.firstChild.value);
                    if (tmp == -1) {
                        ERROR = true;
                        //if(!noAlert)
                        //alert(MOD['LBL_FORMAT_NUMBER_ERROR']+' ('+this.firstChild.value+')');
                        data.quantity = 0;
                        this.firstChild.style.color = 'red';
                    } else {
                        data.quantity = tmp;
                        this.firstChild.style.color = 'black';
                    }
                }
                cell.setData = function(data) {
                    if (data.quantity) this.firstChild.value = NumberToUserFormatNumber(data.quantity, '', 4, 2);
                    else this.firstChild.value = NumberToUserFormatNumber(1);
                }
                cell.onDeselect = function() {
                    ERROR = false;
                    var data = new Object();
                    this.getData(data);
                    if (!ERROR) {
                        data.quantity = data.quantity;
                        this.setData(data);
                    }
                }
                cell.selectNext = function() {
                    var row = this.parentNode.selectNext();
                    row.select();
                    row.cells.item(0).select();
                };
                var edit = '<input type="text" tabindex="1" autocomplete="off" class="inputs" style="text-align:right;" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,\'decimalNumber\');" value="' + NumberToUserFormatNumber(1) + '">';
                cell.innerHTML = edit;
            }
            /*
            if(i == 4) {
            cell.change = function(select) {
            var c;
            if(select) {
            c = this.childNodes[0]; c.name = 'price_p'; c.id = 'price_p';
            }
            else {
            c = this.childNodes[0]; c.name = ''; c.id = '';
            }
            }
            cell.getData = function(data,noAlert) {
            var tmp = UserFormatNumberToNumber(this.firstChild.value);
            if(tmp == -1) {
            ERROR = true;
            if(!noAlert)
            alert(MOD['LBL_FORMAT_NUMBER_ERROR']+' ('+this.firstChild.value+')');
            data.price = 0;
            this.firstChild.style.color = 'red';
            } else {
            data.price = tmp;
            this.firstChild.style.color = 'black';
            }
            }
            cell.setData = function(data) {
            if(data.price) this.firstChild.value = NumberToUserFormatNumber(data.price); else this.firstChild.value = NumberToUserFormatNumber(0);
            }
            cell.onDeselect = function() {
            ERROR = false;
            var data = new Object();
            this.getData(data);
            if(!ERROR) {
            data.price = data.price;
            this.setData(data);
            }
            }
            var edit = '<input type="text" tabindex="1" class="inputs" style="text-align:right;" autocomplete="off" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,\'decimalNumber\');" value="'+NumberToUserFormatNumber(0)+'">';
            cell.innerHTML = edit;
            cell.appendChild(document.createTextNode(" "));
            var img = document.createElement('img');
            img.setAttribute('alt',MOD['LBL_IMG_SEARCH']);
            img.setAttribute('src','modules/EcmSales/images/search.gif');
            img.style.cursor = 'pointer';
            img.onclick = function()
            {
            var dat = cell.parentNode.getData();
            this.parentNode.parentNode.select(); my_popup('EcmPriceBooks',{'price':'price_p','recipient_code':'recipient_code_p'},'&pricebook_product_id='+dat.id+'&pricebook_id='+document.getElementById('pricebook_id').value);
            }
            cell.appendChild(img);
            }
            */
            /*
            if(i == 5) {
            cell.change = function(select) {
            var c;
            if(select) {
            c = this.childNodes[0]; c.name = 'vat_name_p'; c.id = 'vat_name_p';
            c = this.childNodes[1]; c.name = 'vat_value_p'; c.id = 'vat_value_p';
            c = this.childNodes[2]; c.name = 'vat_id_p'; c.id = 'vat_id_p';
            }
            else {
            c = this.childNodes[0]; c.name = ''; c.id = '';
            c = this.childNodes[1]; c.name = ''; c.id = '';
            c = this.childNodes[2]; c.name = ''; c.id = '';
            }
            }
            cell.getData = function(data,noAlert) {
            var cn = this.getElementsByTagName('input');
            data.vat_value = cn[1].value;
            data.vat_id = cn[2].value;
            if(VAT[cn[2].value])data.vat_name = VAT[cn[2].value].name;
            }
            cell.setData = function(data) {
            if(data.vat_value) this.getElementsByTagName('input')[1].value = data.vat_value; //0->1, 1->2, 2->0
            if(data.vat_id) this.getElementsByTagName('input')[2].value = data.vat_id;
            if(data.vat_name) this.getElementsByTagName('input')[0].value = data.vat_name;
            }
            cell.onDeselect = function() {
            ERROR = false;
            var data = new Object();
            this.getData(data);
            if(!ERROR) {
            data.vat_id = data.vat_id;
            this.setData(data);
            }
            }
            var edit = '<input type="text" tabindex="1" class="inputs" style="text-align:right;" autocomplete="off" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,\'decimalNumber\');" value="'+NumberToUserFormatNumber(0,"%")+'"><input type="hidden"><input type="hidden">';
            cell.innerHTML = edit;
            }
            */
            /*
            if(i == 6) {
            cell.change = function(select) {
            var c;
            if(select) {
            c = this.childNodes[0]; c.name = 'discount_p'; c.id = 'discount_p';
            }
            else {
            c = this.childNodes[0]; c.name = ''; c.id = '';
            }
            }
            cell.getData = function(data,noAlert) {
            var tmp = UserFormatNumberToNumber(this.firstChild.value,'%');
            if(tmp == -1) {
            ERROR = true;
            if(!noAlert)
            alert(MOD['LBL_FORMAT_NUMBER_ERROR']+' ('+this.firstChild.value+')');
            data.discount = 0;
            this.firstChild.style.color = 'red';
            } else {
            data.discount = tmp;
            this.firstChild.style.color = 'black';
            }
            }
            cell.setData = function(data) {
            if(data.discount) this.firstChild.value = NumberToUserFormatNumber(data.discount,'%'); else this.firstChild.value = NumberToUserFormatNumber(0,'%');
            }
            cell.onDeselect = function() {
            ERROR = false;
            var data = new Object();
            this.getData(data);
            if(!ERROR) {
            data.discount = data.discount;
            this.setData(data);
            }
            }
            //cell.selectNext = function() { var row = this.parentNode.selectNext(); row.select(); row.cells.item(0).select(); };
            var edit = '<input type="text" tabindex="1" class="inputs" style="text-align:right;" autocomplete="off" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,\'decimalNumber\');" value="'+NumberToUserFormatNumber(0,'%')+'">';
            cell.innerHTML = edit;
            }
            if(i == 7) {
            cell.change = function(select) {
            var c;
            if(select) {
            c = this.childNodes[0]; c.name = 'recipient_code_p'; c.id = 'recipient_code_p';
            }
            else {
            c = this.childNodes[0]; c.name = ''; c.id = '';
            }
            }
            cell.getData = function(data) {
            var cn = this.getElementsByTagName('input');
            data.recipient_code = cn[0].value;
            }
            cell.setData = function(data) {
            var cn = this.getElementsByTagName('input');
            if(data.recipient_code) cn[0].value = data.recipient_code;
            }
            cell.selectNext = function() {  var row = this.parentNode.selectNext(); row.select(); row.cells.item(0).select(); };
            var edit = '<input type="text" tabindex="1" class="inputs" style="text-align:right;" autocomplete="off" value="" onKeyDown="return this.parentNode.myTable.KeyPressed(event,this.parentNode,null,true);">';
            cell.innerHTML = edit;
            }*/
            /*
            if(i == 8) {
            //cell.select = function() {  };
            cell.getData = function(data) {
            var cn = this.getElementsByTagName('input');
            data.total = UserFormatNumberToNumber(cn[0].value);
            }
            cell.setData = function(data) {
            var cn = this.getElementsByTagName('input');
            if(data.total) cn[0].value = NumberToUserFormatNumber(data.total); else cn[0].value = NumberToUserFormatNumber(0);
            }
            var edit = document.createElement('input');
            edit.setAttribute('type','text');
            edit.setAttribute('value',NumberToUserFormatNumber(0));
            edit.setAttribute('readOnly','readonly');
            edit.className = 'inputs';        edit.style.textAlign = "right";
            cell.appendChild(edit);
            }
            */
            if (i == 5) {
                var img;
                //insert
                img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_INSERT_NEW_ROW']);
                img.setAttribute('src', 'modules/EcmQuotes/images/insertrow.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    this.parentNode.myTable.addRow(this.parentNode.parentNode.index + 1);
                };
                //delete
                cell.appendChild(img);
                cell.appendChild(document.createTextNode(" "));
                img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_DELETE_ROW']);
                img.setAttribute('src', 'modules/EcmQuotes/images/deleterow.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    this.parentNode.parentNode.deleteRow();
                };
                cell.appendChild(img);
                cell.appendChild(document.createElement('br'));
                //move up
                img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_MOVE_ROW_UP']);
                img.setAttribute('src', 'modules/EcmQuotes/images/moverowup.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    this.parentNode.parentNode.moveUp();
                };
                cell.appendChild(img);
                cell.appendChild(document.createTextNode(" "));
                //move down
                img = document.createElement('img');
                img.setAttribute('alt', MOD['LBL_MOVE_ROW_DOWN']);
                img.setAttribute('src', 'modules/EcmQuotes/images/moverowdown.gif');
                img.style.cursor = 'pointer';
                img.onclick = function() {
                    this.parentNode.parentNode.moveDown();
                }
                cell.appendChild(img);
            }
        }
        N.onSetCellData = function(row, cell, data) {
            if (cell.innerHTML == '') cell.innerHTML = '&nbsp;';
        }
        var pl = document.getElementById('position_list').value;
        if (pl && pl != '') {
            try {
                pl = eval(pl);
                for (x in pl) {
                    var pl_row = pl[x];
                    if (!pl[x].code || pl[x].code == '') {} else N.addRow().setData(pl_row);
                }
            } catch (err) {
                pl = null;
            };
        }
        if (N.rowCount() == 0) N.addRow();
        calculateTotal = function() {
            /*
            var vats = new Object();
            var subtotal = 0;
            var total = 0;
            //var cbm_total = 0;
            for(var i=0; i<N.rowCount(); i++) {
            var data = N.row(i).getData();
            if(OPT.to_is_vat_free == 0) {
            if(data.vat_id && data.name != '') {
            if(typeof(vats[data.vat_id]) != "object") { vats[data.vat_id] = new Object(); vats[data.vat_id]['vat'] = 0;}
            vats[data.vat_id]['vat'] += data.total;
            }
            }
            subtotal += data.total;
            //cbm_total += data.cbm;
            }
            total = subtotal;
            var rt = document.getElementById('result_table');
            for(var i=1; i<rt.rows.length-3; i++) { if(!vats[rt.rows.item(i).id]) { rt.deleteRow(i); --i; } else vats[rt.rows.item(i).id]['node'] = rt.rows.item(i); }
            for(var x in vats) {
            if(VAT[x]){
            vats[x]['vat'] = vats[x]['vat']*(parseFloat(VAT[x].value)/100);
            total += vats[x]['vat'];
            var txL = MOD['LBL_VAT']+' ('+VAT[x].name+')';
            var txF = NumberToUserFormatNumber(vats[x]['vat']);
            }
            if(vats[x]['node']) {
            vats[x]['node'].id = x;
            vats[x]['node'].cells.item(0).innerHTML = txL;
            vats[x]['node'].cells.item(1).innerHTML = "<input type='text' readonly='readonly' style='border:0px;font-weight:900;width:100%;text-align:right;' value='"+txF+"'>";
            } else {
            rt.insertRow(1);
            rt.rows.item(1).id = x;
            rt.rows.item(1).insertCell(0);
            rt.rows.item(1).cells.item(0).className = 'positionsLabel';
            rt.rows.item(1).cells.item(0).innerHTML = txL;
            rt.rows.item(1).insertCell(1);
            rt.rows.item(1).cells.item(1).className = 'positionsField';
            rt.rows.item(1).cells.item(1).innerHTML = "<input type='text' readonly='readonly' style='border:0px;font-weight:900;width:100%;text-align:right;' value='"+txF+"'>";
            }
            }
            var total2 = total;
            var discount;
            if((discount = CheckDiscount(true)) == -1) discount = 0;
            var discount2 = total2*discount/100;
            total = total2-discount2;
            discount2 = NumberToUserFormatNumber(discount2).toString();
            total2 = ((OPT['type'] == "correct")?'-':'')+NumberToUserFormatNumber(total2).toString();
            total = ((OPT['type'] == "correct")?'-':'')+NumberToUserFormatNumber(total).toString();
            document.getElementById('subtotal').value = NumberToUserFormatNumber(subtotal);
            if(document.getElementById('total_2')) document.getElementById('total_2').value = total2;
            rt.rows.item(rt.rows.length-2).cells.item(0).innerHTML = MOD['LBL_DISCOUNT']+' ('+NumberToUserFormatNumber(discount,'%')+')';
            document.getElementById('discount_2').value = discount2;
            document.getElementById('total').value = total;
            //document.getElementById('cbm_total').value = cbm_total;
            */
        }
        ItemListSave = function(json) {
            //if(CheckDiscount() == -1) { ERROR = true; return false; }
            //calculateTotal();
            var data = new Object();
            for (var i = 0; i < N.rowCount(); i++) {
                data[i.toString()] = N.row(i).getData();
            }
            return json ? JSON.stringifyNoSecurity(data) : data;
        }
        sqs_objects["code_p"] = {
            "method": "get_product_array",
            "modules": ["EcmProducts"],
            "field_list": ["date_entered", "code", "id", "encoded_unit_id", "vat_id", "encoded_category_id", "name", "selling_price", "currency_id"],
            "populate_list": ["code_p", "code_p", "id_p", "unit_id_p", "vat_id_p", "category_id_p", "name_p", "price_p", "currency_id_p"],
            "conditions": [{
                "name": "code",
                "op": "like_custom",
                "end": "%",
                "value": ""
            }],
            "limit": "30",
            "order": "code",
            "no_match_text": "No Match"
        };
        sqs_objects["name_p"] = {
            "method": "get_product_array",
            "modules": ["EcmProducts"],
            "field_list": ["date_entered", "name", "id", "encoded_unit_id", "vat_id", "encoded_category_id", "code", "selling_price", "currency_id"],
            "populate_list": ["name_p", "name_p", "id_p", "unit_id_p", "vat_id_p", "category_id_p", "code_p", "price_p", "currency_id_p"],
            "conditions": [{
                "name": "name",
                "op": "like_custom",
                "end": "%",
                "value": ""
            }],
            "limit": "30",
            "order": "name",
            "no_match_text": "No Match"
        };

        function generateNumber() {
            if (document.getElementById('template_id').value == '') {
                alert('There are no DocumentTemplates in data base!');
                return;
            }
            doRequest(
                'index.php',
                'to_pdf=1&generate=1&module=EcmQuotes&action=generateNumber&type=normal&template_id=' + document.getElementById('template_id').value + '&record=' + document.forms.EditView.record.value,
                function(result) {
                    var arr = eval(result)[0];
                    document.getElementById('number').value = arr.number;
                    document.getElementById('document_no').value = arr.document_no;
                },
                ''
            );
        };
        /*
        calculateTotal();
        if(OPT['new_number']) generateNumber();
        if(document.getElementById('template_id').value != '') document.getElementById('template_id').onchange();
        addEvent('template_id','change',generateNumber);
        addEvent(document.forms.EditView.status,'change',canConfirm);
        setPREVIEW = function() {
        if(CheckDiscount() != -1) {
        calculateTotal();
        sendFormPostToPdf();
        }
        }
        setITEMS = function() {
        if(CheckDiscount() != -1) {
        calculateTotal();
        SetTab('ITEMS');
        }
        }
        if(!OPT.user.access.send_email)
        setEMAIL = function() { alert(MOD['LBL_ACCESS_UNAVAIBLE_DELETE_EMAIL']); };
        else
        setEMAIL = function(noCheck) {
        if(CheckDiscount() != -1) { calculateTotal();
        OPT['setEmailTab'] = 0;
        var view = true;
        if(!noCheck) {
        var record = document.forms.EditView.record.value;
        if(record == '') {
        alert('Quote is not saved!');
        view = false;
        }
        else {
        if(confirm('Save quote changes?')) {
        OPT['setEmailTab'] = 1;
        view = false;
        SaveForm();
        }
        }
        }
        if(view) {
        SetTab('EMAIL');
        document.getElementById('emailTAB').innerHTML = "<iframe id=\'emailIFRAME\' style='border:none;width:100%;height:670px;' frameborder='no' src='index.php?module=EcmQuotes&action=Emails&to_pdf=1&bodyclass=tabForm&type=out&pTypeTo="+document.getElementById('parent_type').value+"&pIdTo="+document.getElementById('parent_id').value+"&pTypeFrom=Users&pIdFrom="+document.getElementById('assigned_user_id').value+"&quote_id="+document.forms.EditView.record.value+"&record="+document.forms.EditView.email_id.value+"'>Yours browser not accept iframes!</iframe>";
        }
        }
        }
        CHANGER.add('to_is_vat_free', 'checked', function(obj){
        obj.value = (obj.checked) ? 1 : 0;
        OPT['to_is_vat_free'] = obj.value;
        calculateTotal();
        },
        false
        );
        //CHANGER.add('parent_id','value',function(){alert('zmiana parent');},true);
        function setToAddrEmail(str) {
        if(str && str != '') str = eval(str); else str = '';
        if(typeof(str) == "object") str = str[0]; else str = '';
        if(document.getElementById('parent_type').value == 'Accounts') {
        //= document.getElementById('to_addrs_field'); if(tmp) tmp.value = (str=='')?'':(((str.name)?str.name:'')+' <'+((str.email1)?str.email1:'')+'>; ');
        tmp = document.getElementById('parent_address_street'); if(tmp) tmp.value = (str.billing_address_street)?str.billing_address_street:'';
        tmp = document.getElementById('parent_address_city'); if(tmp) tmp.value = (str.billing_address_city)?str.billing_address_city:'';
        tmp = document.getElementById('parent_address_postalcode'); if(tmp) tmp.value = (str.billing_address_postalcode)?str.billing_address_postalcode:'';
        tmp = document.getElementById('parent_address_country'); if(tmp) tmp.value = (str.billing_address_country)?str.billing_address_country:'';
        //        tmp = document.getElementById('to_nip'); if(tmp) tmp.value = (str.sic_code)?str.sic_code:'';
        tmp = document.getElementById('to_vatid'); if(tmp) tmp.value = (str.vatid)?str.vatid:'';
        tmp = document.getElementById('to_is_vat_free'); if(tmp) tmp.checked = (str.is_vat_free == 1)?true:false;
        document.getElementById('parent_name_copy').value = document.getElementById('parent_name').value;
        tmp = document.getElementById('ecmlanguage'); if(tmp && str.ecmlanguage) { if(tmp.value != str.ecmlanguage) { tmp.value = str.ecmlanguage; setTexts(); } }
        }
        }
        function ChangeAccessFunction(obj,type) {
        var objs = obj.getElementsByTagName('input');
        for(var i=0; i<objs.length; i++)
        if(objs[i].id != 'parent_name' && objs[i].id != 'parent_id' && objs[i].name != 'btn_parent_name' && objs[i].name != 'btn_clr_parent_name' && objs[i].name != 'btn_create_parent_name')
        objs[i].disabled = type;
        var objs = obj.getElementsByTagName('textarea');
        for(var i=0; i<objs.length; i++)
        objs[i].disabled = type;
        var objs = obj.getElementsByTagName('select');
        for(var i=0; i<objs.length; i++)
        if(objs[i].id != 'parent_type')
        objs[i].disabled = type;
        if(type == 'disabled')
        TabsMainBlock = true;
        else
        TabsMainBlock = false;
        }
        */
        //create Product
        productFL = new FormLoader();
        productFL.load('EcmQuotes', 'Parents', 'productFL');
        productFL.onResponseData = function(data) {
            data.price = data.selling_price;
            data.quantity = '1';
            N.selectedRow.setData(data);
            N.selectedRow.calculateTotal();
        };
        /*
        //create Contact
        contactFL = new FormLoader();
        contactFL.load('EcmQuotes','Contacts','contactFL');
        contactFL.onResponseData = function(data) {
        //	  hideSmartInputFloater(true);
        document.forms.EditView.contact_id.value = data['id'];
        document.forms.EditView.contact_name.value = data['name'];
        document.forms.EditView.parent_contact_name.value = data['name'];
        document.forms.EditView.parent_contact_title.value = data['title'];
        };
        contactFL.setEditDblClick(document.forms.EditView.contact_name);
        contactFL.onEditDblClick = function() {
        var ret =  "&fl_record="+document.forms.EditView.contact_id.value;
        if(document.forms.EditView.parent_type.value == "Accounts") ret += "&fl_account_id="+document.forms.EditView.parent_id.value+"&fl_account_name="+document.forms.EditView.parent_name.value;
        var ccc = document.forms.EditView.contact_name.value;
        var cc_pos = ccc.indexOf(" ");
        if(cc_pos != -1) {
        var cc_ = '&fl_first_name='+ccc.substr(0,cc_pos)+'&fl_last_name='+ccc.substr(cc_pos+1,ccc.length);
        ret += cc_;
        }
        return ret;
        }
        contactFL.onButtonClick = function() {
        var ret =  "&fl_record="+document.forms.EditView.contact_id.value;
        if(document.forms.EditView.parent_type.value == "Accounts") ret += "&fl_account_id="+document.forms.EditView.parent_id.value+"&fl_account_name="+document.forms.EditView.parent_name.value;
        var ccc = document.forms.EditView.contact_name.value;
        var cc_pos = ccc.indexOf(" ");
        if(cc_pos != -1) {
        var cc_ = '&fl_first_name='+ccc.substr(0,cc_pos)+'&fl_last_name='+ccc.substr(cc_pos+1,ccc.length);
        ret += cc_;
        }
        return ret;
        }
        //document.forms.EditView.contact_id.parentNode.appendChild(contactFL.createButton());
        */
        /*
        function ParentIdChange(obj) {
        var list = '';
        if(document.getElementById('parent_type').value == 'Accounts') {
        list = 'gdModule=Accounts&gdData=name|email1|billing_address_street|billing_address_city|billing_address_postalcode|billing_address_country|sic_code|vatid|is_vat_free|ecmlanguage';
        }
        if(document.getElementById('parent_type').value == 'Contacts') {
        list = 'gdModule=Contacts&gdData=full_name|email1|primary_address_street|primary_address_city|primary_address_postalcode|primary_address_country';
        }
        if(obj.value == '') {
        setToAddrEmail('');
        var block = document.getElementById('blockAllFields');
        if(block) {
        } else {
        var main = document.getElementById('main');
        ChangeAccessFunction(main,'disabled');
        }
        } else {
        doRequest('index.php','module=EcmQuotes&action=getData&'+list+'&gdId='+obj.value+'&to_pdf=1',setToAddrEmail);
        var main = document.getElementById('main');
        ChangeAccessFunction(main,'');
        }
        }
        CHANGER.add('parent_id', 'value', ParentIdChange, OPT['check_parent_id']);
        CHANGER.add('contact_id', 'value', function(obj) {
        if(obj.value == '') {
        document.forms.EditView.parent_contact_name.value = '';
        document.forms.EditView.parent_contact_title.value = '';
        } else {
        doRequest('index.php','module=EcmQuotes&action=getData&gdModule=Contacts&gdData=full_name|title&gdId='+obj.value+'&to_pdf=1', function(str) {
        if(str && str != '') str = eval(str); else str = '';
        if(typeof(str) == "object") str = str[0]; else str = '';
        document.forms.EditView.parent_contact_name.value = str.full_name;
        document.forms.EditView.parent_contact_title.value = str.title;
        });
        }
        },false);
        if(document.getElementById('parent_id').value == '') ParentIdChange(document.getElementById('parent_id'));
        var setTexts = function(no_confirm_question) {
        var resp = true;
        if(!no_confirm_question)
        resp = confirm(MOD.LBL_ALERT_ECMLANGUAGE_CHANGE);
        if(resp) {
        var pt = document.getElementById('parent_type');
        var el = document.getElementById('ecmlanguage');
        document.forms.EditView.header_text.value = OPT['ecmlanguage'][el.value]['texts'][pt.value]['header_text'];
        document.forms.EditView.footer_text.value = OPT['ecmlanguage'][el.value]['texts'][pt.value]['footer_text'];
        document.forms.EditView.ads_text.value = OPT['ecmlanguage'][el.value]['texts'][pt.value]['ads_text'];
        }
        }
        YAHOO.util.Event.addListener(document.getElementById('ecmlanguage'),'change',function(){setTexts();});
        */
        /*
        CHANGER.add('parent_type', 'value', function(obj) {
        setTexts();
        },
        true
        );
        CHANGER.add('ecmlanguage', 'value', function(obj) {
        setTexts();
        },
        true
        );
        */
        /*
        //quick view
        var main = document.getElementById('main');
        if(main) {
        var h2 = main.getElementsByTagName('h2')[0];
        if(h2) {
        h2.style.display = 'inline';
        var span = document.createElement('span');
        span.innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="document_no_h"></span> - <span id="parent_name_h"></span> - <span id="parent_contact_name_h"></span> - <span id="parent_address_street_h"></span>&nbsp; &nbsp;<span id="parent_address_postalcode_h"></span>&nbsp;<span id="parent_address_city_h"></span>&nbsp; &nbsp;<span id="parent_address_country_h"></span> - <span id="total_h"></span>'
        h2.parentNode.appendChild(span);
        }
        }
        CHANGER.add('document_no','value',function(obj){document.getElementById('document_no_h').innerHTML = obj.value;},false);
        CHANGER.add('parent_name','value',function(obj){
        document.getElementById('parent_name_h').innerHTML = obj.value;
        if(document.getElementById('parent_name').value!=""){
        mintajaxget("index.php?to_pdf=1&module=EcmQuotes&action=setPopupValues&account_id="+document.getElementById('parent_id').value+"&account_name="+document.getElementById('parent_name').value,"tst");
        }
        },false);
        CHANGER.add('parent_contact_name','value',function(obj){document.getElementById('parent_contact_name_h').innerHTML = obj.value;},false);
        CHANGER.add('parent_address_street','value',function(obj){document.getElementById('parent_address_street_h').innerHTML = obj.value;},false);
        CHANGER.add('parent_address_postalcode','value',function(obj){document.getElementById('parent_address_postalcode_h').innerHTML = obj.value;},false);
        CHANGER.add('parent_address_city','value',function(obj){document.getElementById('parent_address_city_h').innerHTML = obj.value;},false);
        CHANGER.add('parent_address_country','value',function(obj){document.getElementById('parent_address_country_h').innerHTML = obj.value;},false);
        CHANGER.add('total','value',function(obj){document.getElementById('total_h').innerHTML = obj.value;},false);
        CHANGER.add('parent_name', 'value', function() {
        mintajaxget('index.php?to_pdf=1&module=EcmPriceBooks&action=getPriceBooks&pricebook_id='+document.getElementById('pb_id').value+'&account_id='+document.getElementById('parent_id').value,'pbs');
        },
        false
        );
        */
        /*
        CHANGER.add('pricebook_id', 'value', function() {
        mintajaxget('index.php?to_pdf=1&module=EcmPriceBooks&action=getPriceBooks&pricebook_id='+document.getElementById('pricebook_id').value+'&account_id='+document.getElementById('parent_id').value,'pbs');
        },
        false
        );*/
        CHANGER.startTimer();
        /*
        //create Parent
        parentFL = new FormLoader();
        parentFL.load('EcmQuotes','Parents','parentFL');
        parentFL.onResponseData = function(data) {
        document.forms.EditView.parent_id.value = data['id'];
        document.forms.EditView.parent_name.value = data['name'];
        ParentIdChange(document.forms.EditView.parent_id);
        };
        parentFL.setEditDblClick(document.forms.EditView.parent_name);
        parentFL.onEditDblClick = function() { parentFL.createModule=document.forms.EditView.parent_type.value; return "&fl_record="+document.forms.EditView.parent_id.value; }
        parentFL.onButtonClick = function() { parentFL.createModule=document.forms.EditView.parent_type.value; return "&fl_name="+document.forms.EditView.parent_name.value; }
        parentFL.buttonName = 'create_parentFL';
        //document.forms.EditView.parent_id.parentNode.appendChild(parentFL.createButton());
        /*
        if(document.forms.EditView.record.value == '') setTexts(true);
        */
        AjaxSearchProducts = new AjaxSearch(document.getElementById('LBL_COMPONENTS'), true);
        //document.forms.EditView.parent_name.focus();
        /*
        SetTabIndexs();
        */
        document.PositionList = N;
        document.VAT1 = VAT;
        //if(document.forms.EditView.record.value=="")document.getElementById("show_recipient_code").checked="true";
        function checkcode(res) {}
    }
);
var p_check_form = check_form;
check_form_ = function(formname) {
    if (!p_check_form("EditView"))
    	return false;
    document.forms.EditView.position_list.value = ItemListSave(true);
    var ajax_url = "index.php?module=EcmProducts&to_pdf=1&action=checkcode";
    var res;
    var msg2;
    var msg;
    saveItems3();
    saveItems4();
    ajax({
        type: "POST",
        url: "index.php?module=EcmProducts&to_pdf=1&action=checkcode&code=" + document.getElementById('code').value + "&record=" + document.getElementsByName('record')[0].value,
        dataType: "json",
        async: false,
        onError: function(msg) {
            //jak error, to wypisujemy w firebugu
            console.warn(msg)
        },
        onSuccess: function(msg) {
            msg2 = msg;
        }
    });
    msg2 = JSON.parse(msg2);
    if (msg2.error != '0') {
        alert('Istnieje już produkt o podanym indeksie!');
        return false;
    } 
    //add mz 2015-04-17
    //zapis ajaxowo i obsługa popup
    var formData = new FormData($("#EditView")[0]);
    console.log(formData);
	$(".loading_panel").css("display", "block");
	$.ajax({
		type: "POST",
		url: "index.php?module=EcmProducts&action=Save",
		data: formData,
		success: function(data) {
			console.log(data);
			if (OPT.IamPopup) {
				newProdId.value = data;
				window.close();
			} else {
				window.location.replace("index.php?module=EcmProducts&action=DetailView&record="+data);
			}
		},
		processData : false,
		contentType : false,
	});	
    return false;    
}