window.onload = function() {
	get_chair(1);
	ddaccordion.expandone('sections', 0)
};


/***********************************************
* Accordion Content script- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
* Visit http://www.dynamicDrive.com for hundreds of DHTML scripts
* This notice must stay intact for legal use
***********************************************/
ddaccordion.init({
	headerclass: 'sections', //Shared CSS class name of headers group
	contentclass: 'section', //Shared CSS class name of contents group
	collapseprev: true, //Collapse previous content (so only one open at any time)? true/false 
	defaultexpanded: [0], //index of content(s) open by default [index1, index2, etc]. [] denotes no content.
	animatedefault: true, //Should contents open by default be animated into view?
	persiststate: false, //persist state of opened contents within browser session?
	toggleclass: ['closedsection', 'opensection'], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
	togglehtml: ['none', '', ''], //Additional HTML added to the header when it's collapsed and expanded, respectively  ['position', 'html1', 'html2'] (see docs)
	animatespeed: 'normal' //speed of animation: 'fast', 'normal', or 'slow'
})

ddaccordion2.init({
	headerclass: 'subsections',
	contentclass: 'subsection',
	collapseprev: true, 
	defaultexpanded: [0],
	animatedefault: true,
	persiststate: false, 
	toggleclass: ['subclosedsection', 'subopensection'], 
	togglehtml: ['none', '', ''],
	animatespeed: 'normal' 
})


var http_request = false;

function makePOSTRequest(url, parameters, handler,async) {
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) {
		http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		http_request = new ActiveXObject('Msxml2.XMLHTTP');
	 } catch (e) {
		try {
		   http_request = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (e) {}
	 }
  }
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }
  
  http_request.onreadystatechange = eval(handler);
  http_request.open('POST', url, async);
  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);
}


function optionSuggest(section, option, div, parsec) {
	var par = '';
	if (parsec) {
		var pars = parsec.split(',');
		par = '&par=';
		for (i=0;i<pars.length;i++) {
			var fieldset = document.getElementById(pars[i]);
			for (var j=0;j<fieldset.getElementsByTagName('input').length;j++) {
				var radio = fieldset.getElementsByTagName('input')[j];
				if (radio.checked) {
					par = par + pars[i] + ';' + radio.value + ':';
					break;
				}
			}
		}
	}
	var params = 's='+ section + '&o=' + option + par;
	var img = document.getElementById( div + '_loader');
	img.src = 'images/loader.gif';
	makePOSTRequest('includes/options.php', params,'handle_optionSuggest',true);
	if (section == 'fabric') {
	} else {
		document.getElementById('step2_'+section).innerHTML = '&nbsp;- ' + document.getElementById('label_'+section+'_'+option).innerHTML;
	}
}

function handle_optionSuggest() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var secstr = http_request.responseText.split('\n');
			for (var j=0;j<secstr.length-2;j++) {
				var str = secstr[j].split(':');
				var section = str[0];
				var fieldset = document.getElementById(section);
				for (var i=0;i<fieldset.getElementsByTagName('input').length;i++) {
					var radio = fieldset.getElementsByTagName('input')[i];
					radio.disabled = '';
					radio.checked = false;
					radio.parentNode.className = 'showme';
					fieldset.getElementsByTagName('label')[i].style.color = '';
					document.getElementById('avail_' + section + '_' + radio.value).innerHTML = '';
				}
				var opt = str[1].split(',');
				
				if (section == "stitch") {
					if (opt[opt.length-1]!=0) {
						document.getElementById("stitch").style.display = "";
					} else {
						document.getElementById("stitch").style.display = "none";
					}
				}
				
				if (opt[0]!='') {
					for (var i=0;i<opt.length-1;i++) {
						if (str[0]=='color') {
							document.getElementById(section + '_div_' + opt[i]).className = 'hideme';
						}
						document.getElementById(section + '_' + opt[i]).disabled = 'disabled';
						document.getElementById('label_' + section + '_' + opt[i]).style.color = '#ACACAC';
					}
					if (opt[opt.length-1]!=0) {
						var radio = document.getElementById(section + '_' + opt[opt.length-1]);
						if (!radio.checked) {
							radio.checked = true;
							if (secstr[secstr.length-2] == 'comfort') {
								document.getElementById('step2_' + section).innerHTML =  '&nbsp;- ' + document.getElementById('label_'+radio.id).innerHTML;
								build_header('step2');
							} else if (secstr[secstr.length-2] == 'style') {
								build_header('step3');
							}
							//radio.click();
						}
					}
				}
			}
			var img = document.getElementById(secstr[secstr.length-2]+'_loader')
			img.src = 'images/blank.gif';
			//A.style.filter='';

			//build_chair();
			build_chair(secstr[secstr.length-2]);
		}
	}
}


function handle_chairSuggest() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var img = document.getElementById('load_loader');
			if (http_request.responseText == 'not found!') {
				img.src = 'images/blank.gif';
				var txt = document.getElementById('load_emailaddress');
				txt.value = http_request.responseText;
			} else {
				var secstr = http_request.responseText.split('\n');
				for (var j=0;j<secstr.length-1;j++) {
					var str = secstr[j].split(':');
					var section = str[0];
					if (str[0]=='height' || str[0]=='weight') {
						var wh = document.getElementById('fld_'+str[0]);
						wh.value = str[1];
					} else {
						var fieldset = document.getElementById(section);
						for (var i=0;i<fieldset.getElementsByTagName('input').length;i++) {
							var radio = fieldset.getElementsByTagName('input')[i];
							if (section == 'stitch' && str[1] == 0) {
								radio.disabled = 'disabled';
								document.getElementById("stitch").style.display = "none";
							} else {
								radio.disabled = '';
								fieldset.getElementsByTagName('label')[i].style.color = '';
									radio.checked = (radio.value == str[1]);
									if (radio.checked && radio.name =='fabric') {
										radio.click();
									}
								document.getElementById('avail_' + section + '_' + radio.value).innerHTML = '';
							}
						}
					}
				}
				var img = document.getElementById('specs_loader')
				img.src = 'images/blank.gif';
				build_header('step2');
				if (wh) {
					var img = document.getElementById('load_loader')
					img.src = 'images/blank.gif';
					get_chair(1);
					build_chair();
					ddaccordion.expandone('sections', 4);
				}
			}
		}
	}
}

function get_chair(section) {
	if (section == 1 ) {
		var step = document.getElementById('step'+section);
		var height = document.getElementById('fld_height');
		var weight = document.getElementById('fld_weight');
		var params = 'h='+ height.value + '&w=' + weight.value;
		step.innerHTML = '- weight:' + weight.options[weight.selectedIndex].innerHTML + ' / height:' + height.options[height.selectedIndex].innerHTML;
		var img = document.getElementById( 'specs_loader');
		img.src = 'images/loader.gif';
		makePOSTRequest('includes/options.php', params,'handle_chairSuggest',true);
	}
}
function build_header(section) {
	if (section=='step3') {
		var fabric = get_header('fabric');
		//var stitch = get_header('stitch'); 
		var color = get_header('color'); 
		document.getElementById(section).innerHTML = '- fabric:' + fabric + ' / color:' + color ; //+ ' / double stitch:' + stitch;
	} else if (section=='step2') {
		var seat = get_header('seat');
		var back = get_header('back'); 
		var mech = get_header('mech'); 
		document.getElementById(section).innerHTML = '- seat:' + seat + ' / back:' + back + ' / mech:' + mech;
	}
}

function get_header(fld) {
	fieldset = document.getElementById(fld);
	for (var i=0;i<fieldset.getElementsByTagName('input').length;i++) {
		if (fieldset.getElementsByTagName('input')[i].checked) {
			return document.getElementById('label_' + fieldset.getElementsByTagName('input')[i].id).innerHTML;
			break;
		}
	}
}

function build_chair(section) {

	document.getElementById('chair').src = 'images/loading.gif';
	document.getElementById('step4').innerHTML = '...';
	
	params = build_options();
	ulinner = params[1];
	color_data = params[2];
	params = 'options=' + params[0];
	
	var collbl = document.getElementById('label_color_' + color_data);
	document.getElementById('img_selcolor').src = collbl.parentNode.getElementsByTagName('img')[0].src;
	document.getElementById('spn_selcolor').innerHTML = collbl.innerHTML; 

	makePOSTRequest('includes/options.php', params,'handle_finalSuggest',true);
	document.getElementById('featuring').innerHTML = ulinner;
}

function build_options() {
	var captions = new Array('Height','Weight','Seat Type','Back Type','Neckroll','Lumbar','Mechanism','Seat Depth Adj','Arm Type','Foam Type','Fabric','Color','Double Stitch');
	var fields = new Array('fld_height','fld_weight','seat','back','headrest','lumbar','mech','depth','arm','foam','fabric','color','stitch');
	var data = new Array();


	for (var i=0;i<2;i++) {
		data[fields[i]] = document.getElementById(fields[i]).value;
	}
	var cs = document.getElementById('cs');
	for (var i=2;i<fields.length;i++) {
		data[fields[i]] = get_radio_val(cs.elements[fields[i]]);
	}

	var ulinner = '';
	var params = data[fields[0]] + ':' + data[fields[1]];
	for (var i=2;i<fields.length;i++) {
		if (data[fields[i]]) {
			ulinner = ulinner + '<li>'+captions[i]+': '+document.getElementById('label_' + fields[i] + '_' +data[fields[i]]).innerHTML+'</li>'
			params = params + ':' + data[fields[i]];
		} else {
			params = params + ':';
		}
	}
	return Array(params,ulinner,data['color']);	
}

function handle_finalSuggest() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			//alert(http_request.responseText);
			var final_req = http_request.responseText.split(':');
			//var ulinner = '<br/><li>Price (Estimate): '+final_req[0]+'</li>';
			var ulinner = "";
			document.getElementById('featuring').innerHTML = document.getElementById('featuring').innerHTML + ulinner;
			document.getElementById('chair').src = final_req[1];
			document.getElementById('step4').innerHTML = final_req[2];
		}
	}
}

function get_radio_val(radio_group) {
	if(!radio_group)
		return '';
	var radioLength = radio_group.length;
	if(radioLength == undefined)
		if(radio_group.checked)
			return radio_group.value;
		else
			return '';
	for(var i = 0; i < radioLength; i++) {
		if(radio_group[i].checked) {
			return radio_group[i].value;
		}
	}
	return '';
}
function startover() {
	return confirm('If you continue to start over, all of your data will be erased. Are you sure you want to start over?');
}

function email_on_change(txt) {
	var def_txt = 'your email address';
	var err_txt = 'invalid e-mail address!';
	var err2_txt = 'not found!';
	if (txt.value == def_txt || txt.value == err_txt || txt.value == err2_txt ) {
		txt.value = '';
	} else if (txt.value == '' ) {
		txt.value = def_txt;
	}
}

function load_session() {
	var txt = document.getElementById('load_emailaddress');
	var img = document.getElementById('load_loader');
	img.src = 'images/loader2.gif';
	if (is_email(txt)) {
		var params = 'load_session=' + txt.value;
		makePOSTRequest('includes/options.php', params,'handle_chairSuggest',true);		
	} else {
		img.src = 'images/blank.gif';
	}
}

function is_email(txt) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(txt.value)) {
		return (true);
	}
	txt.value = 'invalid e-mail address!';
	return (false);
}

function get_final(opt) {
	var params = 'options=' + build_options()[0] + '&opt=' + opt;
	document.getElementById("control_panel").style.display = "none";
	makePOSTRequest('includes/options.php', params,'handle_saveSession',true);
}

function handle_saveSession() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			location.href = http_request.responseText;
		}
	}
}
