//---------------------- Check Data and return error ----------------------------------------------
function checkForm(frmObj) {
	var errorMsg= '';
	var extArray = new Array(".gif", ".jpg");
	
	errorMsg += isValidData(false,'Nombre', frmObj.nombre, 'text');
	errorMsg += isValidData(false,'Modelo', frmObj.modelo, 'text');
	errorMsg += isValidData(false,'anno', frmObj.modelo, 'text');
	errorMsg += isValidData(false,'camarotes', frmObj.modelo, 'text');
	errorMsg += isValidData(false,'equipamiento', frmObj.modelo, 'text');
			
	if (frmObj.foto.value.length!=0) {	
	  if (!LimitAttach(frmObj, frmObj.foto.value, extArray))
        errorMsg += "- 'Imagen' tiene que ser .jpg ó .gif.\n";
	}   
	   	 
	return !errorsFound(errorMsg);
}

function checkFormInicio(frmObj) {
	var errorMsg= '';
	var extArray = new Array(".gif", ".jpg");
	
	errorMsg += isValidData(false,'Usuario', frmObj.usuario, 'text');
	errorMsg += isValidData(false,'Contraseña', frmObj.contrasena, 'text');
	   	 
	return !errorsFound(errorMsg);
}

function imprimirPagina() {
  if (window.print)
    window.print();
  else
    alert("Lo siento, pero a tu navegador no se le puede ordenar imprimir" +
      " desde la web. Actualizate o hazlo desde los menús");
}

function switchBoton(btnNuevo,btnActual) {
	//Cuando es un boton externo, cambio la imagen
	//frmObj.src="imagenes/"+nombre;
 	document.getElementById(btnActual).src="imagenes/"+btnNuevo;
}
function activarURL(frmObj) {
	frmObj.value = "Ingrese un comentario aqui...";
}

function vaciar(frmObj,msg) {
  if (frmObj.value.length==0){
	frmObj.value = msg;
	frmObj.blur();
	//frmObj.style.color="#ADD8E6";
  }
}
function paraEscribir(frmObj,msg) {
  if (frmObj.value==msg){
	frmObj.value = "";
	//frmObj.style.color ="#6699cc";
  }
}
function errorsFound(errorMsg){
	if (errorMsg != '') {
		alert ("Por favor, compruebe los siguientes errores:\n\n" + errorMsg);
		return true;
	} else return false;
}

function isValidData( allowNull, fieldName, fieldObj, checkType){
	var fieldValue= trimField(fieldObj);
	var dataType = checkType.toLowerCase();
	var errorMsg = '';
	if (fieldValue == '') {
		if (!allowNull) errorMsg = "- '" + fieldName + "' no puede estar vacio.\n";
	} else if (dataType=="int") {
		if (!isInt(fieldValue)) errorMsg = "- '" + fieldName + "' tiene que ser un número válido sin punto(.) ó coma(,).\n";
	} else if (dataType=="float" || dataType=="currency"){
	  if (!isFloat(fieldValue)) errorMsg = "- '" + fieldName + "' tiene que ser un número válido.\n";
	} else if (dataType=="email"){
		if (!isEmail(fieldValue)) errorMsg = "- '" + fieldName + "' tiene que ser un email válido.\n";		
	} else if (dataType=="digits"){
		if (!isDigit(fieldValue)) errorMsg = "- '" + fieldName + "' contiene digitos incorrectos.\n";
	} else if (dataType=="select"){
		if ((fieldObj.value=="0")) errorMsg = "- '" + fieldName + "' seleccione una opcion.\n";
	}
	if (errorMsg.length>0) {
	  if(dataType=="select"){  
	 	fieldObj.focus();
	  }else{
		fieldObj.select();
	  }				
	}	
	return errorMsg;	
}

// ----------------------- Clean Data -------------------------------------
function  trimField(fieldObj){
	var cleaned =	trim(fieldObj.value);
	fieldObj.value = cleaned;
	return cleaned;
}

function trim(strParam){
  target = strParam;
  while( (target.length > 0) && (target.indexOf(' ') == 0) ){
	  target = target.substr(1, target.length - 1);
	}
  while( (target.length > 0) && (target.lastIndexOf(' ') == target.length - 1) ){
	  target = target.substr(0, target.length - 1);
	}
	return(target)
}

function maskQuote(strToClean){
  Masked= strToClean;
  QuotePos= strToClean.indexOf("'");
  if (QuotePos>=0){
    LeftStr= strToClean.substring(0,QuotePos);
    RightStr= strToClean.substring(QuotePos + 1,strToClean.length);
    Masked= LeftStr + "''" + MaskQuote(RightStr)  // recursividad
   }
  return Masked
}
//-------------------- Validate Data Types --------------------------------------------
function validDate(aYear, aMonth, aDay){
  var actualDate = new Date(parseInt(aYear), parseInt(aMonth) - 1, parseInt(aDay));
  return( parseInt(aDay) == parseInt(actualDate.getDate()) );
}

function isEmail(email){
   p=email.indexOf('@');
   return  !(p<1 || p==(email.length-1))
}

function isInt(number){
  num = parseInt(number);
  return (number == '' + num)
}

function isDigit(number){
  var ValidDigits= new String("01234567890");
  for (i=0;i<number.length;i++){
    if (ValidDigits.indexOf(number.charAt(i))==-1) return false
  }
  return true
}

function trimZeros(strNum){
	var lastNum= strNum.charAt(strNum.length-1);
	if (lastNum=='.'){
		return strNum.substr(0,strNum.length-1);
	} else if (lastNum!='0') {
		return strNum
	} else {
		var newNum= strNum.substr(0,strNum.length-1);
		return trimZeros(newNum);
	}	
}

function isFloat(number){
	var frmNum = number;
	if  (frmNum.charAt(0) == '.') frmNum = '0' + frmNum // start with . example .50
	var lastPoint = frmNum.lastIndexOf('.');
	if ( lastPoint>=0) { 
		var otherPoint = frmNum.lastIndexOf('.',lastPoint-1);
		if (otherPoint>=0) return false;	// another point, error!
		frmNum= trimZeros(frmNum);  // trim al trailing zeros
	}	
	//-------------------------------------------------------
	var strNum = '' + parseFloat(number);
	var i
	for (i=strNum.length;i<frmNum.length;i++) strNum += '0' // case the user type 0000
	return (frmNum == strNum)
}

function LimitAttach(form, file, extArray)
{
   if (!file) 
      return false;
   while (file.indexOf("\\") != -1)
       file = file.slice(file.indexOf("\\") + 1);
   var ext = file.slice(file.indexOf(".")).toLowerCase();
   for (var i = 0; i < extArray.length; i++) 
   {
       if (extArray[i] == ext) 
          return true; 
   }
   return false;
}

function explode( delimiter, string, limit ) {
	//Funciona igual que el explode de PHP 
	
    // *     example 1: explode(' ', 'Es una Prueba');
    // *     returns 1: {0: 'Es', 1: 'una', 2: 'Prueba'}
    // *     example 2: explode('=', 'a=bc=d', 2);
    // *     returns 2: ['a', 'bc=d']
 
    var emptyArray = { 0: '' };
    
    // third argument is not required
    if ( arguments.length < 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
    {
        return null;
    }
 
    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
    {
        return false;
    }
 
    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
    {
        return emptyArray;
    }
 
    if ( delimiter === true ) {
        delimiter = '1';
    }
    
    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}

function validarFecha(Cadena){   
    var Fecha= new String(Cadena)  
    var RealFecha= new Date();   // Para sacar la fecha de hoy   
    // Cadena Año   
    var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length));   
    // Cadena Mes   
    var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")));   
    // Cadena Día   
    var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")));   
  
    // Valido el año   
    if (isNaN(Ano) || Ano.length<4 || parseFloat(Ano)<1900){   
        return "-'Fecha nacimiento'  Año inválido<br/>";   
        //return false;   
    }   
    // Valido el Mes   
    if (isNaN(Mes) || parseFloat(Mes)<1 || parseFloat(Mes)>12){   
        return "-'Fecha nacimiento' Mes inválido<br/>";   
        //return false;   
    }   
    // Valido el Dia   
    if (isNaN(Dia) || parseInt(Dia, 10)<1 || parseInt(Dia, 10)>31){   
        return "-'Fecha nacimiento' Día inválido<br/>";   
        //return false;   
    }   
    if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {   
        if (Mes==2 && Dia > 28 || Dia>30) {   
            return "-'Fecha nacimiento' Día inválido<br/>";   
            //return false;   
        }   
    }   
       
  //alert("Fecha correcta.");   
  return "";     
}   

function borrarFoto(idFoto) { 
var borrar = confirm("¿Desea borrar esta foto?");

if (borrar){
	window.document.location="pBorrarFoto.php?idfoto="+idFoto;
} 
} 

function validarEmail(theElement)
{
var s = theElement.value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (s.length == 0 ) return "";
if (filter.test(s))
return "";
else
theElement.focus();
return "dirección incorrecta";
}

function mostrarFrmDescFoto(){
  document.getElementById("frmDescFoto").innerHTML="Hola Mundo";	
}
function ocultarDiv(vDiv){document.getElementById(vDiv).style.display= "none";}
function mostrarDiv(vDiv){document.getElementById(vDiv).style.display= "";}
function lockButton(btnName){document.getElementById(btnName).disabled = true;return true;}
function unlockButton(btnName){document.getElementById(btnName).disabled = false;return true;}
function lockLink(linkName){document.getElementById(linkName).disabled = true;return true;}
function limpiar(txtName){document.getElementById(txtName).value = "";}

function enviando(btnName){
	document.getElementById('msg').innerHTML     = "<font color='ff9900'>Enviando, espere un momento por favor...";
    document.getElementById(btnName).disabled = true;
	return true;
}
function mostrarNumero(tNombre){
	longitud  = 200-document.getElementById(tNombre).value.length;
	document.getElementById('divNumero').innerHTML = longitud;
	if(longitud<0)
		document.getElementById('btnAct').disabled = true;		
	else
	    document.getElementById('btnAct').disabled = false;  
}
function iniciarNumero(){
	document.getElementById('divNumero').innerHTML = "200";
}
//**** FUNCIONES TABS ****//
//Dynamic Tabs 1.0.3 Copyright (c) 2005 Rob Allen (rob at akrabat dot com
function getChildElementsByClassName(parentElement, className)
{
	var i, childElements, pattern, result;
	result = new Array();
	pattern = new RegExp("\\b"+className+"\\b");


	childElements = parentElement.getElementsByTagName('*');
	for(i = 0; i < childElements.length; i++)
	{
		if(childElements[i].className.search(pattern) != -1)
		{
			result[result.length] = childElements[i];
		}
	}
	return result;
}


function BuildTabs(containerId)
{
	var i, tabContainer, tabContents, tabHeading, title, tabElement;
	var divElement, ulElement, liElement, tabLink, linkText;


	// assume that if document.getElementById exists, then this will work...
	if(! eval('document.getElementById') ) return;

	tabContainer = document.getElementById(containerId);
	if(tabContainer == null)
		return;

	tabContents = getChildElementsByClassName(tabContainer, 'tab-content');
	if(tabContents.length == 0)
		return;

	divElement = document.createElement("div");
  	divElement.className = 'tab-header';
  	divElement.id = containerId + '-header';
	ulElement = document.createElement("ul");
  	ulElement.className = 'tab-list';

	tabContainer.insertBefore(divElement, tabContents[0]);
	divElement.appendChild(ulElement);

	for(i = 0; i < tabContents.length; i++)
	{
		tabHeading = getChildElementsByClassName(tabContents[i], 'tab');
		title = tabHeading[0].childNodes[0].nodeValue;

		// create the tabs as an unsigned list
		liElement = document.createElement("li");
		liElement.id = containerId + '-tab-' + i;

		tabLink = document.createElement("a");
		linkText = document.createTextNode(title);

		tabLink.className = "tab-item";

		//tabLink.setAttribute("href",tabHeading[0].getAttribute("href"));
		tabLink.setAttribute("href","script://");
		tabLink.setAttribute("title", tabHeading[0].getAttribute("title"));
		//tabLink.onclick = new Function ("ActivateTab('" + containerId + "', " + i + ")");

		ulElement.appendChild(liElement);
		liElement.appendChild(tabLink);
		tabLink.appendChild(linkText);

		// remove the H1
		tabContents[i].removeChild;
	}
}

function ActivateTab(containerId, activeTabIndex)
{
	var i, tabContainer, tabContents;

	tabContainer = document.getElementById(containerId);
	if(tabContainer == null)
		return;

	tabContents = getChildElementsByClassName(tabContainer, 'tab-content');
	if(tabContents.length > 0)
	{
		for(i = 0; i < tabContents.length; i++)
		{
			//tabContents[i].className = "tab-content";
			tabContents[i].style.display = "none";
		}

		tabContents[activeTabIndex].style.display = "block";


    	tabList = document.getElementById(containerId + '-list');
		tabs = getChildElementsByClassName(tabContainer, 'tab-item');
		if(tabs.length > 0)
		{
			for(i = 0; i < tabs.length; i++)
			{
				tabs[i].className = "tab-item";
			}

			tabs[activeTabIndex].className = "tab-item tab-active";
			tabs[activeTabIndex].blur();
		}
	}
}

//*********** FIN TABS ****/
