function setCookie(name, value, days) {
	var expires = new Date();
	expires.setDate(expires.getDate() + days);
	document.cookie = name + "=" + escape(value) + ((days==null) ? "" : ";expires="+expires.toGMTString());
}

function getCookie(name) {
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(name + "=");
		if (c_start!=-1) {
			c_start = c_start + name.length+1;
			c_end = document.cookie.indexOf(";",c_start);
			if (c_end==-1)
				c_end=document.cookie.length;
	    	return unescape(document.cookie.substring(c_start,c_end));
		}
	}
	return "";
}

function deleteCookie(name) {
	setCookie(name, '', -1);
}

function $RF(el, radioGroup) {
	if($(el).type && $(el).type.toLowerCase() == 'radio') {
		var radioGroup = $(el).name;
		var el = $(el).form;
	} else if ($(el).tagName.toLowerCase() != 'form') {
		return false;
	}

	var checked = $(el).getInputs('radio', radioGroup).find(
		function(re) {return re.checked;}
	);
	return (checked) ? $F(checked) : null;
}

function resetServices() {
	$('selectservices').getInputs('radio').each(function(e) {
		e.checked = false;
		$('modemtype').removeClassName('active');
		$('phoneadaptertype').removeClassName('active');
	});
}

function showServiceForm() {
	resetServices();
	var broadband = getCookie('broadband');
	var modem = getCookie('modem');
	var phoneadapter = getCookie('phoneadapter');

	if (broadband != null && broadband != '') {
		$(broadband).checked = true;
		if (broadband == 'adsl') {
			$('modemtype').addClassName('active');
		}
	}
	if (modem != null && modem != '') {
		$(modem).checked = true;
		if (modem == 'rgw') {
			$('phoneadaptertype').addClassName('active');
		}
	}
	if (phoneadapter != null && phoneadapter != '') {
		$(phoneadapter).checked = true;
	}
	$('selectservices').addClassName('active');
	$('contents').hide();
}

function setPreferences(broadband, modem, adapter) {
	//$('servicesValues').replace('<h2>Mina inställningar</h2>');
	var values = $$('#servicesValues p');
	if (broadband == 'adsl') {
		//$('broadband').innerHTML = 'Bredband: Via telejacket';
		//$('servicesValues').insert({'bottom':'<p>Bredband: Via telejacket</p>'});
		values[0].innerHTML = 'Bredband: Via telejacket';
	}
	else if (broadband == 'lan') {
		//$('broadband').innerHTML = 'Bredband: Via nätverksuttaget';
		//$('servicesValues').insert({'bottom':'<p>Bredband: Via nätverksuttaget</p>'});
		values[0].innerHTML = 'Bredband: Via nätverksuttaget';
	}
	else {
		//$('broadband').innerHTML = '';
		values[0].innerHTML = '';
	}

	if (modem == 'rgw') {
		//$('modem').innerHTML = 'Modem: Gateway';
		//$('servicesValues').insert({'bottom':'<p>Modem: Gateway</p>'});
		values[1].innerHTML = 'Modem: Gateway';
	}
	else if (modem == 'zyxel') {
		//$('modem').innerHTML = 'Modem: ZyXEL';
		//$('servicesValues').insert({'bottom':'<p>Modem: ZyXEL</p>'});
		values[1].innerHTML = 'Modem: ZyXEL';
	}
	else {
		//$('modem').innerHTML = '';
		values[1].innerHTML = '';
	}

	if (adapter == 'vood322') {
		//$('phoneadapter').innerHTML = 'Telefonadapter: Ja';
		//$('servicesValues').insert({'bottom':'<p>Telefonadapter: Ja</p>'});
		values[2].innerHTML = 'Telefonadapter: Ja';
	}
	else {
		//$('phoneadapter').innerHTML = '';
		values[2].innerHTML = '';
	}
}

function checkServices() {
	var broadband = getCookie('broadband');
	var modem = getCookie('modem');
	var phoneadapter = getCookie('phoneadapter');
	$$('div.manuals', 'div.troubleshoot').each(function(e) {
		e.hide();
	});
			
	if (broadband != null && broadband != "") {
		/*
		$('broadband').innerHTML = broadband;
		$('modem').innerHTML = modem;
		$('phoneadapter').innerHTML = phoneadapter;
		*/
		setPreferences(broadband, modem, phoneadapter);

		if (broadband == 'lan') {
			$('selectservices').removeClassName('active');
			$$('.case4').each(function(e) {
				e.show();
			});
		}
		else if (broadband == 'adsl') {
			if (modem != null && modem != '') {
				if (modem == 'rgw') {
					if (phoneadapter != null && phoneadapter != '') {
						$('selectservices').removeClassName('active');
						if(phoneadapter == 'vood322') {
							$$('.case2').each(function(e) {
								e.show();
							});
						}
						else {
							$$('.case1').each(function(e) {
								e.show();
							});
						}
					}
					else {
						deleteCookie('phoneadapter');
						showServiceForm();
					}
				}
				else {
					deleteCookie('phoneadapter');
					$('selectservices').removeClassName('active');
					$$('.case3').each(function(e) {
						e.show();
					});
				}
			}
			else {
				deleteCookie('modem');
				deleteCookie('phoneadapter');
				showServiceForm();
			}
		}
	}
	else {
		deleteCookie('broadband');
		deleteCookie('modem');
		deleteCookie('phoneadapter');
		showServiceForm(broadband, modem);
	}
}

function submitServices() {
	var broadbandtype = $RF('selectservices', 'broadband');
	var modemtype = $RF('selectservices', 'modem');
	var phoneadaptertype = $RF('selectservices', 'phoneadapter');
	
	if (broadbandtype != null && broadbandtype != '') {
		setCookie('broadband', broadbandtype, 31);
		if(broadbandtype == 'adsl') {
			if (modemtype != null && modemtype != '') {
				setCookie('modem', modemtype, 31);
				if (modemtype == 'rgw') {
					if (phoneadaptertype != null && phoneadaptertype != '') {
						setCookie('phoneadapter', phoneadaptertype, 31);
						checkServices();
						$('contents').show();
					}
					else {
						alert('Du har inte val typ av telefonadapter');
					}
				}
				else {
					deleteCookie('phoneadapter');
					$('contents').show();
					checkServices();
				}
			}
			else {
				alert('Du har inte valt vilken typ av modem du har');
			}
		}
		else if (broadbandtype == 'lan') {
			deleteCookie('modem');
			deleteCookie('phoneadapter');
			$('contents').show();
			checkServices();
		}
	}
	else {
		deleteCookie('broadband');
		deleteCookie('modem');
		deleteCookie('phoneadapter');
		alert('Du har inte valt vilken typ av bredband du har');
	}
}

document.observe("dom:loaded", function() {
	checkServices();
	
	Event.observe('selectservices', 'submit', function(event) {
		Event.stop(event);
		submitServices();
	});
	
	Event.observe('selectservices', 'reset', function(event) {
		Event.stop(event);
		resetServices();
	});
	
	Event.observe('changeservices', 'click', function(event) {
		showServiceForm();
	});
	
	$$('a.printpage').each(function(e) {
		Event.observe(e, 'click', function(event) {
			Event.stop(event);
			window.print();
		});
	});

	$('selectservices').getInputs('radio', 'broadband').each(function(e) {
		Event.observe(e, 'click', function(event) {
			if ($('adsl').checked == true) {
				$('modemtype').addClassName('active');
				if($('rgw').checked == true) {
					$('phoneadaptertype').addClassName('active');
				}
			}
			else {
				$('modemtype').removeClassName('active');
				$('phoneadaptertype').removeClassName('active');
			}
		});
	});

	$('selectservices').getInputs('radio', 'modem').each(function(e) {
		Event.observe(e, 'click', function(event) {
			if ($('rgw').checked == true) {
				$('phoneadaptertype').addClassName('active');
			}
			else {
				$('phoneadaptertype').removeClassName('active');
			}
		});
	});
});

