/*-----------------------------------------------------------------------------
POWERED BY EXPERTWEB

Inglaterra 1209 y Av Republica, Quito-Ecuador
(593 2) 246-1506, (593 2) 956-3284
www.expertweb.com.ec
info@expertweb.com.ec
-----------------------------------------------------------------------------*/

function isEmpty (vtext) {
	var ok = true;
	if ( vtext != '' ) {
		for (var i=0; i<vtext.length; i++)
			if (vtext.charAt(i) != ' ')
				ok = false;
	}
	return(ok);
}

function isNotEmpty (vtext) {
	var ok = false;
	if ( vtext != '' ) {
		for (var i=0; i<vtext.length; i++)
			if (vtext.charAt(i) != ' ')
				ok = true;
	}
	return(ok);
}

function isNumber (vtext) {
	var ok = false;
	var digits = "0123456789.-";

	if ( isNotEmpty(vtext) ) {
		var temp = "";
		var firstp = true;
		var firstl = true;
		var len = vtext.length;
		ok = true;
		for (var i=0; i<len; i++) {
			temp = vtext.substring(i, i+1);
			if ( digits.indexOf(temp) != -1 ) {
				if (temp == '.') {
					if ( firstp ) 
						firstp = false;
					else
						ok = false;
				}
				if (temp == '-') {
					if ( firstl ) 
						firstl = false;
					else
						ok = false;
				}
			} else {
				ok = false;
			}
		}
		if ( vtext.substring(len-1, len) == '.' )
			ok = false;
	}
	return (ok);
}

function isEmail (vtext) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");

	var emailStr = vtext;
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null)
		return false;

	var user = matchArray[1];
	var domain = matchArray[2];

	if (user.match(userPat)==null)
 	   return false;

	var IPArray = domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255)
				return false;
    	}
    	return true;
	}

	var domainArray = domain.match(domainPat);
	if (domainArray == null)
		return false;

	var atomPat = new RegExp(atom,"g")
	var domArr = domain.match(atomPat)
	var len = domArr.length
	
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
		return false;

	if ( len < 2 )
		return false;

	return true;
}

function maxValue (vtext, max) {
	var ok = false;
	if ( isNotEmpty(vtext) ) {
		if ( isNumber(vtext) ) {
			var num = parseFloat(vtext);
			if ( num <= max)
				ok = true;
		}
	}
	return (ok);
}

function mimValue (vtext, mim) {
	var ok = false;
	if ( isNotEmpty(vtext) ) {
		if ( isNumber(vtext) ) {
			var num = parseFloat(vtext);
			if ( num >= mim)
				ok = true;
		}
	}
	return (ok);
}

function isDate(vtext) {
	var ok = false;
	var dateStr = vtext;
	//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
	var datePat = /^(\d{4})(\-)(\d{1,2})\2(\d{1,2})$/;
	
	if ( isNotEmpty(vtext) ) {
		var matchArray = dateStr.match(datePat);
		if (matchArray != null) {
			day = matchArray[4];
			month = matchArray[3];
			year = matchArray[1];
		
			ok = true;
			if (month < 1 || month > 12)
				ok = false;
			if (day < 1 || day > 31)
				ok = false;
			if ((month==4 || month==6 || month==9 || month==11) && day==31)
				ok = false;
			if (month == 2) {
				var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
				if (day>29 || (day==29 && !isleap))
					ok = false;
			}
		}
	}
	return(ok);
}

function checkForNumber(textBox, empty, msg) {
	var ok = true;
	var evalContent = isNotEmpty(textBox.value);
	if (evalContent || !empty) {
		if ( !isNumber(textBox.value) ) {
			window.alert("Atención:\n\n" + msg);
			textBox.focus();
			ok = false;
		}
	}
	return ok;
}

function checkForDate(textBox, empty, msg) {
	var ok = true;
	var evalContent = isNotEmpty(textBox.value);
	if (evalContent || !empty) {
		if ( !isDate(textBox.value) ) {
			window.alert("Atención:\n\n" + msg);
			textBox.focus();
			ok = false;
		}
	}
	return ok;
}

function checkForEmail(textBox, empty, msg) {
	var ok = true;
	var evalContent = isNotEmpty(textBox.value);
	if (evalContent || !empty) {
		if ( !isEmail(textBox.value) ) {
			window.alert("Atención:\n\n" + msg);
			textBox.focus();
			ok = false;
		}
	}
	return ok;
}


function setChecked(pFrm, pName, pValue) {
	var len = pFrm.elements.length;

	for( i=0 ; i<len ; i++) {
		if (pFrm.elements[i].name == pName)
			pFrm.elements[i].checked = pValue;
	}
}

function disableSubmit(frm) {
	for (i=0; i<frm.length; i++) {
		var tempobj = frm.elements[i];
		if (tempobj.type.toLowerCase()=="submit" || tempobj.type.toLowerCase()=="reset")
			tempobj.disabled = true
	}
}

function syncCombo(val, cchild, adata) {
	var sdata = new Array();
	var sindx = 0;
	for (var i=0; i<adata.length; i++) {
		if (adata[i][0] == val) {
			var row = new Array();
			row[0] = adata[i][1];
			row[1] = adata[i][2];
			sdata[sindx] = row;
			sindx ++;
		}
	}
	cchild.length = sindx;
	for (var i=0; i<sindx; i++) {
		cchild.options[i].value = sdata[i][0];
		cchild.options[i].text = sdata[i][1];
	}
	cchild.selectedIndex = 0;
}
