/**
 * jQuery.timers - Timer abstractions for jQuery
 * Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
 * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
 * Date: 2009/10/16
 *
 * @author Blair Mitchelmore
 * @version 1.2
 *
 **/
jQuery.fn.extend({
    everyTime: function (interval, label, fn, times) {
        return this.each(function () {
            jQuery.timer.add(this, interval, label, fn, times);
        });
    },
    oneTime: function (interval, label, fn) {
        return this.each(function () {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },
    stopTime: function (label, fn) {
        return this.each(function () {
            jQuery.timer.remove(this, label, fn);
        });
    }
});
jQuery.extend({
    timer: {
        global: [],
        guid: 1,
        dataKey: "jQuery.timer",
        regex: /^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,
        powers: {
            ms: 1,
            cs: 10,
            ds: 100,
            s: 1000,
            das: 10000,
            hs: 100000,
            ks: 1000000
        },
        timeParse: function (value) {
            if (value == undefined || value == null) {
                return null;
            }
            var result = this.regex.exec(jQuery.trim(value.toString()));
            if (result[2]) {
                var num = parseFloat(result[1]);
                var mult = this.powers[result[2]] || 1;
                return num * mult;
            } else {
                return value;
            }
        },
        add: function (element, interval, label, fn, times) {
            var counter = 0;
            if (jQuery.isFunction(label)) {
                if (!times) {
                    times = fn;
                }
                fn = label;
                label = interval;
            }
            interval = jQuery.timer.timeParse(interval);
            if (typeof interval != "number" || isNaN(interval) || interval < 0) {
                return;
            }
            if (typeof times != "number" || isNaN(times) || times < 0) {
                times = 0;
            }
            times = times || 0;
            var timers = jQuery.data(element, this.dataKey) || jQuery.data(element, this.dataKey, {});
            if (!timers[label]) {
                timers[label] = {};
            }
            fn.timerID = fn.timerID || this.guid++;
            var handler = function () {
                if ((++counter > times && times !== 0) || fn.call(element, counter) === false) {
                    jQuery.timer.remove(element, label, fn);
                }
            };
            handler.timerID = fn.timerID;
            if (!timers[label][fn.timerID]) {
                timers[label][fn.timerID] = window.setInterval(handler, interval);
            }
            this.global.push(element);
        },
        remove: function (element, label, fn) {
            var timers = jQuery.data(element, this.dataKey),
                ret;
            if (timers) {
                if (!label) {
                    for (label in timers) {
                        this.remove(element, label, fn);
                    }
                } else {
                    if (timers[label]) {
                        if (fn) {
                            if (fn.timerID) {
                                window.clearInterval(timers[label][fn.timerID]);
                                delete timers[label][fn.timerID];
                            }
                        } else {
                            for (var fn in timers[label]) {
                                window.clearInterval(timers[label][fn]);
                                delete timers[label][fn];
                            }
                        }
                        for (ret in timers[label]) {
                            break;
                        }
                        if (!ret) {
                            ret = null;
                            delete timers[label];
                        }
                    }
                }
                for (ret in timers) {
                    break;
                }
                if (!ret) {
                    jQuery.removeData(element, this.dataKey);
                }
            }
        }
    }
});
jQuery(window).bind("unload", function () {
    jQuery.each(jQuery.timer.global, function (index, item) {
        jQuery.timer.remove(item);
    });
});

/*
	Name: Scripts.js
	Date: August 2010
	Description: Homepage Scripts for Seventhman's website.
	Version: 1.0
	Coder: Enrique Ramirez
	Coder URI: http://enrique-ramirez.com
*/
var $j = jQuery.noConflict();
$j(document).ready(function () {
    $j(".hentry").parents("body").find(".menu-item-34").addClass("current-menu-item");
    $j(".work-post").parents("body").find(".menu-item-34").removeClass("current-menu-item");
    $j(".work-post").parents("body").find(".menu-item-66").addClass("current-menu-item");
    $j("#slider .tabs li:first-child").addClass("active");
    $j("#slider .slides li").hide();
    $j("#slider .slides li:first-child").show();
    $j("#slider .tabs li a").live("click", function () {
        var slide = $j(this).attr("href");
        $j("#slider .tabs li").removeClass("active");
        $j("#slider .tabs a[href='" + slide + "']").parent().addClass("active");
        $j("#slider .slides li").fadeOut(500);
        $j(slide).fadeIn(1800);
        return false;
    });
    $j("#slider").everyTime(10000, function (i) {
        var checkCurrent = $j("#slider .main .active");
        if (checkCurrent.is(":last-child")) {
            $j("#slider .main li:first-child").find("a").click();
        } else {
            $j(checkCurrent).next().find("a").click();
        }
    });
    $j("#services .tabs li:first-child").addClass("active");
    $j("#services .slide").hide();
    $j("#services #outsourcing-consulting").show();
    $j("#services .tabs li a").live("click", function () {
        var selectedSlide = $j(this).attr("href");
        $j("#services .tabs li").removeClass("active");
        $j(this).parent().addClass("active");
        $j("#services .slide").hide();
        $j(selectedSlide).show();
        return false;
    });
    var url = document.location.toString();
    if (url.match("#")) {
        var urlAnchor = url.split("#")[1];
        $j("#services .tabs li").removeClass("active");
        $j("#services .tabs li a[href$='" + urlAnchor + "']").parent().addClass("active");
        $j("#services .slide").hide();
        $j("#" + urlAnchor).show();
        $j("#service").animate({
            scrollTop: 0
        }, 0);
    }
    var name = $j("#contact_name");
    var email = $j("#contact_email");
    var phone = $j("#contact_phone");
    var message = $j("#contact_message");
    $j("#contact-form .input").append('<span class="message" />');
    $j("#contact_name").blur(validateName);
    $j("#contact_email").blur(validateEmail);
    $j("#contact_phone").blur(validatePhone);
    $j("#contact_message").blur(validateMessage);
    $j("#contact-form").submit(function () {
        if (validateName() & validateEmail() & validatePhone() & validateMessage()) {
            return true;
        } else {
            return false;
        }
    });

    function validateName() {
        if (name.val().length < 2 || name.val() == "Name") {
            name.parent().addClass("error");
            name.parent().children(".message").text("Please enter a valid Name.");
            return false;
        } else {
            name.parent().removeClass("error");
            name.parent().children(".message").text("");
            return true;
        }
    }
    function validateEmail() {
        var a = $j("#contact_email").val();
      //  var filter = /^((([a-z]|\d|[!#\$j%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$j%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$j/;
        if (a.length > 7 && a.indexOf('@') != -1) {
            email.parent().removeClass("error");
            email.parent().children(".message").text("");
            return true;
        } else {
            email.parent().addClass("error");
            email.parent().children(".message").text("Please use a valid E-mail.");
            return false;
        }
    }
    function validatePhone() {
        var a = $j("#contact_phone").val();
        var filter = /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$j/;
        
		if (a.length > 6) {
            phone.parent().removeClass("error");
            phone.parent().children(".message").text("");
            return true;
        } else {
            phone.parent().addClass("error");
            phone.parent().children(".message").text("Please enter a valid Phone.");
            return false;
        }
    }
    function validateMessage() {
        if (message.val().length < 10) {
            message.parent().addClass("error");
            message.parent().children(".message").text("Please write a message longer than 10 characters.");
            return false;
        } else {
            message.parent().removeClass("error");
            message.parent().children(".message").text("");
            return true;
        }
    }
});
