// JavaScript Document
function isDate(strDate)
{
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    return strDate.match(RegExPattern) && strDate != '';
}

function numFix(theCon, deci)
{
	var sVal = theCon.value;
	var sOk = "1234567890.";
	for (i = 0; i < sVal.length; i++)
	{
		var ch = sVal.charAt(i);
		if (sOk.indexOf(ch) < 0)
		{
			sVal = sVal.replace(ch, 'x');
		}
	}
	sVal = sVal.replace(/x/g, '');
	var n = parseFloat(sVal);
	if (isNaN(n)) n = 0;
	n = n.toFixed(deci);
	theCon.value = n;
}

function showChanged() {
	document.getElementById('saveChanges').style.display="block";	
}

var lastElement = '';
function SelectAll(id)
{
	if (lastElement != id) {
    	document.getElementById(id).focus();
    	document.getElementById(id).select();
	}
	lastElement = id
}


function swapRows(id, id2)
{
	var oRow = document.getElementById('row' + id);
	var oRow2 = document.getElementById('row' + id2);
	
	var datarow1 = document.getElementById('datarow' + id);
	var datarow2 = document.getElementById('datarow' + id2);
	var val1 = datarow1.value;
	var val2 = datarow2.value;
	
	//alert('row' + id + ': ' + datarow1.value + ' ... row' + id2 + ': ' + datarow2.value);
	
	for(var i = 0; i < oRow.cells.length; i++)
	{
		if (oRow.cells[i].className != 'ncell')
		{
			if (oRow.cells[i] && oRow2.cells[i])
			{
				var temp = oRow.cells[i].innerHTML;
				oRow.cells[i].innerHTML = oRow2.cells[i].innerHTML;
				oRow2.cells[i].innerHTML = temp;
			}
		}
	}
	
	datarow1.value = val2;
	datarow2.value = val1;
	
	var val1 = datarow1.value;
	var val2 = datarow2.value;
	
	//alert('row' + id + ': ' + val1 + ' ... row' + id2 + ': ' + val2);
}

function setOrder(o, newOrder){
	var oObject = document.getElementById(o)
	alert('before: ' + oObject.value)
	oObject.value = newOrder;
	//alert('after: ' + oObject.value);
	//alert('new value = ' + newOrder);
	updateDOMForFields('MasterForm')
}

function Popup(sURL, w, h) {
	window.open( sURL, "myWindow", "status = 1, height = " + h + ", width = " + w + ", resizable = 1,scrollbars=yes" )
}

function updateDOMForFields(id) {
  elem=document.getElementById(id);
  alert(id);
  i=elem.getElementsByTagName('input');
  s=elem.getElementsByTagName('select');
  t=elem.getElementsByTagName('textarea');
  field_sets=Array(i,s,t);
  for(x=0;x<field_sets.length;x++){
    set=field_sets[x];
    for(y=0;y<set.length;y++){
      updateDOM(field_sets[x][y]);
    }
  }
}

function updateDOM(inputField) {
    // if the inputField ID string has been passed in, get the inputField object
    if (typeof inputField == "string") {
        inputField = document.getElementById(inputField);
    }

    if (inputField.type == "select-one") {
        for (var i=0; i<inputField.options.length; i++) {
            if (i == inputField.selectedIndex) {
                inputField.options[inputField.selectedIndex].setAttribute("selected","selected");
            }
        }
    } else if (inputField.type == "text" || inputField.type == "hidden") {
		//alert('updating ' + inputField + ' DOM  to ' + inputField.value);
        inputField.setAttribute("value",inputField.value);
    } else if (inputField.type == "textarea") {
        inputField.setAttribute("value",inputField.value);
    } else if ((inputField.type == "checkbox") || (inputField.type == "radio")) {
        if (inputField.checked) {
            inputField.setAttribute("checked","checked");
        } else {
            inputField.removeAttribute("checked");
        }
    }
}

function swapImg(imagename, bOver) {
	//alert(imagename);
	if(bOver == 1) {
			document.getElementById(imagename).src = '/images/nav_' + imagename + '_on.jpg';
	} else {
			document.getElementById(imagename).src = '/images/nav_' + imagename + '.jpg';
	}
}
        
function swapImgGif(imagename, bOver) {
	//alert(imagename);
	if(bOver == 1) {
			document.getElementById(imagename).src = '/images/' + imagename + '_over.gif';
	} else {
			document.getElementById(imagename).src = '/images/' + imagename + '.gif';
	}
}

function bookmarkus() {
 var url = document.location.href;
 var title = document.title;
 if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
 window.external.AddFavorite(url,title);
 } else if (navigator.appName == "Netscape") {
 window.sidebar.addPanel(title,url,"");
 } else {
 alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
 }
}
 
 
function isValidEmailAddress(s) {
	var email = s;
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(s)) {
		return false;
	} else {
		return true;	
	}
}
function isValidURL(s) {
	var email = s;
	var filter = /https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
	if (!filter.test(s)) {
		return false;
	} else {
		return true;	
	}
}