jQuery.noConflict();

jQuery(document).ready(function () {

    //Top button
    jQuery('a#top').click(function (e) {
        e.preventDefault();
        var target = (window.opera) ? (document.compatMode == 'CSS1Compat' ? jQuery('html') : jQuery('body')) : jQuery('html,body');
        target.animate({
            scrollTop: jQuery(jQuery(this).attr('href')).offset().top
        },
        500);
    });

    //GALLERY
    if (jQuery('div.gallery-image-hover').length > 0) {
        jQuery('div.gallery-image').hover(function () {
            jQuery(this).css('cursor', 'pointer').stop().animate({
                opacity: 0.01
            },
            {
                duration: 400
            });
        },
        function () {
            jQuery(this).stop().animate({
                opacity: 1
            },
            {
                duration: 400
            });
        });
    }

    //RCR - Rascals Content Rotator
    var rcr_delay = parseInt(jQuery('input#rcr_delay').val())
    var rcr_duration = parseInt(jQuery('input#rcr_duration').val())
    var rcr_easing = jQuery('input#rcr_easing').val();
    if (jQuery('div#fp-projects').length > 0) jQuery('div#fp-projects').rcr({
        'project_info': 'div.info',
        'delay': rcr_delay,
        'duration': rcr_duration,
        'easing': rcr_easing
    });

    //RCR - Rascals Dropdown Menu
    var show_rdm_arrows = jQuery('input#show_rdm_arrows').val();
    if (show_rdm_arrows == '') show_rdm_arrows = false;
    jQuery('ul#nav').rdm({
        'show_arrows': show_rdm_arrows,
        'duration': 400,
        'easing': 'easeOutQuart'
    });

    //RF - Rascals Forms
    var cp = jQuery('input#cp').val();
    if (jQuery('div#rf').length > 0) jQuery('div#rf').rf({
        'path': cp,
        'req_val': 'This field is required',
        'req_mail': 'Invalid email address',
        'req_question': 'Invalid answer!',
        'success': 'Thank you!',
        'error': 'Cant send message!',
        'sending': 'Sending please wait...'
    });

}) //end custom scripts

;(function ($) {

/* 
*  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
*  RF - Rascals Forms
*/

    jQuery.fn.rf = function (options) {
        var opts = jQuery.extend({
            'path': 'contact-form.php',
            'req_val': 'This field is required',
            'req_mail': 'Invalid email address',
            'req_question': 'Invalid answer!',
            'success': 'Thank you!',
            'error': 'Cant send message!',
            'sending': 'Sending please wait...'
        },
        options);

        function isEmpty(val) {
            var re = /\s/g;
            var str = val.replace(re, '');
            if (str.length == 0) {
                return true;
            } else {
                return false;
            }
        }

        function isEmail(val) {
            var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
            if (!val.match(re)) {
                return true;
            } else {
                return false;
            }
        }

        function f_check() {
            var f_check = false;
            var req_num = $('p.rf .req').size();

            $('p.rf .req').each(function (i) {
                if (isEmpty($(this).val())) {
                    $(this).next().text(opts.req_val).css('display', 'block');
                    return false;
                } else {
                    $(this).next().css('display', 'none');
                }
                if ($(this).is('.email')) {
                    if (isEmail($(this).val())) {
                        $(this).next().text(opts.req_mail).css('display', 'block');
                        return false;
                    } else {
                        $(this).next().css('display', 'none');
                    }
                }

                if ($('p.rf .req').size() == (i + 1)) f_check = true;

            });

            if (f_check == true) return true;
        }

        function inputs() {
            var inputs = new Object;

            $('p.rf .val').each(function (i) {
                var name = $(this).attr('name');
                var value = $(this).val();
                if (this.name != '') {
                    inputs[name] = value;
                }
            });
            return inputs;
        }

        function clear() {
            $('p.rf .val').each(function (i) {
                $(this).val('').next().css('display', 'none');
            });
        }

        $('#send').click(function () {
            if (f_check()) {
                $.ajax({
                    type: 'POST',
                    url: opts.path,
                    data: inputs(),
                    beforeSend: function (data) {
                        $('#send').attr('disabled', true);
                        $('.rf-submit span').html(opts.sending);
                    },
                    complete: function (data) {
                        $('#send').attr('disabled', false);
                    },
                    success: function (html) {
                        if (html == "bad_answer") {
                            $('p.rf .asq').val('').next().text(opts.req_question).css('display', 'block');
                            $('.rf-submit span').html('');
                        } else if (html == "success") {
                            clear();
                            $('.rf-submit span').html(opts.success);
                        } else {
                            $('.rf-submit span').html(opts.error);
                        }
                    },
                    error: function (html) {
                        $('.rf-submit span').html(opts.error);
                    }

                });
            }

        })

    };

})(jQuery); // confine scope

;(function ($) {

/* 
*  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
*  RDM - Rascals Dropdown Menu
*/

    jQuery.fn.rdm = function (options) {
        var opts = jQuery.extend({
            'show_arrows': true,
            'duration': 400,
            'easing': 'easeOutQuart'
        },
        options);

        $('a', this).removeAttr('title');
	
        if (opts.show_arrows) {
            $('li ul', this).each(function (i) {
                var arrow_width = 15;
                var menu_width = $(this).prev().width();
                $(this).prev().append('<span class="nav-arrow"></span>').css('width', (menu_width + arrow_width) + 'px');
            })
            $('li ul', this).find('span').toggleClass('nav-sub-arrow');
        }


        var overMenu = function () {
			
			var pos_nav = $('div#nav-container').offset();
			var end_nav = pos_nav.left + $('div#nav-container').width();
			var pos_sub = $(this).offset();
			var end_sub =  pos_sub.left + $(this).width(); 
			
			if(end_sub > end_nav) {	
           		$(this).find('ul').css('left', '-100%').addClass('right');
			} 
			
			$(this).find('ul:first').css({
                visibility: 'visible',
                display: 'none'
            }).slideDown({
                duration: opts.duration,
                easing: opts.easing
            });
        };

        var outMenu = function () {
            $(this).find('ul:first').fadeOut(400);
        };

        $('li', this).hoverIntent({
            sensitivity: 5,
            timeout: 500,
            over: overMenu,
            out: outMenu
        });

    };

})(jQuery); // confine scope

;(function ($) {

/* 
*  Copyright (c) 2009 Rascals - Interactive Laboratory http://www.rascals.eu
*  RCR - Rascals Content Rotator
*/

    jQuery.fn.rcr = function (options) {
        var opts = jQuery.extend({
            'project_info': 'div.info',
            'delay': 5,
            'duration': 2000,
            'easing': 'easeOutElastic'
        },
        options);
        var timer;

        var delay = opts.delay * 1000;

        var img = $(this).find('.projects:first'),
            ih = img.find('a:first').height() + parseInt(img.find('a:first').css('margin-bottom').replace('px', '')),
            c = 1,
            ti = img.children('a').size();

        $(opts.project_info + ':eq(0)').css('display', 'block');

        $('a#fp-prev-button').bind('click', function () {
            auto_slide();
            prev();
            return false;
        });
        $('a#fp-next-button').bind('click', function () {
            auto_slide();
            next();
            return false;
        });

        function prev() {
            l = c;

            if (c == 1) {
                c = ti;
            } else c--

            img.animate({
                marginTop: -(c - 1) * ih
            },
            {
                duration: opts.duration,
                easing: opts.easing,
                queue: false
            });

            $(opts.project_info + ':eq(' + (l - 1) + ')').css('display', 'none');
            $(opts.project_info + ':eq(' + (c - 1) + ')').css('display', 'block');

        }

        function next() {
            l = c;

            if (c == ti) {
                c = 1
            } else c++;

            img.animate({
                marginTop: -(c - 1) * ih
            },
            {
                duration: opts.duration,
                easing: opts.easing,
                queue: false
            });

            $(opts.project_info + ':eq(' + (l - 1) + ')').css('display', 'none');
            $(opts.project_info + ':eq(' + (c - 1) + ')').css('display', 'block');

        }

        auto_slide = function (f) {
            if (delay > 0) {
                clearInterval(timer);
                timer = setInterval(function () {
                    next();
                },
                delay);
            }
        }

        auto_slide();

    };

})(jQuery); // confine scope

/*
 * 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. 
 *
 */
 ;(function($){ // secure $ jQuery alias
/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
})(jQuery); // confine scope