Ready for 7.10.29 development.

This commit is contained in:
Colin Kuskie 2013-03-20 21:38:23 -07:00
commit c806f99b7b
4236 changed files with 1217679 additions and 0 deletions

View file

@ -0,0 +1,21 @@
#attachments { width: 100%; background-color: #eeeeee; padding: 3px; height: 100%; }
.attachment { position: relative; width: 100px; height: 80px; border: 0px; margin-right: 5px; padding: 0px; padding-left: 20px;
border: 1px dashed #bbbbbb; overflow: hidden; float: left; text-align: center;}
.attachment img { border: 0px; width: 90px; max-height: 70px; vertical-align: middle; margin: 5px; }
.attachment a { vertical-align: middle; margin: 5px; }
body { margin: 0px; padding: 0px; background-color: #eeeeee; }
#upload { position:fixed; _position:absolute; bottom:0; right:0; font-family: sans-serif; cursor: pointer;
_top:expression(document.body.scrollTop+document.body.clientHeight-this.clientHeight); width: 150px; font-size: 12px; background-color: #008000; text-align: center; text-decoration: none; z-index: 10; color: white; }
#instructions { font-size: 11px; color: white; width: 100%; background-color: black; font-family: sans-serif;}
#uploadForm { position:fixed; _position:absolute; top:0; _top:expression(eval(document.body.scrollTop)); left:0; margin:0; padding:0; background-color: #eeeeee; z-index: 20; width: 100%; height: 100%; display: none; vertical-align: middle; text-align: center; padding-top: 5px; }
#uploadFormCloser { position: absolute; top: 0px; right: 0px; background-color: #800000; color: #ffffff; margin: 3px;
padding: 3px; border: 2px solid black; text-decoration: none; cursor: pointer; }
.deleteAttachment {position: absolute; top: 0px; left: 0px; background-color: #800000; color: white; z-index: 10;
font-size: 14px; text-decoration: none; border: 1px solid black; width: 16px; height: 16px;}
.thumbnail {position: absolute; z-index: 10; top: 20px; left: 0px;}
.thumbnail img { width: 15px; height: 15px; border: 1px solid black; }
.imageLink { position: absolute; top: 40px; left: 0px; background-color: #eeeeee; color: blue; z-index: 10;
font-size: 14px; text-decoration: underline; border: 1px solid black; width: 16px; height: 16px;
overflow: hidden; }

View file

@ -0,0 +1,12 @@
WebguiAttachmentUploadForm = function () {
return {
show: function () {
document.getElementById("uploadForm").style.display = "block";
},
hide: function () {
document.getElementById("uploadForm").style.display = "none";
}
}
}();

View file

@ -0,0 +1,138 @@
//constructor for a new file upload control object. The object generates file upload boxes based on user
//input. Each file upload input is named "file" the control must be rendered in a form. The
//Workspace id is the id of the div in the html page to render the control in.
function FileUploadControl(fieldName, imageArray, removeLabel, fileLimit, size) {
this.images = imageArray;
this.fileLimit = fileLimit;
this.fileCount = 1;
this.fieldName = fieldName;
workspaceId = fieldName+"_fileUploadControl";
this.workspaceId = workspaceId;
this.dom=document.getElementById&&!document.all;
this.topLevelElement=this.dom? "HTML" : "BODY"
document.write('<div id="'+workspaceId+'"> </div>');
var workspace = document.getElementById(workspaceId);
var str = '<table border="0" cellspacing="0" cellpadding="0"><tbody id="' + workspaceId + '.fileUpload.body">';
str += '</tbody></table>';
str +='<table style="display: none;">'
str += '<tr id="' + workspaceId + '.template" class="fileUploadRow"><td style="display:none;"><img src="' + imageArray["unknown"] + '" style="visibility: hidden;" /></td>';
str +='<td colspan="2"><input type="file" name="'+fieldName+'" ';
str += ' size="'+ size + '" ';
str +=' onchange="FileUploadControl_valueChange(event)"></td><td><input type="button" value="' + removeLabel + '" onclick="FileUploadControl_removeButtonClick(event)" alt="unknown filetype" /></td></tr>';
str += '</table>';
workspace.innerHTML = str;
this.tbody = document.getElementById(workspaceId + '.fileUpload.body');
this.tbody.fileUploadControl = this;
this.rowTemplate = document.getElementById(workspaceId + ".template");
this.removeRow = FileUploadControl_removeRow;
this.addRow = FileUploadControl_addRow;
this.swapImage = FileUploadControl_swapImage;
this.getRow = FileUploadControl_getRow;
}
//Searches up the object tree to find the control that owns this object
function FileUploadControl_getControl(firedobj){
var dom=document.getElementById&&!document.all;
var topLevelElement=dom? "HTML" : "BODY"
//traverse up the dom tree until you find the asset
while (firedobj.tagName!=topLevelElement && !firedobj.fileUploadControl) {
firedobj=dom? firedobj.parentNode : firedobj.parentElement
}
if (firedobj.fileUploadControl) {
return firedobj.fileUploadControl;
}else {
return null;
}
}
//traverses up the object tree to find the row associated with firedobj
function FileUploadControl_getRow(firedobj) {
while (firedobj.tagName!=this.topLevelElement && firedobj.className!="fileUploadRow") {
firedobj=this.dom? firedobj.parentNode : firedobj.parentElement
}
return firedobj;
}
//uses the image array passed into the constructor to set the src on the image for the row.
function FileUploadControl_swapImage(firedobj) {
var parts = firedobj.value.split('.');
var imgPath = this.images["unknown"];
var alternative;
if (parts.length !=1) {
var extension = parts[parts.length -1].toLowerCase();
if (this.images[extension]) {
imgPath = this.images[extension];
alternative = extension;
}
}
var row = this.getRow(firedobj);
row.childNodes[0].style.display='';
row.childNodes[1].colSpan=1;
var img = row.childNodes[0].childNodes[0];
img.src = imgPath;
img.style.visibility="visible";
img.alt = alternative;
}
//removes a row from the control
function FileUploadControl_removeRow(firedobj) {
var row = this.getRow(firedobj);
this.tbody.removeChild(row);
}
//adds a row to the control
function FileUploadControl_addRow() {
var row = this.rowTemplate.cloneNode(true);
row.id = "id";
row.id += new Date().getTime();
this.tbody.appendChild(row);
}
//event handlers
//called on click of the remove button
function FileUploadControl_removeButtonClick(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
var firedobj =dom? e.target : e.srcElement
var control = FileUploadControl_getControl(firedobj);
if (control.tbody.childNodes[control.tbody.childNodes.length -1] == control.getRow(firedobj)) {
control.addRow();
} else {
control.fileCount--;
}
control.removeRow(firedobj);
}
//called on change of the upload inputs
function FileUploadControl_valueChange(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
var firedobj =dom? e.target : e.srcElement
var control = FileUploadControl_getControl(firedobj);
if (control.tbody.childNodes[control.tbody.childNodes.length -1].childNodes[1].childNodes[0].value != "") {
if (control.fileCount < control.fileLimit) {
control.addRow();
control.fileCount++;
}
}
control.swapImage(firedobj);
}

View file

@ -0,0 +1,20 @@
.webgui-fork-pb {
border: thin solid black;
position: relative;
line-height: 20pt;
height: 20pt;
}
.webgui-fork-pb .webgui-fork-pb-bar {
background-color: lime;
height: 100%;
}
.webgui-fork-pb .webgui-fork-pb-caption {
position: absolute;
top: 0;
left: 0;
width: 100%;
text-align: center;
font-size: 18pt;
}

View file

@ -0,0 +1,30 @@
/*global YAHOO, WebGUI, document */
/* Dependencies: yahoo, dom */
(function () {
var dom = YAHOO.util.Dom,
ns = YAHOO.namespace('WebGUI.Fork'),
cls = ns.ProgressBar = function () {},
proto = cls.prototype;
proto.render = function (node) {
var bar, cap;
if (!node.tagName) {
node = document.getElementById(node);
}
dom.addClass(node, 'webgui-fork-pb');
bar = document.createElement('div');
cap = document.createElement('div');
dom.addClass(bar, 'webgui-fork-pb-bar');
dom.addClass(cap, 'webgui-fork-pb-caption');
node.appendChild(bar);
node.appendChild(cap);
this.domNode = node;
this.bar = bar;
this.caption = cap;
};
proto.update = function (done, total) {
var pct = (total > 0 ? Math.floor((done/total)*100) : 100) + '%';
this.caption.innerHTML = pct;
this.bar.style.width = pct;
};
}());

42
www/extras/Fork/poll.js Normal file
View file

@ -0,0 +1,42 @@
/*global YAHOO, setTimeout */
/* Dependencies: yahoo, connection_core, json */
(function () {
var ns = YAHOO.namespace('WebGUI.Fork'), JSON = YAHOO.lang.JSON;
ns.poll = function(args) {
function fetch() {
var first = true;
YAHOO.util.Connect.asyncRequest('GET', args.url, {
success: function (o) {
var data, e;
if (o.status != 200) {
args.error("Server returned bad response");
return;
}
data = JSON.parse(o.responseText);
e = data.error;
if (e) {
args.error(e);
return;
}
args.draw(data);
if (args.first && first) {
first = false;
args.first();
}
if (data.finished) {
args.finish(data);
}
else {
setTimeout(fetch, args.interval || 1000);
}
},
failure: function (o) {
args.error("Could not communicate with server");
}
});
}
fetch();
};
}());

View file

@ -0,0 +1,16 @@
/*global YAHOO, setTimeout, window */
/* Dependencies: yahoo */
(function () {
var ns = YAHOO.namespace('WebGUI.Fork');
ns.redirect = function (redir, after) {
if (!redir) {
return;
}
setTimeout(function() {
// The idea here is to only allow local redirects
var loc = window.location;
loc.href = loc.protocol + '//' + loc.host + redir;
}, after || 1000);
};
}());

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

56
www/extras/TabFix.js Normal file
View file

@ -0,0 +1,56 @@
function TabFix_keyDown(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
obj =dom? e.target : e.srcElement
if (e.keyCode == 9 && obj.type && obj.type=="textarea") {
topScroll = obj.scrollTop;
leftScroll = obj.scrollLeft;
var position = TabFix_insertAtCursor(obj,'\t');
obj.focus();
obj.selectionStart=position + 1 ;
obj.selectionEnd=position + 1;
obj.scrollTop = topScroll;
obj.scrollLeft = leftScroll;
return false;
}
return true;
}
function TabFix_keyPress(e) {
var dom = document.getElementById&&!document.all;
e=dom? e : event;
if (e.keyCode == 9) {
return false;
}
return true;
}
function TabFix_insertAtCursor(myField, myValue) {
//IE
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
return startPos;
} else {
myField.value += myValue;
}
return 0;
}
/*
We'd uncomment the following lines if we wanted
to apply this to all text areas, which we don't
document.onkeypress=TabFix_keyPress;
document.onkeydown=TabFix_keyDown;
*/

View file

@ -0,0 +1,292 @@
if (typeof WebGUI == "undefined" || !WebGUI) {
var WebGUI = {};
}
WebGUI.VendorPayout = function ( containerId ) {
var obj = this;
this.container = document.getElementById( containerId );
this.i18nObj = new WebGUI.i18n( {
namespaces : {
'Shop' : [
'schedule all button', 'deschedule all button', 'submit scheduled payouts button',
'vendor id', 'vendor name', 'scheduled payout amount', 'not scheduled payout amount',
'vp item id', 'vp item title', 'vp item price', 'vp item quantity', 'vp item payout amount',
'vp item payout status', 'vp select vendor', 'vp vendors', 'vp payouts'
]
},
onpreload : {
fn : this.initialize,
obj : this,
override : true,
}
} );
this.i18n = function ( key ) {
return this.i18nObj.get( 'Shop', key )
};
return this;
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.initialize = function (aaa, bbb,ccc,ddd) {
// Vendor data table
this.vendorTable = document.createElement( 'div' );
this.vendorButtons = document.createElement( 'div' );
var vendor = document.createElement( 'fieldset' );
var vendorLegend = document.createElement( 'legend' );
vendor.appendChild( vendorLegend ).innerHTML = this.i18n( 'vp vendors' );
vendor.appendChild( this.vendorTable );
vendor.appendChild( this.vendorButtons );
this.container.appendChild( vendor );
// Payout data table
this.payoutTable = document.createElement( 'div' );
this.payoutButtons = document.createElement( 'div' );
var payout = document.createElement( 'fieldset' );
var payoutLegend = document.createElement( 'legend' );
payout.appendChild( payoutLegend ).innerHTML = this.i18n( 'vp payouts' );
payout.appendChild( this.payoutTable );
payout.appendChild( this.payoutButtons );
this.container.appendChild( payout );
// (De)schedule buttons
this.scheduleAllPayoutsButton = new YAHOO.widget.Button( {
label : this.i18n( 'schedule all button' ),
container : this.payoutButtons,
disabled : true
} );
this.descheduleAllPayoutsButton = new YAHOO.widget.Button( {
label: this.i18n( 'deschedule all button' ),
container: this.payoutButtons,
disabled : true
} );
this.scheduleAllVendorsButton = new YAHOO.widget.Button( {
label : this.i18n( 'schedule all button' ),
container : this.vendorButtons
} );
this.descheduleAllVendorsButton = new YAHOO.widget.Button( {
label : this.i18n( 'deschedule all button' ),
container : this.vendorButtons
} );
// Submit button
this.submitPayoutsButton = new YAHOO.widget.Button({ label: this.i18n( 'submit scheduled payouts button' ), container: this.buttonDiv });
this.submitPayoutsButton.on( 'click', function () {
YAHOO.util.Connect.asyncRequest( 'GET', '?shop=vendor;method=submitScheduledPayouts', {
success: obj.initialize,
scope: obj
} );
} );
// Payout details data table
this.payoutDetails = document.createElement('div');
this.container.appendChild( this.payoutDetails );
this.itemBaseUrl = '?shop=vendor;method=payoutDataAsJSON;';
this.initVendorList();
this.initPayoutDetails();
this.initButtons();
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.initVendorList = function () {
var obj = this;
this.vendorSchema = [
{ key: 'vendorId', label : this.i18n( 'vendor id' ) },
{ key: 'name', label : this.i18n( 'vendor name' ) },
{ key: 'Scheduled', label : this.i18n( 'scheduled payout amount' ) },
{ key: 'NotPaid', label : this.i18n( 'not scheduled payout amount' ) }
];
// setup data source
var url = '?shop=vendor;method=vendorTotalsAsJSON;';
this.vendorDataSource = new YAHOO.util.DataSource( url );
this.vendorDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
this.vendorDataSource.responseSchema = {
resultsList : 'vendors',
fields : this.vendorSchema
};
// initialize data table
this.vendorDataTable = new YAHOO.widget.DataTable( this.vendorTable, this.vendorSchema, this.vendorDataSource, {
selectionMode : 'single'
} );
// add handlers for rowhighlighting/selection
this.vendorDataTable.subscribe( "rowClickEvent", this.vendorDataTable.onEventSelectRow );
this.vendorDataTable.subscribe( "rowMouseoverEvent", this.vendorDataTable.onEventHighlightRow );
this.vendorDataTable.subscribe( "rowMouseoutEvent", this.vendorDataTable.onEventUnhighlightRow );
// add an additional row click handler that fetches this vendor's data for the payout details table
this.vendorDataTable.subscribe( "rowClickEvent", function (e) {
var record = this.getRecord( e.target );
obj.currentVendorId = record.getData( 'vendorId' );
obj.currentVendorIndex = this.getRecordIndex( record );
obj.refreshItemDataTable();
obj.scheduleAllPayoutsButton.set( 'disabled', false );
obj.descheduleAllPayoutsButton.set( 'disabled', false );
} );
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.refreshItemDataTable = function () {
// Set the url here so pagination keeps working...
this.itemDataSource.liveData = this.itemBaseUrl + 'vendorId=' + this.currentVendorId +';';
this.itemDataSource.sendRequest( '', {
success : this.itemDataTable.onDataReturnInitializeTable, //ReplaceRows,
scope : this.itemDataTable
} );
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.refreshVendorDataTable = function () {
this.vendorDataSource.sendRequest( '', {
success : this.vendorDataTable.onDataReturnUpdateRows, //ReplaceRows,
scope : this.vendorDataTable
} );
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.refreshVendorRow = function () {
var obj = this;
this.vendorDataSource.sendRequest( 'vendorId=' + this.currentVendorId, {
success : function ( req, response , payload ) {
this.updateRow( obj.currentVendorIndex, response.results[0] );
},
scope : this.vendorDataTable
} );
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.initPayoutDetails = function () {
var obj = this;
this.itemSchema = [
{ key: 'itemId', label : this.i18n( 'vp item id' ) },
{ key: 'configuredTitle', label : this.i18n( 'vp item title' ) },
{ key: 'price', label : this.i18n( 'vp item price' ) },
{ key: 'quantity', label : this.i18n( 'vp item quantity' ) },
{ key: 'vendorPayoutAmount', label : this.i18n( 'vp item payout amount' ) },
{ key: 'vendorPayoutStatus', label : this.i18n( 'vp item payout status' ) }
]
// Create a row formatter to highlight Scheduled payouts
var rowFormatter = function ( tr, record ) {
if (record.getData('vendorPayoutStatus') === 'Scheduled') {
YAHOO.util.Dom.addClass( tr, 'scheduled' );
}
else {
YAHOO.util.Dom.removeClass( tr, 'scheduled' );
}
return true;
}
// Instanciate the datasource.
this.itemDataSource = new YAHOO.util.DataSource( this.itemBaseUrl );
this.itemDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
this.itemDataSource.responseSchema = {
resultsList : 'results',
fields : this.itemSchema,
metaFields : { totalRecords : 'totalRecords' }
};
// Instanciate the DataTable.
this.itemDataTable = new YAHOO.widget.DataTable( this.payoutTable, this.itemSchema, this.itemDataSource, {
dynamicData : true,
formatRow : rowFormatter,
paginator : new YAHOO.widget.Paginator({ rowsPerPage:10 } ),
MSG_EMPTY : this.i18n( 'vp select vendor' ) //, updateOnChange: true })
} );
this.itemDataTable.handleDataReturnPayload = function(oRequest, oResponse, oPayload) {
// For some reason oPayload is undefined when we're switch vendors. This is a hack to
// still set the paginator correctly.
if ( !oPayload ) {
oPayload = this;
var paginator = this.get('paginator');
paginator.set( 'totalRecords', parseInt( oResponse.meta.totalRecords,10) );
}
oPayload.totalRecords = oResponse.meta.totalRecords;
return oPayload;
};
// Add event handlers for mouseover highlighting
this.itemDataTable.subscribe( "rowMouseoverEvent", this.itemDataTable.onEventHighlightRow );
this.itemDataTable.subscribe( "rowMouseoutEvent", this.itemDataTable.onEventUnhighlightRow );
// Add a row click handler which takes care of switching between Scheduled and NotPaid.
this.itemDataTable.subscribe( "rowClickEvent", function (e) {
var record = this.getRecord( e.target );
var callback = {
scope : this,
success : function ( o ) {
var status = o.responseText;
if ( status.match(/^error/) ) {
alert( status );
return;
}
// Update status cell contents
this.updateCell( record, 'vendorPayoutStatus', status );
// Update row higlighting
rowFormatter( this.getTrEl( record ), record );
// Update vendor row
obj.refreshVendorRow();
}
};
var status = record.getData( 'vendorPayoutStatus' ) === 'NotPaid' ? 'Scheduled' : 'NotPaid';
var url = '?shop=vendor;method=setPayoutStatus' + ';itemId=' + record.getData( 'itemId' ) + ';status=' + status;
YAHOO.util.Connect.asyncRequest( 'post', url, callback );
} );
}
//----------------------------------------------------------------------------
WebGUI.VendorPayout.prototype.initButtons = function () {
var obj = this;
var updateAll = function ( status, bulk ) {
// TODO: Make this range based.
var records = obj.itemDataTable.getRecordSet().getRecords();
var postdata = 'shop=vendor&method=setPayoutStatus&status=' + status;
if ( bulk ) {
postdata += '&all=1';
}
else {
var itemIds = new Array;
for (i = 0; i < records.length; i++) {
itemIds.push( 'itemId=' + records[i].getData( 'itemId' ) );
}
postdata += '&' + itemIds.join('&');
}
var callback = {
success: function (o) {
this.refreshItemDataTable();
bulk ? this.refreshVendorDataTable() : this.refreshVendorRow();
},
scope: obj
};
YAHOO.util.Connect.asyncRequest( 'POST', '/', callback, postdata );
}
this.scheduleAllVendorsButton.on( 'click', function () { updateAll( 'Scheduled', true ) } );
this.descheduleAllVendorsButton.on( 'click', function () { updateAll( 'NotPaid', true ) } );
this.scheduleAllPayoutsButton.on( 'click', function () { updateAll( 'Scheduled' ) } );
this.descheduleAllPayoutsButton.on( 'click', function () { updateAll( 'NotPaid' ) } );
}

View file

@ -0,0 +1,84 @@
dl.accordion-menu {
margin: 0;
padding: 0;
width: 15em;
background:white;
position:fixed;
_position:absolute;
top:0;
_top:expression(eval((document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop));
left:0;
}
dl.accordion-menu dt.a-m-t {
margin: 0;
background: #aaaaaa;
padding: 0.3em 1em;
color: #444444;
border: solid 1px #222222;
border-left-color: #dfdfdf;
border-top-color: #dfdfdf;
}
dl.accordion-menu dt.a-m-t-hover{
background:#cdcdcd;
}
dl.accordion-menu dt.a-m-t-down{
border: solid 1px #222222;
border-right-color: #dfdfdf;
border-bottom-color: #dfdfdf;
}
html.accordion-menu-js dt.a-m-t{
cursor:pointer;
zoom:1;
}
dl.accordion-menu dd.a-m-d {
margin: 0;
padding: 0;
padding:0;
}
html.accordion-menu-js dd.a-m-d{
display:none;
}
html.accordion-menu-js dd.a-m-d-expand {
display:block;
}
html.accordion-menu-js dd.a-m-d-before-expand {
display:block;
position:relative;
z-index:-1;
opacity:0;
height:auto !important;
visibility:hidden;
overflow:visible;
}
html.accordion-menu-js dt.a-m-t-expand {
border-left-color:#222222;
color:black;
background:#c0c0c0;
}
html.accordion-menu-js dd.a-m-d-anim {
overflow:hidden;
display:block;
}
dl.accordion-menu dd.a-m-d .bd{
padding:0.5em;
}
dd.a-m-d {
overflow: auto;
border:Solid 1px #aaaaaa;
}

View file

@ -0,0 +1,403 @@
var AccordionMenu = new function()
{
var YUD = YAHOO.util.Dom;
var YUE = YAHOO.util.Event;
var oMenuSetting = {};
var oMenuCache = {};
var dLastHoverTitle ;
YUD.addClass(document.documentElement,'accordion-menu-js');
function getDT(e)
{
var dEl = e.srcElement || e.target;
if( (e.tagName + '').toUpperCase()=='DD' )
{
var dt = e.previousSibling ;
while(dt)
{
if(dt.tagName && dt.tagName.toUpperCase() == 'DT'){break;};
dt = dt.previousSibling
};
if(!dt || dt.tagName.toUpperCase() != 'DT'){return;}
else{return dt};
}
else if(e.clientX)
{
var found = false;
while( dEl.parentNode)
{
if(YUD.hasClass(dEl,'a-m-t')){ found = true ; break;};
dEl = dEl.parentNode;
};
if(!found){return null}
else{return dEl };
};
};
function getDD(dt)
{
if(!dt){return null;};
var dd = dt.nextSibling ;
while(dd)
{
if(dd.tagName && dd.tagName.toUpperCase() == 'DD'){break;};
dd = dd.nextSibling;
};
if(!dd || dd.tagName.toUpperCase() != 'DD'){return;}
else{return dd};
};
function expand(dl,dt,dd)
{
var bodyPanels = YUD.getElementsByClassName("a-m-d", "dd",dl);
var bodyPanelHeight = YUD.getViewportHeight() - (30 * bodyPanels.length);
dl.hasAnimation +=1;
YUD.addClass(dd,'a-m-d-before-expand');
var oAttr = {height:{from:0,to:bodyPanelHeight }};
YUD.removeClass(dd,'a-m-d-before-expand');
var onComplete = function()
{
oAnim.onComplete.unsubscribe(onComplete);
oAnim.stop();
YUD.removeClass(dd,'a-m-d-anim');
YUD.addClass(dd,'a-m-d-expand');
onComplete = null;
dl.hasAnimation -=1;
var dt = getDT(dd);
YUD.addClass(dt,'a-m-t-expand');
if( oMenuCache[ dl.id ] && oMenuCache[ dl.id ].onOpen && dd.style.height!=bodyPanelHeight + "px" )
{
oMenuCache[ dl.id ].onOpen( {dl:dl,dt:dt,dd:dd} );
};
dd.style.height = bodyPanelHeight + "px";
};
var onTween = function()
{
if(dd.style.height)
{
YUD.addClass(dd,'a-m-d-anim');
oAnim.onTween.unsubscribe(onTween);
onTween = null;
dd.oAnim = null;
};
};
if(dd.oAnim)
{
dd.oAnim.stop();
dd.oAnim = null;
dl.hasAnimation -=1;
};
var oEaseType = YAHOO.util.Easing.easeOut;
var seconds = 0.5;
if(oMenuCache[ dl.id ] )
{
oEaseType = oMenuCache[ dl.id ]['easeOut']?oEaseType:YAHOO.util.Easing.easeIn;
seconds = oMenuCache[ dl.id ]['seconds'];
if( !oMenuCache[ dl.id ]['animation'] )
{
var oAnim = {onComplete:{unsubscribe:function(){}},stop:function(){}};
onComplete();
return;
};
};
var oAnim = new YAHOO.util.Anim(dd,oAttr,seconds ,oEaseType);
oAnim.onComplete.subscribe(onComplete);
oAnim.onTween.subscribe(onTween);
oAnim.animate();
dd.oAnim = oAnim ;
};
function collapse(dl,dt,dd)
{
dl.hasAnimation +=1;
YUD.addClass(dd,'a-m-d-anim');
var oAttr = {height:{from:dd.offsetHeight,to:0}};
var onComplete = function()
{
oAnim.onComplete.unsubscribe(onComplete);
YUD.removeClass(dd,'a-m-d-anim');
YUD.removeClass(dd,'a-m-d-expand');
dd.style.height = '';
dd.oAnim = null;
onComplete = null;
dl.hasAnimation -=1;
var dt = getDT(dd);
YUD.removeClass(dt,'a-m-t-expand');
if( oMenuCache[ dl.id ] && oMenuCache[ dl.id ].onOpen )
{
oMenuCache[ dl.id ].onClose( {dl:dl,dt:dt,dd:dd} );
};
};
if(dd.oAnim)
{
dd.oAnim.stop();
dd.oAnim = null;
dl.hasAnimation -=1;
};
var oEaseType = YAHOO.util.Easing.easeOut;
var seconds = 0.5;
if(oMenuCache[ dl.id ] )
{
oEaseType = oMenuCache[ dl.id ]['easeOut']?oEaseType:YAHOO.util.Easing.easeIn;
seconds = oMenuCache[ dl.id ]['seconds'];
if( !oMenuCache[ dl.id ]['animation'] )
{
var oAnim = {onComplete:{unsubscribe:function(){}},stop:function(){}};
onComplete();
return;
};
};
var oAnim = new YAHOO.util.Anim(dd,oAttr,seconds ,oEaseType);
oAnim.onComplete.subscribe(onComplete);
oAnim.animate();
dd.oAnim = oAnim ;
};
function collapseAll(dl,dt,dd)
{
var aOtherDD = YUD.getElementsByClassName('a-m-d-expand','dd',dl);
for(var i=0;i<aOtherDD.length;i++)
{
var otherDD = aOtherDD[i] ;
if( otherDD !=dd )
{
collapse(dl,null,otherDD);
};
};
}
var onMenuMouseover = function(e)
{
var dMenuTitle = getDT(e);
if(!dMenuTitle){return;};
if(dLastHoverTitle)
{
YUD.removeClass(dLastHoverTitle,'a-m-t-hover');
};
YUD.addClass(dMenuTitle,'a-m-t-hover');
dLastHoverTitle = dMenuTitle ;
YUE.stopEvent(e);
return false;
};
var onMenuMouseout = function(e)
{
var dMenuTitle = getDT(e);
if(!dMenuTitle){return;};
if(dLastHoverTitle && dLastHoverTitle!=dMenuTitle)
{
YUD.removeClass(dLastHoverTitle,'a-m-t-hover');
YUD.removeClass(dLastHoverTitle,'a-m-t-down');
};
YUD.removeClass(dMenuTitle,'a-m-t-down');
YUD.removeClass(dMenuTitle,'a-m-t-hover');
dLastHoverTitle = null ;
YUE.stopEvent(e);
return false;
};
var onMenuMousedown = function(e)
{
var dMenuTitle = getDT(e);
if(!dMenuTitle){return;};
YUD.addClass(dMenuTitle,'a-m-t-down');
YUE.stopEvent(e);
return false;
};
var onMenuClick = function(e)
{
var dt = getDT(e);
if(!dt){return;};
var dd = getDD(dt);
if(!dd){return;};
var dl = dt.parentNode;
if(dl.hasAnimation==null)
{
dl.hasAnimation = 0;
}
if(dl.hasAnimation > 0 ){return;};
YUD.removeClass(dt,'a-m-t-down');
if(YUD.hasClass(dd,'a-m-d-expand'))
{
collapse(dl,dt,dd);
}
else
{
if( oMenuCache[ dl.id ] && oMenuCache[ dl.id ].dependent == false ){}
else{collapseAll(dl,dt,dd);}
expand(dl,dt,dd);
};
YUE.stopEvent(e);
return false;
};
YUE.addListener( document,'mouseover',onMenuMouseover);
YUE.addListener( document,'mouseout',onMenuMouseout);
YUE.addListener( document,'mousedown',onMenuMousedown);
YUE.addListener( document,'click',onMenuClick);
this.openDtById = function(sId)
{
var dt = document.getElementById(sId);
if(!dt){return;};
if(!YUD.hasClass(dt,'a-m-t')){return;};
var dl = dt.parentNode;
var dd = getDD(dt);
if(dl.hasAnimation==null){dl.hasAnimation = 0;};
if(dl.hasAnimation > 0 ){return;};
if(YUD.hasClass(dd,'a-m-d-expand')){return;};
if( oMenuCache[ dl.id ] && oMenuCache[ dl.id ].dependent == false ){}
else{collapseAll(dl,dt,dd);}
expand(dl,dt,dd);
};
this.closeDtById = function(sId)
{
var dt = document.getElementById(sId);
if(!dt){return;};
if(!YUD.hasClass(dt,'a-m-t')){return;};
var dl = dt.parentNode;
var dd = getDD(dt);
if(dl.hasAnimation==null){dl.hasAnimation = 0;};
if(dl.hasAnimation > 0 ){return;};
if(!YUD.hasClass(dd,'a-m-d-expand')){return;};
collapse(dl,dt,dd);
};
this.setting = function(id,oOptions)
{
if( !oOptions ){return;};
if( typeof(id)!='string' ){return;};
var setMunu = function(dl)
{
dl = dl || this;
dl.hasAnimation = 0;
oMenuCache[ dl.id ] =
{
element:dl,
dependent:true,
onOpen:function(){},
onClose:function(){},
seconds:0.5,
easeOut:true,
openedIds:[],
animation:true
};
oMenu = oMenuCache[ dl.id ] ;
if(typeof(oOptions['animation'])=='boolean')
{
oMenu['animation'] = !!oOptions['animation'];
};
if(typeof(oOptions['dependent'])=='boolean')
{
oMenu['dependent'] = !!oOptions['dependent'];
};
if(typeof(oOptions['easeOut'])=='boolean')
{
oMenu['easeOut'] = !!oOptions['easeOut'];
};
if(typeof(oOptions['seconds'])=='number')
{
oMenu['seconds'] = Math.max(0 , oOptions['seconds'] );
};
if(typeof(oOptions['onOpen'])=='function')
{
oMenu['onOpen'] = oOptions['onOpen'];
};
if(typeof(oOptions['onClose'])=='function')
{
oMenu['onClose'] = oOptions['onClose'];
};
if(oOptions['openedIds'].shift)
{
oMenu['openedIds'] = oOptions['openedIds'];
};
for(var i=0;i<oMenu['openedIds'].length;i++)
{
var sId = oMenu['openedIds'][i];
var dt = document.getElementById( sId );
if(dt && dt.tagName.toUpperCase() == 'DT')
{
var dl = dt.parentNode;
var dd = getDD(dt);
expand(dl,dt,dd);
}
else if(!dt)
{
function onDtAvailable()
{
var dt = this;
if(dt.tagName.toUpperCase() == 'DT')
{
var dl = dt.parentNode;
var dd = getDD(dt);
expand(dl,dt,dd);
};
};
YUE.onAvailable(sId,onDtAvailable);
}
};
};
if(document.getElementById(id))
{
setMunu(document.getElementById(id))
}
else
{
YUE.onAvailable(id,setMunu);
};
};
};

View file

@ -0,0 +1,109 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Accordion Example</title>
<script type="text/javascript" src="/extras/yui/build/yahoo/yahoo-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/event/event-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/dom/dom-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/animation/animation-min.js"></script>
<script type="text/javascript" src="/extras/accordion/accordion.js"></script>
<link type="text/css" rel="stylesheet" href="/extras/accordion/accordion.css" />
<script type="text/javascript">
/* YAHOO.util.Event.addListener(window, 'load', function () {var myAccordion = new Accordion("myAccordion");} ); */
</script>
<link type="text/css" href="/extras/accordion/example.css" rel="stylesheet" />
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<dl class="accordion-menu">
<dt class="a-m-t">title 1 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
</div>
</dd>
<dt class="a-m-t">title 2 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
</div>
</dd>
<dt class="a-m-t">title 3 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus.
</div>
</dd>
</dl>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Accordion Example</title>
<script type="text/javascript" src="/extras/yui/build/yahoo/yahoo-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/event/event-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/dom/dom-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/animation/animation-min.js"></script>
<script type="text/javascript" src="/extras/accordion/accordion.js"></script>
<link type="text/css" rel="stylesheet" href="/extras/accordion/accordion.css" />
<script type="text/javascript">
/* YAHOO.util.Event.addListener(window, 'load', function () {var myAccordion = new Accordion("myAccordion");} ); */
</script>
<link type="text/css" href="/extras/accordion/example.css" rel="stylesheet" />
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<dl class="accordion-menu">
<dt class="a-m-t">title 1 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
</div>
</dd>
<dt class="a-m-t">title 2 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
</div>
</dd>
<dt class="a-m-t">title 3 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus.
</div>
</dd>
</dl>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Accordion Example</title>
<script type="text/javascript" src="/extras/yui/build/yahoo/yahoo-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/event/event-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/dom/dom-min.js"></script>
<script type="text/javascript" src="/extras/yui/build/animation/animation-min.js"></script>
<script type="text/javascript" src="/extras/accordion/accordion.js"></script>
<link type="text/css" rel="stylesheet" href="/extras/accordion/accordion.css" />
<script type="text/javascript">
/* YAHOO.util.Event.addListener(window, 'load', function () {var myAccordion = new Accordion("myAccordion");} ); */
</script>
<link type="text/css" href="/extras/accordion/example.css" rel="stylesheet" />
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<p>Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus. </p>
<dl class="accordion-menu">
<dt class="a-m-t">title 1 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
</div>
</dd>
<dt class="a-m-t">title 2 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus. Donec quis ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos
hymenaeos. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam dignissim
sagittis purus. Nulla sollicitudin mauris sit amet purus.
</div>
</dd>
<dt class="a-m-t">title 3 </dt>
<dd class="a-m-d"><div class="bd">
Lorem ipsum dolor sit amet, consectetuer adipnia. Vestibulum pellentesque porta enim. Curabitur elementum
vulputate lacus.
</div>
</dd>
</dl>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

View file

@ -0,0 +1,64 @@
YAHOO.util.Event.onDOMReady(function() {
if(YAHOO.util.Dom.inDocument("friends")) {
var isUserCheckBox = function ( element ) {
if(element.name == "friend") return true;
return false;
}
var removeUser = function (evt, obj) {
YAHOO.util.Event.stopEvent(evt);
var userId = obj.userId;
var checkBox = YAHOO.util.Dom.get("friend_"+userId+"_id");
checkBox.checked = false;
updateUsers(evt,obj.dialog);
}
var updateUsers = function ( evt , dialog ) {
YAHOO.util.Event.stopEvent(evt);
var toElement = YAHOO.util.Dom.get("messageTo");
toElement.innerHTML = ""; // Clear the current stuff
YAHOO.util.Dom.removeClass(toElement,"inbox_messageTo");
var checkBoxes = YAHOO.util.Dom.getElementsBy(isUserCheckBox,"INPUT","contacts");
for (var i = 0; i < checkBoxes.length; i++) {
if(checkBoxes[i].checked) {
var friendName = YAHOO.util.Dom.get("friend_"+checkBoxes[i].value+"_name").innerHTML;
var firstPart = document.createTextNode(friendName + " ( ");
var link = document.createElement("A");
link.setAttribute('href', '#');
link.innerHTML = removeText;
YAHOO.util.Event.addListener(link,"click",removeUser,{ userId: checkBoxes[i].value, dialog: dialog });
var lastPart = document.createTextNode(" ); ");
toElement.appendChild(firstPart);
toElement.appendChild(link);
toElement.appendChild(lastPart);
}
}
YAHOO.util.Dom.addClass(toElement,"inbox_messageTo");
dialog.hide();
}
var showUsers = function (evt, dialog) {
YAHOO.util.Event.stopEvent(evt);
dialog.show();
}
// Instantiate the Dialog
var dialog1 = new YAHOO.widget.Dialog("friends", {
width : "340px",
fixedcenter : true,
visible : false,
constraintoviewport : false
});
// Render the Dialog
dialog1.render();
YAHOO.util.Event.addListener("show_friends", "click", showUsers, dialog1);
YAHOO.util.Event.addListener("cancel_top", "click", dialog1.hide, dialog1, true);
YAHOO.util.Event.addListener("cancel_bottom", "click", dialog1.hide, dialog1, true);
YAHOO.util.Event.addListener("update_top", "click", updateUsers, dialog1);
YAHOO.util.Event.addListener("update_bottom", "click", updateUsers, dialog1);
}
});

View file

@ -0,0 +1,3 @@
#ALUM_wrapper #topBar, #ALUM_wrapper #ALUM_doc, #ALUM_wrapper #sddm, #ALUM_wrapper #ALUM_footer {
display: none;
}

10
www/extras/addHTTP.js Normal file
View file

@ -0,0 +1,10 @@
function addHTTP(element) {
if (element.value != "") {
if (!element.value.match(/^\w+:\/\//) && !element.value.match(/^\^/) && !element.value.match(/^\//)) {
element.value = "http://"+element.value;
}
if (!element.value.match(/^\w+:\/\/.+\..+/) && !element.value.match(/^\^/) && !element.value.match(/^\//)){
alert("That does not look like a proper URL. Please check if it is correct.");
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View file

@ -0,0 +1,254 @@
html,body {
margin: 0px;
padding: 0px;
}
.forwardButton {
background-color: #008000;
border: 2px outset #00a000;
color: white;
}
.backwardButton {
background-color: #800000;
border: 2px outset #a00000;
color: white;
}
.wrapper {
background-image: url(bg.jpg);
background-repeat: repeat-x;
border: 5px #214A7A solid;
margin:0px;
padding:0px;
position: relative;
top:0px;
}
th {
text-align: left;
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, Arial, sans-serif;
}
.adminConsoleTitleIcon {
position: absolute;
top: 12px;
left: 22px;
width: 48px;
height: 48px;
text-align: center;
z-index: 10;
}
.adminConsoleTitleIconMedalian {
z-index: 5;
position: absolute;
top: 4px;
left: 14px;
}
.adminConsoleTitle {
position: absolute;
top: 0px;
left: 85px;
font-size: 50px;
text-align: left;
padding: 20px 0px 0px 0px;
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, Arial, sans-serif;
color: white;
text-transform: uppercase;
letter-spacing: 2px;
font-size: 25px;
/*height: 73px;*/
vertical-align: middle;
}
.adminConsoleWorkArea {
border: 1px solid #D7D7D7;
margin: 65px 170px 10px 9px;
padding: 15px;
-moz-border-radius: 10px;
background-color: #fafafa;
width: 78%;
z-index: 10;
position: relative;
}
/* Hides from non-ie: the holly hack \*/
* html .adminConsoleWorkArea {
zoom: 1.00;
display: inline;
}
/* End hide from non-ie */
.adminConsoleMenu {
z-index: 0;
position: absolute;
top: 65px;
left: 78%;
margin-top: 10px;
margin-left: 31px;
width: 180px;
font-family: helvetica, arial;
font-size: 12px;
}
.adminConsoleMainMenu:hover, .adminConsoleUtilityMenu:hover, .adminConsoleVersionTags:hover {
opacity: 1.0;
z-index: 10;
background-color: #fafafa;
}
.adminConsoleMainMenu {
z-index: 1;
border-top: 1px solid #D7D7D7;
border-bottom: 1px solid #D7D7D7;
border-right: 1px solid #D7D7D7;
padding: 5px;
padding-left: 10px;
margin: 5px;
-moz-border-radius: 5px;
background-color: #fafafa;
opacity: 0.7;
}
.adminConsoleSubmenu {
z-index: 10;
border-top: 1px solid #D7D7D7;
border-bottom: 1px solid #D7D7D7;
border-right: 1px solid #D7D7D7;
padding: 5px;
padding-left: 10px;
margin: 5px;
-moz-border-radius: 5px;
background-color: #fafafa;
}
.adminConsoleUtilityMenu, .adminConsoleVersionTags {
z-index: 1;
opacity: 0.6;
border-top: 1px solid #D7D7D7;
border-bottom: 1px solid #D7D7D7;
border-right: 1px solid #D7D7D7;
padding: 5px;
padding-left: 10px;
margin: 5px;
-moz-border-radius: 5px;
background-color: #fafafa;
}
.adminConsoleHidden {
display: none;
height: 0px;
}
.adminConsoleApplication {
float: left;
text-align: center;
width: 100px;
font-size: 14px;
font-family: helvetica, arial;
opacity: 1.0;
height: 110px;
}
.adminConsoleApplication:hover {
opacity: 0.7;
}
.adminConsoleSpacer {
clear: both;
}
.adminConsoleToggle {
display: block;
}
.adminConsoleHelpIcon {
position: absolute;
top: 72px;
left: 17px;
z-index: 999;
}
/* tables */
.tableMenu {
background-color: #CCCCCC;
font-size: 10pt;
font-family: Helvetica, Arial;
}
.tableMenu a {
font-size: 10pt;
text-decoration: none;
}
.tableHeader {
background-color: #CECECE;
font-size: 10pt;
font-family: Helvetica, Arial;
}
.tableData {
font-size: 10pt;
font-family: Helvetica, Arial;
}
/* tab forms */
.tab {
border: 1px solid #dddddd;
background-color: #eeeeee;
background-image: url(bg_console.gif);
background-repeat: repeat-x;
/*-moz-border-radius: 6px 6px 0px 0px;*/
}
.tabBody {
border: 1px solid #dddddd;
border-top: 1px solid #dddddd;
border-left: 1px solid #dddddd;
background-color: #ffffff;
-moz-border-radius: 10px;
}
div.tabs {
line-height: 15px;
font-size: 14px;
}
.tabHover {
background-color: #cccccc;
background-image: none;
}
.tabActive {
background-color: #ffffff;
background-image: none;
}
/* form stuff */
.formDescription {
font-family: helvetica, arial;
font-size: 12px;
}
.formSubtext {
font-family: helvetica, arial;
font-size: 11px;
}
a{
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, Arial, sans-serif;
color: #0f3ccc;
text-decoration: none;
}
a:hover{
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, Arial, sans-serif;
color: #000080;
text-decoration: underline;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,62 @@
var adminConsoleIsOn = true;
var adminConsoleApplicationSubmenu = false;
function initAdminConsole (viewAnApplication,hasSubmenu) {
adminConsoleApplicationSubmenu = hasSubmenu;
if (viewAnApplication) {
switchToApplication();
} else {
switchToAdminConsole();
document.getElementById("adminConsoleMainMenu").className = "adminConsoleHidden";
}
}
function switchToApplication () {
adminConsoleIsOn = false;
document.getElementById("console_icon").className = "adminConsoleHidden";
document.getElementById("console_title").className = "adminConsoleHidden";
document.getElementById("console_workarea").className = "adminConsoleHidden";
document.getElementById("application_help").className = "adminConsoleHelpIcon";
document.getElementById("application_icon").className = "adminConsoleTitleIcon";
document.getElementById("application_title").className = "adminConsoleTitle";
if (adminConsoleApplicationSubmenu) {
var submenu = document.getElementById("adminConsoleApplicationSubmenu");
if (submenu) {
submenu.className = "adminConsoleSubmenu";
}
}
document.getElementById("application_workarea").className = "adminConsoleWorkArea";
document.getElementById("console_toggle_off").className = "adminConsoleHidden";
document.getElementById("console_toggle_on").className = "adminConsoleToggle";
}
function switchToAdminConsole () {
adminConsoleIsOn = true;
document.getElementById("application_icon").className = "adminConsoleHidden";
document.getElementById("application_title").className = "adminConsoleHidden";
var submenu = document.getElementById("adminConsoleApplicationSubmenu");
if (submenu) {
submenu.className = "adminConsoleHidden";
}
document.getElementById("application_workarea").className = "adminConsoleHidden";
document.getElementById("application_help").className = "adminConsoleHidden";
document.getElementById("console_icon").className = "adminConsoleTitleIcon";
document.getElementById("console_title").className = "adminConsoleTitle";
document.getElementById("console_workarea").className = "adminConsoleWorkArea";
document.getElementById("console_toggle_off").className = "adminConsoleToggle";
document.getElementById("console_toggle_on").className = "adminConsoleHidden";
// force reflow to fix IE7
document.body.style.border = document.body.style.border;
document.body.className = document.body.className;
}
function toggleAdminConsole () {
if (adminConsoleIsOn) {
switchToApplication();
} else {
switchToAdminConsole();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 863 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,017 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,006 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Some files were not shown because too many files have changed in this diff Show more