// cross-browser add-remove event to object
EventManager =
{
	addEvent: function(obj, e, func)
	{
		//W3C, Mozilla
		if(obj.addEventListener)
		{
			obj.addEventListener(e, func, false);
		}
		//IE
		else if(obj.attachEvent)
		{
			obj.attachEvent("on"+e, func);
		}
		//others
		else
		{
			obj["on"+e] = func;
		}
	},
	
	removeEvent: function(obj, e, func)
	{
		if(obj.removeEventListener)
		{
			obj.removeEventListener(e, func, false);
		}
		else if(obj.detachEvent)
		{
			obj.detachEvent("on"+e, func);
		}
		else
		{
			obj["on"+e] = null;
		}
	},
	
	delegate: function(o, f, inherit_args)
	{
		var a = new Array();
		for(var i=3; i<arguments.length; i++) a.push(arguments[i]);
		return function()
		{
			//se envían además los parámetros propios que el método devuelve
			if(inherit_args)
			{
				var ar = new Array();
				for(var i=0; i<arguments.length; i++) ar.push(arguments[i]); //arguments no se considera una array, por lo que no funciona 'concat'
				f.apply(o, ar.concat(a)); //suma a los valores retornados por la funcion por defecto los definidos por el usuario
			}
			else
			{
				f.apply(o, a);
			}
		}
	}
};

//--------------------------------------------------------------------------

// Permuta una imagen cuyo nombre acabe en "_on." o "_off." (versión 2.1)
function commuteImg()
{
	var sSrc = this.src,
		rSearch = new RegExp("_(on|off)\\.");
	sSrc.match(rSearch);
	var sSrc = sSrc.replace("_"+RegExp.$1+".", "_"+((RegExp.$1=="off") ? "on" : "off")+".");
	this.src = sSrc;
}

function prepareChangeImages()
{
	var allImg = document.getElementsByTagName("IMG");
	for(var i=0; i<allImg.length; i++)
	{
		var oAttr = String(allImg[i].getAttribute("src"));
		if(oAttr.toLowerCase().match("_off."))
		{
			var o = allImg[i];
				o.onmouseover	= commuteImg;
				o.onmouseout	= commuteImg;
		}
	}
}

EventManager.addEvent(window, "load", prepareChangeImages);

//--------------------------------------------------------------------------

var mac = (navigator.appVersion.indexOf("Mac") >0 )? true : false;

function getPos(w,h)
{
	var nW = (mac && document.all)? w-16 : w;
	var nH = h;
	var list = {
		x : Math.round((screen.availWidth/2) - (nW/2)),
		y : Math.round((screen.availHeight/2) - (nH/2)),
		w : nW,
		h : nH		
	}
	return list;
}

function existWin(oWindow)
{
	clearInterval(tmr);
	if(!oWindow) alert("Por favor, activa la opción de abrir ventanas emergentes de tu navegador para imprimir la información. Gracias.");
}

function openWin(pag,w,h,s)
{
	if(w == null) w = 650;
	if(h == null) h = 500;
	if(s == null) s = "yes";
	var pos = getPos(w,h);
	var w_pop = window.open(pag, "new_window","width=" + pos.w + ", height=" + pos.h + ", top=" + pos.y + ", left=" + pos.x + ", scrollbars=" + s);
	tmr = setInterval(existWin, 1000, w_pop);
}


//Check Available
function OnChangedUsername()
{
	if(document.form1.newuserid.value == "")
		{
			document.form1.btnCheckAvailability.disabled = true;
		}
	else
	{
		document.form1.btnCheckAvailability.disabled = false;
	}
}
function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		ro = new XMLHttpRequest();
	}
	return ro;
}

var http = createRequestObject();

function sndReq(fvalue,page) {
	http.open('get', '/asp/ajax_'+page+'.asp?username='+fvalue);
	if (page=='username') http.onreadystatechange = handleResponse;
	if (page=='nif') http.onreadystatechange = handleResponseNIF;
	if (page=='email') http.onreadystatechange = handleResponseEMAIL;
	http.send(null);
}

function handleResponse() {
	if(http.readyState == 4){
		var response = http.responseText;
		var update = new Array();

		if(response.indexOf('|' != -1)) {
			update = response.split('|');
			document.getElementById("username_chk").innerHTML = update[0];
		}
	}
}
function handleResponseNIF() {
	if(http.readyState == 4){
		var response = http.responseText;
		var update = new Array();

		if(response.indexOf('|' != -1)) {
			update = response.split('|');
			document.getElementById("nif_chk").innerHTML = update[0];
		}
	}
}
function handleResponseEMAIL() {
	if(http.readyState == 4){
		var response = http.responseText;
		var update = new Array();

		if(response.indexOf('|' != -1)) {
			update = response.split('|');
			document.getElementById("email_chk").innerHTML = update[0];
		}
	}
}

function doLogin(client_alias,client_password) {

	url = document.location.href ;
	
	// División en trozos con la barra como delimitador.

	partes = url.split('?');
	
	// Obtención del nombre de la página y sus parámetros.
	if (partes[0]!= url){
		if(partes[1].split('=')[0] == "rid") {
		document.frmlogin.action = '/asp/proxyflash.asp?cmd=cliente_login&client_alias='+client_alias+'&client_password='+client_password+'&vurl='+partes[0]+'&params='+partes[1]	
		}else{	
			document.frmlogin.action = '/asp/proxyflash.asp?cmd=cliente_login&client_alias='+client_alias+'&client_password='+client_password+'&vurl='+partes[0]
		}
	}else{
		document.frmlogin.action = '/asp/proxyflash.asp?cmd=cliente_login&client_alias='+client_alias+'&client_password='+client_password+'&vurl='+partes[0]
	}

	
	document.frmlogin.submit()

}

function clearCombos(combo) {
	
	var selObj = document.getElementById(combo);
	selObj.selectedIndex = 0;
}

function showHide(imgDiv){
	//create an object reference to the div containing images
	var oimageDiv=document.getElementById(imgDiv)
	var oimageLoadingDiv=document.getElementById("divloading")
	//set display to inline if currently none, otherwise to none
	oimageDiv.style.display=(oimageDiv.style.display=='none')?'inline':'none'
	oimageLoadingDiv.style.display=(oimageDiv.style.display=='none')?'inline':'none'

} 


function openCondiciones()
{
	myLightWindow.activateWindow({
		href: 'popup-condiciones-generales.asp',
		width: 399,
		height: 243
	});
}

function replaceT(obj){
	var newO=document.createElement('input');
	newO.setAttribute('type','password');
	newO.setAttribute('name',obj.getAttribute('name'));
	obj.parentNode.replaceChild(newO,obj);
	//setTimeout("newO.focus();", 10);
}
