
// Separator to represents arrays into strings separated by ?
var C_SEPARATOR='|';
var C_PREFIX_TAB='tab';
var C_PREFIX_PAN='pan';
var C_SUFFIX_SELECTED='Selected';

// Get an element by its id
function getElement(id)
{
	var oRet=document.getElementById(id);
	if (oRet==null) oRet=id;
	return oRet;
}

// Set a property of a control
function setData(control,value,property)
{
	var oControl=getElement(control);
	if (typeof(oControl)=='object')
	{
		if (property)
		{oControl[property]=value;}
		else
		{oControl.value=value;}
	}
}

// Apply the function setData(control,value,property) to a multiple controls (numControls)
// The names of the controls are: controlName0,controlName1,...,controlName(numControls-1)
function setDataMultiple(controlName, numControls, value, property)
{
var i=0;
var sName="";
for (i=0;i<numControls;i++)
	{
	sName=controlName + i;
	setData(sName,value,property);
	}
}  

// Show hide a control. 
// Second parameter[optionally]: show(true) hide(false)
function showHide(control, show, controller)
{
	var oControl=getElement(control);
	var oController=getElement(controller);

	// replace ':' with '_' in the control name , 
	//it's necessary in some cases to find composed controls in the document
	if (typeof(oControl)!='object')
	{
		control = control.replace(/:/g,'_');
		oControl=getElement(control);
	}
	
	if (typeof(oControl)=='object')
	{
		if (typeof(show)=='undefined' || show==null)
		{
		var sDisplay=oControl.style.display;
		if (sDisplay=='none')
			{
			oControl.style.display='';
			if (oController)
				oController.innerText='-';
			}
		else
			{
			oControl.style.display='none';
			if (oController)
				oController.innerText='+';
			}
		}
		else if (show==true)
		{
		oControl.style.display='';
		if (oController)
			oController.innerText='-';
		}
		else if (show==false)
		{
		oControl.style.display='none';
		if (oController)
			oController.innerText='+';
		}
	}
}

function SetCursor(cursor)
{
	document.body.style.cursor=cursor;
}


// OpenModaldialog
// url: the url to load into the new window
// windowOptions: window options
// eventTarget: name (postback without validation) 
function OpenModalDialog(url,windowOptions)
{
	alert('open');
	OpenModalDialog(url,windowOptions, null);
}

// OpenModaldialog
// url: the url to load into the new window
// windowOptions: window options
// eventTarget: name (postback without validation) 
function OpenModalDialog(url,windowOptions, eventTarget)
{
alert('open');
// Show modal dialog
if (!windowOptions) 
	{windowOptions="edge: Raised; help: No; resizable: Yes; status: No;";}

SetCursor('wait');
var oRetValue=window.showModalDialog(url, window, windowOptions);

// For each control update: we process only optional parameters
if (oRetValue!=null)
	{
	var iInit=3;
	var iRet=0;
	var sRetValues='';
	var sId=null;
	var oControl=null;
	var sType=null;
	for (i=iInit;i<arguments.length;i++)
		{
		sId=arguments[i];
		oControl=getElement(sId);
		if (typeof(oControl)=='object')
		{
		sType=oControl.tagName;
		
		sRetValues+=oRetValue[iRet] + C_SEPARATOR;

		if (sType=='INPUT') // textbox
			{oControl.value=oRetValue[iRet];}
		else if (sType=='SPAN') // labels
			{oControl.innerText=oRetValue[iRet];}
		else	// el resto de controles
			{i++; oControl[arguments[i]]=oRetValue[iRet];}
		}
		iRet++;
		}
	}

// we make a postback if needed
if (eventTarget)
	{
	__doPostBack(eventTarget,sRetValues);
	}
	
//Page_ValidationActive=True;
SetCursor('');
return oRetValue;
}

// SubmitValidated : Validate and if there are no errors make a submit 
// eventTarget: name of the control wich receive the postback
// eventArgument: arguments for the postBack
// validationDisabled: if false validate before postback
function SubmitValidated (eventTarget, eventArgument, validationDisabled)
{
// parameters
if (!eventTarget)
	{eventTarget='';}
if (!eventArgument)
	{eventArgument='';}
//alert('eventTarget=' + eventTarget + '; eventArgument=' + eventArgument + '; validationDisabled=' + validationDisabled);

// code
if (!validationDisabled && typeof(Page_Validators)!='undefined' && typeof(Page_ClientValidate) == 'function') 
	{
	if (Page_ClientValidate())
		{__doPostBack(eventTarget,eventArgument);}
	}
else
	{__doPostBack(eventTarget,eventArgument);}

}

// array to string 
function BntToString(val)
{
var sRet='';
var i=0;
if (val)
	{
	for (i=0;i<val.length;i++)
		{
		sRet=sRet+val[i] + C_SEPARATOR;
		}
	}
return sRet;
}

// High and low 
// (not support more than one control at the same page with diferent styles)
var msBntSelectedClassName;
var msBntHighClassName=" BntRollOver";
function BntHigh(obj) {
	msBntSelectedClassName=obj.className;
	obj.className=obj.className + msBntHighClassName;
}
function BntLow(obj) {
	obj.className=msBntSelectedClassName;
}

/*****************************************************************************/
function pnlDesplegar(control)
{
	var oControl=getElement(control);
  if (oControl.style.display == 'none')
     {oControl.style.display = '';}
  else   
     {oControl.style.display = 'none';}
}

function fun_pTextarea_MaxLen(prm_oTextarea_Obj)
{	var var_sKey_Code, var_aKey_Special, var_bResult,
	var_oTextarea_TxtRng;

	var_oTextarea_TxtRng = prm_oTextarea_Obj.createTextRange();
	var_aKey_Special = [8,17,18,27,33,34,35,36,37,38,39,40,45,46,114];
	var_bResult = true;
	var_sKey_Code = event.keyCode;
	if (var_sKey_Code == 86)
	{	
		if (event.ctrlKey) 
			var_bResult = fun_mTextarea_Paste(prm_oTextarea_Obj);	
	}

	if(prm_oTextarea_Obj.value.length >= prm_oTextarea_Obj.maxLen)
	{	var_bResult = false;

	if (var_oTextarea_TxtRng.queryCommandState('OverWrite') &&
	(prm_oTextarea_Obj.value.length == prm_oTextarea_Obj.maxLen))
	{	var_bResult = true; 	}
	else
	{
	for (i=0; i<var_aKey_Special.length; i++)
	{	if (var_sKey_Code == var_aKey_Special[i])	{var_bResult = true;
	break;}	}
	}
	}
	
	return var_bResult;
}

function fun_mTextarea_Paste(prm_oTextarea_Obj)
{	var var_sClipboard_Text;
	var_sClipboard_Text = window.clipboardData.getData("Text");
	prm_oTextarea_Obj.TxtRng =
	document.selection.createRange().duplicate();

	if (prm_oTextarea_Obj.TxtRng && prm_oTextarea_Obj.createTextRange)
	{	prm_oTextarea_Obj.TxtRng.text =
	prm_oTextarea_Obj.TxtRng.text.charAt(prm_oTextarea_Obj.TxtRng.text.length
	- 1) == ' ' ? var_sClipboard_Text + ' ' : var_sClipboard_Text;
	}
	else
	{	prm_oTextarea_Obj.TxtRng.text = var_sClipboard_Text;}

	prm_oTextarea_Obj.value = prm_oTextarea_Obj.value.substring(0,
	prm_oTextarea_Obj.maxLen);
	return false;
}

