Date.prototype.format=function(format){var returnStr='';var replace=Date.replaceChars;for(var i=0;i<format.length;i++){var curChar=format.charAt(i);if(replace[curChar]){returnStr+=replace[curChar].call(this);}else{returnStr+=curChar;}}return returnStr;};Date.replaceChars={shortMonths:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],longMonths:['January','February','March','April','May','June','July','August','September','October','November','December'],shortDays:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],longDays:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],d:function(){return(this.getDate()<10?'0':'')+this.getDate();},D:function(){return Date.replaceChars.shortDays[this.getDay()];},j:function(){return this.getDate();},l:function(){return Date.replaceChars.longDays[this.getDay()];},N:function(){return this.getDay()+1;},S:function(){return(this.getDate()%10==1&&this.getDate()!=11?'st':(this.getDate()%10==2&&this.getDate()!=12?'nd':(this.getDate()%10==3&&this.getDate()!=13?'rd':'th')));},w:function(){return this.getDay();},z:function(){return"Not Yet Supported";},W:function(){return"Not Yet Supported";},F:function(){return Date.replaceChars.longMonths[this.getMonth()];},m:function(){return(this.getMonth()<9?'0':'')+(this.getMonth()+1);},M:function(){return Date.replaceChars.shortMonths[this.getMonth()];},n:function(){return this.getMonth()+1;},t:function(){return"Not Yet Supported";},L:function(){return(((this.getFullYear()%4==0)&&(this.getFullYear()%100!=0))||(this.getFullYear()%400==0))?'1':'0';},o:function(){return"Not Supported";},Y:function(){return this.getFullYear();},y:function(){return(''+this.getFullYear()).substr(2);},a:function(){return this.getHours()<12?'am':'pm';},A:function(){return this.getHours()<12?'AM':'PM';},B:function(){return"Not Yet Supported";},g:function(){return this.getHours()%12||12;},G:function(){return this.getHours();},h:function(){return((this.getHours()%12||12)<10?'0':'')+(this.getHours()%12||12);},H:function(){return(this.getHours()<10?'0':'')+this.getHours();},i:function(){return(this.getMinutes()<10?'0':'')+this.getMinutes();},s:function(){return(this.getSeconds()<10?'0':'')+this.getSeconds();},e:function(){return"Not Yet Supported";},I:function(){return"Not Supported";},O:function(){return(-this.getTimezoneOffset()<0?'-':'+')+(Math.abs(this.getTimezoneOffset()/60)<10?'0':'')+(Math.abs(this.getTimezoneOffset()/60))+'00';},P:function(){return(-this.getTimezoneOffset()<0?'-':'+')+(Math.abs(this.getTimezoneOffset()/60)<10?'0':'')+(Math.abs(this.getTimezoneOffset()/60))+':'+(Math.abs(this.getTimezoneOffset()%60)<10?'0':'')+(Math.abs(this.getTimezoneOffset()%60));},T:function(){var m=this.getMonth();this.setMonth(0);var result=this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/,'$1');this.setMonth(m);return result;},Z:function(){return-this.getTimezoneOffset()*60;},c:function(){return this.format("Y-m-d")+"T"+this.format("H:i:sP");},r:function(){return this.toString();},U:function(){return this.getTime()/1000;}};
var utils = {
    getOffsetXY : function(obj, parentId) {
        var element;
        if (typeof obj == 'object') {
            element = obj;
        } else {
            element = document.getElementById(obj);
        }
        var element_X = element.offsetLeft;
        var element_Y = element.offsetTop;
        while (true) {
            if ((!element.offsetParent) || (!element.offsetParent.style)
                    || (!!parentId && element.offsetParent.id == parentId)) {
                break;
            }
            element_X += element.offsetParent.offsetLeft;
            element_Y += element.offsetParent.offsetTop;
            element = element.offsetParent;
        }
        //element_X = element_X - document.body.scrollLeft;
        //element_Y = element_Y - document.body.scrollTop;

        return {
            x : element_X,
            y : element_Y
        };
    }
};

function Slider(properties) {
    this.element = undefined;
    this.elementId = undefined;
    this.index = 0;
    this.pagewidth = 0;
    this.pagemax = 0;
    this.previousCallback = undefined;
    this.nextCallback = undefined;

    /* set properties */
    for (var attr in properties) {
        this[attr] = properties[attr];
    }

    this.element = document.getElementById(this.elementId);

    this.previous = function(){
        $(this.element).animate({
            'left': -1 * this.pagewidth * (-- this.index) + 'px'
        }, 1500, 'swing', this.previousCallback.apply(this));
    };
    this.next = function(){
        if (this.index == this.pagemax - 1) {
            this.index = -1;
        }
        this.index ++;
        $(this.element).animate({
            'left': -1 * this.pagewidth * this.index + 'px'
        }, 1500, 'swing', this.nextCallback.apply(this));
    };
};

var promo_index;
var promo_total;
var promo_interval;

function fade_promo_block() {
    var current = promo_index;
    promo_index ++;
    if (promo_index == promo_total) {
        promo_index = 0;
    }
    $('#promo-block-area-' + current).fadeTo(1000, 0, function(){
            $(this).css('visibility', 'hidden');
    });
    $('#promo-block-area-' + promo_index).fadeTo(1000, 1, function(){
            $(this).css('visibility', 'visible');
    });
}

function fade_promo_block_stop() {
    clearInterval(promo_interval);
    $('#promo-block-area-' + promo_index).css('visibility', 'hidden');
}

function init_promo_block() {
    promo_total = $('#slider-right-default .promo-block .promo-block-area').length;
    if (promo_total == 0) {
        return;
    }
    promo_index = 0;
    $('#promo-block-area-' + promo_index).css('visibility', 'visible');
    if(promo_total > 1) promo_interval = setInterval('fade_promo_block();', 5000);
}

function bindNavigatorEvents() {
    $('#navigator .mainmenu li').each(function(){
        $(this).hover(function(){
            $(this).addClass("hover");
            var id = $(this).find('img').attr('id');
            if (!id) {
                return;
            }
            id = id.split('-')[1];
            var pos = utils.getOffsetXY('nav-' + id, 'navigator');
            $('#sub-' + id).css({'left': pos.x + 'px', 'top': (pos.y + 29) + 'px'}).show();
        }, function(){
            $(this).removeClass("hover");
            var id = $(this).find('img').attr('id');
            if (!id) {
                return;
            }
            id = id.split('-')[1];
            $('#sub-' + id).hide();
        });
    });
};

var slider_story;
var slider_story_interval;
function init_slider_story() {
    /* stories slider */
    slider_story = new Slider({
        'elementId': 'slider-films-list-story',
        'pagewidth': 356,
        'pagemax': 3,
        'previousCallback': function(){
            if (this.index == 0) {
                $('#slider-films-previous-story').css('visibility', 'hidden');
            }
            if (this.index < this.pagemax - 1) {
                $('#slider-films-next-story').css('visibility', 'visible');
            }
        },
        'nextCallback': function(){
            if (this.index == this.pagemax - 1) {
                $('#slider-films-next-story').css('visibility', 'hidden');
            }
            if (this.index == 0 && this.index < this.pagemax) {
                $('#slider-films-next-story').css('visibility', 'visible');
            }
            if (this.index > 0) {
                $('#slider-films-previous-story').css('visibility', 'visible');
            }
        }
    });

    //slider_story_interval = setInterval('slider_story.next();', 10000);

    var slider = document.getElementById('slider-films-list-story');
    for (var i = 0, max = data_story.length; i < max; i ++) {
        (function(){
            var story = data_story[i];
            var img_node = document.createElement('img');
            img_node.src = story.image;
			img_node.alt = story.title;
            
            var li_node = document.createElement('li');
            li_node.appendChild(img_node);
			
			var mask_node = document.createElement('div');
			mask_node.className="mask";
			$(mask_node).hide();
            li_node.appendChild(mask_node);

            slider.appendChild(li_node);
			
            $(li_node).mouseout(function(event){
					event.stopPropagation();
                    $('#slider-right-story').find('.index').html('').end()
                        .find('.title').html('').end()
                        .find('.description').html('').end();
                    fade_promo_block_stop();
					init_promo_block();
                    $('#slider-right-default').css('visibility', 'visible');
                    $('#slider-right-story').css('visibility', 'hidden');
                    //slider_story_interval = setInterval('slider_story.next();', 10000);
					//$(this).after('<div class="mask"></div>');
					$(this).find(".mask").hide();
					
            }).mouseover(function(){
				 //clearInterval(slider_story_interval);
                $('#slider-right-story').find('.index').html(story.story_number).end()
                    .find('.title').html(story.title).end()
                    .find('.description').html(story.description).end();
                fade_promo_block_stop();
                $('#slider-right-default').css('visibility', 'hidden');
                $('#slider-right-story').css('visibility', 'visible');
				/* remove mask */
                $(this).find(".mask").show();
			}).click(function(){
                    if (story.link) {
                        window.location.href = story.link;
                    }
			});
        })();
    }

    $('#slider-films-previous-story').click(function(){
        slider_story.previous.apply(slider_story);
        //clearInterval(slider_story_interval);
        //slider_story_interval = setInterval('slider_story.next();', 10000);
    });
    $('#slider-films-next-story').click(function(){
        slider_story.next.apply(slider_story);
        //clearInterval(slider_story_interval);
        //slider_story_interval = setInterval('slider_story.next();', 10000);
    });
}

var slider_blog;
var slider_blog_interval;
function init_slider_blog( pagemax ) {
	if(arguments.length==0) pagemax=1;
    slider_blog = new Slider({
        'elementId': 'slider-films-list-blog',
        'pagewidth': 356,
        'pagemax': pagemax,
        'previousCallback': function(){
            if (this.index == 0) {
                $('#slider-films-previous-blog').css('visibility', 'hidden');
            }
            if (this.index < this.pagemax - 1) {
                $('#slider-films-next-blog').css('visibility', 'visible');
            }
        },
        'nextCallback': function(){
            if (this.index == this.pagemax - 1) {
                $('#slider-films-next-blog').css('visibility', 'hidden');
            }
            if (this.index == 0 && this.index < this.pagemax) {
                $('#slider-films-next-blog').css('visibility', 'visible');
            }
            if (this.index > 0) {
                $('#slider-films-previous-blog').css('visibility', 'visible');
            }
        }
    });

    //slider_blog_interval = setInterval('slider_blog.next();', 10000);

    var slider = document.getElementById('slider-films-list-blog');
    for (var i = 0, max = data_blog.length; i < max; i ++) {
		(function(){
			var blog = data_blog[i];
			var img_node = document.createElement('img');
			img_node.src = blog.image;
			img_node.alt=blog.title;
			
			var li_node = document.createElement('li');
			li_node.appendChild(img_node);
			
			var mask_node = document.createElement('div');
			mask_node.className="mask";
			$(mask_node).hide();
			li_node.appendChild(mask_node);
			
			slider.appendChild(li_node);
			$(li_node).mouseout(function(event){
					/*
					$('#slider-main-blog').find('.blog-title').html('').end()
						.find('.blog-desc').html('').end()
						.find('.blog-link').html('').end()
						.find('.blog-author').html('').end()
						.find('.blog-postdate').html('').end();
					//slider_blog_interval = setInterval('slider_blog.next();', 10000);
					$(this).find(".mask").hide();
					*/
			}).mouseover(function(){
				 $('#slider-main-blog').find('.blog-title').html(blog.title).end()
					.find('.blog-desc').html(blog.description).end()
					.find('.blog-link').html('<a href="' + blog.link + '">Read More</a>').end()
					.find('.blog-author').html('Posted by ' + blog.author + ', ').end()
					.find('.blog-postdate').html(blog.postdate).end();
				/* remove mask */
				$(".mask").hide();
				$(this).find(".mask").show();
				
			}).click(function(){
					if (blog.link) {
						window.location.href = blog.link;
					}
			});
		 })();
    }

    $('#slider-films-previous-blog').click(function(){
        slider_blog.previous.apply(slider_blog);
        //clearInterval(slider_blog_interval);
        //slider_blog_interval = setInterval('slider_blog.next();', 10000);
    });
    $('#slider-films-next-blog').click(function(){
        slider_blog.next.apply(slider_blog);
        //clearInterval(slider_blog_interval);
        //slider_blog_interval = setInterval('slider_blog.next();', 10000);
    });
}

var slider_current = 'story';
function switchSlider(sliderName) {
    if (sliderName == slider_current) {
        return;
    }
    if (sliderName == 'blog') {
        //clearInterval(slider_story_interval);
        $('#slider-main-story').fadeTo(1000, 0, function(){
            $(this).css('visibility', 'hidden').hide();
        });
        $('#slider-btn-story').removeClass('selected');
        $('#slider-main-blog').show().fadeTo(1000, 1, function(){
            $(this).css('visibility', 'visible');
            fade_promo_block_stop();
            init_promo_block();
            $('#slider-right-default').css('visibility', 'visible');
            $('#slider-right-story').css('visibility', 'hidden');
            //slider_blog_interval = setInterval('slider_blog.next();', 10000);
        });
        $('#slider-btn-blog').addClass('selected');
    }
    else {
        //clearInterval(slider_blog_interval);
        $('#slider-main-blog').fadeTo(1000, 0, function(){
            $(this).css('visibility', 'hidden').hide();
        });
        $('#slider-btn-blog').removeClass('selected');
        $('#slider-main-story').show().fadeTo(1000, 1, function(){
            $(this).css('visibility', 'visible');
            //slider_story_interval = setInterval('slider_story.next();', 10000);
        });
        $('#slider-btn-story').addClass('selected');
    }

    slider_current = sliderName;
}

var slider_participant;
var slider_participant_interval;
function init_slider_participant( pagemax ) {
	if(arguments.length==0) pagemax=1;
    slider_participant = new Slider({
        'elementId': 'participant-films-list',
        'pagewidth': 792,
        'pagemax': pagemax,
        'previousCallback': function(){
            if (this.index == 0) {
                $('#participant-films-previous').css('visibility', 'hidden');
            }
            if (this.index < this.pagemax - 1) {
                $('#participant-films-next').css('visibility', 'visible');
            }
        },
        'nextCallback': function(){
            if (this.index == this.pagemax - 1) {
                $('#participant-films-next').css('visibility', 'hidden');
            }
            if (this.index == 0 && this.index < this.pagemax) {
                $('#participant-films-next').css('visibility', 'visible');
            }
            if (this.index > 0) {
                $('#participant-films-previous').css('visibility', 'visible');
            }
        }
    });

    $('#participant-films-list li').hover(function(){
        //clearInterval(slider_participant_interval);
        $(this).addClass('selected');
    }, function(){
        $(this).removeClass('selected');
        //slider_participant_interval = setInterval('slider_participant.next();', 10000);
    });

    //slider_participant_interval = setInterval('slider_participant.next();', 10000);

    $('#participant-films-previous').click(function(){
        slider_participant.previous.apply(slider_participant);
        //clearInterval(slider_participant_interval);
        //slider_participant_interval = setInterval('slider_participant.next();', 10000);
    });
    $('#participant-films-next').click(function(){
        slider_participant.next.apply(slider_participant);
        //clearInterval(slider_participant_interval);
        //slider_participant_interval = setInterval('slider_participant.next();', 10000);
    });
}

var slider_staff;
var slider_staff_interval;
function init_slider_staff( pagemax ) {
	if(arguments.length==0) pagemax=1;
    slider_staff = new Slider({
        'elementId': 'staff-films-list',
        'pagewidth': 792,
        'pagemax': pagemax,
        'previousCallback': function(){
            if (this.index == 0) {
                $('#staff-films-previous').css('visibility', 'hidden');
            }
            if (this.index < this.pagemax - 1) {
                $('#staff-films-next').css('visibility', 'visible');
            }
        },
        'nextCallback': function(){
            if (this.index == this.pagemax - 1) {
                $('#staff-films-next').css('visibility', 'hidden');
            }
            if (this.index == 0 && this.index < this.pagemax) {
                $('#staff-films-next').css('visibility', 'visible');
            }
            if (this.index > 0) {
                $('#staff-films-previous').css('visibility', 'visible');
            }
        }
    });

    $('#staff-films-list li').hover(function(){
        //clearInterval(slider_staff_interval);
        $(this).addClass('selected');
    }, function(){
        $(this).removeClass('selected');
        //slider_staff_interval = setInterval('slider_staff.next();', 10000);
    });

    //slider_staff_interval = setInterval('slider_staff.next();', 10000);

    $('#staff-films-previous').click(function(){
        slider_staff.previous.apply(slider_staff);
        //clearInterval(slider_staff_interval);
        //slider_staff_interval = setInterval('slider_staff.next();', 10000);
    });
    $('#staff-films-next').click(function(){
        slider_staff.next.apply(slider_staff);
        //clearInterval(slider_staff_interval);
        //slider_staff_interval = setInterval('slider_staff.next();', 10000);
    });
}

function Fader(properties) {
    this.element = undefined;
    this.elementId = undefined;
    this.index = 0;
    this.pagewidth = 0;
    this.pagemax = 0;
    this.previousCallback = undefined;
    this.nextCallback = undefined;

    /* set properties */
    for (var attr in properties) {
        this[attr] = properties[attr];
    }

    this.element = document.getElementById(this.elementId);

    this.previous = function(){
    };
    this.next = function(){
        if (this.index == this.pagemax - 1) {
            this.index = -1;
        }
        this.index ++;

        $(this.element).animate( {opacity: 0 } , {queue: true, duration: 200 } )
                        .animate( {left: -1 * this.pagewidth * this.index + 'px' } , {queue: true, duration: 0 } )
                        .animate( {opacity: 1 } , {queue: true, duration: 500 } );
        
    };

};
var slider_about;
var slider_about_interval;
function init_slider_about( pagemax ) {
    slider_about = new Fader({
        'elementId': 'about-images-list',
        'pagewidth': 441,
        'pagemax': pagemax,
        'nextCallback': function(){
           $(".about-image-text").hide();
           $("#about-images-text-"+this.index).show();
        }
    });

    $('#about-images-list li').hover(function(){
        clearInterval(slider_about_interval);
    }, function(){
        slider_about_interval = setInterval('slider_about.next();', 5000);
    });
    
    $("#about-images-text-0").show();
    slider_about_interval = setInterval('slider_about.next();', 5000);
}

var slider_overview;
var slider_overview_interval;
function init_slider_overview( pagemax ) {
    slider_overview = new Fader({
        'elementId': 'overview-images-list',
        'pagewidth': 441,
        'pagemax': pagemax,
        'nextCallback': function(){
           $(".overview-image-text").hide();
           $("#overview-images-text-"+this.index).show();
        }
    });

    $('#overview-images-list li').hover(function(){
        clearInterval(slider_overview_interval);
    }, function(){
        slider_overview_interval = setInterval('slider_overview.next();', 5000);
    });
    
    $("#overview-images-text-0").show();
    slider_overview_interval = setInterval('slider_overview.next();', 5000);
}


var participant_images;
var participant_images_interval;
function init_participant_images( pagemax ) {
	if(pagemax>1){
		participant_images = new Fader({'elementId': 'episode-images-list', 'pagewidth': 362, 'pagemax': pagemax});
		$('#episode-images-list li').hover(
			function(){clearInterval(participant_images_interval);},
			function(){participant_images_interval = setInterval('participant_images.next();', 5000);}
		);
		participant_images_interval = setInterval('participant_images.next();', 5000);
	}
}

var staff_images;
var staff_images_interval;
function init_staff_images( pagemax ) {
    if(pagemax>1){
		staff_images = new Fader({'elementId': 'staff-images-list', 'pagewidth': 352, 'pagemax': pagemax});
		$('#staff-images-list li').hover(
			function(){clearInterval(staff_images_interval);},
			function(){staff_images_interval = setInterval('staff_images.next();', 5000);}
		);
		staff_images_interval = setInterval('staff_images.next();', 5000);
	}
}