function getHTTPObject(){
	if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
}

function getVinylLength() {
	
	httpObject = getHTTPObject();
	
	if (httpObject != null) {
		var lettering=document.getElementById('lettering').value;
		var cap_heightId=document.getElementById('cap_height').selectedIndex; 
		var cap_height=parseFloat(document.getElementById('cap_height').options[cap_heightId].text); 
	
		
		httpObject.open("POST", "length.php?fontsize="+urlencode(cap_height)+"&fontstr="+urlencode(font_style)+"&string="+urlencode(lettering), true);
		httpObject.send(null);		
		httpObject.onreadystatechange = setOutput;	
	}
}

// Change the value of the outputText field
function setOutput(){

	if(httpObject.readyState == 4){
		if (document.getElementById('rArc1')!=null) {
			if ((document.getElementById('rArc2').checked==true)|| (document.getElementById('rArc3').checked==true)||(document.getElementById('rArc4').checked==true)|| (document.getElementById('material_id').value==5)) httpObject.responseText="not applicable";
		}
		
		document.getElementById("vinyl_length").value = httpObject.responseText;
	}
}


var boatname = ""; var font_style = "BELWE";    var outlineFlag = 0; var bshadowFlag = 0; var gshadowFlag = 0; var dshadowFlag = 0; var stencilFlag = 0; var italicFlag = 0;  var symbolFlag=0; var symbolType=""; var dir_lightx=1; var dir_lighty=-1; var light_direction="TR"; var delivery=3.40; var OLFlag=0; var FXFlag=0;
function changeFXColor(form, colname,color,field_label) { FXColor = color; FXColorName = colname; document.getElementById(field_label).value = colname; update_render();}
function changeFGColor(form, colname,color,field_label) { FGColor = color; FGColorName = colname; document.getElementById(field_label).value = colname; update_render();}
function changeBGColor(form, colname,color,field_label) { BGColor = color; BGColorName = colname; document.getElementById(field_label).value = colname; update_render();}
function changeOLColor(form, colname,color,field_label) { OLColor = color; OLColorName = colname; document.getElementById(field_label).value = colname; update_render();}

function changeFontFileName(form, flag) { font_style = flag; document.getElementById('fontstyle').value=flag; update_render(); fb.end(); return false; }

function update_render() { 
var price_adjust=1;var arc_adjust=1;
var lettering=document.getElementById('lettering').value; 
var quantity=document.getElementById('qty').value; 
var material_id=document.getElementById('material_id').value;
var cap_heightId=document.getElementById('cap_height').selectedIndex; 
var cap_height=document.getElementById('cap_height').options[cap_heightId].text; 
var material="Vinyl Lettering"; //document.getElementById('material').options[material_index].text;
var OLFlag=0; var FXFlag=0; bshadowFlag=0; dshadowFlag=0; gshadowFlag=0;
if (document.getElementById('material_id').value!=5) { getVinylLength();} else {document.getElementById("vinyl_length").value="not applicable";}

if (document.getElementById('fontstyle')!=null) { document.getElementById('fontstyle').value=font_style;}
if (document.getElementById('cbShadow')!=null) {	
	if (document.getElementById('fg_colour')!=null) {document.getElementById('fg_colour').value=FGColorName;}
	if (document.getElementById('bg_colour')!=null) {document.getElementById('bg_colour').value=BGColorName;}
	if (document.getElementById('ol_colour')!=null) {document.getElementById('ol_colour').value=OLColorName;}
	if (document.getElementById('fx_colour')!=null) {document.getElementById('fx_colour').value=FXColorName;}
	
	if (document.getElementById('cbOutline').checked==true){ var OLFlag=1; price_adjust=price_adjust+ 0.83;} else { var OLFlag=0;price_adjust=price_adjust - 0.83;}
	if (document.getElementById('cbShadow').checked==true){ var FXFlag=1; price_adjust=price_adjust+ 1.85;} else { var FXFlag=0;price_adjust=price_adjust - 1.85;}
	if (FXFlag && document.getElementById('rShadow1').checked==true){ var bshadowFlag=1; document.getElementById('shadow_style').value="BLOCK";} else { var bshadowFlag=0;}
	if (FXFlag && document.getElementById('rShadow2').checked==true){ var dshadowFlag=1; document.getElementById('shadow_style').value="DROP";} else { var dshadowFlag=0;}
	if (FXFlag && document.getElementById('rShadow3').checked==true){ var gshadowFlag=1;document.getElementById('shadow_style').value="GAP";} else { var gshadowFlag=0;}
} else { document.getElementById('shadow_style').value="";}

if (document.getElementById('rArc1')!=null) {
		
	if (document.getElementById('rArc1').checked==true){ document.getElementById('product_shape').value=""; arc_adjust=1;} 
	if (document.getElementById('rArc2').checked==true){ document.getElementById('product_shape').value="45&deg;Arc"; document.getElementById('vinyl_length').value="not applicable"; arc_adjust=1.15;} 
	if (document.getElementById('rArc3').checked==true){ document.getElementById('product_shape').value="90&deg;Arc";document.getElementById('vinyl_length').value="not applicable"; arc_adjust=1.30;} 
	if (document.getElementById('rArc4').checked==true){ document.getElementById('product_shape').value="180&deg;Arc";document.getElementById('vinyl_length').value="not applicable"; arc_adjust=1.45;}
	}
//if (FXFlag && shadow_style=="Drop Shadow") 	{ var dshadowFlag=1;} else { var dshadowFlag=0;}
//if (FXFlag && shadow_style=="Block Shadow") { var bshadowFlag=1;} else { var bshadowFlag=0;}
//if (FXFlag && shadow_style=="Gap Shadow") 	{ var gshadowFlag=1;} else { var gshadowFlag=0;}
var letters=document.getElementById('lettering').value.length; 
var font_size=75; 
var url = 'render.php'; var params = '?fontsize='+urlencode(font_size)+'&fontstr='+urlencode(font_style)+'&BGColor='+urlencode(BGColor)+'&string='+urlencode(lettering)+'&FGColor='+urlencode(FGColor)+'&OLColor='+urlencode(OLColor)+'&FXColor='+urlencode(FXColor)+'&BSColor='+urlencode("EEEEEE")+'&OLFlag='+urlencode(OLFlag)+'&gshadowFlag='+urlencode(gshadowFlag)+'&bshadowFlag='+urlencode(bshadowFlag)+'&dshadowFlag='+urlencode(dshadowFlag)+'&lightx='+urlencode(dir_lightx)+'&lighty='+urlencode(dir_lighty)+''; 
document.getElementById('RenderImg').src = url + params; 	

var delivery=5.99; 
cap_height_price=price_basic[cap_heightId];
if (FXFlag || OLFlag) { cap_height_price=price_basic[cap_heightId]*1.83;} 
if (FXFlag && OLFlag) { if (FXColor==OLColor) cap_height_price=price_basic[cap_heightId]*1.83; else cap_height_price=price_basic[cap_heightId]*2.85;}

if (material_id!=4) { 
	document.getElementById('price').value = round_decimals(cap_height_price*letters*arc_adjust,2); 
	document.getElementById('total_price').value = round_decimals(quantity*(cap_height_price*letters*arc_adjust),2); 
	document.getElementById('price').value = adjustforVAT(document.getElementById('price').value);
	document.getElementById('total_price').value = adjustforVAT(document.getElementById('total_price').value);
	var delivery=3.20;
} else { 
	document.getElementById('price').value = round_decimals(6.00,2); 
	document.getElementById('total_price').value = round_decimals(quantity*6.00,2); 
	var delivery=3.20;
}

document.getElementById('material_text').value=material; document.getElementById('font_style_text').value=font_style; document.getElementById('cap_height_text').value=cap_height; document.getElementById('light_direction').value=light_direction; document.getElementById('delivery').value=delivery; }

function adjustforVAT(price) {
	// adjust for VAT change
	price = round_decimals((price-(price*7/47))*1.20,2);
	return(price);
}

function update_picker() { var option_Id=document.getElementById('size').selectedIndex; var option=document.getElementById('size').options[option_Id].text; ;var quantity=document.getElementById('qty').value; ; if (document.getElementById('fm_product').value=="Square Cut") { var option_price=price_basic[option_Id];} else { var option_price=price_basic[option_Id]+price_fx[option_Id];} document.getElementById('price').value = round_decimals(option_price,2); document.getElementById('total_price').value = round_decimals((quantity*option_price),2); document.getElementById('size_text').value=option;return(0);}

function urlencode(sStr) { return escape(sStr).replace(/\+/g, '%2C').replace(/\"/g,'%22').replace(/\'/g, '%27');}
function round_decimals(original_number, decimals) { var result1 = original_number * Math.pow(10, decimals)
var result2 = Math.round(result1)
var result3 = result2 / Math.pow(10, decimals)
return pad_with_zeros(result3, decimals)
}
function pad_with_zeros(rounded_value, decimal_places) { var value_string = rounded_value.toString()
var decimal_location = value_string.indexOf(".")
if (decimal_location == -1) { decimal_part_length = 0
value_string += decimal_places > 0 ? "." : ""
}
else { decimal_part_length = value_string.length - decimal_location - 1
}
var pad_total = decimal_places - decimal_part_length
if (pad_total > 0) { for (var counter = 1; counter <= pad_total; counter++)
value_string += "0"
}
return value_string
}
function writeCookie(name, value, hours)
{ var expire = ""; if(hours != null)
{ expire = new Date((new Date()).getTime() + hours * 3600000); expire = "; expires=" + expire.toGMTString();}
document.cookie = name + "=" + escape(value) + expire;}
function readCookie(name)
{ var cookieValue = ""; var search = name + "="; if(document.cookie.length > 0)
{ offset = document.cookie.indexOf(search); if (offset != -1)
{ offset += search.length; end = document.cookie.indexOf(";", offset); if (end == -1) end = document.cookie.length; cookieValue = unescape(document.cookie.substring(offset, end))
}
}
return cookieValue;}
function redirect(URLStr) { location = URLStr;}
var popUpWin=0; function popUpWindow(URLStr, left, top, width, height)
{ if(popUpWin)
{ if(!popUpWin.closed) popUpWin.close();}
popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');}
