hv.SM = hv.V.SM?hv.V.SM:[];
hv.disSM = function(){
	if(hv.SM){
		var sct, verrs, reers, oerrs, errCon, sms = null;
		for(i=0;i<hv.SM.length;i++){
			sct = $('#'+hv.SM[i][0]);
			if(sct.size()){
				errCon = $('.errs',sct);
				if(errCon.size()){
					$('.RErr').removeClass('RErr');
					$('.VErr').removeClass('VErr');
					errCon.remove();
				}
				smsCon = $('.sms',sct).remove();
				if(hv.SM[i][1]){
					errCon = $('<div class="errs" id="errs'+hv.SM[i][0]+'"></div>').prependTo('#'+hv.SM[i][0]);
					if(hv.SM[i][1][0]){
						rerrs = hv.SM[i][1][0];
						$('<div class="errDes">You did not fill in all the required fields.  Please check the highlighted section(s)</div>').appendTo(errCon);
						for(j=0;j<rerrs.length;j++){
							$('#'+rerrs[j]+'Ic').addClass('err');
						}
					}
					if(hv.SM[i][1][1]){
						verrs = hv.SM[i][1][1];
						for(j=0;j<verrs.length;j++){
							$('<div class="verrDes">'+verrs[j][1]+'</div>').appendTo(errCon);
							$('#'+verrs[j][0]+'Ic').addClass('err');
						}
					}
					if(hv.SM[i][1][2]){
						oerrs = hv.SM[i][1][2];
						for(j=0;j<oerrs.length;j++){
							$('<div class="errDes">'+oerrs[j]+'</div>').appendTo(errCon);
						}
					}
				}
				if(hv.SM[i][2]){
					smsCon = $('<div class="sms" id="sms'+hv.SM[i][0]+'"></div>').prependTo('#'+hv.SM[i][0]);
					sms = hv.SM[i][2];
					for(j=0;j<sms.length;j++){
						$('<div class="sms">'+sms[j]+'</div>').appendTo(smsCon);
					}

				}
			}
		}
	}
}
/*Get system messages from json
* FIrst part is about resolving overlapping SM for same elements
*/
hv.getSM = function(json){
	var loc = json[0];
	var LI = -1;
	for(i=0;i<hv.SM.length;i++){
		if(hv.SM[i][0] == loc){
			LI = i;
		}
	}
	if(LI==-1){
		LI = hv.SM.length;
	}
	hv.SM[LI] = json;
	hv.disSM();
}