// Custom Script
// Developed by: M.Junaid(junaidfx@gmail.com)
// CopyRights : http://wpthemesexperts.com
var customScripts = {
profile: function () {
var portfolio = jQuery('#portfolio');
var items = jQuery('.items', portfolio);
var filters = jQuery('.filters li a', portfolio);
items.imagesLoaded(function() {
items.isotope({
itemSelector: '.item',
layoutMode: 'fitRows',
transitionDuration: '0.7s'
});
});
filters.click(function(){
var el = jQuery(this);
filters.removeClass('active');
el.addClass('active');
var selector = el.attr('data-filter');
items.isotope({ filter: selector });
return false;
});
},
fancybox: function () {
// fancybox
jQuery(".fancybox").fancybox();
},
onePageNav: function () {
jQuery('#mainNav').onePageNav({
currentClass: 'active',
changeHash: false,
scrollSpeed: 950,
scrollThreshold: 0.2,
filter: '',
easing: 'swing',
begin: function () {
//I get fired when the animation is starting
},
end: function () {
//I get fired when the animation is ending
if(!jQuery('#main-nav ul li:first-child').hasClass('active')){
jQuery('.header').addClass('addBg');
}else{
jQuery('.header').removeClass('addBg');
}
},
scrollChange: function (jQuerycurrentListItem) {
//I get fired when you enter a section and I pass the list item of the section
if(!jQuery('#main-nav ul li:first-child').hasClass('active')){
jQuery('.header').addClass('addBg');
}else{
jQuery('.header').removeClass('addBg');
}
}
});
jQuery("a[href='#top']").click(function () {
jQuery("html, body").animate({ scrollTop: 0 }, "slow");
return false;
});
jQuery("a[href='#basics']").click(function () {
jQuery("html, body").animate({ scrollTop: jQuery('#services').offset().top - 75 }, "slow");
return false;
});
},
owlSlider: function () {
var owl = jQuery("#owl-demo");
owl.owlCarousel();
// Custom Navigation Events
jQuery(".next").click(function () {
owl.trigger('owl.next');
})
jQuery(".prev").click(function () {
owl.trigger('owl.prev');
})
},
bannerHeight: function () {
var bHeight = jQuery(".banner-container").height();
jQuery('#da-slider').height(bHeight);
jQuery(window).resize(function () {
var bHeight = jQuery(".banner-container").height();
jQuery('#da-slider').height(bHeight);
});
},
waySlide: function(){
/* Waypoints Animations
------------------------------------------------------ */
},
fitText: function(){
setTimeout(function() {
jQuery('h1.responsive-headline').fitText(1.2, { minFontSize: '16px', maxFontSize: '30px' });
}, 100);
},
init: function () {
customScripts.onePageNav();
customScripts.profile();
customScripts.fancybox();
customScripts.owlSlider();
customScripts.waySlide();
customScripts.fitText();
customScripts.bannerHeight();
}
}
jQuery(document).ready(function ($) {
customScripts.init();
$("div#pagination_blog").jPages({
containerID : 'post_container',
perPage : 4,
startPage : 1,
startRange : 1,
midRange : 5,
endRange : 1,
previous : 'Pre',
next : 'Next',
});
$(".contact_us_submit").on("click",function(e){
e.preventDefault();
var empty_field = false;
$(".form-validation").each(function(){
if( $.trim($(this).val()) == "")
{
$(this).next("span").text("Please Fill This Field").show();
if( empty_field == false )
{
empty_field = true;
}
}
else
{
$(this).next("span").text("").hide();
if( $(this).attr("id") == "email" )
{
if(!/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($(this).val()))
{
$(this).next("span").text("Invalid Email").show();
if( empty_field == false )
{
empty_field = true;
}
}
else
{
$(this).next("span").text("").hide();
}
}
}
});
if( empty_field == false )
{
$(".contact_us_loader").show();
$(".contact_us_submit").hide();
var data = $("#contect_us_form").serialize();
$.ajax({
type:"POST",
url:ajax_request_url,
data:data+"&action=contact_us_data",
success:function(resp){
$(".contact_us_loader").hide();
$(".contact_us_submit").show();
$(".contact_us_submit").next("span").html("
Message Sent").fadeIn("slow",function(){
setTimeout(function(){
$(".contact_us_submit").next("span").hide("slow");
},5000);
});
}
});
}
});
$('#about_us_readmore').on('click',function(e){
e.preventDefault();
if( $(this).attr('data-id') == 'read_more' ){
$('#aboutUs .dataTxt').slideDown('slow');
$(this).attr('data-id','less');
$(this).text('Less');
}
else
{
$('#aboutUs .dataTxt').slideUp('slow');
$(this).attr('data-id','read_more');
$(this).text('Read More');
}
});
$('#mainNav li:first').addClass('active');
$('#mainNav li a').addClass('scroll-link');
$("div#pagination").jPages({
containerID : "gallery_container",
perPage : 4,
startPage : 1,
startRange : 1,
midRange : 5,
endRange : 1,
previous : 'Pre',
next : 'Next',
});
if($("a[data-rel^='prettyPhoto']").length !== 0){
$("a[data-rel^='prettyPhoto']").prettyPhoto({
animation_speed:'normal',
theme:'pp_default',
slideshow:3000,
autoplay_slideshow: false,
social_tools:false,
});
}
/*----------------------------------------------------*/
/* gmaps
------------------------------------------------------*/
/* var map;
// main directions
map = new GMaps({
el: '#map', lat: 30.1978, lng: 71.4697, zoom: 14, zoomControl : true,
zoomControlOpt: { style : 'SMALL', position: 'TOP_LEFT' }, panControl : false, scrollwheel: false
});
// add address markers
map.addMarker({ lat: 30.1978, lng: 71.4697, title: 'Wpthemesexperts.com',
infoWindow: { content: '
Wpthemesexperts.com
' } });*/ jQuery('#main-slider').flexslider({ namespace : "flex-", //{NEW} String: Prefix string attached to the class of every element generated by the plugin selector : ".slides > li", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril animation : "fade", //String: Select your animation type, "fade" or "slide" easing : "swing", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported! direction : "horizontal", //String: Select the sliding direction, "horizontal" or "vertical" reverse : false, //{NEW} Boolean: Reverse the animation direction animationLoop : true, //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end smoothHeight : false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode startAt : 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide) slideshow : true, //Boolean: Animate slider automatically slideshowSpeed : 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds animationSpeed : 600, //Integer: Set the speed of animations, in milliseconds initDelay : 0, //{NEW} Integer: Set an initialization delay, in milliseconds randomize : false, //Boolean: Randomize slide order // Usability features pauseOnAction : true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended. pauseOnHover : false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering useCSS : true, //{NEW} Boolean: Slider will use CSS3 transitions if available touch : true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices video : false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches // Primary Controls controlNav : true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage directionNav : true, //Boolean: Create navigation for previous/next navigation? (true/false) prevText : "Previous", //String: Set the text for the "previous" directionNav item nextText : "Next", //String: Set the text for the "next" directionNav item // Secondary Navigation keyboard : true, //Boolean: Allow slider navigating via keyboard left/right keys multipleKeyboard : false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present. mousewheel : false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel pausePlay : false, //Boolean: Create pause/play dynamic element pauseText : 'Pause', //String: Set the text for the "pause" pausePlay item playText : 'Play', //String: Set the text for the "play" pausePlay item // Special properties controlsContainer : "", //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be ".flexslider-container". Property is ignored if given element is not found. manualControls : "", //Selector: Declare custom control navigation. Examples would be ".flex-control-nav li" or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs. sync : "", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care. asNavFor : "", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider }); });