기능 슬라이드(src,link,text,target,attr,desc) {
this.desc = desc
this.src = src;
this.link = 링크;
this.text = 텍스트;
this.target = target;
this.attr = attr;
if (document.images) {
this.image = 새 이미지();
}
this.loaded = false;
this.load = function() {
if (!document.images) { return; }
if (!this.loaded) {
this.image.src = this.src;
this.loaded = true;
}
}
this.hotlink = function() {
var mywindow;
if (!this.link) 반환;
if (this.target) {
if (this.attr) {
mywindow = window.open(this.link, this.target, this.attr);
} else {
mywindow = window.open(this.link, this.target);
}
if (mywindow && mywindow.focus) mywindow.focus();
} else {
location.href = this.link;
}
}
}
기능 슬라이드쇼( 슬라이드쇼 이름 ) {
this.name = 슬라이드쇼 이름;
this.repeat = true;
this.prefetch = -1;
this.image;
this.textid;
this.textarea;
this.timeout = 5000;
this.slides = 새 배열();
this.current = 0;
this.timeoutid = 0;
this.add_slide = 함수(슬라이드) {
var i = this.slides.length;
if (this.prefetch == -1) {
slide.load();
}
this.slides[i] = 슬라이드;
}
this.play = function(timeout) {
this.pause();
if (시간 초과) {
this.timeout = 시간 초과;
}
if (typeof this.slides[ this.current ].timeout != '정의되지 않음') {
시간 초과 = this.slides[ this.current ].timeout;
} else {
시간 초과 = this.timeout;
}
this.timeoutid = setTimeout( this.name ".loop()", timeout);
}
this.pause = function() {
if (this.timeoutid != 0) {
clearTimeout(this.timeoutid);
this.timeoutid = 0;
}
}
this.update = function() {
if (! this.valid_image()) { return; }
if (typeof this.pre_update_hook == 'function') {
this.pre_update_hook();
}
var slide = this.slides[ this.current ];
var dofilter = false;
if (this.image &&
typeof this.image.filters != '정의되지 않음' &&
typeof this.image.filters[0] != '정의되지 않음') {
dofilter = true;
}
slide.load();
if (dofilter) {
if (slide.filter &&
this.image.style &&
this.image.style.filter) {
this.image.style.filter = 슬라이드 .필터;
}
this.image.filters[0].Apply();
}
this.image.src = slide.image.src;
if (dofilter) {
this.image.filters[0].Play();
}
this.display_text();
if (typeof this.post_update_hook == 'function') {
this.post_update_hook();
}
if (this.prefetch > 0) {
var next, prev, count;
다음 = this.current;
prev = this.current;
개수 = 0;
do {
if ( next >= this.slides.length) next = 0;
if (--prev < 0) prev = this.slides.length - 1;
this.slides[next].load();
this.slides[이전].load();
} while ( count < this.prefetch);
}
}
this.goto_slide = function(n) {
if (n == -1) {
n = this.slides.length - 1;
}
if (n < this.slides.length && n >= 0) {
this.current = n;
}
this.update();
}
this.goto_random_slide = function(include_current) {
var i;
if (this.slides.length > 1) {
do {
i = Math.floor(Math.random()*this.slides.length);
} 동안(i == this.current);
this.goto_slide(i);
}
}
this.next = function() {
if (this.current < this.slides.length - 1) {
this.current ;
} else if (this.repeat) {
this.current = 0;
}
this.update();
}
this.previous = function() {
if (this.current > 0) {
this.current--;
} else if (this.repeat) {
this.current = this.slides.length - 1;
}
this.update();
}
this.shuffle = function() {
var i, i2, slides_copy, slides_randomized;
slides_copy = 새 배열();
for (i = 0; i < this.slides.length; i ) {
slides_copy[i] = this.slides[i];
}
slides_randomized = 새 배열();
do {
i = Math.floor(Math.random()*slides_copy.length);
slides_randomized[ slides_randomized.length ] =
slides_copy[i];
for (i2 = i 1; i2 < slides_copy.length; i2 ) {
slides_copy[i2 - 1] = slides_copy[i2];
}
slides_copy.length--;
} 동안(slides_copy.length);
this.slides = 슬라이드_무작위화;
}
this.get_text = function() {
return(this.slides[ this.current ].text);
}
this.get_all_text = function(before_slide, after_slide) {
all_text = "";
for (i=0; i < this.slides.length; i ) {
슬라이드 = this.slides[i];
if (slide.text) {
all_text = before_slide slide.text after_slide;
}
}
return(all_text);
}
this.display_text = function(text) {
if (!text) {
text = this.slides[ this.current ].text;
}
if (this.textarea && typeof this.textarea.value != '정의되지 않음') {
this.textarea.value = text;
}
if (this.textid) {
r = this.getElementById(this.textid);
if (!r) { return false; }
if (typeof r.innerHTML == '정의되지 않음') { return false; }
r.innerHTML = 텍스트;
}
}
this.hotlink = function() {
this.slides[ this.current ].hotlink();
}
this.save_position = function(cookiename) {
if (!cookiename) {
cookiename = this.name '_slideshow';
}
document.cookie = 쿠키 이름 '=' this.current;
}
this.restore_position = function(cookiename) {
if (!cookiename) {
cookiename = this.name '_slideshow';
}
var 검색 = 쿠키 이름 "=";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search);
if (오프셋 != -1) {
오프셋 = search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
this.current = parseInt(unescape(document.cookie.substring(offset, end)));
}
}
}
this.noscript = function() {
$html = "n";
for (i=0; i < this.slides.length; i ) {
슬라이드 = this.slides[i];
$html = '
';
if (slide.link) {
$html = '';
}
$html = '';
if (slide.link) {
$html = "";
}
if (slide.text) {
$html = "
n" slide.text;
}
$html = "
" "nn";
}
$html = $html.replace(/&/g, "&" );
$html = $html.replace(/ $html = $html.replace(/>/g, ">" );
return('
' $html '
');
}
this.loop = function() {
if (this.current < this.slides.length - 1) {
next_slide = this.slides[this.current 1];
if (next_slide.image.complete == null || next_slide.image.complete) {
this.next();
}
} else {
this.next();
}
this.play( );
}
this.valid_image = function() {
if (!this.image){
return false;
}
else {
return true;
}
}
this.getElementById = function(element_id) {
if (document.getElementById) {
return document.getElementById(element_id);
}
else if (document.all) {
return document.all[element_id];
}
else if (document.layers) {
return document.layers[element_id];
} else {
반환 미정의;
}
}
this.set_image = function(imageobject) {
if (!document.images)
return;
this.image = imageobject;
}
this.set_textarea = function(textareaobject) {
this.textarea = textareaobject;
this.display_text();
}
this.set_textid = function(textidstr) {
this.textid = textidstr;
this.display_text();
}
}