﻿//bliblioteca compartilhada com funçoes comuns ao sistema



/**********************************************************/
//Usada para validação de datas
//typedate ==1 br date
function validateDate(value, typedate) {

    var RegExPattern
    if (typedate != "1")
	    //ddmmyyyy
	    RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
    else
	    //mmddyyyy
	    RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;

    if ((value.match(RegExPattern)) && (value != '')) {
        return true;
    } else {
        return false;
    }
   }

   function setMaxLength() {
   	var x = document.getElementsByTagName('textarea');
   	var counter = document.createElement('div');
   	counter.className = 'counter';
   	for (var i = 0; i < x.length; i++) {
   		if (x[i].getAttribute('maxlength') || x[i].getAttribute('maxlen')) {
   			//var counterClone = counter.cloneNode(true);
   			//counterClone.relatedElement = x[i];
   			//counterClone.innerHTML = 'Caracteres inseridos: <span>0</span> de ' + x[i].getAttribute('maxlength');
   			//x[i].parentNode.insertBefore(counterClone, x[i].nextSibling);
   			//x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

   			x[i].onkeyup = x[i].onchange = checkMaxLength;
   			x[i].onkeyup();
   		}
   	}
   }

   function checkMaxLength() {

   	var maxLength = (this.getAttribute('maxlength') == null || this.getAttribute('maxlength') == "") ? this.getAttribute('maxlen') : this.getAttribute('maxlength');
//  	alert(maxLength);
//   	alert(this.value.length);
//  	alert(lineBreakCount(this.value));
   	var lnCount = lineBreakCount(this.value);
   	
   	var currentLength = this.value.length;
   	maxLength = maxLength - lnCount;
   	if (currentLength > maxLength) {
   		//this.relatedElement.className = 'toomuch';
   	    this.value = this.value.substring(0, maxLength)
//   	    alert(this.value.length);
   	}
   	//else
   		//this.relatedElement.className = '';
   	//this.relatedElement.firstChild.nodeValue = currentLength;
   }

   /***************************************************************************
   **Esta função tira os espaços em brancos de todos os campos input e textarea
   ****************************************************************************/
   function preparefields() {
   	
   	$("input, textarea").change(function() {
   		this.value = $.trim(this.value);
   		this.value = stripHTML(this.value);
   	});

//   	$("input, textarea").keyup(function() {
//   		
//   		this.value = stripHTML(this.value);
//   	});
//   	

//   	$("input, textarea").keyup(function() {
//   		this.value = $.trim(this.value);
//   		this.value = stripHTML(this.value);
//   	});
   	
   }
   /**************************************************************************/

   $(document).ready(function() {
   	//validando o tamanho dos textareas
   	setMaxLength();

   	preparefields();

   });

   function stripHTML(html) {
   	var BodyContents = /([\s\S]*\<body[^\>]*\>)([\s\S]*)(\<\/body\>[\s\S]*)/i;
   	
       var h = html.match(BodyContents);
       if (h != null && h[2]) {
           html = h[2];
       }
       html = html.replace(/\/\/--\>/gi, "");
       html = html.replace(/(<\/|\\|\<|\>|\&#)/gi, "");
       //html = html.replace(/(\n)/gi, "");
       //html = html.replace(/(\r)/gi, "");
       html = html.replace(/<br\/?>/gi, "\n");
       html = html.replace(/(<\/h.>|<\/p>|<\/div>)/gi, "$1\n\n");
       html = html.replace(/<[^>]+>/g, "");
       html = html.replace(/&lt;/g, "<");
       html = html.replace(/&gt;/g, ">");
       html = html.replace(/&nbsp;/g, "");
       return html;

   }

   //Pega valor de uma CheckBox
   jQuery.fn.isChecked = function() {
       this.each(function() {
           isChecked = this.checked;
       });

       return isChecked;
   }

   function lineBreakCount(str) {
       /* counts \n */
       try {
           return ((str.match(/[^\n]*\n[^\n]*/gi).length));
       } catch (e) {
           return 0;
       }
   }