/**
*	asa-assistant.js
*
*	Copyright (c) 2010 a-commerce ag. All Rights Reserved.
*
*	date created: 04/2010/cz
*/

var selectedAge = 0;
var selectedCategory = new Hash();
var isCategoryNone = false;

function trim(s) {
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}

function getRadioValue(radioGroupName) {
	var x = 0;
    var radios = document.getElementsByName(radioGroupName);		
    for (i = 0; i < radios.length; i++) {
        if (radios[i].checked) {
			x = radios[i].value;
			break;
		}
    }
	return x;
}

isDefined = function(variable) { 
	return this[variable] === undefined ? false : true;
};

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} 
	else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

function getACK() {
	var uuid = new Date().getTime();	
	return '&'+sid+'&uuid='+uuid;
}

function setAge(e,v,age) {
	if (age != selectedAge) {
		selectedAge = age;
		resetButtonAge(e,v);
	}
	selectedCategory = new Hash();
	loadCategoryList();
	loadResult();
}

function resetButtonAge(e,v) {
	
	/* Reset all Buttons */
	for (ii=14;ii<=25;ii++) {
		if (document.getElementById('age'+ii)) {
			el = document.getElementById('age'+ii).src;
			el = el.replace('gelb', 'weiss');	
			document.getElementById('age'+ii).src=el;
		}
	}
	
	/* Highlight selected button */
	if (v.indexOf('weiss',0) > 0) {
		v = v.replace('weiss', 'gelb');
	}
	else {
		v = v.replace('gelb', 'weiss');
	}
	
	document.getElementById(e).src=v;
}

function loadCategoryList() {	
	var url = 'respasa.cfm';
	var params = 'event=loadCategory&selectedAge='+selectedAge+getACK();
	var ajax = new Ajax.Updater(
	{success: 'boxCategory'},
	url,
	{method: 'get', parameters: params, onFailure: loadCategoryListError});
}
function loadCategoryListError(request) {
	alert("Error: loadCategoryList response");
}

function loadResult() {	
	loadResultList();
}

function loadResultList() {
	var url = 'result.cfm';
	var params = 'selectedAge='+selectedAge+'&selectedCategory='+getSelectedCategories()+getACK();
	var ajax = new Ajax.Updater(
	{success: 'boxResult'},
	url,
	{method: 'get', parameters: params, onFailure: loadResultListError});
}
function loadResultListError(request) {
	alert("Error: loadResultList response");
}

function setCategory(e,v) {
	if (selectedAge == 0) {
		alert(msg1);
		return false;
	}
	
	isCategoryNone = false;	
	if (document.getElementById('none')) {
		el = document.getElementById('none').src;
		el = el.replace('gelb', 'weiss');
		document.getElementById('none').src=el;
	}
	
	if (!selectedCategory.get(v)) {
		selectedCategory.set(v, v);
		el = document.getElementById(e).src;
		el = el.replace('weiss', 'gelb');	
		document.getElementById(e).src=el;		
		getCategoryPermissions();
	}
	else {
		selectedCategory.unset(v);
		el = document.getElementById(e).src;
		el = el.replace('gelb', 'weiss');	
		document.getElementById(e).src=el;
		getCategoryPermissions();
	}
}

function getCategoryPermissions() {
	var url = 'respasa.cfm';
	var params = 'event=getCategoryPermissions'+'&selectedAge='+selectedAge+'&selectedCategory='+getSelectedCategories()+getACK();
	var ajax = new Ajax.Request(
		url, 
		{method: 'get', parameters: params, onSuccess:requestCategoryPermissions, onFailure:errorCategoryPermissions, onComplete:loadResult, evalScripts: false});
}
var errorCategoryPermissions = function(t) {
	alert("Error: errorCategoryPermissions response");
}
var requestCategoryPermissions = function(t) {
	ret = trim(t.responseText);
	if (ret.length !=0) {
		aCat = ret.split(",");
		selectedCategory = new Hash();
		for(i=0;i<aCat.length;i++) {
			selectedCategory.set(aCat[i], aCat[i]);
			if (document.getElementById(aCat[i])) {			
				el = document.getElementById(aCat[i]).src;
				el = el.replace('weiss', 'gelb');
				document.getElementById(aCat[i]).src=el;
			}
		}
	}
}

function getSelectedCategories() {
	return selectedCategory.values();
}

function setCategoryNone() {
	if (selectedAge == 0) {
		alert(msg1);
	}
	else {
		if (!isCategoryNone) {
			isCategoryNone = true;
			el = document.getElementById('none').src;
			el = el.replace('weiss', 'gelb');	
			document.getElementById('none').src=el;
			unmarkAll();
		}
		else {
			isCategoryNone = false;
			el = document.getElementById('none').src;
			el = el.replace('gelb', 'weiss');	
			document.getElementById('none').src=el;
			unmarkAll();
		}
	}
}

function unmarkAll() {			
	var url = 'respasa.cfm';
	var params = 'event=getAllCategories'+getACK();
	var ajax = new Ajax.Request(
		url, 
		{method: 'get', parameters: params, onSuccess:requestUnmarkAll, onFailure:errorUnmarkAll, onComplete:loadResult, evalScripts: false});
}
var errorUnmarkAll = function(t) {
	alert("Error: errorUnmarkAll response");
}
var requestUnmarkAll = function(t) {
	ret = trim(t.responseText);
	if (ret.length !=0) {
		aCat = ret.split(",");
		selectedCategory = new Hash();
		for(i=0;i<aCat.length;i++) {
			if (document.getElementById(aCat[i])) {
				el = document.getElementById(aCat[i]).src;
				el = el.replace('gelb', 'weiss');	
				document.getElementById(aCat[i]).src=el;
			}
		}
	}
}
