This looks to be exactly the same topic discussed here before, I haven't read all the 27 posts, but see if it somehow answers your question: