var first_load_existing = false;
var date_error = '';
var varAllowException = false;


function CutDigLetters()
{
  if (event.keyCode >= 65 && event.keyCode <= 90)
  {
		return true;
  }
  if (!event.shiftKey)
  {
		if (event.keyCode >= 48 && event.keyCode <= 57) //0-9
			event.returnValue = true;
		else if (event.keyCode >= 96 && event.keyCode <= 105)//0-9 numpad
			event.returnValue = true;
		else if (event.keyCode == 8) //backspace
			event.returnValue = true;
		else if (event.keyCode == 9) //tab
			event.returnValue = true;
		else if (event.keyCode == 37) //left arrow
			event.returnValue = true;
		else if (event.keyCode == 39) //right arrow
			event.returnValue = true;
		else if (event.keyCode == 46) //Del
			event.returnValue = true;
    else 
			event.returnValue = false;
	}
	else
	{
		if (event.keyCode == 37) //left arrow
			event.returnValue = true;
		else if (event.keyCode == 39) //right arrow
			event.returnValue = true;
		else if (event.keyCode == 46) //Del
			event.returnValue = true;
		else if (event.keyCode == 9) // tab
			event.returnValue = true;
		else 
			event.returnValue = false;
	}
}

function CutDigits()
{
  if (!event.shiftKey)
  {
		if (event.keyCode >= 48 && event.keyCode <= 57) //0-9
			event.returnValue = true;
		else if (event.keyCode >= 96 && event.keyCode <= 105)//0-9 numpad
			event.returnValue = true;
		else if (event.keyCode == 8) //backspace
			event.returnValue = true;
		else if (event.keyCode == 9) //tab
			event.returnValue = true;
		else if (event.keyCode == 37) //left arrow
			event.returnValue = true;
		else if (event.keyCode == 39) //right arrow
			event.returnValue = true;
		else if (event.keyCode == 46) //Del
			event.returnValue = true;
    else 
			event.returnValue = false;
	}
	else
	{
		if (event.keyCode == 37) //left arrow
			event.returnValue = true;
		else if (event.keyCode == 39) //right arrow
			event.returnValue = true;
		else if (event.keyCode == 46) //Del
			event.returnValue = true;
		else if (event.keyCode == 9) // tab
			event.returnValue = true;
		else 
			event.returnValue = false;
	}
}


function TrimStr(s)
{
	var n1 = 0, n2 = s.length;
	for (n1 = 0; n1 < s.length && s.charCodeAt(n1) == 32; n1++);
	for (n2 = s.length - 1; n2 >= 0 && s.charCodeAt(n2) == 32; n2--);
	return s.substring(n1, n2 + 1);
}

var blinkingInterval = null;
var blink_step = 1;
function BlinkingProc()
{
	if (blink_step == 1)
	{
		blink_step = 2;
		if (document.getElementById('link_CalcRates') != null)
			document.getElementById('link_CalcRates').style.color = '#FF0000';
	}		
	else if (blink_step == 2)
	{
		blink_step = 3;
		if (document.getElementById('link_CalcRates') != null)
			document.getElementById('link_CalcRates').style.color = '#FF4040';
	}
	else if (blink_step == 3)
	{
		blink_step = 4;
		if (document.getElementById('link_CalcRates') != null)
			document.getElementById('link_CalcRates').style.color = '#FF8080';
	}
	else if (blink_step == 4)
	{
		blink_step = 1;
		if (document.getElementById('link_CalcRates') != null)
			document.getElementById('link_CalcRates').style.color = '#FF4040';
	}
}

function BeginBlinking()
{
	if (blinkingInterval != null)
	{
		return;
	}
	blinkingInterval = setInterval("BlinkingProc()", 100);
}

function EndBlinking()
{
	if (blinkingInterval != null)
	{
		clearInterval(blinkingInterval);
		blinkingInterval = null;
		document.getElementById('link_CalcRates').style.color = '#FF0000';
	}
}

function MoveFocusToNext(prev, next)
{
	if(event.shiftKey)
	{
		document.getElementById(prev).focus();
	}
	else
	{
		document.getElementById(next).focus();
	}
}

function SimpleDateValidate(a)
{
	var err = 0
	var t = varCurrentDate;
	
	if (a.length != 10) err = 1;
	b = a.substring(0, 2);
	c = a.substring(2, 3);
	d = a.substring(3, 5);
	e = a.substring(5, 6);
	f = a.substring(6, 10);
	
	if (a == '__/__/____')
	{
		date_error = '';
		return true;
	}

	date_error = 'The date cannot be less than ' + varLastDays + ' days from today';

	if (a.indexOf('_') >= 0) 
	{
		return false;
	}
	
	var ggg = new Date(f,b,d);
	if (ggg.toString() == 'NaN') 
	{
		return false;
	}
	
	if ((b < 1) || (b > 12)) 
	{
		err = 1;
	}
	if (c != '/') 
	{
		err = 1;
	}
	if ((d < 1) || (d > 31)) 
	{
		err = 1;
	}
	if (e != '/') 
	{
		err = 1;
	}
	if (f < 1900) 
	{
		err = 1;
	}
	
	if ((b == 4) || (b == 6) || (b == 9) || (b == 11))
	{
		if (d==31) err=1;
	}

	if (b == 2)
	{
		var g=parseInt(f/4);
		if (isNaN(g)) 
		{
			err = 1;
		}

		if (d > 29) 
		{
			err = 1;
		}
		if (d==29 && ((f/4)!=parseInt(f/4))) err=1;
	}
	return err == 0;
}

function ValidDateNoLimit(a)
{
	if (!SimpleDateValidate(a))
	{
		return false;
	}
	else
	{
		var ent_date = new Date(f, b - 1, d);
		var cur_date = varCurrentDate;

		ent_date.setHours(0, 0, 0, 0);
		cur_date.setHours(0, 0, 0, 0);

		var delta = (ent_date.getTime() - cur_date.getTime()) / (24 * 3600 * 1000);

		if (ent_date.getTime() < LastEffDate.getTime() && !varAllowException)
		{
			return false;
		}
		return true;
	}
}


function DateToStr(cd)
{
	var dstr = '';
	var m = cd.getMonth() + 1;
	if (m < 10) dstr += '0';
	dstr += m;
	dstr += '/';
	if (cd.getDate() < 10) dstr += '0';
	dstr += cd.getDate();
	dstr += '/';
	dstr += cd.getFullYear();
	return dstr;
}

function ddg_CheckDateNoLimit(id, date_value)
{
	if(!ValidDateNoLimit(date_value))
	{
		alert('Wrong Date!\r\n' + date_error);
		document.getElementById(id).value = DateToStr(new Date());
		document.getElementById(id).focus();
		return false;
	}
	return true;
}

var clock_window = null;

function ShowClock(arg)
{
	if (clock_window == null)
	{
		clock_window = window.showModelessDialog('../forms/wait.htm',[arg],
			'dialogHeight:120px;dialogWidth:300px;edge:Raised;center:Yes;help:No;resizable:No;status:No');
	}
}

function ShowClock2(arg)
{
	clock_window = window.showModelessDialog('forms/wait.htm',[arg],
		'dialogHeight:120px;dialogWidth:300px;edge:Raised;center:Yes;help:No;resizable:No;status:No');
}

var invalid_date = false;
function CheckDate(inp)
{
	invalid_date = false;
	if (!(inp.id == 'calEffDate' && inp.value == ''))
	{
		inp.value = ChangeByMask(inp);
	}
	if (inp.id == 'calEffDate' || (inp.value != '' && inp.value != '__/__/____'))
	{
		var d = Date.parse(inp.value);
		if (!d)
		{
			invalid_date = true;
			alert('Invalid date entered!\nDate must be MM/DD/YYYY');
			inp.focus();
		}
	}
}

function MaskEditClick(inp)
{
	if (inp.getAttribute('mask') == inp.value)
	{
		inp.value = '';
	}	
}

function ChangeByMask(inp)
{
	var mask = inp.getAttribute('mask');
	if (inp.value == '')
	{
		return mask;
	}
	else
	{
		var res = '', s = '', i, j = 0;
		for (i = 0; i <	inp.value.length; i++)
		{
			var c = inp.value.charAt(i);
			if (c >= '0' && c <= '9')
			{
				s += c;
			}
		}
		if (s == '' && inp.value != '')
		{
			for (i = 0; i <	inp.value.length; i++)
			{
				var c = inp.value.charAt(i);
				if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
				{
					s += c;
				}
			}
		}
		for (i = 0; i <	mask.length; i++)
		{
			if (mask.charAt(i) == '_')
			{
				if (j < s.length) res += s.charAt(j);
				else res += '_';
				j++;
			}
			else res += mask.charAt(i);
		}
		return res;
	}
}

function MaskEditFocusOut(inp)
{
	inp.value = ChangeByMask(inp);
}

function ShowMainHelp()
{
	if (varRaterType == 3)
	{
		window.showModalDialog('../help/help_ots.htm', '', 'dialogWidth:650px; dialogHeight:655px;scroll:no; center:yes; help:no; status:yes;');
	}
	else if(varRaterType == 10)
	{
		window.showModalDialog('../help/help_stw.htm', '', 'dialogWidth:650px; dialogHeight:565px;scroll:no; center:yes; help:no; status:yes;');
	}
	else
	{
		window.showModalDialog('../help/help.htm', '', 'dialogWidth:650px; dialogHeight:565px;scroll:no; center:yes; help:no; status:yes;');
	}
}

function ShowACH()
{
	window.showModalDialog('achform.aspx', null, 
		'dialogWidth:780px; dialogHeight:780px;scroll:no; center:yes; help:no; status:yes;' );
}

function CheckBrowser()
{				
	if(window.navigator.appName != "Microsoft Internet Explorer")
	{
		alert('You are using unsupported internet browser software. '+
			'Please use Internet Explorer 6.0. or above version.');
		window.location='http://www.usdsoftware.com';
		window.navigate('http://www.usdsoftware.com');
	}
	else return;
}

function ShowTechSupport(url, rater)
{
	if (rater != null)
	{
		window.open(url + '?rater=' + rater, '_blank', 'resizable=1; width=580px; height=340px');
	}
	else
	{
		window.open(url, '_blank', 'resizable=1; width=580px; height=340px');
	}
}

function ShowTechSupport2(url, rater, userid, username, email, agency, phone)
{
	window.open(url + '?rater=' + rater + '&username=' + username + '&userid=' + userid + '&email=' + email + '&agency=' + agency + '&phone=' + phone, 
		'_blank', 'resizable=1; width=580px; height=340px');
}
