var loaded = false;
function trapint(form_name,formField) {
	frm = document.forms[form_name];
	var field = frm.elements[formField];
	if (field.value.length == 0) {
		if (event.keyCode==45 || (event.keyCode>46 && event.keyCode<58)) {
			return true;
		} else {
			event.returnValue = false;
			return false;
		}
	} else {
		if (event.keyCode>46 && event.keyCode<58) {
			return true;
		} else {
			event.returnValue = false;
			return false;
		}
	}
}
function trapintmax(event,field,max_pages,this_page){
	if(!document.all){
		thisEvent=event.which;
		if(thisEvent==0){
			return false;
		}
		if(thisEvent==8){
			return false;
		}
		if (thisEvent==46) {
			return false;
		}
	}else{
		thisEvent=event.keyCode;
	}

	if (field.value.length == 0) {
		if (thisEvent==45 || (thisEvent>46 && thisEvent<58)) {

		} else {
			event.returnValue = false;
			if(event.preventDefault){
				event.preventDefault();
				event.stopPropagation();
			}
			return false;
		}
	} else {
		if (thisEvent>46 && thisEvent<58) {

		} else {
			event.returnValue = false;
			if(event.preventDefault){
				event.preventDefault();
				event.stopPropagation();
			}
			return false;
		}
	}

	var val = field.value;
    var charCode = (event.charCode) ? event.charCode : event.keyCode;
	var char = String.fromCharCode(charCode);
	var val = parseInt(val+char);
	var max = parseInt(max_pages);

	if (val>max){
		event.returnValue = false;
		if(event.preventDefault){
			event.preventDefault();
			event.stopPropagation();
		}
		alert('There are only '+max_pages+' pages!');
		field.value = '';
		return false;
	}else{
		return true;
	}
}
function trapmax(field,max_pages){
	var val = parseInt(field.value);
	var max = parseInt(max_pages);
	if (val>max){
		field.value = max_pages;
		alert('There are only '+max_pages+' pages!');
		return false;
	}else{
		return true;
	}
}
var aUpperCase = /[A-Z]/;
var aLowerCase = /[a-z]/;
var aNumber = /[0-9]/;
var aSpace = /[ ]/;
var line1 = 0;
var line2 = 0;
var line3 = 0;

function delkey(event){
	if(!document.all){
		thisEvent=event.which;
	}else{
		thisEvent=event.keyCode;
	}
	if (thisEvent==46) {
		alert('Please use the backspace to remove your entry');
		event.returnValue = false;
		if(event.preventDefault){
			event.preventDefault();
			event.stopPropagation();
		}
		return false;
	}
}

function backspace(event,form_name,formField,numspaces,line) {
	span = document.getElementById(line);
	frm = document.forms[form_name];
	var field = frm.elements[formField];
	var value = field.value;
	if(!document.all){
		thisEvent=event.which;
	}else{
		thisEvent=event.keyCode;
	}
	if (thisEvent==8) {
		if(value.length == 0){
			line1=0;
			span.innerHTML = numspaces;
			return true;
		}
		var value = field.value;
		char = value.charAt(value.length-1);
		if(line=='line1'){
			if (char.search(aLowerCase) == 0) line1=line1-1;
			if (char.search(aNumber) == 0) line1=line1-1;
			if (char.search(aSpace) == 0) line1=line1-1;
			if (char.search(aUpperCase) == 0) line1=line1-2;
			spacesleft = numspaces - line1;
		}
		if(line=='line2'){
			if (char.search(aLowerCase) == 0) line2=line2-1;
			if (char.search(aNumber) == 0) line2=line2-1;
			if (char.search(aSpace) == 0) line2=line2-1;
			if (char.search(aUpperCase) == 0) line2=line2-2;
			spacesleft = numspaces - line2;
		}
		if(line=='line3'){
			if (char.search(aLowerCase) == 0) line3=line3-1;
			if (char.search(aNumber) == 0) line3=line3-1;
			if (char.search(aSpace) == 0) line3=line3-1;
			if (char.search(aUpperCase) == 0) line3=line3-2;
			spacesleft = numspaces - line3;
		}
		if(spacesleft<0) spacesleft=0;
		span.innerHTML = spacesleft;
		return true;
	}
}
function charCounter(event,form_name,formField,numspaces,line) {
	span = document.getElementById(line);
	if(!document.all){
		thisEvent=event.which;
		if(thisEvent==8){
			return false;
		}
		if (thisEvent==46) {
			return false;
		}
	}else{
		thisEvent=event.keyCode;
	}
	if (thisEvent==32) {
		goodEvent = 'TRUE';
	}else if (thisEvent>47 && thisEvent<58) {
		goodEvent = 'TRUE';
	}else if (thisEvent>96 && thisEvent<123) {
		goodEvent = 'TRUE';
	}else if (thisEvent>64 && thisEvent<91) {
		goodEvent = 'TRUE';
	}else{
		if(event.returnValue){
			event.returnValue = false;
			event.cancelBubble = true;
		}
		if(event.preventDefault){
			event.preventDefault();
			event.stopPropagation();
		}
		return false;
	}
	if (goodEvent == 'TRUE') {
		if(line1>=numspaces && line=='line1'){
			event.returnValue = false;
			if(event.preventDefault){
				event.preventDefault();
				event.stopPropagation();
			}
			return false;
		}
		if(line2>=numspaces && line=='line2'){
			event.returnValue = false;
			if(event.preventDefault){
				event.preventDefault();
				event.stopPropagation();
			}
			return false;
		}
		if(line3>=numspaces && line=='line3'){
			event.returnValue = false;
			if(event.preventDefault){
				event.preventDefault();
				event.stopPropagation();
			}
			return false;
		}
		char = String.fromCharCode(thisEvent);
		if(line=='line1'){
			if (char.search(aLowerCase) == 0) line1=line1+1;
			if (char.search(aNumber) == 0) line1=line1+1;
			if (char.search(aSpace) == 0) line1=line1+1;
			if (char.search(aUpperCase) == 0) line1=line1+2;
			spacesleft = numspaces - line1;
		}
		if(line=='line2'){
			if (char.search(aLowerCase) == 0) line2=line2+1;
			if (char.search(aNumber) == 0) line2=line2+1;
			if (char.search(aSpace) == 0) line2=line2+1;
			if (char.search(aUpperCase) == 0) line2=line2+2;
			spacesleft = numspaces - line2;
		}
		if(line=='line3'){
			if (char.search(aLowerCase) == 0) line3=line3+1;
			if (char.search(aNumber) == 0) line3=line3+1;
			if (char.search(aSpace) == 0) line3=line3+1;
			if (char.search(aUpperCase) == 0) line3=line3+2;
			spacesleft = numspaces - line3;
		}
		if(spacesleft<0) spacesleft=0;
		span.innerHTML = spacesleft;
		return true;
	}
}

function trapfloat() {
	if (event.keyCode==13 || event.keyCode==8 || (event.keyCode>45 && event.keyCode<58)) {
		return true;
	} else {
		event.returnValue = false;
		return false;
	}
}
var str = "left=0,screenX=0,top=0,screenY=0";

if (window.screen) {
  var ah = 500;
  var aw = 650;
  str += ",height=" + ah;
  str += ",innerHeight=" + ah;
  str += ",width=" + aw;
  str += ",innerWidth=" + aw;
  str += ",scrollbars=yes";
  str += ",status=yes";
  str += ",resizable";
} else {
  str += ",resizable"; // so the user can resize the window manually
}

function launch(newURL, newName, newFeatures, orgName) {
	var PopWin = window.open(newURL, newName, newFeatures);
	if ((!PopWin) || (PopWin.opener == null)) {
		alert('Warning, a popup was blocked.  Please disable popup blocking for full functionality on this website.')
		PopWin.opener = window;
		PopWin.opener.name = orgName;
	}
	return PopWin;
}

function launchPop(url,toolbar,resize,scroll) {

	var str = "";

	if (!window.myPop || window.myPop.closed) {
		str += ",height=" + ah;
		str += ",innerHeight=" + ah;
		str += ",width=" + aw;
		str += ",innerWidth=" + aw;

		str += ",scrollbars=yes";

		if(toolbar){
			str += ",toolbar=yes";
		}
		if(resize){
			str += ",resizable";
		}
		str += ",status=yes";
		myPop = open(url, "myPop", str);
		myPop.focus();
	} else {
		myPop.location.href = url;
		myPop.focus();
	}
}

function save_maybes(){
	opener.location.href='index.html?action=login&save_maybes=true';
	self.close();
}

function closer(){
	opener.focus();
	self.close();
}
function MakeArray(n) {
	this.length = n;
	for (var i = 1; i <= n; i++) {
		this[i] = 0;
	}
	return this;
}
function pickSelectedId(elId, elVal) {
	var el = window.opener.document.getElementById(elId);
	for (i = 0; i < el.options.length; i++) {
		if (elVal == el.options[i].value) {
			el.selectedIndex = i;
		}
	}
	window.opener.document.focus();
	self.close();
}
function pickSelected(form,formField,Index){
	var frm = window.opener.document.forms[form];
	var field = frm.elements[formField];
	field.selectedIndex = Index;
	window.opener.document.focus();
	window.close();
}
function qfRequireState(a,b,c) {
	var stateVal = b;
	stateObj = document.getElementById(c);
	if (stateObj.options.length < 2) {
		// selected country has no states
		return true;
	}
	if ('' == stateVal) {
		return false;
	}
	return true;
	
}
var loadedStates = new Array();
var stateObj;
var updateStateRunning = false;
function updateStates(stateId, countryId) {
	if (true == updateStateRunning) {
		setTimeout('updateStates("'+stateId+'","'+countryId+'")',100);
		return;
	}
	if (false == window.loaded) {
		setTimeout('updateStates("'+stateId+'","'+countryId+'")',10);
		return;
	}
	updateStateRunning = true;
	countryObj = document.getElementById(countryId);
	var selectedCountry = countryObj.options[countryObj.selectedIndex].value;
	stateObj = countryObj.form[stateId];
	var numOpts = stateObj.options.length;
	if (numOpts) {
		stateObj.options[0].selected = true;
		stateObj.options[0].innerHTML = 'Loading...';
		for (var i = numOpts; i > 0; i--) {
			stateObj.options[i] = null;
		}
	}
	if (loadedStates[selectedCountry]) {
		setStateOptions(selectedCountry);
	} else {
		var stateScript = document.body.appendChild(document.createElement('iframe'));
		stateScript.setAttribute('height', 0);
		stateScript.setAttribute('width', 0);
		stateScript.setAttribute('src', '/jsrpc.html?action=loadStates&countryCode='+selectedCountry+'&stateId='+stateId);
		stateScript.setAttribute('id', 'loadStates'+selectedCountry);
	}
}
function setStateOptions(selectedCountry) {
	var opt;
	var selected;
	if (loadedStates[selectedCountry]) {
		eval('selected = '+stateObj.id+';');
		for (var key in loadedStates[selectedCountry]) {
			opt = document.createElement('option');
			opt.setAttribute('value', key);
			if (key == selected) {
				opt.setAttribute('selected', true);
			}
			opt.innerHTML = loadedStates[selectedCountry][key];
			stateObj.appendChild(opt);
		}
		stateObj.options[0].innerHTML = 'Select State';
	} else {
		stateObj.options[0].innerHTML = 'No Known States for '+selectedCountry;
	}
	updateStateRunning = false;
	return false;
}
function show_calendar(id) {
	url = "/calendar.html?id=" + id;
	size = 190;
	win = window.open(url, 'calendar', 'innerHeight='+size+',width='+size+',status=no');
	win.moveTo((screen.width-size)/2, (screen.height-size)/2);
	return win;
}
function erase(p_item){
	frm = document.getElementById(p_item);
	frm.value='';
}
function strpos(haystack, needle) {
	nlen = needle.length;
	for (var i = 0; i < haystack.length; i++)
	if (haystack.substring(i, i+nlen) == needle) return i;
	return -1;
}
function checkEmail(element) {
	val = element.value;
	if (val.length) {
		fs = document.body.appendChild(document.createElement('iframe'));
		fs.setAttribute('height', 0);
		fs.setAttribute('width', 0);
		fs.setAttribute('src', '/jsrpc.html?action=checkEmail&email='+val);
		fs.setAttribute('id', 'checkEmail');
	}
}
function in_array(n, h) {
	for (var i=0; i<h.length; i++) { if (n == h[i]) { return true; } } return false;
}

	function photoPop(img_dir, photo, length, pWidth, pHeight, scrollSet) {

		var popWindow = null;
		var photoPage = "/photograph.html?img_dir=" + img_dir + "&photo=" + photo + "&length=" + length;

		if (!pWidth) {
			var pWidth = 550;
		}	
		
		if (!pHeight) {
			var pHeight = 525;
		}	

		if (!scrollSet) {
			var scrollSet = 0;
		}

			var displayString = "width=" + pWidth + ",height=" + pHeight + ",scrollbars=" + scrollSet +",resizable";   
			
    		popWindow = window.open(photoPage,'PopWindow',displayString);

				if (popWindow != null) {
					if (popWindow.opener == null) { popWindow.opener = self; }
					popWindow.opener.name = "popDaddy";
				} 		
		
	}
	
	function screenPop(photo, pWidth, pHeight, scrollSet) {

		var popWindow = null;
		var photoPage = "/popup.html?action=screen_grab&photo=" + photo;

		if (!pWidth) {
			var pWidth = 550;
		}	
		
		if (!pHeight) {
			var pHeight = 520;
		}	

		if (!scrollSet) {
			var scrollSet = 0;
		}

			var displayString = "width=" + pWidth + ",height=" + pHeight + ",scrollbars=" + scrollSet +",resizable";   
			
    		popWindow = window.open(photoPage,'PopWindow',displayString);

				if (popWindow != null) {
					if (popWindow.opener == null) { popWindow.opener = self; }
					popWindow.opener.name = "popDaddy";
				} 		
		
	}
	
function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}
function updAddrNm(a,b,c) {
	if ((aa = document.getElementById(a)) && (bb = document.getElementById(b)) && (cc = document.getElementById(c))) aa.value=bb.value+' '+cc.value;
}
function initPage() {
	if (bcn = document.getElementById('navLevel3')) { var hideNav3 = true; for (i=0; i<bcn.childNodes.length; i++) { if (bcn.childNodes[i].childNodes.length > 0) { hideNav3 = false; } } if (hideNav3) { bcn.style.display = 'none'; } } if (hrarh = document.getElementById('hrAboveResultsHeader')) { if (sechdr = document.getElementById('sectionHeader')) { if (sechdr.childNodes.length < 2 && !hideNav3) { hrarh.style.display = 'none'; } } }
	window.loaded=true;
}
function perPage(value){
	if(document.location.search){
		document.location.href=document.location.href+'&per_page='+value;
	}else{
		document.location.href='?per_page='+value;
	}
}
