/**************************************************************************/
/* Softis CMS 1.0A  \inc\javas\validate.js                                */
/* ===========                                                            */
/* Updated: 08/06/2005                                                    */
/*                                                                        */
/* Copyright (c) 2000-2005 by Intersys Network                            */
/* For more information visit: http://www.intersysnetwork.com             */
/*                                                                        */
/* This program is NOT a free software. You MUST NOT redistribute it      */
/* and/or modify it under any the terms without Intersys Network proper   */
/* authorization.                                                         */
/**************************************************************************/
var isloaded = 1;  /* */

/*************************/
/* VERIFY REQUIRED FIELD */
/*************************/
function validRequired(formField,fieldLabel) {
	var result = true;
	if (formField.value == "") {
		alert(fieldLabel);
		formField.focus();
		result = false;
	}
	
	return result;
}

/***********************************/
/* VERIFY REQUIRED FIELD W/O FOCUS */
/***********************************/
function validRequiredWF(formField,fieldLabel) {
	var result = true;
	if (formField.value == "") {
		alert(fieldLabel);
		result = false;
	}
	
	return result;
}

/****************************************/
/* SUB FUNCT FOR NUMBERS AND CHARACTERS */
function allDigitsInt(str) {
	return inValidCharSet(str,"0123456789");
}

function allDigits(str) {
	return inValidCharSet(str,"0123456789.");
}

function allDigitsPercent(str) {
	return inValidCharSet(str,"0123456789.%");
}

function allDigitsChars(str) {
	return inValidCharSet(str,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-");
}

function allPhoneNumber(str) {
	return inValidCharSet(str,"0123456789()-+ ");
}

function inValidCharSet(str,charset){
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)	{
			result = false;
			break;
		}
return result;
}
/* END SUB FUNCT FOR NUMBERS AND CHARACTERS */
/********************************************/

/******************************/
/* VERIFY VALID EMAIL ADDRESS */
/******************************/
function validEmail(formField,fieldLabel,required) {
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) ){
		
		alert(fieldLabel);
		formField.focus();
		result = false;
	}
   
  return result;
}

/***************************************/
/* SUB FUNC VERIFY IF IS CORRECT EMAIL */
/***************************************/
function isEmailAddr(email) {
	var result = true;
	invalidChars = " /:,;" 
	
	for (i=0; i<invalidChars.length; i++) {
		// does it contain any invalid characters? 
		badChar = invalidChars.charAt(i) 
		if (email.indexOf(badChar,0) > -1) { 
			result = false; 
		} 
	} 
	atPos = email.indexOf("@",1) // there must be one "@" symbol 
	if (atPos == -1) { 
		result = false; 
	} 
	if (email.indexOf("@",atPos+1) != -1) { // and only one "@" symbol 
		result = false;
	} 
	periodPos = email.indexOf(".",atPos) 
	if (periodPos == -1) {   // and at least one "." after the "@" 
		result = false;
	} 
	if (periodPos+3 > email.length) {// must be at least 2 characters 
		result = false;
	} 
return result; 
}

/************************/
/* VERIFY VALID NUMBERS */
/************************/
function validNum(formField,fieldLabel,required){
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result){
		if (!allDigits(formField.value)){
 			alert(fieldLabel);
			formField.focus();
			result = false;
		}
	}
	
	return result;
}

/*************************************************/
/* VERIFY VALID NUMBERS WITH/AND/OR PERCENT SIGN */
/*************************************************/
function validNumOrPercent(formField,fieldLabel,required){
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result){
		if (!allDigitsPercent(formField.value)){
 			alert(fieldLabel);
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}

/***************************************/
/* VERIFY VALID NUMBERS AND CHARACTERS */
/***************************************/
function validNumAndChars(formField,fieldLabel,required){
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result){
		if (!allDigitsChars(formField.value)){
 			alert(fieldLabel);
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}
/************************/
/* VERIFY VALID INTEGER */
/************************/
function validInt(formField,fieldLabel,required) {
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result){
 		var num = parseInt(formField.value,10);

 		if (isNaN(num))	{
 			alert(fieldLabel);
			formField.focus();
			result = false;
		}
	}

	return result;
}

/************************************/
/* VERIFY VALID ONLY NUMBER INTEGER */
/************************************/
function validIntNumber(formField,fieldLabel,required) {
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result){
		if (!allDigitsInt(formField.value)){
 			alert(fieldLabel);
			formField.focus();
			result = false;
		}
	}

	return result;
}

/******************************/
/* VERIFY VALID PHONE NUMBERS */
/******************************/
function validPhoneNumber(formField,fieldLabel,required){
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result){
		if (!allPhoneNumber(formField.value)){
 			alert(fieldLabel);
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}

/**********************/
/* COMPARE TWO FIELDS */
/**********************/
function compareFields(formFieldA,formFieldB,fieldLabel) {
	var result = true;
		
	if (formFieldA.value != formFieldB.value)	{
		alert(fieldLabel);
		formFieldA.focus();		
		result = false;
	}
	
	return result;
}

/*********************/
/* VERIFY VALID DATE */
/*********************/
function validDate(formField,fieldLabel,required) {
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result){
 		var elems = formField.value.split("/");
		
 		result = (elems.length == 3); // should be three components
 		
 		if (result){
 			//uncomment next 3 lines for format DD/MM/YYYY and comment next
 			var day = parseInt(elems[0],10);
  			var month = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
 			
 			//uncomment next 3 lines for format MM/DD/YYYY and comment previous
 			//var month = parseInt(elems[0],10);
  			//var day = parseInt(elems[1],10);
 			//var year = parseInt(elems[2],10);
			
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
				 allDigits(elems[1]) && (day > 0) && (day < 32) &&
				 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));

 		}
 		
  		if (!result) {
 			alert(fieldLabel);			
 			formField.focus();		
		}
	} 
	
	return result;
}

/***************************/
/* DISABLE THE FORM BUTTONS */
/***************************/
function dis(obj){
	for(i=0;i<obj.length;i++)
	if(obj.elements[i].type == "submit" || obj.elements[i].type == "reset")
	obj.elements[i].disabled = true;
}

/***************************/
/* SHOW/HIDE SPECIFIC HELP */
/***************************/
function ShowAyuda(div, title, desc)	{
	div.style.display = 'inline';
	div.style.position = 'absolute';
	div.style.width = '200';
	div.style.backgroundColor = '#F0EBE5';
	div.style.border = 'dashed 1px black';
	div.style.padding = '6px';
	div.innerHTML = '<b>' + title + '</b><br><img src=images/pixel.gif widthth=1 height=5><br><div style="padding-left:10; padding-right:5;">' + desc + '</div>';
}

function HideAyuda(div){
	div.style.display = 'none';
}
/***************************/

/****************************/
/* MANEJO DE LA TECLA ENTER */
/****************************/
function handleEnter (field, event) {
	var keyCode = event.keyCode ? event.keyCode :
	event.which ? event.which : event.charCode;
	if (keyCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
			break;
			i = (i + 1) % field.form.elements.length;
			field.form.elements[i].focus();
			return false;
	}else
	return true;
}

