// Main type
// Remember to set input id="prodType" type="hidden" name="prodType" value="value here"  
// The modeXXX constants defined in const.js and included in index.php

// modeRolg2 (modeRolg not used anymore)

// Rolgordijn types. To add a new type, define it here and add a corresponding table somewhere in the HTML code
// e.g. in rg_groep1.php. Also, add entries in rolgordijnen.js and define its image offset.
// Further code changes needed:
// Add a imgIndexOffsetRolgXX to specify the image offset
// Add code to doColourClick to handle that new offset (don't forget the vertical position bit)
// Add code to doOnloadRolgordijnCalcPage
// Add code to findImageByName and rolGordijnFindByName
// 
typeUNI        = 0;
typeUniII      = 1;
typeUNI255     = 2;
typeSemiTrans  = 3;
typeTrans      = 4; 
typeBedrukt    = 5;
typeVerd180    = 6;
typeBedr180    = 7;
typeVerd255    = 8;
typeLinnen     = 9;
typeVerd180Wit = 10;
typeTransStreep= 11;
var rolgType = 0; // Default type

// Groups
groupXX=0;  // Undefined
groupZR=1;
groupVR=2;
groupBR=3;
groupDR=99; // Previously Multishade

// Used in doColourClick
vertMove=1;

// modePlisses
var typePlisse1  = 0; // Price group 1: Zonwerend
var typePlisse2  = 1; // Price group 2: Verduisterend

// modeVertLam - lamel widths 89, 70 and 52 mm
var typeVertlam89mm=0;
var typeVertlam70mm=1;
var typeVertlam52mm=2;
var typeVertlamAlu =3; // Aluminium lamellen - different price handling

// modeVertLam - bedieningen
var typeVertlamBedStdLL           =0;
var typeVertlamBedStdRR           =0;
var typeVertlamBedAndersomLR      =1;
var typeVertlamBedAndersomRL      =1;
var typeVertlamBedMiddenL         =2;
var typeVertlamBedMiddenR         =2;
var typeVertlamBedMiddenOmgekeerdL=3;
var typeVertlamBedMiddenOmgekeerdR=3;
var vlMeerprijsBedMidden = 25; // euro

// modeVertLam - wandsteun
var vlWandSteunPrijsPerStuk = 5; // euro

// aluJal
var typeAluJal16mm= 0; // Aluminium jal 16mm
var typeAluJal25mm= 1; // Aluminium jal 25mm
var typeAluJal50mm= 2; // Aluminium jal 50mm

// Vouwgordijnen
var typeVouw1 = 0; 
var typeVouw2 = 1; 
var vouwType  = 0; //Default

// The others have no sub types
var typeMulti     = 0; // Multishade
var typeHoutenJal = 0; // Houten jal
var typeUnknown   = 9;

// See DoColourClick
imgIndexOffsetRolg            = 0;
imgIndexOffsetRolgUNI         = 0;   // UNI
imgIndexOffsetRolgUniII       = 30;  // UNI/II
imgIndexOffsetRolgUNI255      = 40;  // UNI 255
imgIndexOffsetRolgSemiTrans   = 50;  // Semi transparant
imgIndexOffsetRolgTrans       = 58;  // Transparant
imgIndexOffsetRolgTransStreep = 65;  // Transparant streep
imgIndexOffsetRolgBedr        = 70;  // Bedrukt zonwerend
imgIndexOffsetRolgVerd180     = 100; // Verduisterend 180
imgIndexOffsetRolgVerd180Wit  = 140; // Verduisterend 180 witte achterkant
imgIndexOffsetRolgBedr180     = 150; // Bedrukt verduisterend 180
imgIndexOffsetRolgVerd255     = 175; // Verduisterend 255
imgIndexOffsetRolgLinnen      = 185; // Linnen

imgIndexOffsetMulti1    = 200; // Normal
imgIndexOffsetMulti2    = 220; // Bocacy

imgIndexOffsetHoutenJal = 300;

imgIndexOffsetPlisses1  = 400; // Zonwerend
imgIndexOffsetPlisses2  = 450; // Verduisterend

imgIndexOffsetVertLam1  = 500; // PVC
imgIndexOffsetVertLam2  = 550; // Stoff
imgIndexOffsetVertLam3  = 570; // Aluminium

imgIndexOffsetAluJal    = 600;

imgIndexOffsetVouw1     = 650;
//imgIndexOffsetVouw2     = 675;

// doChecks options
var checkAlwaysReport=0; 
var checkNoReportOnEmpty=1;

// Order limits (rolgordijnen, multishade is different, set in doOnloadMultiCalcPage)
// The others are also different, see corresponding doOnloadXXX routine
var minWidth   = 30; // cm
var minHeight  = 50; // cm

// Prices begin at this width and height
var minPriceWidth = 60; // cm
var minPriceHeight= 0;  // Vouwgordijnen en plisses only

var deltaWidth = 10; // cm
var deltaHeight= 20; // cm

// Where we go from one pricegroup to next
// Note: That is for rolgordijnen, for plisses we use it differently (see plisseChangeMax)
var maxHeight1 = 180; // cm

// Highest possible
var maxHeight2 = 265; // cm

var maxWidth1 = 350; // Rolg: Height<180cm; Plisses: Zonwerend
var maxWidth2 = 300; // Rolg: Height>180cm; Plisses: Verduisterend

// Houten/Alu jal
var hajMeerprijsLadderband = 10.0; // % 
var sLamB16 = '16mm'; // Alu
var sLamB25 = '25mm'; // Alu+hout
var sLamB50 = '50mm'; // Alu+hout
var sLamB65 = '65mm'; // Hout (unused)

// Plisses
var plMeerprijsProfiel   =  0.0; // % 
var plMeerprijsTrekstang = 30.0; // euro
var plMeerprijsTypeC     = 20.0; // euro
var plTypeVrijA          = 0;
var plTypeTopdownB       = 1;
var plTypeTopdownC       = 2;

var pricePG1_less_180 = new Array(
 35, 37, 40, 43, 44, 47, 49, 51, 54, 57, 61, 63, 66, 69, 71, 73, 97,110,119,126,131,144,148,160,164,185);

var pricePG1_more_180 = new Array(
 48, 52, 55, 60, 62, 66, 69, 72, 76, 80, 86, 88, 93, 96, 99,102,135,151,166,175,183,200,207,222);

var pricePG2_less_180 = new Array(
 45, 47, 51, 54, 60, 63, 66, 72, 75, 79, 85, 90, 96,100,104,106,130,138,143,148,163,169,183,192,199,217);

var pricePG2_more_180 = new Array(
 62, 65, 72, 76, 84, 88, 93,100,105,110,119,126,135,139,144,148,180,192,199,207,227,236,254,268);

//Price Multishade 2-12-2009: width 60 to 260, height 80 to 280
// columns 0-21, rows 0-21
//Width:
//60, 70, 80, 90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,
priceMulti = new Array(                                                                    // Height
[118,130,134,144,152,158,166,194,208,212,222,232,236,242,244,246,256,260,264,284,314], // 80
[122,134,138,148,155,162,172,202,214,218,230,240,246,250,252,256,264,268,272,292,322], // 90
[124,136,140,152,162,166,178,208,222,224,236,248,252,258,260,264,274,279,284,304,334], // 100
[128,140,146,158,166,172,182,214,228,232,244,254,260,266,268,272,282,287,292,312,342],
[130,144,150,162,170,176,188,220,234,238,250,262,268,274,276,280,290,296,302,322,352],
[134,148,152,166,174,180,192,226,240,244,258,270,276,282,284,288,300,305,310,330,360],
[136,152,156,170,180,186,198,232,246,252,264,278,284,290,292,296,308,314,320,340,370],
[140,154,160,174,184,190,202,238,254,258,272,284,292,298,300,304,316,322,328,348,378], // 150
[142,158,164,178,188,194,208,244,260,264,278,291,300,306,308,312,326,332,338,358,388],
[146,162,168,182,192,200,212,250,266,272,286,300,308,314,316,322,334,340,346,366,396],
[148,164,172,186,196,204,218,256,271,278,292,308,316,322,324,330,342,349,356,376,406],
[152,168,174,190,202,208,222,262,280,284,300,314,324,330,332,338,352,358,364,384,414],
[154,172,178,194,206,214,228,268,286,292,308,322,330,338,340,346,360,367,374,394,424], // 200
[158,176,182,198,210,218,234,274,292,298,314,330,338,346,348,356,368,375,382,402,432],
[160,178,186,202,214,222,238,280,298,304,322,338,346,354,356,362,378,385,392,412,442],
[164,182,190,206,218,228,244,286,306,312,328,346,354,362,364,370,386,393,400,420,450],
[166,186,194,210,224,232,248,291,312,318,336,352,362,370,372,380,394,402,410,430,470],
[170,188,196,214,228,236,254,298,318,324,342,360,370,378,380,388,404,411,418,438,468], // 250
[172,192,200,218,232,242,258,304,324,332,350,368,378,386,388,396,412,420,428,448,478], // 260
[176,196,204,222,236,246,264,310,332,338,356,376,386,394,396,404,420,428,436,456,486], // 270
[178,200,208,226,240,250,268,316,338,344,364,382,394,402,404,412,428,437,446,466,496]  // 280
);

// Plisses breedte:
// 50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230
//Plissés prijsgroep 0 (zonwerend)
pricePlisse1 = new Array(     
[ 65, 70, 76, 82, 91, 98,104,112,122,128,134,141,153,159,168,175,185,194,202],       // height=80
[ 68, 73, 79, 85, 95,101,110,116,127,133,140,147,158,165,174,181,194,202,209],
[ 71, 77, 82, 88, 99,105,115,121,132,139,146,154,164,173,181,188,202,209,217],
[ 74, 79, 85, 91,103,111,119,126,137,144,152,159,172,179,188,197,209,217,225],
[ 76, 82, 88, 96,109,115,124,130,142,151,158,165,178,185,197,204,216,224,233],
[ 79, 85, 91,100,112,119,128,135,148,156,163,172,184,193,203,211,224,233,242],
[ 81, 88, 96,103,116,124,132,141,154,161,170,178,190,201,210,218,232,242,250],
[ 84, 91, 99,109,120,128,138,146,159,168,176,184,199,207,216,225,240,249,259],
[ 87, 93,103,112,124,132,142,152,164,173,182,190,205,213,224,233,248,258,267],
[ 89, 98,108,116,128,138,147,157,171,179,187,198,211,220,231,242,255,266,275],
[ 92,101,111,119,132,142,153,161,176,184,195,204,218,228,239,249,263,273,284],
[ 96,104,114,124,137,147,158,167,181,190,201,210,224,236,246,257,271,281,293],
[ 98,109,118,127,142,152,162,173,186,198,207,216,232,243,253,265,279,292,301],
[100,112,122,131,146,157,168,178,193,204,213,223,239,249,261,271,289,299,309],
[103,115,125,135,151,161,173,183,200,209,220,230,246,257,269,280,297,307,318],
[109,119,129,140,156,167,178,188,205,215,227,238,253,264,277,289,304,315,327],
[111,122,133,144,160,172,183,195,211,221,233,244,260,271,285,296,311,324,335],
[116,126,137,148,164,176,188,201,216,228,240,251,267,279,293,304,321,332,343],
[118,129,141,153,170,181,195,206,222,235,246,258,274,288,300,311,329,340,352]   // height=260
);

// Plissés prijsgroep 2 (verduisterend)
pricePlisse2 = new Array(     
[ 78, 86, 95,103,117,126,135,146,159,170,179,188,204,214,225,237,252,263,274],  // height=80
[ 82, 91,101,112,124,133,145,156,170,180,190,202,216,228,241,252,268,281,294],
[ 86, 97,109,118,132,142,155,165,180,190,203,214,230,243,255,268,286,299,311],
[ 91,102,114,125,140,151,163,175,190,203,215,227,244,257,271,285,302,315,330],
[ 98,110,120,131,147,159,173,184,202,214,227,240,258,271,288,301,319,333,348],
[101,115,127,139,156,168,182,195,212,225,240,253,271,286,302,316,336,351,366],
[105,120,133,146,163,177,192,206,223,238,252,267,286,301,318,333,353,368,384],
[113,126,140,154,172,185,202,215,236,250,264,280,301,315,333,349,370,385,401],
[119,132,146,161,180,195,211,227,246,262,278,295,314,331,349,365,387,402,420],
[122,138,154,169,188,205,221,237,258,273,292,307,329,345,365,381,402,421,438],
[128,144,160,176,198,213,231,248,269,288,304,322,343,360,380,397,420,438,456],
[133,151,168,184,206,222,242,259,280,300,316,335,357,375,395,414,436,456,475],
[139,157,175,192,214,232,251,270,294,311,331,349,372,391,412,441,454,474,494],
[145,163,181,201,223,243,262,281,305,325,343,363,387,406,427,446,472,492,512],
[151,170,188,208,232,252,272,294,318,337,357,376,401,422,443,463,489,510,530],
[158,177,197,216,242,262,284,304,330,350,371,391,417,438,459,480,507,526,548],
[163,183,204,224,251,271,296,315,342,364,384,405,431,453,476,497,523,545,567],
[168,189,212,233,260,282,306,328,354,376,397,420,446,469,493,514,542,563,585],
[175,198,219,242,270,294,316,340,368,390,413,433,462,485,509,531,559,581,603]   // height=260
);

// Vertical lamellen prijsgroep 0 for width of lamel zelf=89mm
// Height goes from 60 to 300 cm in steps of 20 (13 rows)
// Width goes from 60 to 400 cm in steps of 20 (17 columns)
priceVertlam = new Array(     
[45,59, 69, 83, 96,107,119,132,146,159,169,182,193,207,222,235,250,260], // Height=60
[47,61, 72, 87,101,113,126,141,154,169,181,194,206,221,235,249,264,274],
[49,63, 78, 92,106,120,134,148,162,177,192,205,219,234,247,263,277,291],
[51,68, 83, 97,112,128,144,159,172,189,203,218,234,249.265,279,294,310],
[56,70, 86,104,119,134,150,168,182,198,215,230,246,263,279,294,311,327],
[58,72, 89,107,124,140,156,172,191,206,223,239,257,273,290,306,323,339],
[60,75, 92,110,127,145,161,180,195,214,230,246,265,281,300,315,334,351],
[62,78, 95,112,130,148,166,183,202,218,235,254,270,290,307,324,342,359],
[64,80, 97,116,132,150,169,186,204,223,240,258,277,294,312,331,349,366],
[66,82, 99,118,135,154,172,192,210,227,246,265,282,301,320,338,356,375],
[68,84,101,120,138,156,176,194,214,233,251,269,289,307,327,344,364,382],
[70,86,103,122,141,160,179,197,216,235,255,273,292,312,331,350,369,389],
[72,88,105,124,144,162,183,201,218,238,257,277,295,314,334,354,373,392]  // Height=300
//0  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17
)

// 16mm aluminium jal. Note that first row contains widths and first column the heights
// NB: Prices are incorrect, 20% too high, corrected in calcPriceAluJal
priceAluJal16 = new Array(
[  0, 50, 60, 70, 80, 90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300],
[ 50, 96, 98,100,104,106,109,114,118,123,129,134,139,144,148,153,159,161,165,169,173,177,182,188,194,201,207],
[ 60, 97, 99,102,105,108,110,116,122,127,133,139,144,148,153,159,163,168,171,176,181,187,194,201,207,215,221],
[ 70, 98,102,105,108,110,113,118,124,130,136,142,147,153,158,163,168,173,177,184,191,198,206,213,220,228,234],
[ 80,100,104,106,109,112,115,121,128,134,140,146,152,158,162,168,173,178,186,193,201,209,217,224,233,242,247],
[ 90,102,105,109,112,115,117,124,132,137,144,151,156,161,168,173,178,186,196,204,212,221,229,236,245,254,261],
[100,104,106,110,114,116,120,127,134,140,147,154,160,166,171,178,186,196,205,213,223,232,242,249,258,268,276],
[110,108,110,114,117,121,124,133,139,146,153,160,165,171,177,185,194,205,215,224,233,244,253,261,271,280,290],
[120,110,114,117,122,125,130,136,144,152,159,165,171,177,185,194,205,215,224,235,246,256,266,275,283,293,302],
[130,114,117,122,127,130,134,141,148,157,163,171,177,185,194,204,212,223,234,246,257,269,278,289,296,306,316],
[140,117,122,127,130,135,139,146,154,161,169,177,185,194,204,212,222,233,245,257,270,281,291,301,311,319,328],
[150,121,125,130,135,139,144,152,159,166,176,185,194,204,212,222,231,244,255,269,281,293,304,314,323,334,342],
[160,124,130,134,139,144,148,157,164,173,181,194,205,215,224,234,245,256,269,281,294,306,316,326,336,346,356],
[170,128,134,139,144,148,153,161,169,178,189,204,213,224,235,246,257,270,281,294,306,318,328,339,348,360,370],
[180,133,137,142,147,153,159,166,174,185,198,211,223,235,247,259,271,282,295,307,319,330,341,351,362,372,383],
[190,135,141,146,152,158,163,171,181,194,207,221,233,246,259,271,283,296,307,319,331,343,353,364,374,385,396],
[200,139,145,151,157,161,168,177,188,203,216,230,244,257,271,283,299,311,322,334,344,356,366,377,388,398,409],
[210,141,147,153,160,165,171,182,197,209,224,237,253,266,280,294,307,319,331,343,354,366,377,389,400,411,422],
[220,144,150,157,163,170,177,189,204,219,232,246,260,275,290,304,318,329,342,353,365,377,389,402,412,425,436],
[230,146,153,160,166,174,182,197,210,225,242,255,270,283,298,314,327,339,352,364,377,389,402,413,426,436,449],
[240,148,156,163,170,178,188,204,219,233,248,263,278,293,307,323,337,349,362,374,388,400,412,426,437,451,  0],
[250,151,159,166,174,183,196,210,227,242,256,271,286,302,317,331,346,360,372,385,398,411,423,436,451,  0,  0],
[260,153,161,169,178,189,203,219,233,249,265,280,295,311,326,341,356,370,383,396,409,421,435,449,  0,  0,  0],
[270,156,164,173,182,196,209,225,242,256,272,289,304,319,335,350,365,379,393,407,419,434,446,  0,  0,  0,  0],
[280,159,166,176,188,203,216,232,248,265,281,296,314,328,343,360,374,389,403,417,431,444,  0,  0,  0,  0,  0],
[290,160,169,180,193,208,223,240,255,272,290,305,320,337,352,369,385,398,412,427,442,  0,  0,  0,  0,  0,  0],
[300,163,173,184,199,215,230,246,263,280,296,315,329,346,362,377,394,409,423,437,  0,  0,  0,  0,  0,  0,  0],
[310,165,176,188,205,221,236,254,271,289,305,323,339,354,371,388,403,418,434,448,  0,  0,  0,  0,  0,  0,  0],
[320,168,178,194,210,228,244,260,278,296,314,330,347,364,381,397,413,429,443,  0,  0,  0,  0,  0,  0,  0,  0],
[330,170,182,199,216,233,251,268,286,304,322,339,356,372,389,407,422,438,  0,  0,  0,  0,  0,  0,  0,  0,  0],
[340,173,186,205,222,240,257,276,293,312,329,347,364,382,398,415,433,448,  0,  0,  0,  0,  0,  0,  0,  0,  0],
[350,176,191,209,228,246,265,282,301,319,337,356,373,390,408,425,442,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0]
)

// 25mm aluminium jal. Note that first row contains widths and first column the heights
priceAluJal25 = new Array(
[  0, 50, 60, 70, 80, 90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300],
[ 50, 67, 68, 71, 73, 75, 76, 80, 82, 87, 90, 94, 98,101,104,108,111,114,116,120,122,124,128,133,137,141,145],
[ 60, 68, 70, 73, 75, 77, 78, 81, 86, 90, 93, 98,101,104,108,111,114,118,121,124,127,132,137,141,145,151,154],
[ 70, 69, 71, 74, 75, 78, 79, 82, 88, 91, 97,100,104,106,111,114,118,122,124,129,135,139,145,150,154,160,164],
[ 80, 70, 73, 75, 76, 78, 81, 86, 90, 94, 98,103,106,111,114,118,122,125,130,137,141,148,153,159,163,169,174],
[ 90, 71, 75, 76, 78, 80, 82, 88, 91, 97,101,106,110,114,117,122,125,130,137,144,149,154,161,166,172,178,184],
[100, 73, 75, 77, 80, 82, 83, 90, 94, 99,104,109,113,117,121,125,130,137,144,150,157,163,169,175,182,187,194],
[110, 75, 78, 80, 82, 85, 88, 92, 98,103,108,113,116,121,124,129,137,144,151,158,164,171,177,184,191,196,203],
[120, 78, 80, 82, 86, 89, 90, 97,101,106,112,116,121,124,129,137,144,151,159,165,173,181,186,193,199,206,212],
[130, 80, 82, 86, 89, 91, 94, 99,105,110,114,121,124,129,137,144,150,158,165,173,181,189,195,201,208,216,222],
[140, 82, 86, 89, 91, 94, 98,103,109,114,120,124,129,137,144,150,156,164,172,181,189,197,205,211,218,224,231],
[150, 86, 89, 91, 96, 99,101,106,112,117,122,129,137,142,149,156,162,171,180,188,197,206,213,220,227,233,241],
[160, 88, 90, 94, 98,100,104,110,116,122,128,137,144,151,158,164,172,181,189,197,207,216,222,229,236,243,249],
[170, 90, 93, 98,101,104,108,114,120,125,134,142,150,159,165,173,181,189,198,207,216,223,231,237,245,253,259],
[180, 92, 97,100,104,108,111,117,122,129,139,149,158,165,174,183,191,199,207,216,224,232,240,246,255,263,269],
[190, 96, 99,103,106,110,114,121,127,137,145,154,164,173,182,192,200,208,216,224,233,241,248,256,264,270,278],
[200, 98,102,106,110,113,118,124,133,142,152,161,171,181,191,200,210,218,225,234,242,249,257,265,272,280,288],
[210, 99,104,108,113,116,122,128,137,148,158,168,176,186,197,207,216,224,233,241,249,257,266,273,281,289,296],
[220,101,106,111,114,118,124,133,144,153,163,173,183,193,204,213,223,232,240,248,257,266,273,281,290,299,306],
[230,103,108,113,117,121,128,137,149,159,169,180,189,199,209,219,230,239,247,256,265,273,281,290,299,307,316],
[240,104,110,114,120,123,133,144,153,164,174,185,195,206,216,227,236,245,255,264,272,281,290,299,308,317,  0],
[250,106,112,117,122,126,137,148,159,170,181,192,201,212,222,233,243,253,263,270,279,289,298,307,317,  0,  0],
[260,108,114,120,125,129,142,153,164,175,185,197,208,218,229,239,249,259,269,278,287,296,306,316,  0,  0,  0],
[270,110,114,122,128,132,147,159,169,181,192,203,213,224,235,246,256,266,276,286,294,304,314,  0,  0,  0,  0],
[280,111,117,124,132,136,152,163,174,185,197,208,219,231,242,253,264,273,283,293,302,312,  0,  0,  0,  0,  0],
[290,113,120,126,137,140,157,169,180,192,203,215,225,236,247,259,270,280,290,301,310,  0,  0,  0,  0,  0,  0],
[300,114,122,129,140,145,161,173,185,197,208,221,232,243,255,266,278,287,298,308,  0,  0,  0,  0,  0,  0,  0],
[310,116,123,133,145,149,166,178,191,203,215,227,237,248,260,272,283,294,304,315,  0,  0,  0,  0,  0,  0,  0],
[320,118,125,137,148,152,171,184,195,208,220,232,244,255,267,278,290,301,311,  0,  0,  0,  0,  0,  0,  0,  0],
[330,120,128,140,152,157,176,188,200,213,225,239,249,263,273,286,296,308,  0,  0,  0,  0,  0,  0,  0,  0,  0],
[340,122,130,144,156,161,181,193,206,219,231,244,256,268,279,292,304,315,  0,  0,  0,  0,  0,  0,  0,  0,  0],
[350,122,134,147,160,164,185,198,211,224,237,249,263,275,286,299,310,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0]
)

priceAluJalSpandraden = 20;
priceAluJalSteunen    =  30;
priceAluJalBadkamer   = 10;
priceAluJalDeurclips  = 5;

/*
 100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300
*/
priceVouw = new Array( // 0..20
[148,162,172,186,198,210,222,234,246,258,272,282,296,308,320,332,344,356,368,380,392], //100:0
[156,168,180,192,204,214,228,238,252,264,276,288,300,312,324,336,348,360,374,384,398], //110
[162,176,186,198,210,222,234,248,256,270,280,294,304,316,330,340,354,364,378,388,400], //120
[168,182,192,204,216,228,238,252,264,274,288,298,310,322,334,344,358,368,380,392,404], //130
[176,188,200,210,222,234,246,256,268,280,292,302,316,326,338,348,362,372,384,296,408], //140
[182,194,206,216,228,238,252,264,274,286,296,310,320,332,342,354,368,378,388,400,410], //150
[188,202,212,224,234,246,256,268,278,292,302,314,324,336,346,358,370,382,392,404,414], //160
[194,208,220,230,242,252,264,274,286,296,306,318,330,340,352,362,376,386,398,408,420], //170
[204,214,226,236,248,258,270,280,292,302,314,324,336,346,358,368,380,390,402,412,424], //180
[210,220,230,242,252,264,274,286,296,308,318,330,340,352,362,374,382,392,404,414,426], //190
[216,226,236,248,258,270,280,292,302,312,322,334,344,356,366,378,388,398,408,420,430], //200
[224,232,244,254,266,276,286,296,308,318,330,338,348,360,370,382,390,402,412,424,434], //210
[230,238,250,260,272,280,292,302,314,322,334,344,354,364,376,386,396,406,418,428,436], //220
[236,246,256,268,276,288,298,308,318,330,338,348,360,368,380,390,400,410,422,430,442], //230
[244,252,264,274,282,294,302,314,324,334,344,354,364,376,384,396,404,414,424,434,446], //240
[250,258,270,278,290,300,310,320,330,340,348,360,368,380,388,400,408,420,428,440,448], //250
[256,266,276,286,296,314,316,324,336,344,356,364,374,384,392,408,412,424,432,444,452]  //260:16
)

// -----------------------------------------------------------------------

function setMode(AMode) {
  modeNow=AMode;
}

function getName(AMode) {
  var s='???';

  if (AMode==modeRolg2)
    s='rolgordijn'
  else if (AMode==modeMulti)
    s='multishade gordijn'
  else if (AMode==modeHoutenJal)
    s='houten jalozie'
  else if (AMode==modePlisses)
    s='plissé'
  else if (AMode==modeAluJal)
    s='aluminium jalozie'
  else if (AMode==modeVertLam)
    s='verticaal lamel'
  else if (AMode==modeVouw)
    s='vouwgordijn';
  
  return s;
}

function getArticle(AMode) {
  var s='de';
  
  if (AMode==modeRolg2)
    s='het'
  else if (AMode==modeMulti)
    s='het'
  else if (AMode==modeVouw)
    s='het'

  return s;
}

function getImgDir(AMode) {
// Not used yet but will be ... should be ...
  var s='';
  if (AMode==modeRolg2)
    s='imagesgroot/Rolgordijnen2'
  else if (AMode==modeMulti)
    s='imagesgroot/Multishade'
  else if (AMode==modeHoutenJal)
    s='imagesgroot/Houten_jal2'
  else if (AMode==modePlisses)
    s='imagesgroot/Plisses'
  else if (AMode==modeAluJal)
    s='imagesgroot/Alujal'
  else if (AMode==modeVertLam)
    s='imagesgroot/Vertlam'
  else if (AMode==modeVouw)
    s='imagesgroot/Vouwgordijnen';
  
  return s;
}

// Not sure whether this will be needed
/*
function getGroupRG(AType) {
  var ires=groupXX;

  if ((AType==typeUNI) || (AType==typeUNI255)) {
    ires=groupZR;
  }
  else if ((AType==typeVerd180) || (AType==typeBedr180) || (AType==typeVerd255) || (AType==typeLinnen)) {
    ires=groupVR;
  }
  else if ((AType==typeBedrukt) || (AType==typeUniII) || (AType==typeSemiTrans) || (AType==typeTrans)) {
    ires=groupBR;
  }

  return ires;
}
*/

function createHoutenJalPriceMatrix() {

// HoutenJal prices

var nH=13;
var nW=10;

priceHoutenJal = new Array(nH)

// Row 1: height=60, width=60-240
var i=0;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 116;   //  60
priceHoutenJal[i][01] = 132;   //  80
priceHoutenJal[i][02] = 146;   // 100
priceHoutenJal[i][03] = 158;  // 120
priceHoutenJal[i][04] = 169;  // 140
priceHoutenJal[i][05] = 189;  // 160
priceHoutenJal[i][06] = 209;  // 180
priceHoutenJal[i][07] = 219;  // 200
priceHoutenJal[i][08] = 231;  // 220
priceHoutenJal[i][09] = 249;  // 240

// Row 2: height=80, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 130;
priceHoutenJal[i][01] = 146;
priceHoutenJal[i][02] = 160;
priceHoutenJal[i][03] = 181;
priceHoutenJal[i][04] = 199;
priceHoutenJal[i][05] = 216;
priceHoutenJal[i][06] = 222;
priceHoutenJal[i][07] = 249;
priceHoutenJal[i][08] = 269;
priceHoutenJal[i][09] = 289;

// Row 3: height=100, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 140;
priceHoutenJal[i][01] = 160;
priceHoutenJal[i][02] = 178;
priceHoutenJal[i][03] = 204;
priceHoutenJal[i][04] = 219;
priceHoutenJal[i][05] = 239;
priceHoutenJal[i][06] = 263;
priceHoutenJal[i][07] = 279;
priceHoutenJal[i][08] = 299;
priceHoutenJal[i][09] = 323;

// Row 4: height=120, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 152;
priceHoutenJal[i][01] = 174;
priceHoutenJal[i][02] = 197;
priceHoutenJal[i][03] = 219;
priceHoutenJal[i][04] = 238
priceHoutenJal[i][05] = 269;
priceHoutenJal[i][06] = 289;
priceHoutenJal[i][07] = 309;
priceHoutenJal[i][08] = 339;
priceHoutenJal[i][09] = 359;

// Row 5: height=140, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 162;
priceHoutenJal[i][01] = 192;
priceHoutenJal[i][02] = 215;
priceHoutenJal[i][03] = 238;
priceHoutenJal[i][04] = 268;
priceHoutenJal[i][05] = 291;
priceHoutenJal[i][06] = 319;
priceHoutenJal[i][07] = 339;
priceHoutenJal[i][08] = 369;
priceHoutenJal[i][09] = 399;

// Row 6: height=160, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 174;
priceHoutenJal[i][01] = 208;
priceHoutenJal[i][02] = 231;
priceHoutenJal[i][03] = 262;
priceHoutenJal[i][04] = 291;
priceHoutenJal[i][05] = 316;
priceHoutenJal[i][06] = 349;
priceHoutenJal[i][07] = 379;
priceHoutenJal[i][08] = 399;
priceHoutenJal[i][09] = 429;

// Row 7: height=180, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 190;
priceHoutenJal[i][01] = 220;
priceHoutenJal[i][02] = 249;
priceHoutenJal[i][03] = 279;
priceHoutenJal[i][04] = 299;
priceHoutenJal[i][05] = 344;
priceHoutenJal[i][06] = 374;
priceHoutenJal[i][07] = 403;
priceHoutenJal[i][08] = 432;
priceHoutenJal[i][09] = 469;

// Row 8: height=200, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 200;
priceHoutenJal[i][01] = 232;
priceHoutenJal[i][02] = 267;
priceHoutenJal[i][03] = 299;
priceHoutenJal[i][04] = 336;
priceHoutenJal[i][05] = 369;
priceHoutenJal[i][06] = 399;
priceHoutenJal[i][07] = 434;
priceHoutenJal[i][08] = 469;
priceHoutenJal[i][09] = 499;

// Row 9: height=220, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 214;
priceHoutenJal[i][01] = 249;
priceHoutenJal[i][02] = 285;
priceHoutenJal[i][03] = 320;
priceHoutenJal[i][04] = 354;
priceHoutenJal[i][05] = 394;
priceHoutenJal[i][06] = 429;
priceHoutenJal[i][07] = 459;
priceHoutenJal[i][08] = 499;
priceHoutenJal[i][09] = 539;

// Row 10: height=240, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 226;
priceHoutenJal[i][01] = 267;
priceHoutenJal[i][02] = 301;
priceHoutenJal[i][03] = 341;
priceHoutenJal[i][04] = 377;
priceHoutenJal[i][05] = 419;
priceHoutenJal[i][06] = 459;
priceHoutenJal[i][07] = 493;
priceHoutenJal[i][08] = 539;
priceHoutenJal[i][09] = 579;

// Row 11: height=260, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 236;
priceHoutenJal[i][01] = 278;
priceHoutenJal[i][02] = 318;
priceHoutenJal[i][03] = 358;
priceHoutenJal[i][04] = 399;
priceHoutenJal[i][05] = 439;
priceHoutenJal[i][06] = 489;
priceHoutenJal[i][07] = 529;
priceHoutenJal[i][08] = 569;
priceHoutenJal[i][09] = 609;

// Row 12: height=280, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 250;
priceHoutenJal[i][01] = 295;
priceHoutenJal[i][02] = 337;
priceHoutenJal[i][03] = 379;
priceHoutenJal[i][04] = 426;
priceHoutenJal[i][05] = 471;
priceHoutenJal[i][06] = 512;
priceHoutenJal[i][07] = 559;
priceHoutenJal[i][08] = 589;
priceHoutenJal[i][09] = 649;

// Row 13: height=300, width=60-240
i=i+1;
priceHoutenJal[i] = new Array(nW)
priceHoutenJal[i][00] = 264;
priceHoutenJal[i][01] = 304;
priceHoutenJal[i][02] = 356;
priceHoutenJal[i][03] = 399;
priceHoutenJal[i][04] = 448;
priceHoutenJal[i][05] = 496;
priceHoutenJal[i][06] = 539;
priceHoutenJal[i][07] = 589;
priceHoutenJal[i][08] = 639;
priceHoutenJal[i][09] = 679;
}

function getPriceGroup(AType) {
// For now, only Rolgordijnen knows two price categories
  //if ((AType==typeUNI) || (AType==typeUniII) || (AType==typeUNI255)) return 1; else return 2;
  // Change 11-04-2011: TypeUniII is also price group 2
  if ((AType==typeUNI) || (AType==typeUNI255)) return 1; else return 2;
}

function rolGordijnFindByNameOneType(sName,nameVec) {
// Find a rolgordijn by name        
  var imax=nameVec.length;
  var i=0;
  var ires=-1;
  var s,sx;
  
  while ((i<imax) && (ires<0)) {
    s=nameVec[i]; // Name/File/MaxWidth
    sx=s.split("/");

    if (sx[0]==sName)
      ires=i
    else  
      i++;
  }  
  
  return ires;
}

function rolGordijnFindByName(sName) {
  var s='';
  var i;
  
  i=rolGordijnFindByNameOneType(sName,uniName);
  if (i>=0) s=uniName[i];
  i=rolGordijnFindByNameOneType(sName,uniIIName);
  if (i>=0) s=uniIIName[i];
  i=rolGordijnFindByNameOneType(sName,uni255Name);
  if (i>=0) s=uni255Name[i];
  i=rolGordijnFindByNameOneType(sName,semitransName);
  if (i>=0) s=semitransName[i];
  i=rolGordijnFindByNameOneType(sName,transName);
  if (i>=0) s=transName[i];
  i=rolGordijnFindByNameOneType(sName,transStreepName);
  if (i>=0) s=transStreepName[i];
  i=rolGordijnFindByNameOneType(sName,bedruktName);
  if (i>=0) s=bedruktName[i];
  //i=rolGordijnFindByNameOneType(sName,ecoName);
  //if (i>=0) s=ecoName[i];
  i=rolGordijnFindByNameOneType(sName,verd180Name);
  if (i>=0) s=verd180Name[i];
  i=rolGordijnFindByNameOneType(sName,verd180WitName);
  if (i>=0) s=verd180WitName[i];
  i=rolGordijnFindByNameOneType(sName,bedr180Name);
  if (i>=0) s=bedr180Name[i];
  i=rolGordijnFindByNameOneType(sName,verd255Name);
  if (i>=0) s=verd255Name[i];
  i=rolGordijnFindByNameOneType(sName,linnenName);
  if (i>=0) s=linnenName[i];
 
  if (s=='') s=sName+'?'; 
  return s;
}

function findImageByName(sName) {
  var s='';
  var i=-1;

  var sdir='Rolgordijnen2'; // Assume that image is here, may change below
  
  // Don't check the modeNow because we may call this from staaltjes.php
  // which hasn't got modeNow set
  //if (modeNow==modeRolg2) {
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,uniName);
      if (i>=0) s=uniName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,uniIIName);
      if (i>=0) s=uniIIName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,uni255Name);
      if (i>=0) s=uni255Name[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,semitransName);
      if (i>=0) s=semitransName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,transName);
      if (i>=0) s=transName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,transStreepName);
      if (i>=0) s=transStreepName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,bedruktName);
      if (i>=0) s=bedruktName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,verd180Name);
      if (i>=0) s=verd180Name[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,verd180WitName);
      if (i>=0) s=verd180WitName[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,bedr180Name);
      if (i>=0) s=bedr180Name[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,verd255Name);
      if (i>=0) s=verd255Name[i];
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,linnenName);
      if (i>=0) s=linnenName[i];
    }
  //}
  //else if (modeNow==modeMulti) {
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,multiNormalName);
      if (i>=0) {s=multiNormalName[i]; sdir='Multishade'; }
    }
    if (i<0) {
      i=rolGordijnFindByNameOneType(sName,multiBocacyName);
      if (i>=0) {s=multiBocacyName[i]; sdir='Multishade'; }
    }
  //}

  //alert('Found: ['+s+']');

  if (s!='') {
    var sx=s.split("/");
    s=sx[1];
   if (s.charAt(0)!='#') s='imagesgroot/'+sdir+'/'+s;
  }
  else
    s='not_found';

  return s;
}

function houtenJalFindByName(sName) {
// Find a houten jal by name
  var imax=hjName.length;
  var i=0;
  var ires=-1;
  var s,sx;
  
  while ((i<imax) && (ires<0)) {
    s=hjName[i]; // Name/File/WidthInfo
    sx=s.split("/");

    if (sx[0]==sName)
      ires=i
    else  
      i++;
  }  
  
  return ires;
}

function aluJalFindByName(sName) {
// Find a aluminium jal by name        
  var imax=ajName.length;
  var i=0;
  var ires=-1;
  var s,sx;
  
  while ((i<imax) && (ires<0)) {
    s=ajName[i]; // Name/File/WidthInfo
    sx=s.split("/");

    if (sx[0]==sName)
      ires=i
    else  
      i++;
  }  
  
  return ires;
}

function plisseFindByName(sName) {
// Find a plisse by name        
// Return index into array names offset with first index for the group
  var i;
  var s,sx;
  
  var iGroup=1;
  var ires=-1;
  
  while ((iGroup<=2) && (ires<0)) {
    if (iGroup==1)    
      var imax=plName1.length;
    else
      var imax=plName2.length;
        
    i=0;
    while ((i<imax) && (ires<0)) {
      if (iGroup==1)    
        s=plName1[i]; // Name/File/WidthInfo
      else  
        s=plName2[i]; 
        
      sx=s.split("/");

      if (sx[0]==sName)
        ires=i
      else  
        i++;
    }  
    
    if (ires<0) iGroup++;
  }

  if (ires<0)  
    return ires;
  else if (iGroup==1)  
    return ires+imgIndexOffsetPlisses1;
  else if (iGroup==2)  
    return ires+imgIndexOffsetPlisses2;
}

function vertlamFindByName(sName) {
// Find a vertlam by name        
// Return index into array names offset with first index for the group
  var i;
  var s,sx;
  
  var iGroup=1;
  var ires=-1;
  
  while ((iGroup<=3) && (ires<0)) {
    if (iGroup==1)    
      var imax=vlName1.length;
    else if (iGroup==2)    
      var imax=vlName2.length;
    else  
      var imax=vlName3.length;
        
    i=0;
    while ((i<imax) && (ires<0)) {
      if (iGroup==1)    
        s=vlName1[i]; // Name/File/WidthInfo
      else if (iGroup==2)    
        s=vlName2[i]; 
      else  
        s=vlName3[i]; 
        
      sx=s.split("/");

      if (sx[0]==sName)
        ires=i
      else  
        i++;
    }  
    
    if (ires<0) iGroup++;
  }

  if (ires<0)  
    return ires;
  else if (iGroup==1)  
    return ires+imgIndexOffsetVertLam1;
  else if (iGroup==2)  
    return ires+imgIndexOffsetVertLam2;
  else if (iGroup==3)  
    return ires+imgIndexOffsetVertLam3;
}

function plisseGetProfiel() {
  var obj=document.forms[0].rbProfiel;
  var j=getChecked(obj); 
  return j;
}
        
function plisseGetProfielName() {
  var obj=document.forms[0].rbProfiel;
  var j=getChecked(obj); 
  return obj[j].value;
}

function plisseSetProfiel(iP) {
  document.forms[0].rbProfiel[iP].checked=true;
}

function plisseGetType() {
// Zonwerend of Verduisterend
// Not type A or B (which is vrijhangend vs topdown)
        
    var s=getColourName();    
    var i=plisseFindByName(s);
    //alert('Plisse: colour:'+s+', index:'+i);
    
    if (i>=imgIndexOffsetPlisses2)
      return typePlisse2;
    else  
      return typePlisse1;
}
      
function plisseGetTypeABC() {
// A or B or C (vrijhangend or topdown B/C)        
// Not Zonwerend of Verduisterend
  var obj = document.getElementById('idtypeA');
  if (obj.checked) return plTypeVrijA;
  var obj = document.getElementById('idtypeB');
  if (obj.checked) return plTypeTopdownB; else return plTypeTopdownC;
}

function plisseChangeMax(iType,iABC) {
// iType=typePlisse1 (zonwerend) of typePlisse2 (verduisterend)
// iABC =plTypeVrijA of plTypeTopdownB of plTypeTopdownC

// Type A en C: Vrijhangend, zelfde breedte en hoogte
// Type B: Ingespannen

//Breedte
//               Zonwerend        Verduisterend
//Vrijhangend    50-230              50-195
//Topdown        50-150              50-150
 
// Hoogte altijd 80-260 behalve voor TopDown: 80-220 (B<120) en 80-150 (B>120)

  
  if (iType==typePlisse1) {
    if (iABC==plTypeTopdownB) maxWidth1=150; else maxWidth1=230;
  }      
  else {
    if (iABC==plTypeTopdownB) maxWidth1=150; else maxWidth1=195;
  }
  
  maxWidth2 = maxWidth1;
  
  // A and C
  maxHeight1 = 260; 
  maxHeight2 = maxHeight1;
  
  if (iABC==plTypeTopdownB) {
    maxHeight1=220; // width<=120
    maxHeight2=150; // width> 120
  }    
  
  //alert('iType='+iType+' and iABC='+iABC+': maxW='+maxWidth1+', maxH='+maxHeight1);
}
        
function vertlamGetLamelWidth() {
  var obj=document.forms[0].rbLamelWidth;
  var j=getChecked(obj); 
  
  if (j==1)
    j=typeVertlam70mm;
  else if (j==2)
    j=typeVertlam52mm;
  else  
    j=typeVertlam89mm;
    
  return j;
}

function vertlamGetType() {
  var i=vertlamGetSelectedJalozie();
  
  if (i>=imgIndexOffsetVertLam3) {
    i=typeVertlamAlu;        
  }
  else {
    i=vertlamGetLamelWidth();
  }
  
  return i;
}

function vertlamGetLamelWidthStr() {
  var obj=document.forms[0].rbLamelWidth;
  var j=getChecked(obj); 
  var s="?";
  
  if (j==1)
    s="70"
  else if (j==2)
    s="52"
  else  
    s="89"
    
  return s;
}

function vertlamGetBediening() {
  var obj=document.forms[0].rbBediening;
  var j=getChecked(obj); 
  
  if (j==1)
    j=typeVertlamBedStdLL;
  else if (j==2)
    j=typeVertlamBedStdRR;
  else if (j==3)
    j=typeVertlamBedAndersomLR;
  else if (j==4)
    j=typeVertlamBedAndersomRL;
  else if (j==5)
    j=typeVertlamBedMiddenL;
  else if (j==6)
    j=typeVertlamBedMiddenR;
  else if (j==7)
    j=typeVertlamBedMiddenOmgekeerdL;
  else if (j==8)
    j=typeVertlamBedMiddenOmgekeerdR;
  else  
    j=typeVertlamBedStdRR;
    
  return j;
}

function vertlamCalcWandSteunCount(AWidth) {
  var nWS=0;  
  if (AWidth>100) {
    /*
    Bij een breedte van
    1,0 m = 2 stuks nodig
    1,5 m = 3 stuks
    2,0 m = 3 stuks
    2,5 m = 4 stuks
    3,0 m = 5 stuks
    3,5 m = 5 stuks
    4,0 m = 6 stuks
    */
    
    if (AWidth>=400)
      nWS=6
    else if (AWidth>=300)  
      nWS=5
    else if (AWidth>=250)  
      nWS=4
    else if (AWidth>=150)  
      nWS=3
    else 
      nWS=2;
  }    
  
  return nWS;
}

function vertlamUpdateWandSteun()      
{
  var s=getMontage(); // 0=plafond, 1=wand
  
  if (s=='Wand') {
    var vB=getBreedte();
    var nWS=vertlamCalcWandSteunCount(vB);
  }  
  else
    var nWS=0;  
    
  if (nWS>0) {
    document.getElementById("divWandsteunText").innerHTML="Ja, ik wil "+nWS+" wandsteunen (breedte="+vB+" cm)";
    document.getElementById("divWandsteun").style.display="block";
  }  
  else {
    document.getElementById("divWandsteunText").innerHTML="&nbsp;";
    document.getElementById("divWandsteun").style.display="none";
  }
}

function aluJalGetType() {
  var s=jalGetLamelBreedte();
  //alert(s);
  if (s==sLamB16)
	return typeAluJal16mm
  else if (s==sLamB25)
	return typeAluJal25mm
  else
	return typeAluJal50mm;
}

function getType() {
// Type, loosely used, mean different things for different product types
  if (modeNow==modeRolg2) {
    return rolgType; // Set in doColourClick
  }
  else if (modeNow==modeMulti)
    return typeMulti;  
  else if (modeNow==modeHoutenJal)
    return typeHoutenJal;  
  else if (modeNow==modePlisses)
    return plisseGetType();    
  else if (modeNow==modeVertLam)
    return vertlamGetType();    
  else if (modeNow==modeAluJal)
    return aluJalGetType();  
  else if (modeNow==modeVouw)
    return vouwType; // Set in doColourClick
  else
    return typeUnknown;  
}

function getTypeName() {
  var j=getType(); 
  
  if (modeNow==modeRolg2) {
    if (j==typeUNI) 
      return 'UNI';
    else if (j==typeUniII) 
      return 'UNI/II';
    else if (j==typeUNI255) 
      return 'UNI/255';
    else if (j==typeSemiTrans) 
      return 'Semitransparant';
    else if (j==typeTrans) 
      return 'Transparant';
    else if (j==typeTransStreep) 
      return 'Transparant strepen (hor)';
    else if (j==typeBedrukt) 
      return 'Bedrukt';
    /*
    else if (j==typeECO) 
      return 'ECO';
    */
    else if (j==typeVerd180) 
      return 'Verduisterend';
    else if (j==typeVerd180Wit)
      return 'Verduisterend';
    else if (j==typeBedr180) 
      return 'Bedrukt verd';
    else if (j==typeVerd255) 
      return 'Verduisterend/255';
    else if (j==typeLinnen) 
      return 'Bedrukt verd'; 
  }
  else if (modeNow==modeMulti)
    return 'Multishade';  
  else if (modeNow==modeHoutenJal)
    return 'Houten jaloezieën';  
  else if (modeNow==modeAluJal)
    return 'Aluminium jaloezieën';  
  else if (modeNow==modePlisses) {
    if (j==typePlisse1)        
      return 'Zonwerend';  
    else  
      return 'Verduisterend';  
  }  
  else if (modeNow==modeVouw) {
    if (j==typeVouw1)        
      return 'KA';  
    else  
      return 'str';  
  }
  else
    return 'Unknown';  
}

function getMontage() {
// Multi, Houtenjal, Plisses, Vertlam
  var s="Montage?";
  
  if ((modeNow==modeMulti) || (modeNow==modeHoutenJal) || (modeNow==modeAluJal) || (modeNow==modePlisses) || (modeNow==modeVertLam)) {
    var obj=document.forms[0].rbMontage;
    var j=getChecked(obj);
    if (j>=0) s=obj[j].value;
  }  

  return s;  
}
  
function getCassette() {
// Multi only        
  var s="Cassette?";
  
  if (modeNow==modeMulti) {
    var obj=document.forms[0].rbCassette;
    var j=getChecked(obj);
    if (j>=0) s=obj[j].value;
  }
  
  return s;
}

function getPositie() {
// Rolgordijn only        
  var s="Positie?";
  
  if (modeNow==modeRolg2) {
    var obj=document.forms[0].rbPositie;
    var j=getChecked(obj);
    if (j>=0) s=obj[j].value;
  }
  
  return s;
}

function getMaxWidth(AHeight) {
  if (AHeight<=maxHeight1) return maxWidth1; else return maxWidth2;
}

function getMaxHeight(AWidth) {
  var maxh=maxHeight2;
          
  if (modeNow==modePlisses) {
    var iABC=plisseGetTypeABC();
    if (iABC==plTypeTopdownB) {
      if (AWidth<=120) maxh=maxHeight1; else maxh=maxHeight2;
    }    
  }      
  
  return maxh;
}
        
function lookupWidth(AWidth,AHeight) {
  var maxw=getMaxWidth(AHeight);
  
  var w=0;
  while ((w<AWidth) && (w<maxw)) {
    w=w+deltaWidth;
  }
  
  if ((w>=AWidth) && (w<=maxw)) return w; else return 0;
}

function getBreedte() {
  var breed = document.getElementById('inpBreed');
  if (breed.value=='')
    return '0';
  else {
    var w = parseFloat(breed.value.replace(',','.'));
    return w;
  }  
}
  
function getHoogte() {
  var hoog = document.getElementById('inpHoog');
  if (hoog.value=='')
    return '0';
  else {
    var h = parseFloat(hoog.value.replace(',','.'));
    return h;
  }  
}  

function checkHeight(obj){
// All
  var h = parseFloat(obj.value.replace(',','.'));
  //h = Math.ceil(h);
  
  var sPre=getName(modeNow); // Product name
  var s=getArticle(modeNow); // de of het
  sPre='Voor '+s+' gekozen '+sPre+' is er helaas ';
  
  var w=document.getElementById('inpBreed').value;
  
  var maxw=getMaxWidth(h);
  var maxh=getMaxHeight(w);
  
  if (h<minHeight) {
    alert(sPre+" onder "+minHeight+" cm hoog niets leverbaar.");
  } 
  else if (h>maxh) {
    alert(sPre+" boven "+maxh+" cm hoog niets leverbaar.");
  } 
  else if (w>maxw) {
    alert("Bij de aangegeven hoogte is "+maxw+" cm de maximale breedte.");
  }
  /*
  else {
    document.getElementById('inpHoog').value = h;
  }
  */
  
  //var breed = document.getElementById('inpBreed');
  //if (breed.value=='') breed.value=minHeight;
  
  Calculate();
}

function checkWidth(obj) {
// All        
  var w = parseFloat(obj.value.replace(',','.'));
  //w = Math.ceil(w);

  var sPre=getName(modeNow); // Product name
  var s=getArticle(modeNow); // de of het
  sPre='Voor '+s+' gekozen '+sPre+' is er helaas ';

  var h=document.getElementById('inpHoog').value;
  var maxw=getMaxWidth(h);
  
  if (w<minWidth) {
    alert(sPre+" onder "+minWidth+" cm breed niets leverbaar.");
  } 
  else if (w>maxw) {
    alert(sPre+" boven "+maxw+" cm breed niets leverbaar.");
  } 
  /*
  else {
    document.getElementById('inpBreed').value = w;
  }  
  */
  
  //var hoog = document.getElementById('inpHoog');
  //if (hoog.value=='') hoog.value=minHeight;
  
  Calculate();
}
	
function getBediening() {
// All        
  var s="Bediening?";
  
  var obj=document.forms[0].rbBediening;
  var j=getChecked(obj);
  if (j>=0) s=obj[j].value;
  
  return s;
}
		
function setColourName(sColour) {
// Set the name just below the big image display (selected colour/jalozie/whatever)
// Also update the hiudden Input field which has a cleaner, easier form of the name

  var s=sColour;
  s=s.replace('\n','<br>');
  document.getElementById('divColourName').innerHTML = s; // Name of colour/dessin, just under big display
  
  s=sColour;
  s=s.replace('\n',' ');
  document.getElementById('inpColour').value = s; // For orders
}

function getColourName() {
// Return name of currently selected colour, etc ...        
  return document.getElementById('inpColour').value;
}
  
function jalGetLamelBreedte() {
// Houtenjal and Alujal only
// Return 16mm, 25mm, 50 mm or 65mm (sLamBNN)

  var s="Lamelbreedte?"
  
  var obj=document.forms[0].rbLamelBreedte;
  var j=getChecked(obj);
  if (j>=0) s=obj[j].value;
  
  return s;
}

function jalLamelBreedteOK(sLB,sInfo) {
// Houtenjal and AluJal only
// sLB: 16mm, 25mm, 50mm or 65mm
// sInfo: 25_50, 25 or 50

  //var ires=0;
  
  var s=sLB;
  var i=s.indexOf('mm');
  if (i>=0) s=s.substr(0,i);
  
  var ires=sInfo.indexOf(s);
  if (ires<0)
    ires=0
  else
  	ires=1;
  
  /*
  if (sInfo=='25_50') 
    ires=1;
  else if ((sLB==sLamB25) && (sInfo=='25')) 
    ires=1;
  else if ((sLB==sLamB50) && (sInfo=='50')) 
    ires=1;
  */
  
  //alert('Compare ['+sLB+'] and ['+sInfo+'] result='+ires);
  return ires;
}

function jalGetSelectedJalozie() {
// Houtenjal/AluJal only
  var sName=getColourName();
  
  if (modeNow==modeHoutenJal)
    var i=houtenJalFindByName(sName)
  else
    var i=aluJalFindByName(sName);
  
  // Not found? Get the first
  if (i<0) {
    i=0;
    if (modeNow==modeHoutenJal)
      var s=hjName[i];
    else
      var s=ajName[i];
    
    sNF=s.split("/"); // Name/File/WidthInfo
    setColourName(sNF[0]);
  }
  
  return i;
}
        
function vertlamGetSelectedJalozie() {
// VertLam only
  var sName=getColourName();
  var i=vertlamFindByName(sName);
  
  // Not found? Select the very first one
  if (i<0) {
    i=0;
    var s=vlName1[i];    
    sNF=s.split("/"); // Name/File/WidthInfo
    setColourName(sNF[0]); //+' ('+sNF[2]+'mm)');
  }
  
  return i;
}

function jalLamelCheckSelection(iReport) {         
// Houtenjal only
  var i=jalGetSelectedJalozie();
  
  if (modeNow==modeHoutenJal)
    var s=hjName[i];
  else
    var s=ajName[i];
  
  var sNF=s.split("/"); // Name/File/WidthInfo
  
  var sLB=jalGetLamelBreedte();
  var ires=jalLamelBreedteOK(sLB,sNF[2]);
  
  if ((iReport!=0) && (ires==0)) {
    alert('Lamelbreedte '+sLB+' is niet verkrijgbaar voor jalozie "'+sNF[0]+'".');
  }      
  
  return ires;
}
  
function vertlamLamelCheckSelection(iReport) {         
// VertLam only
  var i=vertlamGetSelectedJalozie();
  
  if (i>=imgIndexOffsetVertLam3)
    var s=vlName3[i-imgIndexOffsetVertLam3];
  else if (i>=imgIndexOffsetVertLam2)
    var s=vlName2[i-imgIndexOffsetVertLam2];
  else  
    var s=vlName1[i-imgIndexOffsetVertLam1];

  var sNF=s.split("/"); // Name/File/WidthInfo
  
  var sLB=vertlamGetLamelWidthStr(); 
  var iLB=sNF[2].indexOf(sLB);
  
  if ((iReport!=0) && (iLB<0)) {
    alert('Lamelbreedte '+sLB+' is niet verkrijgbaar voor lamel "'+sNF[0]+'".');
  }      
  
  return iLB;
}

function jalGetLadderbandIndex() {
// Houtenjal/AluJal only
// Return index for selected ladderband

  var j=-1;          
  if ((modeNow==modeHoutenJal) || (modeNow=modeAluJal)) j=getChecked(document.forms[0].rbLadderband);
  
  return j;
}

function jalGetLadderband() {
// Houtenjal/Alujal only
// Return name for selected ladderband
  
  var j=jalGetLadderbandIndex();      
  var n=document.forms[0].rbLadderband.length;
  var OK=1;

  // If none checked (unlikely) or last checked ('Geen', HoutenJal only), return empty, else return name
  if (modeNow==modeHoutenJal) {
    if ((j<0) || (j==(n-1))) OK=0;
  }
  else {
    if (j<0) OK=0;
  }

  if (OK==0) return ''; else return document.forms[0].rbLadderband[j].value;
}

function jalSetLadderbandByName(sName) {
// Houtenjal/Alujal only
// Select ladderband with name sName - allows user to click on the image
// of the ladderband and the corresponding input field is updated

  if ((modeNow!=modeHoutenJal) && (modeNow!=modeAluJal)) return '';
  
  //alert('setLadderbandByName: '+sName);
  
  var j=-1;
  var n=document.forms[0].rbLadderband.length;
  	
  for (var i = 0; i < n; i++) {
    if (document.forms[0].rbLadderband[i].value==sName) document.forms[0].rbLadderband[i].checked=true;
  }
}

function jalLadderBandCheckSelection(iReport) {         
// Houtenjal/Alujal only
// Check if current ladderband selection is allowed

  // If alujal and not checked, return OK and get out
  if (modeNow==modeAluJal) {
    var el=document.getElementById('idLadderband');
    if ((el) && (!el.checked)) return 1;
  }
  
  var i=jalGetLadderbandIndex();        
  if (i<0) {
    if (iReport!=0) alert('Geen ladderband selectie (ook niet "Geen").');    
    return 0;
  }  
  
  if (modeNow==modeHoutenJal)
    var s=hjLadderName[i]
  else
    var s=ajLadderName[i];
      
  sNF=s.split("/"); // Name/File/WidthInfo
  
  var sLB=jalGetLamelBreedte();
  var ires=jalLamelBreedteOK(sLB,sNF[2]);
  
  if ((iReport!=0) && (ires==0)) {
    alert('Lamelbreedte '+sLB+' is niet verkrijgbaar voor ladderband "'+sNF[0]+'".');
  }      
  
  return ires;
}

function isChecked(AID) {
  var obj=document.getElementById(AID);
  if ((obj) && (obj.checked)) return true; else return false;
}

function getSchulprand() {
// Rolgordijn only

// A bit stupid this one - rewrite code to use only name rbSchulp for all possible
// options. Then all we need to do is: 
// var obj=document.forms[0].rbSchulp
// var i=getChecked(obj) and assign a name
// corresponding to 'i'.

  if (modeNow!=modeRolg2) return '';
        
       if (isChecked('rbSchulpV2')) return 'V2';
  else if (isChecked('rbSchulpV3')) return 'V3';
  else if (isChecked('rbSchulpV4')) return 'V4';
  else if (isChecked('rbSchulpV5')) return 'V5';
  
  else if (isChecked('rbSchulpBalletjes')) return 'Balletjes';
  else if (isChecked('rbSchulpKwastjes')) return 'Kwastjes';

  else if (isChecked('rbSchulpZeilringen')) return 'Zeilringen';
  else if (isChecked('rbSchulpZeilringenAntra')) return 'Zeilringen antraciet';

  else if (isChecked('rbSchulpAO')) return 'Aluminium onderlat';
  else if (isChecked('rbSchulpAOW')) return 'Aluminium onderlat wit';
  
  else if (isChecked('rbSchulpR1M')) return 'R1 Messing';
  else if (isChecked('rbSchulpR1C')) return 'R1 Chroom';
  else if (isChecked('rbSchulpR1RVS')) return 'R1 RVS';
  else if (isChecked('rbSchulpR1DH')) return 'R1 Donker hout';
  else if (isChecked('rbSchulpR1LH')) return 'R1 Licht hout';
  
  else if (isChecked('rbSchulpR2M')) return 'R2 Messing';
  else if (isChecked('rbSchulpR2C')) return 'R2 Chroom';
  else if (isChecked('rbSchulpR2RVS')) return 'R2 RVS';
  else if (isChecked('rbSchulpR2DH')) return 'R2 Donker hout';
  else if (isChecked('rbSchulpR2LH')) return 'R2 Licht hout';
  
  else if (isChecked('rbSchulpR3M')) return 'R3 Messing';
  else if (isChecked('rbSchulpR3C')) return 'R3 Chroom';
  else if (isChecked('rbSchulpR3RVS')) return 'R3 RVS';
  else if (isChecked('rbSchulpR3DH')) return 'R3 Donker hout';
  else if (isChecked('rbSchulpR3LH')) return 'R3 Licht hout';
  else return 'V1';
}

function schulpChecked() {
// Only 'Rolgordijnen': Schulprand
  return document.getElementById('rbSchulpranden').checked;
}

function getMaxPriceIndex(AHeight,AType) {
// Rolgordijnen (really?)
  var ipg=getPriceGroup(AType);
  
  if (ipg==1) { // UNI
    if (AHeight<=maxHeight1) return pricePG1_less_180.length-1; else return pricePG1_more_180.length-1;
  }
  else {        // Verduisterend/bedrukt
    if (AHeight<=maxHeight1) return pricePG2_less_180.length-1; else return pricePG2_more_180.length-1;
  }
}
  
function getPriceIndex(AWidth,AHeight,AType) {
// Rolgordijnen (really?)
  var i=Math.round(AWidth/deltaWidth)-Math.round(minPriceWidth/deltaWidth);
  //alert('AWidth='+AWidth+' minWidth='+minPriceWidth+' -> i='+i);
  
  if (i<0)
    i=0;
  else {  
    var imax=getMaxPriceIndex(AHeight,AType);
    if (i>imax) i=imax;
  }  
  
  return i;
}

function calcPriceRG(AWidth,AHeight,AType) {
// Rolgordijnen        
  if ((AWidth==0) || (AHeight==0) || (AHeight>maxHeight2)) return 0;
  
  var w=lookupWidth(AWidth,AHeight);
  if (w==0) return 0;
  
  var ipg=getPriceGroup(AType);
  var i=getPriceIndex(w,AHeight,AType);
  
  //alert('AWidth='+AWidth+' w='+w+' ipg='+ipg+' index='+i);
  
  var price=0;
  
  if (ipg==1) { // UNI
    if (AHeight<=maxHeight1) price=pricePG1_less_180[i]; else price=pricePG1_more_180[i];
  }
  else {        // Verduisterend/bedrukt
    if (AHeight<=maxHeight1) price=pricePG2_less_180[i]; else price=pricePG2_more_180[i];
    if (AType==typeLinnen) price=price*1.10;
  }
  
  // 5% price increase as of 1-8-2009
  price=price*1.05;

  // 10% increase all curtains 210 or less in width
  if (AWidth<=210) price=price*1.10;

  // 5% decrease again 01-09-2011
  if (AWidth<=210) price=price*0.95;

  price=Math.round(price);
  
  return price;
}

function calcPriceMS(AWidth,AHeight,AType) {
// Multishade (Atype doesn't seem to be needed)
  var icol=Math.floor((AWidth-minWidth)/deltaWidth);
  var irow=Math.floor((AHeight-minHeight)/deltaHeight);
  
  if (icol<0) return 0;
  if (icol>21) icol=21; // Was 8
          
  if (irow<0) return 0;
  if (irow>21) irow=21; // Was 9
  
  //alert('icol='+icol+', irow='+irow);
  
  fac=1.20;     // 10% price increase 10-02-2010; and again 10% 7-9-2010; 
  fac=fac*0.90; // and now 10% less 22-10
  return Math.round(fac*priceMulti[irow][icol]);
}

function calcPriceHoutenJal(AWidth,AHeight,AType) {
// First index (row) is Height        
// Second (colum) is Width
// AType is not used

  var icol=Math.floor((AWidth-minWidth)/deltaWidth);
  var irow=Math.floor((AHeight-minHeight)/deltaHeight);
  
  if (icol< 0) return 0;
  if (icol>9) icol=9;
          
  if (irow< 0) return 0;
  if (irow>12) irow=12;
  
  //alert('icol='+icol+', irow='+irow);
  
  return priceHoutenJal[irow][icol];
}
        
function calcPricePlisses(AWidth,AHeight,AType) {
// First index (row) is Height        
// Second (column) is Width
// AType is Zonwerend (typePlisse1=0) or Verduisterend (typePlisse2=1)

  var icol=Math.floor((AWidth-minWidth)/deltaWidth);
  var irow=Math.floor((AHeight-minPriceHeight)/deltaHeight);
  
  if (icol< 0) icol=0;
  if (icol>18) icol=18;
          
  if (irow< 0) irow=0;
  if (irow>18) irow=18;
  
  //alert('icol='+icol+' and irow='+irow+' and AType='+AType);
  
  if (AType==typePlisse1)
    var v=pricePlisse1[irow][icol];
  else  
    var v=pricePlisse2[irow][icol];

  v=v*1.10*1.05; // 6-7-2011: 10% price increase; 18-7-2011: Another 5%

  var iABC=plisseGetTypeABC();
  if (iABC==plTypeTopdownC) v=v+plMeerprijsTypeC;

  return v;
}

function calcPriceVertLam(AWidth,AHeight,AType) {
/*        
AType selects for the width of 'lamel' self.
0=89, 1=70, 2=52 mm.

Alles onder de 60 cm. hoog(of breed) is zelfde prijs als 60 cm
(min. hoogte en breedte is er niet)

Er zijn 3 verschillende lamelbreedtes: 89, 70 en 52 mm

De prijslijst voor 70 mm. = prijslijst 89 mm. + 15% (prijzen afgerond op hele getallen)
De prijslijst voor 52 mm. = prijslijst 89 mm. + 25%           -"-
*/

  // Need to define these extra here because minWidth and minHeight are actually
  // 0 (or almost, 10 I think) because any width/height can be ordered but price
  // for w<60, h<60 is the same as for =60
  var minw=60;
  var minh=60;
  
  var icol=Math.floor((AWidth-minw)/deltaWidth);
  var irow=Math.floor((AHeight-minh)/deltaHeight);
  
  if (icol< 0) icol=0;
  if (icol>17) icol=17;
          
  if (irow< 0) irow= 0;
  if (irow>12) irow=12;
  
  //alert('col='+icol+', row='+irow);
  
  var v=priceVertlam[irow][icol];
  
  if (AType==typeVertlam70mm)
    v=v*1.15;
  else if (AType==typeVertlam52mm) 
    v=v*1.25;
  else if (AType==typeVertlamAlu) // Aluminium lamellen are 89mm but have the same price as the ordinary 52mm
    v=v*1.25;

  // 03-03-2011: 10% verhoging alle lamellen
  v=v*1.10;

  // Meerprijs voor 'Midden' en 'Midden omgekeerd'  
  var iBedType=vertlamGetBediening();
  if (iBedType>=typeVertlamBedMiddenL) v=v+vlMeerprijsBedMidden;

  if (document.getElementById("rbWandSteun").checked) {
    var nWS=vertlamCalcWandSteunCount(AWidth);
    v=v+nWS*vlWandSteunPrijsPerStuk;  
  }
  
  return v;  
}
        
function calcPriceAluJal(AWidth,AHeight,AType) {
// AType=typeAluJal16mm, typeAluJal25mm, typeAluJal50mm

  var icol=Math.floor((AWidth-minWidth)/deltaWidth);
  var irow=Math.floor((AHeight-minHeight)/deltaHeight);
  
  if (icol< 0) return 0;
  if (icol>26) icol=26;
          
  if (irow< 0) return 0;
  if (irow>31) irow=31;
  
  icol=icol+1;
  irow=irow+1;
  
  var v=0;
  if (AType==typeAluJal16mm)
    v=0.8*priceAluJal16[irow][icol]; // Prices were 20% too high
  else if (AType==typeAluJal25mm)
    v=priceAluJal25[irow][icol];
  else if (AType==typeAluJal50mm) {
    v=1.1*priceAluJal25[irow][icol]; //25mm price +10%
  }
  else 
    v=99.99;

  v=v*1.10; // 12-4-2011: 10% price increase
  v=Math.round(v);

  //alert('icol='+icol+', irow='+irow+', AType='+AType+', v='+v);

  return v
}

function calcPriceVouw(AWidth,AHeight) {
// Vouwgordijnen

  var w=AWidth;
  if (w<minPriceWidth) w=minPriceWidth;
  var h=AHeight;
  if (h<minPriceHeight) h=minPriceHeight;
  
  //alert('w='+w+', h='+h);
  
  var icol=Math.floor((w-minPriceWidth)/deltaWidth);   // 0..20
  var irow=Math.floor((h-minPriceHeight)/deltaHeight); // 0..16
  
  if (icol< 0) return 0;
  if (icol>20) icol=20;
          
  if (irow< 0) return 0;
  if (irow>16) irow=16;
  
  var v=priceVouw[irow][icol]; // Prices were 20% too high
  //alert('icol='+icol+', irow='+irow+', v='+v);

  v=v*1.10; // 15-6-2010: prijzen vouwgordijnen 10% omhoog
  v=Math.round(v);
  
  return v
}

function calcPrice(AWidth,AHeight,AType) {
  if (modeNow==modeRolg2)
    return calcPriceRG(AWidth,AHeight,AType)
  else if (modeNow==modeMulti)
    return calcPriceMS(AWidth,AHeight,AType)
  else if (modeNow==modeHoutenJal)
    return calcPriceHoutenJal(AWidth,AHeight,AType)
  else if (modeNow==modePlisses)
    return calcPricePlisses(AWidth,AHeight,AType)
  else if (modeNow==modeVertLam)
    return calcPriceVertLam(AWidth,AHeight,AType)
  else if (modeNow==modeAluJal)
    return calcPriceAluJal(AWidth,AHeight,AType)
  else if (modeNow==modeVouw)
    return calcPriceVouw(AWidth,AHeight)
  else
    return 0;  
}

function calcRolgExtraPrice(AWidth) {
// Rolgordijnen - add price for schulprand
  var v=0;
  
  if (schulpChecked() && (AWidth>0)) {
    var mr = 1+((AWidth-100)/100);
    v=mr*18;
  }
  
  if (modeNow==modeRolg2) {
    if (document.getElementById('idDikkeBuis').checked) v=v+15;
    if (document.getElementById('idSpandraad').checked) v=v+15;
    if (document.getElementById('idBeugels').checked) v=v+25; // 12-04-11: From 15 to 25
  }
  
  return v;
} 

function jalAddLadderbandPrice(APrice) {
// Houten/Alu jal        
  return (100.0+hajMeerprijsLadderband)*APrice/100.0;
}
  
function plisseAddProfielPrice(APrice) {
// Plisses
  return (100.0+plMeerprijsProfiel)*APrice/100.0;
}

function decrease_value(nummer) { 
// Order table on the calculation page        
    sID = "product_"+nummer;
    veld = document.getElementById(sID); 
    
    sID = "price_"+nummer;
    fPrice=document.getElementById(sID); 
    
    if (veld.value > 1) { 
        v=fPrice.value/veld.value;
        veld.value--; 
        fPrice.value=v*veld.value;
        
        veld.focus(); 
        veld.select(); 
    } 
} 

function increase_value(nummer) { 
// Order table on the calculation page        
    sID = "product_"+nummer;
    veld = document.getElementById(sID); 
    
    sID = "price_"+nummer;
    fPrice=document.getElementById(sID); 
    
    if (veld.value < 99) { 
        v=fPrice.value/veld.value;
        veld.value++; 
        fPrice.value=v*veld.value;

        veld.focus(); 
        veld.select(); 
    } 
} 

function removeRowFromTable() {
// Remove last row from Order table on the calculation page        
  var tab = document.getElementById('tabOrder');
  var lastRow = tab.rows.length;
  if (lastRow > 2) tab.deleteRow(lastRow - 1);
}

function removeOneRow(irow) { 
// Remove row 'irow' from Order table on the calculation page        
  //alert('Remove row '+irow);
  var tab = document.getElementById('tabOrder');
  var lastRow = tab.rows.length;
  if ((irow>0) && (irow<lastRow)) {
    tab.deleteRow(irow);
  }
}

function addRowDOM (tableID) { 
// Add a row at the end to table with id=tableID (DOM) - used
        
  // pass every cell content as a further arg
  var table = document.getElementById(tableID);
  
  if (arguments.length > 1) {
    var row = table.insertRow(table.rows.length);
    var col = 0;
    for (var i = 1; i < arguments.length; i++) {
      if (arguments[i]!="") {
        col=col+1;
        var cell = row.insertCell(col - 1);
        cell.innerHTML = arguments[i];
      }  
    }
  }
}

function addRowHTML (tableID, html) {
// Add a row at the end to table with id=tableID (HTML) - not used

  var table = document.getElementById(tableID);
  var tbody = table.tBodies[table.tBodies.length - 1];
  var range = document.createRange();
  range.setStartAfter(tbody.lastChild);
  var docFrag = range.createContextualFragment(html);
  tbody.appendChild(docFrag);
}

function makeRow(scol1,scol2) {
  return '<tr><td>'+scol1+'</td><td><b>'+scol2+'</b></td></tr>';
}

function voegToe() {
// User has clicked 'Controleer bestelling'
// If all data are OK, a row will be added to the Order table
        
  //alert('In voegToe');
  
  var tab = document.getElementById('tabOrder');
  var lastRow = tab.rows.length;
  var s,sx;
  
  // Impose a maximum. As far as I can see, the maximum is arbitrary and can be
  // freely changed ...
  if (lastRow>=11) { // 280411: was 7
    alert('Maximaal aantal bestellingen in een keer is 10.');
    return;
  }

  // Get price parameters
  var vB=getBreedte();
  var vH=getHoogte();
  var vType=getType();  

  // Some checks - there is an additional check for width (Rolgordijnen only) below
  if (!doChecks(vB,vH,checkAlwaysReport)) return;

  // Houten jal: check for selected colour not supported
  if ((modeNow==modeHoutenJal) || (modeNow==modeAluJal)) {
    var ires=jalLamelCheckSelection(1); // 1=show error message
    if (ires==0) return;
    ires=jalLadderBandCheckSelection(1);
    if (ires==0) return;
  }
  else if (modeNow==modeVertLam) {
    var ires=vertlamLamelCheckSelection(1); // 1=show error message
    if (ires<0) return;
  }
  
  // Start building table entry      
  var sID="product_"+lastRow;
  
  var sCount='<center>';
  sCount+='<input type="text" name="'+sID+'" id="'+sID+'" readonly value="1" style="width:25px; text-align:right;">';
  sCount+='<br>';
  //sCount+='&nbsp;';
  sCount+='<a href="javascript:increase_value('+lastRow+');" title="Een erbij">[+]</a>&nbsp;';
  sCount+='<a href="javascript:decrease_value('+lastRow+');" title="Een eraf">[-]</a>';
  sCount+='</center>';
  
  var sRemove='<a href="javascript:removeOneRow('+lastRow+');" style="border-bottom=1px dashed blue; color=red">Verwijderen</a>';

  var sBediening=getBediening();
  
  if (modeNow==modePlisses) {
    var iABC=plisseGetTypeABC();
    if (iABC==plTypeVrijA) sBediening='Vrijhangend (A):'+sBediening; 
    else if (iABC==plTypeTopdownB) sBediening='Topdown (B):'+sBediening; 
    else sBediening='Topdown (C):Koord'; //+sBediening; 
  }
  
  // Basic price
  var total=calcPrice(vB,vH,vType);
  
  // Extra's
  if (modeNow==modeRolg2) 
    total=total+calcRolgExtraPrice(vB);
  else if (modeNow==modeHoutenJal) {
    var sLB=jalGetLadderband();
    if (sLB!='') total=jalAddLadderbandPrice(total); // Add 10%
  }    
  else if (modeNow==modeAluJal) {
    var el=document.getElementById('idLadderband');
    if ((el) && (el.checked)) {
      var sLB=jalGetLadderband();
      if (sLB!='') total=jalAddLadderbandPrice(total); // Add 10%
    }
    el=document.getElementById('idSpandraden');
    if ((el) && (el.checked)) total+=priceAluJalSpandraden;
    el=document.getElementById('idBadkamer');
    if ((el) && (el.checked)) total+=priceAluJalBadkamer;
    el=document.getElementById('idDeurclips');
    if ((el) && (el.checked)) total+=priceAluJalDeurclips;
    el=document.getElementById('idSteunen');
    if ((el) && (el.checked)) total+=priceAluJalSteunen;
  }    
  else if (modeNow==modePlisses) {
    var iP=plisseGetProfiel();
    if (iP>0) total=plisseAddProfielPrice(total);
    if (document.getElementById("rbTrekstang").checked) total=total+plMeerprijsTrekstang;
  }  
  
  total=Math.round(total*100)/100;
  
  sID="price_"+lastRow;
  var sPrice='<input type="text" name="'+sID+'" id="'+sID+'" readonly value="'+total+'" style="width:75px; text-align:right;">';
  
  var sTypeMont="nvt";
  if (modeNow==modeRolg2) {
    sTypeMont=getTypeName();
  }  
  else if ((modeNow==modeMulti) || (modeNow==modeHoutenJal) || (modeNow==modeAluJal) || (modeNow==modePlisses) || (modeNow==modeVertLam)) {
    sTypeMont=getMontage();
  }  
  
  //var sColour=document.forms[0].inpColour.value;
  var sColour=getColourName();
  
  // Do an extra width check
  if (modeNow==modeRolg2) {
    s=rolGordijnFindByName(sColour);
    if (s!='') {
      //s=dessinName[i]; // Name/File/MaxWidth
      
      sx=s.split("/");
      if ((sx[2]!='0') && (vB>sx[2])) {
        alert('De maximale breedte voor "'+sColour+'" is '+sx[2]+' cm.');
        return;
      }  
    }  
  }

  if (modeNow==modeRolg2) var sPos=getPositie();

  // Next we build the sExtra string which is passed to the order processing. This is NOT
  // what we show the user in this step, it goes to the shopping cart. What the user gets
  // to see is built below
  
  var sExtra="nvt";

  if (modeNow==modeRolg2) {
    sExtra='';
    if (schulpChecked()) sExtra=getSchulprand();
    el=document.getElementById('idDikkeBuis');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Dikke buis';
    el=document.getElementById('idSpandraad');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Spandraden';
    el=document.getElementById('idBeugels');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Metalen kettingmech';
    if (sExtra=='') sExtra='Geen';

  }
  else if (modeNow==modeMulti) {
    sExtra=getCassette();
  }  
  else if (modeNow==modeHoutenJal) {
    var sLamelB=jalGetLamelBreedte();
    sExtra=jalGetLadderband();
    if (sExtra=='') sExtra='Geen';
    sExtra=sLamelB+'/'+sExtra;
  }  
  else if (modeNow==modeAluJal) {
    var sLamelB=jalGetLamelBreedte();
    sExtra=sLamelB;
    
    var el=document.getElementById('idLadderband');
    if ((el) && (el.checked)) {
      sx=jalGetLadderband();
      if (sx) sExtra=sExtra+'/'+sx;
    }
    el=document.getElementById('idSpandraden');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Zijgeleiding';
    el=document.getElementById('idBadkamer');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Badkamer';
    el=document.getElementById('idDeurclips');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Deurclips';
    el=document.getElementById('idSteunen');
    if ((el) && (el.checked)) sExtra=sExtra+'/'+'Steunen';
  }
  else if (modeNow==modePlisses) {
    var sProfiel=plisseGetProfielName();
    sExtra=sProfiel;
    
    var sTrekstang='';
    if (document.getElementById("rbTrekstang").checked) {
      sTrekstang='Ja';
      sExtra=sExtra+'/Trekstang';
    }  
  }  
  else if (modeNow==modeVertLam) { 
    var sLamelB=vertlamGetLamelWidthStr()+'mm';
    sExtra=sLamelB+'/';
    
    var j=getChecked(document.forms[0].rbLamelrailKleur); 
    var sLamelrailKleur="?";
    if (j==1) sLamelrailKleur="Aluminium"; else sLamelrailKleur="Wit";
    sExtra=sExtra+sLamelrailKleur;
    
    var sWandsteun="";  
    if (document.getElementById("rbWandSteun").checked) {
      var nWS=vertlamCalcWandSteunCount(vB);
      if (nWS>0) {
        sWandsteun=nWS;  
        sExtra=sExtra+'/Wandsteun*'+nWS;
      }  
    }    
  }

  // Start Confirm message
    var sMsg="<table cellpadding='5'>";
    sMsg+=makeRow("Afmetingen",vB+" breed bij "+vH+" hoog"); 
    sMsg+=makeRow("Bediening",sBediening);
    
  // Type or Montage
    if (modeNow==modeRolg2) {
      sMsg+=makeRow("Type",sTypeMont);
    }
    else if ((modeNow==modeMulti) || (modeNow==modeHoutenJal) || (modeNow==modeAluJal) || (modeNow==modePlisses) || (modeNow==modeVertLam)) {
      sMsg+=makeRow("Montage",sTypeMont);
    }
    
    sMsg+=makeRow("Kleur/dessin",sColour); 
    
    if (modeNow==modeRolg2) {
      sMsg+=makeRow("Positie",sPos);
      sMsg+=makeRow("Extra opties",sExtra); 
      sBediening=sBediening+'/'+sPos; // For the shopping cart
    }  
    else if (modeNow==modeMulti) {
      sMsg+=makeRow("Cassette",sExtra);
    }
    else if (modeNow==modeHoutenJal) {
      sLamelB=jalGetLamelBreedte();
      sMsg+=makeRow("Lamel breedte",sLamelB);
      
      var sLadder=jalGetLadderband();
      if (sLadder=='') sLadder='Geen';
      sMsg+=makeRow("Ladderband",sLadder);
    }
    else if (modeNow==modeAluJal) {
      sLamelB=jalGetLamelBreedte();
      sMsg+=makeRow("Lamel breedte",sLamelB);
      
      el=document.getElementById('idLadderband');
      if ((el) && (el.checked)) {
        var sLadder=jalGetLadderband();
        if (sLadder) sMsg+=makeRow("Ladderband",sLadder);
      }
      
      s='';
      el=document.getElementById('idSpandraden');
      if ((el) && (el.checked)) s+="+Zijgeleiding";
      el=document.getElementById('idBadkamer');
      if ((el) && (el.checked)) s+="+Badkamerkwaliteit";
      el=document.getElementById('idDeurclips');
      if ((el) && (el.checked)) s+="+Deurclips";
      el=document.getElementById('idSteunen');
      if ((el) && (el.checked)) s+="+Steunen";
      if (s!='') sMsg+=makeRow("Opties",s);
    }
    else if (modeNow==modePlisses) { 
      sMsg+=makeRow("Profiel",sProfiel);
      if (sTrekstang!='') sMsg+=makeRow("Trekstang",sTrekstang);
    }
    else if (modeNow==modeVertLam) { 
      sMsg+=makeRow("Lamel breedte",sLamelB);
      sMsg+=makeRow("Lamelrail kleur",sLamelrailKleur);
      if (sWandsteun!='') sMsg+=makeRow("Wandsteun",sWandsteun);
    }
    
    sMsg+=makeRow("Prijs","euro "+total);
    sMsg+="</table>";
  // End Confirm message

  /*
  var r=confirm(sMsg);
  if (r) {
    addRowDOM('tabOrder',vB,vH,sBediening,sTypeMont,sColour,sExtra,sCount,sPrice,sRemove);
    document.getElementById('inpBreed').value='';
    document.getElementById('inpHoog').value='';
    document.getElementById('divOrderAgain').style.display="inline";
    document.getElementById('divOrder').focus();
  }
  */
  
  var order = {"B":vB,"H":vH,"Bediening":sBediening,"TypeMont":sTypeMont,"Colour":sColour,"Extra":sExtra,"Count":sCount,"Price":sPrice,"Remove":sRemove};
  doConfirm(sMsg,order);

  return true;
}

function addOrder(order)
{
  addRowDOM('tabOrder',order.B,order.H,order.Bediening,order.TypeMont,order.Colour,order.Extra,order.Count,order.Price,order.Remove);

  // Prepare for new order
  //document.getElementById('inpBreed').value='';
  //document.getElementById('inpHoog').value='';
  document.getElementById('divOrderAgain').style.display="inline";
  document.getElementById('divOrder').focus();
}

function Bestel() {
// User has clicked 'Plaats bestelling in winkelwagen'
// We build a long string which is later parsed by index.php and passed on to
// the winkelwagen code

  var count,price;
  
  var tab = document.getElementById('tabOrder');
  var nrow=tab.rows.length;
  
  if (nrow<=1) {
    alert('U heeft nog geen producten toegevoegd.');
  }
  else {
    var s='';
    for (var i = 1; i<nrow; i++) {
      // We read the two input fiels in the table row for product 'i' separately
      // This because IE will return their correct and current values also if
      // we only read the table row but Chrome and Firefox will not, they will
      // return the original values in the table row but the correct values when 
      // reading the fields directly
      count = document.getElementById("product_"+i).value;
      price = document.getElementById("price_"+i).value;

      // The price is the total price, i.e. count*item_price and we want to pass on item_price
      if (count>1) price=price/count;

      //alert('count='+count+', price='+price);

      s=s+tab.rows[i].innerHTML+'::'+count+'::'+price+'|';
    }
    //alert('inpOrder='+s);
    document.getElementById('inpOrder').value=s;
    document.bestelform.submit();
  }
    
  return true;
}

	
function toggleSchulp() {
// Toggle schulpranden image on/off        
  var sch = document.getElementById("divSchulp");
	
  //if (document.getElementById("rbSchulpranden").checked) {
  if (sch.style.display=='block') {
    sch.style.display = 'none';
  } 
  else {
    sch.style.display = 'block';
  }
}

function doChecks(vB,vH,iOptions) {
// Do some sanity checks on the order        
// iOptions=checkAlwaysReport or iOptions=checkNoReportOnEmpty

  // If either B or H is 0, the user has either entered 0 (unlikely)
  // or the field is empty (likely)
  if ((iOptions==checkNoReportOnEmpty) && ((vB==0) || (vH==0))) return false;

  var sPre=getName(modeNow); // Product name
  var sArt=getArticle(modeNow); // de of het
  sPre='Voor '+sArt+' gekozen '+sPre+' is er helaas ';

  if (vB<minWidth) {
    alert(sPre+"onder "+minWidth+" cm breed niets leverbaar.");
    return false;
  }

  if (vH<minHeight) {
    alert(sPre+" onder "+minHeight+" cm hoog niets leverbaar.");
    return false;
  }

  if (vH>maxHeight2) {
    alert(sPre+" boven "+maxHeight2+" cm hoog niets leverbaar.");
    return false;
  } 

  if (vB>getMaxWidth(vH)) {
    var maxw=getMaxWidth(vH);
        
    if (modeNow==modePlisses)
      alert("De maximale breedte voor de gekozen plissé (type,groep) is "+maxw+" cm.");
    else {
      var s='en voor '+sArt+' gekozen '+sPre;
      alert("Bij de aangegeven hoogte "+s+" is "+maxw+" cm de maximale breedte.");
    }
    return false;
  }

  if (modeNow==modeRolg2) {
    if ((document.getElementById('idBeugels').checked) && (vB>210)) {
      alert('U heeft "Metalen kettingmechanisme" aangegeven maar de opgegeven breedte is daarvoor te groot.\n'+
            'Maximale breedte is t/m 210 cm en de opgegeven breedte is '+vB+' cm.');
      return false;
    }
  }

  return true;
}
  
function Calculate() {
// Calculate price

  var vB=getBreedte();
  var vH=getHoogte();
  
  if ((vB>0) && (vH>0)) {
    var vType=getType();  
    var price=calcPrice(vB,vH,vType);
  }
  else
    var price=0;
    
  //alert('Calculate() price:'+price);
  
  if (price==0) {
    document.getElementById('divPrice1').innerHTML = "";
    //document.getElementById('divPrice1x').innerHTML = "";
    document.getElementById('divPrice2').innerHTML = "";
    document.getElementById('divTotal').innerHTML = "";
  }  
  else {
    var s=roundPrice(price);

    if ((modeNow==modeRolg2) && (actie>0) && (3>2)) {
      var btw=0.19;
      var ap=price/(1+btw);
      ap=ap*(100-actiePercentage)/100;
      ap=ap*(1+btw);
      var sap=roundPrice(ap);

      var sp="Prijs: <span class=\"price\">&euro; "+s+"</span>&nbsp;Actie: <span class=\"actprice\">"+sap+"</span>";
    }
    else {
      var sp="Prijs: <span class=\"price\">&euro; "+s+"</span>";
    }

    document.getElementById('divPrice1').innerHTML = sp;
    //document.getElementById('divPrice1x').innerHTML = sp;
    document.getElementById('divPrice2').innerHTML = sp;

    s="";
    var v=price;
    if (modeNow==modeRolg2) {
      v=v+calcRolgExtraPrice(vB);
      s=roundPrice(v);
      if (actie>0) {
        ap=ap+calcRolgExtraPrice(vB);
        sap=roundPrice(ap);
        s="Totaal (incl. 19% BTW): <span class=\"price\">&euro; "+s+"</span>&nbsp;Actie: <span class=\"actprice\">"+sap+"</span>";
      }
      else
        s="Totaal (incl. 19% BTW): <span class=\"price\">&euro; "+s+"</span>";
    }
    else if (modeNow==modeHoutenJal) { 
      var sLB=jalGetLadderband();
      if (sLB!='') v=jalAddLadderbandPrice(v); // Add 10%
    }
    else if (modeNow==modeAluJal) { 
      el=document.getElementById('idLadderband');
      if ((el) && (el.checked)) {
        var sLB=jalGetLadderband();
        if (sLB!='') v=jalAddLadderbandPrice(v); // Add 10%
      }
      el=document.getElementById('idSpandraden');
      if ((el) && (el.checked)) v+=priceAluJalSpandraden;
      el=document.getElementById('idBadkamer');
      if ((el) && (el.checked)) v+=priceAluJalBadkamer;
      el=document.getElementById('idDeurclips');
      if ((el) && (el.checked)) v+=priceAluJalDeurclips;
      el=document.getElementById('idSteunen');
      if ((el) && (el.checked)) v+=priceAluJalSteunen;
    }
    else if (modeNow==modePlisses) {
      var iP=plisseGetProfiel();
      if (iP>0) v=plisseAddProfielPrice(v);
      if (document.getElementById("rbTrekstang").checked) v=v+plMeerprijsTrekstang;
    }

    if (s=="") {
      s=roundPrice(v);
      s="Totaal (incl. 19% BTW): <span class=\"price\">&euro; "+s+"</span>";
    }

    document.getElementById('divTotal').innerHTML = s;
  }
  
  if (modeNow==modeVertLam) vertlamUpdateWandSteun();
}

function updatePrice(iOptions) {
// Check and calculate - see doChecks  for iOptions
  var vB=getBreedte();
  var vH=getHoogte();
  if (doChecks(vB,vH,iOptions)) Calculate();
}

function setStaaltjeRequest(sName) {  
  // Check if this colour is in the requested 'staaltjes' string
  var cb=document.getElementById('cbStaaltje');
  if (cb) {
    var img=document.getElementById('imgStaaltje');
    var req=document.getElementById('txtStaaltjes');
    var sreq=req.value;
    var sx=sreq.split("|",sreq);
    var ix=sreq.indexOf(sName);

    if (ix<0) {
      cb.checked=false;
      img.style.display='none';
    }
    else {
      cb.checked=true;
      img.style.display='inline';
    }
  }
}

function doColourClick(AObj,sPrijsGroep,AIndex) {
// A pattern/colour/whatever selected, i.e. one of the small images have been clicked
// We update the big one and change the name (and some more things)
  
  // Start with the highest and move on down
  /* Stresa vouwgordijnen weggehaald 26-10-10
  if (AIndex>=imgIndexOffsetVouw2) {
    var sNFI=vouwName2[AIndex-imgIndexOffsetVouw2];           // Name/File/WidthInfo
    vouwType=typeVouw1;
  }
  else 
  */
  if (AIndex>=imgIndexOffsetVouw1) {
    var sNFI=vouwName1[AIndex-imgIndexOffsetVouw1];           // Name/File/WidthInfo
    vouwType=typeVouw2;
  }
  else if (AIndex>=imgIndexOffsetAluJal) 
    var sNFI=ajName[AIndex-imgIndexOffsetAluJal];          // Name/File/WidthInfo
  else if (AIndex>=imgIndexOffsetVertLam3) 
    var sNFI=vlName3[AIndex-imgIndexOffsetVertLam3];       // Name/File/WidthInfo
  else if (AIndex>=imgIndexOffsetVertLam2) 
    var sNFI=vlName2[AIndex-imgIndexOffsetVertLam2];       // Name/File/WidthInfo
  else if (AIndex>=imgIndexOffsetVertLam1) 
      var sNFI=vlName1[AIndex-imgIndexOffsetVertLam1];     // Name/File/WidthInfo
  else if (AIndex>=imgIndexOffsetPlisses2) 
    var sNFI=plName2[AIndex-imgIndexOffsetPlisses2];       // Name/File
  else if (AIndex>=imgIndexOffsetPlisses1) 
    var sNFI=plName1[AIndex-imgIndexOffsetPlisses1];       // Name/File
  else if (AIndex>=imgIndexOffsetHoutenJal) 
    var sNFI=hjName[AIndex-imgIndexOffsetHoutenJal];       // Name/File/WidthInfo
  else if (AIndex>=imgIndexOffsetMulti2) 
    var sNFI=multiBocacyName[AIndex-imgIndexOffsetMulti2]; // Name/File/WidthHeightInfo
  else if (AIndex>=imgIndexOffsetMulti1) 
    var sNFI=multiNormalName[AIndex-imgIndexOffsetMulti1]; // Name/File/WidthHeightInfo

  else if (AIndex>=imgIndexOffsetRolgLinnen) {
    var sNFI=linnenName[AIndex-imgIndexOffsetRolgLinnen];
    rolgType=typeLinnen;
  }
  else if (AIndex>=imgIndexOffsetRolgVerd255) {
    var sNFI=verd255Name[AIndex-imgIndexOffsetRolgVerd255];
    rolgType=typeVerd255;
  }
  else if (AIndex>=imgIndexOffsetRolgBedr180) {
    var sNFI=bedr180Name[AIndex-imgIndexOffsetRolgBedr180];
    rolgType=typeBedr180;
  }
  else if (AIndex>=imgIndexOffsetRolgVerd180Wit) {
    var sNFI=verd180WitName[AIndex-imgIndexOffsetRolgVerd180Wit];
    rolgType=typeVerd180Wit;
  }
  else if (AIndex>=imgIndexOffsetRolgVerd180) {
    var sNFI=verd180Name[AIndex-imgIndexOffsetRolgVerd180];
    rolgType=typeVerd180;
  }
  /*
  else if (AIndex>=imgIndexOffsetRolgECO) {
    var sNFI=ecoName[AIndex-imgIndexOffsetRolgECO];
    rolgType=typeECO;
  }
  */
  else if (AIndex>=imgIndexOffsetRolgBedr) {
    var sNFI=bedruktName[AIndex-imgIndexOffsetRolgBedr];
    rolgType=typeBedrukt;
  }
  else if (AIndex>=imgIndexOffsetRolgTransStreep) {
    var sNFI=transStreepName[AIndex-imgIndexOffsetRolgTransStreep];
    rolgType=typeTransStreep;
  }
  else if (AIndex>=imgIndexOffsetRolgTrans) {
    var sNFI=transName[AIndex-imgIndexOffsetRolgTrans];
    rolgType=typeTrans;
  }
  else if (AIndex>=imgIndexOffsetRolgSemiTrans) {
    var sNFI=semitransName[AIndex-imgIndexOffsetRolgSemiTrans];
    rolgType=typeSemiTrans;
  }
  else if (AIndex>=imgIndexOffsetRolgUNI255) {
    var sNFI=uni255Name[AIndex-imgIndexOffsetRolgUNI255];
    rolgType=typeUNI255;
  }
  else if (AIndex>=imgIndexOffsetRolgUniII) {
    var sNFI=uniIIName[AIndex-imgIndexOffsetRolgUniII];
    rolgType=typeUniII;
  }
  else {
    var sNFI=uniName[AIndex-imgIndexOffsetRolgUNI];
    rolgType=typeUNI;
  }

//alert('AIndex='+AIndex);

  var sx=sNFI.split("/");
  var sName=sx[0];
  var sFile=sx[1];
  var sCol=sx[1];

  // Start with the highest and move on down
  /*
  if (AIndex>=imgIndexOffsetVouw1) { // Both groups of vouwgordijnen
    sFile='Vouwgordijnen/'+sFile;
    
    i=0;
    //if (AIndex>=imgIndexOffsetVouw2) i=1;
    
    obj=document.getElementById('tdColourImg'); // The table cell that contains divColourImg
    obj.style.paddingTop=0+i*160;
  }
  else if (AIndex>=imgIndexOffsetAluJal) {
    // Not all types support all widths
    var sLB=jalGetLamelBreedte();
    var el=document.getElementById('divAluJalAvailInfo');
    if (jalLamelBreedteOK(sLB,sx[2])==0) {
      sFile='x_'+sFile;
      el.style.display='inline';
    }
    else {
      el.style.display='none';
    }
    sFile='Alujal/'+sFile;
    
    var i=AIndex-imgIndexOffsetAluJal;
    i= Math.floor(i/4);
    
    obj=document.getElementById('tdColourImg'); // The table cell that contains divColourImg
    obj.style.paddingTop=40+i*(58+6);
  }      
  else if (AIndex>=imgIndexOffsetVertLam1) { // For all 3 groups of verticale lamellen
    sFile='Vertlam/'+sFile;
    //sName=sName+' ('+sx[2]+')';
    
    var obj=document.getElementById('imgBadSel'); // Image 'X'
    var sLB=vertlamGetLamelWidthStr();
    var iLB=sx[2].indexOf(sLB);
    if (iLB<0) // Lamel width sLB not allowed for selected lamel, so show 'X'
      obj.style.display='block';
    else  
      obj.style.display='none';
      
    obj=document.getElementById('tdColourImg'); // The table cell that contains divColourImg
    if (AIndex>=imgIndexOffsetVertLam3)      // The group lowest on the page
      obj.vAlign="Bottom";
    else if (AIndex>=imgIndexOffsetVertLam2) // The mid group
      obj.vAlign="Bottom"; // or "Center"
    else                                     // The top group
      obj.vAlign="Top";
  }      
  else if (AIndex>=imgIndexOffsetPlisses1) { // For both groups of plisses
    sFile='Plisses/'+sFile;
  }  
  else if (AIndex>=imgIndexOffsetHoutenJal) {
    // Not all types support all widths
    var sLB=jalGetLamelBreedte();
    var el=document.getElementById('divHoutenJalAvailInfo');
    if (jalLamelBreedteOK(sLB,sx[2])==0) {
      sFile='x_'+sFile;  
      el.style.display='inline';
    }
    else {
      el.style.display='none';
    }
    sFile='Houten_jal2/'+sFile;
  }
  */
  //else 

  if (AIndex>=imgIndexOffsetMulti2) 
    sFile='Multishade/'+sFile;
  else if (AIndex>=imgIndexOffsetMulti1) 
    sFile='Multishade/'+sFile;
  else {
    if (modeNow==modeRolg2) {
      var i=0;

      if (groupID==2) {
        i=2;
        if ((AIndex<imgIndexOffsetRolgVerd180) || (AIndex>(imgIndexOffsetRolgVerd180+verd180Name.length))) i=(verd180Name.length/3);
      }
      else if (groupID==3) {
        i=2;
        var n=bedruktName.length+uniIIName.length;
        if ((AIndex>=imgIndexOffsetRolgSemiTrans) && (AIndex<(imgIndexOffsetRolgSemiTrans+semitransName.length))) i=(n/3)-2;
        if ((AIndex>=imgIndexOffsetRolgTrans) && (AIndex<(imgIndexOffsetRolgTrans+transName.length))) i=(n/3)-2;
        if ((AIndex>=imgIndexOffsetRolgTransStreep) && (AIndex<(imgIndexOffsetRolgTransStreep+transStreepName.length))) i=(n/3)-2;
      }

      /*
      if (AIndex>=imgIndexOffsetRolgUniII     ) i=i+Math.floor(uniName.length/6);
      if (AIndex>=imgIndexOffsetRolgUNI255    ) i=i+Math.floor(uniIIName.length/3);
      if (AIndex>=imgIndexOffsetRolgSemiTrans ) i=i+Math.floor(uni255Name.length/3);
      if (AIndex>=imgIndexOffsetRolgTrans     ) i=i+Math.floor(semitransName.length/3);
      if (AIndex>=imgIndexOffsetRolgBedr      ) i=i+Math.floor(transName.length/3);
      if (AIndex>=imgIndexOffsetRolgVerd180   ) i=i+Math.floor(bedruktName.length/2);
      if (AIndex>=imgIndexOffsetRolgVerd180Wit) i=i+Math.floor(verd180Name.length/5);
      if (AIndex>=imgIndexOffsetRolgBedr180   ) i=i+Math.floor(verd180WitName.length/5);
      if (AIndex>=imgIndexOffsetRolgVerd255   ) i=i+Math.floor(bedr180Name.length/3);
      // Need to add a bit for imgIndexOffsetRolgLinnen?
      */

      if (i>0) {
        obj=document.getElementById('tdColourImg'); // The table cell that contains divColourImg
        obj.style.paddingTop=10+i*55;
      }

      sFile='Rolgordijnen2/'+sFile;
    }
  }
  
  //setColourName(AObj.title);
  //document.getElementById('divColourImg').style.backgroundImage="url(imagesgroot/"+sImgSrc+")";
  
  setColourName(sName);
  //setStaaltjeRequest(sName);

  var el=document.getElementById('divColourImg');
  if (sCol.charAt(0)=='#') { // It is a colour value
    el.style.backgroundImage="none";
    el.style.backgroundColor=sCol;
  }
  else { // It is an image file
    el.style.backgroundImage="url(imagesgroot/"+sFile+")";
    el.style.backgroundColor='#ffffff';
  }
  
  if (modeNow==modeMulti) {
    sx=sNFI.split("/");
    var swh=sx[2]; // MaxWidth_MaxHeight
    sx=swh.split("_");
    maxWidth1=parseInt(sx[0]);
    maxWidth2=maxWidth1;
    maxHeight1=parseInt(sx[1]);
    maxHeight2=maxHeight1;
    //alert('Max width='+maxWidth1+', max height='+maxHeight1);
  }
  else if (modeNow==modePlisses) { // Zonwerend and Verduisterend (iType) have different max dimensions
    var iType=getType();
    var iABC=plisseGetTypeABC();
    plisseChangeMax(iType,iABC);
  }

  //Calculate();
  updatePrice(checkNoReportOnEmpty); // Checks H and W
}

function doStaaltje(AID) {
  var cb=document.getElementById('cbStaaltje');
  var sCol=getColourName();

  var req=document.getElementById('txtStaaltjes');
  var sreq=req.value;

  var ix=sreq.indexOf(sCol+'|');
  var sx=sreq.split("|");
  var nx=sx.length-1;

  if ((cb.checked) && (nx==4)) {
    alert('Niet meer dan 4 staaltjes AUB.');
    cb.checked=false;
    img.style.display='none';
    return;
  }

  // If checked and not already selected, select it
  if ((cb.checked) && (ix<0)) {
    req.value=sCol+"|"+req.value;
  }
  else if ((!cb.checked) && (ix>=0)) {
    //alert('Remove '+sCol);
    sv='';
    for (var i=0; i<nx; i++) {
      if (sx[i]!=sCol) sv=sv+sx[i]+'|';
    }
    req.value=sv;
  }

  //alert(sCol+': '+cb.checked+'/'+img.style.display+'/'+req.value+'/'+nx);

  if (AID==99)
    document.forms[0].action='index.php?page=Duo';
  else
    document.forms[0].action='index.php?page=Rolgordijnen_1&id='+AID;
  document.forms[0].submit();
}

function IsNumeric(sText) {
   var ValidChars = "0123456789"; // Integers only
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function handleExtra() {
// Used by any product with extra items to re-calculate the price        
  //if (modeNow==modeRolg) toggleSchulp();
  
  if (modeNow==modeAluJal) {
    el=document.getElementById('idLadderband');
    if (el.disabled=='') el.checked=true;
  }
  
  Calculate();
}

function handleExtra2(ipar) {
// Used by any product with extra items to re-calculate the price        
  if (modeNow==modeRolg2) {
    if (ipar==1) 
      toggleSchulp();
    else if (ipar==2) {
      if (document.getElementById('idBeugels').checked) {
        var vB=getBreedte();
        if (vB>210) {
          document.getElementById('idBeugels').checked=false;
          alert('Alleen voor breedte t/m 210 cm - Opgegeven breedte='+vB);
        }
      }
    }
    
    // Beugels (Metalen kettingmechanisme) kan alleen op dunne buis dus dikke buis en beugels
    // zijn wederzijds uitsluitend (04-03-2011)
    document.getElementById('idBeugels').disabled=false;
    document.getElementById('idDikkeBuis').disabled=false;
    
    if (document.getElementById('idDikkeBuis').checked) {
      document.getElementById('idBeugels').checked=false;
      document.getElementById('idBeugels').disabled=true;
    }
    else if (document.getElementById('idBeugels').checked) {
      document.getElementById('idDikkeBuis').checked=false;
      document.getElementById('idDikkeBuis').disabled=true;
    }
  }
  else if (modeNow==modeAluJal) {
    el=document.getElementById('idLadderband');
    if (el.disabled=='') el.checked=true;
  }
  
  Calculate();
}

function rgHandlePositie(iPos) {
// iPos=0 Achter de rol
// iPos=1 Voor de rol (contra)
// Bij Contra rollend zijn spandraden niet mogelijk

  var el=document.getElementById('idSpandraad');
  if ((iPos==1) && (el.checked)) el.checked=false;
  
  el=document.getElementById('divSpandraad');
  if (iPos==0)
  	el.style.display='block';
  else
  	el.style.display='none';
}

function jalLadderBandClick(sName) {
// Houten/Alu jal: triggered when a ladderband image is clicked
  //alert('houtenJalLadderBandClick: '+sName);
  jalSetLadderbandByName(sName)
  handleExtra();
}

function plisseHandleProfielClick(iP) {
// Another colour profiel has been selected        
  plisseSetProfiel(iP);        
  handleExtra();
}        

function plisseHandleTypeClick(iABC) {
// 'Vrijhangend' of 'Topdown'        
// Change min/max dimensions and selection of 'trekstang'
// Also make 'greepje' selected bediening

  var obj=document.getElementById('tabTrekstang');
  
  if (iABC==plTypeTopdownB) {
    obj.style.display = 'block';
  }      
  else {
    obj.style.display = 'none';
    obj=document.getElementById('rbTrekstang');
    obj.checked=false;
  }
  
  var iType=plisseGetType();
  plisseChangeMax(iType,iABC);
  
  // Set default bediening
  if (iABC==plTypeVrijA)
    obj=document.getElementById('idBedieningRechts');
  else  
    obj=document.getElementById('idBedieningGreep');
  obj.checked=true;
  
  if (iABC==plTypeVrijA) {
    var sA='block'; var sB='none';
  }  
  else if (iABC==plTypeTopdownB) {
    var sA='none'; var sB='block';
  }
  else {
    var sA='none'; var sB='none';
  }
  
  obj=document.getElementById('idBedieningTextLR');
  obj.style.display=sA;
  
  obj=document.getElementById('idBedieningTextGreep');
  obj.style.display=sB;
  
  obj=document.getElementById('tabBedieningLR');
  obj.style.display=sA;
  obj=document.getElementById('tabBedieningGreep');
  obj.style.display=sB;

  //Calculate();
  updatePrice(checkNoReportOnEmpty); // Performs checking
}
        
function jalWrLadderbandTable(AMode) {
// Create the table with ladderband images and radiobuttons

  if (AMode==modeHoutenJal) {
    var n=hjLadderName.length;
    var sPre='hj';
    var sDir='Houten_jal2';
  }
  else {
    var n=ajLadderName.length;
    var sPre='aj';
    var sDir='Alujal';
  }
  
  var s='';
  var sNF='';
  var sx='';
  var sFile='';
  var sID='';
  var sLB=jalGetLamelBreedte();

  //alert('jalWrLadderbandTable: '+n+'/'+AMode);
  
  document.write('<tr>');
  var i=0; var j=0;
  while (i<n) {
    if (AMode==modeHoutenJal)
      s=hjLadderName[i]  // Name/File/WidthInfo
    else
      s=ajLadderName[i]; // Name/File/WidthInfo
    sNF=s.split("/");
    
    if (jalLamelBreedteOK(sLB,sNF[2])==1) 
      sFile=sNF[1];
    else
      sFile='x_'+sNF[1];  
      
    //alert('File: ['+sFile+']');  
    
    if (j>3) {
      document.write('</tr>');
      document.write('<tr>');
      j=0;
    }  
    sx='<td';
    sx=sx+' class="'+sPre+'colLadderband">'
    document.write(sx);
    sx="'"+sNF[0]+"'";
    sx='onclick="jalLadderBandClick('+sx+')"'; 
    sID=sPre+'imgLB_'+i;
    sID='id="'+sID+'"';
    document.write('<img class="'+sPre+'imgLadderband" src="./images/'+sDir+'/'+sFile+'"'+sx+' '+sID+' /><br>');
    document.write('<input type="radio" name="rbLadderband" value="'+sNF[0]+'" onclick="handleExtra()" '); 
    if (sNF[0]=="Geen") document.write('checked ');
    document.write('/>');
    document.write('<strong>'+sNF[0]+'</strong><br />');
    document.write('</td>');
    
    i++;
    j++;
  }    
  document.write('</tr>');
}
       
function houtenJalDoLamelWidthChange() {
// HoutenJal only: selection of 'lamel breedte' has changed
// So some selections must be marked as enabled/disabled
  
  // This will fix the table with small images
  initHoutenJalNames();

  // Check currently selected jalozie
  var ires=jalLamelCheckSelection(0); // 0=no messages
  
  var i=jalGetSelectedJalozie();
  var s=hjName[i];
  var sNF=s.split("/"); // Name/File/WidthInfo
  
  if (ires==1) 
    var sFile=sNF[1];
  else
    var sFile='x_'+sNF[1];  

  var el=document.getElementById('divColourImg');
  el.style.backgroundImage="url(imagesgroot/Houten_jal2/"+sFile+")";
  el.style.backgroundColor='#ffffff';
  
  var sLB=jalGetLamelBreedte();
  
  // Not all colours are available for all lamel widths - show info text if that's the case
  // sNF is still selected jalozie here
  el=document.getElementById('divHoutenJalAvailInfo');
  if (el) {
    ires=jalLamelBreedteOK(sLB,sNF[2]);
    if (ires==1)
      el.style.display='none';
    else  
      el.style.display='inline';
  }

  // Now ladderband
  var n=hjLadderName.length;
  var el;
  i=0; 
  while (i<n) {
    s=hjLadderName[i]; // Name/File/WidthInfo
    sNF=s.split("/");
    
    ires=jalLamelBreedteOK(sLB,sNF[2]);
    
    if (ires==1)
      sFile=sNF[1];
    else
      sFile='x_'+sNF[1];  
      
    sID='hjimgLB_'+i;
    el=document.getElementById(sID);
    if (el) el.src='./images/Houten_jal2/'+sFile; else alert('El not found for ID="'+sID+'" ('+sFile+')');
    
    i++;
  }  
}

function aluJalDoLamelWidthChange() {
// HoutenJal only: selection of 'lamel breedte' has changed
// So some selections must be marked as enabled/disabled
  
  // This will fix the table with small images
  initAluJalNames();
  
  // Check currently selected jalozie
  var ires=jalLamelCheckSelection(0); // 0=no messages
  
  var i=jalGetSelectedJalozie();
  var s=ajName[i];
  var sNF=s.split("/"); // Name/File/WidthInfo
  
  if (ires==1) 
    var sFile=sNF[1];
  else
    var sFile='x_'+sNF[1];  

  var el=document.getElementById('divColourImg');
  if (el) {
    el.style.backgroundImage="url(imagesgroot/Alujal/"+sFile+")";
    el.style.backgroundColor='#ffffff';
  }
  
  var sLB=jalGetLamelBreedte();
  
  // Ladderband is for 50mm only
  // Show/hide the table
  el=document.getElementById('tabLadderband');
  if (el) {
    if (sLB==sLamB50)
      el.style.display='inline';
    else  
      el.style.display='none';
  }

  // Disable/enable and uncheck checkbox (because always visible)
  el=document.getElementById('idLadderband');
  if (el) {
    if (sLB==sLamB50)
      el.disabled=''
    else {
      el.disabled='disabled';
      el.checked=false;
      
      // Uncheck any selected ladderband
      var j=jalGetLadderbandIndex();      
      if (j>=0) document.forms[0].rbLadderband[j].checked=false;
    }
  }
  
  // Disable/enable and uncheck checkbox for other options
  el=document.getElementById('idSpandraden');
  if (el) {
    if (sLB==sLamB25)
      el.disabled=''
    else {
      el.disabled='disabled';
      el.checked=false;
    }
  }
  el=document.getElementById('idBadkamer');
  if (el) {
    if ((sLB==sLamB16) || (sLB==sLamB25))
      el.disabled=''
    else {
      el.disabled='disabled';
      el.checked=false;
    }
  }
  el=document.getElementById('idDeurclips');
  if (el) {
    if ((sLB==sLamB16) || (sLB==sLamB25))
      el.disabled=''
    else {
      el.disabled='disabled';
      el.checked=false;
    }
  }
  
  // Not all colours are available for all lamel widths - show info text if that's the case
  // sNF is still selected jalozie here
  el=document.getElementById('divAluJalAvailInfo');
  if (el) {
    ires=jalLamelBreedteOK(sLB,sNF[2]);
    if (ires==1)
      el.style.display='none';
    else  
      el.style.display='inline';
  }
  
  // Now ladderband update (changes sNF)
  var n=ajLadderName.length;
  var el;
  i=0; 
  while (i<n) {
    s=ajLadderName[i]; // Name/File/WidthInfo
    sNF=s.split("/");
    
    ires=jalLamelBreedteOK(sLB,sNF[2]);
    
    if (ires==1)
      sFile=sNF[1];
    else
      sFile='x_'+sNF[1];  
      
    sID='ajimgLB_'+i;
    el=document.getElementById(sID);
    if (el) el.src='./images/Alujal/'+sFile; else alert('El not found for ID="'+sID+'" ('+sFile+')');
    
    i++;
  }
  
  Calculate();
}

function aluJalToggleLadderband() {
// AluJal only: the ladderband checkbox
  el=document.getElementById('idLadderband');
  var j=jalGetLadderbandIndex();
  
  // Checkbox is disabled and/or unchecked - deselect any selected ladderband
  if ((el.disabled) || (!el.checked)) {
    if (j>=0) document.forms[0].rbLadderband[j].checked=false;
  }
  // Checkbox is enabled and checked - select a ladderband if none selected
  else {
    if (j<0) document.forms[0].rbLadderband[0].checked=true;
  }
  
  Calculate();
}

function vertlamLamelWidthChange() {
// VertLam only: selection of 'lamel breedte' has changed
// So some selections must be marked as enabled/disabled
        
  // This will fix the table with small images
  initVertLamNames(1);
  initVertLamNames(2);
  initVertLamNames(3);
  
  // Check currently selected lamel
  var ires=vertlamLamelCheckSelection(0); // 0=no messages
  var el=document.getElementById('imgBadSel');
  
  if (ires<0)
    el.style.display='block'; // Show the 'X'
  else  
    el.style.display='none';
  
  var sB=getBreedte();
  var sH=getHoogte();
  
  if ((sB!='0') && (sH!='0')) Calculate();        
}
        
// --------- Init table with sample display

function initDessinNames() {
// Rolgordijn        
// Note: the row and column layout can only be changed
// by changing the actual layout (code in the database)
// We could dynamically change the table I suppose ...
  
  var j=0;
  var jmax=dessinName.length;
  var s,sx;
  var irow=0;
  var icol=0;
  var ncol=3;
  
  tab=document.getElementById('tabDessin');
  
  while (j<jmax) {
    s=dessinName[j]; // Name/File/MaxWidth (0=no limit)
    sx=s.split("/");
      
    s=sx[0];
    if (sx[2]!='0') s=s+' (max '+sx[2]+' cm breed)';
      
    tab.rows[irow].cells[icol].title=s;        
    tab.rows[irow].cells[icol].style.backgroundImage="url(images/"+sx[1]+")";
      
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}
        
function initUniColourNames() {
// Rolgordijn        
  var j=0;
  var jmax=unicolName.length;
  var s,sx;
  var irow=0;
  var icol=0;
  var ncol=3;
  
  tab=document.getElementById('tabColour');
  
  while (j<jmax) {
    s=unicolName[j]; // Name/Colour
    sx=s.split("/");
    
    tab.rows[irow].cells[icol].title=sx[0];   
    
    if (sx[1].charAt(0)=='#') {    
      tab.rows[irow].cells[icol].style.backgroundColor=sx[1];
      tab.rows[irow].cells[icol].style.backgroundImage='none';
    }  
    else          
      tab.rows[irow].cells[icol].style.backgroundImage="url(images/"+sx[1]+")";
        
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initMultiShadeNames(AIndex) {
// Multishade        
  var j=0;
  var s,sx;
  var irow=0;
  var icol=0;
  
  if (AIndex==0) {
    var jmax=multiNormalName.length;
    var ncol=4;
    tab=document.getElementById('tabNormalMS');
  }
  else {
    var jmax=multiBocacyName.length;
    var ncol=4;
    tab=document.getElementById('tabBocacyMS');
  }
  
  while (j<jmax) {
    if (AIndex==0)
      s=multiNormalName[j]; // Name/File/maxw_maxh
    else
      s=multiBocacyName[j]; // Name/File/maxw_maxh
    sx=s.split("/");
      
    tab.rows[irow].cells[icol].title=sx[0];        
    tab.rows[irow].cells[icol].style.backgroundImage="url(images/Multishade/"+sx[1]+")";
      
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initHoutenJalNames() {
// Houten jal  
  var j=0;
  var jmax=hjName.length;
  var s,sx,sFile;
  var irow=0;
  var icol=0;
  var ncol=4;
  var sLB=jalGetLamelBreedte();
  
  //alert('initHoutenJalNames');
  tab=document.getElementById('tabHoutenJal');
  
  while (j<jmax) {
    s=hjName[j]; // Name/File/WidthInfo
    sx=s.split("/");
    sFile=sx[1];      
    if (jalLamelBreedteOK(sLB,sx[2])==0) sFile='x_'+sFile;  
    
    tab.rows[irow].cells[icol].title=sx[0];        
    tab.rows[irow].cells[icol].style.backgroundImage="url(images/Houten_jal2/"+sFile+")"; 
      
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initPlissesNames(iGroup) {
// Plisses
  var j=0;
  var s,sx,sFile;
  var irow=0;
  var icol=0;
  var ncol=4;

  if (iGroup==1) {
    var jmax=plName1.length;
    var tab=document.getElementById('tabPlisses1');
  }  
  else {
    var jmax=plName2.length;
    tab=document.getElementById('tabPlisses2');
  }
  
  while (j<jmax) {
    if (iGroup==1)  
      s=plName1[j]; // Name/File
    else  
      s=plName2[j]; // Name/File
      
    sx=s.split("/");

    sFile=sx[1];      
    
    tab.rows[irow].cells[icol].title=sx[0];        
    tab.rows[irow].cells[icol].style.backgroundImage="url(images/Plisses/"+sFile+")"; 
      
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initAluJalNames() {
// Alu jal  
  var j=0;
  var jmax=ajName.length;
  var s,sx,sFile;
  var irow=0;
  var icol=0;
  var ncol=4;
  var sLB=jalGetLamelBreedte(); // Houten and AluJal
  
  tab=document.getElementById('tabAluJal');
  
  while (j<jmax) {
    s=ajName[j]; // Name/File/WidthInfo
    sx=s.split("/");

    sFile=sx[1];      
    if (jalLamelBreedteOK(sLB,sx[2])==0) sFile='x_'+sFile;  
    
    tab.rows[irow].cells[icol].title=sx[0];        
    tab.rows[irow].cells[icol].style.backgroundImage="url(images/Alujal/"+sFile+")"; 
      
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initVertLamNames(iGroup) {
// Verticale lamellen
  var j=0;
  var iLB;
  var s,sx,sFile;
  var irow=0;
  var icol=0;

  if (iGroup==1) {
    var jmax=vlName1.length;
    var tab=document.getElementById('tabVertlam1');
    var ncol=5;
  }
  else if (iGroup==2) {
    var jmax=vlName2.length;
    var tab=document.getElementById('tabVertlam2');
    var ncol=5;
  }
  else if (iGroup==3) {
    var jmax=vlName3.length;
    var tab=document.getElementById('tabVertlam3');
    var ncol=5;
  }
  else
    return;

  var sLB=vertlamGetLamelWidthStr(); 
  while (j<jmax) {
    if (iGroup==1)
      s=vlName1[j]; // Name/File/Widthinfo
    else if (iGroup==2)
      s=vlName2[j]; // Name/File/Widthinfo
    else  
      s=vlName3[j]; // Name/File/Widthinfo
      
    sx=s.split("/");
  
    sFile=sx[1];      
    
    iLB=sx[2].indexOf(sLB);
    if (iLB<0) sFile='x2.gif';
    
    tab.rows[irow].cells[icol].title=sx[0]+' ('+sx[2]+'mm)';        
    tab.rows[irow].cells[icol].style.backgroundImage="url(images/Vertlam/"+sFile+")"; 
      
    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initRolgordijn(tabId,nameVec,ncol,sreq,sname) {
  var jmax=nameVec.length;
  var tab=document.getElementById(tabId);

  //alert('initRolgordijn :'+tabId+', length='+jmax);
  
  var s;
  var sx;
  var irow=0;
  var icol=0;
  
  sdir='Rolgordijnen2';
  if (modeNow==modeMulti) sdir='Multishade';

  var j=0;
  while (j<jmax) {
    s=nameVec[j];   // Name/File/Widthinfo
    sx=s.split("/");

    //sFile=sx[1];      
    
    tab.rows[irow].cells[icol].title=sx[0];
    
    if (sx[1].charAt(0)=='#') {    
      tab.rows[irow].cells[icol].style.backgroundColor=sx[1];
      tab.rows[irow].cells[icol].style.backgroundImage='none';
    }  
    else          
      tab.rows[irow].cells[icol].style.backgroundImage="url(images/"+sdir+"/"+sx[1]+")"; 

    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }

  if (sname!='') {
    s=sname;
  }
  else {
    if (sreq!='') {
      sx=sreq.split("|");

      var i=0;
      var n=sx.length-1;
      s='';

      while ((i<n) && (s=='')) {
        //alert('Find in '+tabId+': ['+sx[i]+']');
        j=rolGordijnFindByNameOneType(sx[i],nameVec);
        if (j>=0) {
          s=nameVec[j]; 
          //alert(tabId+'-find req: sreq='+sx[i]+'-->['+s+']/'+j);
        }
        else 
          i++;
      }
    }
    else {
      s=nameVec[0];
    }
  }

  return s;
}

function initVouwNames(tabId,nameVec,ncol) {
  var jmax=nameVec.length;
  var tab=document.getElementById(tabId);
  
  var s;
  var sx;
  var irow=0;
  var icol=0;
  
  var j=0;
  while (j<jmax) {
    s=nameVec[j];   // Name/File/Widthinfo
    sx=s.split("/");

    sFile=sx[1];      
    
    tab.rows[irow].cells[icol].title=sx[0];
    
    if (sx[1].charAt(0)=='#') {    
      tab.rows[irow].cells[icol].style.backgroundColor=sx[1];
      tab.rows[irow].cells[icol].style.backgroundImage='none';
    }  
    else          
      tab.rows[irow].cells[icol].style.backgroundImage="url(images/Vouwgordijnen/"+sx[1]+")"; 

    j++;
    
    icol++;
    if (icol>=ncol) {
      icol=0;  
      irow++;
    }  
  }      
}

function initStaaltjesRequest() {
  var link=document.getElementById('linkStaaltjes');
  var cb=document.getElementById('cbStaaltje');

  if ((link) && (cb)) {
    var sv='none';
    if (cb.checked) sv='inline';
    link.style.display=sv;
  }

  var img=document.getElementById('imgStaaltje');
  var req=document.getElementById('txtStaaltjes');

  if ((img) && (req)) {
    var sreq=req.value;
    var sx=sreq.split("|");
    var nx=sx.length-1;

    if (nx>0) {
      var sv='number'+nx+'.png';
      img.src='images/'+sv;
      img.title=nx+'/4: '+sreq;
    }

    // Show or hide image
    sv='none';
    if (nx>0) sv='inline';
    img.style.display=sv;
  }
}

function setInitialImageAndFocus(sName,sImg,iScroll) {
  // Set initial image here because, for some reason, the css is not enough
  //alert('Name='+sName);

  var obj=document.getElementById('divColourImg');
  obj.style.backgroundImage=sImg;

  setColourName(sName);

  /*
  setStaaltjeRequest(sName);
  initStaaltjesRequest();

  if ((iScroll>0) && (document.getElementById('cbStaaltje'))) {
    window.setTimeout(function() { document.getElementById('cbStaaltje').focus(); },0);
  }
  */
}

// --------- Called by index.php to select type and set default state

function doOnloadCalcPage() {
// Rolgordijn (should be renamed but was the first one so ...)
    initDessinNames();
    initUniColourNames();
    document.getElementById('inpBreed').focus();
}

function doOnloadRolgordijnCalcPage(agroupID,reqStaaltjes) {
// Rolgordijn
    //alert('NB: Rolgordijn2!!');
    modeNow=modeRolg2;
    groupID=agroupID;
    rolgType=-1;

    var posY=0;
    if (groupID==1) 
      posY=120;
    else if (groupID==2) 
      posY=120;
    else if (groupID==3) 
      posY=120;

    var s='';
    var iScroll=0;
    var sreq='';
    if (reqStaaltjes!='') {
      sreq=reqStaaltjes;
      iScroll=1;
    }

    // Groep 1: zonwerend    
    if (document.getElementById('tabUNI')) {
      s=initRolgordijn('tabUNI',uniName,3,sreq,s);
      rolgType=typeUNI;
    }
    if (document.getElementById('tabUNI255')) {
      s=initRolgordijn('tabUNI255',uni255Name,3,sreq,s);
      if (rolgType<0) rolgType=typeUNI255;
    }

    // Groep 2: Verduisterend
    if (document.getElementById('tabVerd180')) {
      s=initRolgordijn('tabVerd180',verd180Name,3,sreq,s);
      if (rolgType<0) rolgType=typeVerd180;
    }
    if (document.getElementById('tabVerd180Wit')) {
      s=initRolgordijn('tabVerd180Wit',verd180WitName,3,sreq,s);
      if (rolgType<0) rolgType=typeVerd180Wit;
    }
    if (document.getElementById('tabBedr180')) {
      s=initRolgordijn('tabBedr180',bedr180Name,3,sreq,s);
      if (rolgType<0) rolgType=typeBedr180;
    }
    if (document.getElementById('tabVerd255')) {
      s=initRolgordijn('tabVerd255',verd255Name,3,sreq,s);
      if (rolgType<0) rolgType=typeVerd255;
    }
    if (document.getElementById('tabLinnen')) {
      s=initRolgordijn('tabLinnen',linnenName,3,sreq,s);
      if (rolgType<0) rolgType=typeLinnen;
    }

    // Groep 3: Bedrukt
    if (document.getElementById('tabBedrukt')) {
      s=initRolgordijn('tabBedrukt',bedruktName,3,sreq,s);
      if (rolgType<0) rolgType=typeBedrukt;
    }
    if (document.getElementById('tabUniII')) {
      s=initRolgordijn('tabUniII',uniIIName,3,sreq,s);
      if (rolgType<0) rolgType=typeUniII;
    }
    if (document.getElementById('tabSemiTrans')) {
      s=initRolgordijn('tabSemiTrans',semitransName,3,sreq,s);
      if (rolgType<0) rolgType=typeSemiTrans;
    }
    if (document.getElementById('tabTrans')) {
      s=initRolgordijn('tabTrans',transName,3,sreq,s);
      if (rolgType<0) rolgType=typeTrans;
    }
    if (document.getElementById('tabTransStreep')) {
      s=initRolgordijn('tabTransStreep',transStreepName,3,sreq,s);
      if (rolgType<0) rolgType=typeTransStreep;
    }

    // If sreq isn't empty but none of the entries was found on the current page,
    // get first name of first table
    if ((sreq!='') && (s=='')) {
      //alert('Requested not found, set to [0]');
      if (rolgType==typeUNI) s=uniName[0];
      else if (rolgType==typeVerd180) s=verd180Name[0];
      else if (rolgType==typeBedrukt) s=bedruktName[0];
      iScroll=0;
    }

    //alert('s='+s);

    if (posY>0) {
      obj=document.getElementById('tdColourImg'); // The table cell that contains divColourImg
      obj.style.paddingTop=posY;
    }

    var sx=s.split("/");
    if (sx[1].charAt(0)=='#') { // Solid colour, no image
      var obj=document.getElementById('divColourImg');
      obj.style.backgroundImage='none';
      obj.style.backgroundColor=sx[1];
      setColourName(sx[0]);
      /*
      setStaaltjeRequest(sx[0]);
      initStaaltjesRequest();
      if ((iScroll>0) && (document.getElementById('cbStaaltje'))) {
        window.setTimeout(function() { document.getElementById('cbStaaltje').focus(); },0); 
      }
      */
    }
    else {
      setInitialImageAndFocus(sx[0],'url(./imagesgroot/Rolgordijnen2/'+sx[1]+')',iScroll);
    }
}

function doOnloadMultiCalcPage(agroupID,reqStaaltjes) {
// Multi        
    modeNow=modeMulti;
    groupID=agroupID;

    var iScroll=0;
    var sreq='';
    if (reqStaaltjes!='') {
      sreq=reqStaaltjes;
      iScroll=1;
    }

    minWidth   = 60; // old: 70; // cm
    minHeight  = 80; 
    minPriceWidth = 60; // old: 70; 
    deltaWidth = 10; // old: 20; 
    deltaHeight= 10;
    maxHeight1 = 260; // The default Multishade has these max values
    maxHeight2 = 260; // Other have 260/230 - see multishade.js for details
    maxWidth1  = 230; // 23-4-2010: all are now 260/230
    maxWidth2  = 230; 
    
    //createMultiPriceMatrix();
      
    //initMultiShadeNames(0); // Normal
    //initMultiShadeNames(1); // Bocacy
    //var s=multiNormalName[0];

    var s='';
    s=initRolgordijn('tabNormalMS',multiNormalName,4,sreq,s);
    s=initRolgordijn('tabBocacyMS',multiBocacyName,4,sreq,s);

    var posY=100;
    if (posY>0) {
      var obj=document.getElementById('tdColourImg'); // The table cell that contains divColourImg
      obj.style.paddingTop=posY;
    }

    // If sreq isn't empty but none of the entries was found on the current page,
    // get first name of first table
    if ((sreq!='') && (s=='')) {
      //alert('Requested not found, set to [0]');
      s=multiNormalName[0];
      iScroll=0;
    }

    var sx=s.split("/");
    setInitialImageAndFocus(sx[0],'url(./imagesgroot/Multishade/'+sx[1]+')',iScroll);
}

function doOnloadHoutenJalCalcPage() {
// Houten jal        
    modeNow=modeHoutenJal;    

    minWidth   = 60; // cm
    minHeight  = 60; 
    minPriceWidth = 60; 
    deltaWidth = 20; 
    maxHeight1 = 300; // Note: Only 1 price class
    maxHeight2 = 300;
    maxWidth1  = 240; 
    maxWidth2  = 240; 
    
    createHoutenJalPriceMatrix();
    initHoutenJalNames();

    var s=hjName[0];
    var sx=s.split("/");
    setInitialImageAndFocus(sx[0],'url(./imagesgroot/Houten_jal2/'+sx[1]+')');
}

function doOnloadPlissesCalcPage() {
// Plisses
    modeNow=modePlisses;    

    // Min and deltas don't change
    minWidth   = 50; // cm
    minHeight  = 50; 
    minPriceWidth = 50;
    minPriceHeight= 80; 
    deltaWidth = 10; 
    deltaHeight= 10;

    // Set max    
    plisseChangeMax(typePlisse1,plTypeVrijA);
    
    initPlissesNames(1);
    initPlissesNames(2);

    var s=plName1[0];
    var sx=s.split("/");
    setInitialImageAndFocus(sx[0],'url(./imagesgroot/Plisses/'+sx[1]+')');
}

function doOnloadVertLamCalcPage() {
// Verticale lamellen
    modeNow=modeVertLam;    

    // Min and deltas don't change
    minWidth   = 30; // cm
    minHeight  = 50; 
    minPriceWidth = 30; 
    deltaWidth = 20; 
    deltaHeight= 20;

    // Set max    
    maxHeight1 = 300; // Note: Only 1 price class
    maxHeight2 = 300;
    maxWidth1  = 400; 
    maxWidth2  = 400; 
    
    initVertLamNames(1);
    initVertLamNames(2);
    initVertLamNames(3);

    var s=vlName1[0];
    var sx=s.split("/");
    setInitialImageAndFocus(sx[0],'url('+'./imagesgroot/Vertlam/'+sx[1]+')');
}

function doOnloadAluJalCalcPage() {
// Aluminium jalozieen
    modeNow=modeAluJal;

    // Min and deltas don't change
    minWidth   = 50; // cm
    minHeight  = 50; 
    minPriceWidth = 0; 
    deltaWidth = 10; 
    deltaHeight= 10;

    // Set max    
    maxHeight1 = 350; // Note: Only 1 price class
    maxHeight2 = 350;
    maxWidth1  = 300; 
    maxWidth2  = 300; 
    
    initAluJalNames();

    var s=ajName[0];
    var sx=s.split("/");
    setInitialImageAndFocus(sx[0],'url(./imagesgroot/Alujal/'+sx[1]+')');
}

function doOnloadVouwCalcPage() {
// Vouwgordijnen
    modeNow=modeVouw;
    vouwType=typeVouw1;

    // Min and deltas don't change
    minWidth   = 50; // cm
    minHeight  = 80; 
    minPriceWidth = 100; 
    minPriceHeight= 100; 
    deltaWidth = 10; 
    deltaHeight= 10;

    // Set max    
    maxHeight1 = 260;
    maxHeight2 = 260;
    maxWidth1  = 300;
    maxWidth2  = 300;
    
    initVouwNames('tabVouw1',vouwName1,3);
    //initVouwNames('tabVouw2',vouwName2,3); 

    var s=vouwName1[0];
    var sx=s.split("/");
    setInitialImageAndFocus(sx[0],'url(./imagesgroot/Vouwgordijnen/'+sx[1]+')');
}

