function RECORD_DESCRIPTION_SWITCH (which, dir)
{
	var tr = document.getElementById("desc_tr_" + which);
	var td = document.getElementById("desc_td_" + which);
	var img_up = document.getElementById("desc_img_up_" + which);
	var img_down = document.getElementById("desc_img_down_" + which);

	if (dir)
	{
		tr.style.display="";
		td.style.visibility = "visible";

		img_down.style.display = "none";
		img_up.style.display = "inline";
	}	
	else
	{
		tr.style.display="none";
		td.style.visibility = "hidden";
		
		img_up.style.display = "none";
		img_down.style.display = "inline";
	}
		
}

var PictureAlt = "";
var DescriptionShowAlt = "";
var DescriptionHideAlt = "";
var ActionAlt = "";
var NewItemAlt = "";
var AddItemsAlt = "";

function RECORD_init ()
{
	PictureAlt = TRANSLATION_getValue ("picture_alt");
	DescriptionShowAlt = TRANSLATION_getValue ("description_show_alt");
	DescriptionHideAlt = TRANSLATION_getValue ("description_hide_alt");
	ActionAlt = TRANSLATION_getValue ("action_alt");
	NewItemAlt = TRANSLATION_getValue ("new_item_alt");
	AddItemsAlt = TRANSLATION_getValue ("add_items_alt");
}

function RECORD_createHeaderColumn (arg1, arg2)
{
    var title = TRANSLATION_getValue (arg1 + "_title");
	var output = "";
	output += "<th class=RECORD_TABLE_HEADER>";
	output += "<table width=100%>";
		
	output += "<th class=RECORD_TABLE_HEADER>";
	output += "<a href=\"javascript:onClick_sort('" + arg2 + "')\" class=RECORD_SortLink title='" + title + "'>";
	//alert(arg1);
	output += TRANSLATION_getValue (arg1);
	output += "</a></th>";
				
	output += createSortTo (arg2);
	output += "</table>";
		
	output += "</th>";
	
	return output;
}

function RECORD_generateHeaderColumn (arg1, arg2)
{	
	document.write (RECORD_createHeaderColumn(arg1, arg2));		
}

function RECORD_getListIndexAt(selected, currencySuffix)
{
    var recordListNode = document.getElementById("recordList");	
    var recordSortValue, recordSortIndex = RECORD_getSortIndex();
		
	switch (group_sort)
	{
	    case "NAME": recordSortValue = selected.Name; break;
	    case "CODE": recordSortValue = selected.Code; break;
	    case "PRICE": 
	    case "PRICE_WITH_VAT":
	    	    recordSortValue = selected.Price; break;
	}
	
	recordSortValue = isNaN(Number(recordSortValue)) ? recordSortValue.toLowerCase() : Number(recordSortValue);	
	
	var insertAt;
	for (insertAt = 1; insertAt < recordListNode.rows.length; insertAt++)
	{
	    var listRow = recordListNode.rows.item(insertAt);
	    var cell = listRow.cells.item(recordSortIndex);
	    
	    if (cell != null)
	    {
	        var innerValue = cell.innerHTML;
	        innerValue = (group_sort == "PRICE" || group_sort == "PRICE_WITH_VAT") ? 
	            innerValue.substring(0, innerValue.length - currencySuffix.length) : 
	            innerValue;
	            
	        var numericValue = Number(innerValue);
	        var listRowValue = isNaN (numericValue) ? innerValue.toLowerCase() : numericValue;
	        var compare = listRowValue > recordSortValue;
	        
	        if ( (group_sort_dir == "ASC" && compare)   ||
	             (group_sort_dir == "DESC" && !compare)  )	
	            break;	    		    
	    }
	}
	
	return insertAt;    
}

function onClick_bAdd (offset, id)
{
	formname = "input_"+id;
	var re = new RegExp (',', 'gi') ;
	var newstr = document.getElementById(formname).value.replace(re, '.') ;
	var count=Number (newstr);
	var additionalData = document.getElementById("input_data_" + id);
	var additional = additionalData == null ? "" : additionalData.value;

	if (count==null || count <= 0 || count > 100 || isNaN (count))
	{
		alert (TRANSLATION_getValue ("bad_item_count"));
	}
	else
	{
		var showAdditional = CONFIG_getValue ("cbAdditionalOrderShow") == "True";
		var showAdditionalAsColumn = CONFIG_getValue ("cbAdditionalOrderShowAsColumn") == "True";
		if (showAdditional && !showAdditionalAsColumn)
			additional = prompt (CONFIG_getValue ("eAdditionalOrderColumnName"), "");
			
		if (additional == null) additional = "";
	
		if (Basket_contains (id))
		{
			cnt=parent.Basket[Basket_getID(id)].Count;
			ret_val=confirm (TRANSLATION_getValue ("item_exists_1") + " " + cnt + TRANSLATION_getValue ("item_exists_2"));
			
			if (ret_val)
			{
				var prevcount = parent.Basket[Basket_getID(id)].Count;
				var prevadd = parent.Basket[Basket_getID(id)].AdditionalInfo;
				
				parent.Basket[Basket_getID(id)].Count+=count;
				
				if (prevadd != additional)
				{	
					if (prevadd.length > 0)
						parent.Basket[Basket_getID(id)].AdditionalInfo = prevcount + "x " + prevadd;
					if (additional.length > 0)
					{
						parent.Basket[Basket_getID(id)].AdditionalInfo += parent.Basket[Basket_getID(id)].AdditionalInfo.length > 0 ? ", " : "";
						parent.Basket[Basket_getID(id)].AdditionalInfo += count + "x " + additional;
					}
				}
				
				parent.top_bar.location.reload ();
			}
		}
		else
		{			
			newBasket = new Basket_add (id, count, additional, RECORD(offset));
			parent.Basket[parent.Basket.length]=newBasket;			
			parent.top_bar.location.reload ();
		}
	}
}

function createSortTo (arg)
{
	var output = "";

	if (group_sort == arg)
	{
		output += "<th class=RECORD_TABLE_HEADER width=16>";
		output += "<img src='./images/sort_" + (group_sort_dir == "ASC" ? "down" : "up") + ".gif' />";
		output += "</th>";
	}
	
	return output;
}

function compareSortTo (arg)
{
	document.write (createSortTo(arg));	
}

function onClick_sort (by)
{
	if (group_sort == by) // Change direction
		setCookie ("GROUP_sortDir", group_sort_dir == "ASC" ? "DESC" : "ASC");
	else
	{
		setCookie ("GROUP_sortBy", by);
		setCookie ("GROUP_sortDir", "ASC");
	}
	
	OnClickSortHook ();
	
	document.fSubmit.submit ();
}

function CreateCell(trNode, align, cssClass)
{
	var cell = trNode.insertCell(-1);
	
	cell.setAttribute ("align", align);
	cell.setAttribute ("className", cssClass);
	cell.setAttribute ("class", cssClass);
	
	return cell;
}

function PaintRows ()
{
    var recordListNode = document.getElementById("recordList");		
	var insertAt;		
	
	var realOffset = 0;
	
	if (recordListNode != null)
	{	
        for (insertAt = 1; insertAt < recordListNode.rows.length; insertAt++)
        {
            var listRow = recordListNode.rows.item(insertAt);	     
            
            if (listRow.id == "recordLine")
            {	 
                realOffset++;
                     	     
                if (realOffset % 2 == 0)
                {   
                    for (var cellIndex=0; cellIndex < listRow.cells.length; cellIndex++)
                    {
                        var cell = listRow.cells.item(cellIndex);
        	            
                        if (cell.getAttribute("className") == "RECORD_OtherAltTD")
                        {
                            cell.setAttribute ("className", "RECORD_OtherTD");
                            cell.setAttribute ("class", "RECORD_OtherTD");
                        }
                    }
                }	            
            }	       	        
        }
    }
}

function CreateEmptyCell(trNode, width, align, cssClass)
{
	var cell = CreateCell (trNode, align, cssClass);
	
	cell.setAttribute("width", width);
	cell.innerHTML = "&nbsp;";
	
	return cell;
}
