/* VisitRauland custom JavaScripts */

$(document).ready( function()
{
    /* TAB BOX */
    $('a#multibox-tab-1').click( function()
    {
        $('div#multibox-content-2').css('display', 'none' );
        $('div#multibox-content-1').css('display', 'block' );
        $('a#multibox-tab-2').parent().removeClass( 'selected' );
        $('a#multibox-tab-1').blur().parent().addClass( 'selected' );
        return false;
    } );

    $('a#multibox-tab-2').click( function()
    {
        $('div#multibox-content-1').css('display', 'none' );
        $('div#multibox-content-2').css('display', 'block' );
        $('a#multibox-tab-1').parent().removeClass( 'selected' );
        $('a#multibox-tab-2').blur().parent().addClass( 'selected' ).blur();
        return false;
    } );

    $('a#popup-window-link').click( function()
    {
        $('div#screen-overlay').css( 'width', $(document).width() ).css( 'height', $(document).height() ).css( 'opacity', 0 ).css('display', 'block' ).fadeTo( 100, 0.5 );
        $('div#popup-window').css('top', ( ( $(window).height() / 2 ) - ( $('div#popup-window').height() / 2 ) ) ).css('left',( ( $(window).width() / 2 ) - ( $('div#popup-window').width() / 2 )  ) ).css( 'opacity', 0 ).css('display', 'block' ).fadeTo( 100, 1 );
        return false;
    } );

    $('div#popup-window-close').click( function()
    {
        $('div#screen-overlay').css('display', 'none' );
        $('div#popup-window').css('display', 'none' );
        return false;
    } );

    $('a#popup-video-link').click( function()
    {
        $('div#screen-overlay').css( 'width', $(document).width() ).css( 'height', $(document).height() ).css( 'opacity', 0 ).css('display', 'block' ).fadeTo( 100, 0.5 );
        $('div#popup-video').css('top', ( ( $(window).height() / 2 ) - ( $('div#popup-video').height() / 2 ) ) ).css('left',( ( $(window).width() / 2 ) - ( $('div#popup-video').width() / 2 )  ) ).css( 'opacity', 0 ).css('display', 'block' ).fadeTo( 100, 1 );
        return false;
    } );

    $('div#popup-video-close').click( function()
    {
        $('div#screen-overlay').css('display', 'none' );
        $('div#popup-video').css('display', 'none' );
        return false;
    } );

    $( '.rotator' ).each( function( index )
    {
        rotator.activate( this, index );
    } );
}
);


function gwAjaxUpdateNavigatorForm( value )
{
    $('#PageLimit').value( value );
    gwAjaxUpdateForm();
}

function gwSetAjaxEventPeriod( from, to )
{
    $('input#input-hidden-from')[0].value = from;
    $('input#input-hidden-to')[0].value = to;
}

function gwSetAjaxEventMonth( month, year )
{
    $('input#input-hidden-month')[0].value = month;
    $('input#input-hidden-year')[0].value = year;
}

function gwToggleTypeList()
{
    var $checkboxes = $('input[type=checkbox].type-checkbox-list');

    $checkboxes.each(function(){
        if ( $(this).attr('checked' ) == false )
            $(this).attr('checked', true);
        else
            $(this).attr('checked', false );
    });
}

function gwAjaxUpdateForm()
{
    var dataString = $("form#filter").serialize();

    $.ajax({
        type: "POST",
         beforeSend: function( html ) {
            $('#page').css( 'cursor', 'progress' );
            $('.filter-selector-options').css( 'cursor', 'progress' );
            $('input').css( 'cursor', 'progress' );
            $('label').css( 'cursor', 'progress' );
            $('div').css( 'cursor', 'progress' );
            $('#loading').show();
         },
         url: ezpRoot + "/gwfilter/ajax/saleslist",
         data: dataString,
         cache: false,
         dataType: 'json',
         success: function( jsonArray) {
             $('#search-result-content').html( jsonArray.list );
             $('#calendar-content').html( jsonArray.calendar );
         },
         complete: function() {
                $('#loading').hide();
                $('#page').css( 'cursor', 'default' );
                $('input').css( 'cursor', 'default' );
                $('div').css( 'cursor', 'default' );
                $('label').css( 'cursor', 'default' );
                $('.filter-selector-options').css( 'cursor', 'default' );
                fontResize();
                replaceEmailByClass('span', 'emailaddresslink-class');
         }
    });
}

function fontResize()
{
    /* FONT SIZE ADJUSTMENT */

    var normalFontSize = '100%';
    var largeFontSize = '110%';
    var extralargeFontSize = '120%';

    var fontSize = getCookie('fontSize');
    if( fontSize )
    {
        $('div#main').css('fontSize', fontSize );
    }

    $('a#adjust-normal').click( function()
    {
        $('div#main').css('fontSize', normalFontSize );
        setCookie( 'fontSize', normalFontSize, 1 );
        this.blur();
        $( '.rotator' ).each( function()
        {
            rotator.resize( this );
        } );

        return false;
    } );

    $('a#adjust-large').click( function()
    {
        $('div#main').css('fontSize', largeFontSize);
        setCookie( 'fontSize', largeFontSize, 1 );
        this.blur();
        $( '.rotator' ).each( function()
        {
            rotator.resize( this );
        } );

        return false;
    } );

    $('a#adjust-extralarge').click( function()
    {
        $('div#main').css('fontSize', extralargeFontSize );
        setCookie( 'fontSize', extralargeFontSize, 1 );
        this.blur();
        $( '.rotator' ).each( function()
        {
            rotator.resize( this );
        } );

        return false;
    } );

}

var rotator =
{
    activate: function( element, index )
    {
        if ( !element.id )
        {
            $(element).attr( 'id', 'rotator-gen-' + index );
        }

        element.count = 0;
        element.active = 0;

        $( '.slide', element ).each( function( i )
        {
            $(this).addClass( 'slide-' + i );

            if ( !$(this).hasClass( 'hide' ) && element.active == 0 )
            {
                element.active = i;
            }
            element.count++;
        } );

        $( '.navigator a', element ).each( function( i )
        {
            $(this).addClass( 'a-' + i );
            $(this).click( function()
            {
                if ( element.interval )
                {
                    clearInterval( element.interval );
                }
                rotator.switchTo( element, i );

                return false;
            } );
        } );

        rotator.resize( element );

        $( '.slide', element ).css( 'position', 'absolute' );
        $( '.slide', element ).hide();
        $( '.slide', element ).removeClass( 'hide' );
        $( '.slide-' + element.active, element ).show();
        $( '.a-' + element.active ).addClass( 'selected' );

        element.interval = setInterval( "rotator.next('" + element.id + "')", 9500 );
    },

    slideHeight: function( slideElement )
    {
        slideElement = $(slideElement);
        var innerSlide = $( 'div.innerslide', slideElement );
        var height = innerSlide.outerHeight();
        if ( slideElement.css( 'display' ) == 'none' )
        {
            slideElement.css( 'visibility', 'hidden' ).css( 'display', 'block' );
            height = innerSlide.outerHeight();
            slideElement.css( 'display', 'none' ).css( 'visibility', 'visible' );
        }

        return height;
    },

    resize: function( element )
    {
        var height = 0;
        $( '.slide', element ).each( function( i )
        {
            var slideHeight = rotator.slideHeight( this );
            if ( slideHeight > height )
            {
                height = slideHeight;
            }
        } );
        $( '.slides', element ).height( height );
        $( '.slide', element ).height( height );
        $( '.mainbox.slide', element ).height( height - (  parseInt( $( '.mainbox' ).css( 'padding-top' ) ) + parseInt( $( '.mainbox' ).css( 'padding-bottom' ) ) + parseInt( $( '.mainbox' ).css( 'border-top-width' ) ) + parseInt( $( '.mainbox' ).css( 'border-bottom-width' ) ) ) );
        $( '.promobox.slide', element ).height( height - (  parseInt( $( '.promobox' ).css( 'padding-top' ) ) + parseInt( $( '.promobox' ).css( 'padding-bottom' ) ) + parseInt( $( '.promobox' ).css( 'border-top-width' ) ) + parseInt( $( '.promobox' ).css( 'border-bottom-width' ) ) ) );
    },

    next: function( id )
    {
        var element = $( '#' + id );
        if ( !element )
        {
            return;
        }

        element = element[0];
        rotator.switchTo( element, ( element.active + 1 ) % element.count );
    },

    switchTo: function( element, index )
    {
        if ( element.active == index )
        {
            return;
        }

        $( '.a-' + element.active, element ).removeClass( 'selected' );
        $( '.slide-' + element.active, element ).fadeOut( 1500 );
        element.active = index;
        $( '.a-' + element.active, element ).addClass( 'selected' );
        $( '.slide-' + element.active, element ).fadeIn( 1500 );
    }
};


/* COOKIE CONTROL */

function getCookie( cName )
{
    var cArray = document.cookie.split( '; ' );

    for ( cookie in cArray )
    {
        if ( cName == cArray[cookie].substring( 0, cArray[cookie].indexOf( '=' ) ) )
        {
            return unescape( cArray[cookie].substring( cArray[cookie].indexOf( '=' ) + 1 ) );
        }
    }

    return false;
}

function setCookie( cName, cValue, cExpYears )
{
	var cExp = new Date();
	cExp.setFullYear( cExp.getFullYear() + cExpYears );
	document.cookie = cName + '=' + escape( cValue ) + '; expires=' + cExp.toUTCString() + '; path=/';
}


/* E-MAIL ADDRESS LINK REPLACEMENT */

function replaceEmailById()
{
    for ( var arg = 0; arg < replaceEmailById.arguments.length; arg++ )
    {
        insertEmailLink( document.getElementById( replaceEmailById.arguments[arg] ) );
    }
}

function replaceEmailByClass( emailLinkTagName, emailLinkClass )
{
    var tagArray = document.getElementsByTagName( emailLinkTagName );
    var tagValue = "";

    for ( tag in tagArray )
    {
        tagValue = tagArray[tag];
        if ( typeof( tagValue ) != "undefined" ) {
            if ( tagValue.className == emailLinkClass ) {
                insertEmailLink( tagValue );
            }
        }
    }
}

function insertEmailLink( element )
{
    var elementChild;
    var emailAddress = '';
    var linkText = '';
    var textContent = '';

    while ( element.childNodes.length > 0 )
    {
        elementChild = element.firstChild;

        if ( elementChild.nodeType == 3 )
        {
            emailAddress += elementChild.nodeValue;
        }
        else if ( elementChild.nodeType == 1 && /emailaddresslink-address/.test( elementChild.className ) )
        {
            while ( elementChild.childNodes.length > 0 )
            {
                    if ( elementChild.firstChild.nodeType == 3 )
                    {
                        emailAddress += elementChild.firstChild.nodeValue;
                    }
                    elementChild.removeChild( elementChild.firstChild );
            }
        }
        else if ( elementChild.nodeType == 1 && /emailaddresslink-linktext/.test( elementChild.className ) )
        {
            while ( elementChild.childNodes.length > 0 )
            {
                    if ( elementChild.firstChild.nodeType == 3 )
                    {
                        linkText += elementChild.firstChild.nodeValue;
                    }
                    elementChild.removeChild( elementChild.firstChild );
            }
        }
        element.removeChild( element.firstChild );
    }

    var newLink = document.createElement('a');
    newLink.href = 'mailto:' + emailAddress;

    if ( !linkText )
    {
        textContent = emailAddress;
    }
    else
    {
        textContent = linkText;
    }

    newLink.appendChild( document.createTextNode( textContent ) );
    element.appendChild( newLink );
}
