﻿var double_dash ='--';
var item_loading_text ='loading...';
var item_error_text ='-- error --';

function syc_FailedCallback(err, c, m)
{
  if (err.get_timedOut()&&c.retry) syc_showTimedOutMessage(c);
  else syc_showErrorMessage(c,err);
}
function syc_SuccededCallback(r, c, m)
{    
	try{
		c.succeed(r);
	}catch(ex){
		try{if(c.fail)c.fail(ex);}catch(ex){}
	}
	if (c.after)c.after();
}
function syc_showTimedOutMessage(c)
{
	var yes = confirm('A timeout occurred while retrieving data on the page.\n\tWould you like the page to retry?');
	try{
		if (yes)c.retry();		
	}catch(ex){
		try{if(c.fail)c.fail(ex);}catch(ex){}
		if (c.after)c.after();
	}
}
function syc_showErrorMessage(c, err)
{
	alert('An unexpected error occurred while retrieving data on the page');
	try{		
		if(c.fail)c.fail(err);
	}catch(ex){
		if (c.after)c.after();
	}
}
function syc_populateSelectList(e,r,dt,dv)
{
	if (dt)syc_clearSelectListAddDefault(e,dt,dv);	
	for(var i = 0; i < r.length; i++)
	{
		syc_addSelectListOption(e,r[i].Text,r[i].Value,r[i].Selected)
	}
	e.disabled=false;
	return e;
}
function syc_selectSelectListOption(e,t,v)
{
	for(var i=0;i<e.options.length;i++)
	{
		o=e.options[i];
		if (t && o.text==t
			||(v && o.value==v))
	  {
			e.selectedIndex=i;
			return true;
		}		
	}
	if (e.options.length == 2)
	{
		e.selectedIndex=1;
		return true;		
	}
	return false;
}
var vx_options_use_single_arg_add = false;
function syc_addSelectListOption(l,t,v,s)
{
	var o=document.createElement("option");		
	o.text=t;
	if(typeof v != undefined)o.value=v;
	if(s)o.selected='selected';
	try{if(vx_options_use_single_arg_add)l.add(o);else l.add(o,null);}catch(ex){l.add(o);vx_options_use_single_arg_add=true;}
	return o;
}
function syc_clearSelectListAddDefault(e,t,v,s)
{	
	e.options.length=0;
	if(t)syc_addSelectListOption(e,t,v,s);
	return e;
}
function syc_numericInputOnly(e)
{
	var evt = (e) ? e : window.event;
  var key = (evt.keyCode) ? evt.keyCode : evt.which;

  if(key != null) 
  {
		key = parseInt(key, 10);

		if((key < 48 || key > 57) && (key < 96 || key > 105)) 
		{
			if(!isUserFriendlyChar(key))
				return false;
    }
    else 
    {
			if(evt.shiftKey)
         return false;
    }
  }
  return true;
}
function isUserFriendlyChar(val) {
      // Backspace, Tab, Enter, Insert, and Delete
      if(val == 8 || val == 9 || val == 13 || val == 45 || val == 46)
        return true;

      // Ctrl, Alt, CapsLock, Home, End, and Arrows
      if((val > 16 && val < 21) || (val > 34 && val < 41))
        return true;

      // The rest
      return false;
    }
