<!--

function isDefined(variable)
{
	return eval('(typeof('+variable+') != "undefined" && typeof('+variable+') != "unknown");');
}

//Esta funcion requiere haber cargado la libreria del lytebox
function OpenMediaScreen()
{
	window.scrollTo(0, 0);
	
	//Crear link para abrir modales
	var windowLink = this.document.createElement('a');
	windowLink.setAttribute('rel', 'lyteframe');
	windowLink.setAttribute('rev', 'width: 580px; height: 500px; scrolling: auto;');
	windowLink.setAttribute('title', '');
	windowLink.setAttribute('href', '/media/modal_videos.asp?flg=' + get_random());
	
	myLytebox.start(windowLink, false, true);
}

//Esta funcion requiere haber cargado la libreria del lytebox
function OpenInfoRequestScreen()
{
	window.scrollTo(0, 0);
	
	//Crear link para abrir modales
	var windowLink = this.document.createElement('a');
	windowLink.setAttribute('rel', 'lyteframe');
	windowLink.setAttribute('rev', 'width: 550px; height: 500px; scrolling: auto;');
	windowLink.setAttribute('title', 'Information Request');
	windowLink.setAttribute('href', '/study-abroad-programs/modal_request-information.asp?flg=' + get_random());
	
	myLytebox.start(windowLink, false, true);
}

//Esta funcion requiere haber cargado la libreria del lytebox
function OpenModalWindow(pageURL, pageTitle, windowHeight)
{
	window.scrollTo(0, 0);
	
	if(windowHeight==null) windowHeight = '500';
	
	//Crear link para abrir modales
	var windowLink = this.document.createElement('a');
	windowLink.setAttribute('rel', 'lyteframe');
	windowLink.setAttribute('rev', 'width: 550px; height: '+windowHeight+'px; scrolling: auto;');
	windowLink.setAttribute('title', pageTitle);
	windowLink.setAttribute('href', pageURL + '?flg=' + get_random());
	
	myLytebox.start(windowLink, false, true);
}

function OpenFNVideo()
{
	window.scrollTo(0, 0);
	
	//Crear link para abrir modales
	var windowLink = this.document.createElement('a');
	windowLink.setAttribute('rel', 'lyteframe');
	windowLink.setAttribute('rev', 'width: 480px; height: 390px; scrolling: auto;');
	windowLink.setAttribute('title', 'Listen to the opinions of former Forum-Nexus participants!');
	windowLink.setAttribute('href', 'http://www.youtube.com/embed/mypbEsWOMPo?autoplay=1');
	
	myLytebox.start(windowLink, false, true);
	
}

function DeleteAllTableRows(idTableBody)
{
	var tbody =  GetElement(idTableBody);
	while (tbody.rows.length > 0)
		tbody.deleteRow(0);
}

function GetNodeValue(nodeObject, nullReplaceStr)
{
	var returnValue = null;
	
	if(typeof nodeObject == 'object') {
		if (nodeObject.firstChild != null)
			returnValue =  nodeObject.firstChild.nodeValue;
		else
			returnValue = null;
	}
	
	if(nullReplaceStr != null && returnValue == null)
		returnValue = nullReplaceStr;
	
	return returnValue;
}

//Verificar si una direccion de correo esta escrita correctamente
function isEmailValid(email) 
{ 
    return /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w{2,}$/.test(email); 
} 

//inputParam in format mm/dd/yyyy
function isDateValid(inputParam)
{
	if(inputParam != '') 
	{
		inputParam = replaceAll(inputParam,'-','/'); 
		
		// regular expression to match required date format 
		re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/; 
	 
		if(regs = inputParam.match(re)) 
		{ 
			var dteDate;
			//javascript months start at 0 (0-11 instead of 1-12)
			dteDate = new Date(regs[3],regs[1]-1, regs[2]);
			
			return ((regs[2]==dteDate.getDate()) && (regs[1]-1==dteDate.getMonth()) && (regs[3]==dteDate.getFullYear()));
		}
		else
			return false;
	} 
	else 
		return false;	
}

function CleanHTMLToClient(textToClean, ControlToStore)
{
	Resultat=""
	Resultat = textToClean.replace(/<br>/gi, String.fromCharCode(10));
	if(ControlToStore!=null && ControlToStore.value!=null)
		ControlToStore.value = Resultat;
}


//Get form element value
function GetTagValue(elementID)  //obj,use_default,delimiter
{
	var use_default = false;
	var delimiter = ',';
	
	if (elementID == '')
		return null;
	
	var lclObj = GetElement(elementID);
	
	if(null==lclObj)
		return null;
		
	switch(lclObj.type)
	{
		case 'radio': 
		case 'checkbox': 
			return(((use_default)?lclObj.defaultChecked:lclObj.checked)?lclObj.value:null);
		
		case 'text': 
		case 'hidden': 
		case 'textarea': 
		case 'file':
			return(use_default)?lclObj.defaultValue:lclObj.value;
		
		case 'password': 
			return((use_default)?null:lclObj.value);
		case 'select-one':
			if(lclObj.options==null)
			{
				return null;
			}
			if(use_default)
			{
				var o=lclObj.options;
				for(var i=0;i<o.length;i++)
				{
					if(o[i].defaultSelected)
					{
						return o[i].value;
					}
				}
				return o[0].value;
			}
			if(lclObj.selectedIndex<0)
			{
				return null;
			}
			return (lclObj.options.length>0)?lclObj.options[lclObj.selectedIndex].value:null;
			
		case 'select-multiple':
			if(lclObj.options==null)
			{
				return null;
			}
			var values=new Array();
			for(var i=0;i<lclObj.options.length;i++)
			{
				if((use_default&&lclObj.options[i].defaultSelected)||(!use_default&&lclObj.options[i].selected))
				{
					values[values.length]=lclObj.options[i].value;
				}
			}
			
			return(values.length==0)?null:CommifyArray(values,delimiter);
	}
			
	//alert("FATAL ERROR: Field type "+lclObj.type+" is not supported for this function");
	return null;
}

//Set form element value
function SetTagValue(elementID, newValue)  //obj,use_default,delimiter
{
	if (elementID == '')
		return;
	
	var lclObj = GetElement(elementID);
	
	if(null==lclObj)
		return;
		
	switch(lclObj.type)
	{
		//case 'radio': 
		case 'checkbox': 
			lclObj.checked = (newValue == true || newValue == 'True' || newValue == '1');

		case 'text': 
		case 'hidden': 
		case 'textarea':
		case 'button':
			lclObj.value = newValue;
		
		case 'select-one':
			if(lclObj.options==null)
				return;
			
			var o=lclObj.options;
			for(var i=0;i<o.length;i++)
			{
				if(o[i].value == newValue)
				{
					lclObj.selectedIndex = i;
					break;
				}
			}
			
		//case 'select-multiple':
	}
		
}

//Get Element (Object) found by its ID
function GetElement(tagId) 
{
	var lclObj = document.getElementById(tagId);
	if(lclObj && lclObj.length && lclObj[0].id==tagId)
		lclObj=lclObj[0];
	return lclObj;
}

function EncodeHTMLToServer(textToEncode, ControlToStore)
{
	Resultat=""
	for (i=0;i<textToEncode.length;i++)
	{
		numer=textToEncode.charCodeAt(i);
		if((numer==13)&&(textToEncode.charCodeAt(i+1)==10))
			{
				i++;
				Resultat += '<br>';
			}
		else
			Resultat += String.fromCharCode(numer);			
	}
	if(ControlToStore!=null && ControlToStore.value!=null)
		ControlToStore.value = Resultat;
}

function openModal(){
if (window.showModalDialog('mensajes/modalControl.asp','dialogHeight: 160px; dialogWidth: 600px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: No; resizable: No; status: No;'))
	document.location.href = 'controlModule.asp';
}

function OpenWindow(target){ 
popupWin = window.open(target, "Impresiones", "toolbar=yes,directories=no,status=no,menubar=yes,width=850,height=450,left=30,top=30"); 
popupWin.focus(); 
}

function OpenWindow2(target){ 
popupWin = window.open(target, "Impresiones", "toolbar=yes,directories=no,status=no,scrollbars=yes,menubar=yes,width=750,height=450,left=30,top=30"); 
popupWin.focus(); 
}


function switchRowColor(objectID, highlightcolor)
{
		var object = document.getElementById(objectID);
		if (object.tagName == "TD")
			var row = object.parentElement;
		else
			var row =object;

		if (!row.highlighted)
		{
			row.highlighted = true;
			row.originalBackgroundColor=row.style.backgroundColor;
			row.style.backgroundColor=highlightcolor;
		}
		else
		{
			row.highlighted = false;
			row.style.backgroundColor=row.originalBackgroundColor;
		}
}

function highlightRowColor(objectID, highlightcolor, on)
{
		var row = document.getElementById(objectID);
			
		if (on)
		{
			row.originalBackgroundColor2=row.style.backgroundColor;
			row.style.backgroundColor=highlightcolor;
		}
		else
		{
			row.style.backgroundColor=row.originalBackgroundColor2;
		}
}

//Hides and appears description and editable elements, to activate EDIT pages.
function switchEditElements(startEdit){	
	var elements = document.getElementsByTagName('span')
	if (startEdit)
	{
		for (i=0; i<elements.length; i++){
			if(elements[i].id.substr(0,5)=='show_')
				elements[i].style.display = 'none';
			if(elements[i].id.substr(0,5)=='edit_')
				elements[i].style.display = '';
		}
	}
	else
	{
		for (i=0; i<elements.length; i++){
			if(elements[i].id.substr(0,5)=='edit_')
				elements[i].style.display = 'none';
			if(elements[i].id.substr(0,5)=='show_')
				elements[i].style.display = '';
		}
	}
}


//function onKeyPress(DataType, MinValue, MaxValue){
function onKeyPress(event,DataType){
	//TAB and ENTER keys accepted
	if (event.keyCode==9||event.keyCode==13)
		return;
	if (DataType==3&&event.keyCode==46)
		return;
	//digits accepted
	if (event.keyCode<48 || event.keyCode>57)
		event.returnValue = false;
}

function onKeyDown(event, element){
	if (event.keyCode==13)
		event.keyCode=9;
}

function getArticlePrice(ArticleCode, RowId){
		var FactorLocal = 1;
		if (Factor)
			FactorLocal = Factor;
		if (ArticleCode.length==0)
			return;
		if (PriceList[ArticleCode])
		{
			var price = PriceList[ArticleCode] * FactorLocal;
			price = Math.round(price*100)/100;
			price = price.toString();
			splitprice = price.split('.');
			if (splitprice[1])
			{
					for (i=0; i<(2-splitprice[1].length); i++)
						price = price + '0';
			}
			else
				price = price + '.00';
			eval('document.formaminisuper.costo_'+RowId+'.value = price');
		}
		else
		{
			eval('document.formaminisuper.costo_'+RowId+'.value = \'inválido\'');
			eval('document.formaminisuper.costo_'+RowId+'.select()');
		}
}


function ComboBox_GetTextByValue(tagId, value)
{
	if(tagId==null) return '';
	if(tagId=='undefined') return '';
	var comboObj = GetElement(tagId);
	
	for(var i=comboObj.options.length-1; i>=0; i--)
	{
		if (comboObj.options[i].value == value)
		{
			return comboObj.options[i].text;
		}
	}
	return '';
}

//-------------- new Validation Functions

//Validates a value against a regular expression and limit values
function ValueValidator(stringRegExp, inputValue, selectionRange, OldValue, DecimalSeparator, MinValue, MaxValue){
	var validation = true;
	var objRegExp = new RegExp(stringRegExp.toString());
	var endIndex = selectionRange.text.length;
	while(selectionRange.expand("character")){}
	var startIndex = OldValue.length - selectionRange.text.length;
	endIndex = endIndex + startIndex;
	var newValueCandidate = OldValue.substring(0,startIndex) + inputValue + OldValue.substring(endIndex,OldValue.length);
	if(!objRegExp.test(newValueCandidate))
		return false;
	else
	{
		//Validate for MinValue and MaxValue
		if (MinValue!=null || MaxValue!=null)
		{
			var CompareNum = parseFloat(newValueCandidate.replace(DecimalSeparator,'.'));
			if (MinValue!=null && CompareNum < MinValue) validation = false;
			if (MaxValue!=null && CompareNum > MaxValue) validation = false;
			return validation;
		}
		else
			return true;
	}
}

//Validates Currency Values
function ValidateCurrency(InputObj, minvalue, maxvalue){
	var key = window.event.keyCode;
	var selectionRange = document.selection.createRange ();
	var TextBoxValue = InputObj.value;
	
	var DecimalSeparator = '.';
	var DecimalDigits = 2;
	var MinValue = minvalue;
	var MaxValue = maxvalue;
	var NegativeSign = "";
	if (MinValue < 0) var NegativeSign = "-?";
	
	var stringRegExp = "(^"+NegativeSign+"\\d*\\"+DecimalSeparator+"?\\d{0,"+DecimalDigits+"}$)";
	if (!ValueValidator(stringRegExp, String.fromCharCode(key), selectionRange, TextBoxValue, DecimalSeparator, MinValue, MaxValue))
		event.keyCode = 0;	
}

//Validates Clipboard against a regular expression to allow or deny pasting it in the TextBox
function ValidateClipboard(InputObj, minvalue, maxvalue, DataType){
//	var Clipboard = igtbl_trim(window.clipboardData.getData("Text"));
	var ClipBoard = window.clipboardData.getData("Text");
	if (!event || Clipboard.length==0 || Clipboard == undefined) return;
	
	var selectionRange = document.selection.createRange ();
	var TextBoxValue = this.value;
		
	var MinValue = minvalue;
	var MaxValue = maxvalue;
		var NegativeSign = "";
	// Allow for negative sign to be approved by Regular Expression
	if (MinValue < 0) var NegativeSign ="-?";
	
	switch(DataType){
		case 3: //Currency
			var stringRegExp = "(^-?\\d*\\.?\\d{0,2}$)";
			if (!ValueValidator(stringRegExp, Clipboard, selectionRange, TextBoxValue, Culture.CurrencyDecimalSeparator, MinValue, MaxValue))
				event.returnValue = false;
			break;
	}	
	return;
}

function Format(num,decimaldigits,symbol,dot,groupseparator,groupdigits, percentFormat)
{
	if (num == undefined || num == null)
		return '';
	
	var lclDecimalDigits = 1;
	for (var i=0; i<decimaldigits; i++)
		lclDecimalDigits = lclDecimalDigits * 10;
	var RegularExp = new RegExp("/\\" + symbol + "|\\" + groupseparator + "/g");
	num = num.toString().replace(RegularExp,'');
	num = num.replace(dot,'.');	//replace decimal separator with '.' for Math class properties
	if(isNaN(num)) return "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*lclDecimalDigits+0.50000000001);
	cents = num%lclDecimalDigits;
	centsStr = cents.toString();
	num = Math.floor(num/lclDecimalDigits).toString();
	for (var i=0; i<decimaldigits-centsStr.length; i++)
		centsStr = "0" + centsStr;
	cents = (decimaldigits > 0) ? centsStr : "";
	for (var i = 0; i < Math.floor((num.length-(1+i))/groupdigits); i++)
		num = num.substring(0,num.length-((groupdigits+1)*i+groupdigits))+groupseparator+num.substring(num.length-((groupdigits+1)*i+groupdigits));
	if (percentFormat)
		if (cents != "")
			return (((sign)?'':'-') + num + dot + cents + symbol);
		else
			return (((sign)?'':'-') + num + symbol);
	else
		if (cents != "")
			return (((sign)?'':'-') + symbol + num + dot + cents);
		else
			return (((sign)?'':'-') + symbol + num);
}

function FormatCurrency(inputValue){
	return Format(inputValue, 2, '$', '.' , ',', 3, false);
}

function CleanFormat(InputObj,DataType){
	if (InputObj.value.substring(0,1)=='$')
		InputObj.value = InputObj.value.substring(1,InputObj.value.length);
	InputObj.value = InputObj.value.replace(',','');
}
//------------Functions

function Navigate(Module){
eval("document.location='" + Module + "'");
}


function safeEscape(inputValue)
{
	if(inputValue==null || inputValue==undefined) {return '';}
	
	var returnValue = escape(inputValue);
	returnValue = replaceAll(returnValue, '+', '%2B');
	
	return returnValue;
}

function replaceAll(oldStr,findStr,repStr) {
  var srchNdx = 0;
  
  var newStr = "";
  while (oldStr.indexOf(findStr,srchNdx) != -1)  
  {
    newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx));
    newStr += repStr;
    srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length);
  }
  newStr += oldStr.substring(srchNdx,oldStr.length);
  
  return newStr;
}

//format a String to be used as Regular Expression
function FormatRegExpString(convertString)
{
	convertString = convertString.replace(/\\/g,'\\\\');
	convertString = convertString.replace(/\//g,'\\/');
	convertString = convertString.replace(/\*/g,'\\*');
	convertString = convertString.replace(/\$/g,'\\$');
	convertString = convertString.replace(/\+/g,'\\+');
	convertString = convertString.replace(/\?/g,'\\?');
	convertString = convertString.replace(/\./g,'\\.');
	convertString = convertString.replace(/\^/g,'\\^');
	convertString = convertString.replace(/\[/g,'\\[');
	convertString = convertString.replace(/\]/g,'\\]');
	convertString = convertString.replace(/\(/g,'\\(');
	convertString = convertString.replace(/\)/g,'\\)');
	convertString = convertString.replace(/\{/g,'\\{');
	convertString = convertString.replace(/\}/g,'\\}');
	convertString = convertString.replace(/\|/g,'\\|');				
	
	return convertString;
	
}   

//Remove substring
function RemoveSubString(thisString,thisSubString){
	eval('var re = /' + FormatRegExpString(thisSubString) + '/g');
	return thisString.replace(re, "");
}



//Replace substring
function ReplaceSubString(thisString,thisSubString,newSubString){
	eval('var re = /' + FormatRegExpString(thisSubString) + '/g');
	return thisString.replace(re, newSubString);
}

//Obtener un numero al azar entre cero y cinco mil
function get_random()
{
    var ranNum= Math.floor(Math.random()*5000);
    return ranNum;
}

-->
