Welcome My Blog The blogger website with tools offers a user-friendly platform for bloggers to create, edit, and publish their content with ease. With a variety of tools such as customizable templates, SEO optimization features, and social media integration, bloggers can enhance their online presence and reach a wider audience.
Loan EMI Code
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Loan Schedule Generator</title>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 20px;
}
h2 {
text-align: center;
color: white;
background-color: #007bff;
padding: 15px;
border-radius: 8px;
}
.container {
max-width: 800px;
margin: auto;
background: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.input-group {
display: flex;
gap: 10px;
margin-bottom: 20px;
}
.input-group input {
flex: 1;
padding: 10px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
}
.button {
background-color: #28a745;
color: white;
border: none;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
border-radius: 5px;
}
.button:hover {
background-color: #218838;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
th {
background-color: #dc3545;
color: white;
}
.summary-boxes {
display: flex;
justify-content: space-between;
margin-top: 20px;
gap: 10px;
flex-wrap: wrap;
}
.box {
flex: 1 1 45%;
background: #f8f9fa;
padding: 15px;
border-radius: 8px;
text-align: center;
font-weight: bold;
box-shadow: 0 0 5px rgba(0,0,0,0.05);
}
.ad-section {
margin: 20px 0;
padding: 15px;
background: #e2e3e5;
text-align: center;
border-radius: 8px;
}
</style>
</head>
<body>
<div class="container">
<h2>Loan Payment Schedule Generator</h2>
<div class="input-group">
<input type="number" id="loanAmount" placeholder="Enter Loan Amount (PKR)">
<input type="number" id="loanYears" placeholder="Enter Loan Period (Years)">
<button class="button" onclick="generateSchedule()">Calculate</button>
</div>
<div class="ad-section">AdSense Ad Placeholder</div>
<div class="summary-boxes" id="summary"></div>
<table id="scheduleTable"></table>
<div class="ad-section">AdMob Ad Placeholder</div>
</div>
<script>
function generateSchedule() {
const amount = parseFloat(document.getElementById('loanAmount').value);
const years = parseInt(document.getElementById('loanYears').value);
if (isNaN(amount) || isNaN(years) || amount <= 0 || years <= 0) {
alert("Please enter valid amount and years.");
return;
}
const paymentsPerYear = 12;
const totalPayments = years * paymentsPerYear;
const monthlyPayment = (amount / totalPayments).toFixed(2);
let balance = amount;
let scheduleHTML = '<tr><th>No</th><th>Date</th><th>Beginning Balance</th><th>Payment</th><th>Principal</th><th>Markup</th><th>Ending Balance</th></tr>';
let startDate = new Date();
startDate.setDate(16);
startDate.setMonth(startDate.getMonth());
for (let i = 1; i <= totalPayments; i++) {
let paymentDate = new Date(startDate);
paymentDate.setMonth(startDate.getMonth() + i - 1);
let principal = parseFloat(monthlyPayment);
let endBalance = (balance - principal).toFixed(2);
scheduleHTML += `<tr>
<td>${i}</td>
<td>${paymentDate.toLocaleDateString()}</td>
<td>${balance.toFixed(2)}</td>
<td>${monthlyPayment}</td>
<td>${monthlyPayment}</td>
<td>0</td>
<td>${endBalance}</td>
</tr>`;
balance -= principal;
}
document.getElementById('scheduleTable').innerHTML = scheduleHTML;
document.getElementById('summary').innerHTML = `
<div class="box">Monthly Payment: PKR ${monthlyPayment}</div>
<div class="box">Total Payments: ${totalPayments}</div>
<div class="box">Total Amount Paid: PKR ${(monthlyPayment * totalPayments).toFixed(2)}</div>
<div class="box">Markup: 0%</div>
`;
}
</script>
</body>
</html>
YouTube Thumbnail Downloader Code
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>YouTube Thumbnail Downloader</title>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background: #f0f4f8;
padding: 20px;
text-align: center;
}
h1 {
color: #333;
margin-bottom: 20px;
}
input {
width: 90%;
max-width: 500px;
padding: 10px;
border: 2px solid #0077ff;
border-radius: 8px;
font-size: 16px;
}
button {
background: #0077ff;
color: #fff;
border: none;
padding: 12px 24px;
border-radius: 8px;
cursor: pointer;
font-size: 16px;
margin-top: 10px;
transition: 0.3s;
}
button:hover {
background: #0055cc;
transform: scale(1.05);
}
.thumbnail-box {
margin-top: 30px;
}
.thumb-preview {
margin: 20px 0;
}
.thumb-preview img {
max-width: 100%;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
.download-button {
background-color: #28a745;
color: white;
padding: 10px 18px;
text-decoration: none;
border-radius: 8px;
font-size: 15px;
display: inline-block;
margin: 10px 10px;
animation: bounce 1.5s infinite;
}
.download-button:hover {
background-color: #218838;
transform: scale(1.05);
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-5px); }
}
.ad-container {
margin: 20px auto;
max-width: 728px;
text-align: center;
}
</style>
</head>
<body>
<!-- ?? Adsterra / AdMob Top Banner -->
<div class="ad-container">
<!-- ?? Replace this with your own AdMob or Adsterra banner code -->
<script type='text/javascript'>
atOptions = {
'key' : 'YOUR_ADSTERRA_KEY_TOP',
'format' : 'banner',
'height' : 90,
'width' : 728,
'params' : {}
};
document.write('<scr' + 'ipt type="text/javascript" src="https://www.profitabledisplaynetwork.com/' + atOptions.key + '/invoke.js"></scr' + 'ipt>');
</script>
</div>
<h1>YouTube Thumbnail Downloader</h1>
<input type="text" id="videoUrl" placeholder="Paste YouTube Video URL Here">
<br>
<button onclick="getThumbnails()">Get Thumbnails</button>
<!-- ?? Ad between input & result -->
<div class="ad-container">
<!-- Optional second ad -->
</div>
<div id="thumbnailContainer" class="thumbnail-box"></div>
<!-- ?? Bottom Banner Ad -->
<div class="ad-container">
<!-- ?? Replace this with your second AdMob/Adsterra ad -->
<script type='text/javascript'>
atOptions = {
'key' : 'YOUR_ADSTERRA_KEY_BOTTOM',
'format' : 'banner',
'height' : 90,
'width' : 728,
'params' : {}
};
document.write('<scr' + 'ipt type="text/javascript" src="https://www.profitabledisplaynetwork.com/' + atOptions.key + '/invoke.js"></scr' + 'ipt>');
</script>
</div>
<script>
function getYouTubeVideoID(url) {
const regExp = /^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]{11}).*/;
const match = url.match(regExp);
return match ? match[2] : null;
}
function getThumbnails() {
const url = document.getElementById('videoUrl').value.trim();
const videoId = getYouTubeVideoID(url);
if (!videoId) {
alert("? Invalid YouTube URL!");
return;
}
const thumbs = {
fullHD: `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg`,
medium: `https://img.youtube.com/vi/${videoId}/sddefault.jpg`,
small: `https://img.youtube.com/vi/${videoId}/hqdefault.jpg`
};
const html = `
<div class="thumb-preview">
<h3>Full HD Thumbnail</h3>
<img src="${thumbs.fullHD}" alt="Full HD">
<br>
<a class="download-button" href="${thumbs.fullHD}" download target="_blank">Download Full HD</a>
</div>
<div class="thumb-preview">
<h3>Medium Thumbnail</h3>
<img src="${thumbs.medium}" alt="Medium">
<br>
<a class="download-button" href="${thumbs.medium}" download target="_blank">Download Medium</a>
</div>
<div class="thumb-preview">
<h3>Small Thumbnail</h3>
<img src="${thumbs.small}" alt="Small">
<br>
<a class="download-button" href="${thumbs.small}" download target="_blank">Download Small</a>
</div>
`;
document.getElementById("thumbnailContainer").innerHTML = html;
}
</script>
</body>
</html>
YouTube Thumbnail Downloader Prompt
Create A Tool Name: YouTube Thumbnail Downloader
?? Function: Download high-quality thumbnails from any YouTube video in just one click!
?? How to use:
Paste any YouTube video URL into the input box.
Click the “Get Thumbnails” button.
Instantly preview and download:
? Full HD thumbnail
? Medium quality thumbnail
? Small thumbnail
?? Features:
Get real-time thumbnail preview
3 quality options: Full HD, Medium, Small
Animated download buttons
Fully responsive and mobile-friendly
Works without plugins or login
Supports both short and full YouTube links
?? Monetization Ready:
Integrated with AdMob and Adsterra (top & bottom banner ads)
?? Perfect for:
Content creators
YouTubers
Bloggers
Thumbnail designers
Social media managers.
With HTML,CSS,JS Code