/**********************************************************************************/
var browser = navigator.appName;
var sEmpty = '';
var gcLinkOn = 'trRMenuOn';
var gcLinkOff = "trRMenuOff";
var gcLinkSelected = "trRMenuSel";
var gcBlock = 'block';
var gcNone = 'none';

function getElement(psId)
{ 
	//if (browser == "Netscape")
	//	return document.all[aID];
	//else
	//return document.getElementById(aID);
	// declare element type
	if (psId == undefined)
		return document.getElementById(psId);
		
	var sarSuf = new Array('txt', 'ddl', 'rd', 'btn', 'fil', 'inp');
	var bOk = false;
	
	for(i = 0; i < sarSuf.length; i++) 
	{
		if (psId.indexOf(sarSuf[i]) > -1)
		{
			bOk = true;
			break;
		}
	}
	if (bOk)
	{
		var type = null;
		// loop through forms on HTML page
		for (var x = 0; x < document.forms.length; x++)
		{
			// loop through each element on form
			for (var y = 0; y < document.forms[x].elements.length; y++){
				// define element type
				type = document.forms[x].elements[y].type
				// alert before erasing form element
				// alert('form='+x+' element='+y+' type='+type);
				// switch on element type
				if (document.forms[x].elements[y].name.indexOf(psId) > -1)
					return document.forms[x].elements[y];
			}
		}
	}
	else
	{
		return document.getElementById(psId);
	}
}

function getElementsByClass(psSearchClass, poNode, psTag)
{
	var arElements = new Array();
	if (poNode == null )
		poNode = document;
	if (psTag == null )
		psTag = '*';
	var oElements = poNode.getElementsByTagName(psTag);
	var iElements = oElements.length;
	for (i = 0, j = 0; i < iElements; i++)
	{
		if (doValidSuf(psSearchClass, oElements[i].className))
		{
			arElements[j] = oElements[i].id;
			j++;
		}
	}
	return arElements;
}

function doValidSuf(psSearch, psToCompare)
{
	var oRegExp = new RegExp("(^|\\s)" + psSearch + "(\\s|$)");
	if (oRegExp.test(psToCompare))
		return true;
	else
		return false;
}

function doSearch(psSearch, psToCompare)
{
	var oRegExp = new RegExp("/" + psSearch + "/");
	if (oRegExp.test(psToCompare))
		return true;
	else
		return false;
}

function doChange(poThis, psClass)
{
	poThis.className = psClass;
}

// Extract from: http://www.redips.net/javascript/clear-form/
// function will clear input elements on each form
function doClearForms(){
	// declare element type
	var type = null;
	// loop through forms on HTML page
	for (var x=0; x<document.forms.length; x++)
	{
		// loop through each element on form
		for (var y=0; y<document.forms[x].elements.length; y++){
			// define element type
			type = document.forms[x].elements[y].type
			// alert before erasing form element
			// alert('form='+x+' element='+y+' type='+type);
			// switch on element type
			switch(type)
			{
				case "text":
				case "textarea":
				case "password":
				//case "hidden":
					document.forms[x].elements[y].value = "";
					break;
				case "radio":
				case "checkbox":
					document.forms[x].elements[y].checked = "";
					break;
				case "select-one":
					if (document.forms[x].elements[y].options.length > 0)
						document.forms[x].elements[y].options[0].selected = true;
					break;
				case "select-multiple":
					for (z=0; z<document.forms[x].elements[y].options.length; z++)
					{
						document.forms[x].elements[y].options[z].selected = false;
					}
					break;
			}
		}
	}
}

function doGoto(psURL)
{
	if (doValidSuf('facebook', psURL))
		window.open(psURL, 'Facebook', '');
	else
		window.location = psURL;
}

function doGoToPage( piNumber, piFor)
{
	var objTable;
	
	for(iNext = 1; iNext <= piFor; iNext++)
	{
		objTable = getElement('tbl' + iNext);
		if (objTable != null)
		{
			objTable.style.display = gcNone;
			var oTd = getElement['td' + iNext];
			if (oTd != null)
			{
				with (oTd)
				{
					className = gcLinkOff;
					onmouseover = function() {doChange(this, gcLinkOn);}
					if (iNext == piNumber)
					{
						onmouseout = function() {doChange(this, gcLinkSelected);}
					}
					else
					{
						onmouseout = function() {doChange(this, gcLinkOff);}
					}
				}
			}
			objTable = null;
		}
		else
		{
			break;
		}
	}
	objTable = getElement('tbl' + piNumber);
	if (objTable != null)
	{
		objTable.style.display = gcBlock;
	}
	objImg = getElement('imgLeft');
	if (objImg != null)
	{
		objImg.src = "images/img_prod" + (piNumber + 1) + ".jpg";
	}
	
	var oTd = getElement['td' + piNumber];
	if (oTd != null)
	{
		with (getElement['td' + piNumber])
		{
			onmouseover = function() {doChange(this, gcLinkOn);}
			onmouseout = function() {doChange(this, gcLinkSelected);}
		}
	}
	window.scrollTo(0, 0);
}

function doPublicity(piOpt)
{
	var oDiv = getElement('divBanner')
	if (!oDiv) return;
	var arPos = getPosition(oDiv);
	var iLeft = arPos[0];
	var iTop = arPos[1];

	switch(piOpt)
	{
		case 1:
			iLeft += 469;
			break;
		case 2:
			iLeft += 500;
			break;
		case 3:
			iLeft += 531;
			break;
		case 4:
			iLeft += 562;
			break;
		case 5:
			iLeft += 593;
			break;
	}
	iTop += 201;
	
	oDiv = getElement('divSel' + piOpt);
	oDiv.style.left = iLeft + 'px';
	oDiv.style.top = iTop + 'px';
}

function doAddDivs(piOpt)
{
	var sDiv = sEmpty;
	var oFrm = getElement(document.forms[0].id);
	switch(piOpt)
	{
		case 1:
			sDiv = '<div id="divAdvertisment">No se que es lo que tengo que poner en este div. Solo c que lo tengo que agregar.</div>';
			break;
		case 2:
			sDiv = '<div id="divHowWeAre">Aqui tengo que poner otra cosa que no se que por lo que no tengo idea como se vera.</div>';
			break;
		case 3:
			sDiv = '<map name="mapLogo"><area href="index.html" shape="rect" coords="7, 103, 180, 75" alt="here" /></map>';
			break;
	}
	oFrm.innerHTML = sDiv + oFrm.innerHTML;
}

function doMagazine(piOpt)
{
	var oImg;
	var oHdnImgId = getElement('hdnImgId');
	var oHdnImgPath = getElement('hdnImgPath');
	var bFound = false;

	if (getElement('imgMagazine'))
		oImg = getElement('imgMagazine');
	else if (typeof zoomid != 'undefined')
	{
		oImg = getElement(zoomid);
		bFound = true;
	}

	if (!oImg) return;

	var arFiles = getElement('hdnFiles').value.split('~');
	var arDirs = getElement('hdnDirs').value.split('~');
	var iDir = doGetMaxDir(arDirs);
	var sDir = arDirs[iDir];
	var iPosDir = 0;
	var iPosDot = 0;
	var iPosFile = 0;
	var iImg = 0;
	var i = 0;
	var j = 0;
	var sImg = sEmpty;
	
	// Sum 13 becuase are 6 characters from Dir plus slash plus 6 charcaters from sufijo.
	if (bFound)
	{
		iPosDir = oHdnImgPath.value.indexOf(sDir) + 13;
		iPosDot = oHdnImgPath.value.indexOf('.', iPosDir + 1);
		iImg = parseInt(oHdnImgPath.value.substring(iPosDir, iPosDot), 10);
		iImg = (isNaN(iImg)) ? 0: iImg;
	}
	else
	{
		iPosDir = oImg.src.indexOf(sDir) + 13;
		iPosDot = oImg.src.indexOf('.', iPosDir + 1);
		iImg = parseInt(oImg.src.substring(iPosDir, iPosDot), 10);
		iImg = (isNaN(iImg)) ? 0: iImg;
	}
	
	for(i = 0; i < arFiles.length; i++)
	{
		iPosDir = arFiles[i].indexOf(sDir);
		if (iPosDir > -1)
		{
			iImg += i;
			switch(piOpt)
			{
				case 1: // Next
					iImg += 1;
					break;
				case 2: // Back
					iImg -= 1;
					break;
				default:
					break;
			}
			break;
		}
	}

	if (piOpt == 0)
	{
		if (bFound)
		{
			oHdnImgPath.value = doGetMinFile(arFiles, sDir);
		}
		else
		{
			oImg.src = doGetMinFile(arFiles, sDir);
		}
	}
		
	if (iImg < arFiles.length && piOpt != 0)
	{
		sImg = arFiles[iImg];
		iPosFile = sImg.indexOf(sDir);
		if (iPosFile > -1)
		{
			if (bFound)
			{
				oHdnImgPath.value = sImg;
			}
			else
			{
				oImg.src = sImg;
			}
		}
	}

	oHdnImgId.value = 'imgMagazine';
	if (!bFound)
	{
		oHdnImgPath.value = oImg.src;
	}
	else
	{
		oDiv = getElement(zoomid);
		oDiv.id = 'divMagazine';
		//oDiv.style.float = 'left';
		//oDiv.onmouseover = 'doImg(event);';
		//oDiv.onmousemove = 'doZoomMove(event);';
		//oDiv.onmouseout = 'doZoomOff();';
		zoomid = '';
		oDiv.innerHTML = '<img id="imgMagazine" src="' + oHdnImgPath.value + '" width="624px" height="360px" align="absmiddle" src="" style="padding:0;margin:0;border:0" />'
	}
}

function doGetMaxDir(parDirs)
{
	var iBubble = 0;
	var iMax = 0;
	var iPos = 0;
	
	for(iBubble = 0; iBubble < parDirs.length; iBubble ++)
	{
		if (iMax < parseInt(parDirs[iBubble]))
		{
			iMax = parseInt(parDirs[iBubble]);
			iPos = iBubble;
		}
	}
	return iPos;
}

function doGetMinFile(parFiles, psDir)
{
	var iBubble = 0;
	var iMin = 0;
	var iPos = 0;
	var iFound = 0;
	var iPosDir = 0;
	var iPosDot = 0;
	var iImg = 0;
	var sImg = '';
	for(iBubble = 0; iBubble < parFiles.length; iBubble ++)
	{
		iFound = parFiles[iBubble].indexOf(psDir);
		iPosDir = parFiles[iBubble].indexOf(psDir) + 13;
		iPosDot = parFiles[iBubble].indexOf('.', iPosDir + 1);
		iImg = parseInt(parFiles[iBubble].substring(iPosDir, iPosDot), 10);

		if (iFound > 0 && iMin >= iImg)
		{
			iMin = iImg;
			sImg = parFiles[iBubble];
		}
	}
	return sImg;
}

function doOtherEditions(piOpt)
{
	var oImg = getElement('imgOE');
	if (!oImg) return;
	
	var arFiles = getElement('hdnFiles').value.split('~');
	var arDirs = getElement('hdnDirs').value.split('~');
	var sDir = sEmpty;
	var iPosDir = 0;
	var iPosDot = 0;
	var i = 0;
	
	iPosDir = oImg.src.indexOf('magazine') + 16;
	iPosDot = oImg.src.indexOf('.', iPosDir + 1) - 3;
	sDir = oImg.src.substring(iPosDir, iPosDot)
	
	if (piOpt == 0)
	{
		oImg.src = arFiles[0];
		return
	}
	
	for(i = 0; i < arDirs.length; i++)
	{
		if (arDirs[i] == sDir)
		{
			switch(piOpt)
			{
				case 1: // next
					i ++;	
					break;
				case 2: // back
					i --;
					break;
				default:
					oImg.src = arFiles[0];
					break;
			}
			if (i < arDirs.length && i > -1)
				oImg.src = arFiles[i];
				
			break
		}
	}
}

function doShowDiary(piOpt, piId)
{
	var oImg = getElement('imgDiary');
	var arSrc = oImg.src.split('/');
	var sSrc = arSrc[arSrc.length - 1]; // Get last element
	var iDir = parseInt(arSrc[arSrc.length - 2], 10); // Get before last element
	var ilFor = 0;
	
	switch(piOpt)
	{
		case 1: // Click On Img
			sSrc = oImg.src;
			sSrc = sSrc.substring(0, sSrc.indexOf(arSrc[arSrc.length - 1]));
			sSrc += (iDir.toString.length == 1) ? '0' + iDir : iDir;
			sSrc += (piId.toString.length == 1) ? '0' + piId : piId;
			sSrc += '.jpg';
			oImg.src = sSrc;
			break;
		case 2: // Click On Next or Back
			if ((iDir + piId) > -1 && (iDir + piId) < 4)
			{
				var sDir = ((iDir + piId).toString.length == 1) ? '0' + (iDir + piId) : (iDir + piId);
				
				var oTbl = getElement('tbl' + iDir);
				oTbl.style.display = 'none';
				
				sSrc = oImg.src;
				sSrc = sSrc.substring(0, sSrc.indexOf(arSrc[arSrc.length - 2]));
				sSrc += sDir + '/';
				sSrc += sDir + '00.jpg';
				oImg.src = sSrc;
				
				for(ilFor = 0; ilFor < 5; ilFor++)
				{
					var oImg = getElement('imgDiary' + ilFor);
					arSrc = oImg.src.split('/');
					sSrc = oImg.src;
					sSrc = sSrc.substring(0, sSrc.indexOf(arSrc[arSrc.length - 2]));
					sSrc += sDir + '/icon';
					sSrc += sDir;
					sSrc += (ilFor.toString.length == 1) ? '0' + ilFor : ilFor;
					sSrc += '.jpg';
					oImg.src = sSrc;
				}
				oTbl = getElement('tbl' + (iDir + piId));
				oTbl.style.display = 'block';
			}
			break;
	}
}

function doShowCourse(piId)
{
	var oImg = getElement('imgCourse');
	var arSrc = oImg.src.split('/');
	var sSrc = arSrc[arSrc.length - 1]; // Get last element
	var iDir = parseInt(arSrc[arSrc.length - 2], 10); // Get before last element
	var ilFor = 0;
	
	if ((iDir + piId) > -1 && (iDir + piId) < 9)
	{
		var sDir = ((iDir + piId).toString.length == 1) ? '0' + (iDir + piId) : (iDir + piId);
		
		var oTbl = getElement('tbl' + iDir);
		oTbl.style.display = 'none';
		
		sSrc = oImg.src;
		sSrc = sSrc.substring(0, sSrc.indexOf(arSrc[arSrc.length - 2]));
		sSrc += sDir + '/';
		sSrc += sDir + '00.jpg';
		oImg.src = sSrc;
		oTbl = getElement('tbl' + (iDir + piId));
		oTbl.style.display = 'block';
	}
}

function doZoom(piId)
{
	var olDivDC = getElement('divDisableControls');
	var olImgZoo = getElement('imgZoom');
	var olImgMag = getElement('imgGift' + piId);
	var iPos = olImgMag.src.indexOf('icon');
	var sSrc = sEmpty;
	
	sSrc = olImgMag.src.substring(0, iPos) + piId + '.jpg';
	olImgZoo.src = sSrc;
	olDivDC.style.height = doGetHeightPage();
	olDivDC.style.visibility = 'visible';
	olDivDC.style.display = 'block';
	
	doCenterDiv();	
}

function doImg(pevt)
{
	var oImg;
	if (getElement('imgMagazine'))
		oImg = getElement('imgMagazine');
	else if (typeof zoomid != 'undefined')
		oImg = getElement(zoomid);
		
	if (oImg)
		doZoomOn(pevt, 624, 360, oImg.src);
}

function doValidData(piSection)
{
	var oTxt;
	var bOk = true;
	switch(piSection)
	{
		case 1:
			bOk = doDataValue("txtName", "Por favor escriba su nombre", 1);
			if (bOk)
			{
				bOk = doDataValue("txtCEI", "Por favor escriba el nombre del Colegio, Escuela o Instituto", 1);
			}
			if (bOk)
			{
				bOk = doDataValue("txtPhone", "Por favor escriba su telefono con LADA", 1);
			}
			if (bOk)
			{
				bOk = doDataValue("txtPhone", "Por favor escriba solo numeros para el telefono", 2);
			}
			if (bOk)
			{
				bOk = doDataValue("txtCity", "Por favor escriba la ciudad desde donde nos escribe", 1);
			}
			if (bOk)
			{
				bOk = doDataValue("txteMail", "Por favor escriba su e-mail", 1);
			}
			if (bOk)
			{
				bOk = doDataValue("txteMail", "", 3);
			}
			break;
			
		case 2:
			bOk = doDataValue("txtMsg", "Escriba el mensaje", 1);
			break;
	}
	return bOk;
}

function doDataValue(psObjName, psMsg, piType)
{
	var bOk = true;
	
	oTxt = getElement(psObjName);
	switch (piType)
	{
		case 1: // String
			if (oTxt.value.length == 0)
			{
				bOk = false;
			}
			break;
			
		case 2: // Numbers		
			if(isNaN(oTxt.value))
			{
				bOk = false;
			}
			break;
		
		case 3: // Email
			bOk = doCheckMail(oTxt.value)
			if (bOk == false)
			{
				oTxt.focus();
			}
			break;
	}
	if (bOk == false && piType < 3)
	{
		alert(psMsg);
		oTxt.focus();
		oTxt.select();
	}
	
	return bOk;
}

function doCheckMail(psEmailAddress)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(psEmailAddress))
	{
		return(true);
	}
	else 
	{
		alert('Direccion de email incorrecta (usuario@dominio.extension)');
		return(false);
	}
}

function doOnLoad()
{
	//doAddDivs(1);
	//doAddDivs(2);
	doAddDivs(3);
	doCreateMenu('H');
	doCreateMenu('V');
	for(iPub = 1; iPub <= 5 ; iPub++)
	{
		doPublicity(iPub);
	}
	doMagazine(0);
	doOtherEditions(0);
	doRotateBanner();
	oBannerId = setInterval("doRotateBanner()", 10000);
}

// extract fuction from:
// http://www.sitepoint.com/article/life-autocomplete-textboxes/2
function doTextboxSelect(oTextbox, iStart, iEnd)
{ 
	switch(arguments.length)
	{
		case 1: 
			oTextbox.select(); 
			break; 

		case 2: 
			iEnd = oTextbox.value.length; 
			/* falls through */ 

		case 3:          
			if (isIE)
			{
				var oRange = oTextbox.createTextRange();
				oRange.moveStart("character", iStart);
				oRange.moveEnd("character", -oTextbox.value.length + iEnd);
				oRange.select();
			}
			else if (isMoz)
			{
				oTextbox.setSelectionRange(iStart, iEnd);
			}
	} 

   oTextbox.focus(); 
}

function doPreLoad(images) {
    if (document.images) {
        var i = 0;
        var imageArray = new Array();
        imageArray = images.split('~');
        var imageObj = new Image();
        for(i=0; i<=imageArray.length-1; i++) {
            //document.write('<img src="' + imageArray[i] + '" />');// Write to page (uncomment to check images)
            imageObj.src=images[i];
        }
    }
}

//Funcion para numeros decimales (solo permite teclear un punto)
function isNumberKeyAndOneDot(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode	
	if ((charCode > 47 && charCode < 60) || charCode == 46 && evt.srcElement.value.indexOf('.') == -1 )
	{
		return true;
	}
	
	return false;
}

function isOnlyNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode	
	if ((charCode > 47 && charCode < 60))
	{
		return true;
	}
	
	return false;
}

function rand(min, max)
{
	var offset = min;
	var range = (max - min) + 1;

	var randomNumber = Math.floor( Math.random() * range) + offset;
	return randomNumber;
}

// Extract from: ----> http://www.codestore.net/store.nsf/unid/BLOG-20060313
String.prototype.trim = function()
{
	a = this.replace(/^\s+/, sEmpty);
	return a.replace(/\s+$/, sEmpty);
};

// Extract from: ----> http://www.webdeveloper.com/forum/showthread.php?t=220816
if (!document.getElementsByClassName) {
	document.getElementsByClassName = function (cn)
	{ 
		var rx = new RegExp("(?:^|\\s)" + cn+ "(?:$|\\s)");
		var allT = document.getElementsByTagName("*"), allCN = [], ac="", i = 0, a;
		while (a = allT[i = i + 1])
		{
			ac=a.className;
			if ( ac && ac.indexOf(cn) !== -1)
			{
				if(ac===cn)
				{
					allCN[allCN.length] = a;
					continue;
				}
				rx.test(ac) ? (allCN[allCN.length] = a) : 0;
			}
		}
		return allCN;
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
window.onload = doOnLoad;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
