function $() {
    var elements = new Array();
    
    for (var i = 0; i < arguments.length; i++) {

      var element = arguments[i];

      if (typeof element == 'string') {
        if (document.getElementById) {
          element = document.getElementById(element);
        } else if (document.all) {
          element = document.all[element];
        }
      }

      elements.push(element);

    }

    if (arguments.length == 1 && elements.length > 0) {
      return elements[0];
    } else {
      return elements;
    }
    
}


function getformvalue(formitem){
	var type = formitem.type;
	var value = '';
	if(typeof(type) != 'undefined'){
		switch(type){
			case 'select-one':
				value = formitem.options[formitem.selectedIndex].value;
				break;
			case 'radio':
				if (formitem.checked)  {
					value = formitem.value;
				} 				
				break;				
			case 'checkbox':
				if(formitem.checked){
					value = url_encode(formitem.value);
				}
				break;				
			default :
				value = url_encode(formitem.value);
				break;				
		}
	}
	return value;
}

function url_encode(str) { 
	var hex_chars = "0123456789ABCDEF"; 
    var noEncode = /^([a-zA-Z0-9\_\-\.])$/; 
    var n, strCode, hex1, hex2, strEncode = ""; 

    for(n = 0; n < str.length; n++) { 
    	if (noEncode.test(str.charAt(n))) { 
        	strEncode += str.charAt(n); 
        } else { 
        	strCode = str.charCodeAt(n); 
            hex1 = hex_chars.charAt(Math.floor(strCode / 16)); 
            hex2 = hex_chars.charAt(strCode % 16); 
           	strEncode += "%" + (hex1 + hex2); 
        } 
	} 
    return strEncode; 
} 

    // url_decode version 1.0 
function url_decode(str) { 
	var n, strCode, strDecode = ""; 
	
	for (n = 0; n < str.length; n++) { 
    	if (str.charAt(n) == "%") { 
        	strCode = str.charAt(n + 1) + str.charAt(n + 2); 
            strDecode += String.fromCharCode(parseInt(strCode, 16)); 
            n += 2; 
		} else { 
        	strDecode += str.charAt(n); 
		} 
	} 

    return strDecode; 
}


function exportForm(formId){

	if(typeof(formId) != 'string') {
		alert('invalid form id');
		return false;
	}
	var form = $(formId);

	if(typeof(form) == 'undefined' || form == null){
		alert('invalid form');
		return false;
	} 
	

	elementstr = "";
	for(iterator = 0; iterator < form.elements.length; iterator++){
			
			if(form.elements[iterator].name != ""){
				value = getformvalue(form.elements[iterator]);
				if(value != ''){
					str = '"' + form.elements[iterator].name + '" : "' + value + '",'	;
					elementstr += str; 
				}
			} else if(form.elements[iterator].id != ""){
				value = getformvalue(form.elements[iterator]);			
				if(value != ''){
					str = '"' + form.elements[iterator].id + '" : "' + value + '",'	;
					elementstr += str; 
				}
			}
	}

	elementstr = elementstr.substr(0, elementstr.length -1);

	exportstr = "var exportobj = {" + elementstr + "};";
	//document.getElementById('log').innerHTML = exportstr;
	try{

		eval(exportstr);
		return exportobj;
	} catch(e){
		alert("erro ao exportar o form");
		return null;
	}
}


function clearFields(){
 for (var i = 0; i < arguments.length; i++) {
	  
      var element = arguments[i];

      if (typeof element == 'string') {
          element = $(element);
    
      }

	  if(typeof(element) != 'undefined'){
		try{
			t = element.type;
			
		}catch(e){
			t = "text";
		}
 	   try{
		switch(t){
			case 'select-one':
				element.selectedIndex = 0;
				break;
			case 'radio':
				element.checked = false;
				break;				
			case 'checkbox':
				element.checked = false;			
				break;				
			case 'text' :
				element.value = "";
				break;				
		}
		} catch(exception){
			//alert(exception);
		}

	  }
    }	
}

function erroValidacao(){

	labels = document.getElementsByTagName('label');

	for(i=0;i<labels.length;i++){
		labels[i].style.color="#000000";
		
	}

	for(i=0; i< arguments.length; i++){
		if(labels.length > 0){
			tagFor = '';
			if(typeof(labels[0].getAttribute('for')) == 'nothing' || labels[0].getAttribute('for') == null ){
				tagFor = 'htmlFor';
			}
			else {
				tagFor = 'for';
			}
			for(iterator = 0; iterator<labels.length; iterator++){
				currentId = labels[iterator].getAttribute(tagFor);

				if(currentId == arguments[i]){

					labels[iterator].style.color = "#FF0000";
				}
			}
		}
	}
	if(arguments.length > 0){
		element = $(arguments[0]);
		if(element != 'nothing') element.focus();
	}
}
