/* Canvas Sizes */
var cwidths_text = new Array(30,40,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,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450);

var cheights_text = new Array(30,40,50,60,70,80,90,100,110,120,130,140,150);

/* canvas price matrix */
var crow30 = new Array(45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255);
var crow40 = new Array(50,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265);
var crow50 = new Array(55,65,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,240,255,260,265,270,275);
var crow60 = new Array(60,70,80,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,250,265,270,275,280,285);
var crow70 = new Array(65,75,85,95,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,260,275,280,285,290,295);
var crow80 = new Array(70,80,90,100,110,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,270,285,290,295,300,305);
var crow90 = new Array(75,85,95,105,115,125,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,280,295,300,305,310,315);
var crow100 = new Array(80,90,100,110,120,130,140,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,290,305,310,315,320,325);
var crow110 = new Array(85,95,105,115,125,135,145,155,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,300,315,320,325,330,335);
var crow120 = new Array(90,100,110,120,130,140,150,160,170,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,310,325,330,335,340,345);
var crow130 = new Array(95,105,115,125,135,145,155,165,175,185,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,320,325,320,335,340,345,350,355);
var crow140 = new Array(100,110,120,130,140,150,160,170,185,190,200,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,320,325,330,335,330,345,350,355,360,365);
var crow150 = new Array(105,115,125,135,145,155,165,175,190,195,205,215,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,320,325,330,335,340,345,340,355,360,365,370,375);

var ccols = new Array(crow30,crow40,crow50,crow60,crow70,crow80,crow90,crow100,crow110,crow120,crow130,crow140,crow150);



/* Blinds sizes */
var bwidths_text = new Array(50,60,70,80,90,100,110,120,130,140,150,160,170,180)

var bheights_text = new Array(50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250)

/* Blinds price matrix */
var brow50 = new Array( 75,  75,  85,  85,  85,  95,  105, 110, 115, 125, 135, 150, 150, 150)
var brow60 = new Array( 75,  75,  85,  85,  85,  95,  105, 110, 115, 125, 135, 150, 150, 150)
var brow70 = new Array( 75,  75,  85,  85,  85,  95,  105, 110, 115, 125, 135, 150, 150, 150)
var brow80 = new Array( 75,  75,  85,  85,  85,  95,  105, 110, 115, 125, 135, 150, 150, 150)
var brow90 = new Array( 75,  75,  85,  85,  85,  95,  105, 110, 115, 125, 135, 150, 150, 150)
var brow100 = new Array( 85,  85,  95,  95,  95,  105, 115, 120, 125, 135, 145, 160, 160, 160)
var brow110 = new Array( 85,  85,  95,  95,  95,  105, 115, 120, 125, 135, 145, 160, 160, 160)
var brow120 = new Array( 95,  95,  105, 105, 105, 115, 125, 130, 135, 145, 155, 170, 170, 170)
var brow130 = new Array( 95,  95,  105, 105, 105, 115, 125, 130, 135, 145, 155, 0,   0,   0)
var brow140 = new Array( 100, 100, 110, 110, 110, 120, 130, 135, 140, 150, 160, 0,   0,   0)
var brow150 = new Array( 100, 100, 110, 110, 110, 120, 130, 135, 140, 150, 160, 0,   0,   0)
var brow160 = new Array( 110, 110, 120, 120, 120, 130, 140, 140, 150, 160, 170, 0,   0,   0)
var brow170 = new Array( 110, 110, 120, 120, 120, 130, 140, 140, 150, 160, 170, 0,   0,   0)
var brow180 = new Array( 120, 120, 130, 130, 130, 140, 150, 150, 160, 170, 180, 0,   0,   0)
var brow190 = new Array( 130, 130, 140, 140, 140, 150, 160, 160, 170, 180, 190, 0,   0,   0)
var brow200 = new Array( 140, 140, 150, 150, 150, 160, 170, 170, 180, 190, 200, 0,   0,   0)
var brow210 = new Array( 150, 150, 160, 160, 160, 170, 180, 180, 190, 200, 210, 0,   0,   0)
var brow220 = new Array( 160, 160, 170, 170, 170, 180, 190, 190, 200, 210, 220, 0,   0,   0)
var brow230 = new Array( 170, 170, 180, 180, 180, 190, 200, 200, 210, 220, 230, 0,   0,   0)
var brow240 = new Array( 180, 180, 190, 190, 190, 200, 210, 210, 220, 230, 240, 0,   0,   0)
var brow250 = new Array( 190, 190, 200, 200, 200, 210, 220, 220, 230, 240, 250, 0,   0,   0)

var bcols = new Array(brow50,brow60,brow70,brow80,brow90,brow100,brow110,brow120,brow130,brow140,brow150,brow160,brow170,brow180,brow190,brow200,brow210,brow220,brow230,brow240,brow250)


/* set default matrix to canvas */
var pm = ccols;
var pm_widths = cwidths_text;
var pm_heights = cheights_text;

var row = 0;
var col = 0;

var row_func = "rowchange()";
var col_func = "colchange()";

var calc_func = 0;
var rowchange_func = 0;
var colchange_func = 0;

var aspect_func = 0;
var aspect_text = "1:1";

var sizeselect_minwidth = 0;
var sizeselect_maxwidth = 1000;

var ss_price_percentage = 1.0
var ss_use_price_percentage = false


var show_warning = false;
var price_input_id = ""
var ss_hidden_info = ""
var ss_title = "Choose a size to see an instant price quotation:"
var ss_onshowcalc = null;

function ss_setpricepercentage(p)
{
	ss_use_price_percentage = true;
	ss_price_percentage = p;

}



function showcalc() {
	var pr;
	var e = document.getElementById("calc");
	if (show_warning) {
		var ue = document.getElementById("unavailable")
	}		
	var currow = pm[col];

	if (currow[row] == 0) {
		e.firstChild.data = "N/A";
		if (show_warning) ue.style.visibility = "visible";
		pr = 0;
	} else {
		pr = currow[row];
		if (ss_use_price_percentage) {
			pr = pr * ss_price_percentage;
		}

		e.firstChild.data = "£" + pr.toFixed(2);
		if (show_warning) ue.style.visibility = "hidden";
	}		

	if (price_input_id != "") {	
		var pi_e = document.getElementById(price_input_id);
		if (pi_e) {
			pi_e.value = pr.toFixed(2)+"/"+pm_widths[row]+"/"+pm_heights[col];
		}
	}

	if (ss_onshowcalc != null) {
		ss_onshowcalc(pm_widths[row],pm_heights[col],pr);
	}
	
	return false;
}

function set_price_field(f_id,p,w,h) {
	var pi_e = document.getElementById(f_id);
	pi_e.value = p.toFixed(2)+"/"+w+"/"+h;

}



function showcalc_frac(percent) {
	var e = document.getElementById("calc");
//	var ue = document.getElementById("unavailable");
	var currow = pm[col];
	var old_p,new_p;
	
//	e.firstChild.data = "Width:"+widths_text[row]+" Height:"+heights_text[col]+" Price: " + currow[row];
	if (currow[row] == 0) {
		e.firstChild.data = "N/A";
//		ue.style.visibility = "visible";
		new_p = 0;
	} else {
		old_p = currow[row] * 1.0
		new_p = old_p + (old_p * (percent/100.0))
		e.firstChild.data = "£" + new_p.toFixed(2);
//		ue.style.visibility = "hidden";
	}		

	if (price_input_id != "") {
		var pi_e = document.getElementById(price_input_id);
		pi_e.value = new_p.toFixed(2)+"/"+pm_widths[row]+"/"+pm_heights[col];
	}

	return false;
}

function ss_setsize(w,h)
{
	var i,j;
	var row_el = document.getElementById("sel_row");	
	var col_el = document.getElementById("sel_col");		
	
	for (i=0;i<pm_widths.length;i++) {
		if (pm_widths[i] == w) {
			row = i;
			row_el.selectedIndex = i;
		}
	}
	for (i=0;i<pm_heights.length;i++) {
		if (pm_heights[i] == h) {
			col = i;
			col_el.selectedIndex = i;
		}
	}

	var pr;
	var e = document.getElementById("calc");
	if (show_warning) {
		var ue = document.getElementById("unavailable")
	}		
	var currow = pm[col];

	if (currow[row] == 0) {
		e.firstChild.data = "N/A";
		if (show_warning) ue.style.visibility = "visible";
		pr = 0;
	} else {
		pr = currow[row];
		if (ss_use_price_percentage) {
			pr = pr * ss_price_percentage;
		}

		e.firstChild.data = "£" + pr.toFixed(2);
		if (show_warning) ue.style.visibility = "hidden";
	}		
	
	if (rowchange_func != 0) {
		change_trip_row();
	}	
	
	if (colchange_func != 0) {
		change_trip_col();
	}	
}

function change_cell_text(e_id,e_text) {
	var e = document.getElementById(e_id);
	if (e) {
		e.firstChild.data = e_text;
	}
}

function change_trip_row() {
	var tw = Math.round(pm_widths[row] / 3.0);

	change_cell_text("trip_width_1",tw+"cm");
	change_cell_text("trip_width_2",tw+"cm");
	change_cell_text("trip_width_3",tw+"cm");	
}

function radioClickFunc(w,h,type) {
//	var tw = Math.round(pm_widths[row] / 3.0);

	var tw = Math.round(w / 3.0);
	
	change_cell_text("trip_width_1",tw+"cm");
	change_cell_text("trip_width_2",tw+"cm");
	change_cell_text("trip_width_3",tw+"cm");	
	change_cell_text("trip_height",h+"cm");
}

function change_trip_col() {
	change_cell_text("trip_height",pm_heights[col]+"cm");
}

function rowchange() {
	var e = document.getElementById("sel_row");
	row=parseInt(e.value);
	if (calc_func == 0) {
		showcalc();
	} else {
		showcalc_frac(25.0);
	}
	if (rowchange_func != 0) {
		change_trip_row();
	}
	
	if (aspect_func != 0) {
		change_aspect_text()
	}
}

function update_price() {
	if (calc_func == 0) {
		showcalc();
	} else {
		showcalc_frac(25.0);
	}
}

function colchange() {
	var e = document.getElementById("sel_col");
	col=parseInt(e.value);
	if (calc_func == 0) {
		showcalc();
	} else {
		showcalc_frac(25.0);
	}
	if (colchange_func != 0) {
		change_trip_col();
	}
}

function ss_setpriceinput(pi_id,pi_info) {
	price_input_id = pi_id;
	ss_hidden_info = pi_info;
}

function to_inches(cm) {
	var inch = cm * 0.39
	return inch.toFixed(1)
}

function init_sizeselect(type) {
	/* default type is canvas */
	if (type == "triptych") {
/*		pm = ccols;
		pm_widths = cwidths_text;
		pm_heights = cheights_text;
		calc_func = 1;	
*/
		pm = trip_cols
		pm_widths = trip_widths_text
		pm_heights = trip_heights_text

		calc_func = 0
		show_warning = false;
                rowchange_func = 1;
                colchange_func = 1;		
                sizeselect_minwidth = 30;
	} else if (type == "blinds") {
		pm = blind_cols;
		pm_widths = blind_widths_text;
		pm_heights = blind_heights_text;
		calc_func = 0;
		show_warning = true;
	} else if (type == "split") {
		pm = split_cols;
		pm_widths = split_widths_text;
		pm_heights = split_heights_text;
		calc_func = 0;
		show_warning = false;
		sizeselect_maxwidth = 300;
	} else {
		/* framed canvas */
		pm = can_cols;
		pm_widths = can_widths_text;
		pm_heights = can_heights_text;
		calc_func = 0;
		show_warning = false;
		sizeselect_maxwidth = 150;
	}
}

function change_aspect_text() {
	var atext;
	var rarray = aspect_text.split(":"); 

	var ratio = parseFloat(rarray[1]) / parseFloat(rarray[0]);
	
	atext = "ratio: " + ratio + " --- width: " + pm_widths[row] + "  ---  recomend height:" + (pm_widths[row] * ratio)
	
	change_cell_text("material_size_info",atext) 
}


function build_sizeselect(type) {

	var i=0,first_width=true;
	
	init_sizeselect(type)

	document.write("<div id=\"head_blayer\">"+ss_title+"</div>");
	document.write("<table class='ss_sizetable'><tr><td width=\"50\" class=\"fm-cell\">");
	document.write("Width: <br>(cm/inches)</td><td class=\"fm-cell\">");
	document.write("<select name=\"ss_width\" class=\"sizeselect\" id='sel_row' onchange='"+row_func+"'>");
	for (i=0;i<pm_widths.length;i++) {
		if ((pm_widths[i] >= sizeselect_minwidth) && (pm_widths[i] <= sizeselect_maxwidth)) {
			document.write("<option value="+i+">"+pm_widths[i]+" / "+to_inches(pm_widths[i])+"</option>");
			/* make sure default row is set for the smallest width */
			if (first_width) {
				first_width = false;
				row = i;
			}
		}			
	}
	document.write("</select>");
	document.write("</td></tr><tr><td class='fm-cell'>");
	document.write("Height: <br>(cm/inches)</td><td class='fm-cell'>");
	document.write("<select name=\"ss_height\" id=\"sel_col\" class=\"sizeselect\" onchange=\""+col_func+"\">");
	for (i=0;i<pm_heights.length;i++) {
		document.write("<option value="+i+">"+pm_heights[i]+" / "+to_inches(pm_heights[i])+"</option>");
	}
	document.write("</select></td></tr>");
	if (show_warning) {
		document.write("<tr><td id=\"unavailable\" valign=\"bottom\" colspan=\"2\">Unfortunately we do not currently produce blinds in the selected size.</td></tr>");
	}		
	document.write("<tr><td>&nbsp</td><td align=\"right\"><table><tr><td class=\"calc-cell\" align=\"center\">Price</td></tr><tr><td align=\"center\" class=\"calc-num\"><p id=\"calc\">******</p></td></tr></table>");
	document.write("</table>");
}

function build_sizeselect_menu(w) {

	var i=0,first_width=true;

	if (ss_title != "") document.write("<div id=\"head_blayer\">"+ss_title+"</div>");
	document.write("<table border='0' class=\"ss_table\"><tr><td width=\""+w+"\">");
	document.write("Width:<br><span style='color:#808080;'>cm/inches</span></td><td class=\"fm-cell\">");
	document.write("<select name=\"ss_width\" class=\"sizeselect\" id='sel_row' onchange='"+row_func+"'>");
	for (i=0;i<pm_widths.length;i++) {
		if ((pm_widths[i] >= sizeselect_minwidth) && (pm_widths[i] <= sizeselect_maxwidth)) {
			/* make sure default row is set for the smallest width */
			if (first_width) {
				first_width = false;
				row = i;
				document.write("<option selected='selected' value="+i+">"+pm_widths[i]+" / "+to_inches(pm_widths[i])+"</option>");				
			} else {
				document.write("<option value="+i+">"+pm_widths[i]+" / "+to_inches(pm_widths[i])+"</option>");
			}
		}
	}
	document.write("</select>");
	document.write("</td></tr><tr><td class='fm-cell'>");
	document.write("Height:<br><span style='color:#808080;'>cm/inches</span></td><td class='fm-cell'>");
	document.write("<select name=\"ss_height\" id=\"sel_col\" class=\"sizeselect\" onchange=\""+col_func+"\">");
	for (i=0;i<pm_heights.length;i++) {
		document.write("<option value="+i+">"+pm_heights[i]+" / "+to_inches(pm_heights[i])+"</option>");
	}
	document.write("</select></td></tr>");
	document.write("</table>");
}

function build_sizeselect_price(tab_class) {
	document.write("<div align='left'>")
	if (show_warning) {
		document.write("<span id=\"unavailable\" >Unfortunately we do not currently produce blinds in the selected size.</span>");
	}		
	document.write("<table><tr><td style='color: #1F3133;font-size:10px;font-weight:bold;width:80px;'>Price:</td><td style='color: #EF3A6F;font-size:12px;font-weight:bold;' id=\"calc\">******</td></tr></table>");
	document.write("</div>")
}



