
var DataChanged = false;

var IE = document.all ? true : false
var is_ie = IE;

// Returns true if the passed value is found in the
// array.  Returns false if it is not.
Array.prototype.inArray = function (value)
{
	for (var i = 0; i < this.length; i++) if (this[i] === value) return true;
	return false;
}

String.prototype.trim = function()
{
	var r = /^\s+|\s+$/;
	var a = this.split(/\n/g);
	var i = a.length;
	while(i-- > 0) a[i] = a[i].replace(r,'');
	return a.join('\n');
}

String.prototype.StartsWith = function(Prefix)
{
	return(this.indexOf(Prefix) === 0);
}



function ParseDate(element)
{

	var value = new String(element.value);
	var target = new Date();
	var parse = false;
	
	if (value.toLowerCase().indexOf("today") > -1 || value.toLowerCase() == "t")
		parse = true;
		
	if (value.toLowerCase() == "tomorrow")
	{
		var d1 = parseInt(target.getDate());
		target.setDate(d1 + 1);
		parse = true;
	}
	
	if (value.toLowerCase() == "next week")
	{
		var d1 = parseInt(target.getDate());
		target.setDate(d1 + 7);
		parse = true;
	}
	
	if (value.toLowerCase().indexOf("day") > -1)
	{
		
		var Num = new String("");
		var FoundNum = false;

		for(var i = value.toLowerCase().indexOf("day") - 1; i >= 0; i--)
		{
		
			var Char = value.substr(i, 1);
			var Numbers = /[0-9]/g;
	
			if(Numbers.test(Char))
			{
				Num = Char + Num;
				FoundNum = true;
			}
			else
			{
				if(FoundNum) break;
			}
			
		}
		
		if(FoundNum)
		{
			var d1 = parseInt(target.getDate());
			var d2 = parseInt(Num);
			target.setDate(d1 + d2);
			parse = true;
		}
		
	}
	
	if (value.toLowerCase().indexOf("week") > -1)
	{
		
		var Num = new String("");
		var FoundNum = false;

		for(var i = value.toLowerCase().indexOf("week") - 1; i >= 0; i--)
		{
		
			var Char = value.substr(i, 1);
			var Numbers = /[0-9]/g;
	
			if(Numbers.test(Char))
			{
				Num = Char + Num;
				FoundNum = true;
			}
			else
			{
				if(FoundNum) break;
			}
			
		}
		
		if(FoundNum)
		{
			var d1 = parseInt(target.getDate());
			var d2 = parseInt(Num) * 7;
			target.setDate(d1 + d2);
			parse = true;
		}
		
	}
	
	if (value.toLowerCase().indexOf("month") > -1)
	{
		
		var Num = new String("");
		var FoundNum = false;

		for(var i = value.toLowerCase().indexOf("month") - 1; i >= 0; i--)
		{
		
			var Char = value.substr(i, 1);
			var Numbers = /[0-9]/g;
	
			if(Numbers.test(Char))
			{
				Num = Char + Num;
				FoundNum = true;
			}
			else
			{
				if(FoundNum) break;
			}
			
		}
		
		if(FoundNum)
		{
			var d1 = parseInt(target.getMonth());
			var d2 = parseInt(Num);
			target.setMonth(d1 + d2);
			parse = true;
		}
		
	}
	
	if (value.toLowerCase().indexOf("year") > -1)
	{
		
		var Num = new String("");
		var FoundNum = false;

		for(var i = value.toLowerCase().indexOf("year") - 1; i >= 0; i--)
		{
		
			var Char = value.substr(i, 1);
			var Numbers = /[0-9]/g;
	
			if(Numbers.test(Char))
			{
				Num = Char + Num;
				FoundNum = true;
			}
			else
			{
				if(FoundNum) break;
			}
			
		}
		
		if(FoundNum)
		{
			var d1 = parseInt(target.getYear());
			var d2 = parseInt(Num);
			target.setYear(d1 + d2);
			parse = true;
		}
		
	}
	
	if(parse) element.value = target.getDate() + "/" + (target.getMonth() + 1) + "/" + target.getYear();


}

function OffsetTop(element)
{ 
    if(element.offsetParent.nodeName.toLowerCase() == "body")
        return element.offsetTop;
    else
        return element.offsetTop + OffsetTop(element.offsetParent); 
}

function OffsetLeft(element)
{ 
    if(element.offsetParent.nodeName.toLowerCase() == "body")
        return element.offsetLeft
    else
        return element.offsetLeft + OffsetLeft(element.offsetParent); 
}



function BodyOffsetTop(elem)
{
	if(typeof(elem) == 'object')
	{
		try
		{
			if(elem.offsetParent.nodeName.toLowerCase() == "body")
			{
				return elem.offsetTop;
			}
			else
			{
				return elem.offsetTop + BodyOffsetTop(elem.offsetParent);
			}
		}
		catch(ex)
		{
			return 0;
		}
		
	}
	else
	{
		return 0;
	}
}



function BodyOffsetLeft(elem)
{
	if(typeof(elem) == 'object')
	{
		try
		{
			if(elem.offsetParent.nodeName.toLowerCase() == "body")
			{
				return elem.offsetLeft;
			}
			else
			{
				return elem.offsetLeft + BodyOffsetLeft(elem.offsetParent);
			}
		}
		catch(ex)
		{
			return 0;
		}
	}
	else
	{
		return 0;
	}
}

function WindowHeight()
{

  var Height = 0;
  
  if(typeof(window.innerWidth) == 'number') // Not IE
  {
    Height = window.innerHeight;
  }
  else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) // IE6
  {
    Height = document.documentElement.clientHeight;
  }
  else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) // IE4 Method
  {
    Height = document.body.clientHeight;
  }
  
  return Height;

}
