// Make sure file is not hosted in a different frameset
if(top.location.href != window.location.href){
	top.location.href = window.location.href;
}

var xmlHttp = httpGetObject();

function CheckAll(bChecked){
	var tg = document.getElementsByTagName("input");
	for(i = 0; i < tg.length; i++){
		if(tg.item(i).name == "action[]"){
			tg.item(i).checked = bChecked;
		}
	}
}

// Equivalent of PHP function count()
function count(arr){
	c = 0;
	for(i in arr){
		if(arr[i]){
			c++;
		}
	}
	return c;
}

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 openWindowWithScroll(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;
}

function switchClass(obj, strClassName){
	obj.className = strClassName;
}

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;
	}

	xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState == 4){
			if(xmlHttp.status == 200){
				document.location = '/Search_Results';
			}
		}
	}

	doc_loc = '/store_search_condition.php?search=' + f.search.value;
	xmlHttp.open('GET', doc_loc, true);
	xmlHttp.send(null);

	return false;
}

function validZIP(val){
	re = new RegExp(/^\d{5,5}$/);
	if(val.match(re)){
		return true;
	} else {
		return false;
	}
}

function validState(str){
	re = /^[a-zA-Z]{2}$/;
	if(str == ''){
		return false;
	} else if(re.test(str)){
		return true;
	} else {
		return false;
	}
}

function existingZIP(val){
	if(xmlHttp){
		xmlUrl = '/existingzip.php?zipcode=' + val;
		xmlHttp.open('GET', xmlUrl, false);
		xmlHttp.send(null);
		return !!parseInt(xmlHttp.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(xmlHttp){
		xmlUrl = '/existingareacode.php?areacode=' + val;
		xmlHttp.open('GET', xmlUrl, false);
		xmlHttp.send(null);
		return !!parseInt(xmlHttp.responseText);
	} else {
		alert('httpGetObject does not exist');
		return false;
	}
}

function UpdateArticlesCall(){
	if(xmlHttp){
		xmlHttp.open('GET', 'updatecontent.php?action=1', true);
		xmlHttp.onreadystatechange = handleRequest;
		xmlHttp.send(null);
	}
}

function handleRequest(){
	if(xmlHttp.readyState == 4){
		// loading finished
		if(xmlHttp.responseText.indexOf('invalid') == -1){
			document.location = 'news.php?reset=1&action=new';
		}
	}
}

function isInt(val){
	val = val.toString();
	if(val == ''){
		return false;
	} else {
		return (!isNaN(val) && val.indexOf('.', 0) == -1);
	}
}

function gotoURL(strUrl){
	location = strUrl;
}

function fixNum(el){
	el.value = el.value.replace(/\D/g, '');
}

function fixNum1(str){
	return str.replace(/\D/g, '');
}

/**
 * Trim string functons
 */
function RTrim(str){
	w_space = String.fromCharCode(32);
	v_length = str.length;
	strTemp = '';
	if(v_length < 0){
		return '';
	}
	iTemp = v_length -1;

	while(iTemp > -1){
		if(str.charAt(iTemp) == w_space){

		} else {
			strTemp = str.substring(0, iTemp + 1);
			break;
		}
		iTemp = iTemp - 1;
	}
	return strTemp;
}

function LTrim(str){
	w_space = String.fromCharCode(32);
	if(v_length < 1){
		return '';
	}
	v_length = str.length;
	strTemp = '';

	iTemp = 0;

	while(iTemp < v_length){
		if(str.charAt(iTemp) == w_space){

		} else {
			strTemp = str.substring(iTemp, v_length);
			break;
		}
		iTemp = iTemp + 1;
	}
	return strTemp;
}

function Trim(str){
	if(str.length < 1){
		return '';
	}
	str = RTrim(str);
	str = LTrim(str);
	return str;
}

function removeElement(el){
	el.parentNode.removeChild(el);
}

function addTextField(button, type){
	var d = document.createElement('div');

	var inp = document.createElement('input');
	inp.type = 'text';
	inp.name = type+'[]';
	inp.className = 'formLongEditCity';
	inp.style.width = '500px';

	d.appendChild(inp);

	d.appendChild(document.createTextNode(' '))

	var img = document.createElement('img');
	img.src = '/images/delete.png';
	img.className = 'delTextField';
	img.onclick = function () { removeElement(this.parentNode); }

	d.appendChild(img);

	button.parentNode.insertBefore(d, button);
}

function savestatOrangeButton(tgUrl, ni_var1, stateName){
	$.ajax({
		type: "GET",
		url: '/savestat.php',
		data: "tgUrl=" + escape(tgUrl) + '&Nivar=' + ni_var1 + '&state=' + stateName,
		success: function(msg){
			document.location = tgUrl;
			return false;
		}
	});
}

function urlencode(str){
	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();
	});
}

function checkForm(f){
	var fdName = checkElement(f.elements['fd[Name]']),
		fdEmail = checkElement(f.elements['fd[Email]']),
		fdCaptcha = checkCaptcha(f);
	if(fdName && fdEmail && fdCaptcha){
		return true;
	}
	return false;
}

function checkElement(el){
	if(el.value == ''){
		$(el).addClass("req").next(".requiredField").html('required').fadeIn('fast');
		return false;
	} else {
		if($(el).attr("id") == 'Email'){
			if(!validEmail(el)){
				return false;
			}
		}
		$(el).removeClass("req").next(".requiredField").fadeOut('fast');
		return true;
	}
}

function validEmail(email){
	var validEmail = true;
	if(email != ''){
		if((email.value.length < 3) || (email.value.length > 50) ||
			(email.value.charAt(0) == '@') || (email.value.charAt(email.value.length-1) == '@') ||
			(email.value.charAt(0) == '.') || (email.value.charAt(email.value.length-1) == '.') ||
			(email.value.indexOf('.') == -1) || (email.value.indexOf('@') == -1) ||
			(email.value.indexOf('@') != email.value.lastIndexOf('@')) ||
			(email.value.indexOf(' ') > 0) || (email.value.indexOf('?') > 0) || (email.value.indexOf('..') > 0)
		){
			validEmail = false;
		}
	}
	if(!validEmail){
		$(email).addClass("req").next(".requiredField").html('invalid email').fadeIn('fast');
		return false;
	}
	return true;
}

function checkCaptcha(f){
	var captcha = f.recaptcha_response_field;
	if(captcha.value == ''){
		$(captcha).addClass("req");
		$(".requiredCaptcha").html('required').fadeIn('fast');
		return false;
	} else {
		 if(xmlHttp){
			xmlUrl = "/validatecaptcha.php?recaptcha_response_field=" + urlencode(captcha.value) + "&recaptcha_challenge_field=" + urlencode(f.recaptcha_challenge_field.value);
			xmlHttp.open('GET', xmlUrl, false);
			xmlHttp.send(null);
			if (!!parseInt(xmlHttp.responseText)){
				$(captcha).removeClass("req");
				$(".requiredCaptcha").fadeOut('fast');
				return true;
			} else {
				Recaptcha.reload ();
				$(captcha).addClass("req");
				$(".requiredCaptcha").html("invalid code").fadeIn('fast');
				return false;
			}
		 } else {
			alert('httpGetObject does not exist');
			return false;
		 }
	}
}

// filter zipcode input - allow only digits
$(document).ready(function(){
	$('.zipcodeCheck').bind('keyup', function(){
		$(this).val(fixNum1($(this).val()));
	});
	$('.zipcodeCheck').focus(function(){
		if($(this).val()==='Enter Zip')
		{
			$(this).val("");
			$(this).css({color:'#333'});
		}
	});
	$('.zipcodeCheck').blur(function(){
		if($(this).val()==='')
		{
			$(this).val("Enter Zip");
			$(this).css({color:'#666'});
		}
	});
});
