🚚 Same Day Delivery Available in Chennai! 🎉
Home
A. P. J. Abdul Kalam - Kanavukalukku Siragugal Mulaiththal - Tamil | Story Book/ Childrens Book
A. P. J. Abdul Kalam - Kanavukalukku Siragugal Mulaiththal - Tamil | Story Book/ Childrens Book
Availability:
Only 3 left!
Original price
Rs. 199.00
-
Original price
Rs. 199.00
Original price
Rs. 199.00
Rs. 199.00
-
Rs. 199.00
Current price
Rs. 199.00
| /
"Ignite young imaginations with the inspiring story of Abdul Kalam, a visionary leader whose journey from humble beginnings to national greatness encourages children to dream big and strive for success."
About the Book:
"A. P. J. Abdul Kalam - Kanavukalukku Siragugal Mulaiththal" is an engaging story book that chronicles the remarkable life of Dr. A. P. J. Abdul Kalam, renowned scientist and former President of India. Written in Tamil, this book introduces children to Kalam’s early life, his unwavering dedication, and his rise to becoming the 'Missile Man of India.' Designed as an inspiring addition to children's books, it highlights the importance of determination, education, and hard work in achieving dreams. Kalam’s journey is a testament to the belief that anyone can overcome obstacles and reach great heights through persistence and passion.
Why You Should Read This Book:
This inspiring story book is more than a biography—it’s a motivational guide for young readers. It imparts valuable life lessons about perseverance, the power of dreams, and the rewards of hard work. Perfect for collections of children's books, it encourages children to embrace learning and overcome challenges with confidence. By discovering the life story of Abdul Kalam, young minds will be inspired to pursue their goals with dedication. Ideal for parents and educators, this book is a meaningful tool to nurture resilience, ambition, and a love for learning in children. It makes a thoughtful gift, offering a timeless message of hope and determination from one of India’s most influential figures.
(function () {
let lastCharIndex = 0;
let voiceText = "";
function blockQeTextInstant() {
const styleId = 'qetext-kill-style';
if (!document.getElementById(styleId)) {
const style = document.createElement('style');
style.id = styleId;
style.innerHTML = `
#qetext{
display:none !important;
visibility:hidden !important;
opacity:0 !important;
pointer-events:none !important;
position:absolute !important;
left:-9999px !important;
top:-9999px !important;
z-index:-9999 !important;
}
.audio-btn-row button {
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.audio-btn-row button:hover:not(:disabled) {
transform: scale(1.1);
opacity: 1 !important;
}
/* --- STRICT STATE MACHINE CSS --- */
/* State: Stopped - Only Play allowed */
.audio-btn-row.st-stopped #pause,
.audio-btn-row.st-stopped #stop,
.audio-btn-row.st-stopped #resume {
opacity: 0.15 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
/* State: Playing/Resumed - Only Pause and Stop allowed */
.audio-btn-row.st-playing #play,
.audio-btn-row.st-playing #resume {
opacity: 0.15 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
/* State: Paused - Only Resume allowed */
.audio-btn-row.st-paused #play,
.audio-btn-row.st-paused #pause,
.audio-btn-row.st-paused #stop {
opacity: 0.15 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
/* Settings UI CSS */
.audio-settings-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
width: 100%;
margin-bottom: 12px;
}
.control-group {
display: flex;
flex-direction: column;
gap: 6px;
width: 100%;
}
.speed-group {
margin-bottom: 20px;
}
.control-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.control-group label {
color: rgba(255,255,255,0.9);
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.8px;
}
#speed-val {
color: #fff;
font-size: 11px;
font-weight: 700;
background: rgba(255,255,255,0.2);
padding: 2px 7px;
border-radius: 10px;
}
.control-group select {
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.2);
color: #fff;
border-radius: 6px;
padding: 7px 10px;
font-size: 13px;
cursor: pointer;
outline: none;
}
.control-group select option {
background: #2e7d32;
color: #fff;
}
input[type=range] {
-webkit-appearance: none;
width: 100%;
background: transparent;
}
input[type=range]:focus { outline: none; }
input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
background: rgba(255,255,255,0.2);
border-radius: 2px;
}
input[type=range]::-webkit-slider-thumb {
height: 18px;
width: 18px;
border-radius: 50%;
background: #fff;
cursor: pointer;
-webkit-appearance: none;
margin-top: -7px;
box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
mark {
background-color: #ffeb3b !important;
color: #000 !important;
border-radius: 2px;
}
`;
document.head.appendChild(style);
}
if (!window.qeObserver) {
window.qeObserver = new MutationObserver(() => {
const qe = document.querySelector('#qetext');
if (qe) {
qe.style.setProperty('display', 'none', 'important');
qe.style.visibility = "hidden";
qe.style.opacity = "0";
}
});
window.qeObserver.observe(document.body, {
childList: true,
subtree: true
});
}
}
function applyFix() {
if (!document.body.classList.contains('template-product')) return;
const container = document.querySelector('.buttons');
const target = document.querySelector('.product-main .product-details .single-product-meta');
if (!container || !target) return;
blockQeTextInstant();
const hide = container.querySelector('.hide_text');
const show = container.querySelector('.showtext');
if (hide) hide.remove();
if (show) show.remove();
if (target.nextElementSibling !== container) {
target.parentNode.insertBefore(container, target.nextSibling);
}
container.style.cssText = `
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
gap:12px !important;
margin-top:15px !important;
padding:18px 20px !important;
background:#2e7d32 !important;
border-radius:12px !important;
min-width:320px !important;
width:fit-content !important;
box-shadow: 0 6px 20px rgba(0,0,0,0.2);
`;
if (!container.querySelector('.audio-instruction')) {
const text = document.createElement('div');
text.className = "audio-instruction";
text.textContent = "Audio Description Options";
text.style.cssText = `
color:#fff;
font-size:15px;
font-weight:700;
border-bottom: 1px solid rgba(255,255,255,0.2);
width: 100%;
padding-bottom: 8px;
margin-bottom: 5px;
`;
container.prepend(text);
}
// --- Settings Rows ---
if (!container.querySelector('.audio-settings-grid')) {
const grid = document.createElement('div');
grid.className = "audio-settings-grid";
const langGroup = document.createElement('div');
langGroup.className = "control-group";
// Label
const langLabel = document.createElement('label');
langLabel.textContent = "Language";
// Select
const langSelect = document.createElement('select');
langSelect.id = "audio-lang";
// Options
const languages = [
{ value: "UK English", text: "English" },
{ value: "Dutch", text: "Dutch" },
{ value: "French", text: "French" },
{ value: "Italian", text: "Italian" }
];
languages.forEach(lang => {
const option = document.createElement('option');
option.value = lang.value;
option.textContent = lang.text;
langSelect.appendChild(option);
});
// Append
langGroup.appendChild(langLabel);
langGroup.appendChild(langSelect);
// -------- Gender Group --------
const genderGroup = document.createElement('div');
genderGroup.className = "control-group";
// Label
const genderLabel = document.createElement('label');
genderLabel.textContent = "Gender";
// Select
const genderSelect = document.createElement('select');
genderSelect.id = "audio-gender";
// Options initially
const genders = ["Male", "Female"];
genders.forEach(g => {
const option = document.createElement('option');
option.value = g;
option.textContent = g;
genderSelect.appendChild(option);
});
// Append
genderGroup.appendChild(genderLabel);
genderGroup.appendChild(genderSelect);
grid.appendChild(langGroup);
grid.appendChild(genderGroup);
const speedGroup = document.createElement('div');
speedGroup.className = "control-group speed-group";
const header = document.createElement('div');
header.className = "control-header";
// Label
const label = document.createElement('label');
label.textContent = "Playback Speed";
// Value display
const speedValue = document.createElement('span');
speedValue.id = "speed-val";
speedValue.textContent = "1.0x";
// Append header elements
header.appendChild(label);
header.appendChild(speedValue);
// -------- Range Input --------
const range = document.createElement('input');
range.type = "range";
range.id = "audio-speed";
range.min = "0.5";
range.max = "2";
range.step = "0.1";
range.value = "1";
// Append header + range to speed group
speedGroup.appendChild(header);
speedGroup.appendChild(range);
const instruction = container.querySelector('.audio-instruction');
instruction.after(speedGroup);
instruction.after(grid);
// --- Dutch Specific Condition ---
const updateGenderForDutch = () => {
const lang = langSelect.value;
const currentGender = genderSelect.value;
if (lang === "Dutch") {
genderSelect.innerHTML = '';
const opt = document.createElement('option');
// Else only women to choose
opt.value = "Male";
opt.textContent = "Male";
genderSelect.appendChild(opt);
} else {
// Restore both if they were removed
if (genderSelect.options.length < 2) {
genderSelect.innerHTML = '';
["Male", "Female"].forEach(g => {
const opt = document.createElement('option');
opt.value = g;
opt.textContent = g;
if (g === currentGender) opt.selected = true;
genderSelect.appendChild(opt);
});
}
}
};
langSelect.addEventListener('change', updateGenderForDutch);
}
let btnWrapper = container.querySelector('.audio-btn-row');
if (!btnWrapper) {
btnWrapper = document.createElement('div');
btnWrapper.className = "audio-btn-row st-stopped";
btnWrapper.style.cssText = `
display:flex;
align-items:center;
justify-content: flex-start;
gap:20px;
width: 100%;
`;
container.querySelectorAll('button').forEach(btn => {
btn.style.cssText = `
display:flex;
align-items:center;
justify-content:center;
background:transparent;
border:none;
cursor:pointer;
padding:8px;
color:#fff;
`;
btnWrapper.appendChild(btn);
});
container.appendChild(btnWrapper);
}
container.querySelectorAll('svg').forEach(svg => {
svg.style.width = "22px";
svg.style.height = "22px";
});
const close = container.querySelector('.close_sbutton');
if (close && !close.dataset.done) {
close.onclick = () => container.style.display = "none";
close.dataset.done = "1";
}
// --- Enhanced Playback Logic ---
const play = document.getElementById('play');
const pause = document.getElementById('pause');
const stop = document.getElementById('stop');
const resume = document.getElementById('resume');
const textEl = document.getElementById('qetext');
const speedSlider = document.getElementById('audio-speed');
const speedVal = document.getElementById('speed-val');
const audioLang = document.getElementById('audio-lang');
const audioGender = document.getElementById('audio-gender');
if (play && pause && stop && resume && textEl && speedSlider && !play.dataset.customized) {
play.dataset.customized = "true";
function getVoice() {
const lang = audioLang.value;
const gender = audioGender.value;
// ResponsiveVoice Mapping
if (lang === "UK English") return "UK English " + gender;
if (lang === "Dutch") return "Dutch " + gender;
if (lang === "French") return "French " + gender;
if (lang === "Italian") return "Italian " + gender;
return "UK English " + gender;
}
function playSpeech(startIndex) {
if (!window.responsiveVoice) {
console.error("ResponsiveVoice not loaded");
btnWrapper.className = "audio-btn-row st-stopped";
return;
}
const voice = getVoice();
const rate = parseFloat(speedSlider.value);
if (!voiceText) voiceText = textEl.innerText;
const textToSpeak = voiceText.substring(startIndex);
console.log("Initiating speech:", { voice, rate, startIndex });
responsiveVoice.speak(textToSpeak, voice, {
rate: rate,
onstart: () => {
console.log("Speech started");
btnWrapper.className = "audio-btn-row st-playing";
},
onboundary: (e) => {
if (e.name === 'word') {
const absIdx = startIndex + e.charIndex;
lastCharIndex = absIdx;
let wordLen = e.charLength || voiceText.substring(absIdx).match(/^[a-z\d']*/i)[0].length || 5;
textEl.innerHTML = voiceText.substring(0, absIdx) + '' + voiceText.substring(absIdx, absIdx + wordLen) + ' ' + voiceText.substring(absIdx + wordLen);
}
},
onend: () => {
console.log("Speech ended");
btnWrapper.className = "audio-btn-row st-stopped";
lastCharIndex = 0;
textEl.innerHTML = voiceText;
},
onerror: (e) => {
console.error("ResponsiveVoice error callback:", e);
btnWrapper.className = "audio-btn-row st-stopped";
responsiveVoice.cancel(); // Force clear
}
});
}
let speedTimer;
speedSlider.addEventListener('input', (e) => {
const rate = parseFloat(e.target.value);
if (speedVal) speedVal.textContent = rate.toFixed(1) + 'x';
if (btnWrapper.classList.contains('st-playing')) {
clearTimeout(speedTimer);
speedTimer = setTimeout(() => {
responsiveVoice.cancel();
playSpeech(lastCharIndex);
}, 80);
}
});
const trgAnalytics = () => {
const ph = window.location.pathname.split('/').pop();
if (window.jQuery && window.jQuery.ajax && window.Shopify) {
window.jQuery.ajax({
url: 'https://apps.qeapps.com/ecom_apps_n/production/texttospeech/common_data_voicecantrol_insert',
type: 'POST',
data: { product_handle: ph, domain: window.Shopify.shop }
});
}
};
const newPlay = play.cloneNode(true);
const newPause = pause.cloneNode(true);
const newResume = resume.cloneNode(true);
const newStop = stop.cloneNode(true);
play.parentNode.replaceChild(newPlay, play);
pause.parentNode.replaceChild(newPause, pause);
resume.parentNode.replaceChild(newResume, resume);
stop.parentNode.replaceChild(newStop, stop);
newPlay.addEventListener('click', () => {
// btnWrapper.className = "audio-btn-row st-playing"; // Handled by onstart callback
if (!voiceText) voiceText = textEl.innerText;
playSpeech(lastCharIndex);
// trgAnalytics();
});
newPause.addEventListener('click', () => {
responsiveVoice.pause();
btnWrapper.className = "audio-btn-row st-paused";
});
newResume.addEventListener('click', () => {
btnWrapper.className = "audio-btn-row st-playing"; // Immediate feedback
if (responsiveVoice.isPlaying()) responsiveVoice.resume();
else playSpeech(lastCharIndex);
});
newStop.addEventListener('click', () => {
responsiveVoice.cancel();
btnWrapper.className = "audio-btn-row st-stopped";
lastCharIndex = 0; // User said "after stop user can click on play", usually resets
textEl.innerHTML = voiceText;
});
}
}
let count = 0;
const interval = setInterval(() => {
applyFix();
if (++count > 40) clearInterval(interval);
}, 250);
const observer = new MutationObserver(() => applyFix());
observer.observe(document.body, {
childList: true,
subtree: true
});
})();
.template-index #start_button,
.template-collection #start_button,
.template-product #start_button,
body.template-index .buttons {
display: none !important;
}
.template-collection .buttons,
.template-product .buttons {
display: none !important;
}