// Make sure file is not hosted in a different frameset
if(top.location.href != window.location.href){
	top.location.href = window.location.href
}

var http = httpGetObject();

function openWindow(url, w, h){
	var windowprops = "width=" + w + ",height=" + h +",left=10,top=10,scrollbars=no,status=yes,toolbar=no,location=no,directories=no,resizable=yes";
	popup = window.open(url,'newWin',windowprops);
	popup.focus();
	return popup;
}

function openWindowScroll(url, w, h){
	var windowprops = "width=" + w + ",height=" + h +",left=10,top=10,scrollbars=yes,status=yes,toolbar=no,location=no,directories=no,resizable=yes";
	popup = window.open(url, 'newWin', windowprops);
	popup.focus();
	return popup;
}

//this closes popup window and goes to "url"
function gotoApply(url){
	if(window.opener){
		window.opener.location = url;
		self.close();
	} else {
		return false;
	}
}

function switchClass(obj, strClassName){
	obj.className = strClassName;
}

function gotoURL(strUrl){
	location = strUrl;
}

function copyrightYear(startYear){
	d = new Date();
	if(startYear != d.getFullYear()){
		return startYear + " - " + d.getFullYear();
	} else {
		return startYear;
	}
}

function validateSearch(f){
	if(f.search.value == ''){
		alert('Please enter search condition.');
		f.search.focus();
		return false;
	}
	return true;
}

function searchBoxFocus(obj){
	if(obj.value == 'Search'){
		obj.value = '';
	}
}

function validZIP(val){
	re = new RegExp(/^\d{5,5}$/);
	if(val.match(re)){
		if(existingZIP(val)){
			return true;
		} else {
			return false;
		}
	} else {
		return false;
	}
}

function existingZIP(val){
	if(http){
		xmlUrl = 'existingzip.php?zipcode=' + val;
		http.open('GET', xmlUrl, false);
		http.send(null);
		return !!parseInt(http.responseText);
	} else {
		alert('httpGetObject does not exist');
		return false;
	}
}

function validAreaCode(str){
	areacode = str.substring(0,3);
	if(existingAreaCode(areacode)){
		return true;
	} else {
		return false;
	}
}

function existingAreaCode(val){
	if(http){
		xmlUrl = 'existingareacode.php?areacode=' + val;
		http.open('GET', xmlUrl, false);
		http.send(null);
		return !!parseInt(http.responseText);
	} else {
		alert('httpGetObject does not exist');
		return false;
	}
}

function zipStateMatch(zip, state){
	if(http){
		xmlUrl = 'zipstatematch.php?zipcode=' + zip + '&stateabbr=' + state;
		http.open('GET', xmlUrl, false);
		http.send(null);
		return !!parseInt(http.responseText);
	} else {
		alert('httpGetObject does not exist');
		return false;
	}
}

function urlencode(str){
	// http://kevin.vanzonneveld.net
	// +   original by: Philip Peterson
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +      input by: AJ
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Brett Zamir (http://brett-zamir.me)
	// +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +      input by: travc
	// +      input by: Brett Zamir (http://brett-zamir.me)
	// +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: Lars Fischer
	// %          note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
	// *     example 1: urlencode('Kevin van Zonneveld!');
	// *     returns 1: 'Kevin+van+Zonneveld%21'
	// *     example 2: urlencode('http://kevin.vanzonneveld.net/');
	// *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
	// *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
	// *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'

	var histogram = {}, unicodeStr='', hexEscStr='';
	var ret = (str+'').toString();

	var replacer = function(search, replace, str) {
		var tmp_arr = [];
		tmp_arr = str.split(search);
		return tmp_arr.join(replace);
	};

	// The histogram is identical to the one in urldecode.
	histogram["'"]   = '%27';
	histogram['(']   = '%28';
	histogram[')']   = '%29';
	histogram['*']   = '%2A';
	histogram['~']   = '%7E';
	histogram['!']   = '%21';
	histogram['%20'] = '+';
	histogram['\u00DC'] = '%DC';
	histogram['\u00FC'] = '%FC';
	histogram['\u00C4'] = '%D4';
	histogram['\u00E4'] = '%E4';
	histogram['\u00D6'] = '%D6';
	histogram['\u00F6'] = '%F6';
	histogram['\u00DF'] = '%DF';
	histogram['\u20AC'] = '%80';
	histogram['\u0081'] = '%81';
	histogram['\u201A'] = '%82';
	histogram['\u0192'] = '%83';
	histogram['\u201E'] = '%84';
	histogram['\u2026'] = '%85';
	histogram['\u2020'] = '%86';
	histogram['\u2021'] = '%87';
	histogram['\u02C6'] = '%88';
	histogram['\u2030'] = '%89';
	histogram['\u0160'] = '%8A';
	histogram['\u2039'] = '%8B';
	histogram['\u0152'] = '%8C';
	histogram['\u008D'] = '%8D';
	histogram['\u017D'] = '%8E';
	histogram['\u008F'] = '%8F';
	histogram['\u0090'] = '%90';
	histogram['\u2018'] = '%91';
	histogram['\u2019'] = '%92';
	histogram['\u201C'] = '%93';
	histogram['\u201D'] = '%94';
	histogram['\u2022'] = '%95';
	histogram['\u2013'] = '%96';
	histogram['\u2014'] = '%97';
	histogram['\u02DC'] = '%98';
	histogram['\u2122'] = '%99';
	histogram['\u0161'] = '%9A';
	histogram['\u203A'] = '%9B';
	histogram['\u0153'] = '%9C';
	histogram['\u009D'] = '%9D';
	histogram['\u017E'] = '%9E';
	histogram['\u0178'] = '%9F';

	// Begin with encodeURIComponent, which most resembles PHP's encoding functions
	ret = encodeURIComponent(ret);

	for(unicodeStr in histogram){
		hexEscStr = histogram[unicodeStr];
		ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
	}

	// Uppercase for full PHP compatibility
	return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2){
		return "%"+m2.toUpperCase();
	});
}
