/**
 * @author marklewis
 */
Ext.ns("Ext.ux.renderer");

Ext.ux.renderer.ComboRenderer = function(options) {
    var value = options.value;
    var combo = options.combo;

    var returnValue = value;
    var valueField = combo.valueField;
        
    var idx = combo.store.findBy(function(record) {
        if(record.get(valueField) == value) {
            returnValue = record.get(combo.displayField);
            return true;
        }
    });
    
    // This is our application specific and might need to be removed for your apps
    if(idx < 0 && value == 0) {
        returnValue = '';
    }
    
    return returnValue;
};

Ext.ux.renderer.Combo = function(combo) {
    return function(value, meta, record) {
        return Ext.ux.renderer.ComboRenderer({value: value, meta: meta, record: record, combo: combo});
    };
};

	FOS.util = function (){};
	FOS.util.toDateFromTimeString = function (t)  {
		var now = new Date();
	
	 
 		hi = t.indexOf(":");
		mi = t.indexOf(":", hi + 1);
		si = t.length;
			
		now.setHours(t.substr(0,hi));
		now.setMinutes(t.substr(hi + 1, (mi- (hi + 1))));
 		now.setSeconds(t.substr(mi + 1, (si-(mi+1))));
		
 		return now;
 

		
		
	};
	
	
	FOS.util.timeDifference = function (t1, t2)  {
		var now = new Date();
		
		 
		
		hi =  t1.indexOf(":");
		mi = t1.indexOf(":", hi + 1);
		si = t1.length - 1 ;
			
		h1 = t1.substr(0,2);
		m1 = t1.substr(3,2 );
 		s1 = t1.substr(6, 2);
		
		h2 = t2.substr(0,2);
		m2 = t2.substr(3,2);
 		s2 = t2.substr(6,2);
		
		
//convert to seconds
		ins1 =  Number((h1 * 3600)) + Number((m1 * 60)) + Number(s1);
		ins2 =  Number((h2 * 3600)) + Number((m2 * 60)) + Number(s2);
		
		//alert (ins1 + ':' + ins2);
		
		ds = ins1 - ins2  < 0 ?  ins2 - ins1 :  ins1 - ins2;
		
		//alert (ds);
		
		h3 = Math.floor(ds / 3600);
		ds = ds - (h3 * 3600);
		
		m3 = Math.floor(ds / 60);
		ds = ds - (m3 * 60);
		s3 = ds;

		
		/*
if ((s1 - s2) < 0) {
			s3 = (s1 + 60) - s2;
			m1--;
		}
		else
			s3 = s1  - s2;
			
		if ((m1 - m2) < 0) {
			m3 = (m1 + 60) - m2;
			h1--;
		}
		else
			m3 = m1 - m2;
				
		h3 = h1-h2;	
*/
			
		
		//make everything positive
		h3 = h3 < 0 ? h3 * -1 : h3;
		m3 = m3 < 0 ? m3 * -1 : m3;
		s3 = s3 < 0 ? s3 * -1 : s3;
		
 
		/*
if (ins1 < ins2)
 			return h3 + ':' + m3 + ':' + s3;
		else
*/
			return h3 + ':' + m3 + ':' + s3;
		
		
	};
	
	FOS.util.cleanseHTML = function(s){
	
		if (s == null)
			return s;
		 
		s = s.replace(/"/g, "&quot;");
		s = s.replace(/'/g, "&apos;");
		
		s = s.replace(/£/g, "&pound;");
		s = s.replace(/€/g, "&euro;");
		s = s.replace(/u200b/g, "");
		
		return s;
	
	}

String.prototype.toTitleCase = function () {
	
	var str = "";
	var words = this.split(" ");
	var word = "";
	var space = '';
	
	for(i=0; i< words.length; i++)
	{
		
		var word = words[i];
		
		if (i > 0)
			space = ' ';
			
		str += space + word.substr(0,1).toUpperCase()
	 	+ word.substr(1,word.length).toLowerCase();
	}
	
   return str;
}

 

