// JavaScript Document
function openPopUp(url, i_hi, i_wi, i_top) {
	i_screenWidth = screen.width;
	i_screenHeight = screen.height;
	if((i_hi == '') || (i_hi == 0) || (i_hi == 'undefined')) {
		i_winHeight = 570;
	}
	else {
		i_winHeight = i_hi;
	}	
	if((i_wi == '') || (i_wi == 0) || (i_wi == 'undefined')) {
		i_winWidth = 770;
	}
	else {
		i_winWidth = i_wi;
	}	
	if((i_top == '') || (i_top == 0) || (i_top == 'undefined')) {
		i_top = 1;
	}
	else {
		i_top = i_top;
	}	
	i_left = (i_screenWidth-i_winWidth)/2;				
	w_child = window.open(url, "_blank", "scrollbars,height=" + i_winHeight + ",width=" + i_winWidth + ",top=" + i_top + ",left=" + i_left + ",resizable=1");
	//w_child.focus;
	return;
}
function setBrowserValue(){
	var nVer = navigator.appVersion;
	var nAgt = navigator.userAgent;
	var browserName  = navigator.appName;
	var fullVersion  = ''+parseFloat(navigator.appVersion); 
	var majorVersion = parseInt(navigator.appVersion,10);
	var nameOffset,verOffset,ix;
	
	// In MSIE, the true version is after "MSIE" in userAgent
	if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
	 browserName = "Microsoft Internet Explorer";
	 fullVersion = nAgt.substring(verOffset+5);
	}
	// In Opera, the true version is after "Opera" 
	else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
	 browserName = "Opera";
	 fullVersion = nAgt.substring(verOffset+6);
	}
	// In Chrome, the true version is after "Chrome" 
	else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
	 browserName = "Chrome";
	 fullVersion = nAgt.substring(verOffset+7);
	}
	// In Safari, the true version is after "Safari" 
	else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
	 browserName = "Safari";
	 fullVersion = nAgt.substring(verOffset+7);
	}
	// In Firefox, the true version is after "Firefox" 
	else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
	 browserName = "Firefox";
	 fullVersion = nAgt.substring(verOffset+8);
	}
	// In most other browsers, "name/version" is at the end of userAgent 
	else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) 
	{
	 browserName = nAgt.substring(nameOffset,verOffset);
	 fullVersion = nAgt.substring(verOffset+1);
	 if (browserName.toLowerCase()==browserName.toUpperCase()) {
	  browserName = navigator.appName;
	 }
	}
	// trim the fullVersion string at semicolon/space if present
	if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
	if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);
	
	majorVersion = parseInt(''+fullVersion,10);
	if (isNaN(majorVersion)) {
	 fullVersion  = ''+parseFloat(navigator.appVersion); 
	 majorVersion = parseInt(navigator.appVersion,10);
	}
	
	document.getElementById("B_rowser").innerHTML = browserName + '&nbsp;' +fullVersion;
	
	//document.write('<br />Javascript Fn returning: <br><br />');
	//document.write('Browser name  = '+browserName+'<br>');
	//document.write('Full version  = '+fullVersion+'<br>');
	//document.write('Major version = '+majorVersion+'<br>');
	//document.write('navigator.appName = '+navigator.appName+'<br>');
	//document.write('navigator.userAgent = '+navigator.userAgent+'<br>');
	//WRITE THE BROWSER NAME TO THE SUBMIT FORM HIDDEN VALUE
	if(document.frm_submit){
		
			document.frm_submit.client_browser.value = browserName + ' ' + fullVersion;
		
	}
}

function checkemail(str){
	//alert(str);
	//var Cleaned_str = removeSpecialChar(str);
	//alert(Cleaned_str);
	//var str=document.validation.emailcheck.value
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	//var filter=/^[a-zA-Z]+([_\.-]?[a-zA-Z0-9]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,4})+$/
	//var filter=/^[a-zA-Z0-9.][a-zA-Z0-9-_\s]+@[a-zA-Z0-9-\s].+\.[a-zA-Z]{2,5}$/
	if (filter.test(str)){
		testresults=true;
	}
	else{
	
		testresults=false;
	}
	return testresults;
}
function removeSpecialChar(str) {
    
	return str.replace(/[\(\)\~\-\s,]/g, "");
	
}

function IsNumeric(t_string) {
   var t_validChars = "0123456789.,";
   var b_num = true;
   var c_char;
 
   for (i = 0; i < t_string.length && b_num == true; i++) { 
      c_char = t_string.charAt(i); 
      if (t_validChars.indexOf(c_char) == -1) {
         b_num = false;
      }
   }
   return b_num;   
}

function validate(){
	var b_Valid, t_Error, f_form;
	b_Valid = true;
	t_Error = "";
	f_form = document.frm_submit;
	
	//Contact Name
	if (f_form.contact_name.value == ""){
		b_Valid = false;
		t_Error = t_Error + "Please enter a contact name. \n";
		
	}
	
	//Email
	if(f_form.contact_email.value == ""){
		t_Error = t_Error + "Please enter an e-mail address.\n";
		b_valid = false;
	}
	else{
		if(checkemail(f_form.contact_email.value) == false){
			t_Error = t_Error + "Invalid email address.\n";
			b_valid = false;
		}
	}
	/*//Phone contact_phone
	if (f_form.contact_phone.value == ""){
		b_Valid = false;
		t_Error = t_Error + "Please enter a phone number!. \n";
		
	}*/
	
	//Desc problem_description
	if (f_form.problem_description.value == ""){
		b_Valid = false;
		t_Error = t_Error + "Please enter a short problem description. \n";
		
	}
	
	if(b_Valid == false){
		alert(t_Error);
	}
	return b_Valid;

}
//function for the expand/collapse list of contacts under loc
function toggle(box,fontId,whichRow) {
 	//box is the id of the DIV tag
	//fontId is the id of the font tag
	//whichRow is the subscript of the repeating row
	var whichSign, plusSign, minusSign;
 	//whichSign is what the font tag is set to, it is a + to start with 
	whichSign = (document.getElementById(fontId + whichRow).innerHTML);
  	plusSign = '+'
	minusSign = '-'
	if (whichSign == '+'){
	//the default style of the DIV is set to none, reset that to block(which shows the DIV contents)
		if ((document.getElementById(box).style.display)=='none'){
			(document.getElementById(box).style.display) = "block";
		}
		//change the sign to minus when plus is cliked and change the display style of the DIV 
		document.getElementById(fontId + whichRow).innerHTML = minusSign;
		document.getElementById(box).style.display = "block";
	}
	else if (whichSign == '-'){
		document.getElementById(fontId + whichRow).innerHTML = plusSign;
		document.getElementById(box).style.display = "none";
	}
}

function runClose() {		
	window.opener.location.reload();
	window.close();	
	return;
}

function populateStates(f_form, t_default)
{	
	a_States = new Array("AL","AK","AZ","AR","CA","CO","CT","DC","DE","FL","GA",
						 "HI","ID","IL","IN","IA","KS","KY","LA","ME","MD",
						 "MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ",
						 "NM","NY","NC","ND","OH","OK","OR","PA","RI","SC",
						 "SD","TN","TX","UT","VT","VA","WA","WV","WI","WY");

	for(count=0; count < a_States.length; count++){
   		f_form.options[count] = new Option(a_States[count]);
		f_form.options[count].value = a_States[count];
 	}
	
	f_form.value = t_default;
	
	return;
}

//NEW FUNCTIONS BELOW THAT i HAVE NOT TESTED
function isValidIPAddress(ipaddr) {
   var re = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
   if (re.test(ipaddr)) {
      var parts = ipaddr.split(".");
      if (parseInt(parseFloat(parts[0])) == 0) { return false; }
      for (var i=0; i<parts.length; i++) {
         if (parseInt(parseFloat(parts[i])) > 255) { return false; }
      }
      return true;
   } else {
      return false;
   }
}

function validateNetMask(mask){
     
	 //m[0] can be 128, 192, 224, 240, 248, 252, 254, 255
	//m[1] can be 128, 192, 224, 240, 248, 252, 254, 255 if m[0] is 255, else m[1] must be 0
	//m[2] can be 128, 192, 224, 240, 248, 252, 254, 255 if m[1] is 255, else m[2] must be 0
	//m[3] can be 128, 192, 224, 240, 248, 252, 254, 255 if m[2] is 255, else m[3] must be 0

	var flag = '';
	var correct_range = {128:1,192:1,224:1,240:1,248:1,252:1,254:1,255:1,0:1};
	var m = mask.split('.');
	
	for (var i = 0; i <= 3; i ++) {
		if (!(m[i] in correct_range)) {
			flag = 'Mask is not valid';
			break;
		}
	}
	
	if ((m[0] == 0) || (m[0] != 255 && m[1] != 0) || (m[1] != 255 && m[2] != 0) || (m[2] != 255 && m[3] != 0)) {
		flag = 'Mask is not valid';
	}
	//alert(flag);
	return flag;
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

<!--
// Kaosweaver Calendar Settings - do not remove
// by Paul Davis - http://www.kaosweaver.com
// KW_lang[English]
// KW_order[0,1,2]
// KW_del1[/]
// KW_del2[/]
// KW_dd[true]

var sDate = new Array();
var mName = new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var wName = new Array("Su","Mo","Tu","We","Th","Fr","Sa")
var cFontName = "Arial, Helvetica, sans-serif;"
var KW_color = new Array("#ffffff","#ffcccc","#999999","#ffffff","#ccffcc","#cccccc","#000000","#000000")
var KW_cl=0;
var KW_od=-1;
var KW_tmo=0;
function m_class(m,d,y) { 
	this.month=m;this.day=d;this.year=y;this.output=this.month+"/"+this.day+"/"+this.year;
	var kd=new Date();this.special=checkDates(this.month,this.day,this.year)
	this.today=((kd.getMonth()+1)==this.month && kd.getDate()==this.day && kd.getFullYear()==this.year)
	var td=new Date(this.year, (this.month-1), this.day+KW_od);this.past=(KW_od==-1)?0:(kd>td)
}

// Kaosweaver End of Calendar Settings - do not remove

function checkDates(m1,d1,y1) {
	var rStr=false;for(var i=0;i<sDate.length;i++) {var tDate=sDate[i].split(",");
		if (tDate[2]=="*" || tDate[2]==y1) {if (tDate[1]==d1 && tDate[0]==m1)	rStr=true;
		}}return rStr;
}

function KW_doCalendar(obj,E,m,y) {
  var d=new Date();f=0;d.setDate(1);if (!m && m!=0) {m=d.getMonth();f=KW_cl}
  if (f==1 && MM_findObj('KW_selectedMonth').value!=-1) 
  m=MM_findObj('KW_selectedMonth').value-1;d.setMonth(m);	
  if (!y) y=d.getFullYear();if (f==1 && MM_findObj('KW_selectedYear').value!=-1) 
  y=MM_findObj('KW_selectedYear').value;d.setFullYear(y);dy=d.getDay();if (!E) E=0;
  if(E==1)dy=(dy==0)?6:dy-1;dP=new Date();dP.setMonth(m);dP.setDate(0);
  pStart=dP.getDate()-dy+1;dStr=new Array();for (i=pStart;i<dP.getDate()+1;i++) { tmo=(KW_tmo)?"":i;
  tMonth=(m==0)?"12":m;tYear=(m==0)?y-1:y;dStr[dStr.length]=new m_class(tMonth,tmo,tYear);
  }EOM=false;for (i=1;!EOM;i++){d.setDate(i);if (m!=d.getMonth()) EOM=true; else { 
  dStr[dStr.length]=new m_class((Number(m)+1),i,y);}}cnt=1;si=0;
  if(E==1)si=(d.getDay()==0)?6:d.getDay()-1;else si=d.getDay();	for (i=si;i<7;i++) {
  tMonth=(m==11)?"1":Number(m)+2;tYear=(m==11)?Number(y)+1:y; tmo=(KW_tmo)?"":cnt;
  dStr[dStr.length]=new m_class(tMonth,tmo,tYear); cnt++;}pM=(m==0)?11:m-1;
  pY=(m==0)?y-1:y;nM=(m==11)?0:Number(m)+1;nY=(m==11)?Number(y)+1:y;
  wStr="<html><head><style type=\"text/css\"><!--td {  font-family: "+cFontName+" font-size: 12px; }\n.tblHdr { font-weight: bold; color: "+KW_color[0]+"; background-color: "+KW_color[6]+" }\n.subTbl{ color: "+KW_color[0]+"; background-color: #666666;  text-align: center}-->\n</style>\n<title>"+mName[m]+", "+y+"</title>\n</head>\n<body  topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\" leftmargin=\"0\" onLoad=\"window.focus()\">\n<table width=\"100%\" border=\"0\" cellspacing=\"0\">\n<tr>\n<td bgcolor=\""+KW_color[6]+"\">\n<table width=\"100%\" border=0>\n"
  wStr+="<tr>\n<td align=center bgcolor=\""+KW_color[6]+"\" class=\"tblHdr\" colspan=\"4\"><a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+pM+"','"+pY+"');\" class=\"tblHdr\">&laquo</a>&nbsp;&nbsp;"+mName[m]+"&nbsp;&nbsp;<a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+nM+"','"+nY+"');\"  class=\"tblHdr\">&raquo</a></td>\n<td colspan=3 align=center class=\"tblHdr\"><a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+m+"','"+(y-1)+"');\" class=\"tblHdr\">&laquo</a>&nbsp;&nbsp;"+y+"&nbsp;&nbsp;<a href=\"javascript:window.opener.KW_doCalendar('"+obj+"',"+E+",'"+m+"','"+(Number(y)+1)+"');\"  class=\"tblHdr\">&raquo</a></td>\n</tr>\n"
  wStr+="<tr>\n<td class=\"subTbl\">"+wName[0]+"</td><td class=\"subTbl\">"+wName[1]+"</td><td class=\"subTbl\">"+wName[2]+"</td><td class=\"subTbl\">"+wName[3]+"</td><td class=\"subTbl\">"+wName[4]+"</td><td class=\"subTbl\">"+wName[5]+"</td><td class=\"subTbl\">"+wName[6]+"</td>\n</tr>\n"
  for (x=0;x<parseInt(dStr.length/7);x++) {	wStr+="<tr>\n";	for (y=0;y<7;y++) {
  yT=(E==1)?5:0;bC=(y==yT||y==6)?KW_color[2]:KW_color[3];
  if ((Number(m)+1)!=dStr[x*7+y].month) bC=KW_color[5]; if (dStr[x*7+y].special) 
  bC=KW_color[4];if (dStr[x*7+y].today) bC=KW_color[1];
  a0=(KW_cl!=1)?"":"window.opener.MM_findObj('KW_selectedMonth',window.opener.document).value='"+dStr[x*7+y].month+"';window.opener.MM_findObj('KW_selectedYear',window.opener.document).value='"+dStr[x*7+y].year+"'; "  
  a1=(dStr[x*7+y].past)?"":"<a href=\"javascript:window.opener.MM_findObj('"+obj+"',window.opener.document).value='"+dStr[x*7+y].output+"';"+a0+" window.close();\" >";
  a2=(dStr[x*7+y].past)?"":"</a>";
  wStr+="<td align=\"center\" bgcolor="+bC+">"+a1+dStr[x*7+y].day+a2+"</td>\n";
	}	wStr+="</tr>\n";}	wStr+="<tr><td colspan=7></td></tr></table></td></tr></table></body></html>";
	var w = parseInt(screen.width/2-75); var h=parseInt(screen.height/2-75);
	var look='width=170,height=155,left='+w+',top='+h;	popwin=window.open('','calendar',look);
	popwin.document.open();	popwin.document.write(wStr);	popwin.document.close();
}
/*function checkOS() {
  if(navigator.userAgent.indexOf('IRIX') != -1)
    { var OpSys = "Irix"; }
  else if((navigator.userAgent.indexOf('Win') != -1) &&
  (navigator.userAgent.indexOf('95') != -1))
    { var OpSys = "Windows95"; }
  else if(navigator.userAgent.indexOf('Win') != -1)
    { var OpSys = "Windows3.1 or NT"; }
  else if(navigator.userAgent.indexOf('Mac') != -1)
    { var OpSys = "Macintosh"; }
  else { var OpSys = "other"; }
  return OpSys;
}*/
// -->

function showMessage(msg){
	//alert(msg);
	document.getElementById("returnMsg").innerHTML = msg;
	setTimeout("hideMessage()", 5000);
}
function hideMessage(){
	//alert("gets to hideMessage");
	document.getElementById("returnMsg").style.visibility = "hidden";
}
