// JavaScript Document
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 displaycookie(){

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=1;i<=13;i++){
	if(getCookie("unit") == 3){ //cm
		//document.getElementById("origin"+i).value=getCookie("T"+i)*10;
		//document.getElementById("T"+i).value=getCookie("T"+i)*10;
	}
	else {
		document.getElementById("origin"+i).value=getCookie("T"+i);
		document.getElementById("T"+i).value=getCookie("T"+i);
	}
 }
	document.getElementById('d1').selectedIndex=getCookie("drop1");
	document.getElementById('d2').selectedIndex=getCookie("drop2");
	//calculate the result
	get();

}

function updateDB(ID){
	
	this_ID = ID.substring(1);
	document.getElementById('origin'+this_ID).value = document.getElementById(ID).value;
	//calculate the result
	
	get();
	

}

function hidefileInput(){

   document.getElementById('import_file').style.display = "none";
   document.getElementById('import_database').style.display = "block";
}

function showfileInput(){
     document.getElementById('import_file').style.display = "block";
	 document.getElementById('import_database').style.display = "none";
}

function showInputFunction(id){
	if(id == "importD") hidefileInput();
	else  showfileInput();
}
	
/*init page*/
function init(){
	
	loadcookie
	initSelectBox();
}

function convert(id){
	if(id == "radiob1"){
		eu = 1/25.4;
		for (i=1;i<=13; i++){
			if ((i!=2)&&(i!=11)){
					if(document.getElementById('T'+i).value.length != 0 && (i!=6) && (i!=7)&& document.getElementById('s'+i).innerHTML == "mm"){
						var Tvalue = parseFloat(document.getElementById('origin'+i).value)*eu;
						document.getElementById('origin'+i).value = Tvalue;
						document.getElementById('T'+i).value = Tvalue.toFixed(1);
						
						}
				document.getElementById('s'+i).innerHTML="in";
				}
			
			}
		 for(i=17;i<=22;i++){
			 if(document.getElementById('origin'+i).value.length != 0)  
			 document.getElementById('origin'+i).value *=eu; 
			 }
		
		}
	else if(id == "radiob2"){
		eu = 25.4;
		for (i=1;i<=13; i++){
			if ((i!=2)&&(i!=11)){
					if(document.getElementById('T'+i).value.length != 0 && (i!=6) && (i!=7)&& document.getElementById('s'+i).innerHTML == "in"){
						var Tvalue = parseFloat(document.getElementById('origin'+i).value)*eu;
						document.getElementById('origin'+i).value = Tvalue;
						document.getElementById('T'+i).value = Tvalue.toFixed(1);
						
						}
				document.getElementById('s'+i).innerHTML="mm";
				}
			
			}
		for(i=17;i<=22;i++){
			 if(document.getElementById('origin'+i).value.length != 0)  
			 document.getElementById('origin'+i).value *=eu; 
			 }
		
		}
if(document.getElementById('T6').value.length==0){  
var ele=document.getElementById('rwdlist');

document.getElementById('T6').value=ele.options[ele.selectedIndex].value;
} else{ num=document.getElementById('origin6').value*eu;
document.getElementById('origin6').value = num;
document.getElementById('T6').value=num.toFixed(1);
}
if(document.getElementById('T7').value.length==0){
ele=document.getElementById('fwdlist');
document.getElementById('T7').value=ele.options[ele.selectedIndex].value;
}else {num=document.getElementById('origin7').value*eu;
document.getElementById('origin7').value = num;
document.getElementById('T7').value=num.toFixed(1);
}
	
	}
		
//start of ajax section		
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{
			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) //not used
			{ 	
			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;	
			
			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;	
			
			for(var loop=12;loop<=17;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 there're empty fields
for(var loop=1;loop<=22;loop++){
	if(loop != 14 && loop !=15 && loop != 16){
		if (document.getElementById("origin"+loop).value.length==0) {
			
			return;
		}//end if
	}//end if
}//end for

var poststr="drop1="+encodeURI(document.getElementById('d1').selectedIndex)+
			"&drop2="+encodeURI(document.getElementById('d2').selectedIndex)+
			"&partial="+encodeURI("partial"); //this variable set to partial calculate the result
		
for(var loop=1;loop<=22;loop++){
	if(loop != 14 && loop !=15 && loop != 16){
		tem_value = document.getElementById("origin"+loop).value;
		if(document.getElementById('radiob1').checked && loop !=2 && loop !=11 && 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)	convert('radiob2');
			
					
				    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;
						
					get();
				}		
			}				
			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 changeBike(img){
	if(img == "") img = "original_bike.gif";
	document.getElementById('bikename').src = "images/"+img;
	
	}