var viaNSLayers = (document.layers) ? true : false;
var viaIE = (document.all) ? true : false;
var viaDOM = (document.getElementById) ? true : false;

errorTimeouts = new Array();

// Removes leading and trailing spaces from the passed string.
// If something besides a string is passed in (null, custom object, etc.) then return the input.
function trim(inputString) {   
	if (typeof inputString != "string") { return inputString; }
  	var retValue = inputString;
  	var ch = retValue.substring(0, 1);
  	while (ch == " ") { // Check for spaces at the beginning of the string
    	retValue = retValue.substring(1, retValue.length);
    	ch = retValue.substring(0, 1);
  	}
  	ch = retValue.substring(retValue.length-1, retValue.length);
  	while (ch == " ") { // Check for spaces at the end of the string
    	retValue = retValue.substring(0, retValue.length-1);
    	ch = retValue.substring(retValue.length-1, retValue.length);
  	}
  	return retValue;
}

// Returns false if email address is invalid.
function isEmailValid(email) {
  // please keep the following pattern in sync with the schema (PointServeTypes.xsd)
  var emailPattern = new RegExp("[\\w_\\-\\.]+\\@[\\w_\\-]+.*\\.\\w{2,4}");
  // See if "email" is valid
  return emailPattern.test(email);
}

function MarkError(fField) {;
	Errorize(fField);
	if (viaIE)
		errorTimeouts[(errorTimeouts.length + 1)] = window.setTimeout("UnErrorize(document." + fField.form.name + ".elements['" + fField.name + "'])", 2000);
	else if (viaDOM)
		errorTimeouts[(errorTimeouts.length + 1)] = window.setTimeout("UnErrorize(document." + fField.form.name + "." + fField.name + ")", 2000);

	fField.focus();
}

function Errorize(fField) {
	if (navigator.appName.indexOf("Microsoft") > -1 || parseInt(navigator.appVersion) >= 5) {
		fField.style.background = "#ffff66";
	}
}

function UnErrorize(fField) {
	if (navigator.appName.indexOf("Microsoft") > -1 || parseInt(navigator.appVersion) >= 5) {
		fField.style.background = "#f5f5f5";
	}
}

function submitenter(myfield,e,submitstr)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
{
if (submitstr == '')
myfield.form.submit();
else
eval(submitstr);
return false;
}
else
return true;
}
function isValidDate(year, month, day) {
// checks if date passed is in valid dd/mm/yyyy format
  var test = new Date(year,month-1,day);
  var yr = test.getYear();
  yr = (yr < 1000) ? yr + 1900 : yr;
  if (year == yr && (month-1 == test.getMonth()) && (day == test.getDate())) {
     return true;
  }
  else {
    return false;
  }
}
//add by leaf Fang
function isValidTime(hour,min,sec)
{
	var time=hour+":"+min+":"+sec;
	var result=time.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
	if (result==null) return false;
	if (result[1]>23 || result[3]>59 || result[4]>59) return false;
	return true;
}

function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function notNumeric(text)
{
for (var i=0;i<text.length; i++)
  {
  var ch = text.charAt(i);
  if ((ch < '0' || ch > '9') && ch != '.')
  return true;
  }
  return false;
  }

  function AllDigit(text)
  {
  for (var i=0;i<text.length; i++)
    {
    var ch = text.charAt(i);
    if (ch < '0' || ch > '9')
    return false;
    }
    return true;
    }

    function checkAmount(amt)
    {
    if (amt.length < 4)
    {
    return false;
    }
    if (notNumeric(amt))
    {
    return false;
    }
    if (amt.charAt(amt.length-3) != '.')
    {
    return false;
    }
    return true;
    }

    function doSubmit(formObj, componentAction, operationAction)
    {
    if (formObj == null) formObj = document.generalSubmit;
    formObj.submit();
    }

    function doProxyScreenSubmit(formObj, screenName, componentAction, operationAction)
    {
    if (formObj == null) formObj = document.generalSubmit;
    doSubmit(formObj, componentAction, operationAction);
    }

	var formCancelled = false;
    function doConfirmSubmitAction(formObj, action, message)
    {
      //if (formObj == null) formObj = document.generalSubmit;
      if (action != null && action != "")
        formObj.action = action;
      if (confirm(message)){
	  	formCancelled = false;
        formObj.submit();
	  }
	  else{
	  	formCancelled = true;
	  }
    }

    function doConfirmSubmit(formObj, message)
    {
      doConfirmSubmitAction(formObj, "", message);
    }

    function moveFocusTextBox(srcTextBox, destTextBox, expectedLen)
    {
    if (srcTextBox.value.length < expectedLen)
      srcTextBox.focus();
      else
      destTextBox.focus();
      }

      function checkLength(textbox, neededLen, msg)
      {
      if (textbox.value.length != neededLen)
      {
      alert(msg);
      textbox.focus();
      }
      }

      function setSelectList(selectObj, selectedValue)
      {
      var i;
      var ops = selectObj.options;
      for (i = 0; i < ops.length; i++)
      {
      if (ops[i].value == selectedValue)
      selectObj.selectedIndex = ops[i].index;
      }
      }

      function setRadioGroup(radioObjs, radioValue)
      {
      var i;
      for (i = 0; i < radioObjs.length; i++)
      {
      if (radioObjs[i].value == radioValue)
      radioObjs[i].checked = true;
      }
      }

      function setMultiSelectList(selectObj, selectedValues)
      {
      var i, j;
      var ops = selectObj.options;
      for (i = 0; i < ops.length; i++)
      {
      for (j = 0; j < selectedValues.length; j++)
      {
      if (ops[i].value == selectedValues[j])
      ops[i].selected = true;
      }
      }
      }


      function MM_swapImgRestore()
      {
      var i,x,a=document.MM_sr;
      for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)
      {
      x.src=x.oSrc;
      }
      }

      function MM_preloadImages()
      {
      var d=document;
      if(d.images)
      {
      if(!d.MM_p)
      {
      d.MM_p=new Array();
      }
      var i,j=d.MM_p.length,a=MM_preloadImages.arguments;

      for(i=0; i<a.length; i++)
      {
      if (a[i].indexOf("#")!=0)
      {
      d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];
      }
      }
      }
      }

      function MM_findObj(n, d)
      { //v4.0
      var p,i,x;
      if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length)
      {
      d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
        for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
        if(!x && document.getElementById) x=document.getElementById(n);
        return x;
        }

        function MM_swapImage()
        { //v3.0
        var i,j=0,x,a=MM_swapImage.arguments;
        document.MM_sr=new Array;
        for(i=0;i<(a.length-2);i+=3)
        {
        if ((x=MM_findObj(a[i]))!=null)
        {
        document.MM_sr[j++]=x;
        if(!x.oSrc)
        x.oSrc=x.src;
        x.src=a[i+2];
        }
        }
        }


var old_menu = '';
var old_cell = '';
var old_td = '';
var old_border = '';


// function that controls the menu toggle
function menuclick( td, menu ,cellbar)
{
	if (document.all && document.getElementById) {
		this_menu = document.getElementById(menu).style;
        	this_td = document.getElementById(td).style;
        if( old_menu != menu ) {
    		if( old_menu !='' ) {
                prev_menu = document.getElementById(old_menu).style;
		prev_td = document.getElementById(old_td).style;
		prev_menu.display = 'none';

    		}
    		this_menu.display = 'block';

    		old_menu = menu;
    		old_cell = cellbar;
    		old_td = td;

  		} else {
    		this_menu.display = 'none';

    		old_menu = '';
    		old_cell = '';
    		old_td = '';
  		}
	}
        else if (document.all && !document.getElementById) {
		this_menu = document.all[menu].style;
        	this_td = document.all[td].style;
        if( old_menu != menu ) {
    		if( old_menu !='' ) {
                prev_menu = document.all[old_menu].style;
		prev_td = document.all[old_td].style;
		prev_menu.display = 'none';
    		}
    		this_menu.display = 'block';
    		old_menu = menu;
    		old_cell = cellbar;
    		old_td = td;
  		} else {
    		this_menu.display = 'none';
    		old_menu = '';
    		old_cell = '';
    		old_td = '';
  		}
        }
    return false
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	if (document.images) {


		m_fina_over = newImage("img/m_fina_over.gif");
		m_reco_over = newImage("img/m_reco_over.gif");
		m_repo_over = newImage("img/m_repo_over.gif");
		m_vouc_over = newImage("img/m_vouc_over.gif");
		m_uitu_over = newImage("img/m_uitu_over.gif");
		m_reta_over = newImage("img/m_reta_over.gif");
		m_pass_over = newImage("img/m_pass_over.gif");
		preloadFlag = true;
	}
}

function textLimit(field,maxlen) {
		if (field.value.length > maxlen){
			alert('You have reached the maximum length of this field.');
			field.focus();
			return false;
		}
		return true;	
}


