// JavaScript Document
function validateInput()
{
	
	if(document.getElementById("size").value == "--------")
	{
		alert("please select bicycle geometry in New Bike Geometry tab");
		return false;
	}
	
	launchCycad();
	return true;
}

function goClick()
{
	alert("Enter");
	var brand = document.getElementById("brand");
	var model = document.getElementById("model");
	var year = document.getElementById("year");
	var size = document.getElementById("size");
	var content= "brand="+encodeURI(brand.value)+
				 "&model="+encodeURI(model.value)+
				 "&year="+encodeURI(year.value)+
				 "&size="+encodeURI(size.value);
				 
	alert("Exit");
}

function launchCycad()
{	
	var parameter = "T14=" + encodeURI(document.getElementById('T14').value);
	parameter += "&T15=" + encodeURI(document.getElementById('T15').value);
	parameter += "&T16=" + encodeURI(document.getElementById('T16').value);
	parameter += "&T29=" + encodeURI(document.getElementById('r7').value);
	parameter += "&T30=" + encodeURI(document.getElementById('r8').value);
	parameter += "&T31=" + encodeURI(document.getElementById('r9').value);
	parameter += "&T32=" + encodeURI(document.getElementById('r10').value);
	parameter += "&riderHeight=" + encodeURI(document.getElementById('riderHeight').value);
	parameter += "&riderSternal=" + encodeURI(document.getElementById('riderSternal').value);
	parameter += "&riderInseam=" + encodeURI(document.getElementById('riderInseam').value);
	parameter += "&riderThigh=" + encodeURI(document.getElementById('riderThigh').value);
	parameter += "&riderArmLen=" + encodeURI(document.getElementById('riderArmLen').value);
	parameter += "&riderShoulderWidth=" + encodeURI(document.getElementById('riderShoulderWidth').value);
	parameter += "&riderFtLen=" + encodeURI(document.getElementById('riderFtLen').value);
	parameter += "&thighPercentile=" + encodeURI(document.getElementById('thighPercentile').value);
	parameter += "&footPercentile=" + encodeURI(document.getElementById('footPercentile').value);
	parameter += "&armPercentile=" + encodeURI(document.getElementById('armPercentile').value);
	parameter += "&inseamMean=" + encodeURI(document.getElementById('inseamMean').value);
	parameter += "&inseamSd=" + encodeURI(document.getElementById('inseamSd').value);
	parameter += "&seatTubeLength=" + encodeURI(document.getElementById('seatTubeLength').value);
	parameter += "&seatTubeAngle=" + encodeURI(document.getElementById('seatTubeAngle').value);
	parameter += "&bbDrop=" + encodeURI(document.getElementById('bbDrop').value);
	parameter += "&bbHeight=" + encodeURI(document.getElementById('bbHeight').value);
	parameter += "&chainstayLength=" + encodeURI(document.getElementById('chainstayLength').value);
	parameter += "&frontCenter=" + encodeURI(document.getElementById('frontCenter').value);
	parameter += "&topTubeLength=" + encodeURI(document.getElementById('topTubeLength').value);
	parameter += "&rearWheelDiameter=" + encodeURI(document.getElementById('rearWheelDiameter').value);
	parameter += "&frontWheelDiameter=" + encodeURI(document.getElementById('frontWheelDiameter').value);
	parameter += "&forkRake=" + encodeURI(document.getElementById('forkRake').value);
	parameter += "&forkLength=" + encodeURI(document.getElementById('forkLength').value);
	parameter += "&headTubeLength=" + encodeURI(document.getElementById('headTubeLength').value);
	parameter += "&headTubeAngle=" + encodeURI(document.getElementById('headTubeAngle').value);
	parameter += "&lowerStackHeight=" + encodeURI(document.getElementById('lowerStackHeight').value);
	parameter += "&upperStackHeight=" + encodeURI(document.getElementById('upperStackHeight').value);
	parameter += "&brand=" + encodeURI(document.getElementById('brand').value);
	parameter += "&model=" + encodeURI(document.getElementById('model').value);
	parameter += "&year=" + encodeURI(document.getElementById('year').value);
	parameter += "&size=" + encodeURI(document.getElementById('size').value);
	parameter += "&genderSelection=" + encodeURI(document.getElementById('genderSelection').value);
	
	if (document.getElementById('radiob1').checked)
		parameter += "&radiob1="+encodeURI(document.getElementById('radiob1').value);
	
	makePOSTRequest("LaunchApplet.php",parameter);
}

function setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function loadcookie(){

loaded=getCookie("loaded");
if (loaded==2){
//displaycookie();
setCookie("loaded",0);
}else if (loaded==3){
cc();
setCookie("loaded",0);
}

window.setTimeout("loadcookie()",3000);
}



function cc(){
		
if (getCookie("unit")==1) {
	if(document.getElementById('radiob2').checked){
			convert('radiob1');
	}
	document.getElementById('radiob1').checked=true;
	document.getElementById('radiob2').checked=false;
	
}
else{
	if(document.getElementById('radiob1').checked){
				convert('radiob2');
	}
		document.getElementById('radiob1').checked=false;
		document.getElementById('radiob2').checked=true; 

}
	for(var i=14; i<=16;i++){
			document.getElementById("origin"+i).value = getCookie("T"+(i-13));
			document.getElementById("T"+i).value=getCookie("T"+(i-13));
		}
}

function updateDB(ID){
	
	this_ID = ID.substring(1);
	document.getElementById('origin'+this_ID).value = document.getElementById(ID).value;

}

function convert(id){
	if(id == "radiob1"){
		
		for (i=14;i<=15;i++){
			
					if(document.getElementById('T'+i).value.length != 0 && document.getElementById('s'+i).innerHTML == "mm"){
						var Tvalue = parseFloat(document.getElementById('origin'+i).value)/25.4;

						document.getElementById('origin'+i).value = Tvalue;
						document.getElementById('T'+i).value = Tvalue.toFixed(1);
					}
				document.getElementById('s'+i).innerHTML="in";
			
			
			}
			for(i=1;i<=13;i++){
				if(document.getElementById('origin'+i).value.length != 0 && i!=2 && i!=11)
				document.getElementById('origin'+i).value /=25.4;
				}
		   	for(i=17;i<=22;i++){
				if(document.getElementById('origin'+i).value.length != 0 && i!=19)
				document.getElementById('origin'+i).value /=25.4;
				}
		
		
		}
	else if(id == "radiob2"){
		
		for (i=14;i<=15;i++){
			
					if(document.getElementById('T'+i).value.length != 0 && document.getElementById('s'+i).innerHTML == "in"){
						var Tvalue = parseFloat(document.getElementById('origin'+i).value)*25.4;
						document.getElementById('origin'+i).value = Tvalue;
						document.getElementById('T'+i).value = Tvalue.toFixed(1);
						
						}
				document.getElementById('s'+i).innerHTML="mm";
			
			
			}
				for(i=1;i<=13;i++){
				if(document.getElementById('origin'+i).value.length != 0 && i!=2 && i!=11)
				document.getElementById('origin'+i).value *=25.4;
				}
				for(i=17;i<=22;i++){
				if(document.getElementById('origin'+i).value.length != 0 && i!=19)
				document.getElementById('origin'+i).value *=25.4;
				}
		
		}
	
	}
	
function resetRadio(){
	if(document.getElementById('radiob1').checked){
		convert('radiob2');
		document.getElementById('radiob1').checked = false;
		document.getElementById('radiob2').checked = true;
		
	}
	
for (i=14;i<=15;i++){
		document.getElementById('s'+i).innerHTML="mm";
	}
	
	
}

var http_request=false;
var eu = 1;
function makePOSTRequest(url,parameters){
http_request=false;
if(window.XMLHttpRequest){
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType)
http_request.overrideMimeType('text/xml');
}else if(window.ActiveXObject){
	try{
	http_request=new ActiveXObject('Msxml2.XMLHttp');
	}catch(e){}
}
if(!http_request){
alert('Your browser doesn\'t not support AJAX, please update to the latest one and try again !');
return false;
}
if (url=="email2.php"){
 	http_request.onreadystatechange = showEmailstatus;
}else if(url=="selectOption.php"){
	http_request.onreadystatechange = insertOptions;
}
else if(url=="writefile2.php"){
	http_request.onreadystatechange = showwritestatus;
}
else if(url == "LaunchApplet.php") {
http_request.onreadystatechange = handleAfLaunchCycad;
}

else{
	http_request.onreadystatechange = showData;
}
	
http_request.open('POST',url,true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}//end of makePOSTRequest

function showData(){

	if(http_request.readyState==4){
		if(http_request.status==200){

			if(document.getElementById('radiob1').checked && false) //disable this option 
			{ 	
			var response=http_request.responseXML;

			document.getElementById('r12').value = response.getElementsByTagName('BBheight')[0].firstChild.nodeValue;
			document.getElementById('r13').value = response.getElementsByTagName('BBdrop')[0].firstChild.nodeValue;	
			document.getElementById('r14').value = response.getElementsByTagName('TTlength')[0].firstChild.nodeValue;
			document.getElementById('r15').value = response.getElementsByTagName('FC')[0].firstChild.nodeValue;	
			document.getElementById('r16').value = response.getElementsByTagName('WB')[0].firstChild.nodeValue;	
			document.getElementById('r17').value = response.getElementsByTagName('Trail')[0].firstChild.nodeValue;	
			document.getElementById('r18').value = response.getElementsByTagName('StemLength')[0].firstChild.nodeValue;
			document.getElementById('r19').value = response.getElementsByTagName('SpacerHeight')[0].firstChild.nodeValue;
			document.getElementById('r20').value = response.getElementsByTagName('SPsetback')[0].firstChild.nodeValue;	
			document.getElementById('r21').value = response.getElementsByTagName('SaddleHeight')[0].firstChild.nodeValue;
			document.getElementById('r22').value = response.getElementsByTagName('SaddleToSTtop')[0].firstChild.nodeValue;

			for(var loop=1;loop<=11;loop++){
				var data=document.getElementById('r'+(loop+11)).value;		
	
				var temp = new Array();
				temp = data.split(',');
				var num='';
				for(var ti=0;ti<temp.length;ti++){
					num+=temp[ti];
				}
				num=parseFloat(num)*25.4;
				num=num.toFixed(1);
				document.getElementById('r'+loop).value=num;		
			}
			} else		
			{ 

			var response=http_request.responseXML;

			document.getElementById('r1').value = response.getElementsByTagName('BBheight')[0].firstChild.nodeValue;
			document.getElementById('r2').value = response.getElementsByTagName('BBdrop')[0].firstChild.nodeValue;	
			document.getElementById('r3').value = response.getElementsByTagName('TTlength')[0].firstChild.nodeValue;
			document.getElementById('r4').value = response.getElementsByTagName('FC')[0].firstChild.nodeValue;	
			document.getElementById('r5').value = response.getElementsByTagName('WB')[0].firstChild.nodeValue;	
			document.getElementById('r6').value = response.getElementsByTagName('Trail')[0].firstChild.nodeValue;	
			document.getElementById('r7').value = response.getElementsByTagName('StemLength')[0].firstChild.nodeValue;
			document.getElementById('r8').value = response.getElementsByTagName('SpacerHeight')[0].firstChild.nodeValue;
			document.getElementById('r9').value = response.getElementsByTagName('SPsetback')[0].firstChild.nodeValue;	
			document.getElementById('r10').value = response.getElementsByTagName('SaddleHeight')[0].firstChild.nodeValue;
			document.getElementById('r11').value = response.getElementsByTagName('SaddleToSTtop')[0].firstChild.nodeValue;

			for(var loop=12;loop<=22;loop++){
				var data=document.getElementById('r'+(loop-11)).value;		
	
				var temp = new Array();
				temp = data.split(',');
				var num='';
				for(var ti=0;ti<temp.length;ti++){
					num+=temp[ti];
				}
				num=parseFloat(num)/25.4;
				num=num.toFixed(1);
				document.getElementById('r'+loop).value=num;							
			}
			} 		
		}else{
		alert('There is an error with the request');
		}
	}
}//end of showdata

function get(){

//check whether the user has select the bike
if(document.getElementById("size").value == "--------")
{
	alert("please select bicycle geometry in Bike Geometry tag");
	return;
}

//check whether there're empty fields
for(var loop=1;loop<=22;loop++){
if (document.getElementById("origin"+loop).value.length==0) {
	alert("fill all the fields and try again");
	return;
}
}

var poststr="drop1="+encodeURI(document.getElementById('d1').value)+
			"&drop2="+encodeURI(document.getElementById('d2').value);
		
for(var loop=1;loop<=22;loop++){
	tem_value = document.getElementById("origin"+loop).value;
	if(document.getElementById('radiob1').checked && loop != 2 && loop != 11 && loop != 16 && loop != 19) tem_value *= 25.4;
poststr+=("&T"+loop+"="+encodeURI(tem_value));
}

makePOSTRequest("calculatebikesetup.php",poststr);

}//end of get

function initSelectBox(){
	
	var sel;	
	for(var loop=1; loop<=4; loop++){
		sel = document.getElementById('SS'+loop);
		removeOption(sel);
	}
	
	var content= "sid="+encodeURI(0)+
				  "&brand="+encodeURI(document.getElementById('SS1').value)+
				  "&model="+encodeURI(document.getElementById('SS2').value)+
				  "&year="+encodeURI(document.getElementById('SS3').value)+
				  "&size="+encodeURI(document.getElementById('SS4').value);
				  
			  				
	makePOSTRequest("selectOption.php",content);

}
function selectOptions(idd){
	var sel;
	sid = parseInt(idd.substring(2));
	for(var loop =(sid+1);loop<=4;loop++){
		sel = document.getElementById('SS'+loop);
		removeOption(sel);
	}
	var content= "sid="+encodeURI(sid)+
				  "&brand="+encodeURI(document.getElementById('SS1').value)+
				  "&model="+encodeURI(document.getElementById('SS2').value)+
				  "&year="+encodeURI(document.getElementById('SS3').value)+
				  "&size="+encodeURI(document.getElementById('SS4').value);
	makePOSTRequest("selectOption.php",content);
}

function insertOptions(){

	if(http_request.readyState==4){
			if(http_request.status==200){
				
				var xmlDoc=http_request.responseXML;
				var items = xmlDoc.getElementsByTagName('result')[0];
				var sid = items.getAttribute('id')
				
				if(parseInt(sid) <=4){
						var selbox = document.getElementById('SS'+sid);
						var len = parseInt(items.childNodes.length / 2);
						for (var x = 0 ; x < items.childNodes.length ; x++) {
							var sibl2 = items.childNodes.item(x);
							var sibl3;
							 if (sibl2.childNodes.length > 0) {
								sibl3 = sibl2.childNodes.item(0);
								addOption(selbox,sibl3.data,sibl3.data);
							 }
						}
				}
				else if(parseInt(sid) == 5){
					if(document.getElementById('radiob1').checked)	changeTomm();
					
				    var num1 = xmlDoc.getElementsByTagName('SeatTubeLengthWithExtension')[0].firstChild.nodeValue;
					var num2 = xmlDoc.getElementsByTagName('SeatAngle')[0].firstChild.nodeValue;
					var num3 =xmlDoc.getElementsByTagName('BBDrop')[0].firstChild.nodeValue;
					var num4 = xmlDoc.getElementsByTagName('ChainStayLength')[0].firstChild.nodeValue;
					var num5 = xmlDoc.getElementsByTagName('TopTubeLength')[0].firstChild.nodeValue;
					var num6 = xmlDoc.getElementsByTagName('RearWheelDiameter')[0].firstChild.nodeValue;
					var num7 = xmlDoc.getElementsByTagName('FrontWheelDiameter')[0].firstChild.nodeValue;
					var num8 = xmlDoc.getElementsByTagName('Offset')[0].firstChild.nodeValue;
					var num9 = xmlDoc.getElementsByTagName('ForkLength')[0].firstChild.nodeValue;
					var num10 = xmlDoc.getElementsByTagName('HeadTubeLength')[0].firstChild.nodeValue;
					var num11 = xmlDoc.getElementsByTagName('HeadAngle')[0].firstChild.nodeValue;
					var num12 = xmlDoc.getElementsByTagName('UpperStackHeight')[0].firstChild.nodeValue;
					var num13 = xmlDoc.getElementsByTagName('LowerStackHeight')[0].firstChild.nodeValue;
					
					
					
					document.getElementById('T1').value = num1;
					document.getElementById('T2').value = num2;
					document.getElementById('T3').value = num3;
				    document.getElementById('T4').value =num4;
				    document.getElementById('T5').value =num5;
				    document.getElementById('T6').value =num6;
				    document.getElementById('T7').value =num7;
				    document.getElementById('T8').value =num8;
				    document.getElementById('T9').value =num9;
					document.getElementById('T10').value =num10;
					document.getElementById('T11').value =num11;
					document.getElementById('T12').value =num12;
					document.getElementById('T13').value =num13;
					
					document.getElementById('origin1').value = num1;
					document.getElementById('origin2').value = num2;
					document.getElementById('origin3').value = num3;
				    document.getElementById('origin4').value =num4;
				    document.getElementById('origin5').value =num5;
				    document.getElementById('origin6').value =num6;
				    document.getElementById('origin7').value =num7;
				    document.getElementById('origin8').value =num8;
				    document.getElementById('origin9').value =num9;
					document.getElementById('origin10').value =num10;
					document.getElementById('origin11').value =num11;
					document.getElementById('origin12').value =num12;
					document.getElementById('origin13').value =num13;
					
					document.getElementById('d1').selectedIndex=0;
					document.getElementById('d2').selectedIndex=2;					
					document.getElementById('rwdlist').selectedIndex=0;					
					document.getElementById('fwdlist').selectedIndex=0;	
					
					document.getElementById('radiob2').checked = true;
				}		
			}				
			else {
            	alert('There was a problem with the request.');
         	}

	}
}				
function addOption(selectbox,text,value )
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
}

function removeOption(sel) {
  
  sel.selectedIndex = 0;
  sel.options.length = 1;
  
}

function email(){
//check whether there're empty fiedls

for(var loop=1;loop<=22;loop++){
	if (document.getElementById("origin"+loop).value.length==0) {
		alert("fill all the fields and try again");
		return;
	}
}
for(var loop =23; loop<=24; loop++){
	if (document.getElementById("T"+loop).value.length==0) {
		alert("fill all the fields and try again");
		return;
	}
	}
for(var loop=1; loop<=22; loop++){
	if (document.getElementById("r"+loop).value.length==0) {
		alert("fill all the fields and try again");
		return;
	}
	}

var content="drop1="+encodeURI(document.getElementById('d1').value)+
			"&drop2="+encodeURI(document.getElementById('d2').value);
if (document.getElementById('radiob1').checked) content+="&unit=1";
else content+="&unit=2";

for(var loop=1;loop<=24;loop++){

	if(loop <23){
		temp_value = parseFloat(document.getElementById("origin"+loop).value);
	 	temp_value = temp_value.toFixed(1);
		
		
	}
	else temp_value = document.getElementById("T"+loop).value;
	content+=("&T"+loop+"="+encodeURI(temp_value));

}

for (var loop=1;loop<=22;loop++){
content+=("&r"+loop+"="+encodeURI(document.getElementById("r"+loop).value));
}

makePOSTRequest("email2.php",content);
}

function showEmailstatus(){
if(http_request.readyState==4){
		if(http_request.status==200){
		var response=http_request.responseText;

		if (response.match("error")==null) alert("An email has been sent to your mailbox.");
		else alert("error on sending email..."+response);
		}else{
		alert('There is an error with the request');
		}
	}
}
function changeBike(img){
	if(img == "") img = "original_bike.gif";
	document.getElementById('bikename').src = "images/"+img;
	
	}
function write2file(){
for(var loop=1;loop<=22;loop++){
	if (document.getElementById("origin"+loop).value.length==0) {
		alert("fill all the fields and try again");
		return;
	}
}

for(var loop=1; loop<=22; loop++){
	if (document.getElementById("r"+loop).value.length==0) {
		alert("fill all the fields and try again");
		return;
	}
	}

var content="drop1="+encodeURI(document.getElementById('d1').value)+
			"&drop2="+encodeURI(document.getElementById('d2').value);
if (document.getElementById('radiob1').checked) content+="&unit=1";
else content+="&unit=2";

for(var loop=1;loop<=22;loop++){
		temp_value = parseFloat(document.getElementById("origin"+loop).value);
	 	temp_value = temp_value.toFixed(1);
		content+=("&T"+loop+"="+encodeURI(temp_value));
}

for (var loop=1;loop<=22;loop++){
content+=("&r"+loop+"="+encodeURI(document.getElementById("r"+loop).value));
}

makePOSTRequest("writefile2.php",content);

}	



function showwritestatus(){

	if(http_request.readyState==4){
		if(http_request.status==200){
		var response=http_request.responseText;
		openfile();
		}
	}
}
	
function openfile(){
	popup_window2 = window.open('temp/temp2.txt','_blank','resizable=yes, scrollbars=yes, toolbar=no, location=no, directories=no');
	//popup_window2.blur();
	popup_window2.document.execCommand('SaveAs', false, 'file2.txt');
	popup_window2.close();
	return false;
	}	
	
function handleAfLaunchCycad()
{
	
	if(http_request.readyState==4){
		if(http_request.status==200){
			var loc=http_request.responseText;

			newWindow = window.open(loc,'name','type=fullWindow,fullscreen,scrollbars=yes,resizable=yes'); 
			newWindow.focus();
		}
	}
	
}