hv.eri = 1;//element reference id
hv.getEri = function(ele){
	var eri = ele.hvEri;
	if(!eri){
		ele.hvEri = eri = hv.eri++;
	}
	return eri;
}
hv.reqLogin = function(){
	if(!hv.V.loggedIn){
		if(confirm('You must log in to perform this action.  Do you wish to login?')){
			hv.setCookie('url',window.location);
			window.location = '/user/login?required=1';
		}
		return false;
	}
	return true;
}
hv.setCookie = function(name, value, exp){
	var c = name + "=" +escape( value )+";path=/;";
	if(exp){
		var expire = new Date();
		expire.setTime( expire.getTime() + exp);
		c += "expires=" + expire.toGMTString();
	}
	document.cookie = c;
}
hv.readCookie = function(name) {
	var name = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
	}
	return null;
}
hv.eventPos = function(e){
	if (!e.pageX){
		var tempX = e.clientX;
		var tempY = e.clientY;
		var scrollLeft = (document.body.scrollLeft || document.documentElement.scrollLeft);
		var scrollTop = (document.body.scrollTop || document.documentElement.scrollTop);
		return [tempX + scrollLeft,tempY + scrollTop];
	}
	return [e.pageX,e.pageY];
}
hv.findPos = function(ele){
	var curleft = curtop = 0;
	if(ele.offsetParent){
		do{
			curleft += ele.offsetLeft;
			curtop += ele.offsetTop
		}while(ele = ele.offsetParent);
	}
	return [curleft,curtop];
}
hv.ucwords = function(string){
	if(string){
		string = string.split(' ');
		var newString = Array();
		var i = 0;
		$.each(string,function(){
			newString[newString.length] = this.substr(0,1).toUpperCase()+this.substr(1,this.length)
		});
		return newString.join(' ');
	}
}
hv.toInt = function(s){
	s = s.replace(/[^0-9]+/g,' ');
	s = s.replace(/^ +/g,'');
	s = s.split(' ');
	return parseInt(s[0]);
}
hv.hasClass = function(ele,c){
	var reg = new RegExp('(^| )'+c+'($| )');
	var match = ele.className.match(reg);
	if(match){
		return match[0];
	}
	return false;
}
hv.disUser = function(name,id,noSprite){
	if(typeof noSprite == "undefined"){
			return '<div class="sprite-person"></div><span class="un" hvUserId="'+id+'">'+name+'</span>';
		}
	  return '<span class="un" hvUserId="'+id+'">'+name+'</span>';
}
initializeFunc = [];
hv.startUp = function(func){
	initializeFunc[initializeFunc.length] = func;
}
$('#container1').before('<div class="formatting">Formatting</div>');
hv.initialize = function(func){
	hv.uid = hv.V.u;
	hv.owner = hv.V.owner;
	if(hv.uid && hv.owner){
		if(typeof(hv.owner) == 'object' && $.inArray(hv.uid,hv.owner) != -1){
			hv.isOwner = 1;
		}else	if(hv.uid == hv.owner){
			hv.isOwner = 1;
		}
	}
	if(hv.V.a){
		hv.isAdmin = 1;
	}
	hv.item = hv.V.item;
	$('input,select,textarea').each(function(){
		if(this.name){
			this.id = this.name+'I';
		}
	});
	hv.sectioner();
	$('#c1').append('<br class="clr"/>')
	hv.unEnricher();
	hv.locEnricher();
	hv.timeEnricher();
	if(hv.V.loggedIn){
		var alerts = '';
		if(hv.readCookie('alerts')){
			alerts = '<span class="alerter">Alerts</span>';
			hv.setCookie('alerts',0,-1);
		}
		hv.menuUser = [
			[alerts,'/user/'],
			[hv.V.un+'(#'+hv.V.u+')'],
			['Home','/user'],
			['Messaging','/msg/inbox',[
				['Write', '/msg/write'],
				['Inbox','/msg/inbox'],
				['Trash','/msg/trash'],
				['Sent','/msg/sent'],
				['Saved','/msg/saved']]
			],
			['Logout','/user/logout']];
	}else{
		hv.menuUser = [
			['Login','/user/login'],
			['Create Account','/user/create']];
	}
	hv.makeMenu('gmenu','menuGeneric',hv.menuGeneric);
	hv.makeMenu('umenu','menuUser',hv.menuUser);
	hv.disSM();
	$.each(initializeFunc,function(){
		this();
	})
	$('.formatting').remove();
	$('#container1').css('visibility','visible');
}
$(hv.initialize);