Система за банери с MySQL и админ панел
Автор: miro_94
Това е една проста система за банери.Системата е авторска и преписването и в други сайтове е абсолютно забранено!
Структура:
index.php
add.php
conn.php
admin.php
login.php
del_cat.php
del_link.php
style/SpryTabbedPanels.css
style/SpryTabbedPanels.js
img/del.png
img/in.pnp
img/in1.png
Потребителското име и паролата, за админ панела са потр.: admin парола: admin
Папката с картинките е добавена във файла за теглене!
БД
CREATE TABLE `categories` (
`value` tinyint(4) NOT NULL auto_increment,
`name` varchar(50) collate utf8_unicode_ci NOT NULL default ' ',
PRIMARY KEY (`value`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=20 ;
INSERT INTO `categories` (`value`, `name`) VALUES
(1, 'Schools'),
(2, 'University'),
(3, 'Banks'),
(4, 'Hotels'),
(5, 'Information'),
(6, 'Search'),
(7, 'Other'),
(8, 'Shops'),
(9, 'Emails'),
(10, 'IT sites'),
(11, 'Programing'),
(12, 'Games'),
(13, 'Forums'),
(14, 'Sports'),
(15, 'Auto'),
(16, 'Design'),
(17, 'Animals'),
(18, 'Music'),
(19, 'Personal websites');
CREATE TABLE `link` (
`id` int(4) NOT NULL auto_increment,
`link` varchar(255) collate utf8_unicode_ci NOT NULL,
`url` varchar(255) collate utf8_unicode_ci NOT NULL,
`desk` text collate utf8_unicode_ci NOT NULL,
`cat` varchar(255) collate utf8_unicode_ci NOT NULL default ' ',
PRIMARY KEY (`id`),
FULLTEXT KEY `desk` (`desk`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;Следва файла index.php
<?php include("conn.php");//Добавяне на конекшън файла ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><::miro_94::></title>
<style type="text/css">
<!--
.a{
background-image: url("img/in.png");
background-repeat: repeat-x;
border: 1px solid #000000;
color: #FFFFFF;
width: 250px;
}
.b{
background-image: url("img/in1.png");
background-repeat: repeat-x;
border: 1px solid #000000;
color: #FFFFFF;
height: 50px;
width: 250px;
}
.c{
background-image: url("img/in.png");
background-repeat: repeat-x;
border: 1px solid #000000;
color: #FFFFFF;
}
.d{
background-image: url("img/in.png");
background-repeat: repeat;
border: 1px solid #000000;
color: #000000;
width: 250px;
}
table,tr,td{
border: 1px #000000 solid;
}
-->
</style>
</head>
<body>
<?php
$zaiavka="select * from link";//Правим селект заявка
$r = mysql_query($zaiavka, $connect)
or die(mysql_error());
//Изкарваме резултатите
$form = "
<table width=\"800\" border=\"1\" align=\"center\" cellpadding=\"1\" cellspacing=\"1\">
<tr>
<td width=\"150\" align=\"center\">ID</td>
<td width=\"200\" align=\"center\">Сайт</td>
<td width=\"300\" align=\"center\">Описание</td>
<td width=\"150\" align=\"center\">Категория</td>
</tr> ";
while($row=mysql_fetch_array($r))
{
$form .= "<tr>
<td width=\"150\" align=\"center\">$row[id]</td>
<td width=\"200\" align=\"center\"><a href=\"$row[link]\" target=\"_blank\"><img src=\"$row[url]\" alt=\"\" border=\"0\"></a></td>
<td width=\"300\" align=\"center\">$row[desk]</td>
<td width=\"150\" align=\"center\">$row[cat]</td>";
}
$form .= "</tr></table>";
echo $form;
?>
<div align="left"><a href="add.php">Добавете вашият сайт тук!</a></div>
<div align="right"><a href="login.php">Админ панел</a></div>
</body>
</html>Сега add.php
<?php include("conn.php");//Добавяне на конекшън файла ?>
<?php
$r = @mysql_select_db($db) or die(mysql_error());
$sql = "select * from categories";
$r = mysql_query($sql);
while($row = mysql_fetch_array($r)){
$sel .= "<option>$row[name]</option>";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><::miro_94::></title>
<style type="text/css">
<!--
.a{
background-image: url("img/in.png");
background-repeat: repeat-x;
border: 1px solid #000000;
color: #FFFFFF;
width: 250px;
}
.b{
background-image: url("img/in1.png");
background-repeat: repeat-x;
border: 1px solid #000000;
color: #FFFFFF;
height: 50px;
width: 250px;
}
.c{
background-image: url("img/in.png");
background-repeat: repeat-x;
border: 1px solid #000000;
color: #FFFFFF;
}
.d{
background-image: url("img/in.png");
background-repeat: repeat;
border: 1px solid #000000;
color: #000000;
width: 250px;
}
table,tr,td{
border: 0px #000000 solid;
}
-->
</style>
</head>
<body>
<table width="250" border="1" align="center" cellpadding="1" cellspacing="1">
<form method="POST" name="add" id="add">
<tr>
<td><input name="link" type="text" value="http://Линк на сайта" onfocus="if(this.value == 'http://Линк на сайта')this.value = 'http://';" onblur="if(this.value == 'http://')this.value = 'http://Линк на сайта';" class="a"></td>
</tr>
<tr>
<td><input name="url" type="text" class="a" value="http://Линк на банера" onfocus="if(this.value == 'http://Линк на банера')this.value = 'http://';" onblur="if(this.value == 'http://')this.value = 'http://Линк на банера';" /></td>
</tr>
<tr>
<td align="center"><label>
<select name="category" size="1" class="d" id="categories">
<option>Избери категория</option>
<?php echo $sel; ?>
</select>
</label></td>
</tr>
<tr>
<td align="center"><textarea name="desk" class="b" onfocus="if(this.value=='Описание')this.value='';" onblur="if(this.value=='')this.value='Описание';">Описание</textarea></td>
</tr>
<tr>
<td align="center"><input name="submit" type="submit" value="Запиши" class="c"></td>
</tr>
</form>
</table>
<?php
if($_POST['submit']){//Взимаме написаното във формата
$id = "NULL";
$link = "$_POST[link]";
$url = "$_POST[url]";
$cat = "$_POST[category]";
$desk = "$_POST[desk]";
if($link == "http://Линка на сайта" || $url == "http://Линка на банера" || $cat == "Избери категория" || $desk == "Описание"){
echo "Некоректно попълване, моля попълнете всички полета!";
}
else {
$sql = "INSERT INTO `link` VALUE ('$id', '$link', '$url', '$desk', '$cat');";//и го записвами в базата данни
}
$result = mysql_query($sql) or die (mysql_error());
if($result){// Ако се е записало изкарва това ако не
echo "Банерът е добавен!Можете да го видите <a href=\"index.php\">тук</a>.";
}
}
else {//изкарва това
echo mysql_error();
}
?>
</body>
</html>И накрая, но не и по важност conn.php
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "links";
$connect = mysql_connect($host, $user, $pass) or die(mysql_error());//Правим връзка
mysql_select_db($db) or die(mysql_error());//Селектираме базата данни
?>admin.php
<?php
$potrebitel= $HTTP_POST_VARS['potrebitel'];//Защитаваме панела с потребител и пароля
$pas= $HTTP_POST_VARS['pas'];
if ($potrebitel!='admin' || $pas!='admin'){
echo "Вие нямате достъп до тази страница";
exit;
}
?>
<?php include("conn.php");//Конекция към Базата Данни ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><::miro_94::></title>
<script src="style/SpryTabbedPanels.js" type="text/javascript"></script>
<link href="style/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="TabbedPanels1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">Списък с линкове</li>
<li class="TabbedPanelsTab" tabindex="0">Списък с категориите</li>
<li class="TabbedPanelsTab" tabindex="0">Добавяне на категория</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<?php
$r = @mysql_select_db($db) or die(mysql_error());//Селектиране на бд
$sql = "SELECT * FROM link";//Селектиране на таблица
$r = mysql_query($sql) or die(mysql_error());//Извършваме селектирането
while($row = mysql_fetch_array($r)){//Изкарваме резултат
$alllinks .= "
<tr>
<td class=\"one\">$row[id]</td>
<td class=\"one\"><a href=\"$row[link]\" title=\"$row[desk]\" target=\"_blank\"><img src=\"$row[url]\" alt=\"$row[desc]\" border=\"0\" /></a></td>
<td class=\"one\">$row[desk]</td>
<td class=\"one\">$row[cat]</td>
<td align=\"center\"><a href=\"del_link.php?id=$row[id]\"><img src=\"img/del.png\" border=\"0\" /></a></td>
</tr>";
}
?>
<table border="0" cellspacing="1" cellpadding="1">
<tr>
<td id="line">ID</td>
<td id="line">Сайт</td>
<td id="line">Описание</td>
<td id="line">Категория</td>
<td id="line">Изтрий</td>
</tr>
<?php echo $alllinks;//Изкарване на информациятя ?>
</table></div>
<div class="TabbedPanelsContent">
<?php
$r = @mysql_select_db($db) or die(mysql_error());//Селектиране на бд
$sql = "SELECT * FROM categories";//Селектиране на таблица
$r = mysql_query($sql) or die(mysql_error());//Извързване на заявката
while($row = mysql_fetch_array($r)){//Изкарване на резултат
$allcats .= "
<tr>
<td>$row[value]</td>
<td>$row[name]</td>
<td align=\"center\"><a href=\"del_cat.php?id=$row[value]\"><img src=\"img/del.png\" alt=\"\" border=\"0\"></a></td>
</tr>";
}
?>
<table border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td id="line">ID</td>
<td id="line">Категория</td>
<td id="line">Изтрий</td>
</tr>
<?php echo $allcats;//Иззкарване на резултат ?>
</table>
</div>
<div class="TabbedPanelsContent">
<form action="" method="post">
<table border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td>Име на категорията</td>
<td>:</td>
<td><input type="text" name="catname" id="catname" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" name="submit" id="submit" value="Запиши!" /></td>
</tr>
</table>
<?php
if(isset($_POST['submit'])){//Взимаме информацията
$sql = "INSERT INTO `categories` (`value`, `name`) VALUES (NULL, '$_POST[catname]')";//Заявкя за записване в бд
$result = mysql_query($sql) or die(mysql_error());//Извършване на заявката
if($result){//Проверяваме дали всичко е наред
echo "Категорията е добавена успешно!";
}
}
else {
echo "Категорията не е добавена!";
}
?>
</div>
</div>
</div>
<a href="index.php">Изход</a>
<script type="text/javascript">
<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
//-->
</script>
</body>
</html>login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><::miro_94::></title>
</head>
<body>
<form action="admin.php" method="post"><br>
<br>
<table border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td>Потребител</td>
<td>:</td>
<td><input type="text" name="potrebitel" /></td>
</tr>
<tr>
<td>Парола</td>
<td>:</td>
<td><input type="password" name="pas" /></td>
</tr>
<tr>
<td colspan="3"><input type="submit" value="ВХОД"></td>
</tr>
</table>
</body>
</html>del_cat.php
<?php include("conn.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="style/SpryTabbedPanels.js" type="text/javascript"></script>
<link href="style/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="TabbedPanels1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">Съобщение</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<?php
$id = $_GET['id'];
if(isset($id)){
$sql = "DELETE FROM link WHERE id=$id";
$result = mysql_query($sql) or die(mysql_error());
if($result){
echo "Успешно изтрита категория!";
}
}
else {
echo "Успешно неизтрита категория!";
}
?>
</div>
</div>
</div>
<script type="text/javascript">
<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
//-->
</script>
</body>
</html>del_link.php
<?php include("conn.php"); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="style/SpryTabbedPanels.js" type="text/javascript"></script>
<link href="style/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="TabbedPanels1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">Съобщение</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">
<?php
$id = $_GET['id'];
if(isset($id)){
$sql = "DELETE FROM link WHERE id=$id";
$result = mysql_query($sql) or die(mysql_error());
if($result){
echo "Успешно изтрит линк!";
}
}
else {
echo "Успешно неизтрит линк!";
}
?>
</div>
</div>
</div>
<script type="text/javascript">
<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
//-->
</script>
</body>
</html>style/SpryTabbedPanels.css
.TabbedPanels {
margin: 0px;
padding: 0px;
float: left;
clear: none;
width: 100%;
}
.TabbedPanelsTabGroup {
margin: 0px;
padding: 0px;
}
.TabbedPanelsTab {
position: relative;
top: 1px;
float: left;
padding: 4px 10px;
margin: 0px 1px 0px 0px;
font: bold 0.7em sans-serif;
background-color: #DDD;
list-style: none;
border-left: solid 1px #CCC;
border-bottom: solid 1px #999;
border-top: solid 1px #999;
border-right: solid 1px #999;
-moz-user-select: none;
-khtml-user-select: none;
cursor: pointer;
}
.TabbedPanelsTabHover {
background-color: #CCC;
}
.TabbedPanelsTab a {
color: black;
text-decoration: none;
}
.TabbedPanelsContentGroup {
clear: both;
border-left: solid 1px #CCC;
border-bottom: solid 1px #CCC;
border-top: solid 1px #999;
border-right: solid 1px #999;
background-color: #EEE;
}
.TabbedPanelsContent {
padding: 4px;
}
.TabbedPanelsContentVisible {
}
.VTabbedPanels .TabbedPanelsTabGroup {
float: left;
width: 100%;
height: 20em;
background-color: #EEE;
position: relative;
border-top: solid 1px #999;
border-right: solid 1px #999;
border-left: solid 1px #CCC;
border-bottom: solid 1px #CCC;
}
.VTabbedPanels .TabbedPanelsTab {
float: none;
margin: 0px;
border-top: none;
border-left: none;
border-right: none;
}
.VTabbedPanels .TabbedPanelsTabSelected {
background-color: #EEE;
border-bottom: solid 1px #999;
}
.VTabbedPanels .TabbedPanelsContentGroup {
clear: none;
float: left;
padding: 0px;
width: 100%;
height: 20em;
}
table {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-style: normal;
line-height: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
color: #000000;
text-decoration: none;
border: 1px dashed #000000;
}
#line {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-style: normal;
line-height: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
color: #000000;
text-decoration: none;
border-top-width: 1px;
border-bottom-width: 1px;
border-top-style: solid;
border-bottom-style: solid;
border-top-color: #000000;
border-bottom-color: #000000;
}
.one {
border-right-width: 1px;
border-right-style: solid;
border-right-color: #000000;
}style/SpryTabbedPanels.js
var Spry;
if (!Spry) Spry = {};
if (!Spry.Widget) Spry.Widget = {};
Spry.Widget.TabbedPanels = function(element, opts)
{
this.element = this.getElement(element);
this.defaultTab = 0;
this.bindings = [];
this.tabSelectedClass = "TabbedPanelsTabSelected";
this.tabHoverClass = "TabbedPanelsTabHover";
this.tabFocusedClass = "TabbedPanelsTabFocused";
this.panelVisibleClass = "TabbedPanelsContentVisible";
this.focusElement = null;
this.hasFocus = false;
this.currentTabIndex = 0;
this.enableKeyboardNavigation = true;
Spry.Widget.TabbedPanels.setOptions(this, opts);
if (typeof (this.defaultTab) == "number")
{
if (this.defaultTab < 0)
this.defaultTab = 0;
else
{
var count = this.getTabbedPanelCount();
if (this.defaultTab >= count)
this.defaultTab = (count > 1) ? (count - 1) : 0;
}
this.defaultTab = this.getTabs()[this.defaultTab];
}
if (this.defaultTab)
this.defaultTab = this.getElement(this.defaultTab);
this.attachBehaviors();
};
Spry.Widget.TabbedPanels.prototype.getElement = function(ele)
{
if (ele && typeof ele == "string")
return document.getElementById(ele);
return ele;
}
Spry.Widget.TabbedPanels.prototype.getElementChildren = function(element)
{
var children = [];
var child = element.firstChild;
while (child)
{
if (child.nodeType == 1)
children.push(child);
child = child.nextSibling;
}
return children;
};
Spry.Widget.TabbedPanels.prototype.addClassName = function(ele, className)
{
if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) != -1))
return;
ele.className += (ele.className ? " " : "") + className;
};
Spry.Widget.TabbedPanels.prototype.removeClassName = function(ele, className)
{
if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) == -1))
return;
ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");
};
Spry.Widget.TabbedPanels.setOptions = function(obj, optionsObj, ignoreUndefinedProps)
{
if (!optionsObj)
return;
for (var optionName in optionsObj)
{
if (ignoreUndefinedProps && optionsObj[optionName] == undefined)
continue;
obj[optionName] = optionsObj[optionName];
}
};
Spry.Widget.TabbedPanels.prototype.getTabGroup = function()
{
if (this.element)
{
var children = this.getElementChildren(this.element);
if (children.length)
return children[0];
}
return null;
};
Spry.Widget.TabbedPanels.prototype.getTabs = function()
{
var tabs = [];
var tg = this.getTabGroup();
if (tg)
tabs = this.getElementChildren(tg);
return tabs;
};
Spry.Widget.TabbedPanels.prototype.getContentPanelGroup = function()
{
if (this.element)
{
var children = this.getElementChildren(this.element);
if (children.length > 1)
return children[1];
}
return null;
};
Spry.Widget.TabbedPanels.prototype.getContentPanels = function()
{
var panels = [];
var pg = this.getContentPanelGroup();
if (pg)
panels = this.getElementChildren(pg);
return panels;
};
Spry.Widget.TabbedPanels.prototype.getIndex = function(ele, arr)
{
ele = this.getElement(ele);
if (ele && arr && arr.length)
{
for (var i = 0; i < arr.length; i++)
{
if (ele == arr[i])
return i;
}
}
return -1;
};
Spry.Widget.TabbedPanels.prototype.getTabIndex = function(ele)
{
var i = this.getIndex(ele, this.getTabs());
if (i < 0)
i = this.getIndex(ele, this.getContentPanels());
return i;
};
Spry.Widget.TabbedPanels.prototype.getCurrentTabIndex = function()
{
return this.currentTabIndex;
};
Spry.Widget.TabbedPanels.prototype.getTabbedPanelCount = function(ele)
{
return Math.min(this.getTabs().length, this.getContentPanels().length);
};
Spry.Widget.TabbedPanels.addEventListener = function(element, eventType, handler, capture)
{
try
{
if (element.addEventListener)
element.addEventListener(eventType, handler, capture);
else if (element.attachEvent)
element.attachEvent("on" + eventType, handler);
}
catch (e) {}
};
Spry.Widget.TabbedPanels.prototype.onTabClick = function(e, tab)
{
this.showPanel(tab);
};
Spry.Widget.TabbedPanels.prototype.onTabMouseOver = function(e, tab)
{
this.addClassName(tab, this.tabHoverClass);
};
Spry.Widget.TabbedPanels.prototype.onTabMouseOut = function(e, tab)
{
this.removeClassName(tab, this.tabHoverClass);
};
Spry.Widget.TabbedPanels.prototype.onTabFocus = function(e, tab)
{
this.hasFocus = true;
this.addClassName(this.element, this.tabFocusedClass);
};
Spry.Widget.TabbedPanels.prototype.onTabBlur = function(e, tab)
{
this.hasFocus = false;
this.removeClassName(this.element, this.tabFocusedClass);
};
Spry.Widget.TabbedPanels.ENTER_KEY = 13;
Spry.Widget.TabbedPanels.SPACE_KEY = 32;
Spry.Widget.TabbedPanels.prototype.onTabKeyDown = function(e, tab)
{
var key = e.keyCode;
if (!this.hasFocus || (key != Spry.Widget.TabbedPanels.ENTER_KEY && key != Spry.Widget.TabbedPanels.SPACE_KEY))
return true;
this.showPanel(tab);
if (e.stopPropagation)
e.stopPropagation();
if (e.preventDefault)
e.preventDefault();
return false;
};
Spry.Widget.TabbedPanels.prototype.preorderTraversal = function(root, func)
{
var stopTraversal = false;
if (root)
{
stopTraversal = func(root);
if (root.hasChildNodes())
{
var child = root.firstChild;
while (!stopTraversal && child)
{
stopTraversal = this.preorderTraversal(child, func);
try { child = child.nextSibling; } catch (e) { child = null; }
}
}
}
return stopTraversal;
};
Spry.Widget.TabbedPanels.prototype.addPanelEventListeners = function(tab, panel)
{
var self = this;
Spry.Widget.TabbedPanels.addEventListener(tab, "click", function(e) { return self.onTabClick(e, tab); }, false);
Spry.Widget.TabbedPanels.addEventListener(tab, "mouseover", function(e) { return self.onTabMouseOver(e, tab); }, false);
Spry.Widget.TabbedPanels.addEventListener(tab, "mouseout", function(e) { return self.onTabMouseOut(e, tab); }, false);
if (this.enableKeyboardNavigation)
{
var tabIndexEle = null;
var tabAnchorEle = null;
this.preorderTraversal(tab, function(node) {
if (node.nodeType == 1 /* NODE.ELEMENT_NODE */)
{
var tabIndexAttr = tab.attributes.getNamedItem("tabindex");
if (tabIndexAttr)
{
tabIndexEle = node;
return true;
}
if (!tabAnchorEle && node.nodeName.toLowerCase() == "a")
tabAnchorEle = node;
}
return false;
});
if (tabIndexEle)
this.focusElement = tabIndexEle;
else if (tabAnchorEle)
this.focusElement = tabAnchorEle;
if (this.focusElement)
{
Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "focus", function(e) { return self.onTabFocus(e, tab); }, false);
Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "blur", function(e) { return self.onTabBlur(e, tab); }, false);
Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "keydown", function(e) { return self.onTabKeyDown(e, tab); }, false);
}
}
};
Spry.Widget.TabbedPanels.prototype.showPanel = function(elementOrIndex)
{
var tpIndex = -1;
if (typeof elementOrIndex == "number")
tpIndex = elementOrIndex;
else
tpIndex = this.getTabIndex(elementOrIndex);
if (!tpIndex < 0 || tpIndex >= this.getTabbedPanelCount())
return;
var tabs = this.getTabs();
var panels = this.getContentPanels();
var numTabbedPanels = Math.max(tabs.length, panels.length);
for (var i = 0; i < numTabbedPanels; i++)
{
if (i != tpIndex)
{
if (tabs[i])
this.removeClassName(tabs[i], this.tabSelectedClass);
if (panels[i])
{
this.removeClassName(panels[i], this.panelVisibleClass);
panels[i].style.display = "none";
}
}
}
this.addClassName(tabs[tpIndex], this.tabSelectedClass);
this.addClassName(panels[tpIndex], this.panelVisibleClass);
panels[tpIndex].style.display = "block";
this.currentTabIndex = tpIndex;
};
Spry.Widget.TabbedPanels.prototype.attachBehaviors = function(element)
{
var tabs = this.getTabs();
var panels = this.getContentPanels();
var panelCount = this.getTabbedPanelCount();
for (var i = 0; i < panelCount; i++)
this.addPanelEventListeners(tabs[i], panels[i]);
this.showPanel(this.defaultTab);
};ова е съвсем проста система за банери, ако искате си я моднете.


