var util = {
   
  // function to add events
  addEvent : function(obj, type, func) {
    if (obj.addEventListener) {obj.addEventListener(type, func, false);}
    else if (obj.attachEvent) {
       obj["e" + type + func] = func;
       obj[type + func] = function() {obj["e" + type + func] (window.event);}
       obj.attachEvent("on" + type, obj[type + func]);
    }
    else {obj["on" + type] = func;}
  }
	
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	// var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if (  els[i].className.indexOf(searchClass) > -1 ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function siteSearch(link,element){
    var searchInput = document.getElementById(element).getElementsByTagName('input')[0];
    var regEx = /[^a-z0-9\s.,-]/gi;
    var query = searchInput.value.replace(/^\s*|\s*$/,"");
    if(searchInput.value == "Enter Keywords" || searchInput.value == "" || searchInput.value == " ") {                       
         alert('Please enter keywords.'); 
         searchInput.focus();
    }
    else if (regEx.test(query)) {
        alert('Please use only alpha-numeric characters');
        searchInput.focus();
    } 
    else {        
            // Trim white space from both ends of query
            query = query.replace(/^\s+|\s+$/g, '');
        
            query=query.replace('=','%3D');
            query=query.replace('&','%26');
            query=query.replace('?','%3F');
            query=query.replace('#','%23');
            window.location = link + "&q=" + query;
        }
    }
    
function locationSearch(link){    
    var locInput = document.getElementById('loc_input_holder').getElementsByTagName('input')[0]; 
    var regEx = /[^\w-'.,\s]/gi;
    var query = locInput.value.replace(/^\s*|\s*$/,"");
    if(query == "Enter City or ZIP" || query == "" || query.length == 1){                       
        alert('Please enter a city or ZIP Code.');
        locInput.focus();
    } 
    else if (regEx.test(query)) {
        alert("Please use only alpha-numeric characters or the characters , . ' or -");
        locInput.focus();
    }
    else if (IsNumeric(query) && (query.length != 5)) {
        alert('Please use a five digit zip code.');
        locInput.focus();
    }    
    else {
        var locType = 'facilities';
        if (document.getElementById('choices').getElementsByTagName('input')[1].checked == true) {
            locType = 'atms';            
        } else if (document.getElementById('choices').getElementsByTagName('input')[2].checked == true) {
            locType = 'all';            
        }
        
        // Trim white space from both ends of query
        query = query.replace(/^\s+|\s+$/g, '');
        
        query=query.replace('=','%3D');
        query=query.replace('&','%26');
        query=query.replace('?','%3F');
        query=query.replace('#','%23');
        window.location = link + "&loc=" + query + "&locType=" + locType;
    }
}

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 conditionalClear(current, field) {
    if (current == "Enter Keywords" || current == "Enter City or ZIP") {                       
        field.value = " ";                           
    }
}

function submitEnter(e, link, element){
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;
    if (keycode == 13 || keycode == 3) {
        siteSearch(link, element);
        return false;
    }
    else {
     return true;
    }
}
  
function submitLocationEnter(e, link){
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;
    if (keycode == 13 || keycode == 3) {
        locationSearch(link);
        return false;
    }
    else {
     return true;
    }
}

function submitDirectionsEnter(e, index){
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;
    if (keycode == 13 || keycode == 3) {
        getDirections(index);
        return false;
    }
    else {
     return true;
    }
}


function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function openWindow(url, width, height) {
    window.open(url, 'printFriendly', 'width=' + width + ',height=' + height + ',resizable=1,menubar=0,toolbar=0,scrollbars=1,location=0,status=0');
}

function openOffsiteLink(url) {
    window.open("warning.aspx?url="+url, '', 'width=600,height=400,resizable=1,menubar=1,toolbar=1,scrollbars=1,location=1,status=1');
}
