
/*****************************FIREFOX********************************************/
/* 
  Notes: 
    1. edge & help attributes do not work. 
    2. "height" & "width" must be entered before "center" 
    3. if you should choose to set "center=yes" do not put in "left" and "top" 
    4. Minimize button not hidden, but when clicked the window will not disappear 
    5. Aside from the aforementioned, all features should react the same *fingers crossed* 
    6. Still in the works, so don't expect miracles. Any problems/queries/complaints please don't hesitate. 
*/ 

dFeatures = 'dialogheight=800px; dialogwidth=1000px; scrollbars=no;resizable=no;status=no';//default features

modalWin = ""; 
function xShowModalDialog( sURL, vArguments, sFeatures ) 
{ 
    if (sURL==null||sURL=='') 
    { 
        alert ("Invalid URL input."); 
        return false; 
    } 
    if (vArguments==null||vArguments=='') 
    { 
        vArguments=''; 
    } 
    if (sFeatures==null||sFeatures=='') 
    { 
        sFeatures=dFeatures; 
    } 

    sFeatures = sFeatures.replace(/ /gi,''); 

    aFeatures = sFeatures.split(";"); 
    sWinFeat = "directories=0,menubar=0,titlebar=0,toolbar=0,"; 
    for ( x in aFeatures ) 
    { 
        aTmp = aFeatures[x].split("="); 
        sKey = aTmp[0].toLowerCase(); 
        sVal = aTmp[1]; 
        switch (sKey) 
        { 
			case "scrollbars":
				sWinFeat += "scrollbars=" +sVal+",";
				break;
            case "dialogheight": 
                sWinFeat += "height="+sVal+","; 
                pHeight = sVal; 
                break; 
            case "dialogwidth": 
                sWinFeat += "width="+sVal+","; 
                pWidth = sVal; 
                break; 
            case "dialogtop": 
                sWinFeat += "screenY="+sVal+","; 
                break; 
            case "dialogleft": 
                sWinFeat += "screenX="+sVal+","; 
                break; 
            case "resizable": 
                sWinFeat += "resizable="+sVal+","; 
                break; 
            case "status": 
                sWinFeat += "status="+sVal+","; 
                break; 
            case "center": 
                if ( sVal.toLowerCase() == "yes" ) 
                { 
                    sWinFeat += "screenY="+((screen.availHeight-pHeight)/2)+","; 
                    sWinFeat += "screenX="+((screen.availWidth-pWidth)/2)+","; 
                } 
                break; 
        } 
    } 

    modalWin = window.open(String(sURL),"",sWinFeat);

    if (vArguments!=null&&vArguments!='') 
    { 
        modalWin.dialogArguments=vArguments; 
    } 
} 

//Funcion que posiciona el Foco en el elemento pasado por parametro
function SetFocus(elementId)
{
	if ( document.getElementById(elementId) )
		document.getElementById(elementId).focus();
}

//Funcion que muestra/oculta un subMenu del menuLateral
function SetSubMenu(_controlId, tdId)
{
	if ( document.getElementById(_controlId + "_" + tdId).style.display == 'none' )
		document.getElementById(_controlId + "_" + tdId).style.display = 'inline';
	else
		document.getElementById(_controlId + "_" + tdId).style.display = 'none';
}

//Funcion que filtra el combo de Provincias segun el Pais seleccionado
function ValidarProvincia(_controlId)
{
	var controlPais = document.getElementById(_controlId + "_ddlResidenceCountryCV");
	var controlProvincia = document.getElementById(_controlId + "_ddlProvinceCV");
	var codPais = controlPais.value;

	VaciarCombo(controlProvincia);

	controlProvincia.options[controlProvincia.options.length] = new Option('', 0);
	for(y=1; y < aProvincia.length; y++)
	{
		if ( aProvincia[y].split("|")[1] == codPais || codPais == "" )
			controlProvincia.options[controlProvincia.options.length] = new Option(aProvincia[y].split("|")[2], aProvincia[y].split("|")[0] + "|" + aProvincia[y].split("|")[1]);
	}
}

//Funcion que filtra el combo de Provincias segun el Pais seleccionado
//y selecciona un item por defecto
function ValidarProvinciaSelected(_controlId, _valorSeleccionado)
{
	var controlPais = document.getElementById(_controlId + "_ddlResidenceCountryCV");
	var controlProvincia = document.getElementById(_controlId + "_ddlProvinceCV");
	var codPais = controlPais.value;

	VaciarCombo(controlProvincia);

	controlProvincia.options[controlProvincia.options.length] = new Option('', 0);
	for(y=1; y < aProvincia.length; y++)
	{
		if ( aProvincia[y].split("|")[1] == codPais || codPais == "" )
			controlProvincia.options[controlProvincia.options.length] = new Option(aProvincia[y].split("|")[2], aProvincia[y].split("|")[0] + "|" + aProvincia[y].split("|")[1]);
	}

	var _index = 1;	
	for(y=1; y < controlProvincia.options.length; y++)
	{
		if ( controlProvincia.options[y].value == _valorSeleccionado )
			_index = y;
	}

	controlProvincia.selectedIndex = _index;
}

//Funcion que elimina todos los elementos de un combo
function VaciarCombo(objCombo)
{
	for(x=objCombo.options.length; x > 0; x--)
	{
		objCombo.remove(0);
	}
}

//Funcion que filtra la entrada a solo numeros
function SoloNumeros(e)
{
	if ( ( event.keyCode < 48 ) || ( event.keyCode > 57 ) )
		event.returnValue = false;
}

//Funcion encargada de ocultar/mostrar la caja de texto del Puesto OTROS
function ValidarPuesto(_controlId, _constOtros)
{
	var ddlPuesto = document.getElementById(_controlId + "_ddlPuestoCV");
	var code = ddlPuesto.value;

	if ( code  == _constOtros )
		document.getElementById(_controlId + "_tblPuestoCV").style.display = 'inline';
	else
		document.getElementById(_controlId + "_tblPuestoCV").style.display = 'none';
}

//Funcion encargada de validar si se ha seleccionado un idioma o un conocimiento
//informatico repetido
function ValidarRepetido(_controlId, _index, _type, _message)
{
	var ddlSelected = document.getElementById(_controlId + "_ddl" + _type + _index);
	
	var ddl1 = document.getElementById(_controlId + "_ddl" + _type + "1");
	var ddl2 = document.getElementById(_controlId + "_ddl" + _type + "2");
	var ddl3 = document.getElementById(_controlId + "_ddl" + _type + "3");
	var ddl4 = document.getElementById(_controlId + "_ddl" + _type + "4");

	var cont=0;
	if ( ddlSelected.value != "" )
	{
		if ( ddlSelected.value == ddl1.value)
			cont++;
		if ( ddlSelected.value == ddl2.value)
			cont++;
		if ( ddlSelected.value == ddl3.value)
			cont++;
		if ( ddlSelected.value == ddl4.value)
			cont++;
			
		if ( cont > 1 )
		{
			ddlSelected.value = "";
			alert(_message);
		}
	}
}

//*****************************************************************************
//Funciones Popup 2.1

//Funcion que llama a la pagina que contiene el detalle de la oferta
//y lo inyecta en un DIV de la pagina principal
function ShowOffer(e, _paramName, _paramValue)
{
	var request = null;

	try
	{
		// Firefox, Opera 8.0+, Safari
		request = new XMLHttpRequest();
	}
	catch(ex)  
	{
		// Internet Explorer
		try
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(ex)
		{
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	request.open("GET", "http://" + window.document.domain +  "/Barcelo.Portal.Group.Web/Pages/OfferPopup.aspx" + "?" + _paramName + "=" + _paramValue, false, false);
	request.send(null);

	//Atencion, es necesario eliminar el TAG "form" si no salta error JavaScript
	var response = request.responseText;
	var ini = response.indexOf("<!--#FormEnd##-->");
	var fin = response.indexOf("</form>");
	response = response.substring(ini + 17, fin);
	document.getElementById('divCerrar').innerHTML = response;
	
	var diva = document.getElementById('divCerrar');
	diva.style.display = "inline";

	//Se centra el DIV
	var documentHeight;
	var documentWidth;

	if (document.all)
	{
		documentHeight = document.documentElement.offsetHeight;
		documentWidth = document.documentElement.offsetWidth;
	}
	else
	{
		documentHeight = document.height;
		documentWidth = document.width;
	}

    diva.style.top = (( documentHeight - diva.offsetHeight)/2) + document.body.scrollTop;
    diva.style.left = (( documentWidth - diva.offsetWidth)/2) + document.body.scrollLeft;
    diva.style.border = "#a2b4ba 5px";

    //Se evita el solape con los controles por debajo
	if ( document.getElementById("frameSoporte") )
	{
		document.getElementById("frameSoporte").style.top = diva.style.top;
		document.getElementById("frameSoporte").style.left = diva.style.left;
		document.getElementById("frameSoporte").style.height = diva.offsetHeight;
		document.getElementById("frameSoporte").style.width = diva.offsetWidth;
		document.getElementById("frameSoporte").style.display = "inline";
	}
}

function CloseDiv()
{
	document.getElementById("divCerrar").style.display = "none";

	if (document.getElementById("frameSoporte"))
		document.getElementById("frameSoporte").style.display = "none";
}

//*****************************************************************************
//Funciones validar fecha en Cliente

function esDigito(sChr)
{
	var sCod = sChr.charCodeAt(0);

	return ((sCod > 47) && (sCod < 58));
}

function finMes(mes)
{
	var nMes = parseInt(mes, 10);
	var nRes = 0;

	switch (nMes){
		case 1: nRes = 31; break;
		case 2: nRes = 29; break;
		case 3: nRes = 31; break;
		case 4: nRes = 30; break;
		case 5: nRes = 31; break;
		case 6: nRes = 30; break;
		case 7: nRes = 31; break;
		case 8: nRes = 31; break;
		case 9: nRes = 30; break;
		case 10: nRes = 31; break;
		case 11: nRes = 30; break;
		case 12: nRes = 31; break;
	}

	return nRes;
}

function valDia(dia, mes)
{
	var bOk = false;
	var nDia = parseInt(dia, 10);
	var nMes = parseInt(mes, 10);

	bOk = bOk || ((nDia >= 1) && (nDia <= finMes(nMes)));

	return bOk;
}

function valMes(mes)
{
	var bOk = false;
	var nMes = parseInt(mes, 10);

	bOk = bOk || ((nMes >= 1) && (nMes <= 12));

	return bOk;
}

function valAno(nAno)
{
	var bOk = true;

	bOk = bOk && ((nAno.length == 2) || (nAno.length == 4)) && (nAno >= 1754);

	if (bOk){
		for (var i = 0; i < nAno.length; i++){
			bOk = bOk && esDigito(nAno.charAt(i));
		}
	}

	return bOk;
}

function valFecha(controlDay, controlMonth, controlYear, warning)
{
	var bOk = true;
	var day = document.getElementById(controlDay);
	var month = document.getElementById(controlMonth);
	var year = document.getElementById(controlYear);

	if (day.value != "" && month.value != "" && year.value != "")
	{
		bOk = bOk && (valAno(year.value));
		bOk = bOk && (valMes(month.value));
		bOk = bOk && (valDia(day.value, month.value));

		if (!bOk)
		{
			alert(warning);

			day.value = "";
			month.value = "";
			year.value = "";
			day.focus();
		}
	}
}

function valFechaLittle(day, controlMonth, controlYear, warning)
{
	var bOk = true;
	var month = document.getElementById(controlMonth);
	var year = document.getElementById(controlYear);

	if (month.value != "" && year.value != "")
	{
		bOk = bOk && (valAno(year.value));
		bOk = bOk && (valMes(month.value));
		bOk = bOk && (valDia(day, month.value));

		if (!bOk)
		{
			alert(warning);

			month.value = "";
			year.value = "";
			month.focus();
		}
	}
}