var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;

/*
Función para limpiar todos los campos de un formulario.
*/
function limpiar(frm, control)
{	frm.reset();	
	control.focus();
}
/*
Función para mostrar el texto de ayuda
*/

function mostrartextoayuda(numeroayuda)
{	var ObjetoTextoAyuda = eval("document.all['ta" + numeroayuda + "']");
    var TextoAyudaSobranteArriba = ObjetoTextoAyuda.scrollHeight + 35;
	var ProbarArriba = (document.body.scrollTop + event.clientY) - TextoAyudaSobranteArriba;
	var ProbarIzquierda = event.clientX - 200;
	var TextoAyudaIzquierda = (ProbarIzquierda < 0) ? 100 : ProbarIzquierda;
	var TextoAyudaArriba = (ProbarArriba < document.body.scrollTop) ? document.body.scrollTop + 150 : ProbarArriba;
	
	ObjetoTextoAyuda.style.posLeft = TextoAyudaIzquierda;
	ObjetoTextoAyuda.style.posTop = TextoAyudaArriba;
	ObjetoTextoAyuda.style.visibility = "visible";
}


function mostrarmenurpts(numeroayuda)
{	var ObjetoTextoAyuda = eval("document.all['ta" + numeroayuda + "']");
	var ProbarArriba = (document.body.scrollTop + event.clientY);
	var ProbarIzquierda = event.clientX - 0;
	var TextoAyudaIzquierda = (ProbarIzquierda < 0) ? 0 : ProbarIzquierda;
	var TextoAyudaArriba = (ProbarArriba < document.body.scrollTop) ? document.body.scrollTop + 150 :ProbarArriba;
	
	ObjetoTextoAyuda.style.width = 150;
	//ObjetoTextoAyuda.style.posRight = 8;
	ObjetoTextoAyuda.style.posLeft = 330;
	ObjetoTextoAyuda.style.posTop = 25;
	ObjetoTextoAyuda.style.visibility = "visible";
}



/* Función para ocultar el texto de ayuda */
function ocultartextoayuda(numeroayuda)
{	var ObjetoTextoAyuda = eval("document.all['ta" + numeroayuda + "']");
	
	ObjetoTextoAyuda.style.visibility = "hidden";
}

/*Función para abrir una ventana sin bordes de 600x450*/
function ventana(direccion)
{	var direccionpag = direccion;
	retorno = window.open(direccionpag, "retorno", "width=800, height=600, left=200,top=100, resizable=0, scrollbars=1");
}

/*funcion para enviar un mensaje "X" en un cuadro de dialogo*/
function mensaje(mensaje)
{
	alert(mensaje);
}

/*funcion para mostrar los banners en el homepage de redteam*/
function showSignUpBanner(banner)
{
    if (banner == 'Expert') {
        document.getElementById("Expert-banner").style.display = "block";
        document.getElementById("Professional-banner").style.display = "none";
        document.getElementById("Enterprise-banner").style.display = "none";
    }
    else
    if (banner == 'Professional') {
        document.getElementById("Expert-banner").style.display = "none";
        document.getElementById("Professional-banner").style.display = "block";
        document.getElementById("Enterprise-banner").style.display = "none";
    }
    else
    if (banner == 'Enterprise') {
        document.getElementById("Expert-banner").style.display = "none";
        document.getElementById("Professional-banner").style.display = "none";
        document.getElementById("Enterprise-banner").style.display = "block";
    }
}


/**************************************************************************************************************************
1. VALIDATIONS FOR STRING/TEXT FIELDS
***************************************************************************************************************************/

function checkLengthTextArea(field, maxlength)
{
	if (field.value.length > maxlength) {
		field.value = field.value.substring(0, maxlength);
		showMessageBar(maxlength + ' characters permitted');
	}
}

/*funciones para validar emails*/
function isValidEMail_o(oText) {
    var sText = oText.value;
    if (sText != "" && !isEMailAddress(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid Email Address!");
        oText.focus(oText);
        return;
    }
}

function Email_focus(oText)
{
    oText.value = "";
    return;
}

function isEMailAddress(emailAdress)
{
    var s = emailAdress;
    var filter = /^(([^<>()[\]\\.,;:\s@\]+(\.[^<>()[\]\\.,;:\s@\]+)*)|(\.+\))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if (filter.test(s))
		return true
    else
		return false;
}

/*funcion para validar urls*/
function isValidUrl(url) {
    //var re = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.)?([\w]+)(.[\w]+){1,2}$/;
    //return re.test(url);
    return true;
}

/*funciones para validar zip codes*/
function isValidZipCode_o(oText) {
    var sText = oText.value;
    if (!isValidZipCode(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid Postal Code!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidZipCode(value) {
    var re;    
    re = /^[a-zA-Z0-9\s\-]*$/;
    return (re.test(value));
}

/*funciones para validar caracteres especiales*/
function isValidText_o(oText) {
    var sText = oText.value;
    if (!isValidString(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid text!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidString(sText) {
	var ValidChars = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ-0123456789 !@#$%&*_+=:;',./";
	var isValid = true;
	var Char;
	var i;

	for (i = 0; i < sText.length; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         isValid = false;
         break;
      }
    }
   return isValid;
}

/*funciones para validar un Username*/
function isValidUsername_o(oText) {
    var sText = oText.value;
    if (!isValidUsername(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid text!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidUsername(sText) {
	var ValidChars = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ@-0123456789_,.";
	var isValid = true;
	var Char;
	var i;

	for (i = 0; i < sText.length; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         isValid = false;
         break;
      }
    }
   return isValid;
}

/*funciones para validar el Business name*/
function isValidBusinessName_o(oText) {
    var sText = oText.value;
    if (!isValidBusinessName(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid Business Name!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidBusinessName(sText) {
	var ValidChars = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ -0123456789!@#&*()_+:;',./";
	var isValid = true;
	var Char;
	var i;

	for (i = 0; i < sText.length; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         isValid = false;
         break;
      }
    }
   return isValid;
}

/*funciones para validar el Database name*/
function isValidStorage_o(oText) {
    var sText = oText.value;
    if (!isValidStorage(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid Database Name!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidStorage(sText) {
	var ValidChars = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ-0123456789_";
	var isValid = true;
	var Char;
	var i;

	for (i = 0; i < sText.length; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         isValid = false;
         break;
      }
    }
   return isValid;
}

/*funciones para validar telefono*/
function isValidPhone_o(oText) {
    var sText = oText.value;
    if (!isValidPhone(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid Phone Number!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidPhone(sText) {
	var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-0123456789()[]<>,./";
	var isValid = true;
	var Char;
	var i;

	for (i = 0; i < sText.length; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         isValid = false;
         break;
      }
    }
   return isValid;
}

/*funciones para validar fax*/
function isValidFax_o(oText) {
    var sText = oText.value;
    if (!isValidFax(sText)){
        showMessageBar("<b>Warning!</b>: Please provide a valid Fax Number!");
        oText.focus();
        //oText.value = "";
        return;
    }
}

function isValidFax(sText) {
	var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-0123456789()[]<>,./";
	var isValid = true;
	var Char;
	var i;

	for (i = 0; i < sText.length; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         isValid = false;
         break;
      }
    }
   return isValid;
}



/**************************************************************************************************************************
2. VALIDATIONS FOR NUMERIC FIELDS
***************************************************************************************************************************/
function isValidPayCodeNumber(sText) {
	var ValidChars = "-0123456789 ";
	var IsNumber = true;
	var Char;
	var i;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
      }
   return IsNumber;
}

function isValidNumber(sText) {
	var ValidChars = "-0123456789.";
	var IsNumber = true;
	var Char;
	var i;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
      }
   return IsNumber;
}

function isValidPositiveIntegerNumber(sText) {
	var ValidChars = "0123456789";
	var IsNumber = true;
	var Char;
	var i;

	for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         IsNumber = false;
      }
    return IsNumber;
}

function isNumber(theElement, theElementName)
{ 
    var s = document.getElementById(theElement).value;
    if ( (s == "") || (isNaN(Math.abs(s)) && (s.charAt(0) != '#')))
    {
        event.returnValue = false;
        if ( isNumber.arguments.length  == 1 ) 
            showMessageBar( "<b>Warning!</b> Value must be a number." );
        else
            showMessageBar( "<b>Warning!</b> " + theElementName +  " value must be a number." );
        document.getElementById(theElement).focus(); 
        return false;
    }
    return true;
}

/*
THIS FUNCTION IS UNDER CONSTRUCTION
onkeyup="NumbersOnly('DirectiveAmount');"
*/
function NumbersOnly(theElement)
{
    var s = document.getElementById(theElement).value;
	var u = s.substring(s.length,1);
	var access = true;
	
	if(s.substring(0,2) == '--')
	{
		access = false;
	}
	else
	{
		access = true;
	}
	
	if(access == false)
	{
	  document.getElementById(theElement).value = s.substring(0,s.length-1);
	  //alert( "Warning! Value must be a number." );
	  return false;
	}
	else
	{
		if(u != '-')
		{
			access = !isNaN(s);
		}
	}
	
	if(access == false)
	{
	  document.getElementById(theElement).value = s.substring(0,s.length-1);
	  //alert( "Warning! Value must be a number." );
	  return false;
	}	
}

function OnlyNumbers()
{
    if (event.keyCode != 13 && (event.keyCode < 45 || event.keyCode > 57))
	{
	    event.returnValue = false;
	    showMessageBar( "<b>Warning!</b> Value must be a number." );
	}
}

function OnlyNumbersAlert()
{
    if (event.keyCode != 13 && (event.keyCode < 45 || event.keyCode > 57))
	{
	    event.returnValue = false;
	    alert( "Warning! Value must be a number." );
	}
}
  
function OnlyDigitNumbers()
{
    if (event.keyCode != 31 && (event.keyCode < 48 || event.keyCode > 57))
    {
	    event.returnValue = false;
	    showMessageBar( "<b>Warning!</b> Value must be a positive number." );	  
	}
}

function OnlyDigitNumbersAlert()
{
    if (event.keyCode != 31 && (event.keyCode < 48 || event.keyCode > 57))
    {
	    event.returnValue = false;
	    alert( "Warning! Values with decimals are not allowed." );
	}
}
  
function OnlyIntegers(showMessage)
{
    if (showMessage == null)
    {
        showMessage = true;
	}

    if (event.keyCode != 13 && ((event.keyCode < 48 && event.keyCode!=45)|| event.keyCode > 57))
    {
	    event.returnValue = false;
	    
	    if (showMessage)
	        showMessageBar( "Warning! Value must be an integer number." );
	}
}  

function OnlyPositivesNumbers(e, ElementValue)
{
    if ((e.keyCode != 13 && (e.keyCode < 46 || e.keyCode > 57)) || (e.keyCode == 46 && ElementValue.indexOf('.') >= 0))
	{
	    e.returnValue = false;
	    showMessageBar( "<b>Warning!</b> Value must be a positive number." );
	}
}

function OnlyPositiveDecimalNumbers()
{
	var isValid = false;
	
	if ((event.keyCode >= 48 && event.keyCode <= 57) || event.keyCode == 46)
	{
	    isValid = true;
	}
	
	if (!isValid)
    {
	    event.returnValue = false;
        showMessageBar( "<b>Warning!</b> Value must be a positive number." );
    }
}



/**************************************************************************************************************************
3. VALIDATIONS FOR DATE FIELDS
***************************************************************************************************************************/

function isValidDate(Cadena) {
    var Fecha= new String(Cadena);
	var FechaTmp = Fecha;
    var RealFecha= new Date();

	if (Fecha.length != 10) return false;	

	while (FechaTmp.indexOf('/') >= 0) FechaTmp = FechaTmp.replace('/','');
	if (FechaTmp.replace('/','').length != 8) return false;
	
    var Ann = new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length));
    var Dia = new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")));
    var Mes = new String(Fecha.substring(0,Fecha.indexOf("/")));
    var AnnBisiesto = ((Ann % 4 == 0) && ((Ann % 100 != 0) || (Ann % 400 == 0)));

    if (isNaN(Ann) || Ann.length < 4 || parseFloat(Ann) < 1900)
        return false;
    if (isNaN(Mes) || parseFloat(Mes) < 1 || parseFloat(Mes) > 12)
        return false;
    if (isNaN(Dia) || parseInt(Dia, 10) < 1 || parseInt(Dia, 10) > 31)
        return false;
    if ((Mes == 4 || Mes == 6 || Mes == 9 || Mes == 11) && (Dia > 30))
        return false;
    if ((Mes == 2) && ((AnnBisiesto && Dia > 29) || (!AnnBisiesto && Dia > 28)))
        return false;
   
    return true;
}


/**************************************************************************************************************************
7. UTILITIES FOR DATES
***************************************************************************************************************************/

function CompareDates(date1, date2) {
	try {
		var d1 = new Date(date1);
		var d2 = new Date(date2);

		if (d1 < d2)
			return -1;
		if (d1 > d2)
			return 1;
		if (d1 == d2)
			return 0;
		return -9
	} catch(err) {
		return -9
	}
}

function FormatDate(dateValue, formatStyle)
{
    var dayName = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];
    var monthName = ["Jan","Feb","Mar","Apr","May", "Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
    var returnValue = "";

    if (isValidDate(dateValue))
    {
        dateValue = new Date(dateValue);

        switch (formatStyle) {
            case "ShortDescriptiveDate":
                returnValue = dayName[dateValue.getDay()] + " " + monthName[dateValue.getMonth()] + " " + dateValue.getDate() + ", " + dateValue.getFullYear();
                break;
        }
    }
    
    return returnValue;
}

/**************************************************************************************************************************
8. UTILITIES FOR TIME
***************************************************************************************************************************/

function timeFormat(timeField) {
	var pos;
	var timeValue = new String(timeField.value);
	timeValue = timeValue.replace('.', ':');
	timeValue = timeValue.toUpperCase();
	
	if (timeValue.indexOf('AM') < 0 && timeValue.indexOf('A') >= 0) timeValue = timeValue.replace('A', 'AM');
	if (timeValue.indexOf('PM') < 0 && timeValue.indexOf('P') >= 0) timeValue = timeValue.replace('P', 'PM');
	
	if (timeValue.indexOf('AM') >= 0 || timeValue.indexOf('PM') >= 0) {
		if (timeValue.indexOf('AM') >= 0) pos = timeValue.indexOf('AM');
		if (timeValue.indexOf('PM') >= 0) pos = timeValue.indexOf('PM');
		if (timeValue.substring(pos-1, pos) != ' ') timeValue = timeValue.substring(0,pos) + ' ' + timeValue.substring(pos, timeValue.length);
	}
	
	if (timeValue.length > 0 && timeValue.indexOf('AM') < 0 && timeValue.indexOf('PM') < 0 && timeValue.indexOf(':') < 0)
		timeValue = timeValue + ':00';
	
	while (timeValue.indexOf('  ') >= 0) timeValue = timeValue.replace('  ', ' ');
	
	timeField.value = timeValue;
}

function getTime(dateValue) {
    var hours = dateValue.getHours();
    var minutes = dateValue.getMinutes();
    var ampm = (hours >= 12 && minutes >= 0) ? "PM" : "AM";

    hours = (hours >= 13) ? hours - 12 : hours;

    var sHours = hours.toString();
    var sMinutes = minutes.toString();

    return Replicate("0", 2 - sHours.length) + hours + ":" + 
           Replicate("0", 2 - sMinutes.length) + minutes + " " + ampm;
}

function BuildTimeList(listControlName, initialRangeTime, defaultTime, addSelectOne) {
    var aTimeList = new Array();
    var hours, minutes, ampm;
    var sHours, sMinutes, currentTime, included12AM;
    var i = 0, totalIndex = 0, secondTime = 0;
    var oControl = document.getElementById(listControlName);

    hours = 12;
    minutes = 0;
    ampm = "AM";
    included12AM = false;

    addElement = false;

    while (1) {
        sHours = hours.toString();
        sMinutes = minutes.toString();
        currentTime = Replicate("0", 2 - sHours.length) + hours + ":" + 
                      Replicate("0", 2 - sMinutes.length) + minutes + " " + ampm;

        if (initialRangeTime != null && initialRangeTime != "") {
            if (currentTime == initialRangeTime) addElement = true;
        }
        else {
            addElement = true;
        }

        if (addElement) {
            if (currentTime == "12:00 AM") included12AM = true;
            aTimeList[totalIndex++] = currentTime;
        }

        minutes += 15;
        if (minutes == 60) {
            if (hours == 11 && ampm == "PM") break;
            
            minutes = 0;
            hours++;
            if (hours == 12) ampm = (ampm == "AM") ? "PM" : "AM";
            if (hours == 13) hours = 1;
        }
    }

    if (!included12AM) {
        aTimeList[totalIndex++] = "12:00 AM";
    }

    while (oControl.length > 0) oControl.remove(0);


    if (addSelectOne != null) {
        if (addSelectOne) {
            oElem = document.createElement("OPTION");
            oElem.value = "";
		    oElem.text = "Select one...";

            try {                
                oControl.add(oElem, null); }
		    catch(ex) {		        
		        oControl.add(oElem); }
        }
    }

    for (i=0; i<totalIndex; i++) {
        oElem = document.createElement("OPTION");
        oElem.value = aTimeList[i];
		oElem.text = aTimeList[i];

        try {
            oControl.add(oElem, null); }
		catch(ex) {
		    oControl.add(oElem); }
    }

    if (defaultTime != null && defaultTime != "") oControl.value = defaultTime;
}

function nearestInitialRange(dateValue) {
    var hours = dateValue.getHours();
    var minutes = dateValue.getMinutes();
    var ampm = (hours >= 12 && minutes >= 0) ? "PM" : "AM";
    var sHours, sMinutes;

    while (minutes != 15 && minutes != 30 && minutes != 45 && minutes != 60) minutes ++;

    if (minutes == 60) {
        minutes = 0;
        if (hours == 11 && ampm == "PM") {
            hours = 12;
            ampm = "AM";
        }
        else {
            hours++;
            if (hours == 12 && ampm == "AM") ampm = "PM";
            if (hours == 13) {
                hours = 1;
                ampm = "PM";
            }
        }
    }

    hours = (hours > 12) ? hours - 12 : hours;
    sHours = hours.toString();
    sMinutes = minutes.toString();

    return Replicate("0", 2 - sHours.length) + hours + ":" + 
           Replicate("0", 2 - sMinutes.length) + minutes + " " + ampm;
}

/**************************************************************************************************************************
9. IMAGES
***************************************************************************************************************************/

function previewImage(objPATH, objIMG) {
	var file = document.getElementById(objPATH).value;

	if (file.length <= 0) return;
	
	var ipreview = document.getElementById(objIMG);
	ipreview.src = 'file://' + file;
}

/**************************************************************************************************************************
10. NOTIFICATION AND QUESTION BARS
***************************************************************************************************************************/

function showMessageBar(message, fieldFocus, timeout) {
  	document.getElementById("tableMessage").style.display = "block";
	document.getElementById("tdMessage").innerHTML = "";
	document.getElementById("tdMessage").innerHTML = "&nbsp;" + message;
	window.scroll(0,0);

	if (!fieldFocus) fieldFocus = '';
	if (!timeout)
	   setTimeout("hideMessageBar('" + fieldFocus + "')",4000);
}

function showLongMessageBar(message, fieldFocus) {
  	document.getElementById("tableMessage").style.display = "block";
	document.getElementById("tdMessage").innerHTML = "";
	document.getElementById("tdMessage").innerHTML = "&nbsp;" + message;
	window.scroll(0,0);

	if (!fieldFocus) fieldFocus = '';
	
	setTimeout("hideMessageBar('" + fieldFocus + "')",100000)
}

function showPermanentMessageBar(message) {
    window.scroll(0,0);
    document.getElementById("cache").style.zIndex = 2000;
    document.getElementById("cache").innerHTML = (message != "") ? message : '<table width="100%" bgcolor="OrangeRed" cellpadding="1" cellspacing="0"><tr><td valign="top"><table width="100%" bgcolor="#FFB63D" cellpadding="2" cellspacing="0"><tr><td valign="top"><font face="Arial" size="1"><b>Your request is being processed... please wait </b></font><img src="' + getURL("/html/") + 'images/processing.gif" align="absmiddle" height="15"></td></tr></table></td></tr></table>';
    document.getElementById("cache").style.display = "";
}

function hideMessageBar(fieldFocus) {
  	document.getElementById("tableMessage").style.display = "none";
	document.getElementById("tdMessage").innerHTML = "";
	
	if (fieldFocus != '')
		document.getElementById(fieldFocus).focus();
}

function showQuestionBar(message) {
  	document.getElementById("tableMessage").style.display = "block";
	document.getElementById("tdMessage").innerHTML = "";
	document.getElementById("tdMessage").innerHTML = "&nbsp;" + message;
}

function hideQuestionBar(fieldFocus) {
  	document.getElementById("tableMessage").style.display = "none";
	document.getElementById("tdMessage").innerHTML = "";
}

function LoadingMessagePage(displayMode)
{
    if (displayMode.toLowerCase() == "on")
        document.write('<div id="cache" style="top:0;left:0"><table width="100%" bgcolor="OrangeRed" cellpadding="1" cellspacing="0"><tr><td valign="top"><table width="100%" bgcolor="#FFB63D" cellpadding="2" cellspacing="0"><tr><td valign="top"><font face="Arial" size="1"><b>Your request is being processed... please wait </b></font><img src="' + getURL("/html/") + 'images/processing.gif" align="absmiddle" height="15"></td></tr></table></td></tr></table></div>')
    else
        document.getElementById("cache").style.display = "none";
}



/* ////////////////// CODE FOR "IN MAINTENANCE" POPUP MESSAGE //////////////// */
/* --------------------------------------------------------------------------- */
function SignUpForNewsletter()
{
    DarkenPage();
    ShowNewsletterPanel();
}

function ShowNewsletterPanel()
{
    var newsletter_panel = document.getElementById('newsletter_panel');
    
    // w is a width of the newsletter panel
    w = 300;
    // h is a height of the newsletter panel
    h = 95;
    
    // get the x and y coordinates to center the newsletter panel
    xc = Math.round((document.body.clientWidth)-(w+3))
    yc = Math.round((document.body.clientHeight/2)-(h/2))
    
    // show the newsletter panel
    newsletter_panel.style.left = xc + "px";
    newsletter_panel.style.top  = yc + "px";
    newsletter_panel.style.display = 'block';
}

function SignUp()
{
    // hide the newsletter panel
    var newsletter_panel = document.getElementById('newsletter_panel');
    newsletter_panel.style.display = 'none';
    // lighten the page again
    LightenPage();
}

// this function puts the dark screen over the entire page
function DarkenPage()
{
    var page_screen = document.getElementById('page_screen');
    page_screen.style.height = document.body.parentNode.scrollHeight + 'px';
    page_screen.style.display = 'block';
}

// this function removes the dark screen and the page is light again
function LightenPage()
{
    var page_screen = document.getElementById('page_screen');
    page_screen.style.display = 'none';
}

/* -------------------------------------------------------------------------------- */
/* ////////////////// END: CODE FOR "IN MAINTENANCE" POPUP MESSAGE //////////////// */

