(function($) {
  $.fn.kshide = function() {

    return this.each(function() {
        var obj = $(this);
        var link = obj.children("a");
        var list = obj.children("ul");
        list.hide();

        link.toggle(
                function() {
                    $(list).show("fast");
                },
                function() {
                    $(list).hide("fast");
                });
    });
  }
})(jQuery);

$(document).ready(function(){
    
    $('.menu ul li').find(':last-child').addClass('last');
    $("a[rel^='prettyPhoto']").prettyPhoto();
    $('#logoStrips').cycle({
        fx: 'fade',
        timeout: 4000,
        cleartypeNoBg: true
    });
    $(".tog").kshide();
    $('#sidebar ul.menu li a.active').parents('li.expanded').children('ul.menu').show();
    $('#searchInput').focus(function(){
       if($(this).val()=='search') $(this).val('');
    });
    $('#searchInput').blur(function(){
       if($(this).val()=='') $(this).val('search');
    });
    $('#main').fadeTo(200, 0.9);
    if($('#sidebar .menu ul li a.active').parents('ul').parents('li').hasClass('expanded')) {
        var linkText=$('#sidebar .menu ul li a.active').parents('ul').siblings('a').text();
        var linkHref=$('#sidebar .menu ul li a.active').parents('ul').siblings('a').attr('href');
        $('<span class="breadcrumb-link"><a href="'+linkHref+'">'+linkText+'</a></span>').insertAfter('.breadcrumbs .breadcrumb-link:first');
    }

    if($('#header .menu ul li a.active').parents('ul').parents('li').hasClass('expanded') && !$('#header .menu ul li a.active').parents('li').hasClass('first')) {
        linkText=$('#header .menu ul li a.active').parents('ul').siblings('a').text();
        linkHref=$('#header .menu ul li:first a.active').parents('ul').siblings('a').attr('href');
        $('<span class="breadcrumb-link"><a href="'+linkHref+'">'+linkText+'</a></span>').insertAfter('.breadcrumbs .breadcrumb-link:first');
    }

    $('#headerSearch').submit(function(){
        if($('#searchInput').val()=='' || $('#searchInput').val()=='search') {
            alert('Please enter a keyword.')
        } else {
            pathArray = window.location.href.split( '/' );
            host = pathArray[2];
            document.location.href='http://'+pathArray[2]+'/search/node/'+$('#searchInput').val();
        }
    });

    $('#header ul.menu li a').each(function() {
        var set=$(this).width()+36;
        if(!$(this).parents('li').parents('ul').parents('li').hasClass('expanded')) {
            $(this).parents('li').width(set);
        }
    });

});

function isValidEmail(email){
    var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/
    if(RegExp.test(email)){
        return true;
    }else{
        return false;
    }
}
function resetForm(){
    $('#contactForm input[type=text], #contactForm textarea').val('');
    $('#cAttachment').val('');
    $('#errorMessage').slideUp('fast');
    $('#contactForm input[type=text], #contactForm textarea').removeClass('highlight');
    $('#file-uploader').html('');
    var uploader = new qq.FileUploader({
        // pass the dom node (ex. $(selector)[0] for jQuery users)
        element: document.getElementById('file-uploader'),
        debug: false,
        multiple: false,
        action: '/sites/all/themes/rubik/cube/uploader/server/php.php',
        onComplete: function(id, fileName, responseJSON){
            if(responseJSON['success']){
                $('#cAttachment').val(fileName);
                $('.qq-upload-button').slideUp('300');
            }
        }
    });
}
function submitForm(){
    $('#contactForm input[type=text], #contactForm textarea').removeClass('highlight');
    $('#errorMessage').slideUp('fast');
    var toEmail=$('input[name=type]:checked').val();
    //alert(toEmail);
    var attachment=$('#contactForm input#cAttachment').val();
    var name='#contactForm input#cName';
    var email='#contactForm input#cEmail';
    var organisation='#contactForm input#cOrganisation';
    var subject='#contactForm input#cSubject';
    var message='#contactForm textarea#cMessage';
    var errors=new Array();
    var haveErrors=0;
    var pars;
    var errMsg='Please fill in all highlighted fields. ';
    if($(name).val()==''){
        errors.push(name);
        haveErrors=1;
    }
    if($(email).val()=='' || !isValidEmail($(email).val())){
        errors.push(email);
        haveErrors=1;
        errMsg+='Make sure the email address is valid!';
    }
    if($(subject).val()==''){
        errors.push(subject);
        haveErrors=1;        
    }
    if($(message).val()==''){
        errors.push(message);
        haveErrors=1;
    }
    if(haveErrors==1){
        for(field in errors){
            $(errors[field]).addClass('highlight');
        }
        showError(errMsg);
    } else {
        $('#sendingMail').css('display', 'inline');
        pars='&toEmail='+toEmail;
        pars+='&attachment='+attachment;
        pars+='&name='+$(name).val();
        pars+='&email='+$(email).val();
        pars+='&organisation='+$(organisation).val();
        pars+='&subject='+$(subject).val();
        pars+='&message='+$(message).val();
        var url='/sites/all/themes/rubik/cube/ajax/contactus.php';
        $.post(url, pars, contactUsResponse);
    }
}
function contactUsResponse(data){
    $('#sendingMail').css('display', 'none');
    if(data=="ok"){
        cSuccess();
    } else {
        showError(data);
    }
}
function showError(msg){
    $('#sendingMail').css('display', 'none');
    $('#errorMessage').text(msg);
    $('#errorMessage').slideDown('fast');
}
function cSuccess(){
    $('#sendingMail').css('display', 'none');
    $('#successMessage').text('Thank you for contacting us! We will get back to you about your enquiry shortly.').slideDown('fast');
    resetForm();
    setTimeout("$('#successMessage').slideUp('fast')", 5000);
}
