jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}


$.blockUI.defaults.css = {}

var signUpModalCSS = {
    position: 'absolute',
    top: '187px',
    width: '576px',
    height: '184px',
    textAlign: 'left',
    border: 'none',
    cursor: 'default',
    backgroundColor: 'transparent',
    clear: 'both'
};

if( /MSIE 6/.test(navigator.userAgent) ) {
    var signUpDialogContentShortCSS = {
        height: "118px"
    }

    var signUpDialogContentLongCSS = {
        height: "182px"
    }
} else {
    var signUpDialogContentShortCSS = {
        minHeight: "118px"
    }

    var signUpDialogContentLongCSS = {
        minHeight: "182px"
    }
}

// sign-up dialog
$(document).ready( function() {
    $("#sign_up_form").submit( function() {
        sign_up_button_click();

        return false;
    } );
    $("#menu .menu-item-sign_up a").click( openSignUpModal );
    $("#facebook-ad a.sign-up-link").click( openSignUpModal ); 


    $("#sign-up-email").addClass('default-value');

    $("#sign-up-email").one( 'keydown', function() { $(this).removeClass('default-value').val("") } );
    $("#sign-up-email").one( 'mouseenter', function() { if( $(this).hasClass('default-value') ) $(this).removeClass('default-value').val("") } );
} );
      
function openSignUpModal() {
    $("#sign-up-dialog-content").css( signUpDialogContentLongCSS );
    $("#sign-up-dialog-content form").show();
    $("#sign-up-dialog-thank-you").hide();
    $("#sign-up-dialog-request").show();

    signUpModalCSS['left'] = Math.ceil( ($(document).width() / 2) - 288 ) + "px";
    $("#sign-up-dialog a.modal-close").click( function() {
        $.unblockUI();
        return false;
    } );

    $.blockUI( { message: $("#sign-up-dialog"), css: signUpModalCSS, centerY: false, overlayClickUnblock: true } );

    
    // fix position
    if( /MSIE/.test(navigator.userAgent) && ! /MSIE 7/.test(navigator.userAgent) ) {
        $(".blockUI.blockMsg.blockPage").css( { top: "187px", left: Math.ceil( ($(document).width() / 2) - 298 ) + "px"  } );
    }

    return false;
}



function thankYou( message ) {
    $("#sign-up-dialog-thank-you p").text(message);
    
    $("#sign-up-dialog-content").animate( signUpDialogContentShortCSS, "fast", "swing", function() { 
        $("#sign-up-dialog-content form").hide();
        $("#sign-up-dialog-message").hide();

        $("#sign-up-dialog-request").fadeOut("fast", function() {
            $("#sign-up-dialog-thank-you").fadeIn();
        } );
    } );
    
}

function isEmail( email ) {
    // var pattern=/^(?:[a-zA-Z0-9_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9-]+\.)+(?:[a-zA-Z]){2,}\.?)$/;
    var pattern = /^.*@.*$/;
    return pattern.test(email);
}

function sign_up_alert( message ) {
    var color = $("#sign-up-email").css('color');

    if (message != null) {
        $("#sign-up-dialog-message").text(message);
    }
    
    $("#sign-up-dialog-message:hidden").slideDown("fast");

    $("#sign-up-email").animate( { color: "red" }, 750).animate( { color: color }, 750 );
}

function sign_up_button_click() {
    if( !isEmail( $("#sign-up-email").val() ) ) {
        sign_up_alert( "Please, insert a valid email address!" );
        return;
    }
    
    button = document.getElementById('sign_up_button_submit');
    sync_post_form(button, "sign-up-dialog-message|sign-up-dialog-message");
    button.disabled = false;
    
    if (window.atteq.xajax.return_value) {
        sign_up_alert();
        return;
    }
    
    thankYou("You have been successfully added to our database. We will keep you informed with the latest news on Tunnelers beta test. Thank you for your support.");
}


// forum 

function initForumForm(submit_only_by_button) {
    $(document).ready( function() {

        $("#discussion_comment_form input[type='text']").filter("[value='']").each(initCommentInputs);
        $("#discussion_comment_form textarea:empty").each( initCommentInputs );

        $("#text").attr("tabindex",1);
        $("#nick").attr("tabindex",2);
        $("#discussion_comment_form input[type='submit']").attr("tabindex",3);


        $("#discussion_comment_form .button-hover").hover(
            function() { $(this).css('backgroundPosition','0 -33px' ); },
            function() { $(this).css('backgroundPosition','0 0' ) }
        );

        if( /MSIE 6/.test(navigator.userAgent) ) {
            $("#discussion_comment_form input.type-submit" ).click( function() { $("#main-wrapper").height( $("#main-wrapper").height() + 245 ); $("#footer").css('bottom','0'); } );
        }

        if (submit_only_by_button) {
            $("#discussion_comment_form").unbind( 'submit' );
            $("#discussion_comment_form").submit( function() {
                $("#discussion_comment_form input.type-submit" ).click();
                return false;
            } );
        }
            
    } );

}

function initCommentInputs() {
    $(this).blur( function() {
        if( $(this).val() == "" ) {
            fromLabelToInput( this );
        }
    } );
    
    fromLabelToInput( this );
}

function fromLabelToInput( el ) {
    $(el).val( $("#discussion_comment_form label[for='"+$(el).attr('name')+"']").text() )
        .addClass("value-default")
        .bind( 'mouseenter', intel_form_input_mouseenter )
        .bind( 'mouseleave', intel_form_input_mouseleave )
        .one( 'focus', intel_form_input_activity );
}

function intel_form_input_mouseenter( ev ) {
    if( $(this).hasClass("value-default") ) {
        $(this).val("");
    }
}

function intel_form_input_mouseleave( ev ) {
    if( $(this).hasClass("value-default") ) {
       $(this).val( $(this).parents('form').find("label[for='"+$(this).attr('name')+"']").text() );   
    }
}

function intel_form_input_activity( ev ) {
    $(this).removeClass( 'value-default')
        .unbind( 'mouseenter', intel_form_input_mouseenter )
        .unbind( 'mouseleave', intel_form_input_mouseleave )
        .addClass( 'value-filled-in' )
    $(this).val("");
}


// custom select
function makeCustomSelect( el ) {
    if( $(el).is("select") ) {
        var $selekt = $("<div class='selekt custom-selekt'>");
        var $selektRollout = $("<div class='selekt-rollout custom-selekt' style='display:none'>");
        $selekt.append( $("option:selected",el).text() );
        
        $selektRollout.append("<ul></ul>");

        $("option",el).each( function(index) {
            var selected = "";
            if( $(this).is(':selected') ) {
                selected='hover selected ';
            }

            $("ul",$selektRollout).append( "<li class='"+selected+"custom-selekt custom-selekt-option-"+index+"'>"+$(this).text()+"</li>");
        } );
        
        $(el).before($selekt).hide();
        $selekt.after($selektRollout);

        custom_selekt_resize( $selekt );
       
        $selekt.click( custom_selekt_click );
        $("ul li", $selektRollout )
            .mouseenter( custom_selekt_item_mouseenter )
            .click( custom_selekt_item_click );

        $(window).resize( function() { custom_selekt_resize($selekt) } );

    }
}

function custom_selekt_resize( $selekt ) {
    var offset = $selekt.offset();
    var top = offset.top + $selekt.outerHeight();

    try{
        if( this_is_so_wrong ) {
            var off = $("#left").offset();
            offset.left = offset.left - off.left + 1;
        }
    } catch(e) {}

    $selektRollout = $selekt.next('.selekt-rollout');
    $selektRollout.css( { position: 'absolute', top: top, left: offset.left } );
}

function custom_selekt_click( ev ) {
    var $rollout = $(ev.target).next('.selekt-rollout');
    if( $rollout.is(":hidden") ) {
        $("body").bind( 'click', { rollout: $rollout }, custom_selekt_body_click );
        $rollout.slideDown("fast");
    } else {
        custom_selekt_roll_up( $rollout );
    }

}

function custom_selekt_roll_up( $el ) {
    $("li.hover", $el).removeClass( "hover");
    $("li.selected", $el).addClass( "hover" );

    $("body").unbind( 'click', custom_selekt_body_click );

    $el.slideUp("fast" );
}

function custom_selekt_body_click( ev ) {
    if( ! $(ev.target).hasClass( "custom-selekt" ) ) {
        custom_selekt_roll_up( $(ev.data.rollout) );
    }
}

function custom_selekt_item_mouseenter( ev ) {
    $(ev.target).siblings(".hover").removeClass('hover');
    $(ev.target).addClass("hover");
}

function custom_selekt_item_click( ev ) {
    $(ev.target).siblings(".selected").removeClass('selected');
    $(ev.target).addClass("selected");

    $("#contact-subject").val( $(ev.target).text() );
    $(".selekt").text( $(ev.target).text() );

    custom_selekt_roll_up( $(ev.target).parent().parent() );
}



function makeCustomFileInput( el ) {
    $(el).css( 'opacity', '0.0' );
    $(el).wrap("<div class='custom-file-input-wrap'></div>");

    $filer = $("<div class='custom-file-input'></div>");
    $filer.append("<div class='custom-file-browse'>attach a file</div>");
    $filer.append("<div class='custom-file-value'>"+$(el).val()+"</div>");

    $filer.insertBefore( el );

    $(el).change( function() {
            $('.custom-file-value', $(this).parent() ).text( $(this).val() );
    } );

    $('.custom-browse').css( 'font-size', $(el).css( 'font-size' ) );
    $(el).height( $filer.height() );

    var height = $filer.height()+'px';
    $(el).css( { position: 'relative', top: '-'+height } );

    $(el).parent().css( { height: height, overflow: 'hidden' } );
}


function makeCustomCheckbox( el ) {
    $(el).hide();

    $cheker = $("<div class='cheker'></div>");

    if( $(el).is(':checked') ) {
        $cheker.addClass( 'checked' );
    } else {
        $cheker.addClass( 'unchecked' );
    }

    $(el).after( $cheker );

    $cheker.click( function() {
        if( $(el).is(':checked') ) {
            $cheker.addClass( 'unchecked' ).removeClass('checked');
            $(el).attr( 'checked', false );
        } else {
            $cheker.addClass( 'checked' ).removeClass('unchecked');
            $(el).attr( 'checked', 'checked' );
        }
    } );
}

function forumTopicsInit() {
    $("#forum-topics tr").hover(
        function() {
            $(this).addClass('hover');
        },
        function() {
            $(this).removeClass('hover');
        }
     ).click( function() {
        location.href = $("td.title a", this).attr('href');
     } );

}

function footerMenuInit() {
    $(document).ready( function() {
        $("#footer-wrapper a:not([class$='selected']) img").hover(
            function() {
                var src = $(this).attr('src');
                $(this).attr( 'src', src.replace('.png', '-hover.png') );
            },
            function() {
                var src = $(this).attr('src');
                $(this).attr( 'src', src.replace('-hover', '') );
            } );
    } );
}

function mainMenuInit() {
    
    //  hover 
    $(document).ready( function() {
        $("#menu ul li:not([class$='selected']) a img").each( function() {
            $(this).hover(
                function() { 
                    var src = $(this).attr("src");
                    $(this).attr( "src", src.replace(".png","-hover.png") );
                },
                function() {
                    var src = $(this).attr("src");
                    $(this).attr( "src", src.replace("-hover","") );
                } );
        } );
    } );
}


// opera maked mess with buttons and inputs padding
if( $.browser.opera ) {
    $(document).ready( function() {
        $("#sign_up_button_submit").css({ paddingTop: '8px' } );
        $("#sign-up-email").css({paddingTop:'0',height: '29px'});
        $("#contact-form input[type='text']").css({paddingTop:'0',height: '30px'});
    } );
}

