/**
 * hml_modinterface.js (2009-may-21)
 * (c) by Alejandro Gudiel
 * All Rights Reserved
 * License does not permit use by third parties
**/

// Varios
function highlightRow(objRow, boolHighlight, intStartCol, intEndCol, strHighLightClass) {
	if (objRow.tagName == "td" || objRow.tagName == "th" ||
	    objRow.tagName == "TD" || objRow.tagName == "TH") objRow = objRow.parentNode;
	if (!intStartCol) intStartCol = 0;
	if (!intEndCol) intEndCol = objRow.cells.length - 1;
	if (!strHighLightClass) strHighLightClass = "highlighted";

	if (intEndCol > objRow.cells.length) intEndCol = objRow.cells.length - 1;

	if (boolHighlight) {
		for (i=intStartCol; i<=intEndCol; i++) {
			if (!objRow.cells[i].classBackup) objRow.cells[i].classBackup = objRow.cells[i].className;
			objRow.cells[i].className = strHighLightClass;
		}
	}
	else {
		for (i=intStartCol; i<=intEndCol; i++) {
			objRow.cells[i].className = objRow.cells[i].classBackup;
		}
	}
}

function highlightCell(objCell, boolHighlight, strHighLightClass) {
	if (!strHighLightClass) strHighLightClass = "highlighted";

	if (boolHighlight) {
		objCell.classBackup = objCell.className;
		objCell.className = strHighLightClass;
	}
	else {
		objCell.className = objCell.classBackup;
	}
}

function objElement_fadein(strID, intSteps, intMaxAlpha) {
    var objElement = getDocumentLayer(strID);
    if (objElement == null) return;

    if (!intMaxAlpha) intMaxAlpha = 100;

    if (objElement.style.display == "") return;

    objElement.style.display = "";

    if (objElement.fadeOutTimer) clearTimeout(objElement.fadeOutTimer);

    if (!intSteps) intSteps = 7;

    objElement_fadeinInternal(strID, 0, intSteps, intMaxAlpha);
}
function objElement_fadeinInternal(strID, intAlpha, intSteps, intMaxAlpha) {
    var objElement = getDocumentLayer(strID);
    if (objElement == null) return;

    var intDelta = Math.ceil(intMaxAlpha/intSteps);

    if (intAlpha > intMaxAlpha) intAlpha = intMaxAlpha;
    var boolLastCicle = (intAlpha == intMaxAlpha);
    var intOpacity = intAlpha/100;

    objElement.style.filter = "Alpha(opacity=" + intAlpha + ")";
    objElement.style.MozOpacity = intOpacity;
    objElement.style.KhtmlOpacity = intOpacity;

    if (!boolLastCicle) {
        intAlpha += intDelta;
        objElement.fadeInTimer = setTimeout("objElement_fadeinInternal('"+strID+"',"+intAlpha+","+intSteps+","+intMaxAlpha+")", 33, "JavaScript");
    }
    else {
        if (objElement.fadeInTimer) clearTimeout(objElement.fadeInTimer);

        if (!objElement.afterFadeIn) objElement.afterFadeIn = function () {return false;}
        objElement.afterFadeIn();
    }
}

function objElement_fadeout(strID, intSteps, intMaxAlpha) {
    var objElement = getDocumentLayer(strID);
    if (objElement == null) return;

    if (!intMaxAlpha) intMaxAlpha = 100;

    if (objElement.style.display == "none") return;

    objElement.style.display = "";

    if (objElement.fadeInTimer) clearTimeout(objElement.fadeInTimer);

    if (!intSteps) intSteps = 7;

    objElement_fadeoutInternal(strID, intMaxAlpha, intSteps);
}
function objElement_fadeoutInternal(strID, intAlpha, intSteps) {
    var objElement = getDocumentLayer(strID);
    if (objElement == null) return;

    if (!intSteps) intSteps = 5;

    var intDelta = Math.ceil(100/intSteps);

    if (intAlpha < 0) intAlpha = 0;
    var boolLastCicle = (intAlpha == 0);
    var intOpacity = intAlpha/100;

    objElement.style.filter = "Alpha(opacity=" + intAlpha + ")";
    objElement.style.MozOpacity = intOpacity;
    objElement.style.KhtmlOpacity = intOpacity;

    if (!boolLastCicle) {
        intAlpha -= intDelta;

        objElement.fadeOutTimer = setTimeout("objElement_fadeoutInternal('"+strID+"',"+intAlpha+","+intSteps+")", 33, "JavaScript");
    }
    else {
        if (objElement.fadeOutTimer) clearTimeout(objElement.fadeOutTimer);
        objElement.style.display = "none";

        if (!objElement.afterFadeOut) objElement.afterFadeOut = function () {return false;};
        objElement.afterFadeOut();
    }
}

function setElementAlpha(objElement, intAlpha) {
    objElement.intAlpha = intAlpha;

    objElement.style.filter = "Alpha(opacity=" + intAlpha + ")";
    objElement.style.MozOpacity = intAlpha/100;
    objElement.style.KhtmlOpacity = intAlpha/100;
}

//***********
// Grid de botones utilizando shapes
var intGlobalGridcounter = 0;
function hmlModInterface_buttonGrid(objTable) {
	var intRow, intCell, intTMP, objRow, objCell, strClassInfo, arrClassInfo;
	var intRows = objTable.rows.length;

	strClassInfo = objTable.className;
	arrClassInfo = strClassInfo.split(" ");
	if (arrClassInfo[0] == "hmlInterface") {
		if (!objTable.backGroundShape) {
			objTable.objContainer = objTable.parentNode;
			objTable.gridID = "grid_" + intGlobalGridcounter;
			objTable.shape = "roundrect";
			objTable.sinArcPCT = 0.02;
			objTable.fillCol = "#f8f8f8";
			objTable.strokeCol = "#dadada";
			objTable.strokeW = "1";
			objTable.fillAlpha = "100";

			var intTMP;
			var arrCommand = new Array();
			for (intTMP = 1; intTMP < arrClassInfo.length; intTMP++) {
				arrCommand = arrClassInfo[intTMP].split(":");

				switch (arrCommand[0]) {
					case "gridID":
						objTable.gridID = arrCommand[1];
						break;
					case "shape":
						objTable.shape = arrCommand[1];
						break;
					case "sinArcPCT":
						objTable.sinArcPCT = arrCommand[1];
						break;
					case "fillCol":
						objTable.fillCol = arrCommand[1];
						break;
					case "strokeCol":
						objTable.strokeCol = arrCommand[1];
						break;
					case "strokeW":
						objTable.strokeW = arrCommand[1];
						break;
					case "fillAlpha":
						objTable.fillAlpha = arrCommand[1];
						break;
				}
			}

			var arrDimmentions = getObjDimentions(objTable);
			var arrCoordinates = getObjAbsoluteCoordinates(objTable);
			var arrDivCoordinates = getObjAbsoluteCoordinates(objTable.objContainer);
			var intLeft = 1*arrCoordinates["left"] - 1*arrDivCoordinates["left"];
			var intTop = 1*arrCoordinates["top"] - 1*arrDivCoordinates["top"];

			objTable.backGroundShape = new objHMLShapesRect(objTable.gridID, objTable.objContainer,
															intLeft, intTop,
															arrDimmentions["width"], arrDimmentions["height"],
															objTable.fillCol, objTable.strokeCol, objTable.strokeW, objTable.fillAlpha, true);
			objTable.backGroundShape.sinArcPCT = objTable.sinArcPCT;
			objTable.backGroundShape.show();
			objTable.backGroundShape.objVector.style.zIndex = 2;
			objTable.style.zIndex = 3;

			intGlobalGridcounter++;
		}
	}

	if (!objTable.arrButtons) objTable.arrButtons = new Array();

	for (intRow = 0; intRow < objTable.rows.length; intRow++) {
		objRow = objTable.rows[intRow];
		for (intCell = 0; intCell < objRow.cells.length; intCell++) {
			objCell = objRow.cells[intCell];

			strClassInfo = objCell.className;
			arrClassInfo = strClassInfo.split(" ");
			if (arrClassInfo[0] == "hmlInterface") {
				intTMP = intRow + intCell*intRows;
				if (objTable.arrButtons.length == 0 || (objTable.arrButtons.length > 0 && !objTable.arrButtons[intTMP])) {
                    objTable.arrButtons[intTMP] = new hmlModInterface_buttonObject(objCell, arrClassInfo);
                    objTable.arrButtons[intTMP].intIndexInArray = intTMP;
                    objCell.objButton = objTable.arrButtons[intTMP];
				}
				objTable.arrButtons[intTMP].objShape.hide();
				objTable.arrButtons[intTMP].show();
			}
		}
	}
}

var intGlobalButCounter = 0;
function hmlModInterface_buttonObject(objContainer, arrCommands, intOffsetLeft, intOffsetTop) {
	if (!intOffsetLeft) intOffsetLeft = 0;
	if (!intOffsetTop) intOffsetTop = 0;
	if (!arrCommands) {
		var strClassInfo = objContainer.className;
		arrCommands = strClassInfo.split(" ");
		if (arrCommands[0] != "hmlInterface") return false;
	}

	this.objContainer = objContainer;
	this.butID = "but" + intGlobalButCounter;
	this.butShape = "roundrect";
	this.sinArcPCT = 0.1;
	this.fillCol = "#d7d7d7";
	this.overFillCol = "#cccccc";
	this.clickFillCol = "#c2c2c2";
	this.strokeCol = "transparent";
	this.strokeW = "1";
	this.fillAlpha = "100";
	this.contentAlpha = "100";
	this.strContents = objContainer.innerHTML;
	this.boolIsButton = true;

	this.show = hmlModInterface_buttonObject_show;
	this.hide = hmlModInterface_buttonObject_hide;
	this.modifyColors = hmlModInterface_buttonObject_modifyColors; //Cambia la definicion de los colores tambien en el shape
	this.reDefineColors = hmlModInterface_buttonObject_reDefineColors; //Solo lo dibuja de otro color, es para un mouseover o algo asi
	this.animationPump = hmlModInterface_buttonObject_animationPump;

	var intTMP;
	var arrCommand = new Array();
	for (intTMP = 1; intTMP < arrCommands.length; intTMP++) {
		arrCommand = arrCommands[intTMP].split(":");

		switch (arrCommand[0]) {
			case "butID":
				this.butID = arrCommand[1];
				break;
			case "butShape":
				this.butShape = arrCommand[1];
				break;
			case "sinArcPCT":
				this.sinArcPCT = arrCommand[1];
				break;
			case "fillCol":
				this.fillCol = arrCommand[1];
				break;
			case "strokeCol":
				this.strokeCol = arrCommand[1];
				break;
			case "strokeW":
				this.strokeW = arrCommand[1];
				break;
			case "fillAlpha":
				this.fillAlpha = arrCommand[1];
				break;
			case "contentAlpha":
				this.contentAlpha = arrCommand[1];
				break;
			case "overFillCol":
				this.overFillCol = arrCommand[1];
				break;
			case "clickFillCol":
				this.clickFillCol = arrCommand[1];
				break;
			case "boolIsButton":
				this.boolIsButton = (arrCommand[1] == "true");
				break;
		}
	}
	intGlobalButCounter++;

	if (objContainer.tagName == "TD") {
		var arrContainerCoordinates = getObjAbsoluteCoordinates(objContainer);
		var objDiv = objContainer.parentNode.parentNode.parentNode.parentNode;
		var arrDivCoordinates = getObjAbsoluteCoordinates(objDiv);

		intOffsetLeft = 1*intOffsetLeft + 1*arrContainerCoordinates["left"] - 1*arrDivCoordinates["left"];
		intOffsetTop = 1*intOffsetTop + 1*arrContainerCoordinates["top"] - 1*arrDivCoordinates["top"];
	}

	var arrDimmentions = getObjDimentions(objContainer);
	switch (this.butShape) {
		case "roundrect":
			this.objShape = new objHMLShapesRect(this.butID, this.objContainer,
												 intOffsetLeft, intOffsetTop, arrDimmentions["width"], arrDimmentions["height"],
												 this.fillCol, this.strokeCol, this.strokeW, this.fillAlpha,
												 true, true, this.strContents);
			this.objShape.buttonObject = this;
			this.objShape.sinArcPCT = this.sinArcPCT;
			break;
		case "rect":
			this.objShape = new objHMLShapesRect(this.butID, this.objContainer,
												 intOffsetLeft, intOffsetTop, arrDimmentions["width"], arrDimmentions["height"],
												 this.fillCol, this.strokeCol, this.strokeW, this.fillAlpha,
												 false, true, this.strContents);
			this.objShape.buttonObject = this;
			this.objShape.sinArcPCT = this.sinArcPCT;
			break;
		default:
			this.objShape = new objHMLShapesRect(this.butID, this.objContainer,
												 intOffsetLeft, intOffsetTop, arrDimmentions["width"], arrDimmentions["height"],
												 this.fillCol, this.strokeCol, this.strokeW, this.fillAlpha,
												 true, true, this.strContents);
			this.objShape.buttonObject = this;
			this.objShape.sinArcPCT = this.sinArcPCT;
			break;
	}
}

function hmlModInterface_buttonObject_show() {
	this.objContainer.style.width = this.objShape.intWidth;
	this.objContainer.style.height = this.objShape.intHeight;
	this.objContainer.innerHTML = "&nbsp;";

	if (!this.objShape.boolStroked) {
		this.objShape.stroke();
		this.objShape.objVector.style.zIndex = 4;
		this.objShape.objContents.style.zIndex = 5;

		if (this.boolIsButton) {
			this.objShape.objContents.style.cursor = "pointer";

			this.objShape.objContents.onmouseover = hmlModInterface_buttonObject_OverContents;
			this.objShape.objContents.onmouseout = hmlModInterface_buttonObject_OutOfContents;
			this.objShape.objContents.onmousedown = hmlModInterface_buttonObject_mousedown;
			this.objShape.objContents.onmouseup = hmlModInterface_buttonObject_OverContents;
		}
	}

	this.objShape.show();
}
function hmlModInterface_buttonObject_hide() {
	this.objContainer.innerHTML = this.strContents;
	this.objShape.hide();
}
function hmlModInterface_buttonObject_reDefineColors(strFillColor, strStrokeColor, strStrokeWeight) {
	if (boolHMLShapesUseMicrosoftVectors) {
		this.objShape.objVector.fillcolor = strFillColor;
		this.objShape.objVector.strokecolor = strStrokeColor;
		this.objShape.objVector.strokeweight = strStrokeWeight;

		this.objShape.objVector.filled = (strFillColor == "" || strFillColor == "transparent")?"f":"t";
		this.objShape.objVector.stroked = (strStrokeColor == "" || strStrokeColor == "transparent")?"f":"t";
	}
	else if (boolHMLShapesUseCanvasVectors) {
		if (strFillColor != "" && strFillColor != "transparent") {
			this.objShape.objCanvasContext.fillStyle = strFillColor;
		}
		if (strStrokeColor != "" && strStrokeColor != "transparent") {
			this.objShape.objCanvasContext.lineWidth = strStrokeWeight;
			this.objShape.objCanvasContext.strokeStyle = strStrokeColor;
		}

		if (strFillColor != "" && strFillColor != "transparent") this.objShape.objCanvasContext.fill();
		if (strStrokeColor != "" && strStrokeColor != "transparent") this.objShape.objCanvasContext.stroke();
	}
}
function hmlModInterface_buttonObject_modifyColors(strNewFillColor, strNewOverFillColor, strNewClickFillColor, strNewStrokeColor, strNewStrokeWeight) {
	if (!strNewFillColor) strNewFillColor = this.fillCol;
	if (!strNewOverFillColor) strNewOverFillColor = this.overFillCol;
	if (!strNewClickFillColor) strNewClickFillColor = this.clickFillCol;
	if (!strNewStrokeColor) strNewStrokeColor = this.strokeCol;
	if (!strNewStrokeWeight) strNewStrokeWeight = this.strokeW;

	this.fillCol = strNewFillColor;
	this.overFillCol = strNewOverFillColor;
	this.clickFillCol = strNewClickFillColor;

	this.strokeCol = strNewStrokeColor;
	this.strokeW = strNewStrokeWeight;

	this.objShape.strFillColor = this.fillCol;
	this.objShape.strStrokeColor = this.strokeCol;
	this.objShape.intStrokeWeight = this.strokeW;

	this.reDefineColors(strNewFillColor, strNewStrokeColor, strNewStrokeWeight);
}
function hmlModInterface_buttonObject_animationPump(intGrowPixels, boolChageColor, strNewFillColor, strNewOverFillColor, strNewClickFillColor, strNewStrokeColor, strNewStrokeWeight) {
	if (!intGrowPixels) intGrowPixels = 6;
	if (!boolChageColor) boolChageColor = false;
	if (!strNewFillColor) strNewFillColor = this.fillCol;
	if (!strNewOverFillColor) strNewOverFillColor = this.overFillCol;
	if (!strNewClickFillColor) strNewClickFillColor = this.clickFillCol;
	if (!strNewStrokeColor) strNewStrokeColor = this.strokeCol;
	if (!strNewStrokeWeight) strNewStrokeWeight = this.strokeW;

	this.statGrowing = true;
	this.statShrinking = false;
	this.intSteps = 3;
	if (!this.intOriginalLeft) this.intOriginalLeft = this.objShape.intLeft;
	if (!this.intOriginalTop) this.intOriginalTop = this.objShape.intTop;
	if (!this.intOriginalWidth) this.intOriginalWidth = this.objShape.intWidth;
	if (!this.intOriginalHeight) this.intOriginalHeight = this.objShape.intHeight;

	var intTMP = Math.ceil(intGrowPixels/(2*this.intSteps));
	intGrowPixels = intTMP * 2 * this.intSteps;

	this.intNewWidth = this.intOriginalWidth + intGrowPixels;
	this.intNewHeight = this.intOriginalHeight + intGrowPixels;


	this.intWidthDelta = Math.round((this.intNewWidth - this.intOriginalWidth)/this.intSteps);
	this.intHeightDelta = Math.round((this.intNewHeight - this.intOriginalHeight)/this.intSteps);

	if (!this.objContainer.id) this.objContainer.id = "objC_" + this.butID;

	hmlModInterface_buttonObject_animationPumpInternal(this.objContainer.id, boolChageColor, strNewFillColor, strNewOverFillColor, strNewClickFillColor, strNewStrokeColor, strNewStrokeWeight);
}
function hmlModInterface_buttonObject_animationPumpInternal(strContainerID, boolChageColor, strNewFillColor, strNewOverFillColor, strNewClickFillColor, strNewStrokeColor, strNewStrokeWeight) {
	var objContainer = getDocumentLayer(strContainerID);

	if (objContainer.objButton.butShape == "roundrect") {
		if (objContainer.objButton.statGrowing) {
			if (objContainer.objButton.objShape.intWidth >= objContainer.objButton.intNewWidth ||
				objContainer.objButton.objShape.intHeight >= objContainer.objButton.intNewHeight) {

				objContainer.objButton.objShape.redefine(objContainer.objButton.intNewWidth, objContainer.objButton.intNewHeight);

				if (boolChageColor)
					objContainer.objButton.modifyColors(strNewFillColor, strNewOverFillColor, strNewClickFillColor, strNewStrokeColor, strNewStrokeWeight);

				objContainer.objButton.statGrowing = false;
				objContainer.objButton.statShrinking = true;

				objContainer.objButton.animationTimer = setTimeout("hmlModInterface_buttonObject_animationPumpInternal('"+strContainerID+"',"+boolChageColor+",'"+strNewFillColor+"','"+strNewOverFillColor+"','"+strNewClickFillColor+"','"+strNewStrokeColor+"',"+strNewStrokeWeight+")", 33, "JavaScript");
			}
			else {
				objContainer.objButton.objShape.moveRel(Math.round((-objContainer.objButton.intWidthDelta)/2),
														Math.round((-objContainer.objButton.intHeightDelta)/2));

				objContainer.objButton.objShape.redefine(objContainer.objButton.objShape.intWidth + objContainer.objButton.intWidthDelta,
														 objContainer.objButton.objShape.intHeight + objContainer.objButton.intHeightDelta);

				objContainer.objButton.animationTimer = setTimeout("hmlModInterface_buttonObject_animationPumpInternal('"+strContainerID+"',"+boolChageColor+",'"+strNewFillColor+"','"+strNewOverFillColor+"','"+strNewClickFillColor+"','"+strNewStrokeColor+"',"+strNewStrokeWeight+")", 33, "JavaScript");
			}
		}
		else if (objContainer.objButton.statShrinking) {
			if (objContainer.objButton.objShape.intWidth <= objContainer.objButton.intOriginalWidth ||
				objContainer.objButton.objShape.intHeight <= objContainer.objButton.intOriginalHeight) {

				objContainer.objButton.objShape.moveTo(objContainer.objButton.intOriginalLeft, objContainer.objButton.intOriginalTop);
				objContainer.objButton.objShape.redefine(objContainer.objButton.intOriginalWidth, objContainer.objButton.intOriginalHeight);

				objContainer.objButton.statGrowing = false;
				objContainer.objButton.statShrinking = false;

				if (objContainer.objButton.afterAnimationPump) {
					objContainer.objButton.afterAnimationPump();
				}
			}
			else {

				objContainer.objButton.objShape.moveRel(Math.round(objContainer.objButton.intWidthDelta/2),
														Math.round(objContainer.objButton.intHeightDelta/2));

				objContainer.objButton.objShape.redefine(objContainer.objButton.objShape.intWidth - objContainer.objButton.intWidthDelta,
														 objContainer.objButton.objShape.intHeight - objContainer.objButton.intHeightDelta);

				objContainer.objButton.animationTimer = setTimeout("hmlModInterface_buttonObject_animationPumpInternal('"+strContainerID+"',"+boolChageColor+",'"+strNewFillColor+"','"+strNewOverFillColor+"','"+strNewClickFillColor+"','"+strNewStrokeColor+"',"+strNewStrokeWeight+")", 33, "JavaScript");
			}
		}
	}
	else {
		// No implementado
		objContainer.objButton.reDefineColors(strNewFillColor, strNewStrokeColor, strNewStrokeWeight);

		objContainer.objButton.fillCol = strNewFillColor;
		objContainer.objButton.overFillCol = strNewOverFillColor;
		objContainer.objButton.clickFillCol = strNewClickFillColor;

		objContainer.objButton.strokeCol = strNewStrokeColor;
		objContainer.objButton.strokeW = strNewStrokeWeight;
	}
}

function hmlModInterface_buttonObject_OverContents() {
	var objShape = this.shapeObject;
	var objButton = objShape.buttonObject;

	objButton.boolIsOver = true;

	if (objButton.afterAnimationPump) {
		objButton.afterAnimationPumpBkp = objButton.afterAnimationPump;
	}
	objButton.afterAnimationPump = function () {
		if (this.boolIsOver) {
			this.reDefineColors(this.overFillCol, this.strokeCol, this.strokeW);
		}
		if (this.afterAnimationPumpBkp) {
			this.afterAnimationPump = this.afterAnimationPumpBkp;
		}
	};
	objButton.animationPump();

	if (objButton.boolIsOver) {
		objButton.reDefineColors(objButton.overFillCol, objButton.strokeCol, objButton.strokeW);
	}
}
function hmlModInterface_buttonObject_OutOfContents() {
	var objShape = this.shapeObject;
	var objButton = objShape.buttonObject;

	objButton.boolIsOver = false;

	objButton.reDefineColors(objButton.fillCol, objButton.strokeCol, objButton.strokeW);
}
function hmlModInterface_buttonObject_mousedown() {
	var objShape = this.shapeObject;
	var objButton = objShape.buttonObject;

	objButton.reDefineColors(objButton.clickFillCol, objButton.strokeCol, objButton.strokeW);
}

//***********
// Ventana para interfaces, deshabilita el fondo
function hmlWindowInterface(strID, strTitle, strContents, intWidth, intHeight, sinArcPCT) {
    var strID, intZIndex;
    var strTitle, strContents, intWidth, intHeight, sinArcPCT;
    var strBlurrColor, intBlurrAlpha, strWindowColor, strWindowStroke, boolIsRound, boolAddGlow;
    var objShape, objGlow, objBlurryBack, objContainer;

    if (!strTitle) strTitle = "";
    if (!strContents) strContents = "&nbsp;";
    if (!intWidth) intWidth = 100;
    if (!intHeight) intHeight = 100;
    if (!sinArcPCT) sinArcPCT = 0.05;

	this.boolStroked = false;
    this.strID = strID;
    this.intZIndex = 1500;
    this.intWidth = intWidth;
    this.intHeight = intHeight;
    this.sinArcPCT = sinArcPCT;
    this.strTitle = strTitle;
    this.strContents = strContents;

    this.boolAddGlow = true;
    this.strBlurrColor = "#eeeeee";
    this.intBlurrAlpha = 75;

    this.strWindowColor = "#ffffff";
    this.strWindowStroke = "#000000";
    this.boolIsRound = true;

    this.stroke = function () {
		this.boolStroked = true;
        this.objBlurryBack = document.createElement("div");
        this.objBlurryBack.objWindowObject = this;
        this.objBlurryBack.id = "blrbck_" + this.strID;
        this.objBlurryBack.style.position = "absolute";
        this.objBlurryBack.style.left = "0";
        this.objBlurryBack.style.top = "0";
        this.objBlurryBack.style.width = "100%";
        this.objBlurryBack.style.height = "100%";
        this.objBlurryBack.style.backgroundColor = this.strBlurrColor;
        this.objBlurryBack.style.zIndex = this.intZIndex;
        setElementAlpha(this.objBlurryBack, this.intBlurrAlpha);
        document.body.appendChild(this.objBlurryBack);

        this.objContainer = document.createElement("div");
        this.objContainer.objWindowObject = this;
        this.objContainer.id = "rlCnt_" + this.strID;
        this.objContainer.style.position = "absolute";
        this.objContainer.style.left = "0";
        this.objContainer.style.top = "0";
        this.objContainer.style.width = "100%";
        this.objContainer.style.height = "100%";
        this.objContainer.style.backgroundColor = "transparent";
        this.objContainer.style.zIndex = this.intZIndex + 1;
        document.body.appendChild(this.objContainer);

        this.objBlurryBack.style.display = "none";
        this.objContainer.style.display = "none";

        this.objContainer.objMiniWindow = this;

		var objBrowInfo = getBrowserInformation();
		if (objBrowInfo.boolIsMSIE && objBrowInfo.IEVer < 7) this.boolAddGlow = false;

        if (this.boolAddGlow) this.addGlow();

        this.objShape = new objHMLShapesRect("srect_" + this.strID, this.objContainer, 0, 0, this.intWidth, this.intHeight, this.strWindowColor, (this.boolAddGlow)?"transparent":this.strWindowStroke, 1, 100, this.boolIsRound, true, this.strContents);
        this.objShape.sinArcPCT = this.sinArcPCT;

        this.objShape.afterFadeOut = function () {
            this.objContainer.style.display = "none";
			this.objContainer.objWindowObject.objBlurryBack.style.display = "none";
            //objElement_fadeout(this.objContainer.objWindowObject.objBlurryBack.id, 2, this.objContainer.objWindowObject.intBlurrAlpha);
        }

        this.objShape.show();
        this.objShape.hide();
        this.objWindowContents = this.objShape.objContents;
    }

    this.show = function () {
        this.objContainer.style.display = "";
        this.objShape.show();
    }

	this.hide = function () {
		this.objShape.fadeout();
	}

    this.addGlow = function () {
        this.objGlow = document.createElement("table");
        this.objGlow.border = 0;
        this.objGlow.cellSpacing = 0;
        this.objGlow.cellPadding = 0;
        this.objGlow.id = "tblGlow" + this.strID;
        this.objGlow.style.position = "absolute";
        this.objGlow.style.width = this.intWidth + 24;
        this.objGlow.style.height = this.intHeight + 24;

        var objRowTMP = this.objGlow.insertRow(this.objGlow.rows.length);
        var objCellTMP = objRowTMP.insertCell(0);
        objCellTMP.style.width = "20px";
        objCellTMP.style.height = "20px";
        if (this.boolIsRound) {
			preloadImage("images/strokeborders/glow_gray_roundtopleft.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_roundtopleft.png'>";
        }
        else {
			preloadImage("images/strokeborders/glow_gray_recttopleft.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_recttopleft.png'>";
        }

        objCellTMP = objRowTMP.insertCell(1);
        objCellTMP.style.fontSize = "1";
        objCellTMP.innerHTML = "&nbsp;";
		preloadImage("images/strokeborders/glow_gray_top.png");
        objCellTMP.style.backgroundImage = "url(images/strokeborders/glow_gray_top.png)";

        objCellTMP = objRowTMP.insertCell(2);
        objCellTMP.style.width = "20px";
        if (this.boolIsRound) {
			preloadImage("images/strokeborders/glow_gray_roundtopright.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_roundtopright.png'>";
        }
        else {
			preloadImage("images/strokeborders/glow_gray_recttopright.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_recttopright.png'>";
        }

        objRowTMP = this.objGlow.insertRow(this.objGlow.rows.length);
        objCellTMP = objRowTMP.insertCell(0);
        objCellTMP.style.width = "20px";
        objCellTMP.style.fontSize = "1";
        objCellTMP.innerHTML = "&nbsp;";
		preloadImage("images/strokeborders/glow_gray_left.png");
        objCellTMP.style.backgroundImage = "url(images/strokeborders/glow_gray_left.png)";

        objCellTMP = objRowTMP.insertCell(1);
        objCellTMP.style.fontSize = "1";
        objCellTMP.innerHTML = "&nbsp;";

        objCellTMP = objRowTMP.insertCell(2);
        objCellTMP.style.width = "20px";
        objCellTMP.style.fontSize = "1";
        objCellTMP.innerHTML = "&nbsp;";
		preloadImage("images/strokeborders/glow_gray_right.png");
        objCellTMP.style.backgroundImage = "url(images/strokeborders/glow_gray_right.png)";

        objRowTMP = this.objGlow.insertRow(this.objGlow.rows.length);
        objCellTMP = objRowTMP.insertCell(0);
        objCellTMP.style.width = "20px";
        objCellTMP.style.height = "20px";
        if (this.boolIsRound) {
			preloadImage("images/strokeborders/glow_gray_roundbottomleft.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_roundbottomleft.png'>";
        }
        else {
			preloadImage("images/strokeborders/glow_gray_rectbottomleft.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_rectbottomleft.png'>";
        }

        objCellTMP = objRowTMP.insertCell(1);
        objCellTMP.style.fontSize = "1";
        objCellTMP.innerHTML = "&nbsp;";
		preloadImage("images/strokeborders/glow_gray_bottom.png");
        objCellTMP.style.backgroundImage = "url(images/strokeborders/glow_gray_bottom.png)";

        objCellTMP = objRowTMP.insertCell(2);
        objCellTMP.style.width = "20px";
        if (this.boolIsRound) {
			preloadImage("images/strokeborders/glow_gray_roundbottomright.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_roundbottomright.png'>";
        }
        else {
			preloadImage("images/strokeborders/glow_gray_rectbottomright.png");
            objCellTMP.innerHTML = "<img src='images/strokeborders/glow_gray_rectbottomright.png'>";
        }

        this.objContainer.appendChild(this.objGlow);
    }

    this.mostrar = function (intWidth, intHeight) {
        if (intWidth || intHeight) {
            if (intWidth) this.intWidth = intWidth;
            if (intHeight) this.intHeight = intHeight;

            this.objShape.redefine(this.intWidth, this.intHeight);

            if (this.objGlow) {
                this.objGlow.style.width = this.intWidth + 24;
                this.objGlow.style.height = this.intHeight + 24;
            }
        }

		this.objContainer.style.display = "";

        var objInterfaceCoords = getObjAbsoluteCoordinates(this.objContainer);
        var objInterfaceDimms = getObjDimentions(this.objContainer);
        var objScrollInfo = getScrollInformation();

		var intLeft = Math.round((objInterfaceDimms["width"] - this.objShape.intWidth)/2);
        var intTop = Math.round((objInterfaceDimms["height"] - this.objShape.intHeight)/2);

        this.objShape.moveTo(intLeft, intTop);
        if (this.objGlow) {
            this.objGlow.style.left = intLeft - 12;
            this.objGlow.style.top = intTop - 12;
        }


        this.objContainer.style.top = objScrollInfo["top"];

        this.objBlurryBack.style.display = "";
        this.objBlurryBack.style.top = 0;
        this.objBlurryBack.style.left = 0;
        this.objBlurryBack.style.width = objScrollInfo["width"];
        this.objBlurryBack.style.height = objScrollInfo["height"];

        //objElement_fadein(this.objBlurryBack.id, 2, this.intBlurrAlpha);
        this.objShape.fadein();
		//this.objShape.show();
    }

    this.resetBlurryBackSize = function () {
        eval("resetBlurryBackSize('blrbck_" + strID + "')", 1, "JavaScript");
    }
	addResizeListener(this.resetBlurryBackSize);
}

function resetBlurryBackSize(strID) {
    var objTMP = getDocumentLayer(strID);

    objTMP.style.top = 0;
    objTMP.style.left = 0;
    objTMP.style.width = "100%";
    objTMP.style.height = "100%";
}

//**********Sideboxes**********
//Verifica si un numero es entero
function isEnteroSideBoxes(valor) {

    arrValor = valor.toString().split(".");

    if ( arrValor.length > 1 )
        return false;
    else
        return true;

}
//
function MultiploSideBoxes(altura, velocidad) {

    if( isEnteroSideBoxes( altura / velocidad) ) {
        return altura;
    }
    else {
        altura ++;
    }

    return MultiploSideBoxes( altura, velocidad );

}

function DivSideBoxesDisplay(obj) {

    if( (cantidad[obj] * 1) == 1) {

        setTimeout("DivSideBoxesMostrar('"+obj+"', '2')", 1);
        getDocumentLayer("img_"+obj).src="themes/enter/img/gm_first.png";
        var cod = obj.split("_");
        var objXHRMain = new hmlXHRObject();
        objXHRMain.open("adm_sideboxes.php?SideBoxesCod="+cod[1]+"&SideBoxesDisplay=on");
        objXHRMain.onStatusOK = function () {
            estatus = true;
        }
        objXHRMain.send();
    }
    if( (cantidad[obj] * 1) == (alturaMaxima[obj] * 1) ){

        setTimeout("DivSideBoxesOcultar('"+obj+"', '2')", 1);
        getDocumentLayer("img_"+obj).src="themes/enter/img/gm_last.png";
        var cod = obj.split("_");
        var objXHRMain = new hmlXHRObject();
        objXHRMain.open("adm_sideboxes.php?SideBoxesCod="+cod[1]+"&SideBoxesDisplay=off");
        objXHRMain.onStatusOK = function () {
            estatus = false;
        }
        objXHRMain.send();
    }

    if( (cantidad[obj] * 1) == 1 || (cantidad[obj] * 1) == (alturaMaxima[obj] * 1)) {
        incremento=(cantidad[obj]==1)?velocidad:-velocidad;
        tope=(cantidad[obj]==1)?alturaMaxima[obj]:1;
    }
    es=document.getElementById(obj);
    pe=obj;

    cantidad[obj]+=incremento;

    es.style.height=cantidad[obj]+"px";
    if(cantidad[obj]*1 != tope) {
        getDocumentLayer(obj).style.overflow="hidden";
        setTimeout("DivSideBoxesMostrar('"+obj+"', '1')", 1);

        setTimeout("DivSideBoxesDisplay('"+pe+"')",espera);
    }
    else {
        getDocumentLayer(obj).style.overflow="";
        if(cantidad[obj]==1){

            setTimeout("DivSideBoxesOcultar('"+obj+"', '1')", 1);

        }

    }

}

function DivSideBoxesOcultar(obj, paso){

    getDocumentLayer(obj+"_"+paso).style.display="none";

}

function DivSideBoxesMostrar(obj, paso){

    getDocumentLayer(obj+"_"+paso).style.display="";

}

var alturaMaxima = new Array();
var cantidad = new Array();
var velocidad = 10 //pixels por vez. alturaMaxima-cantidad tiene que ser múltiplo de velocidad.TENIA 5
var espera = 20 //Tiempo de espera entre cada movimiento
//cantidad=1;

//**********Sideboxes**********