var jsBaseHREF;

var gmBadZipMessage='Zip code has 5 digits';

function setJSBaseHREF(bhref) {
	if (isEmpty(jsBaseHREF)) {
		jsBaseHREF = bhref;
	}	
}
function getJSBaseHREF() {
	return jsBaseHREF;
}


function formatCurrency(amount)
{
	var delimiter = ","; 
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	return amount;
}



function isZipCode(s){
	if (isInteger(s) && s.length == 5) {
		return true;
	} else {
		return false;
	}
}

function isInteger(s){
		var i;
		for (i = 0; i < s.length; i++){   
		   	var c = s.charAt(i);
		    if (((c < "0") || (c > "9"))) return false;
		}
		return true;
}

function isEmail(s)
{
	 var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	 if(pattern.test(s))
	 {         
			return true;
	 }else{   
			return false;
	 }
}


function isEmpty(val) {
		if (!val || val == null) return true;
		
		if ($.isArray(val)) {
			return val.length == 0;	
		} else {
			var va = $.trim(val);
			return (va.length == 0 || va == '') ;
		}	
}

function stripCommaDollarPeriod(str){
 if (isEmpty(str)) return str;	
 var s = "";
 for (var i = 0; i < str.length; ++i){
 	var st = str.charAt(i);
 	if (st != '$' && st != '.' && st != ','){
 		s += st;
 	}
 }
 return s;
}

function onJQueryError(errorDisplayID) {
	var errorDivID = "error";
	if (!isEmpty(errorDisplayID)) {
		errorDivID = errorDisplayID;
	}
	$("#" + errorDivID).dialog({title:'Error',buttons:{"Cancel": function(){$(this).dialog("close");}},autoOpen:false,draggable:false,modal:true,closeText:'Cancel',resizable:false})
	$("#" + errorDivID).show();
	$("#" + errorDivID).dialog('open');
}

function onJQueryLoading(displayID) {
        $("#dialog").dialog({width:200,height:150,autoOpen:false,draggable:false,modal:true,closeText:'',resizable:false})
        $("#dialog").dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove();
		$("#dialog").html("<br/><center><img src='/themes/default/images/jcarousel/loading.gif'></center>");
		$("#dialog").show();
        $("#dialog").dialog('open');


}

function getHashVars() {
   return getVars("#");
}
function getQueryStringVars() {
  return getVars("?");
}

function getVars(delim)
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf(delim) + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        if(vars[hash[0]] == null)
        {
        	vars.push(hash[0]);
        	vars[hash[0]] = [];
        }
        vars[hash[0]].push(hash[1]);
    }
    return vars;
}

 function getUserHashParam(urlhash, param)
 {
  	if (!urlhash || urlhash == null) {
 		urlhash = getHashVars();
 	}
 
	 var ret =   urlhash[param];
	 if(ret == null)
		 return null;
	 if(ret.length == 1)
		 return ret[0];
	 else
		 return ret;
 }

 function getHashParam(param)
 {
 	return getUserHashParam(getHashVars(), param);
 }
 function getQueryParam(param)
 {
	 var ret =   getQueryStringVars()[param];
	 if(ret == null)
		 return null;
	 if(ret.length == 1)
		 return ret[0];
	 else
		 return ret;
 }


function getPagination(currentPage, totalPages) {

	var s = "";
	var iCurrPage = parseInt(currentPage);
	var iTotalPages = parseInt(totalPages);

	if (iTotalPages == 1) {
        return s;
	}

	var showPrev = iCurrPage > 1;
	var showNext = iCurrPage < iTotalPages;

	if (showPrev == true) {
	  s += " <a href=\"javascript:_gotoPage('" + parseInt(iCurrPage - 1) + "')\"><< Previous</a>";
	}

	if (iCurrPage != 1) {
		s += " <a href=\"javascript:_gotoPage('1')\">1</a>";
	} else {
		s += "1 ";
	}

	if (iCurrPage - 3 > 1) {
		s += "...";
	}

	if (iCurrPage - 2 > 0) {
		for (var j = (iCurrPage - 2); j < iCurrPage; ++j) {
			if (j != 1 && j != iTotalPages) {
				s += " <a href=\"javascript:_gotoPage('" + j + "')\">" + j + "</a>";
			}
		}
	}

	if (iCurrPage != 1 && iCurrPage != iTotalPages) {
		s += " " + iCurrPage;
	}
	if (iCurrPage != iTotalPages) {
		var from = Math.min(iTotalPages - 1, iCurrPage + 1);
		var to = Math.min(iTotalPages - 1, iCurrPage + 2);
		for (var j = from; j <= to; ++j) {
			if (j != 1 && j != iTotalPages && j != iCurrPage) {
				s += " <a href=\"javascript:_gotoPage('" + j + "')\">" + j + "</a>";
			}
		}
	}

	if (iCurrPage + 3 < iTotalPages) {
		s += "...";
	}

	if (iCurrPage != iTotalPages) {
		s += " <a href=\"javascript:_gotoPage('" + iTotalPages + "')\">" + iTotalPages + "</a>";
	} else {
		s += " " + iTotalPages;
	}
	if (showNext == true) {
	  s += " <a href=\"javascript:_gotoPage('" + parseInt(iCurrPage + 1) + "')\">Next>></a>";
	}
	return s;
}

 
 
 
 