﻿
		function resetDivData(which, resetcmd) {
			var container = document.getElementById(which);
			if (container) {
				var ctls = container.getElementsByTagName('input');
				for (var i = 0; i < ctls.length; i++) {
					switch (ctls[i].type) {
						case 'text':
							ctls[i].value = '';
							break;
						case 'hidden':
							ctls[i].value = '';
							break;
						case 'radio':
							ctls[i].checked = false;
							break;
						case 'checkbox':
							ctls[i].checked = false;
							break;
					}
				}
				try {
					eval(resetcmd);
				}
				catch (x) { }
			}
		};

		String.prototype.trim = function() {
			return this.replace(/^\s+|\s+$/g, "");
		};
		
		String.prototype.number_format = function(decimals, dec_point, thousands_sep, currency_sym){
		    return number_format(this,decimals,dec_point,thousands_sep,currency_sym);
		};
		
        function number_format (number, decimals, dec_point, thousands_sep, currency_sym) {
            // Formats a number with grouped thousands  
            // 
            // version: 1103.1210
            // discuss at: http://phpjs.org/functions/number_format
            // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
            // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
            // +     bugfix by: Michael White (http://getsprink.com)
            // +     bugfix by: Benjamin Lupton
            // +     bugfix by: Allan Jensen (http://www.winternet.no)
            // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
            // +     bugfix by: Howard Yeend
            // +    revised by: Luke Smith (http://lucassmith.name)
            // +     bugfix by: Diogo Resende
            // +     bugfix by: Rival
            // +      input by: Kheang Hok Chin (http://www.distantia.ca/)
            // +   improved by: davook
            // +   improved by: Brett Zamir (http://brett-zamir.me)
            // +      input by: Jay Klehr
            // +   improved by: Brett Zamir (http://brett-zamir.me)
            // +      input by: Amir Habibi (http://www.residence-mixte.com/)
            // +     bugfix by: Brett Zamir (http://brett-zamir.me)
            // +   improved by: Theriault
            // +      input by: Amirouche
            // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
            // *     example 1: number_format(1234.56);
            // *     returns 1: '1,235'
            // *     example 2: number_format(1234.56, 2, ',', ' ');
            // *     returns 2: '1 234,56'
            // *     example 3: number_format(1234.5678, 2, '.', '');
            // *     returns 3: '1234.57'
            // *     example 4: number_format(67, 2, ',', '.');
            // *     returns 4: '67,00'
            // *     example 5: number_format(1000);
            // *     returns 5: '1,000'
            // *     example 6: number_format(67.311, 2);
            // *     returns 6: '67.31'
            // *     example 7: number_format(1000.55, 1);
            // *     returns 7: '1,000.6'
            // *     example 8: number_format(67000, 5, ',', '.');
            // *     returns 8: '67.000,00000'
            // *     example 9: number_format(0.9, 0);
            // *     returns 9: '1'
            // *    example 10: number_format('1.20', 2);
            // *    returns 10: '1.20'
            // *    example 11: number_format('1.20', 4);
            // *    returns 11: '1.2000'
            // *    example 12: number_format('1.2000', 3);
            // *    returns 12: '1.200'
            // *    example 13: number_format('1 000,50', 2, '.', ' ');
            // *    returns 13: '100 050.00'
            // Strip all characters but numerical ones.
            number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
            var n = !isFinite(+number) ? 0 : +number,
                prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
                dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
                cur = (typeof currency_sym === 'undefined') ? '' : currency_sym,
                s = '',
                toFixedFix = function (n, prec) {
                    var k = Math.pow(10, prec);
                    return '' + Math.round(n * k) / k;
                };
            // Fix for IE parseFloat(0.55).toFixed(0) = 0;
            s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
            if (s[0].length > 3) {
                s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
            }
            if ((s[1] || '').length < prec) {
                s[1] = s[1] || '';
                s[1] += new Array(prec - s[1].length + 1).join('0');
            }
            var ret = cur+s.join(dec);
            if(n<0){
                ret = '('+ret.replace(/-/g, '')+')';
            }
            return ret;
        };
        
		function cleanNumericEx(textBox) {
		    var s = textBox.GetText();
		    textBox.SetText(s.replace(/[\$,\%]/gi, ''));
		    return true;
		}

		function isValidPay(value) {
		    //required numbers only
		    return value.length > 0 && !(isNaN(value)); // && parseFloat(value)>12200;
		}

		function isValidNumber(value) {
		    //optional numbers, any amount > 0
		    return value.length == 0 || (!(isNaN(value)) && parseFloat(value) > 0);
		}

		function isValidPct(value) {
		    //optional pct only 
		    return value.length == 0 || (!(isNaN(value)) && parseFloat(value) <= 100 && parseFloat(value) >= -100)
		}    
		
		(function( $ ){
            $.fn.validEmail = function()
                {
                var valid = true;
                var pattern = /^.+@[^\.].*\.[a-z]{2,}$/i; //a valid email address, generously defined
                this.each(
                    function() {
                        //alert($(this).val());
                        valid = valid && pattern.test($(this).val());
                        }
                    );
                return valid;
                };
            }
        )
        ( jQuery );

