function list_select (form, _var, selected)
{
    var form_els = form.elements;
    for(var i=0; i < form_els.length; i++) {
    if (form_els[i].type == 'checkbox' && form_els[i].name.indexOf('list') != -1 && form_els[i].name.indexOf(_var) != -1) {
            form_els[i].checked = selected;
        }
    }
}

function list_submit(action)
{
    var form_obj = document.getElementById("list");
    form_obj.elements["action"].value = action
    form_obj.submit();
}

document.onkeydown = navigate_ctrl_arrows;
function navigate_ctrl_arrows (event)
{
	if (!document.getElementById) return;

	if (window.event) event = window.event;

	if (event.ctrlKey)
	{
		var link = null;
    	switch (event.keyCode ? event.keyCode : event.which ? event.which : null)
    	{
    		case 0x25:
    			link = document.getElementById('prev_page_link');
    			break;
    		case 0x27:
    			link = document.getElementById('next_page_link');
    			break;
    	}
	    if (link && link.href) document.location = link.href;
	}
}

var tr_counter = 1;
function addFile(f_obj) {

    var temp_array = f_obj.id.split("_");

    var curr_tr_counter = temp_array[1];

    document.getElementById("img_" + curr_tr_counter).src = f_obj.value;

    if (curr_tr_counter < (tr_counter-1)){
        return true;
    }
    var tr = document.createElement('tr');
    tr.setAttribute('id', 'tr_' + tr_counter);

    var td_img = document.createElement('td');
    td_img.innerHTML = '<img src="themes/default/media/i/no_foto.gif" id="' + 'img_' + tr_counter + '" border="0" width="60">';
    tr.appendChild(td_img);

    var td_file = document.createElement('td');
    td_file.innerHTML = '<input type="file" name="product_images[]" id="' + 'file_' + tr_counter + '" onchange="addFile(this)">&nbsp;&nbsp;<span onclick="removeFile(\'tr_' + tr_counter + '\')" style="cursor:pointer;">Remove</span>';
    tr.appendChild(td_file);

    document.getElementById('files_container').appendChild(tr);
    tr_counter++;
}
function removeFile(aId) {
    var obj = document.getElementById(aId);
    obj.parentNode.removeChild(obj);
}

function set_card_nominal (select_obj)
{
    var form_obj = select_obj.form;
    var value_parts = select_obj.value.split("-");
    var nominal_id = value_parts[0];
    var nominal = value_parts[1];
    form_obj.elements["card[nominal]"].value = nominal;
    form_obj.elements["card[nominal_id]"].value = nominal_id;

    var old_width = document.getElementById("card_img").width
    document.getElementById("card_img").src = value_parts[2] == "" ? "/themes/default/media/i/no_img.gif" : document.getElementById("card_img").src = "/upload/" + value_parts[2]
    document.getElementById("card_img").width = old_width
    form_obj.elements["card[img]"].value = value_parts[2]
}

function transfer_card(select_id)
{
    select_obj = document.getElementById(select_id);
    form_obj = select_obj.form;
    if(select_obj.value == 0) {
        alert("No reciever");
        select_obj.focus();
    } else {
        form_obj.elements['owner_id'].value = select_obj.value;
        form_obj.elements['action'].value = "transfer";
        form_obj.submit();
    }
    return false;
}

function sale_card()
{
    form_obj = document.getElementById("card_form");
    form_obj.elements['action'].value = "sale";
    form_obj.submit();
    return false;
}

function unsale_card()
{
    form_obj = document.getElementById("card_form");
    form_obj.elements['action'].value = "unsale";
    form_obj.submit();
    return false;
}

function return_card ()
{
    form_obj = document.getElementById("card_form");
    form_obj.elements['action'].value = "return";
    form_obj.submit();
    return false;
}



function add_list_serials(s_obj)
{
    var c = s_obj.value > 200 ? 200 : s_obj.value;
    var html = ""
    // style=\"width=30%\"
    for(var i=0; i < c; i++)
    {
        html+= "Serial " + (i+1) + "<input type=\"text\" name=\"serials[" + i + "]\"><br>"

    }
    document.getElementById("list_serials").innerHTML = html
}

function form_go_action (form_obj, action)
{
    form_obj.elements['action'].value = action;
    form_obj.submit();
}

function check_all_operator_cards(chx_obj)
{
    var form_obj = chx_obj.form
    var checked_value = chx_obj.value
    var deltas = new Array();
    for(var i = 0; i < form_obj.elements.length; i++)
    {
        if (form_obj.elements[i].type == "checkbox" && form_obj.elements[i].name.indexOf("cards_operation") != -1)
        {
            var chx_id = form_obj.elements[i].id
            var temp_array = chx_id.split("-")
            if (temp_array[0] == checked_value)
            {
                form_obj.elements[i].checked = chx_obj.checked;

                if (isNaN(deltas[temp_array[1]]))  {
                    deltas[temp_array[1]]  =0;
                }
                deltas[temp_array[1]] += (chx_obj.checked ? 1 : -1);
            }
        }else if (form_obj.elements[i].type == "checkbox" && form_obj.elements[i].name.indexOf("nominals_for_sale") != -1)
        {

            var chx_id = form_obj.elements[i].id
            var temp_array = chx_id.split("-")
            if (temp_array[0] == checked_value)
            {
                form_obj.elements[i].checked = chx_obj.checked;
            }

        }
    }

    // set td backgrounds
    var tds = document.getElementsByTagName("td");
    for (i = 0; i < tds.length; i++) {
        if (tds[i].id.indexOf("td_" + checked_value) != -1) {
            tds[i].style.background = chx_obj.checked ? "#FFCC99" : "#FFFFFF";
        }
    }

    // change total count by operator and nominal
    for(nominal_id in deltas) {
         change_total_checked (checked_value, nominal_id, deltas[nominal_id]);
    }



}

function check_all_nominal_cards(chx_obj)
{
    var form_obj = chx_obj.form
    var checked_value = chx_obj.value
    var delta = 0;
    for(var i = 0; i < form_obj.elements.length; i++)
    {
        if (form_obj.elements[i].type == "checkbox" && form_obj.elements[i].name.indexOf("cards_operation") != -1)
        {
            var chx_id = form_obj.elements[i].id
            var temp_array = chx_id.split("-")
            if (temp_array[1] == checked_value)
            {
                var operator_id = temp_array[0];
                form_obj.elements[i].checked = chx_obj.checked;
                delta+= (chx_obj.checked ? 1 : -1);
            }
        }
    }
    // set td backgrounds
    var tds = document.getElementsByTagName("td");
    for (i = 0; i < tds.length; i++) {
        if (tds[i].id.indexOf("td_" + operator_id + "_" + checked_value) != -1) {
            tds[i].style.background = chx_obj.checked ? "#FFCC99" : "#FFFFFF";
        }
    }
    // change total count by operator and nominal
    change_total_checked (operator_id, checked_value, delta);
}
function change_card_row_status(chx_obj)
{
    var id = chx_obj.id;
    var temp_array = id.split("-")
    var value = chx_obj.value;
    var td = document.getElementById("td_" + id.replace("-", "_") + "_" + value + "_1");
    td.style.background = chx_obj.checked ? "#FFCC99" : "#FFFFFF";

    td = document.getElementById("td_" + id.replace("-", "_") + "_" + value + "_2");
    td.style.background = chx_obj.checked ? "#FFCC99" : "#FFFFFF";

    td = document.getElementById("td_" + id.replace("-", "_") + "_" + value + "_3");
    td.style.background = chx_obj.checked ? "#FFCC99" : "#FFFFFF";

    // change total count by operator and nominal
    var delta = chx_obj.checked ? 1 : -1;
    change_total_checked (temp_array[0], temp_array[1], delta);
}

function change_total_checked (operator_id, nominal_id, delta)
{
    var total_op = document.getElementById("total_" + operator_id);
    var total_nom = document.getElementById("total_" + operator_id + "_" + nominal_id);
    total_operator = parseInt(total_op.innerHTML) + delta;
    total_nominal = parseInt(total_nom.innerHTML) + delta;
    total_op.innerHTML = total_operator >= 0 ? total_operator : 0;
    total_nom.innerHTML = total_nominal >= 0 ? total_nominal : 0;
}

// for credit buy type
function change_buy_type(select_obj)
{
    if(select_obj.value == 4) {
        document.getElementById("date_credit").style.display = ""
    } else {
        document.getElementById("date_credit").style.display = "none"
    }
}

function control_not_editable_fields()
{
    form_obj = document.getElementById("card_form");
    for(var i = 0; i < form_obj.elements.length; i++)
    {
        if (form_obj.elements[i].id.indexOf("not_editable") != -1)
        {
            form_obj.elements[i].disabled = !form_obj.elements[i].disabled

        }
    }
}

function run_operation (form)
{
    var select_obj = document.getElementById("operation");
    var action_value = "";
    if(select_obj.value == "sale") {
        action_value = "sale_list_confirm";
    } else if(select_obj.value == "return") {
        action_value = "return_list_confirm";
    } else if(select_obj.value == "invoice") {
        action_value = "generate_invoice";
    } else {
        alert("What operation?");
        select_obj.focus();
        return false;
    }
    form.elements['action'].value = action_value;
    form.submit();
}


function CheckIsIE()
{
    if (navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER') {
        return true;
    }
    else {
        return false;
    }
}


function print_frame(frame_name)
{
    window.frames[frame_name].focus();
    window.frames[frame_name].print();
}

function set_day(obj, day) {
				 if(obj.className == 'cal_busy') {
				 	   obj.className='cal_free';
				     document.forms['calendar'].elements['days_list['+day+']'].value=0
				 } else if (obj.className == 'cal_free') {
				 	   obj.className='cal_busy';
				     document.forms['calendar'].elements['days_list['+day+']'].value=1
				 }
}
function check_invoice(s_obj) {
    for(var i=0; i < document.forms["list"].elements.length; i++) {
        if(document.forms["list"].elements[i].type == "checkbox") {
            document.forms["list"].elements[i].disabled = false
            document.forms["list"].elements[i].checked = (s_obj.value == "invoice");
        }
    }
    if (s_obj.value == "invoice") {
        document.getElementById("invoice_day").value++;
    }

}

function expand_list(img_obj, operator_id){

    var id = img_obj.id;
    var status = "none";
    if (id == "plus") {
        status = "";
        img_obj.src = img_obj.src.replace("plus", "minus");
        img_obj.id = "minus";
    } else {
        status = "none";
        img_obj.src = img_obj.src.replace("minus", "plus");
        img_obj.id = "plus";
    }

    var trs = document.getElementsByTagName("tr");
    for(var i=0; i < trs.length; i++) {
        if (trs[i].id == "hidden_data_" + operator_id) {
            trs[i].style.display = status;
        }
    }

}
var marked_row = new Array;
function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor)
{
    var theCells = null;

    // 1. Pointer and mark feature are disabled or the browser can't get the
    //    row -> exits
    if ((thePointerColor == '' && theMarkColor == '')
        || typeof(theRow.style) == 'undefined') {
        return false;
    }

    // 1.1 Sets the mouse pointer to pointer on mouseover and back to normal otherwise.
    if (theAction == "over" || theAction == "click") {
        theRow.style.cursor='pointer';
    } else {
        theRow.style.cursor='default';
    }

    // 2. Gets the current row and exits if the browser can't get it
    if (typeof(document.getElementsByTagName) != 'undefined') {
        theCells = theRow.getElementsByTagName('td');
    }
    else if (typeof(theRow.cells) != 'undefined') {
        theCells = theRow.cells;
    }
    else {
        return false;
    }

    // 3. Gets the current color...
    var rowCellsCnt  = theCells.length;
    var domDetect    = null;
    var currentColor = null;
    var newColor     = null;
    // 3.1 ... with DOM compatible browsers except Opera that does not return
    //         valid values with "getAttribute"
    if (typeof(window.opera) == 'undefined'
        && typeof(theCells[0].getAttribute) != 'undefined') {
        currentColor = theCells[0].getAttribute('bgcolor');
        domDetect    = true;
    }
    // 3.2 ... with other browsers
    else {
        currentColor = theCells[0].style.backgroundColor;
        domDetect    = false;
    } // end 3

    // 3.3 ... Opera changes colors set via HTML to rgb(r,g,b) format so fix it
    if (currentColor.indexOf("rgb") >= 0)
    {
        var rgbStr = currentColor.slice(currentColor.indexOf('(') + 1,
                                     currentColor.indexOf(')'));
        var rgbValues = rgbStr.split(",");
        currentColor = "#";
        var hexChars = "0123456789ABCDEF";
        for (var i = 0; i < 3; i++)
        {
            var v = rgbValues[i].valueOf();
            currentColor += hexChars.charAt(v/16) + hexChars.charAt(v%16);
        }
    }

    // 4. Defines the new color
    // 4.1 Current color is the default one

    if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
        if (theAction == 'over' && thePointerColor != '') {
            newColor              = thePointerColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // Garvin: deactivated onclick marking of the checkbox because it's also executed
            // when an action (like edit/delete) on a single item is performed. Then the checkbox
            // would get deactived, even though we need it activated. Maybe there is a way
            // to detect if the row was clicked, and not an item therein...
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.2 Current color is the pointer one
    else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
        if (theAction == 'out') {
            newColor              = theDefaultColor;
        }
        else if (theAction == 'click' && theMarkColor != '') {
            newColor              = theMarkColor;
            marked_row[theRowNum] = true;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = true;
        }
    }
    // 4.1.3 Current color is the marker one
    else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
        if (theAction == 'click') {
            newColor              = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
            marked_row[theRowNum] = (typeof(marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
            // document.getElementById('id_rows_to_delete' + theRowNum).checked = false;
        }
    } // end 4

    // 5. Sets the new color...
    if (newColor) {
        var c = null;
        // 5.1 ... with DOM compatible browsers except Opera
        if (domDetect) {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].setAttribute('bgcolor', newColor, 0);
            } // end for
        }
        // 5.2 ... with other browsers
        else {
            for (c = 0; c < rowCellsCnt; c++) {
                theCells[c].style.backgroundColor = newColor;
            }
        }
    } // end 5

    return true;
} // end of the 'setPointer()' function

function print_page(id, title)
{
    var wnd = window.open('/print.html','','width=800,height=600,scrollbars=yes,toolbar=yes,left=100,top=100,screenX=100,screenY=100');

    var content = "<head>\n";
        content+= "<title>" + title + "</title>\n";
        content+= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />\n";
        content+= "<link href=\"/themes/default/css/print.css\" rel=\"stylesheet\" type=\"text/css\">\n";
        content+= "</head>\n";
        content+= "<body>\n";
        content+= wnd.opener.document.getElementById(id).innerHTML;
        content+= "</body>";
    wnd.document.open();
    wnd.document.write(content);
    wnd.document.close();
    return false;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
