var package = '';

var scenarioCheck = new Array (
							new Array (
										'limitKredytowy1m',
										new Array ('limitKredytowy'),
										new Array ()
							),
							new Array (
										'limitKredytowy4m',
										new Array ('limitKredytowy'),
										new Array ()
							),
							new Array (
										'limitKredytowy',
										new Array ('limitKredytowy1m'),
										new Array ()
							)
);

var scenarioUncheck = new Array (
							new Array (
										'limitKredytowy', // if this unchecked then
										new Array (), // checkThis
										new Array ('limitKredytowy1m', 'limitKredytowy4m') // uncheckThis
							)
);

function setCheckedEnabled(element) {
	setChecked(element);
	setEnabled(element);
}
function setCheckedDisabled(element) {
	setChecked(element);
	setDisabled(element);
}
function setUncheckedDisabled(element) {
	setUnchecked(element);
	setDisabled(element);
}
function setUncheckedEnabled(element) {
	setUnchecked(element);
	setEnabled(element);
}


function setChecked(element) {
	element.defaultChecked	= true;
	element.checked			= true;
}
function setUnchecked(element) {
	element.defaultChecked	= false;
	element.checked			= false;
}
function setEnabled(element) {
	element.disabled = false;
}
function setDisabled(element) {
	element.disabled = true;
}


function setForm (elementsList, setProperties) {
	if (document) {

		array = elementsList;
		l = array.length;

		for (i = 0; i < l; i++) {
			element = document.getElementById(array[i]);
			if (element) {
				if (element.type == 'checkbox' || element.type == 'radio') {
					setProperties (element);
				}
			}
		}
	}
}

function arrayContains(array, value) {
	var l = array.length;
	if (l <= 0) return -1;
	
	for (i = 0; i < l; i++)
		if (array[i] == value) return i;

	return -1;
}

function arrayDiff(first, second) {
	var array = new Array();
	var i = 0;
	var f = first.length;
	
	for (i = 0; i < f; i++) {
		if (arrayContains(second, first[i]) == -1) {
			array.push(first[i]);
		}
	}

	return array;
}

function clearForm() {
	var oldPackage = package;
	package = '';
	//changeImageById (oldPackage, 'off');
	if (document) {
		elem = document.getElementById('packageNr');
		elem.value='-1';
	}
	package = '';

	setForm(products, setUncheckedDisabled); // clear form
	setForm(defaultProducts, setChecked); // check default
}

function Package(chosenPackage) {
	oldShowSaveAppPopup = showSaveAppPopup;
	showSaveAppPopup = 0;
	switch (chosenPackage) {
		case '0':
		case 'nowy_efekt':
			var oldPackage = package;
			package = 'nowy_efekt';
			//changeImageById (oldPackage, 'off');
			//changeImageById (package, 'chosen');

			setForm(efekt, setEnabled);
			rest = arrayDiff(products, efekt);
			setForm(rest, setUncheckedDisabled)
			setForm(defaultProducts, setCheckedEnabled);
			if (document) {
				elem = document.getElementById('packageNr');
				elem.value='0';
			}
			break;
		case '1':

		case 'nowy_efekt_plus':
			var oldPackage = package;
			package = 'nowy_efekt_plus';
			//changeImageById (oldPackage, 'off');
			//changeImageById (package, 'chosen');

			setForm(efekt_plus, setEnabled);
			rest = arrayDiff(products, efekt_plus);
			setForm(rest, setUncheckedDisabled)
			setForm(defaultProducts, setCheckedEnabled);
			if (document) {
				elem = document.getElementById('packageNr');
				elem.value='1';
			}
			break;
		default:
			clearForm();
			package = '';
			if (document) {
				elem = document.getElementById('packageNr');
				elem.value='-1';
			}
	}

	showSaveAppPopup = oldShowSaveAppPopup
}

function scenario (element, mode) {
	if (! document || ! element) return;
	
	var array = scenarioUncheck; // mode == 'uncheck'
	if (mode == 'check') array = scenarioCheck;

	s = array.length;
	for (i = 0; i < s; i++) {
		if (array[i].length != 3) continue;

		if (element.id == array[i][0]) {
			var tmp;

			n = array[i][1].length;
			for (k = 0; k < n; k++) {
				tmp = document.getElementById (array[i][1][k]);
				setChecked (tmp);
			}

			n = array[i][2].length;
			for (k = 0; k < n; k++) {
				tmp = document.getElementById (array[i][2][k]);
				setUnchecked (tmp);
			}
			break;
		}
	}
}

function checkProduct (element) {
	if (! document || ! element) return;
	if (arrayContains(defaultProducts, element.id) != -1) {
		setChecked(element);
	}

	if (element.type == 'checkbox' || element.type == 'radio') {
		if (element.checked) scenario (element, 'check');
		else scenario (element, 'uncheck');
	}
}


/*

var nowy_efekt_on_img = new Image();
nowy_efekt_on_img.src = '/images/wizard_efekt/nowy_efekt_on.gif';
var nowy_efekt_off_img = new Image();
nowy_efekt_off_img.src = '/images/wizard_efekt/nowy_efekt_off.gif';
var nowy_efekt_chosen_img = new Image();
nowy_efekt_chosen_img.src = '/images/wizard_efekt/nowy_efekt_chosen.gif';

var nowy_efekt_plus_on_img = new Image();
nowy_efekt_plus_on_img.src = '/images/wizard_efekt/nowy_efekt_plus_on.gif';
var nowy_efekt_plus_off_img = new Image();
nowy_efekt_plus_off_img.src = '/images/wizard_efekt/nowy_efekt_plus_off.gif';
var nowy_efekt_plus_chosen_img = new Image();
nowy_efekt_plus_chosen_img.src = '/images/wizard_efekt/nowy_efekt_plus_chosen.gif';

function changeImage(img, mode) {
	if (img && (mode == 'on' || mode == 'off' || mode == 'chosen')) {
		var imgId = img.id;
		if (imgId == package && mode == 'off')  img.src = eval(imgId+'_chosen_img.src');
		else img.src = eval(imgId+'_'+mode+'_img.src');
		img.blur();
	}
}


function changeImageById(id, mode) {
	if (! document) return;
	var img = document.getElementById(id);
	
	changeImage (img, mode);
}
*/

function clearFormFields (formName) {

	if (document) {
		if (document.forms[formName]) {
	
			i = document.forms[formName].length;
	
			for (n = 0; n < i; n++) {
				if (! document.forms[formName].elements[n].type) continue;

				type = document.forms[formName].elements[n].type;
				switch (type) {
					case 'checkbox':	document.forms[formName].elements[n].defaultChecked=false;
										document.forms[formName].elements[n].checked=false;
										break;
										
					case 'radio':		document.forms[formName].elements[n].defaultChecked=false;
										document.forms[formName].elements[n].checked=false;
										break;
										
					case 'select-one':
					case 'select':
										k = document.forms[formName].elements[n].length;
										for (x = 0; x < k; x++) {
											document.forms[formName].elements[n].options[x].defaultSelected=false;
											document.forms[formName].elements[n].options[x].selected=false;
										}
										document.forms[formName].elements[n].selectedIndex=0;
										break;
										
					case 'text':		document.forms[formName].elements[n].defaultValue='';
										document.forms[formName].elements[n].value='';
										break;
										
					case 'textarea':	document.forms[formName].elements[n].defaultValue='';
										document.forms[formName].elements[n].value='';
										break;
				}
			}
		}
	}
}

function charEntered (element, maxLength) {
	if (! element.value) return;
	if (element.value.length > maxLength) element.value = element.value.substr(0, maxLength);
}
