function trim(str) 
{
    //return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    return str.replace(/^\s+|\s+$/g,"");
}

var eg = { 'matrix':[],'properties':[],'belaegning':{} };
eg.parseUsage = function(ua)
{
    var u = {};
    ua = ua.split(',');
    for(var i=0;i < ua.length; i++)
    {
        var item = ua[i].split(':');
        u[ua[i]] = {'area':item[0],'level':item[1]};
    }
    return u;
}
eg.parseThickness = function(t)
{
    t = t.replace('mm');
    t = t.replace(',','.');
    t = parseFloat(t);
    if(isNaN(t)) t = 0;
    return t;
}
eg.parseProperties = function(prop)
{
    var p = {
               'belaegning':'0',
               'properties':[]
            };
    prop = prop.split('|');
    if(prop.length == 0) return p;
    p['belaegning'] = prop[0];

    if(prop.length == 1) return p;

    var pp = prop[1].split(',')
    for(var i=0;i< pp.length;i++)
    {
        var item = pp[i].split(':');
        p['properties'].push({'id':item[0],'name':item[1],'value':item[2]});
    }

    return p;
}
eg.load = function()
{
    return;
    eg.load_thickness();
    eg.load_properties();
    eg.render();
}
eg.load_properties = function()
{
    var p = {};
    var pp = [];
    var names = [];
    for(var i=0;i < eg.properties.length; i++)
    {
        var prop = eg.properties[i];
        if(!p[prop.name])
        {
            var idx = pp.length;
            p[prop.name] = idx;
            prop.parents = [];
            prop.ids = [];
            pp.push(prop);
            names.push(prop.name);
        }

        pp[p[prop.name]].ids.push(prop.id);
        pp[p[prop.name]].parents.push(prop.parent_id);
    }

    names.sort();
    eg.properties_grouped = [];

    var t = document.getElementById('egenskaber');
    for(var i=0;i < names.length; i++)
    {
        var idx = p[names[i]];
        var prop = pp[idx]; 
        t.options[t.options.length] = new Option(prop.name,prop.ids.join('_'));
        eg.properties_grouped.push(prop);
    }
}
eg.load_thickness = function()
{
    var tk = [];
    var tkk = {};
    for(var i=0;i< eg.matrix.length;i++)
    {
        if(!eg.matrix[i].products) continue;
        var products = eg.matrix[i]['products'];
        for(var j=0;j < products.length;j++)
        {
            if(!products[j].thickness || tkk[products[j].thickness]) continue;
            tkk[products[j].thickness] = products[j].thickness;
            tk.push(products[j].thickness);
        }
    }
    
    tk.sort();
    var t = document.getElementById('thickness');
    t.options[0] = new Option('Alle',0);
    for(var i=0;i< tk.length;i++)
    {
        t.options[t.options.length] = new Option(tk[i],tk[i]);
    }
}
eg.render = function()
{
    var t = '<table width="100%" cellpadding="1" cellspacing="1" border="0">';
    t+='<tr>';
    t+='<td rowspan="4" colspan="2">&nbsp;</td>';
    t+='<td colspan="3">Bolig</td>';
    t+='<td colspan="4">Erhverv</td>';
    t+='<td colspan="3">Industri</td>';
    t+='<td align="center" colspan="'+ eg.properties_grouped.length +'">Egenskaber</td>';
    t+='</tr>';

    t+='<tr>';
    t+='<td colspan="3"><img src="/media/13467/bolig.gif"></td>';
    t+='<td colspan="4"><img src="/media/13462/industri.gif"></td>';
    t+='<td colspan="3"><img src="/media/13472/erhverv.gif"></td>';

    //properties
    for(var i=0;i < eg.properties_grouped.length;i++)
    {
        t+='<td rowspan="3" valign="top">';
        if(eg.properties_grouped[i].icon.length > 0)
        {
            t+='<img width="25" src="'+ eg.properties_grouped[i].icon +'" ';
            t+=' title="'+ eg.properties_grouped[i].name +'" alt="'+ eg.properties_grouped[i].name +'"/>';
        }
        else
        {
            t+='&nbsp;';
        }
        t+='</td>';
    }

    t+='<tr>';
    t+='<td>21</td>';
    t+='<td>22</td>';
    t+='<td>23</td>';

    t+='<td>31</td>';
    t+='<td>32</td>';
    t+='<td>33</td>';
    t+='<td>34</td>';

    t+='<td>41</td>';
    t+='<td>42</td>';
    t+='<td>43</td>';

    //properties
    /*
    for(var i=0;i < eg.properties_grouped.length;i++)
    {
        t+='<td rowspan="2">'+ eg.properties_grouped[i].name +'</td>';
    }
    */

    t+='</tr>';

    t+='<tr>';
    t+='<td><img src="/media/moderat.gif"></td>';
    t+='<td><img src="/media/normal.gif"></td>';
    t+='<td><img src="/media/hoj.gif"/></td>';

    t+='<td><img src="/media/moderat.gif"></td>';
    t+='<td><img src="/media/normal.gif"></td>';
    t+='<td><img src="/media/hoj.gif"/></td>';
    t+='<td><img src="/media/meget_hoj.gif"/></td>';

    t+='<td><img src="/media/moderat.gif"></td>';
    t+='<td><img src="/media/normal.gif"></td>';
    t+='<td><img src="/media/hoj.gif"/></td>';
    t+='</tr>';

    var usages = ['Bolig:Moderat','Bolig:Normal','Bolig:Høj',
                  'Erhverv:Moderat','Erhverv:Normal','Erhverv:Høj','Erhverv:Meget høj',
                  'Industri:Moderat','Industri:Normal','Industri:Høj'];
    
    var products = eg.group_by_type();
    for(var i=0;i < products.length;i++)
    {
        t+='<tr>';
        t+='<td class="belaegning">'+ products[i].name+'</td>';
        t+='<td class="belaegning">Tykkelse</td>';
        t+='<td class="belaegning" colspan="10">&nbsp;</td>';
        t+='<td class="belaegning" colspan="'+ eg.properties_grouped.length +'">&nbsp;</td>';
        t+='</tr>';

        for(var j=0;j < products[i].products.length;j++)
        {
            t+='<tr>';
            t+='<td>'+ products[i].products[j].name +'</td>';
            t+='<td>'+ products[i].products[j].thickness +'</td>';

            t+='<td colspan="10">&nbsp;</td>';
            t+='<td colspan="'+ eg.properties_grouped.length +'">&nbsp;</td>';
            t+='</tr>';
            continue;

            //område
            var omraade =  products[i].products[j].usage_area;
            for(var k=0;k < usages.length;k++)
            {
                if(omraade[usages[k]])
                {
                    t+='<td class="selected">';
                }
                else
                {
                    t+='<td>';
                }
                t+='&nbsp;</td>';
            }


            //egenskaber
            var egenskaber =  products[i].products[j].properties.properties;
            for(var k=0;k < eg.properties_grouped.length;k++)
            {
                var prop_list =','+ eg.properties_grouped[k].ids.join(',') +',';

                t+='<td nowrap="nowrap">';

                for(var m=0;m < egenskaber.length;m++)
                {
                    var prop_id = ','+ egenskaber[m].id +',';
                    if(prop_list.indexOf(prop_id) >= 0)
                    {
                        var v = egenskaber[m].value
                        v = v.replace(/^\s+|\s+$/g, '') ;
                        v = v.replace('<','&lt;');
                        v = v.replace('>','&gt;');
                        t+= v;
                    }
                    else
                    {
                        t+='&nbsp;';
                    }
                }
                    
                t+='</td>';
            }

            t+='</tr>';
        }
    }


    t+='</table>';

    $('#placeholder').html(t);
}


eg.group_by_type = function()
{
    var groups = [];
    var group = {};

    for(var i=0;i< eg.matrix.length;i++)
    {
        if(!eg.matrix[i].products) continue;
        var products = eg.matrix[i]['products'];
        for(var j=0;j < products.length;j++)
        {
            if(!products[j].properties) continue;
            if(!products[j].properties.belaegning ||products[j].properties.belaegning == '0') continue;

            var belaegning_id = products[j].properties.belaegning;
            if(belaegning_id == 'undefined') continue;

            if(!group[belaegning_id]) 
            {
                var idx = groups.length;
                groups[idx] = {'id':belaegning_id,'name':eg.belaegning[belaegning_id],'products':[]};
                group[belaegning_id] = idx;
            }
            
            groups[group[belaegning_id]].products.push(products[j]);
        }
    }
    return groups;
}


$(document).ready(
    function()
    {
        $('#filter_toggler').click(function()
        {
            if($('#config').css('display') =='none')
            {
                $('#config').slideDown();
                $('#filter_toggler').css('background-image','url(/media/upArrow.jpg)');
            }
            else
            {
                $('#filter_toggler').css('background-image','url(/media/downArrow.jpg)');
                $('#config').slideUp();
            }
        });
        eg.load();
        $('#waiting').hide();
    }
);




