Date.prototype.add = function( /**String*/unit, /**Number*/value ) {

   unit = unit.replace( /s$/ ).toLowerCase();

   switch ( unit ) {
      case "year":
         this.setYear( this.getYear() + value );
         break;
      case "month":
         this.setMonth( this.getMonth() + value )
         break;
      case "week":
         this.setTime( this.getTime() + value * 604800000 );
         break;
      case "day":
         this.setTime( this.getTime() + value * 86400000 );
         value *= nanoseconds in days
         break;
      case "hour":
         this.setTime( this.getTime() + value * 3600000 );
         break;
      case "minute":
         this.setTime( this.getTime() + value * 60000 );
         break;
      case "second":
         this.setTime( this.getTime() + value * 1000 );
         break;
      case "nanosecond":
         // Fall Through
      default:
         this.setTime( this.getTime() + value );
         break;
   }

   return this;
};

Date.prototype.subtract = function( /**String*/unit, /**Number*/value ) {

   unit = unit.replace( /s$/ ).toLowerCase();

   switch ( unit ) {
      case "year":
         this.setYear( this.getYear() - value );
         break;
      case "month":
         this.setMonth( this.getMonth() - value )
         break;
      case "week":
         this.setTime( this.getTime() - value * 604800000 );
         break;
      case "day":
         this.setTime( this.getTime() - value * 86400000 );
         break;
      case "hour":
         this.setTime( this.getTime() - value * 3600000 );
         break;
      case "minute":
         this.setTime( this.getTime() - value * 60000 );
         break;
      case "second":
         this.setTime( this.getTime() - value * 1000 );
         break;
      case "nanosecond":
         // Fall Through
      default:
         this.setTime( this.getTime() - value );
         break;
   }
};

Date.prototype.truncate = function( /**String*/to ) {

   unit = unit.replace( /s$/ ).toLowerCase();

   switch ( unit ) {
      case "year":
         this.setMonth( 0, 1 );
         this.setHours( 0, 0, 0, 0 );
         break;
      case "month":
         this.setDate( 1 );
         this.setHours( 0, 0, 0, 0 );
         break;
      case "week":
         this.subtract( "day", this.getDay() );
         break;
      case "day":
         this.setMinutes( 0, 0, 0, 0 );
         break;
      case "hour":
         this.setMinutes( 0, 0, 0 );
         break;
      case "minute":
         this.setSeconds( 0, 0 );
         break;
      case "second":
         this.setMilliseconds( 0 );
         break;
      default:
         break;
   }

   return this;
};

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function cookiesAllowed() {
   setCookie('checkCookie', 'test', 1);
   if (getCookie('checkCookie')) {
      deleteCookie('checkCookie');
      return true;
   }
   return false;
}

function setCookie(name,value,expires, options) {
   if (options==undefined) { options = {}; }
   if ( expires ) {
      var expires_date = new Date();
      expires_date.setDate(expires_date.getDate() + expires)
   }
   document.cookie = name+'='+escape( value ) +
      ( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + 
      ( ( options.path ) ? ';path=' + options.path : '' ) +
      ( ( options.domain ) ? ';domain=' + options.domain : '' ) +
      ( ( options.secure ) ? ';secure' : '' );
}

function getCookie( name ) {
        var start = document.cookie.indexOf( name + "=" );
        var len = start + name.length + 1;
        if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
                return null;
        }
        if ( start == -1 ) return null;
        var end = document.cookie.indexOf( ';', len );
        if ( end == -1 ) end = document.cookie.length;
        return unescape( document.cookie.substring( len, end ) );
}

function deleteCookie( name, path, domain ) {
   if ( getCookie( name ) ) document.cookie = name + '=' +
      ( ( path ) ? ';path=' + path : '') +
      ( ( domain ) ? ';domain=' + domain : '' ) +
      ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.-";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1)	{
         IsNumber = false;
      }
   }
   return IsNumber;
}


function BackofficeLogoff()
{
	parent.window.location.href = 'login.php?action=logoff'
}

function BackofficeCloseWindow()
{
	parent.window.close();
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + '.' + cents);
}

function hidePleaseWait()	{
	document.getElementById("pleasewaitScreen").style.visibility="hidden";
	document.body.onscroll = null;
	window.onscroll = null;
}

function displayPleaseWait()	{
	var scrolledX, scrolledY;
	
	var pageWidth = document.body.scrollWidth;
	var pageHeight = document.body.scrollHeight;

	if( self.pageYOffset ) {
	 scrolledX = self.pageXOffset;
	 scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
	 scrolledX = document.documentElement.scrollLeft;
	 scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
	 scrolledX = document.body.scrollLeft;
	 scrolledY = document.body.scrollTop;
	}
	
	var centerX, centerY;
	if( self.innerHeight ) {
	 centerX = self.innerWidth;
	 centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
	 centerX = document.documentElement.clientWidth;
	 centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
	 centerX = document.body.clientWidth;
	 centerY = document.body.clientHeight;
	}
	
	var leftOffset = scrolledX + (centerX - 250) / 2;
	var topOffset = scrolledY + (centerY - 200) / 2;
	
	document.getElementById("pleasewaitScreen").style.top = topOffset + "px";
	document.getElementById("pleasewaitScreen").style.left = leftOffset + "px";

	document.getElementById("pleasewaitScreen").style.visibility="visible";
	document.body.onscroll = displayPleaseWait;
	window.onscroll = displayPleaseWait;
}

function hidePleaseWaitBackOffice()	{
	document.getElementById("pleasewaitScreen").style.visibility="hidden";
	document.body.onscroll = null;
	window.onscroll = null;
}

function displayPleaseWaitBackOffice()	{
	var scrolledX, scrolledY;
	
	var pageWidth = document.body.scrollWidth;
	var pageHeight = document.body.scrollHeight;

	if( self.pageYOffset ) {
	 scrolledX = self.pageXOffset;
	 scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
	 scrolledX = document.documentElement.scrollLeft;
	 scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
	 scrolledX = document.body.scrollLeft;
	 scrolledY = document.body.scrollTop;
	}
	
	var centerX, centerY;
	if( self.innerHeight ) {
	 centerX = self.innerWidth;
	 centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
	 centerX = document.documentElement.clientWidth;
	 centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
	 centerX = document.body.clientWidth;
	 centerY = document.body.clientHeight;
	}
	
	var leftOffset = scrolledX + (centerX - 250) / 2;
	var topOffset = scrolledY + (centerY - 200) / 2;
	
	document.getElementById("pleasewaitScreen").style.top = topOffset + "px";
	document.getElementById("pleasewaitScreen").style.left = leftOffset + "px";

	document.getElementById("pleasewaitScreen").style.visibility="visible";
	document.body.onscroll = displayPleaseWait;
	window.onscroll = displayPleaseWait;
	
	document.getElementById('BackofficeMainBody').style.visibility = 'hidden'; 
}

function addMessagetoURL(strurl,strmessage)	{
	//alert(strurl);
	var tmpURL = strurl;
	var pos = strurl.indexOf("?");
	if (pos>=0)	{
		strmessage = "&" + strmessage;
	} else	{
		strmessage = "?" + strmessage;
	}
	
	return strurl + strmessage;
}

function isValidURL(str)	{
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(str);
}

function isValidURL2(str)	{
	lengthValue = Trim(str);
	lengthValue = lengthValue.length;
	if(lengthValue != 0)	{
		var j = new RegExp();
		j.compile("^[A-Za-z]+://[A-Za-z0-9-]+\.[A-Za-z0-9]+");
		//lengthValue = Trim(document.getElementById('txtWeb').value);
		if (!j.test(lengthValue))
		{
			return false;
		}
		return true;
	}
	return false;
}

function isValidEmailAddress(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	if (str.indexOf(" ")!=-1){
		return false;
	}

	return true;
}

function openWindow(url, height, width, resize, scroll)
{
  popupWin = window.open(url,'page','height='+height+',width='+width+',resizable='+resize+',scrollbars='+scroll+'')
}

function changeImage(imagename, imageurl)
{
	document[imagename].src = imageurl;
}

function writetoLyr(id, message)
{
   document.getElementById(id).innerHTML = message;
}

function isCheckBoxChecked(chk){
  var boolIsChecked = chk.checked;
  
  if (boolIsChecked)
    return "1";
  else
    return "0";
}
function getRadioValue(radioObj)
{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}
function setRadioValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
function isEmpty(mytext) {
	return false;
	
  try
  {
		if (mytext.value=='')
			return true;
  }
  catch (e)
  {

  }

  try
  {
		if (mytext.value==null)
			return true;
  }
  catch (e)
  {

  }

  try
  {
		if (mytext.value.length==0)
			return true;
  }
  catch (e)
  {

  }
	return false;
}