﻿/* Máscaras de caracteres */
function ___SiteBuilder_CheckMask(event, sMask) {
	var sChar
	var keyCode = event.keyCode;

	if (keyCode==0)
		keyCode = event.which;;
	sChar = String.fromCharCode(keyCode);

	if (keyCode==8 || keyCode==37 || keyCode==116 || keyCode==9 || sMask.indexOf(sChar) != -1) 
		return true;
	alert('El caracter introducio no es válido.\nRecuerda que sólo puedes introducir minúsculas y números.');
	return false;
}
function ___SiteBuilder_SubDomainNameMask(event) {
	return ___SiteBuilder_CheckMask(event, '_abcdefghijklmnopqrstuvwxyz0123456789');
}

/* Comprobación de que es un dominio correcto */
function ___SiteBuilder_CheckSubDomain(objectHTML) {
	var sHtml;
	if (objectHTML.value=='') return;
	sHtml = ___SiteBuilder_GetObjInfo('check_subdomain', objectHTML.value);
	if (sHtml>0) {
		alert('El subdominio ya existe, debes seleccionar otro subdominio');
		objectHTML.select();
		return false;
	}
}

function ___SiteBuilder_CheckSubDomain2(objectHTML) {
	var sHtml;
	if (objectHTML.value=='') return;
	sHtml = ___SiteBuilder_GetObjInfo('check_subdomain', objectHTML.value);
	if (sHtml>0) {
		alert('El subdominio ya existe, debes seleccionar otro subdominio');
		objectHTML.select();
		return false;
	} else {
		return true;
	}
}

/* Hacemos un submit hacia el siguiente paso */
function ___SiteBuilder_ChangeStep(step_id) {
	var lWaitLayer, lStepLayer;
	var oForm = document.InmediaFrm;
	var sUrl;
	lStepLayer = document.getElementById('msb_step_layer');
	lWaitLayer = document.getElementById('msb_wait_layer');
	
	if (lWaitLayer) {
		lStepLayer.style.display = "none";
		lWaitLayer.style.display = "block";
	}
/*
	sUrl = window.document.location.toString();
	if (sUrl.indexOf('event=sitebuilder_change_step') == -1) {
		if (sUrl.indexOf('?') == -1) {
			sUrl += '?event=sitebuilder_change_step';
		} else {
			sUrl += '&event=sitebuilder_change_step';
		}
	}
	oForm.action =  sUrl;
	oForm.___MSB_STEPS_ACTION.value = step_id;
	oForm.submit();
*/
}

/* Hacemos un submit hacia el siguiente paso */
function ___SiteBuilder_ChangeStepV3(step_id) {
	var oForm = document.InmediaFrm;
	oForm.action ='user_page_153.wbe?event=sitebuilder_change_step';
	oForm.___MSB_STEPS_ACTION.value = step_id;
	oForm.submit();
}


/* Obtenemos informacion del tipo de sitio */
function ___SiteBuilder_CreateWeb(iLevel) {
	var oAjax = new WBE_AjaxClass();
	oAjax.clear();

	lStepLayer = document.getElementById('msb_step_layer');
	lWaitLayer = document.getElementById('msb_wait_layer');
	
	if (lWaitLayer) {
		lStepLayer.style.display = "none";
		lWaitLayer.style.display = "block";
	}

	// Mostramos la capa de confirmacion
	if (document.forms[0]._sitebuilder_subdomain)
		oAjax.addPostParameter("_sitebuilder_subdomain", document.forms[0]._sitebuilder_subdomain.value);
	if (document.forms[0]._sitebuilder_domain_id)
		oAjax.addPostParameter("_sitebuilder_domain_id", document.forms[0]._sitebuilder_domain_id[document.forms[0]._sitebuilder_domain_id.selectedIndex].value);
	oAjax.throwEvent2("directory_create_web");
	document.location.href="user_page_152.wbe?ok=" + iLevel;
}


/* Obtenemos información del tipo de sitio */
function ___SiteBuilder_GetObjInfo(objType, objId) {
	var oAjax = new WBE_AjaxClass();
	oAjax.clear();
	oAjax.addPostParameter("___MSB_OBJECT_TYPE", objType);
	oAjax.addPostParameter("___MSB_OBJECT_ID", objId);
	oAjax.throwEvent2("sitebuilder_get_info", false, "XML_DOCUMENT.wbe");
	return oAjax.responseText;
}

/* Seleccionamos la paleta de color */
function ___SiteBuilder_SelectColorPaletteV3(iSkinCode, iPaletteId) {
	var sBaseUrl = 'skin/sitebuilder/skins/';
	var oImgDiv = document.getElementById("skin_img_" + iSkinCode);
	var sImgPath = sBaseUrl + iSkinCode + "_" + iPaletteId + '.jpg';
	___SiteBuilder_ChangeSkinImageV3(oImgDiv, sImgPath);
}

/* Cambia la imagen por esta otra que se le pasa */
function ___SiteBuilder_ChangeSkinImageV3(oHtmlImage, sNewImage) {
	oHtmlImage.src = sNewImage;
}

/* Devuelve dentro de un grupo la paleta seleccionada */
function ___SiteBuilder_GetSelectedPaletteV3(oRadioName) {
	// Recorre todos los radio hasta quedarse con el seleccioado.
	var i, oRadioObj;
	oRadioObj = eval('document.forms[0].' + oRadioName);
	if (oRadioObj.length == undefined) return oRadioObj.value;
	for (i=0; i<oRadioObj.length; i++)
		if (oRadioObj[i].checked) return oRadioObj[i].value;
}

/* Seleccionamos el skin y paleta de color*/
function ___SiteBuilder_SelectSkinV3(objId, oRadioName) {
	var sHtml, iPaletteId;
	// Skin
	sHtml = ___SiteBuilder_GetObjInfo('skin', objId);
	// Paleta
	iPaletteId = ___SiteBuilder_GetSelectedPaletteV3(oRadioName);
	sHtml = ___SiteBuilder_GetObjInfo('palette', iPaletteId);

	// Cambiamos al paso 3.
	___SiteBuilder_ChangeStepV3(3);
}




















/// NO HACEN FALTA YA!!!! **********************************













function ___SiteBuilder_checkTelephone(event) {
	return ___SiteBuilder_CheckMask(event, '0123456789+');
}
function ___SiteBuilder_checkNumber(event) {
	return ___SiteBuilder_CheckMask(event, '0123456789');
}
function ___SiteBuilder_DomainNameMask(event) {
	return ___SiteBuilder_CheckMask(event, 'abcdefghijklmnopqrstuvwxyz0123456789.')
}

/* Eventos de CSS */
function ___SiteBuilder_ExitButton(objHTML) {
	if (objHTML.className=='activoSel') return;
	else objHTML.className = '';
}
function ___SiteBuilder_EnterButton(objHTML) {
	if (objHTML.className=='activoSel') return;
	else objHTML.className="activo";
}

/* Selecciona un boton como activo */
function ___SiteBuilder_ChangeButtonToSelected(objHTML) {
	var elements, i, oButtonHtml;
	oButtonHtml = document.getElementById(objHTML);
	if (!oButtonHtml) return false;
	elements = document.getElementsByTagName("INPUT");
	for (i=0; i<elements.length; i++) {
		if (elements[i]!=oButtonHtml && elements[i].className=='activoSel') 
			elements[i].className = '';
	}
	oButtonHtml.className = 'activoSel';
}


/* Comprobación de que es un dominio correcto */
function ___SiteBuilder_CheckLogin(objectHTML) {
	var sHtml;
	if (objectHTML.value=='') return;
	sHtml = ___SiteBuilder_GetObjInfo('check_login', objectHTML.value);
	if (sHtml>0) {
		alert('El usuario ya existe, prueba con otro nombre de usuario.');
		objectHTML.value = '';
		objectHTML.focus();
		return false;
	}
}


/* Seleccionamos el tipo de sitio */
function ___SiteBuilder_SelectSiteType(objectHTML, objId) {
	var sHtml;
	var oPresLayer = document.getElementById("site_type_step_1");
	sHtml = ___SiteBuilder_GetObjInfo('site_type', objId);
	oPresLayer.innerHTML = sHtml;
	___SiteBuilder_ChangeButtonToSelected(objectHTML);
}

/* Cambia la imagen por esta otra que se le pasa */
function ___SiteBuilder_ChangeSkinImage(sImageName) {
	var oImage = document.getElementById('msb_preview_image');
	var oImageThumb = document.getElementById('msb_preview_image_thumb');
	oImage.src = sImageName;
	oImageThumb.src = sImageName;
}

/* Seleccionamos el skin */
function ___SiteBuilder_SelectSkin(objectHTML, objId, sBaseUrl) {
	var sHtml;
	var asValues = new Array();
	var oPresLayer = document.getElementById("site_builder_style_name");
	sHtml = ___SiteBuilder_GetObjInfo('skin', objId);
	var sCode;
	asValues = sHtml.split("$$");	
	oPresLayer.innerHTML = asValues[0];	// nombre del skin
	sCode = asValues[1]; // Codigo del skin
	sHtml = asValues[2]; // Ids de paletas

	// Recorremos los divs de las palettas para mostrarlas.
	var oPaletteBtns = document.getElementsByTagName('INPUT');
	var oButton, idPos, idPalette;
	var asCodes, sPaletteCode;
	asCodes = sHtml.split('|');	// codigo paleta seleccionado
	sPaletteCode = asCodes[1];
	for (i=0; i<oPaletteBtns.length; i++) {
		oButton	= oPaletteBtns[i];
		idPos = oButton.id.indexOf("paletteId");
		if (idPos != -1) {
			idPalette = oButton.id.substring(9);
			if (sHtml.indexOf('|' + idPalette + '|') != -1)
				oButton.style.display = "";
			else 
				oButton.style.display = "none";
		}
	}
	___SiteBuilder_ChangeSkinImage(sBaseUrl + sCode + "_" + sPaletteCode + ".jpg");
	___SiteBuilder_ChangeButtonToSelected(objectHTML);
}

/* Seleccionamos la paleta de color */
function ___SiteBuilder_SelectColorPalette(objId, sBaseUrl) {
	var sHtml;
	var aValues;
	var oPresLayer = document.getElementById("site_type");
	sHtml = ___SiteBuilder_GetObjInfo('palette', objId);
	___SiteBuilder_ChangeSkinImage(sBaseUrl + sHtml + ".jpg");
}

function __SiteBuilderChangeFromStep3(iTo) {
	var oForm = document.InmediaFrm;

	if (oForm._sitebuilder_subdomain.value =='') {
		alert('Debes especificar al menos un dominio.');
		oForm._sitebuilder_subdomain.select();
		return;
	}
	if (oForm._sitebuilder_logo_name.value=="") {
		alert('Debes especificar un nombre para tu logo.');
		oForm._sitebuilder_logo_name.select();
		return;
	}
	
	___SiteBuilder_ChangeStep(iTo);
}

function ___SiteBuilder_ChangeStep5() {
	var oForm = document.InmediaFrm;
	var sMessage;

	if (oForm._sitebuilder_login.value=="") {
		alert('Debes especificar un nombre de usuario.');
		oForm._sitebuilder_login.select();
		return;
	}
/*
	sMessage = ___SiteBuilder_CheckEmail(oForm._sitebuilder_email);
	if (sMessage != "") {
		alert(sMessage);
		return false;
	}
*/
	if (oForm._sitebuilder_password.value.length<5) {
		alert('La clave no tiene la longitud correcta.');
		oForm._sitebuilder_password.select();
		return;
	}

	if (oForm._sitebuilder_password2.value=='' ||
		oForm._sitebuilder_password.value!=oForm._sitebuilder_password2.value) {
		alert('Debes repetir la clave y debe coincidir con la original.');
		oForm._sitebuilder_password2.select();
		return;
	}

	___SiteBuilder_ChangeStep(5);
}

/* Comprobacion del email */
function ___SiteBuilder_CheckEmail(oInputEmail) {
	var x;
	var ContadorArrobas = 0;
	var ContadorPuntos = 0;
	var HayPunto = false;
	var sMensaje = "";
		
	for(x=0;x<oInputEmail.value.length;x++) {
		if(oInputEmail.value.charAt(x)=='@')	{
			ContadorArrobas++;
		}
		if(oInputEmail.value.charAt(x)=='.')
		{
			if(oInputEmail.value.charAt(x-1)=='.' || oInputEmail.value.charAt(x+1)=='.') {
				sMensaje='Email incorrecto. Has de introducir uno correcto.';
				oInputEmail.select();
			}
			ContadorPuntos++;
		}
	}		
	if(ContadorArrobas!=1) {
		sMensaje='Email incorrecto. Has de introducir uno correcto.';
		oInputEmail.select();
	}
	if(ContadorPuntos==0) {
		sMensaje='Email incorrecto. Has de introducir uno correcto.';
		oInputEmail.select();	
	} else {			
		for(x=oInputEmail.value.length-1;x>=0;x--) {
			if(x==oInputEmail.value.length-1||x==oInputEmail.value.length-2) {					
				if(oInputEmail.value.charAt(x)=='.')	{
					sMensaje='Email incorrecto. Has de introducir uno correcto.';
					oInputEmail.select();
				}
			}
			if(x==oInputEmail.value.length-3||x==oInputEmail.value.length-4||x==oInputEmail.value.length-5||x==oInputEmail.value.length-6) {
				if(oInputEmail.value.charAt(x)=='.')	{
					HayPunto=true;
				}
			}
		}
		if(HayPunto==false)	{
			sMensaje='Email incorrecto. Has de introducir uno correcto.';
			oForm.txtEmail.select();
		}
	}
	return sMensaje;
}

function ___SiteBuilder_DoConfirm() {
	var oInstructions = document.getElementById("msb_instructions");
	var oResume = document.getElementById("msb_show_resume");
	var oWaitDiv = document.getElementById("msb_wait_layer");
	var oInfoStep = document.getElementById("msb_info_step");
	oInfoStep.style.display = "none";
	oResume.style.display = "none";
	oWaitDiv.style.display = "block";
	oInstructions.style.display = "none";
	___SiteBuilder_ChangeStep(-1);
}



///////////////////////////////
///////////////////////////////
/////////////////////////////// V3
///////////////////////////////
///////////////////////////////
///////////////////////////////

/* Seleccionamos el tipo de sitio */
function ___SiteBuilder_SelectSiteTypeV3(objId) {
	var sHtml = ___SiteBuilder_GetObjInfo('site_type', objId);
	// Cambiamos al paso 2.
	___SiteBuilder_ChangeStepV3(2)
}


/* Cambia al nuevo paso */
function __SiteBuilderChangeFromStep3v3(iTo) {
	var oForm = document.InmediaFrm;

	if (oForm._sitebuilder_subdomain.value =='') {
		alert('Debes especificar al menos un dominio.');
		oForm._sitebuilder_subdomain.select();
		return;
	}
	___SiteBuilder_ChangeStepV3(iTo);
}

/* Cambiamos al paso 5 */
function ___SiteBuilder_ChangeStep5v3() {
	var oForm = document.InmediaFrm;
	var sMessage;

	if (!oForm._sitebuilder_check_lopd.checked) {
		alert('Debes aceptar las condiciones.');
		return;
	}
	
	if (oForm._sitebuilder_login.value=="") {
		alert('Debes especificar un nombre de usuario.');
		oForm._sitebuilder_login.select();
		return;
	}
	if (oForm._sitebuilder_password.value.length<5) {
		alert('La clave no tiene la longitud correcta.');
		oForm._sitebuilder_password.select();
		return;
	}
	if (oForm._sitebuilder_password2.value=='' ||
		oForm._sitebuilder_password.value!=oForm._sitebuilder_password2.value) {
		alert('Debes repetir la clave y debe coincidir con la original.');
		oForm._sitebuilder_password2.select();
		return;
	}

	if (oForm._sitebuilder_company_name.value=='') {
		alert('Debes indicar el nombre de tu empresa.');
		oForm._sitebuilder_company_name.select();
		return;
	}
	/*
	if (oForm._sitebuilder_company_sector_id.selectedIndex==0) {
		alert('Indica el sector de actividad al que pertenece tu empresa.');
		oForm._sitebuilder_company_sector_id.focus();
		return;
	}
	*/
	if (oForm._sitebuilder_cif.value=='' || !esNIFCorrecto2(oForm._sitebuilder_cif.value)) {
		alert('CIF/NIF Incorrecto, debes introducir el CIF/NIF sin espacio ni guiones. Ej: A00000000');
		oForm._sitebuilder_cif.select();
		return;
	}

	if (oForm._sitebuilder_comments.value.length==0) {
		alert('Debes indicar una pequeña descripción de la actividad tu empresa.');
		oForm._sitebuilder_comments.focus();
		return;
	}
	if (oForm._sitebuilder_phone.value=='') {
		alert('Debes indicar un teléfono de contacto para tu empresa.');
		oForm._sitebuilder_phone.select();
		return;
	}
	if (oForm._sitebuilder_address.value=='') {
		alert('Debes indicar la dirección de la empresa.');
		oForm._sitebuilder_address.select();
		return;
	}
	if (oForm._sitebuilder_postal_code.value=='') {
		alert('Debes indicar el código postal.');
		oForm._sitebuilder_postal_code.select();
		return;
	}
	if (oForm._sitebuilder_postal_code.length<5) {
		alert('Longitud del código postal incorrecta.');
		oForm._sitebuilder_postal_code.select();
		return;
	}
	if (oForm._sitebuilder_province_fk.selectedIndex==0) {
		alert('Debes indicar la provincia dónde está tu empresa.');
		oForm._sitebuilder_province_fk.focus();
		return;
	}
	if (oForm._sitebuilder_postal_code.value.length<2 || 
			oForm._sitebuilder_postal_code.value.substring(0,2)!=oForm._sitebuilder_province_fk[oForm._sitebuilder_province_fk.selectedIndex].value) {
		alert('Código postal incorrecto. No se corresponde con la provincia elegida.');
		oForm._sitebuilder_postal_code.select();
		return;
	}
	if (oForm._sitebuilder_contact_name.value=='') {
		alert('Debes indicar una persona de contacto.');
		oForm._sitebuilder_contact_name.select();
		return;
	}
	if (oForm._sitebuilder_contact_position.value=='') {
		alert('Debes indicar el cargo de la persona de contacto.');
		oForm._sitebuilder_contact_position.select();
		return;
	}
	
/*
	sMessage = ___SiteBuilder_CheckEmail(oForm._sitebuilder_email);
	if (sMessage != "") {
		alert(sMessage);
		return false;
	}
*/

	___SiteBuilder_ChangeStep(5);
}

/* Previsualizar un skin */
function ___SiteBuilder_PreviewSkinV3(sCode, oRadioName, sBaseUrl) {
	var iPaletteId;
	iPaletteId = ___SiteBuilder_GetSelectedPaletteV3(oRadioName);
	//window.open(sBaseUrl + "big_" + sCode + "_" + iPaletteId + ".jpg", "preview_window", "location=no;menubar=no;status=no;toolbar=no");
	window.open("/preview.aspx?img_path=/skin/sitebuilder/skins/big_" + sCode + "_" + iPaletteId + ".jpg", "preview_window", "scrollbars=yes,width=800,height=600");
}

/* Cambiar el sector seleccionado */
function __SiteBuilder_ChangeSector(sectorHtml) {
	var iId = sectorHtml[sectorHtml.selectedIndex].value;
	___SiteBuilder_GetObjInfo("company_sector", iId);
	document.location.reload();
}


/* Comprueba el campo del formulario en el OnChange */
function compruebaChangeCIF(oCIF) {
	if (!esNIFCorrecto2(oCIF.value)) {
		alert('CIF/CIF Incorrecto. Revisa el valor, recuerda que no se deben introducir espacios ni guiones. Ej: A0000000.');
		oCIF.select();
		return false;
	}
/*
	if (!CIFCorrecto(oCIF.value)) {
		alert('CIF Incorrecto. Revisa el valor, recuerda que el formato debe ser A0000000.');
		oCIF.select();
		return false;
	}
*/
}

/* Javascript para comprobar la validez de un CIF en España (incluso para sociedades) */
function CIFCorrecto(cif)
{
    //Comprueba que tenga 9 dígitos, el primero debe ser una letra y el resto números

    if (!/^([A-Z]\d{8})|([PX]\d{7}[A-J])$/.test(cif.toUpperCase())) return false;

    //Comprueba que la letra sea una de las posibles
    if (!/^[ABCDEFGHKLMPQSX]/.test(cif.toUpperCase())) return false;

	//Comprueba el dígito de control del CIF
	return ComprobarDigitoControlCIF(cif);
}

/* La siguiente función se encarga de validar el dígito de control */
function ComprobarDigitoControlCIF(cif)
{
    var arrayCIF
    var sumaDigitosPares = 0;
    var sumaDigitosImpares = 0;
    var numero;
    var arrayNumero;
    var digitoControl;

    //mete el cif en un array
	arrayCIF = cif.split("");

	//Si no tiene 9 caracteres es incorrecto
	if (arrayCIF.length != 9) return false;

	//Suma los dígitos pares de la cadena resultante de quitar el primer y último caracter del CIF
	for(i = 2; i < arrayCIF.length - 1; i = i + 2) sumaDigitosPares = sumaDigitosPares + parseInt(arrayCIF[i]);

	//Multiplicar por 2 los dígitos impares de la cadena resultante de quitar el primer y último caracter del CIF
	//y con cada resultado, sumar sus dígitos.
	//Sumarlo todo
	for(i = 1; i < arrayCIF.length - 1; i = i + 2) {
		numero = arrayCIF[i] * 2;
		if (numero > 9)	numero = (numero % 10) + 1
		sumaDigitosImpares = sumaDigitosImpares + numero;
	}

	//Sumar la suma de dígitos pares y la de dígitos impares
	//Coger la última cifra del número obtenido y restarle 10
	numero = sumaDigitosPares + sumaDigitosImpares
	for (i = numero; i >= 0; i = i - 10) numero = i;
	digitoControl = 10 - numero;

	//Para los tipos de sociedades P y X el dígito de control debe ser una letra
	if (arrayCIF[0].toUpperCase() == "P" || arrayCIF[0].toUpperCase() == "X") {
		digitoControl = String.fromCharCode(digitoControl + 64);
	}

	//Comprueba si el dígito de control se corresponde correctamente
	return (digitoControl.toString() == arrayCIF[8]);
}


var letras = new Array();
letras[0] = "T";letras[1] = "R";letras[2] = "W";letras[3] = "A";letras[4] = "G";letras[5] = "M";letras[6] = "Y";letras[7] = "F";letras[8] = "P";letras[9] = "D";letras[10] = "X";letras[11] = "B";letras[12] = "N";letras[13] = "J";letras[14] = "Z";letras[15] = "S";letras[16] = "Q";letras[17] = "V";letras[18] = "H";letras[19] = "L";letras[20] = "C";letras[21] = "K";letras[22] = "E";


function nif(dni){
	dni = parseInt(dni);
	if (dni <= 99999999){
		letraDNI = letras[dni % 23];
		dni = dni.toString();
		nif = dni + letraDNI;
		return nif
	}
}


/*INICIO COMPROBACION NIF/CIF */
function esNIFCorrecto2(cif) {
	par = 0
	non = 0
	letras="ABCDEFGHKLMNPQS"
	let=cif.charAt(0)
	
	//Si no es CIF ni t residencia
	if (!isNaN(let)) {
	  nif=cif
	  return validar(nif)
	}
	if (cif.length!=9) {
	  return false
	}
	
	if (letras.indexOf(let.toUpperCase())==-1) {
	  return false
	}
	
	for (zz=2;zz<8;zz+=2) {
	  par = par+parseInt(cif.charAt(zz))
	}
	
	for (zz=1;zz<9;zz+=2) {
	  nn = 2*parseInt(cif.charAt(zz))
	  if (nn > 9) nn = 1+(nn-10)
	  non = non+nn
	}
	
	parcial = par + non
	control = (10 - ( parcial % 10))
	if (control!=cif.charAt(8)){
	  return false
	}
	
	return true;
}

function esTRCorrecto(cif) {
  if (cif.length!=10) {
    return false
  }
  if (cif.charAt(0).toUpperCase() != "X") {
    return false
  }	
  return esNIFCorrecto2(cif.substring(1,cif.length));
}

function validar(abc) {
	dni=abc.substring(0,abc.length-1)
	let=abc.charAt(abc.length-1)
	if (!isNaN(let)) {
	  return false
	 } else {
	  cadena="TRWAGMYFPDXBNJZSQVHLCKET"
	  posicion = dni % 23
	  letra = cadena.substring(posicion,posicion+1)
	  if (letra!=let.toUpperCase()) {
		return false
	   }
	 }
	return true;
}

