jQuery.noConflict();

jQuery(document).ready(function () {

   
    /* Portfolio 2 Slide function */
    jQuery('.portfolio2-image').bind({ mouseenter: function () { jQuery('.caption p', this).slideDown(400); }, 
                                                 mouseleave: function () { jQuery('.caption p', this).slideUp(400); }
                                                 });
    
    
    /* RSlider - Homepage Slider */
    if (jQuery('#slider-wrap .rs-project').length > 0) jQuery('#slider-wrap').RSlider({
        'width': 940,
        'height': 380,
        'display_ctrl': true,
        'display_arrows': false
    });
    
    /* RSlider - Recent Works Slider */
    if (jQuery('#recent-slider .rs-project').length > 0) jQuery('#recent-slider').RSlider({
        'width': 210,
        'height': 210,
        'display_ctrl': false,
        'display_arrows': true
    });
    
    /* RSlider - Intro Slider */
    if (jQuery('#intro-slider .rs-project').length > 0) jQuery('#intro-slider').RSlider({
        'width': 950,
        'height': 110,
        'display_ctrl': true,
        'display_arrows': false
    });

    /* R-Menu */
    jQuery('ul#menu').RMenu();


    /* Social icons */
    jQuery('#social a span').css('opacity', '0')
    jQuery('#social a').hover(

    function () {
        jQuery('span', this).stop().animate({
            opacity: 1
        }, 400);
    }, function () {
        jQuery('span', this).stop().animate({
            opacity: 0
        }, 400);
    })
    

}) // End custom scripts


;(function ($) {


    /* 
     *  R-MENU
     *  Copyright (c) 2010 Rascals Labs
     *  http://www.rascals.eu
     *  rascals@rascals.eu
     *  ver 1.0
     */

    jQuery.fn.RMenu = function() {
        
        var ul_width = parseInt($(this).find('ul').css('width'));
        var menu = $('li', this);
        
        if(jQuery.browser.msie) {
            $('li li:last-child', this).css('border', 'none');
        } 
        
        /* Add first level class */
        $('> li > a', this).addClass('first-level');
        
        /* Remove title attribute from <a> tag */
        $('a', this).removeAttr('title');
        
        /* Bulid Sub Menu List */
        function bulid_menu() {
            menu.each(function() {
                var pos_nav = $('#menu-wrap').offset(),
                right_edge = $(document).scrollLeft()+$(window).width()-40,
                first_pos,
                last_pos;
                
                if($('ul',this).length>0) first_pos = $(this).find('ul:first').offset().left+ul_width;
            
                if(first_pos >= right_edge) {
                    if ($(this).parent().hasClass('menu')) $('> ul', this).css('left', -(ul_width) + $(this).width() +'px');
                    else $(this).find('ul').css('left', -ul_width-2 +'px'); 
                } else {
                    $(this).find('ul:not(:first)').css('left', '100%');
                }
            })
        
        };
        
        bulid_menu();
        
        /* Hover menu function */
        menu.hover(function () {
            var ul = $(this).find('ul:first');
            
            if ($('a:first', this).is('.first-level')) {
                $('a:first', this).addClass('hover');
                var top = 45;
                ul.css('top', '48px');
            } else {
                ul.css('top', '-1px');
                var top = -1;
            }
        
            ul.css({
                'visibility' : 'visible',
                'opacity' : 0,
                'top' : (top-20)+'px'
            }).animate({                                                                        
                opacity : 1,
                'top' : top+'px'
            }, 400, function() {
                if (jQuery.browser.msie){ 
                    this.style.removeAttribute('filter')
                }                                                                   
            });
        },
        function () {
            var ul = $(this).find('ul:first');
            $('a', this).removeClass('hover');
            ul.css('visibility', 'hidden');
        });
        
        /* Resize Browser Window Function */
        $(window).resize(function() {
            bulid_menu();                     
        })
    }

})(jQuery);


;(function ($) {

    /* 
    *  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
    *  RSlider - Rascals Slider
    *  ver 1.0
    */

    jQuery.fn.RSlider = function (options) {
        var opts = jQuery.extend({
            'delay': parseInt($('.delay', this).text()),
            'duration': parseInt($('.duration', this).text()),
            'width': 940,
            'height': 380,
            'display_ctrl' : true,
            'display_arrows' : false,
            'transition': $('.transition', this).text(),
            'easing': $('.easing', this).text(),
            'active_class': 'active'
        }, options);
        var timer;
        var delay = opts.delay * 1000;
        var check = false;
        var project = $(this).find('.rs-project'),
            c = 1,
            ti = $('.rs-project', this).size();
        
        /* Loading images */
        project.each(function (i) {
                               
            var l = $(this);
            if (opts.transition == 'vertical') l.css('top', i * opts.height + 'px');
            else if (opts.transition == 'horizontal') l.css('left', i * opts.width + 'px');
            else {
                if (i > 0) l.css('display', 'none');
            }
            
         });
        
        /* Image hover effect */
        project.bind({
            mouseenter: function() {
                stop_timer();
            },
            mouseleave: function() {
                auto_slide();
            }
        });

        /* Navigation */
        if (opts.display_arrows == true) {
            $(this).append('<div class="rs-arrows"><a href="#" class="rs-prev">Previous project</a> <a href="#" class="rs-next">Next project</a></div>');
        }
        if (opts.display_ctrl == true) {
            $(this).append('<div class="rs-ctrl pngfix"></div>')
            for(var i=0;i<ti;i++) {
                $('.rs-ctrl', this).append('<a href="#"></a>');
             }
            var ctrl = $('.rs-ctrl a', this);
            ctrl.eq(0).addClass(opts.active_class);
            ctrl.each(function (i) {
                    $(this).click(function () {
                        if (check == false && !$(this).is(opts.active_class) ) {
                            ctrl.removeClass(opts.active_class);
                            $(this).addClass(opts.active_class);
                            c = i;
                            auto_slide();
                            next();
                        }
                        return false;
                    });
                });
        }
        $('.rs-next',this).bind('click', function () {
                if (check == false) {
                    auto_slide();
                    next();
                }
                return false;
            });

        $('.rs-prev', this).bind('click', function () {
                if (check == false) {
                    auto_slide();
                    prev();
                    return false;
                }
            });
        
        /* Effects */
        function fade() {
                if (project.eq(c - 1).css('display') == 'none') {
                    var dp = project.filter(':visible');
                    dp.css('z-index', 0);
                    project.eq(c - 1).css('z-index', 1).fadeIn('normal', function () {
                        check = false;
                        dp.css('display', 'none');
                    });
                }
            }

        function slide() {
                if (project.eq(c - 1).css('display') == 'none') {
                    var dp = project.filter(':visible');
                    dp.css('z-index', 1);
                    project.eq(c - 1).css({
                        'z-index': 0,
                        'display': 'block'
                    });

                    dp.animate({
                        left: opts.width
                    }, opts.duration, opts.easing, function () {
                        check = false;
                        dp.css({
                            'left': 0,
                            'display': 'none'
                        });
                    });
                }
            }

        function next() {
                check = true;
                if (c == 0) c = ti;
                l = c;
                if (c == ti) c = 1
                else c++;
                if (opts.transition == 'vertical') {
                    check = false;
                    project.animate({
                        marginTop: -(c - 1) * opts.height
                    }, {
                        duration: opts.duration,
                        easing: opts.easing,
                        queue: false
                    });
                } else if (opts.transition == 'horizontal') {
                    check = false;
                    project.animate({
                        marginLeft: -(c - 1) * opts.width
                    }, {
                        duration: opts.duration,
                        easing: opts.easing,
                        queue: false
                    });
                }

                else if (opts.transition == 'fade') fade();
                else slide();
                if (opts.display_ctrl == true) {
                    ctrl.removeClass(opts.active_class);
                    ctrl.eq(c - 1).addClass(opts.active_class);
                }
            }

        function prev() {
                check = true;
                l = c;
                if (c == 1) c = ti;
                else c--
                if (opts.transition == 'vertical') {
                    check = false;
                    project.animate({
                        marginTop: -(c - 1) * opts.height
                    }, {
                        duration: opts.duration,
                        easing: opts.easing,
                        queue: false
                    });
                } else if (opts.transition == 'horizontal') {
                    check = false;
                    project.animate({
                        marginLeft: -(c - 1) * opts.width
                    }, {
                        duration: opts.duration,
                        easing: opts.easing,
                        queue: false
                    });
                }
                else if (opts.transition == 'fade') fade();
                else slide();
                if (opts.display_ctrl == true) {
                    ctrl.removeClass(opts.active_class);
                    ctrl.eq(c - 1).addClass(opts.active_class);
                }
            }

         function auto_slide() {
                if (delay > 0) {
                    clearInterval(timer);
                    timer = setInterval(function () {
                        next();
                    }, delay);
                }
            }
        function stop_timer() {
                clearInterval(timer);
            }
        auto_slide();
    };

})(jQuery);


/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
    def: 'easeOutQuad',
    swing: function (x, t, b, c, d) {
        //alert(jQuery.easing.default);
        return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
    },
    easeInQuad: function (x, t, b, c, d) {
        return c*(t/=d)*t + b;
    },
    easeOutQuad: function (x, t, b, c, d) {
        return -c *(t/=d)*(t-2) + b;
    },
    easeInOutQuad: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t + b;
        return -c/2 * ((--t)*(t-2) - 1) + b;
    },
    easeInCubic: function (x, t, b, c, d) {
        return c*(t/=d)*t*t + b;
    },
    easeOutCubic: function (x, t, b, c, d) {
        return c*((t=t/d-1)*t*t + 1) + b;
    },
    easeInOutCubic: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t*t + b;
        return c/2*((t-=2)*t*t + 2) + b;
    },
    easeInQuart: function (x, t, b, c, d) {
        return c*(t/=d)*t*t*t + b;
    },
    easeOutQuart: function (x, t, b, c, d) {
        return -c * ((t=t/d-1)*t*t*t - 1) + b;
    },
    easeInOutQuart: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
        return -c/2 * ((t-=2)*t*t*t - 2) + b;
    },
    easeInQuint: function (x, t, b, c, d) {
        return c*(t/=d)*t*t*t*t + b;
    },
    easeOutQuint: function (x, t, b, c, d) {
        return c*((t=t/d-1)*t*t*t*t + 1) + b;
    },
    easeInOutQuint: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
        return c/2*((t-=2)*t*t*t*t + 2) + b;
    },
    easeInSine: function (x, t, b, c, d) {
        return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
    },
    easeOutSine: function (x, t, b, c, d) {
        return c * Math.sin(t/d * (Math.PI/2)) + b;
    },
    easeInOutSine: function (x, t, b, c, d) {
        return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
    },
    easeInExpo: function (x, t, b, c, d) {
        return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
    },
    easeOutExpo: function (x, t, b, c, d) {
        return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
    },
    easeInOutExpo: function (x, t, b, c, d) {
        if (t==0) return b;
        if (t==d) return b+c;
        if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
        return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
    },
    easeInCirc: function (x, t, b, c, d) {
        return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
    },
    easeOutCirc: function (x, t, b, c, d) {
        return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
    },
    easeInOutCirc: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
        return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
    },
    easeInElastic: function (x, t, b, c, d) {
        var s=1.70158;var p=0;var a=c;
        if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
        if (a < Math.abs(c)) { a=c; var s=p/4; }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
    },
    easeOutElastic: function (x, t, b, c, d) {
        var s=1.70158;var p=0;var a=c;
        if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
        if (a < Math.abs(c)) { a=c; var s=p/4; }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
    },
    easeInOutElastic: function (x, t, b, c, d) {
        var s=1.70158;var p=0;var a=c;
        if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
        if (a < Math.abs(c)) { a=c; var s=p/4; }
        else var s = p/(2*Math.PI) * Math.asin (c/a);
        if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
        return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
    },
    easeInBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c*(t/=d)*t*((s+1)*t - s) + b;
    },
    easeOutBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158;
        return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
    },
    easeInOutBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158; 
        if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
        return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
    },
    easeInBounce: function (x, t, b, c, d) {
        return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
    },
    easeOutBounce: function (x, t, b, c, d) {
        if ((t/=d) < (1/2.75)) {
            return c*(7.5625*t*t) + b;
        } else if (t < (2/2.75)) {
            return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
        } else if (t < (2.5/2.75)) {
            return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
        } else {
            return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
        }
    },
    easeInOutBounce: function (x, t, b, c, d) {
        if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
        return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
    }
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
 */
