ContactListTouch = {	
	/**
	 * Bind touch events
	 */
	initTouchEvents:function(elId)
	{
		document.getElementById(elId).addEventListener("touchstart",  ContactListTouch.touchHandler, true);
	    document.getElementById(elId).addEventListener("touchmove",   ContactListTouch.touchHandler, true);
	    document.getElementById(elId).addEventListener("touchend",    ContactListTouch.touchHandler, true);
	    document.getElementById(elId).addEventListener("touchcancel", ContactListTouch.touchHandler, true); 
	},
	/**
	 * Touch events handler
	 */
	touchHandler:function(event)
	{
	    var touches = event.changedTouches,
	        first = touches[0],
	        type = "";
    
	    switch(event.type)
	    {
	        case "touchstart": type = "mousedown"; break;
	        case "touchmove":  type = "mousemove"; break;        
	        case "touchend":   type = "mouseup";   break;
	        default: return;
	    }	       
	    	    
	    var simulatedEvent = document.createEvent("MouseEvent");
	    simulatedEvent.initMouseEvent(type, true, true, window, 1, 
			                              first.screenX, first.screenY, 
			                              first.clientX, first.clientY, false, 
			                              false, false, false, 0, null);
	                                                                            
	    first.target.dispatchEvent(simulatedEvent);	    
	}
}