﻿// General Functions
    function mmleft(str, n){
	    if (n <= 0)
	        return "";
	    else if (n > String(str).length)
	        return str;
	    else
	        return String(str).substring(0,n);
        }
    function mmright(str, n){
        if (n <= 0)
           return "";
        else if (n > String(str).length)
           return str;
        else {
           var iLen = String(str).length;
           return String(str).substring(iLen, iLen - n);
        }
    }
    function mmtrim(str){
      return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    }
//End General Functions


//Preview funcitons
var mmuserimagetrys = 0;
function mmuserimageupdate(mmurl){
      mmuserimagetrys = 0;	
	  document.getElementById('mmuserimage').style.display = "none";
      document.getElementById('mmuserimage-p').style.display = "inline";
      var imgLoader = new ImagePreLoader([mmurl], {callback:mmuserimageupdateCallback});
    }

var mmuserimageupdateCallback = function(imageCache, loaded) {
	//alert('array length:' + imageCache.length);
	if (loaded == 1) {
	    //Success
	    document.getElementById('mmuserimageimg').src = imageCache[imageCache.length - 1].src;
	    document.getElementById('mmuserimage').style.display = "inline";
        document.getElementById('mmuserimage-p').style.display = "none";
	}
	else {
    	  mmuserimagetrys=mmuserimagetrys + 1;
          //alert('tried ' + mmtrys);
	      if (mmuserimagetrys >= 8) {
		    //document.getElementById('im1').src = 'err1.gif'
		    //alert('tried ' + mmtrys + '/n' + imageCache[imageCache.length - 1].src);
		    document.getElementById('mmuserimage').style.display = "inline";
    		document.getElementById('mmuserimage-p').style.display = "none";
    		document.getElementById('mmuserimageimg').src = imageCache[imageCache.length - 1].src;
	        }
	      else {
	        var imgLoader = new ImagePreLoader([imageCache[imageCache.length - 1].src], {callback:mmuserimageupdateCallback});
	        }
	} 
 }  
    
    
    var one_day=1000*60*60*24
    var one_month=1000*60*60*24*30
    var one_year=1000*60*60*24*30*12

function mmcalcage(yr, mon, day, unit, decimal, round){
    today=new Date()
    var pastdate=new Date(yr, mon-1, day)

    var countunit=unit
    var decimals=decimal
    var rounding=round

    finalunit=(countunit=="days")? one_day : (countunit=="months")? one_month : one_year
    decimals=(decimals<=0)? 1 : decimals*10

    if (unit!="years"){
        if (rounding=="rounddown")
            return(Math.floor((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals)
        else
            return(Math.ceil((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals)
        }
    else{
        yearspast=today.getFullYear()-yr-1
        tail=(today.getMonth()>mon-1 || today.getMonth()==mon-1 && today.getDate()>=day)? 1 : 0
        pastdate.setFullYear(today.getFullYear())
        pastdate2=new Date(today.getFullYear()-1, mon-1, day)
        tail=(tail==1)? tail+Math.floor((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals : Math.floor((today.getTime()-pastdate2.getTime())/(finalunit)*decimals)/decimals
        return(yearspast+tail)
    }
}
