/*********************************************************************
	Script que premite incluir un archivo de flash dinamicamente
********************************************************************/
ext_objetoFlash = function (ruta,id,ancho,alto,version){
	this.atributos = new Array();
	if(ruta) this.ruta = ruta;
	if(id) this.id = id;
	if(ancho) this.ancho = ancho;
	if(alto) this.alto = alto;
	if(version) this.version = version;
	this.setAtributos("ruta",ruta);
	this.setAtributos("id",id);
	this.setAtributos("ancho",ancho);
	this.setAtributos("alto",alto);
	this.setAtributos("version",version);
}

ext_objetoFlash.prototype = {
	setAtributos: function(nombre,valor) {
		this.atributos[nombre] = valor;
	},
	getAtributos: function(nombre) {
		return this.atributos[nombre];
	},
	generarCodFlash: function(){
		codFlash = "<object id='" + this.getAtributos('id') + "' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='" + this.getAtributos('ancho') + "' height='" + this.getAtributos('alto') + "'>"; 
		codFlash += "<param name='movie' value='" + this.getAtributos('ruta') + "'>";
		codFlash += "<param name='quality' value='high'>";
		codFlash += "<param name='SCALE' value='exactfit'>";
		codFlash += "<param name='LOOP' value='true'>";
		codFlash += "<embed id='" + this.getAtributos('id') + "' src='" + this.getAtributos('ruta') + "' width='" + this.getAtributos('ancho') + "' height='" + this.getAtributos('alto') + "' hspace='0' vspace='0' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' scale='exactfit'></embed>";
		codFlash += "</object>";
		return codFlash;
	},
	crearFlash: function (nombre){
		document.getElementById(nombre).innerHTML = this.generarCodFlash();
	}
}

/************************************************
	Script que valida el email
***********************************************/
function validateEmail(email)
{
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
	return false;
}

/****************************************************
	Función que valida los datos obligatorios
**************************************************/
function validateData(strValidateStr,objValue,strError) 
{ 
    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
	
    if(epos >= 0){ 
		command  = strValidateStr.substring(0,epos); 
		cmdvalue = strValidateStr.substr(epos+1); 
    }else{ 
		command = strValidateStr; 
    } 

    switch(command) 
    { 
		case "req": 
		case "required": 
		{
			/***********************************************************
				Validación si el dato obligatorio es un radio buttons
			**********************************************************/
			if( objValue.type == "radio" ){
				cad = "document.forms[0]." + objValue.name;
				obj = eval(cad);
				for(i=0; i<obj.length; i++){
					if(obj[i].checked){
						break;
					}
				}
				if(i == obj.length){
					if(!strError || strError.length ==0) 
					{ 
						strError = "Se requiere " + objValue.name; 
					}
					alert(strError); 
					return false;			
				}
			}
			/******************************************************
				Validación si el dato obligatorio es un checkbox
			*****************************************************/
			if( objValue.type == "checkbox" ){
				if( objValue.checked == true )
					break;
				else 
					if(objValue.checked == false){
						if(!strError || strError.length ==0) 
						{ 
							strError = "Se requiere " + objValue.name; 
						}
						alert(strError); 
						return false;			
					}
			}

			/******************************************************
				Validación si de datos diferentes a un checkbox
			*****************************************************/
			if(eval(objValue.value.length) == 0) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = "Se requiere " + objValue.name; 
				}
				alert(strError); 
				return false; 
			}
			break;             
		}
		
		case "maxlength": 
		case "maxlen": 
		{ 
			if(eval(objValue.value.length) >  eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " debe tener máximo "+cmdvalue+" caracteres "; 
				} 
				alert(strError); 
				return false; 
			} 
			break; 
		} 
		  
        case "minlength": 
        case "minlen": 
		{ 
			if(eval(objValue.value.length) <  eval(cmdvalue)){
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " debe tener mínimo " + cmdvalue + " caracteres "; 
				}               
				alert(strError); 
				return false;                 
			} 
			break; 
		}
		
        case "alnum": 
        case "alphanumeric": 
		{ 
			var charpos = objValue.value.search("[^A-Za-z0-9] ñ"); 
			if(objValue.value.length > 0 &&  charpos >= 0){ 
				if(!strError || strError.length ==0){ 
					strError = objValue.name +": Only alpha-numeric characters allowed "; 
				} 
				alert(strError); 
				return false; 
			} 
			break; 
		}
		
        case "num": 
        case "numeric": 
		{ 
			var charpos = objValue.value.search("[^0-9]"); 
			if(objValue.value.length > 0 &&  charpos >= 0){ 
				if(!strError || strError.length ==0) 
				{ 
					strError = "En " + objValue.name+" sólo se permiten numeros "; 
				}               
				alert(strError); 
				return false; 
			} 
			break;               
		}
		
        case "alphabetic": 
        case "alpha": 
		{ 
		var charpos = objValue.value.search("[^A-Za-z ñ]"); 
		if(objValue.value.length > 0 &&  charpos >= 0){ 
			if(!strError || strError.length ==0){ 
				strError = objValue.name+" sólo puede contener caracteres "; 
			}                             
			alert(strError); 
			return false; 
		}
			break; 
		}
		   
        case "email": 
		{ 
			if(!validateEmail(objValue.value)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = "Escriba una dirección " + objValue.name + " válida. "; 
				}                                               
				alert(strError); 
				return false; 
			}
		break; 
		} 

		case "lt": 
        case "lessthan": 
		{ 
			if(isNaN(objValue.value)){ 
				alert(objValue.name+": Debe ser un número "); 
				return false; 
			} 
			if(eval(objValue.value) >=  eval(cmdvalue)){ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name + " : el valor debe ser menor que "+ cmdvalue; 
				}               
				alert(strError); 
				return false;                 
			}            
			break; 
		}
		
        case "gt": 
        case "greaterthan": 
		{ 
			if(isNaN(objValue.value)) 
			{ 
				alert(objValue.name+": Debe ser un número "); 
				return false; 
			} 
			if(eval(objValue.value) <=  eval(cmdvalue)){ 
				if(!strError || strError.length ==0) 
				{ 
					 strError = objValue.name + " : value should be greater than "+ cmdvalue; 
				}               
				alert(strError); 
				return false;                 
			}             
			break; 
		}
		
        case "regexp": 
		{ 
			if(!objValue.value.match(cmdvalue)){ 
				if(!strError || strError.length ==0) 
				{ 
					strError = objValue.name+": Invalid characters found "; 
				}                                                               
				alert(strError); 
				return false;                   
			} 
			break; 
		}

		case "dontselect": 
		{ 
			if(objValue.selectedIndex == null) 
			{ 
				alert("Error Crítico, dontselect command for non-select Item"); 
				return false; 
			} 
			if(objValue.selectedIndex == eval(cmdvalue)) 
			{ 
				if(!strError || strError.length ==0) 
				{ 
					strError = "Por favor seleccione su " + objValue.name; 
				}                               
				alert(strError); 
				return false;                                   
			} 
			break; 
		}
		
	}
    return true; 
} 

function validateForm(arrObj) 
{ 
	for(var i=0; i < arrObj.length; i++) 
	{ 
		for(var j=1; j < arrObj[i].length; j++){
			if( validateData(arrObj[i][j][0], document.getElementById(arrObj[i][0]), arrObj[i][j][1] ) == false ){
				document.getElementById(arrObj[i][0]).focus();
				return false;
			}
		}

	}
	return true;
}

/****************************************
	CENTRAR CONTENEDOR
***************************************/
function ext_MostrarYCentrarContenedor( c ){
	var scrollTop = 0;
	var contenedorH = 0;
	var contenedorW = 0;
	scrollTop = document.documentElement.scrollTop;
	var contenedor = document.getElementById( c );
	if ( contenedor ) {
		contenedorH = contenedor.style.height;
		contenedorW = contenedor.style.width;
		contenedor.style.top = scrollTop + ( ( (document.documentElement.clientHeight - 2) / 2 ) - ( contenedorH / 2 ) ) - 100 + "px" ;
		contenedor.style.left = ( ( (document.documentElement.clientWidth - 2) / 2 ) - ( contenedorW / 2 ) ) - 285 + "px" ;
		contenedor.style.visibility = 'visible';
	}
}
