function formCopyFieldsetContents(strFsSource, strFsTarget) {
	var fsSource = document.getElementById(strFsSource);
	var fsTarget = document.getElementById(strFsTarget);

	var elementsSource = fsSource.getElementsByTagName('INPUT');
	var elementsTarget = fsTarget.getElementsByTagName('INPUT');

	for (var i = 0; i < elementsSource.length; i++) {
		elementsTarget[i].value = elementsSource[i].value;
	}

	elementsSource = fsSource.getElementsByTagName('SELECT');
	elementsTarget = fsTarget.getElementsByTagName('SELECT');

	for (var i = 0; i < elementsSource.length; i++) {
		elementsTarget[i].value = elementsSource[i].value;
		if (elementsTarget[i].onchange) {
			if(navigator.appName == "Microsoft Internet Explorer") {
				eval(elementsTarget[i].onchange + ';anonymous();');
			} else {
				eval(elementsTarget[i].onchange + ';onchange();');
			}
		}
	}
}

function formMaskCep(input) {
	mask = new Mask('##.###-###', 'left');
	mask.attach(input);
}

function formMaskCpf(input) {
	mask = new Mask('###.###.###-##', 'left');
	mask.attach(input);
}

function formMaskCnpj(input) {
	mask = new Mask('##.###.###/####-##', 'left');
	mask.attach(input);
}

function formMaskCurrency(input) {
	mask = new Mask('+#,##', 'right');
	mask.attach(input);
}

function formMaskDate(input) {
	mask = new Mask('##/##/####', 'left');
	mask.attach(input);
}

function formMaskDateTime(input) {
	mask = new Mask('##/##/#### ##:##', 'left');
	mask.attach(input);
}

function formMaskNumeric(input) {
	mask = new Mask('+#', 'right');
	mask.attach(input);
}

function formMaskPhone(input) {
	mask = new Mask('+#-####', 'right');
	mask.attach(input);
}

function formMaskTime(input) {
	mask = new Mask('##:##', 'left');
	mask.attach(input);
}

function formSelectClear(str) {
	var select = document.getElementById(str);
	for (var i = select.options.length - 1; i >= 0; i--) {
		select.options[i] = null;
	}
}

function _compareOptionText (option1, option2) {
  return option1.text < option2.text ? -1 :
    option1.text > option2.text ? 1 : 0;
}

function formSelectSort(strSelect) {
	var select = document.getElementById(strSelect);
	var arr = new Array(select.options.length);
	
	for (var i = 0; i < arr.length; i++) {
		arr[i] = new Option (select.options[i].text, select.options[i].value, select.options[i].defaultSelected, select.options[i].selected);
	}
	
	arr.sort(_compareOptionText);

	for (var i = 0; i < arr.length; i++) {
		select.options[i] = arr[i];
	}
}

function formSubmitFieldset(strSet, method) {
	var fieldSet = document.getElementById(strSet);
	if (method.toLowerCase() == 'get') {
		var inputs = fieldSet.getElementsByTagName('INPUT');
		var selects = fieldSet.getElementsByTagName('SELECT');
		var query = '?';
		for (var i = 0; i < inputs.length; i++) {
			query += inputs[i].name + '=' + inputs[i].value + '&';
		}
		for (var i = 0; i < selects.length; i++) {
			query += selects[i].name + '=' + selects[i].value + '&';
		}
		query = query.substr(0, query.length - 1);
		window.location = query;
	}
}

function formSelectSelectAll(selectid) {
	var select = document.getElementById(selectid);

	for (var i = select.options.length - 1; i >= 0; i--) {
		if (select.options[i].value != '') {
			select.options[i].value = select.options[i].value.replace(',', '.');
		} else {
			select.options[i].value = select.options[i].text.replace(',', '.');
		}
		if (select.options[i].text != '') {
			select.options[i].text = select.options[i].text.replace(',', '.');
		}
		select.options[i].selected = true;
	}
}

function formSelectRemoveSelected(selectid) {
	var select = document.getElementById(selectid);
	
	for (var i = select.options.length - 1; i >= 0; i--) {
		if (select.options[i].selected) {
			select.options[i] = null;
		}
	}
}

function formTextToSelect(textid, selectid) {
	var text = document.getElementById(textid);
	var select = document.getElementById(selectid);
	
	if (text.value != '') {
		if (text.value.indexOf(",") == -1) {
			text.value = text.value + ",00";
			select.options[select.options.length] = new Option(text.value);
		} else {
			select.options[select.options.length] = new Option(text.value);
		}
		
		text.value = '';
		formSelectSort(selectid);
	}
}
