-//
function identity() {
alert("Version 4d of Curtain Calculator with blind support")
}

function contactus() {
// alert("hello")
document.forms[3].Subject.value="Queenshill Enquiry "+document.forms[3].Subject.value
}

// Calculates price for curtains and blinds
function  doCurtain() 
{
for (nIndexA = 0; nIndexA < document.forms.length; nIndexA++)
	{ if (document.forms[nIndexA] && document.forms[nIndexA].track_width)
	     {  }
	}
// units in cm//
// Set Defaults
var lining_price = 3.7;
var blackout_lining_price = 5.95;
var interlining_price = 5.95
var lining_total = 0
var hem_base = 20
var hem=0
var fullness=1                      // default for blinds, all curtains reset this
var patterns_per_drop = 0
var fabric_total = 0
var fabric_required = 0
var fabric_per_curtain = 0
var widths_per_curtain = 0
var widths_per_curtain_charging = 0
var makeup_per_width = 0            // This will be the multiplier per width
var makeup_curtain = 21.06          // Includes Pencil Pleat
var makeup_voile = 9.87             // Includes Pencil Pleat
var makeup_interlined = 38.34       // includes hand slipped sides & Pencil Pleat
var makeup_heading_triple = 7.81
var makeup_heading_goblet = 7.81
var makeup_heading_cartridge = 7.81
var makeup_heading_tab = 7.81
var makeup_heading_tie = 7.81
var makeup_heading_eyelet_25 = 16.78
var makeup_heading_eyelet_40 = 16.78
var makeup_heading_eyelet_66 = 29.94
var makeup_heading_pelmet = 8.23
var makeup_heading_slotted = 0  
var makeup_heading_box = 0            // Pelmets only. Price needs working out.
var makeup_pelmet_lined = 11.68       // Includes cost of pencil pleat heading
var makeup_pelmet_heading = 5.59      // additional cost of special headings
var makeup_pelmet_interlined = 16.66  // 
var makeup_length_18 = 1.65
var makeup_length_25 = 3.29
var makeup_length = 0;
var makeup_width_min = 1.5;
var makeup_total_price = 0           // redundant
var product = ""
var total_price = 0
var widths_per_curtain = 0
var fabric_total = 0
var lining_total = 0 
var curtain_number = 2
var handsewn = "no"
var staff = "no"
var heading = ""
var eyelet_text = ""		      // defines extra description for 5cm stand up
var chaincolour = ""

var carriage = 5
var tieback_fabric = 0.25
var calc_track_width             // final track width allowing for bounce etc
// blind specific data
var makeup_final = 0
// corded prices
var c_makeup_price = new Array;
var c_makeup_drop_50 =  new Array( 68.54,	68.54,	68.54,	76.87,	97.43,	112.44,	117.99,	122.07,	149.00);  
var c_makeup_drop_100 = new Array( 68.54,	68.54,	74.80,	86.70,	102.00,	117.30,	130.90,	144.50,	158.10);
var c_makeup_drop_125 = new Array( 76.87,	76.87,	85.00,	98.60,	115.60,	132.60,	149.60,	166.60,	183.60);
var c_makeup_drop_150 = new Array( 86.50,	86.50,	98.60,	115.60,	132.60,	149.60,	166.60,	183.60,	200.60);
var c_makeup_drop_175 = new Array( 97.43,	97.43,	115.60,	125.80,	144.50,	163.20,	181.90,	200.60,	219.30);
var c_makeup_drop_200 = new Array( 105.75, 108.80,132.60,	156.40,	180.20,	204.00,	227.80,	251.60,	275.40);
var c_makeup_drop_225 = new Array( 113.75, 129.20, 163.20, 197.20, 231.20, 265.20, 299.20, 333.20, 367.20);
var c_makeup_drop_250 = new Array( 122.07, 149.60, 193.80, 238.00, 282.20, 326.40, 370.60, 414.80, 459.00);
var c_makeup_drop_275 = new Array( 130.37, 159.80, 204.00, 248.20, 292.40, 336.60, 380.80, 425.00, 469.20);

// sidewinder prices
var s_makeup_price = new Array;
var s_makeup_drop_50 =  new Array( 85.03,	85.03,	85.03,	97.43,	130.40,	150.80,	156.35,	163.20,	180.99);  
var s_makeup_drop_100 = new Array( 85.03,	85.03,	91.80,	103.70,	130.40,	150.80,	156.35,	163.20,	180.99);
var s_makeup_drop_125 = new Array( 95.96,	95.96,	102.00,	115.60,	144.11,	167.28,	174.30,	183.60,	200.60);
var s_makeup_drop_150 = new Array( 107.06,	107.06,	115.60,	132.60,	157.81,	185.23,	191.92,	200.60,	217.60);
var s_makeup_drop_175 = new Array( 128.93, 128.93,	132.60,	148.19,	185.07,	218.04,	229.13,	238.60,	259.16);
var s_makeup_drop_200 = new Array( 141.33, 141.33, 149.60,	173.40,	198.94,	235.82,	245.45,	268.60,	292.40);
var s_makeup_drop_225 = new Array( 152.76, 152.76, 180.20, 214.20, 248.20, 282.20, 316.20, 350.20, 384.20);
var s_makeup_drop_250 = new Array( 164.18, 166.60, 210.80, 255.00, 299.20, 343.40, 387.60, 431.80, 476.00);
var s_makeup_drop_275 = new Array( 175.93, 176.80, 221.00, 265.20, 309.40, 353.60, 397.80, 442.00, 486.20);

var blind_text =""                // defines desc for blind based on whether in recess or not
var location=""
var sidewinder=""
var pullside=""
var prefix = "C_"
var desc=""
// Get Inputs and validate *********************************
// ---------------------------------------------------------
if (document.forms[2].staff.value == "yes")
  {staff="yes" }
if (staff=="yes") 
  {prefix = "S_"}
if (staff=="no") 
  {valid=getCookie(prefix+'PRICE_FABRIC')
//alert(valid)
if (valid==null)
  {alert("Please choose fabric first."); return;}}
calc_type=document.forms[2].calc_type.value
if (calc_type=="")
  {alert("Please choose Type."); return;}
if (calc_type!="Fabric Blind") 
  {heading = document.forms[2].heading.value
   if (heading=="")
     {alert("Please choose Heading Type."); return;}}

// validate track width
if (isNaN(document.forms[2].track_width.value))  // check if a track width has been entered.
  {alert("Please enter Track Width."); return;}
if (document.forms[2].width_unit.value=="")      // check if a track width unit has been entered.
  {alert("Please enter Track Width units (cm/in)."); return;}
var track_width = Math.ceil(document.forms[2].track_width.value * document.forms[2].width_unit.value) // get track width  	
var width_unit=document.forms[2].width_unit.value // get width unit value
if (width_unit==1) 
  {width_unit_desc="cm"}
else
  {width_unit_desc="inches"}
if (calc_type!="Fabric Blind") // validate for curtains
  {
  if (track_width <50) // is width above minimum?
    {alert("Minimum track width is 50cm please re-enter."); return;}
  // No maximum width is checked for curtains
  }
  else   // validate width for fabricblinds
  {
  if (track_width > 250 ) // is width above maximum?
    { 
	alert ("We do not normally make blinds wider than 250cm. However, we can with some fabrics. To discuss your requirement please call. ");
	return;
	}
  if (track_width <30) // is width below minimum?
    {alert("Mimimum blind width is 30cm. Please re-enter"); return;}
  }
// validate length
if (isNaN(document.forms[2].finished_length.value)) // check if a length has been entered
  {alert("Please enter Finished Length."); return;}
if (document.forms[2].finished_length_unit.value=="")  // check if a length unit has been entered
  {alert("Please enter Finished Length units (cm/in)."); return;}
var finished_length = Math.ceil(document.forms[2].finished_length.value * document.forms[2].finished_length_unit.value)   
var finished_length_unit=document.forms[2].finished_length_unit.value
if (finished_length_unit==1) 
  {finished_length_unit_desc="cm"}
else
  {finished_length_unit_desc="inches"}
if (calc_type=="Curtain" ) // validate for curtains 
  {
  if (finished_length <50)
  {alert("Minimum drop is 50cm please re-enter"); return;}
  // There is no maximum drop for curtains
  }
else // validate for fabricblinds
  {
  // validate length
  if (finished_length>275 && calc_type=="Fabric Blind")
    {alert("We do not normally make blinds longer than 275cm. However, we can with some fabrics. To discuss your requirement please call. "); return;}
  }
  


// if finished length is more than 70 and its a pelmet need to reenter...
// if finished length is less than 70 and its not a pelmet need to reenter..



// validate lining type
type = document.forms[2].type.value 
if (type=="")
  {alert("Please choose Lining Type."); return;}
//  alert("Lining Type "+type)
  
if (document.forms[2].tieback)
 {  tieback = document.forms[2].tieback.value
  if (tieback=="")
    {alert("Please choose type of tieback."); return;}

  }
if (document.forms[2].sidewinder)  // test for blinds calc
  {
    sidewinder = document.forms[2].sidewinder.value
	if (sidewinder=="")
	   {
	   	alert("Please choose mechanism type."); return;
	   }
	   
	chaincolour = document.forms[2].chaincolour.value
	if (sidewinder=="Sidewinder")  // test chain colour when sidewinder is used
	   {
       // alert(sidewinder)
	   if (chaincolour=="")
	      {
		  alert("Please choose chain colour."); return;
		  }
	   }
	else
	   { chaincolour=" " }
	pullside = document.forms[2].pullside.value
	location = document.forms[2].location.value
	if (location=="inside")
	  { blind_text="recess"}
	if (location=="outside")
	  { blind_text="blind"}
	if (location=="bay")
	  { blind_text="bay window"}	  
    blindtype = document.forms[2].blindtype.value	
  }
if (staff=="no") 
  {var fabric_width   = getCookie(prefix+'WIDTH_FABRIC')  // data should always be in cm.
   var product        = getCookie(prefix+'PRODUCT_FABRIC') 
   if (isNaN(fabric_width)) { alert("Sorry. There is a problem, please call Queenshill"); return}
   var fabric_price   = getCookie(prefix+'PRICE_FABRIC')
   if (isNaN(fabric_price)) { alert("Sorry. There is a problem, please call Queenshill"); return}
   var pattern_repeat = getCookie(prefix+'REPEAT_FABRIC') // data should always be in cm.
   if (isNaN(pattern_repeat)) { pattern_repeat=0 }
   var fabric_name    = getCookie(prefix+'NAME_FABRIC')
  }
else {
   var fabric_width   = document.forms[2].fabric_width.value  // data should always be in cm.
   var fabric_price   = document.forms[2].fabric_price.value
   var pattern_repeat = document.forms[2].pattern_repeat.value // data should always be in cm.
   var fabric_name    = document.forms[2].fabric_name.value
  }
// alert("fabric width :"+fabric_width+" fabric price :"+fabric_price+" repeat :"+pattern_repeat+" fabric name :"+fabric_name)

// Decide which calculation to perform fabricblind, normal, dress or pelmet 
// ---------------------------------------------------------------------------
switch (calc_type) {
 case "Fabric Blind":
    treatment="A "+blindtype+" blind"
    calc_track_width=track_width+6
    hem=0+hem_base
    curtain_number = 1
	// decide which matrix to use.
	// if lined and with pull cord
    // if blackout lined and with pull cord
	// if interlined and with pull cord	
	// if lined and with silentgliss 
    // if blackout lined and with silentgliss 
	// if interlined and with silentgliss 
	// if lined and with forest 
    // if blackout lined and with forest 
	// if interlined and with forest 		
	
 break;
 case "Curtain":
    treatment="A pair of curtains"
    // Calculate heading adjustments for cut length and widths
    switch (heading) {
     case "Pencil":
      calc_track_width=track_width+20
      hem=5+hem_base
      fullness=2.25
	  min_fullness=2
	  max_fullness=2.5
	 break;
     case "Triple":
      calc_track_width=track_width+20
      hem=15+hem_base
      fullness=2.25 // 2 - 2.5
	  min_fullness=2
	  max_fullness=2.5	  
     break;
     case "Tab":
      calc_track_width=track_width
      hem=0+hem_base
      fullness=1.5 //  1.5-2.0
	  min_fullness=1.5
	  max_fullness=2.0	  
     break;
     case "Pelmet": 
      calc_track_width=track_width+20
      hem=(finished_length/6)+2*hem_base 
      fullness=2.25 //  2-2.5
	  min_fullness=2
	  max_fullness=2.5	  
     break;
     case "Slotted":
      calc_track_width=track_width	 
      hem=20+hem_base
      fullness=2.25 //  2-2.5
	  min_fullness=2
	  max_fullness=2.5	  
     break;
     case "Goblet":
      calc_track_width=track_width+20
      hem=15+hem_base
      fullness=2.25 // 2-2.5
	  min_fullness=2
	  max_fullness=2.5	  
     break;
     case "Cartridge":
      calc_track_width=track_width+20
      hem=15+hem_base
      fullness=2.25 //  2-2.5
	  min_fullness=2
	  max_fullness=2.5	  
     break;	 
     case "Tie":
      calc_track_width=track_width	 
      hem=0+hem_base
      fullness=2.0 // 1.8-2.5
	  min_fullness=1.8
	  max_fullness=2.5	  
     break;
     case "Eyelet 25mm":
      calc_track_width=track_width+20
      hem=20+hem_base
      fullness=1.8 // 1.8-2.25
	  min_fullness=1.8
	  max_fullness=2.25	  
      eyelet_text=" plus 5cm stand-up"
     break;	 
     case "Eyelet 40mm":
      calc_track_width=track_width+20
      hem=20+hem_base
      fullness=1.8 // 1.8-2.25
	  min_fullness=1.8
	  max_fullness=2.25	  
      eyelet_text=" plus 5cm stand-up"
     break;
     case "Eyelet 66mm":
      calc_track_width=track_width+20
      hem=20+hem_base
      fullness=1.8 // 1.8-2.25
	  min_fullness=1.8
	  max_fullness=2.25	  
      eyelet_text=" plus 5cm stand-up"
     break;
     default:
     alert("Curtains are only available with Pencil, Triple, Tab, Pelmet, Slotted, Goblet, Cartridge, Tie or Eyelet headings.")
     return;
     }

 break;
  case "Dress Curtain":
    treatment="A pair of dress curtains"
    // Calculate heading adjustments for cut length and widths
    switch (heading) {
     case "Pencil":
      calc_track_width=track_width	 
      hem=0+hem_base
      fullness=1.3
	  min_fullness=1
	  max_fullness=1.5		  
     break;
     case "Triple":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=1.3
  	  min_fullness=1
	  max_fullness=1.5	
     break;
     case "Tab":
      calc_track_width=track_width	 
      hem=0+hem_base
      fullness=0.87
	  min_fullness=0.6
	  max_fullness=1.0		  
     break;
     case "Pelmet":
      calc_track_width=track_width	 
      hem=(finished_length/6)+2*hem_base 
      fullness=1.3
	  min_fullness=1
	  max_fullness=1.5		  
     break;
     case "Slotted":
      calc_track_width=track_width	 
      hem=20+hem_base
      fullness=1.3
	  min_fullness=1
	  max_fullness=1.5		  
     break;
     case "Goblet":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=1.3
	  min_fullness=1
	  max_fullness=1.5		  
     break;
     case "Cartridge":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=1.3
	  min_fullness=1
	  max_fullness=1.5		  
     break;	 
     case "Tie":
      calc_track_width=track_width	 
      hem=0+hem_base
      fullness=1.3
	  min_fullness=1
	  max_fullness=1.5		  
     break;
     case "Eyelet 40mm":
      calc_track_width=track_width	 
      hem=20+hem_base
      fullness=0.87
	  min_fullness=0.6
	  max_fullness=1.0	  
     break;
     case "Eyelet 60mm":
      calc_track_width=track_width	 
      hem=20+hem_base
      fullness=0.87
	  min_fullness=0.6
	  max_fullness=1.0	  
     break;
     default:
     alert("Dress curtains are only available with Pencil, Triple, Tab, Pelmet, Slotted, Goblet, Cartridge, Tie or Eyelet headings.")
     return;
     }
 break;
  case "Pelmet":
    treatment="A pelmet"
    curtain_number = 1;
    // Calculate heading adjustments for cut length and widths
    makeup_interlined = makeup_pelmet_interlined  
    makeup_curtain = makeup_pelmet_lined
    switch (heading) {
     case "Pencil":
      calc_track_width=track_width	 
      hem=0+hem_base
      fullness=2.25
	  min_fullness=2
	  max_fullness=2.5	  
     break;
     case "Triple":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=2.25
	  min_fullness=2
	  max_fullness=2.5	  
      makeup_heading_triple = makeup_pelmet_heading  // replace curtain heading cost with pelmet
     break;
     case "Goblet":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=2.25
	  min_fullness=2
	  max_fullness=2.5	 	  
      makeup_heading_goblet = makeup_pelmet_heading  // replace curtain heading cost with pelmet
     break;
     case "Cartridge":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=2.25
	  min_fullness=2
	  max_fullness=2.5	  	  
      makeup_heading_cartridge = makeup_pelmet_heading  // replace curtain heading cost with pelmet
     break;	 
     case "Box":
      calc_track_width=track_width	 
      hem=15+hem_base
      fullness=3.0
	  min_fullness=3.0
	  max_fullness=3.2		  
      makeup_heading_box = makeup_pelmet_heading  // replace curtain heading cost with pelmet
     break;
     default:
     alert("Pelmets are only available with Pencil, Triple, Goblet, Cartridge or Box headings.")
     return;
    }
  break;
  case "Reversible":
    treatment="A pair of reversible curtains"
    // Phone us
    var _re="";
    var _win=null;
    _re="";
    _re+="<html><head><title>Price Calculator</title></head><body>";
    _re+="<form method='POST' name='mail' action='http://www.queenshill.com/cgi-bin/responder_mail.pl'>";
    _re+="<center>";
    _re+="<input type='hidden' name='recipient' value='service@queenshill.com'>";
    _re+="<input type='hidden' name='subject' value='curtain calc'>";
    _re+="<input type='hidden' name='print_blank_fields' value=' '>";
    _re+="<input type='hidden' name='calc_type' value='reversible curtain'>";    
    _re+="<font face='Arial' size='6' color='#C85592'>Reversible Curtains</font><br><br>";   
    _re+="<font face='Arial' size='2' color='#C85592'>Please call us on 01344 875419 for price and delivery enquiries.</font><br><br>";     
    _re+="<input type='submit' value='OK' onClick='javascript: window.close();' style='font-family: Verdana; font-size: 10pt; color: #C85592; background-color: #C0C0C0; font-weight:bold'></center></form></body></html>";
    _win=window.open('','','toolbar=no,directories=no,status=no,menubar=no,scrollbars=no,width=350,height=250,titlebar=no,top=260,left=330');
    _win.document.write(_re)
    return    
  break;
}
 
// Calculate Fabric Requirement // --------------------------------
var number_of_widths = calc_track_width*fullness/fabric_width
//alert("number_of_widths "+number_of_widths+" calc_track_width "+calc_track_width+" fullness"+fullness+" fabric_width"+fabric_width)

if (calc_type=="Fabric Blind") // always round up
  {
  number_of_widths = Math.ceil(number_of_widths)  
  // this also solves requirement for min width of 1
  }
else // if it is not a blind round up or down
  {
  number_of_widths = Math.round(number_of_widths)
  if ( number_of_widths < 1) { number_of_widths = 1 }   // this solves requirement for min width of 1
  }
// alert(number_of_widths)
// Check that fullness band has not been exceeded for curtains, pelmets and dress.
//if (calc_type!="Fabric Blind") 
//  {
//  var actual_fullness = number_of_widths*fabric_width/calc_track_width
//  if (actual_fullness<min_fullness) {actual_fullness=min_fullness}
//  if (actual_fullness>max_fullness) {actual_fullness=max_fullness}
//  fullness=actual_fullness
  // redo number of widths calculation
//  alert("number of widths"+ number_of_widths+" actual fullness "+actual_fullness+" fullness "+fullness+" modified number of widths"+ calc_track_width*fullness/fabric_width)  
//  var number_of_widths = calc_track_width*fullness/fabric_width
//  }

//alert(number_of_widths+" "+track_width+" "+fullness+" "+fabric_width+calc_type)
var widths_per_curtain = number_of_widths/curtain_number
var cut_length = hem + finished_length
if (pattern_repeat == 0)
  { 
   patterns_per_drop = 0;
  }
  else
  {
  patterns_per_drop = Math.ceil(cut_length / pattern_repeat);
  }
if (pattern_repeat == 0)
  {
  if (heading == "Tab" || heading =="Tie")
    {
    fabric_required = Math.ceil((cut_length+50) * number_of_widths * .1)/10;
	//	alert("tab tie with NO repeat");
    } 
  else
    {
    fabric_required = Math.ceil(cut_length * number_of_widths * .1)/10;
	}
  }
  else
  {
  if (heading == "Tab" || heading =="Tie")
    {
    fabric_required = Math.ceil(((patterns_per_drop * pattern_repeat)+50) * number_of_widths * .10) / 10;
	//alert("tab tie with repeat");
    }
  else
    {
    fabric_required = Math.ceil(patterns_per_drop * pattern_repeat * number_of_widths * .10) / 10;		
	}
  }
//alert (heading+" "+fabric_required+" patterns per drop"+patterns_per_drop+" pattern_repeat"+pattern_repeat+" number_of_widths"+number_of_widths)
// Tieback extra fabric  
if (calc_type!="Fabric Blind") 
  {
  if (tieback == "selfpiped")
    {
    fabric_required = fabric_required + (tieback_fabric * curtain_number)
    }
    else
    {
    fabric_required = fabric_required
    }  
  }  
  
fabric_per_curtain = fabric_required / curtain_number

// Fabric Calculations
fabric_total = Math.round(fabric_required * fabric_price*100)/100;

// surcharge to offset discount strategy
fabric_total = Math.round(fabric_total*1.1)

// Calculate Material Cost of Linings and prepare descriptions
switch (type) {
 case "voile":
  lining_price = 0.00
  lined="Not lined"
  break;
 case "lined":
  lined="Lined with 100% cotton sateen"
  break;
 case "interlined":
  lining_price = lining_price + interlining_price
  lined="Interlined and lined with 100% cotton sateen"
  break;
 case "blackout":
  lining_price = blackout_lining_price
  lined="Lined with blackout lining"
  break;
}
lining_total = Math.round(fabric_required * lining_price)

// surcharge to offset discount strategy
lining_total = Math.round(lining_total*1.1)

// Calculate Charge for Lining Type
switch (type) {
 case "voile":
  makeup_per_width = makeup_per_width + makeup_voile
 break;
 case "lined":
  makeup_per_width = makeup_per_width + makeup_curtain
 break;
 case "blackout":
  makeup_per_width = makeup_per_width + makeup_curtain
 break;
 case "interlined":
  makeup_per_width = makeup_per_width + makeup_interlined
 break;
}

// Calculate Heading charge for makeup_per_width
if (calc_type!="Fabric Blind") {
switch (heading) {
 case "Pencil":
  makeup_per_width = makeup_per_width
 break;
 case "Triple":
  makeup_per_width = makeup_per_width + makeup_heading_triple
 break;
 case "Goblet":
  makeup_per_width = makeup_per_width + makeup_heading_goblet
 break;
 case "Cartridge":
  makeup_per_width = makeup_per_width + makeup_heading_cartridge
 break; 
 case "Tab":
  makeup_per_width = makeup_per_width + makeup_heading_tab
 break;
 case "Tie":
  makeup_per_width = makeup_per_width + makeup_heading_tie
 break;
 case "Eyelet 25mm":
  makeup_per_width = makeup_per_width + makeup_heading_eyelet_25
 break; 
 case "Eyelet 40mm":
  makeup_per_width = makeup_per_width + makeup_heading_eyelet_40
 break;
 case "Eyelet 66mm":
  makeup_per_width = makeup_per_width + makeup_heading_eyelet_66
 break;
 case "Pelmet":
  makeup_per_width = makeup_per_width + makeup_heading_pelmet
 break;
 case "Slotted":
  makeup_per_width = makeup_per_width + makeup_heading_slotted
 break;
 case "Box":
  makeup_per_width = makeup_per_width + makeup_heading_box
 break;
}}
// Calculate length - additional charge for makeup_per_width
if( finished_length < 180) {
makeup_per_width = makeup_per_width + 0
} else if(finished_length >= 180 && finished_length < 250){
  makeup_per_width = makeup_per_width + makeup_length_18
} else if(finished_length >= 250 ){
  makeup_per_width = makeup_per_width + makeup_length_25
}

// Final Charge for curtains
if (widths_per_curtain < 1.5)
  {
  widths_per_curtain_charging = 1.5
  }
  else
  {
  widths_per_curtain_charging = widths_per_curtain
  }
//makeup_total_price = makeup_per_width * widths_per_curtain_charging * curtain_number
//makeup_final = makeup_total_price
makeup_final = makeup_per_width * widths_per_curtain_charging * curtain_number
makeup_final = Math.round(makeup_final*100)/100; // round to 2 dec places

// surcharge to offset discount strategy
makeup_final = Math.round(makeup_final*1.1)

// Tieback surcharge  
if (calc_type!="Fabric Blind") 
  {
  if (tieback == "selfpiped")
    {
    makeup_final = makeup_final +25
    }
    else
    {
    makeup_final = makeup_final
    }  
  }
  
total_price = makeup_final + fabric_total + lining_total

if (handsewn == "yes")
  {
  total_price = total_price * 1.15
  }
  else
  {
  total_price = total_price
  }
 

// Final Charge for blinds
if (calc_type=="Fabric Blind")
  {
  	if (sidewinder == "Sidewinder")
	  {
	    //alert("Sidewinder")
    	makeup_price=s_makeup_drop_275
        if (finished_length <= 250)
          { makeup_price=s_makeup_drop_250 }		
        if (finished_length <= 225)
          { makeup_price=s_makeup_drop_225 }	
        if (finished_length <= 200)
	      { makeup_price=s_makeup_drop_200 }
        if (finished_length <= 175)
	      { makeup_price=s_makeup_drop_175 }	
        if (finished_length <= 150)
	      { makeup_price=s_makeup_drop_150 }
        if (finished_length <= 125)
	      { makeup_price=s_makeup_drop_125 }
        if (finished_length <= 100)
	      { makeup_price=s_makeup_drop_100 }
        if (finished_length <= 50)
	      { makeup_price=s_makeup_drop_50 }	
	   }
	   else
       {
     // Calculate which item in array based on drop 
	 	//   alert("strung")
    	makeup_price=c_makeup_drop_275
        if (finished_length <= 250)
          { makeup_price=c_makeup_drop_250 }		
        if (finished_length <= 225)
          { makeup_price=c_makeup_drop_225 }	
        if (finished_length <= 200)
	      { makeup_price=c_makeup_drop_200 }
        if (finished_length <= 175)
	      { makeup_price=c_makeup_drop_175 }	
        if (finished_length <= 150)
	      { makeup_price=c_makeup_drop_150 }
        if (finished_length <= 125)
	      { makeup_price=c_makeup_drop_125 }
        if (finished_length <= 100)
	      { makeup_price=c_makeup_drop_100 }
        if (finished_length <= 50)
	      { makeup_price=c_makeup_drop_50 }
        }
  // Calculate which item in array based on width 
  i=8
    if (track_width <= 225)
	 {i = 7}
    if (track_width <= 200)
	 {i = 6}
    if (track_width <= 175)
	 {i = 5}	 
    if (track_width <= 150)
	 {i = 4}	 	 
    if (track_width <= 125)
	 {i = 3}
    if (track_width <= 100)
	 {i = 2}
    if (track_width <= 75)
	 {i = 1}
    if (track_width <= 50)
	 {i = 0}	 	 	 	 
	makeup_final = makeup_price[i]
    // Add 5% for Blackout or 25% for Interlining
    switch (type) {
      case "lined":
      break;
      case "interlined":
         makeup_final = makeup_final * 1.25
      break;
      case "blackout":
          makeup_final = makeup_final * 1.05
      break;						
      }
    // Add 10% for hand sewn
    if (handsewn == "yes")
    {
    makeup_final = makeup_final * 1.10
    }
    // Add £20 for sidewinder
  //  if (sidewinder == "Sidewinder")
  //  {
  //  makeup_final = makeup_final + 20
  //  }
    makeup_final = Math.round(makeup_final*100)/100; // round to 2 dec places
	
	// surcharge to offset discount strategy
	makeup_final = Math.round(makeup_final*1.1)
		
    // Add fabric cost and lining cost
    total_price = fabric_total + lining_total + makeup_final
  }

// surcharge for carriage on m2m
total_price = Math.round(total_price)+carriage;  
//alert("total "+total_price+". Comprising fabric "+fabric_total+" lining "+lining_total+" makeup "+makeup_final+"+ carriage "+carriage)

if (isNaN(total_price)) 
  {
  total_price = 0;
  widths_per_curtain = 0;
  } 
  else 
  {
  }  

// Prepares description variable

// generate random number for for loop between 1 and 10
blank_max = Math.round(10*Math.random())
//alert (blank_max)
// 
blanks = "."
for (var blank_no = 1; blank_no <= blank_max; blank_no=blank_no+1)
   {
   blanks += ".";
   }
//alert (blank_max+" "+blanks)   
   
   
if  (calc_type=="Fabric Blind") // For fabric blinds
  {
   desc=
   treatment +'. '+lined +'. Widths per blind: '+widths_per_curtain +
   '. For a '+blind_text+' width of '+document.forms[2].track_width.value+' ('+
   width_unit_desc +') and drop of '+
   document.forms[2].finished_length.value+' ('+
   finished_length_unit_desc+')'+eyelet_text+
   '. Mechanism: '+sidewinder+' '+chaincolour+
   '. Location: '+location+
   '. Pull side: '+pullside+
   '. Fabric name: '+ fabric_name  //+
 //  '. Ref: '+ product
 //  + '. Fabric width: ' + fabric_width +'cm. Fabric repeat: ' + pattern_repeat +'cm. Fabric price per metre: £' + fabric_price
   
   
   }
   else                      // For curtains
   {
   desc= 
   treatment +' with '
   if (heading=="Eyelet 25mm" || heading=="Eyelet 40mm" || heading=="Eyelet 66mm")
     {
     desc+= document.forms[2].eyeletcolour.value+' '
	 }
   desc+=
   document.forms[2].heading.value+' heading. '+
   lined +'. Widths per curtain: '+widths_per_curtain +
   '. For a track/pole width of '+
   document.forms[2].track_width.value+' ('+
   width_unit_desc +') and drop of '+
   document.forms[2].finished_length.value+' ('+
   finished_length_unit_desc+')'+eyelet_text+
   '. Tiebacks: '+document.forms[2].tieback.value+
   '. Fabric: '+ fabric_name //+
  // '. Ref: '+ product
   // + '. Fabric width: ' + fabric_width +'cm. Fabric repeat: ' + pattern_repeat +'cm. Fabric price per metre: £' + fabric_price
   }
   

// To cookies for page
//------------------------------------
w_curtain(calc_type,'1');
w_curtain(widths_per_curtain, '10'); 
w_curtain(total_price, '11');
if  (calc_type=="Fabric Blind") // For fabric blinds
  {w_curtain(desc, '23');}
else
  {w_curtain(desc, '22');}
w_curtain(fabric_name,'24'); 
// alert (fabric_name+"  "+getCookie('C_NAME_FABRIC_OLD'));

// To fields for Actinic
//------------------------------------
   // random number of blanks to split repeat orders.
   desc=desc + blanks   
if (calc_type=="Fabric Blind") 
  {
   document.forms[2].Q_Blind.value=total_price
   document.forms[2].O_Blind.value=desc
  }
  else
  {
  document.forms[2].Q_Curtain.value=total_price
  document.forms[2].O_Curtain.value=desc
  }

// To fields for staff forms
//------------------------------------
if (staff=="yes") {
//  alert("staff "+staff)
  if (calc_type=="Fabric Blind")  // For fabric blinds
    {
    document.forms[4].widths_per_curtain.value=widths_per_curtain
    document.forms[4].total_price.value=total_price
    document.forms[4].fabric_required.value=fabric_required
    document.forms[4].fabric_total.value=fabric_total
    document.forms[4].number_of_widths.value=number_of_widths
    document.forms[4].lining_total.value=lining_total
    document.forms[4].curtain_number.value=curtain_number
    document.forms[4].makeup_final.value=makeup_final
    document.forms[4].cut_length.value=cut_length
    document.forms[4].makeup_per_width.value=makeup_per_width
    document.forms[4].patterns_per_drop.value=patterns_per_drop
    }
    else                         // For Curtains
    {
    document.forms[4].widths_per_curtain.value=widths_per_curtain
    document.forms[4].total_price.value=total_price
    document.forms[4].fabric_required.value=fabric_required
    document.forms[4].fabric_total.value=fabric_total
    document.forms[4].number_of_widths.value=number_of_widths
    document.forms[4].lining_total.value=lining_total
    document.forms[4].curtain_number.value=curtain_number
    document.forms[4].makeup_final.value=makeup_final
    document.forms[4].cut_length.value=cut_length
    document.forms[4].makeup_per_width.value=makeup_per_width
    document.forms[4].patterns_per_drop.value=patterns_per_drop
    document.forms[4].fullness.value=fullness	
    //document.forms[3].fabric_per_curtain.value=fabric_per_curtain
  }

  }

// To fields for mail form
//alert('hello')
document.forms[3].Name.value="gerald lee "
if (calc_type!="Fabric Blind") // validate for curtains for v8
  {
  document.forms[3].Subject.value="Queenshill Curtain Calc - v4d"
  }
else
  {
  document.forms[3].Subject.value="Queenshill Blind Calc - v4d"  
  }
document.forms[3].EmailAddress.value="service@queenshill.com" // for v8
document.forms[3].EmailAddressCheck.value="service@queenshill.com" // for v8
desc+="\r"
desc+="Price: £"+total_price+".\r"
desc+="fabric_required: "+fabric_required+"\r"
desc+="fabric_total: "+fabric_total+"\r"
desc+="lining_total: "+lining_total+"\r"
desc+="curtain_number: "+curtain_number+"\r"
desc+="makeup_final: "+makeup_final+"\r"
desc+="cut_length: "+cut_length+"\r"
desc+="makeup_per_width: "+makeup_per_width+"\r"
desc+="patterns_per_drop: "+patterns_per_drop+"\r"
desc+="actual_fullness: "+number_of_widths*fabric_width/calc_track_width+"\r"
desc+="Fabric name: "+fabric_name+"\r"
desc+="Fabric price: "+fabric_price+"\r"
desc+="Fabric width: "+fabric_width+"\r"
desc+="Fabric repeat: "+pattern_repeat+"\r"


document.forms[3].Message.value=desc
// if (staff=="yes") {
// alert ('ready to send email')
// }
// document.forms[3].submit() disabled to solve add to basket problem
//alert(document.forms[3].Subject.value)
// reset variables
chaincolour=""
//setTimeout("",250);
//alert("Calculated")
// return to calculation page
//switch (calc_type) {
// case "Curtain":
//  window.location="http://www.queenshill.com/acatalog/Curtains.htm"
// break;
// case "Fabric Blind":
//  window.location="http://www.queenshill.com/acatalog/Blinds.htm"
// break;
// }
history.go() 
// window.location.reload() 
}     // end of curtain calculator function  



/**********************
* Writes data to cookies. Begin with C for public and S for staff
*
***********************/
function w_curtain(data, field) {
var staff="no"
if (document.forms[2].staff.value == "yes")
  {staff="yes" }
var prefix = "C_"
if (staff=="yes") 
  {prefix = "S_" }
var today = new Date();
var expiry = new Date(today.getTime() + 30 * 24 * 60 * 60 * 1000); // plus 30 days

switch (field) {
     case "1":
      setCookie(prefix+'CURTAIN', data, expiry)
     break;
     case "2":
      setCookie(prefix+'QUANTITY', data, expiry)
     break;
     case "3":
      setCookie(prefix+'HEADING', data, expiry)
     break;
     case "4":
      setCookie(prefix+'WIDTH', data, expiry)
     break;
     case "5":
      setCookie(prefix+'WIDTH_U', data, expiry)
     break;
     case "6":
      setCookie(prefix+'LENGTH', data, expiry)
     break;
     case "7":
      setCookie(prefix+'LENGTH_U', data, expiry)
     break;
     case "8":
      setCookie(prefix+'LINED', data, expiry)
     break;
     case "9":
      setCookie(prefix+'TIEBACK', data, expiry)
     break;
     case "10":
      setCookie(prefix+'WIDTHS_PER_CURTAIN', data, expiry)
     break;
     case "11":
      setCookie(prefix+'PRICE', data, expiry)
     break;
     case "12":
      setCookie('Q_CURTAINS', data, expiry)
     break;
     case "13":
      setCookie('O_CURTAINS', data, expiry)
     break;
     case "14":
      setCookie(prefix+'WIDTH_FABRIC', data, expiry)
     break;
     case "15":
      setCookie(prefix+'REPEAT_FABRIC', data, expiry)
     break;
     case "16":
      setCookie(prefix+'PRICE_FABRIC', data, expiry);     
	 break;
     case "17":
      setCookie(prefix+'NAME_FABRIC', data, expiry)
     break;
     case "18":
      setCookie(prefix+'BLINDTYPE', data, expiry)
     break;
     case "19":
      setCookie(prefix+'LOCATION', data, expiry)
     break;
     case "20":
      setCookie(prefix+'PULLSIDE', data, expiry)
     break;
     case "21":
      setCookie(prefix+'SIDEWINDER', data, expiry)
     break;
     case "22":
      setCookie(prefix+'CURTAIN_DESC', data, expiry)
     break;	 
     case "23":
      setCookie(prefix+'BLIND_DESC', data, expiry)
     break;
     case "24":
      setCookie(prefix+'NAME_FABRIC_OLD', data, expiry)
     break;	 		 
    }
}


function  multisearch() {
var form = 0
var loop = 0
var nIndex = 0
var d1 = ""
var d2 = ""
var d3 = ""
var d4 = ""
var d5 = ""
var d6 = ""
var d7 = ""
// Which form is dropdown1 in
	 for (loop = 0; loop < document.forms.length; loop++)
		  {
		  if (document.forms[loop] && document.forms[loop].dropdown1)
	     {
           form = loop
	      }
	      }
// Get Inputs 
//alert(form)
var d1 = document.forms[form].dropdown1.value
var d2 = document.forms[form].dropdown2.value
var d3 = document.forms[form].dropdown3.value
var d4 = document.forms[form].dropdown4.value
var d5 = document.forms[form].dropdown5.value
var d6 = document.forms[form].searchtext.value
if (document.forms[form].searchtext1) {var d7 = document.forms[form].searchtext1.value}

if (d6=="Fabric Name / Ref No")
 {//alert(d6)
 d6=""
 }


// Calculate
re = d1+" "+d2+" "+d3+" "+d4+" "+d5+" "+d6+" "+d7
// alert(re)
// Display Results
document.forms[form].SS.value = re
}


function sidesearch() {
var form = 0
var loop = 0
var nIndex = 0
var d1 = ""
var d2 = ""
var d3 = ""
var d4 = ""
var d5 = ""
var d6 = ""
var d7 = ""
// Which form is side_1 in
	 for (loop = 0; loop < document.forms.length; loop++)
		  {
		  if (document.forms[loop] && document.forms[loop].side_1)
	     {
           form = loop
	      }
	      }
// Get Inputs 
//alert(form)
var d2 = document.forms[form].side_2.value
var d3 = document.forms[form].side_3.value
var d4 = document.forms[form].side_4.value
var d5 = document.forms[form].side_5.value
var d6 = document.forms[form].side_6.value

// remove display text if not changed 
if (d2=="Fabric Name / Ref No")
 {//alert(d6)
 d2=""
 }
// Calculate
re = d1+d2+d3+d4+d5+d6
// alert(re)
// Display Results
document.forms[form].SS.value = re
}



//function made(price, name, width, repeat, image, location)
function made(price, name, width, repeat, image, location, product)  
{
// alert (product)
var staff="no"
if (document.forms[1].staff.value == "yes")
  {staff="yes" }
var prefix = "C_"
if (staff=="yes") 
  {prefix = "S_" }
var today = new Date();
var expiry = new Date(today.getTime() + 2419200000); // plus 28 days
setCookie(prefix+'PRICE_FABRIC', price, expiry)
setCookie(prefix+'WIDTH_FABRIC', width, expiry)
setCookie(prefix+'NAME_FABRIC', name, expiry)
setCookie(prefix+'REPEAT_FABRIC', repeat, expiry)
setCookie(prefix+'IMAGE_FABRIC', image, expiry)
window.location=location // place file name here
setCookie(prefix+'PRODUCT_FABRIC', product, expiry)
}

function cent(amount) {
// returns the amount in the .99 format 
    amount -= 0;
    amount = (Math.round(amount*100))/100;
    return (amount == Math.floor(amount)) ? amount + '.00' : (  (amount*10 == Math.floor(amount*10)) ? amount + '0' : amount);
}

// Create pop up information windows
function winopen1(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_lining.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=510")
}

function winopen2(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_width.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=510")
}

function winopen3(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_length.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=480")
}

function winopen4(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_style.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=580")
}

function winopen5(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_sewn.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=300,height=360")
}

function winopen6(){
	win = window.open("http://www.queenshill.com/M2M/privacy.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=500,height=500")
}

function winopen7()
{ win = window.open("http://www.queenshill.com/M2M/privacy.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=500,height=500") }

function winopen8()
{ win = window.open("http://www.queenshill.com/M2M/privacy.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=500,height=500") }

function winopen9()
{ win = window.open("http://www.queenshill.com/M2M/privacy.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width=500,height=500") }

function winopen10()
{ win = window.open("http://www.queenshill.com/m2m/m2m_help_blind_pull.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=510") }

function winopen11(){
	win = window.open("http://www.queenshill.com/m2m/m2m_help_blinds.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=510")
}
function winopen12(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_lining.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=510")
}
function winopen13(){
	win = window.open("http://www.queenshill.com/M2M/m2m_help_lining.htm", "newWin", "toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width=640,height=510")
}

// redirects browser to search page
function goToURL() { window.location = "http://www.queenshill.com/acatalog/search.html"; }

// functions for glide layers
//function initGlideLayers() {
//  var glideLyrs = new Array();
//  alert("glide layers initialised")
//  // Set up your layers here
//  // arguments: id, left=0 (offset calculated based on width), top
//  glideLyrs[0] = new dynObj('glideDiv0', 0, 0);
//  glideLyrs[1] = new dynObj('glideDiv1', 0, 0);
//  glideLyrs[2] = new dynObj('glideDiv2', 0, 120);
//  glideLyrs[3] = new dynObj('glideDiv3', 0, 120);
//  
//  for (var i=0; glideLyrs[i]; i++) {
//		// hold original left position 
//		glideLyrs[i].xOff = -(glideLyrs[i].w + 10);
//		glideLyrs[i].shiftTo( glideLyrs[i].xOff, glideLyrs[i].y );
//		glideLyrs[i].show();
// }
//  slideEm('glideDiv0'); // Slide first one into view 
//}

var curGlideLyr;
function slideEm(id) {
  var oldLyr, newLyr;
  // if link for current layer clicked, slide it out of view 
	if (curGlideLyr == id) { 
    oldLyr = dynObj.getInstance(curGlideLyr);
		oldLyr.slideTo(oldLyr.xOff, null, slide_out_speed, -1);
    curGlideLyr = ""; return; 
  }
	// if layer currently in view, set up to slide new one into view
	// after current one slides away
	if (curGlideLyr) {
    oldLyr = dynObj.getInstance(curGlideLyr);
		oldLyr.onSlideEnd = function() { 
			dynObj.holder[curGlideLyr].slideTo(10, null, slide_in_speed, -1); 
			this.onSlideEnd = function() { if (this.el) this.el = null } 
		}
		// slide current layer out of view
		oldLyr.slideTo(oldLyr.xOff, null, slide_out_speed, -1);
	} else { 	// if no layer currently in view
    newLyr = dynObj.getInstance(id);
    newLyr.slideTo(10, null, slide_in_speed, -1);
  }
	curGlideLyr = id;
}


