// remap jQuery to $
(function($){})(window.jQuery);

/* optional triggers */
$(window).load(function() {

});

$(window).resize(function() {
	
});


/* trigger when page is ready */
$(document).ready(function(){

    /*js drop down from: http://www.noupe.com/tutorial/drop-down-menu-jquery-css.html*/
    //$("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled (Adds empty span tag after ul.subnav*)
    $("ul.topnav li").mouseenter(function() {

        //Following events are applied to the subnav itself (moving subnav up and down)
        $(this).find("ul.subnav").slideDown('fast').show();
        //Drop down the subnav on click
        $(this).mouseleave(function(){
            $(this).find("ul.subnav").slideUp('fast', function(){
                $(this).clearQueue();
            });
        });

    });


    /*Quote form opener in Fancybox*/
    $(".open_quote_form").fancybox({
        'scrolling'		: 'no',
        'titleShow'		: false,
        'transitionIn'	: 'elastic',
        'transitionOut'	: 'elastic',
        'hideOnOverlayClick' : false,
        'padding'       : 0,
        'overlayColor': '#eee',
        'type': 'inline',
        'href': '#quote_form'
    });
    /*Quote form validation & processing*/
    $("#quote_form").bind("submit", function(e) {
        e.preventDefault();
        $(this).ajaxSubmit({
            type	: 'POST',
            iframe  : true,
            dataType: 'json',
            beforeSubmit: function(){
                //TODO: client side validation
                $.fancybox.showActivity();
            },
            success : function(resp){
                $.fancybox.hideActivity();
                quoteFormResponse(resp);
            }
        });
        return false;
    });


    /*JOB form opener in Fancybox*/
    $(".open_job_form").fancybox({
        'scrolling'		: 'no',
        'titleShow'		: false,
        'transitionIn'	: 'elastic',
        'transitionOut'	: 'elastic',
        'hideOnOverlayClick' : false,
        'padding'       : 0,
        'overlayColor': '#eee',
        'type': 'inline',
        'href': '#job_form',
        'onClosed'		: function() {

        }
    });
    /*JOB form validation & processing*/
    $("#job_form").bind("submit", function(e) {
        e.preventDefault();
        $(this).ajaxSubmit({
            type	: 'POST',
            iframe  : true,
            dataType: 'json',
            beforeSubmit: function(){
                //TODO: client side validation
                $.fancybox.showActivity();
            },
            success : function(resp){
                $.fancybox.hideActivity();
                jobFormResponse(resp);
            }
        });
        return false;
    });

});

/**
 * IE6-7 notice
 */
$(function(){

	var ie6_notice = getCookie("ie6_notice");
    if(!ie6_notice) $('.ie6_notice').show();

	$('.ie6_close').click(function(e){
		e.preventDefault();
		if($('#no_more:checked').val()!= null) {
		    setCookie('ie6_notice', 'close', 365);
		}
		$('.ie6_notice').hide();
	});
});

function setCookie(c_name,value,expiredays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toUTCString()+";path=/");
}

function getCookie(c_name) {
    if (document.cookie.length>0)
      {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
        {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
        }
      }
    return "";
}

/**
 * Gets object as response from server and shows erorr or thankyou message
 * @param resp
 */
function quoteFormResponse(resp){

    if($.type(resp) !== 'object'){
        alert('Error server response:\n'+resp+'\n\nPlease contact web administrator.');
        return false;
    }

    var msg = 'Check highlighted fields for errors:';

    //clear errors
    $.each($('#quote_form').serializeArray(), function(i, obj){
        $('#'+obj.name).removeClass('error');
    });
    $('#form_error').hide();

    //Error
    if(resp.status != 1){
        $.each(resp.errors, function(field, error){
            $('#'+field).addClass('error');
        });

        if(resp.errors.attachments) msg = resp.errors.attachments;
        if(resp.errors.mail) msg = resp.errors.mail;

        $('#form_error').show().html(msg);
    }
    //Success - thankyo message
    else{
        $('#quote_form').reset(); //reset form
        $('input:file').MultiFile('reset') //reset files

        $.fancybox({
            'scrolling'		: 'no',
            'titleShow'		: false,
            'transitionIn'	: 'elastic',
            'transitionOut'	: 'elastic',
            'hideOnOverlayClick' : true,
            'padding'       : 0,
            'overlayColor'  : '#eee',
            'content'       : resp.thankyou
        });
    }
}

/**
 * Gets object as response from server and shows erorr or thankyou message
 * @param resp
 */
function jobFormResponse(resp){

    if($.type(resp) !== 'object'){
        alert('Error server response:\n'+resp+'\n\nPlease contact web administrator.');
        return false;
    }
    var msg = 'Check highlighted fields for errors:';

    //clear errors
    $.each($('#job_form').serializeArray(), function(i, obj){
        $('#'+obj.name).removeClass('error');
    });
    $('#job_form_error').hide();

    //Error
    if(resp.status != 1){
        $.each(resp.errors, function(field, error){
            $('#'+field).addClass('error');
        });

        if(resp.errors.job_attachments) msg = resp.errors.job_attachments;
        if(resp.errors.mail) msg = resp.errors.mail;

        $('#job_form_error').show().html(msg);
    }
    //Success - thankyo message
    else{
        $('#job_form').reset(); //reset form
        $('input:file').MultiFile('reset') //reset files

        $.fancybox({
            'scrolling'		: 'no',
            'titleShow'		: false,
            'transitionIn'	: 'elastic',
            'transitionOut'	: 'elastic',
            'hideOnOverlayClick' : true,
            'padding'       : 0,
            'overlayColor'  : '#eee',
            'content'       : resp.thankyou
        });
    }

}
