//Place a check for any edit windows open... if there are, make them the forefront window
var wndEditWindow = null

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) {
		nav_but_govt_over = newImage("_img/nav_but_govt-over.gif");
		nav_but_business_over = newImage("_img/nav_but_business-over.gif");
		nav_but_political_over = newImage("_img/nav_but_political-over.gif");
		nav_but_personal_over = newImage("_img/nav_but_personal-over.gif");
		preloadFlag = true;
	}
	
	// This function is called on every page, so lets put some event wireups here.
	
	/* 
		This anonymous function will check to see if we have an open edit window on focus,
		if we do make sure it keeps focus.
	*/
	document.body.onfocus = function()
	{
		if (wndEditWindow)
		{
			// For some reason when we close the popup the variable still points to an open window.
			try 
				{wndEditWindow.focus();}
			catch (e){}
		}
		
	};
	
}


function formatnumber(f_val,f_spaces)
{
	var t_power = 0;
	var t_newnumber = 0;
	t_power = raise(10,f_spaces);
	t_newnumber = f_val*t_power;
	t_newnumber = Math.round(t_newnumber)
	var t_stringvalue = ""
	t_stringvalue='' + t_newnumber
	var t_decimal = t_stringvalue.substring(t_stringvalue.length-f_spaces)
	t_stringvalue = t_stringvalue.substring(0,t_stringvalue.length-f_spaces) + '.' + t_decimal
	
	t_stringvalue = t_stringvalue
	return t_stringvalue;
}

function raise(f_val,f_power)
{
	var t_result=f_val
	for (x=2;x<=f_power;x++)
	{
		t_result=t_result*f_val
	}
	return t_result;
}

//Open window with progress bar.
/*function ProgressBar(iUploadID){
  var ProgressURL
  ProgressURL = './_upload/progress.asp?UploadID=' + iUploadID
  var v = window.open(ProgressURL,'_blank','toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,resizable=yes,width=350,height=200')
  
  return true;
}*/

// Function to move the selected options from one select list to another
function moveSelectedOptions(from,to) 
{
	// Move them over
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			to.options[to.options.length] = new Option( o.text, o.value, false, false);
		}
	}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if (o.selected) {
   			from.options[i] = null;
		}
	}
	//sort select boxes
	sortSelect(from);
	sortSelect(to);
	
	from.selectedIndex = -1;
	to.selectedIndex = -1;
}

// Sorts a select list
function sortSelect(obj) 
{
	var o = new Array();
	for (var i=0; i<obj.options.length; i++) 
	{
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
	}
	o = o.sort
	( 
		function(a,b) 
		{ 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
		} 
	);
 
	for (var i=0; i<o.length; i++) 
	{
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}

// Selects all the options in a select list
function select_all(obj)
{
	for (var i=0; i<obj.options.length; i++)
	{
		obj.options[i].selected=true;
	}
}


var wndEditWindow = null

//**** This function opens a window to edit the account information
function EditAccount(iAccountNumber)
{
	var strURL 		= "maintain-accounts-edit.asp?K=" + iAccountNumber;
	//window height modified by Anthony Chodor - 1/16/2007
	var strOptions	= "width=420,height=500,scrollbars=yes,status=no"
	
	if (wndEditWindow)
	{
		wndEditWindow.close();
	}
	wndEditWindow = window.open(strURL,"EditForm",strOptions);
}

//**** This function opens a window to edit the address information
function EditMasterList(sCLNumber)
{
	if (sCLNumber == 0)
    { 
   	  	return false;
		self.close();
 	
   }else{
		var strURL 		= "master-edit.asp?K=" + sCLNumber;
		//window height modified by Anthony Chodor - 1/16/2007
		var strOptions	= "width=420,height=180,scrollbars=yes,status=no"
	
		if (wndEditWindow)
		{
			wndEditWindow.close();
		}
		wndEditWindow = window.open(strURL,"EditForm",strOptions);
	}//end else
}

//**** This function opens a window to edit the address information
function EditAddress(iAddressKey,iAddressListKey)
{
	var strURL 		= "master-lists-edit.asp?K=" + iAddressKey + "&L=" + iAddressListKey;
	var strOptions	= "width=420,height=535,scrollbars=yes,status=no,resizable=yes"
	
	if (wndEditWindow)
	{
		wndEditWindow.close();
	}
	wndEditWindow = window.open(strURL,"EditForm",strOptions);
}

function EditCallAddress(iUserKey,iCallListNumber)
{
	var strURL		= "dial-lists-user-edit.asp?K=" + iUserKey + "&L=" + iCallListNumber;
	var strOptions	= "width=430,height=535,scrollbars=yes,status=no,resizable=yes"

	if (wndEditWindow)
	{
		wndEditWindow.close();
	}
	wndEditWindow = window.open(strURL,"EditUser",strOptions);
}



//**** This function opens a window to edit the user information
function EditUser(iUserNumber,iAccountNumber)
{
	//if (iUserNumber==0){
	 //  window.opener.location.reload(true);
	 //  window.close();
	  // }else
	
	var strURL 		= "maintain-users-edit.asp?K=" + iUserNumber + "&A=" + iAccountNumber;
	var strOptions	= "width=420,height=550,scrollbars=yes,status=no"
	
	if (wndEditWindow)
	{
		wndEditWindow.close();
	}
	wndEditWindow = window.open(strURL,"EditForm",strOptions);
	//}
}

//**** This function opens a window to edit the Dial List information
function EditCallList(iCallListKey)
{
   if (iCallListKey == 0)
    { 
   	  return false;
	  self.close();
 
   }else
   {
		var strURL 		= "dial-lists-edit.asp?K=" + iCallListKey
		var strOptions	= "width=500,height=200,scrollbars=yes,status=no,dependent=true,alwaysRaised=true,"
	
		if (wndEditWindow)
		{
			wndEditWindow.close();
		}
		wndEditWindow = window.open(strURL,"EditForm",strOptions);
	}
}

//**** edit a message
function EditMessage(iMessagesNumber)
{
	var strURL 		= "messages-edit.asp?K=" + iMessagesNumber
	var strOptions	= "width=620,height=400,scrollbars=yes,status=no"
	
	if (wndEditWindow)
	{
		wndEditWindow.close();
	}
	wndEditWindow = window.open(strURL,"EditForm",strOptions);
}

//**** Deletes an account
function DeleteAccount(iAccountNumber)
{
	if (window.confirm("Are you sure you want to delete this account?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-account.asp?K="+iAccountNumber+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iAccountNumber);
		return false;
	}
	
}

//**** Deletes a user
function DeleteUser(iUserNumber)
{
	if (window.confirm("Are you sure you want to delete this user?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-user.asp?K="+iUserNumber+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iUserNumber);
		return false;
	}
	
}

//**** Deletes an address
function DeleteAddress(iAddressKey)
{
	if (window.confirm("Are you sure you want to delete this address?"))
	{
		var grabber = new XMLRemoteRequest();
		//alert(iAddressKey)
		grabber.getRemoteDocumentString("./delete-address.asp?K="+iAddressKey+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iAddressKey);
		return false;
	}
	
}

//**** Deletes a list
function DeleteList(iCLNumber)
{
	if (window.confirm("Are you sure you want to delete this list?"))
	{
		var grabber = new XMLRemoteRequest();
		//var x = 
		grabber.getRemoteDocumentString("./delete-list.asp?K="+iCLNumber+"&R="+Math.floor(Math.random() * 1000));
		//alert(x);
		HideRow(iCLNumber);
		return false;
	}
}

//**** Deletes a message
function DeleteMap(iMessagesNumber)
{
	if (window.confirm("Are you sure you want to delete this message?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-message.asp?K="+iMessagesNumber+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iMessagesNumber);
		return false;
	}
}

//**** Deletes a map
function DeleteMap(iMapKey)
{
	if (window.confirm("Are you sure you want to delete this map?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-map.asp?K="+iMapKey+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iMapKey);
		return false;
	}
}

//**** Deletes a map file
function DeleteMapFile(iMapFileKey,iMapKey)
{
	if (window.confirm("Are you sure you want to delete this map file?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-map-file.asp?K="+iMapFileKey+"&M="+iMapKey+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iMapFileKey);
		return false;
	}
}

//**** Deletes a message
function DeleteMessage(iMessageNumber)
{
	if (window.confirm("Are you sure you want to delete this message?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-message.asp?K="+iMessageNumber+"&R="+Math.floor(Math.random() * 1000));
		HideRow(iMessageNumber);
		return false;
	}
}

//**** Deletes a Dial List
function DeleteCallList(iCallListKey)
{
	if (window.confirm("Are you sure you want to delete this Dial List?"))
	{
		var grabber = new XMLRemoteRequest();
		grabber.getRemoteDocumentString("./delete-dial-list.asp?K="+iCallListKey+"&R="+Math.floor(Math.random() * 1000))
		HideRow(iCallListKey);
		return false;
	}
}



//**** function to replace data in a row

function ReplaceRowData(iRowKey,arrData)
{
	var objRow = document.getElementById("row" + iRowKey)
	for (x=0;x<objRow.cells.length;x++)
	{
		if (arrData[x])
		{
			objRow.cells[x].innerHTML = arrData[x];
		}
	}
	return false;
}

//**** function to color an edited row

function ColorRow(iRowKey,sColor)
{
	var objRow = document.getElementById("row" + iRowKey)
	for (x=0;x<objRow.cells.length;x++)
	{
		objRow.cells[x].style.backgroundColor = sColor;
	}
	return false;
}

function HideRow(iRowKey)
{
	var objTable = document.getElementById("mainTable");
	
	var objRow = document.getElementById("row" + iRowKey);
	var iShowCount = 0;
	
	objRow.style.display = "none"
	
	for (var x=1;x<objTable.rows.length;x++)
	{
		if (objTable.rows[x].style.display != "none" && objTable.rows[x].id.length > 0)
		{
			iShowCount++
			for (var y=0;y<objTable.rows[x].cells.length;y++)
			{
				if (iShowCount % 2 == 0)
					objTable.rows[x].cells[y].style.backgroundColor = "#ffffff";
				else
					objTable.rows[x].cells[y].style.backgroundColor = "#efefef";
			}
		}	
	}
	return false;
}

function SelectAll(obj)
{
	for (var x = 0;x<obj.length;x++)
	{
		obj[x].checked = true;
	}
}

function MapFormValid()
{
	var grabber = new XMLRemoteRequest();
	var county = document.getElementById("MAP_COUNTY")
	county = county.options[county.selectedIndex].value;
	
	var file = document.getElementById("FILE1").value;
	if (file.indexOf(".zip")<0 && file.indexOf(".ZIP")<0)
	{
		alert("Please select a .zip file containing the Tiger\\Line data.");
		return false;
	}
	
	var result = grabber.getRemoteDocumentString("./__util_validate_functions.asp?TYPE=MapForm&COUNTY="+county+"&X="+Math.floor(Math.random() * 1000));
	if ("EXISTS"==result)
	{
		return window.confirm("A map is already associated with this state/county. Press OK to overwrite.");
	}
	
	grabber = null;
	return true;
	
}
/*
function MapUploadValid(UploadId)
{
	var file = document.getElementById("FILE1").value;
	if (file.indexOf(".zip")<0 && file.indexOf(".ZIP")<0)
	{
		alert("Please select a .zip file containing the Tiger\\Line data.");
		return false;
	}
	var county = document.getElementById("mfl_ctc_key").selectedIndex;
	if (county==0)
	{
		alert("Please select a county.");
		return false;
	}
	
	return ProgressBar(UploadId);
	
}*/

function MasterUploadValid()
{
	var file = document.getElementById("FILE1").value;
	if (!file.length>0)
	{
		alert("Please select file.");
		return false;
	}
	
	var name = document.getElementById("cl_name").value
	if (!name.length>0)
	{
		alert("Please enter a name");
		return false;
	}
	return true;
	
}

function CallListMapValid()
{
	var list = document.getElementById("CL_mst_key")
	list = list.options[list.selectedIndex].value;
	
	var map = document.getElementById("map_key")
	map = map.options[map.selectedIndex].value;
	
	var errmsg = "";
	
	if (list==0)
	{
		errmsg = errmsg + "Please select a Master List";
	}
	if (map==0)
	{
		if (errmsg.length>0)
		{
			errmsg = errmsg + "\n";
		}
			
		errmsg = errmsg + "Please select a Map";
	}
	
	if (errmsg.length>0)
	{
		alert(errmsg);
		return false;
	}
	return true;
}


function CallListSearchValid()
{
	var list = document.getElementById("CL_mst_key")
	list = list.options[list.selectedIndex].value;
	
	var errmsg = "";
	
	if (list==0)
	{
		errmsg = errmsg + "Please select a Master List";
	}
	
	if (errmsg.length>0)
	{
		alert(errmsg);
		return false;
	}
	return true;
}
function validEmail() {
	 var email = document.getElementById("CLEmail")
     var emailReg = "^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$";
     var regex = new RegExp(emailReg);
     if (regex.test(email)==false){
	    alert('Please Enter Valid Email');
		return false;}
		return true;
	  
  }
function ValidInput(){
if (document.getElementById('CLPhone_cl').value.length==0)
	{
		alert('Please enter a phone');
		return false;
	}
	return true;

}
function CallListAddValid()
{
	if (document.getElementById('cl_name').value.length==0)
	{
		alert('Please enter a list name');
		return false;
	}
	return true;
}

function CheckAll(name, on){
	var checks = document.getElementsByName(name);
	var x
	for(x=0;x<checks.length;x++){
		checks[x].checked=on;
	}
}

//**** XML Grabber Stuff

function XMLRemoteRequest()
{
	this.XMLHttpComponent = this.getXMLHttpComponentInstance();
}

XMLRemoteRequest.prototype.getXMLHttpComponentInstance = function ()
{
	var xComp = null;
	try 
	{
		xComp = new XMLHttpRequest();
		this.handleRequestAsString = netscapeRequestAsStringHandler;
		this.handleRequestDOM = netscapeRequestDOMHandler;
	} 
	catch (e) 
	{
		try 
		{
			xComp = new ActiveXObject("Microsoft.XMLHTTP");
			this.handleRequestAsString = ieRequestAsStringHandler;
			this.handleRequestDOM = ieRequestDOMHandler;
		} catch (e) {
			window.alert(e);
		}
	}

	return xComp;
}

XMLRemoteRequest.prototype.getRemoteDocument = function (urlString) {
	var rv =  this.handleRequestDOM(this.XMLHttpComponent, urlString);
        return rv;

}

XMLRemoteRequest.prototype.getRemoteDocumentString = function (urlString) {
	return this.handleRequestAsString(this.XMLHttpComponent, urlString);
}


// Netscape specifics
function netscapeRequestDOMHandler(xmlComp, urlString) {
	xmlComp.open("GET", urlString, false);
	xmlComp.send(null);

	if (xmlComp.responseXML) {
		return xmlComp.responseXML;
	}

	return null;
}

function netscapeRequestAsStringHandler(xmlComp, urlString) {
	xmlComp.open("GET", urlString, false);
	xmlComp.send(null);
	
	if (xmlComp.responseText) {
		var dummyDoc = xmlComp.responseXML;
		//var dummySerializer = new XMLSerializer();
		//docString = dummySerializer.serializeToString(dummyDoc);

		return xmlComp.responseText;
	}

	return null;
}

// IE specifics
function ieRequestDOMHandler(xmlComp, requestString) {
	xmlComp.open("GET", requestString, false);
	xmlComp.send();
	return xmlComp.responseXML;
}

function ieRequestAsStringHandler(xmlComp, requestString) {
	xmlComp.open("GET", requestString, false);
	xmlComp.send();

	return xmlComp.responseText;
}