var Fade_Layer, Fade_Opacity, Fade_ID, Fade_Step, Fade_OnFinish;

function Fade(sLayer, iStart, iStep, iSpeed, sOnFinish){
	Fade_Layer = document.getElementById(sLayer);
	Fade_Opacity = iStart;
	ChangeOpacity(Fade_Layer, Fade_Opacity);
	Fade_Step = iStep;
	Fade_OnFinish = sOnFinish;
	Fade_ID = setInterval(Fade_Change, iSpeed);
}

function Fade_Change(){
	ChangeOpacity(Fade_Layer, Fade_Opacity);
	Fade_Opacity += Fade_Step;
	if(Fade_Opacity < 0 || Fade_Opacity > 100){
		clearInterval(Fade_ID);
		if(Fade_OnFinish) eval(Fade_OnFinish);
	}
}

function ChangeOpacity(objLayer, iOpacity){	
	if(document.all){
		objLayer.style.filter = "Alpha(Opacity=" + Math.ceil(iOpacity) + ")";
	}
	else{
		objLayer.style.opacity = Math.ceil(iOpacity) / 100;
	}
}

function ToggleDisplay(sLayerID){
	var Layer = document.getElementById(sLayerID);
	if(Layer.style.display == "none"){
		Layer.style.display = "block";
	}
	else{
		Layer.style.display = "none";
	}
}

function Popup(sURL, iWidth, iHeight, sAttributes){
	if(sAttributes != null) sAttributes = "," + sAttributes;
	else sAttributes = "";
	var iLeft = Math.round((screen.availWidth / 2) - (iWidth / 2));
	var iTop = Math.round((screen.availHeight / 2) - (iHeight / 2));
	window.open(sURL, "", "width=" + iWidth + ",height=" + iHeight + ",left=" + iLeft + ",top=" + iTop + sAttributes);
}

function AttachEvent(objElement, sEvent, objFunction){
	if(objElement.addEventListener){
		objElement.addEventListener(sEvent, objFunction, false);
	}
	else if(objElement.attachEvent){
		objElement.attachEvent("on" + sEvent, objFunction);
	}
}

function PreloadImage(sFile){
	var objImage = new Image();
	objImage.src = sFile;
}

function Trim(sText){
	return sText.replace(/^\s*|\s*$/g, "");
}

function IsEmail(sAddress){
	if(sAddress == "") return false;
	var objRegExp = new RegExp("^[a-z0-9_.\-]{3,}@[a-z0-9.\-]{3,}\.[a-z]{2,3}$", "i");
	return objRegExp.test(sAddress);
}

function Round(fNumber, iDecimals){
	var sNumber = fNumber.toString();
	var aNumber = sNumber.split(".");
	if(aNumber.length > 1){
		aNumber[1] = aNumber[1].substring(0, iDecimals);
		if(aNumber[1].length != 0) aNumber[1] = "." + aNumber[1];
		return new Number(aNumber[0] + aNumber[1]);
	}
	else return fNumber;
}

function FormatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function XMLHttpObject(){
	if(navigator.userAgent.indexOf("Opera") != -1) return false;
	var objXMLHttp = false;
	
	if(window.XMLHttpRequest){
		objXMLHttp = new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		try{
			objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
			objXMLHttp.overrideMimeType("text/xml");
		}
		catch(e){
			try{
				objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e){
				objXMLHttp = false;
			}
		}
	}
	return objXMLHttp;
}

var AJAX_ERROR_NOSUPPORT = 0;
var AJAX_ERROR_HTTP = 1;
var AJAX_ERROR_OTHER = 2;

function AJAXRequest(sURL, sMethod, sData, Callback, bErrorAlerts, bXMLParsing){
	if(bXMLParsing == null) bXMLParsing = false;
	if(bErrorAlerts == null) bErrorAlerts = true;
	var objXMLHttp = new XMLHttpObject();
	if(!objXMLHttp){
		if(bErrorAlerts) alert("Sorry, in order to use this feature you need to upgrade your browser to the latest version of Internet Explorer, Firefox, or Safari.");
 		if(Callback) Callback(null, [AJAX_ERROR_NOSUPPORT]);
		return;
	}
	objXMLHttp.onreadystatechange = function(){
		if(objXMLHttp.readyState == 4 || objXMLHttp.readyState == "complete"){
			if(objXMLHttp.status == 200){
				if(Callback) Callback((bXMLParsing ? objXMLHttp.responseXML : objXMLHttp.responseText), false);
			}
			else{
				if(bErrorAlerts) alert("We're sorry, there was a problem while trying to process your request. Please try again in a few moments.");
				if(Callback) Callback(null, [AJAX_ERROR_HTTP, objXMLHttp.status, objXMLHttp.responseText]);
			}
		}
	}
	try{
		if(typeof(sData) == "object"){
			if(sData.elements){
				var aForm = new Array();
				for(i=0; i<sData.elements.length; i++){
					switch(sData.elements[i].type){
						case "text":
							aForm.push(sData.elements[i].name + "=" + escape(sData.elements[i].value));
							break;
						case "textarea":
							aForm.push(sData.elements[i].name + "=" + escape(sData.elements[i].value));
							break;
						case "select-one":
							aForm.push(sData.elements[i].name + "=" + escape(sData.elements[i].value));
							break;
					}
				}
				sData = aForm.join("&");
			}
			else{
				sData = "";
			}
		}
		sMethod = sMethod.toUpperCase();
		objXMLHttp.open(sMethod, sURL + (sMethod == "GET" ? "?" + sData : ""), true);
		if(sMethod == "POST"){
			objXMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			objXMLHttp.setRequestHeader("Content-length", sData.length);
			objXMLHttp.setRequestHeader("Connection", "close");
		}
		objXMLHttp.send(sMethod == "POST" ? sData : null);
	}
	catch(Error){
		if(bErrorAlerts) alert("We're sorry, there was a problem while trying to process your request. Please try again in a few moments.");
		if(Callback) Callback(null, [AJAX_ERROR_OTHER, Error.message]);
	}
}

function Cupon_Favorito(iIDCupon){
	var Etiquetas = document.getElementById("CuponAAF_" + iIDCupon);
	var Capa = document.getElementById("divCuponAAF_" + iIDCupon);
	if(Etiquetas.value == "0"){
		var sEtiqueta = window.prompt("Por favor introduzca el nombre bajo el cual quiere categorizar este cupon:", "");
		if(sEtiqueta == null || sEtiqueta == "") return;
	}
	else{
		var sEtiqueta = Etiquetas.value;
	}
	if(Trim(sEtiqueta) == "") return;
	Capa.innerHTML = "<em>Guardando...</em>";
	var sDatos = "accion=guardar&idcupon=" + iIDCupon + "&etiqueta=" + escape(sEtiqueta);
	AJAXRequest("/ajax/favoritos.php", "POST", sDatos, function(sRespuesta, aError){
		if(!aError){
			Capa.innerHTML = sRespuesta;
		}
	});
}

function Cupon_Imprimir(iIDCupon){	
	Popup("/imprimir-main.php?elemento=cupon&id=" + iIDCupon, 300, 300, "scrolling=0");
}

function EnviarPagina(sTitulo, sPagina){
	Popup("/enviar.php?t=" + sTitulo + "&p=" + sPagina, 500, 300);
}