function ProductSelecter() {
    this.product = {};

    this.product["PROD58"] = {
        attributes:['PerforationContinuousRandomHoleDesign','SurfaceUntreated','InstallationNondemountable','Size1200x1875x12','Size1200x2500x12'],
        id:"47",
        title:" Stratopanel",
        url:"/Default.aspx?ID=252"
    };
        
    this.product["PROD60"] = {
        attributes:['PerforationOvalHolesTangent','SurfaceFoilcovered','InstallationWallLinings','Size450x2400x9'],
        id:"45",
        title:"Adit",
        url:"/Default.aspx?ID=250"
    };
        
    this.product["PROD37"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x600x12','Size625x625x12'],
        id:"12",
        title:"Belgravia",
        url:"/Default.aspx?ID=228"
    };
        
    this.product["PROD49"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationRegula','SurfaceFoilcovered','InstallationNondemountable','Size600x1200x12','Size600x1800x12','Size600x2400x12','SpecialImpactResistance'],
        id:"32",
        title:"Contrapanel",
        url:"/Default.aspx?ID=240"
    };
        
    this.product["PROD55"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationRegula','SurfaceFoilcovered','InstallationWallLinings','Size600x1200x12','Size600x1800x12','Size600x2400x12','SpecialImpactResistance'],
        id:"42",
        title:"Contrapanel",
        url:"/Default.aspx?ID=247"
    };
        
    this.product["PROD36"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x600x12','Size625x625x12'],
        id:"11",
        title:"Contur",
        url:"/Default.aspx?ID=230"
    };
        
    this.product["PROD44"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSelfsupporting','Size300x1200x9','SpecialAccessToInstallations'],
        id:"20",
        title:"Corridor 300",
        url:"/Default.aspx?ID=219"
    };
        
    this.product["PROD46"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfaceFoilcovered','InstallationDemountableSelfsupporting','Size300xLx12','SpecialExtraFireSafety','SpecialAccessToInstallations'],
        id:"22",
        title:"Corridor F30",
        url:"/Default.aspx?ID=221"
    };
        
    this.product["PROD45"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','InstallationDemountableSelfsupporting','Size600x1200x12','Size600x1500x12','Size600x1800x12','SpecialAccessToInstallations'],
        id:"21",
        title:"Corridor Swing",
        url:"/Default.aspx?ID=220"
    };
        
    this.product["PROD62"] = {
        attributes:['PerforationRegula','SurfaceUntreated','InstallationCurvedPanels','SizeCustomfit'],
        id:"60",
        title:"Curvex",
        url:"/Default.aspx?ID=256"
    };
        
    this.product["PROD50"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','Size600x600x12'],
        id:"33",
        title:"Danopanel",
        url:"/Default.aspx?ID=241"
    };
        
    this.product["PROD56"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','InstallationWallLinings','Size600x600x12'],
        id:"43",
        title:"Danopanel",
        url:"/Default.aspx?ID=248"
    };
        
    this.product["PROD43"] = {
        attributes:[''],
        id:"18",
        title:"Danopor",
        url:"/Default.aspx?ID=232"
    };
        
    this.product["PROD41"] = {
        attributes:['PerforationRegula','SurfaceFoilcovered','InstallationDemountableSuspended','Size600x600x6','Size600x1200x6','Size600x1200x9','Size625x625x9','Size600x600x9','SpecialExtraHygiene'],
        id:"16",
        title:"Danotile",
        url:"/Default.aspx?ID=231"
    };
        
    this.product["PROD47"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfaceUntreated','InstallationNondemountable','Size900x2700x12','Size1200x2400x12'],
        id:"30",
        title:"Designpanel",
        url:"/Default.aspx?ID=238"
    };
        
    this.product["PROD53"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfaceUntreated','InstallationWallLinings','Size900x2700x12','Size1200x2400x12'],
        id:"40",
        title:"Designpanel",
        url:"/Default.aspx?ID=245"
    };
        
    this.product["PROD59"] = {
        attributes:['SurfacePainted','InstallationWallLinings','Size600x600x12','SpecialSoundDiffusion'],
        id:"44",
        title:"Kinopanel",
        url:"/Default.aspx?ID=249"
    };
        
    this.product["PROD38"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x600x12'],
        id:"13",
        title:"Linear",
        url:"/Default.aspx?ID=234"
    };
        
    this.product["PROD39"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x1200x12','Size625x1250x12','Size600x600x12','Size625x625x12'],
        id:"14",
        title:"Markant",
        url:"/Default.aspx?ID=235"
    };
        
    this.product["PROD42"] = {
        attributes:['PerforationRegula','SurfaceFoilcovered','InstallationDemountableSuspended','Size600x600x9'],
        id:"17",
        title:"Medley",
        url:"/Default.aspx?ID=229"
    };
        
    this.product["PROD61"] = {
        attributes:['PerforationRegula','SurfaceUntreated','InstallationMitredPanels','SizeCustomfit'],
        id:"50",
        title:"Mitex",
        url:"/Default.aspx?ID=254"
    };
        
    this.product["PROD40"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size600x1200x9','Size600x1200x12','Size625x1250x12','Size600x600x9','Size600x600x12','Size625x625x12'],
        id:"15",
        title:"Plaza",
        url:"/Default.aspx?ID=236"
    };
        
    this.product["PROD51"] = {
        attributes:['PerforationContinuousRythmicHoleDesign','SurfaceUntreated','InstallationNondemountable','Size900x2700x12','Size1200x2400x12'],
        id:"34",
        title:"Solopanel",
        url:"/Default.aspx?ID=242"
    };
        
    this.product["PROD57"] = {
        attributes:['PerforationContinuousRythmicHoleDesign','SurfaceUntreated','InstallationNondemountable','Size900x2700x12','Size1200x2400x12'],
        id:"46",
        title:"Solopanel",
        url:"/Default.aspx?ID=251"
    };
        
    this.product["PROD52"] = {
        attributes:['PerforationContinuousRandomHoleDesign','SurfaceUntreated','InstallationNondemountable','Size1200x1875x12','Size1200x2500x12'],
        id:"35",
        title:"Stratopanel",
        url:"/Default.aspx?ID=243"
    };
        
    this.product["PROD48"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','PerforationRegula','SurfaceUntreated','InstallationNondemountable','Size300x1200x9','Size600x1200x12','Size625x1250x12','Size300x1200x12','Size400x600x9','Size600x600x12','Size600x2400x12','Size625x625x12'],
        id:"31",
        title:"Tectopanel",
        url:"/Default.aspx?ID=239"
    };
        
    this.product["PROD54"] = {
        attributes:['PerforationRoundHolesGlobe','PerforationLargeSquareHolesQuadril','PerforationSmallSquareHolesMicro','PerforationOvalHolesTangent','SurfaceUntreated','InstallationWallLinings','Size300x1200x9','Size600x1200x12','Size625x1250x12','Size300x1200x12','Size400x600x9','Size600x600x12','Size600x2400x12','Size625x625x12'],
        id:"41",
        title:"Tectopanel",
        url:"/Default.aspx?ID=246"
    };
        
    this.product["PROD35"] = {
        attributes:['PerforationOvalHolesTangent','PerforationRegula','SurfacePainted','InstallationDemountableSuspended','Size400x1200x12'],
        id:"10",
        title:"Vista",
        url:"/Default.aspx?ID=233"
    };
        
    this.curtains = {};
    
    this.curtains["Perforering"] = {
        options:{
            PerforationContinuousRandomHoleDesign:"Gennemgående tilfældige huller",
            PerforationOvalHolesTangent:"Ovale huller - Tangent",
            PerforationRoundHolesGlobe:"Runde huller - Globe ",
            PerforationLargeSquareHolesQuadril:"Store firkanter - Quadril",
            PerforationSmallSquareHolesMicro:"Små firkanter - Micro",
            PerforationRegula:"Glat - Regula",
            PerforationContinuousRythmicHoleDesign:"Gennemgående rytmiske huller"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Overflade"] = {
        options:{
            SurfaceUntreated:"Ubehandlet",
            SurfaceFoilcovered:"Foliebelagt",
            SurfacePainted:"Malet"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Installation"] = {
        options:{
            InstallationNondemountable:"Beklædningslofter",
            InstallationWallLinings:"Vægbeklædninger",
            InstallationDemountableSuspended:"Demonterbare T-skinnelofter",
            InstallationDemountableSelfsupporting:"Demonterbare selvbærende lofter",
            InstallationCurvedPanels:"Buede paneler",
            InstallationMitredPanels:"Foldepaneler"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Størrelse"] = {
        options:{
            Size1200x1875x12:"1200x1875x12",
            Size1200x2500x12:"1200x2500x12",
            Size450x2400x9:"450x2400x9",
            Size600x600x12:"600x600x12",
            Size625x625x12:"625x625x12",
            Size600x1200x12:"600x1200x12",
            Size600x1800x12:"600x1800x12",
            Size600x2400x12:"600x2400x12",
            Size300x1200x9:"300x1200x9",
            Size300xLx12:"300x lx12",
            Size600x1500x12:"600x1500x12",
            SizeCustomfit:"Customfit",
            Size600x600x6:"600x600x6",
            Size600x1200x6:"600x1200x6",
            Size600x1200x9:"600x1200x9",
            Size625x625x9:"625x625x9",
            Size600x600x9:"600x600x9",
            Size900x2700x12:"900x2700x12",
            Size1200x2400x12:"1200x2400x12",
            Size625x1250x12:"625x1250x12",
            Size300x1200x12:"300x1200x12",
            Size400x600x9:"400x600x9",
            Size400x1200x12:"400x1200x12"
        },
        element:document.createElement("select")
    };
        
    this.curtains["Special"] = {
        options:{
            SpecialImpactResistance:"Slagfasthed",
            SpecialAccessToInstallations:"Adgang til installationer",
            SpecialExtraFireSafety:"Ekstra brandsikkerhed",
            SpecialExtraHygiene:"Ekstra hygiejne",
            SpecialSoundDiffusion:"Lyddiffusion"
        },
        element:document.createElement("select")
    };
        
    this.content = document.getElementById('productselecter');
    this.content.innerHTML = "";


    this.header = document.createElement("div");
    this.header.innerHTML = "Produktvælger";
	this.header.className = 'productSelector_Header';
    this.content.appendChild(this.header);

    this.body = document.createElement("div");
	this.body.className = 'productSelector_Body';
    this.content.appendChild(this.body);

    for ( var c in this.curtains ) {

        var row = document.createElement("div");
        var label = document.createElement("label");
            label.innerHTML = c;
            label.setAttribute("FOR","id" + c);
			label.className = 'productSelector_Label';
        row.appendChild(label)
        row.appendChild(this.curtains[c]["element"]);
        this.curtains[c]["element"].style.width = "200px";
        this.body.appendChild(row);


        corbiz.addEventHandler(this.curtains[c]["element"],"change",this.update.bind(this,this.curtains[c],this.curtains[c]["element"]));
        this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option('Vælg',0);

        for ( var o in this.curtains[c]["options"] ) {
            this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option(this.curtains[c]["options"][o],o);
        }//for

    }//for

    this.result = document.createElement("div");
	this.result.className = 'productSelector_Result';
    this.content.appendChild(this.result);

    this.reset = document.createElement("button");
    this.reset.appendChild(document.createTextNode("Nulstil"));
    var row = document.createElement('div');
    row.appendChild(this.reset);
    row.style.marginTop = '15px';
    this.body.appendChild(row);
    corbiz.addEventHandler(this.reset,"mouseup", function () {
        var ps = new ProductSelecter();
    });

}//ProductSelecter


ProductSelecter.prototype.update = function(curtain, element) {

    //lock selection:
    var option = new Option(curtain["options"][element.options[element.selectedIndex].value],element.options[element.selectedIndex].value);
    curtain["element"].options.length = 0;
    curtain["element"].options[0] = option;

    //get all selected attributes
    var selected = [];
    for ( var c in this.curtains ) {
        if ( this.curtains[c].element.options[this.curtains[c].element.selectedIndex].value != "0" ) {
            selected[selected.length] = this.curtains[c].element[this.curtains[c].element.selectedIndex].value;
        }//if
    }//for

    var products = [];
    //get all products matching selected attributes
    for ( var p in this.product ) {
        var addthis = true;
        for ( var c = 0; c < selected.length; c++ ) {
            if ( !this.product[p].attributes.contains(selected[c]) ) addthis = false;
        }//for

        if ( addthis ) {    
            products[products.length] = this.product[p];
        }//if

    }//for

    var attributes = [];
    for ( var c = 0; c < products.length; c++ ) {
        for ( var a = 0; a < products[c].attributes.length; a++ ) {
            if ( !attributes.contains(products[c].attributes[a]) ) attributes[attributes.length] = products[c].attributes[a];
        }//for
    }//for
    
    //remove attributes not contained in product list
    for ( var c in this.curtains ) {
        if ( this.curtains[c].element.options.length > 1 ) {
            this.curtains[c]["element"].options.length = 0;
            this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option('Vælg',0);
            for ( var o in this.curtains[c]["options"] ) {
                if ( attributes.contains(o) ) { 
                    this.curtains[c]["element"].options[this.curtains[c]["element"].options.length] = new Option(this.curtains[c]["options"][o],o);
                }//if
            }//for
        }//if
    }//for

    html = '';
    for ( var c = 0; c < products.length; c++ ) {
        html += '<div class="productSelector_Product">'
        html += '<img src="http://cloud.corbiz.dk/danoline/image.php?id=' + products[c]["id"] + '">';
		html += '<br />';
        html += '<a href="' + products[c]["url"] + '">' + products[c]["title"] + '</a>';
        html += '</div>';
    }//for

    this.result.innerHTML = html;

}
