// AJAX
if (!window.XMLHttpRequest){
		window.XMLHttpRequest = function(){
		// assume IE6 or older
		var xmlHttp = null;
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
		'MSXML2.XMLHTTP.5.0',
		'MSXML2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP');
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++){
			try{ xmlHttp = new ActiveXObject(XmlHttpVersions[i]);	}
			catch (e) {} // ignore potential error
		}

		if (!xmlHttp)
			return undefined;
		else
			return xmlHttp;
		}
}

function makeRequest(url,event_handler,method,data,mode) {
		var http_request = false;
		if(method == null) method = 'GET';
		if(mode == null) mode = true;

		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
		}

		if (!http_request) {
				alert('Giving up :( Cannot create an XMLHTTP instance');
				return false;
		}
		if(mode==true){
			http_request.onreadystatechange = function() { event_handler(http_request); };	
		}
		http_request.open(method, url, mode);
		
		if(method=='POST'){
			http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http_request.setRequestHeader("Content-length", data.length);
			http_request.setRequestHeader("Connection", "close");
		}
		
		http_request.send(data);
		if(mode == false){
			return http_request.responseXML;
		}
		return true;
}

function GetElementFormValue(o_obj){
	switch(o_obj.type){
			case 'checkbox':
				if(o_obj.checked){ return o_obj.value; } else { return null; }
				break;
			case 'radio':
				if (o_obj.checked){ return o_obj.value;	} else { return null; }
				break;
			case 'select-one':
				return o_obj.options[o_obj.selectedIndex].value;
				break;
			case 'input':
				return o_obj.value;
				break;
			case 'text':
				return o_obj.value;
				break;
			case 'password':
				return o_obj.value;
				break;
			default:
				return o_obj.value;
				break;
	}
}

function armarPost(IdFrom){
	var strPOST = new Array();
	var Valor = null;
	var formElements = document.forms[IdFrom];
	for (i=0; i<formElements.length; i++) {
			if((Valor=GetElementFormValue(formElements[i]))!=null){
				strPOST.push(formElements[i].name+'='+encodeURIComponent(Valor));
			}
	}
	strPOST = strPOST.join('&');
	return strPOST;
}

// AJAX 

// Barra Lateral Sesion
var validez = 300; // en días
var blItems = Array('modulo_mis_compras','modulo_mi_cuenta','modulo_ultimas_novedades','modulo_newsletter');
var blDefault = Array(1,1,1,0);
var caduca = new Date(); 
caduca.setTime(caduca.getTime() + (validez*24*60*60*1000));

function getCookie(name){
  var cname = name + "=";
  var dc = document.cookie;
  if (dc.length > 0) {
    begin = dc.indexOf(cname);
    if (begin != -1) {
      begin += cname.length;
      end = dc.indexOf(";", begin);
      if (end == -1) end = dc.length;
        return unescape(dc.substring(begin, end));
    }
  }
  return null;
}

function setCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
  ((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
  ((path == null) ? "; path=/" : "; path=" + path) +
  ((domain == null) ? "" : "; domain=" + domain) +
  ((secure == null) ? "" : "; secure");
}

function recordBL() {
	var CString = '';
	for (var i=0; i<blItems.length; i++)	{
		if(document.getElementById(blItems[i])){
			if (document.getElementById(blItems[i]).style.display == "none"){
				blDefault[i]=0;
			} else {
				blDefault[i]=1;
			}
		}
	}
	CString = blDefault.join('|');
	setCookie ("br_lat", CString, caduca);
}

function updatedBL() {
	if (getCookie('br_lat') != null){
		blEstados = getCookie('br_lat');
		blDefault = blEstados.split('|');
	}
	for (var i=0; i<blItems.length; i++) {
		if(document.getElementById(blItems[i])){
			if (blDefault[i] == 0){
				hide(blItems[i]);
			} else {
				show(blItems[i]);
			}
		}
	}
}

// Otras funciones
function AddFFSearch() {
 try { window.sidebar.addSearchEngine(Images_Protocolo+'://'+Images_HostName+'/'+idiomaActual+'/dattatecsearch.src',Images_Protocolo+'://'+Images_HostName+'/favicon.gif','Dattatec.com - Registro de dominios','General'); }
   catch(ex) { window.alert('Esta aplicación es exclusiva para usuarios de Firefox.\r\nDescargar gratis en http://www.mozilla-europe.org/es/products/firefox/'); }
}

function addSearchProvider() {
	try { window.external.AddSearchProvider(Images_Protocolo+'://'+Images_HostName+'/domain-opensearch.xml'); }
		catch (e) {
			alert("Necesita utilizar IE7 o Firefox 2 para aprovechar esta herramienta.");
			return;
		}
}

// Para evitar el flirk de las imagenes de background con IE6
try { document.execCommand('BackgroundImageCache', false, true); }
	catch(e) {}


function setClass(element,clase) {
	element.className=clase;
	return true;
}

function CleanLoginError(element) {
	if(document.getElementById(element)){
		hide(element);
	}
	setClass(document.getElementById('usernameLogin'),'campo');
	setClass(document.getElementById('passLogin'),'campo');
	setClass(document.getElementById('usernameOlvido'),'campo');
	setClass(document.getElementById('emailOlvido'),'campo');
	return true;
}

function hide(element) {
	document.getElementById(element).style.display="none";
	return true;
}

function show(element) {
	document.getElementById(element).style.display="block";
	return true;
}

function toggleModulo(element) {
	if (document.getElementById(element).style.display == "none"){
		show(element);
		recordBL();
	} else {
		hide(element);
		recordBL();
	}
	return true;
}

function IsBloqueMovil(){
	if(xGetElementById('BloqueMovil').className == 'BloqueMovil'){
		return true;
	}else{
		return false;
	}
}

function checkTld(tld){
	var arrTLDs = new Array("AC","AD","AE","AERO","AF","AG","AI","AL","AM","AN","AO","AQ","AR","ARPA","AS","ASIA","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BIZ","BJ","BM","BN","BO","BR","BS","BT","BV","BW","BY","BZ","CA","CAT","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","COM","COOP","CR","CU","CV","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EDU","EE","EG","ER","ES","ET","EU","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GOB","GOV","GP","GQ","GR","GS","GT","GU","GUB","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","INFO","INT","IO","IQ","IR","IS","IT","JE","JM","JO","JOBS","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MIL","MK","ML","MM","MN","MO","MOBI","MP","MQ","MR","MS","MT","MU","MUSEUM","MV","MW","MX","MY","MZ","NA","NAME","NC","NE","NET","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","ORG","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PRO","PS","PT","PW","PY","QA","RE","RO","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SU","SV","SY","SZ","TC","TD","TEL","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TP","TR","TRAVEL","TT","TUR","TV","TW","TZ","UA","UG","UK","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","YU","ZA","ZM","ZW")	
	var cuenta = 0;
	for(var i = 0; i < arrTLDs.length; i++){
		var PosTld = '.' + arrTLDs[i].toLowerCase();
		if(tld == PosTld){
			cuenta = cuenta+1;
		}
	}
	if(cuenta > 0){ return true; }else{ return false; }
}

function validateForm(){
	var i,j,val,nm,cmp,req,cal,numLimit,largo,tipo,errors='',cmpsError=new Array(),cmps=new Array(),args=validateForm.arguments;
	var reg_exp = /[0-9a-z]([-_.+0-9a-z])*@[0-9a-zñáéíóúÇçãõ]([-.]?[0-9a-zñáéíóúÇçãõ])*\.[a-z]{2,7}/i;
	for (i=0; i < (args.length-3); i+=4) {
		nm=args[i]; cmp=args[i+1]; req=args[i+2]; numLimit=args[i+3].split('-');
		cmps.push(cmp);
		val=GetElementFormValue(xGetElementById(cmp));
		tipo=xGetElementById(cmp).type;
		if(val!=null){
			largo=val.length;
		}
		if ((req=='notempty') && ((val=="") || (val==null))){
			switch(tipo){
				case 'select-one':
					errors+="* Debe seleccionar una opción en el campo "+nm+".\n";
					cmpsError.push(cmp);
					break;
				case 'checkbox':
					errors+="* La opción "+nm+" debe estar seleccionada.\n";
					break;
				case 'radio':
					errors+="* Debe seleccionar una de las opciones de "+nm+".\n";
					break;
				default:
					errors+="* El campo "+nm+" es requerido.\n";
					cmpsError.push(cmp);
					break;
			}
		}
		if ((req=='notemptyemail') && !(reg_exp.test(val))){errors+="* El campo "+nm+" debe contener una dirección de e-mail válida\n"; cmpsError.push(cmp); }
		if ((req=='email') && (val!="" && !(reg_exp.test(val)))){errors+="* El campo "+nm+" debe contener una dirección de e-mail válida\n"; cmpsError.push(cmp); }
		if ((req=='numlimit') && (largo<(numLimit[0]/1) || largo>(numLimit[1]/1))){errors+="* El campo "+nm+" debe tener entre "+numLimit[0]+" y "+numLimit[1]+" caracteres.\n"; cmpsError.push(cmp); }
		if ((req=='numlimitemail') && ((largo<(numLimit[0]/1) || largo>(numLimit[1]/1)) || !(reg_exp.test(val)) ) ){errors+="* El campo "+nm+" debe tener entre "+numLimit[0]+" y "+numLimit[1]+" caracteres y ser una dirección válida.\n"; cmpsError.push(cmp); }
		if ((req=='equal') && (val != GetElementFormValue(xGetElementById(cmp+'_check')))){errors+="* Los campos "+nm+" y Repetir "+nm+" deben contener el mismo valor\n"; cmps.push(cmp+'_check'); cmpsError.push(cmp+'_check'); }
	}
	if (errors != "") {
		alert('Han ocurrido los siguientes errores:\n\n'+errors);
		for (i=0; i < cmps.length; i+=1) {
			o_cmp=xGetElementById(cmps[i]);
			if(o_cmp.type == 'select-one'){
				setClass(o_cmp,'select');
			}else if((o_cmp.type == 'text') || (o_cmp.type == 'password')){
				setClass(o_cmp,'campo');
			}
			for (j=0; j < cmpsError.length; j+=1) {
				if(cmps[i]==cmpsError[j]){
					if(o_cmp.type == 'select-one'){
						setClass(o_cmp,'selectError');
					}else if((o_cmp.type == 'text') || (o_cmp.type == 'password')){
						setClass(o_cmp,'campoError');
					}
				}
			}
		}
		return false;
	} else {
		return true;
	}
}

function validaDominio(element){ 
	var o_campo = xGetElementById(element);
	var str = (o_campo.value).toLowerCase();
	var errorCh = false;

	if (str == "") {
		alert("\nPor favor escriba un nombre de dominio.\n\n");
		setClass(o_campo,'campoError');
		return false;
	}
	if ((str.indexOf('http://', 0) != -1) || (str.indexOf('https://', 0) != -1) || (str.indexOf('http:/', 0) != -1) || (str.indexOf('https:/', 0) != -1)) {
		alert("\nPor favor, ingrese el dominio sin http:// ni www.\n\n");
		setClass(o_campo,'campoError');
		return false;
	}
	if ((str.indexOf('www.', 0) != -1) || (str.indexOf('ww.', 0) != -1) || (str.indexOf('wwww.', 0) != -1)) {
		alert("\nPor favor, ingrese el dominio sin www. ni http://\n\n");
		setClass(o_campo,'campoError');
		return false;
	}
	if ( str.indexOf('.', 0) != -1) {
		alert("\nPor favor, ingrese el dominio sin la extensión.\n\n");
		setClass(o_campo,'campoError');
		return false;
	}
	
	if(!CheckDomainCharacters(str)){
		errorCh = true;
	}

	if(errorCh){
		alert("El nombre de dominio no está bien formado o tiene caracteres no permitidos.\n Utilice solamente letras, números o '-'");
		setClass(o_campo,'campoError');
		return false;
	}
	return true;
}

function CheckDomainCharacters(domain){
	var errorCh = true;
	var ch = '';
	if(domain == ''){
		errorCh = false;
	}else{
		for (i = 0; i < domain.length; i++ ) {
			ch = domain.substring(i, i + 1);
			if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch) && (ch < "0" || "9" < ch)) && ch != '-' && ch != 'ñ' && ch != 'á' && ch != 'é' && ch != 'í' && ch != 'ó' && ch != 'ú' && ch != 'ü' && ch != 'ã' && ch != 'ç' && ch != 'õ') {
				errorCh = false;
			}
		}
	}
	return errorCh;
}

function preview(url, ancho, alto) {
	var v=window.open(url, '_blank', 'left=30,top=30,width=' + ancho + ',height=' + alto + ',toolbar=no,location=no,status=no,menubar=no,resizable=yes,scrollbars=yes')
}

function preview2 (url, ancho, alto) {
	var v=window.open(url, '_blank', 'left=30,top=30,width=' + ancho + ',height=' + alto + ',toolbar=no,location=no,status=no,menubar=no,resizable=yes,scrollbars=no')
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function TestCalculadora(){
	if(DattaCalc.IsEmpty()){
		return true;
	}else{
		if(confirm('Atención..! Ud. no agregó a "Mis Compras" los productos seleccionados en esta página.\n\n* Si desea agregarlos, presione "Cancelar" y luego utilice el botón "Agregar a Mis Compras"\n\n* Si desea continuar, presione "Aceptar" (Descartará los productos seleccionados en esta página)\n ')){
			return true;
		}else{
			return false;
		}
	}
}

function FormatPrecio(numero){
	var Precio;
	var strPrecio = numero.toString();
	if(strPrecio.indexOf(".") > -1){
		Precio = ((numero.toFixed(2)).toString()).replace('.',separadorDecimal);
	} else {
		Precio = (numero.toString()).replace('.',separadorDecimal);
	}
	return Precio;
}

function FormatPeriodo(dato){
	var retorno;
	switch(dato){
		case '1':
			retorno="Mensual";
			break;
		case '2':
			retorno="Bimestral";
			break;
		case '3':
			retorno="Trimestral";
			break;
		case '4':
			retorno="Cuatrimestral";
			break;
		case '6':
			retorno="Semestral";
			break;
		case '12':
			retorno="Anual";
			break;
		case '24':
			retorno="Bi-Anual";
			break;
		case '60':
			retorno="5 A&ntilde;os";
			break;
		case '120':
			retorno="10 A&ntilde;os";
			break;
		case '12000':
			retorno="Unico Pago";
			break;
	}
	return retorno;
}

function FormatPeriodo2(dato){
	var retorno = 'Año';
	if(dato>1){ retorno = 'Años'; }
	return retorno;
}

var visible;
if(navigator.appName.indexOf("Microsoft") > -1){
 	visible = 'block'
} else {
	visible = 'table-cell';
}

/* MANEJO DE TABBED CONTENT */
function openTab(tab){
	resetAllTabs();
	setClass(xGetElementById('tab_'+tab),'tabSelected');
	show('tabbed_content_'+tab);
}

function resetAllTabs(){
	var i;
	for (i=0;i<AllTabs.length;i++){
		setClass(xGetElementById('tab_'+AllTabs[i]),'tab');
		hide('tabbed_content_'+AllTabs[i]);
	}
}

function MM_jumpMenu(targ,selObj){ //v3.0
  eval(targ+".location='"+selObj+"'");
}

function aleatorio(inferior,superior){
    var numPosibilidades = superior - inferior;
    var aleat = Math.random() * numPosibilidades;
    aleat = Math.floor(aleat);
    return parseInt(inferior) + aleat;
}

function CerrarCartelVentajasDattatec(){
	hide('cartel_porque_elegir_dattatec');
	setCookie ("why_dattatec", '0', caduca);
}

function AbrirCartelVentajasDattatec(){
	if ((getCookie('why_dattatec') == null) || (getCookie('why_dattatec') != '0')){
		show('cartel_porque_elegir_dattatec');
	}
}