/****************************
Global variables
****************************/
var Validation = {};
var dialogBoxer;
var ieDialog;

$(document).ready(function() {

    try {

        $(".tab").tabs();

        // Remove last divider from tabview if alternativeFooterText is empty
        $('.tab .ui-tabs-panel').each(function(i) {

            var alternativeFooterContainer = $(this).find('.g1alternativeFooter');
            var alternativeFooter = alternativeFooterContainer.find('div');

            if (alternativeFooter.html().length <= 2) {
                $(this).find('li:last-child').addClass('last');
                alternativeFooterContainer.css('display', 'none');
            }
        });

        //Small classes
        $('.emptyonclick').emptyonclick();

        /*$('.notify').equalHeights();
        $('.b3').equalHeights();
        $('.e2').equalHeights();
        $('.equalize_a').equalHeights();*/

        // if notification message is being shown, add ability to remove it
        $('.message p').after("<p class='close'>Close</p>");
        $('.message .close').click(function() {
            $('.notification').fadeOut("slow");
            $.ajax({ url: location + '?ShowNotification=false', success: function() { } });
        });
        $('.subMainContentCenter table').each(function(i) {
            $(this).find('tr:first').addClass('Head');
        });
        $('.subMainContentCenter tr:odd').addClass('alt');
        // Map toggler
        $("#toggleMap").click(function() {
            $(".map").toggleClass("display");
            $(".mapBottom").toggleClass("display");
            return false;
        });
        //Cart scroller
        $('.yourOrder.multipleSections').scrollFollow({
            speed: 0,
            offset: 0,
            killSwitch: 'exampleLink',
            onText: 'Enable Follow',
            offText: 'Enable Follow',
            container: 'content',
            delay: 500
        });

        $(".offers li:last").addClass('last');

        //Search focus and hover
        /*
        $(".searchSubmit").mouseover(function() {
        $(this).attr("src", "/Templates/lib/img/searchSubmit_hover.png");
        });
        $(".searchSubmit").mouseout(function() {
        $(this).attr("src", "/Templates/lib/img/searchSubmit.png");
        });
        $(".searchSubmit").focus(function() {
        $(this).attr("src", "/Templates/lib/img/searchSubmit_hover.png");
        });
        $(".searchSubmit").blur(function() {
        $(this).attr("src", "/Templates/lib/img/searchSubmit.png");
        });
    
    */
        //Toggla kartan
        $("#toggleMap").toggle(function() {
            $(this).text("Dölj karta.");
        }, function() {
            $(this).text("Visa karta.");
        });

        $('.changeCountry').click(function() {
            $('#dialog').append('Test of lightbox');
            $('#dialog').dialog('open');
        });
        Validation.initializeValidation('loginForm');

        // Make entire are in list clickable
        $('ul.g1alternative div.clickable-container').css({
            cursor: 'pointer'
        }).click(function() {
            window.location = $(this).parent().find('div.action a:eq(1)').attr('href');
        });
    }
    catch (e) { }

});

/****************************
Validation
****************************/
//Initialize validation on login page
Validation.initializeValidation = function(container) {
	if($('#' + container).attr('id') == null) return;
	Validation.CreateValidatorPageBindings(container);
    $('#' + container).keydown(function(e) {
        if (e.keyCode == 13) {
            //Stop the event
            //e.cancelBubble is supported by IE - this will kill the bubbling process.
            e.cancelBubble = true;
            e.returnValue = false;

            //e.stopPropagation works in Firefox.
            if (e.stopPropagation) {
                e.stopPropagation();
                e.preventDefault();
            }
            //Validate form and if validated post it
            if (Validation.validateForm(container)) {
				location.href = $('#' + container + ' .SubmitButton a').attr('href');
            }
            return false;
        }
    });
    //Add event on submit buttons
    $('#' + container + ' .SubmitButton a').each(function(i) {
        $(this).click(function() {
            if (Validation.validateForm(container)) {
				return true;
            } else {
				return false;
            }
        });
    });
}
//Validate form
Validation.validateForm = function(container, singleField) {
    var isFormValid = true;
    var container;
    if (container == null) { container = 'testForm'; }
    if (singleField == null) {
        Validation.clearErrors(container);
    } else {
        Validation.clearErrorsSingleField(container, singleField);
    }
    if ($('#' + container) == null) return;
    $('#' + container + ' .Validate').each(function(i) {
        if (this.className.indexOf('ContractNumber') != -1) {
            if (singleField != null) {
                if (this.className.indexOf(singleField) != -1) {
                    if (!Validation.validateContractNumber(this)) {
                        isFormValid = false;
                    }
                }
            } else {
                if (!Validation.validateContractNumber(this)) {
                    isFormValid = false;
                }
            }
        }
        if (this.className.indexOf('CardNumber') != -1) {
            if (singleField != null) {
                if (this.className.indexOf(singleField) != -1) {
                    if (!Validation.validateCardNumber(this)) {
                        isFormValid = false;
                    }
                }
            } else {
                if (!Validation.validateCardNumber(this)) {
                    isFormValid = false;
                }
            }
        }
    });
    if (!isFormValid && (singleField == null)) {
    }
    return isFormValid;
}
Validation.CreateValidatorPageBindings = function(container) {
    $('input').focus(function() {
        $(this).parents('.error').removeClass('error');
    });
    if(container == 'loginForm') {
		$('#ctl00_MainBodyRegion_txtContractNumber').blur(function() {
			Validation.validateForm(container, 'SingleFieldContractNumber');
		});
		$('#ctl00_MainBodyRegion_txtCardNumber').blur(function() {
			Validation.validateForm(container, 'SingleFieldCardNumber');
		});
    }
}
//Validation - Clear errors
Validation.clearErrors = function(container) {
    var container;
    if (container == null) {
        container = 'testForm';
    }
    $('#' + container + ' .inputBox').each(function(i) {
        $(this).removeClass('error');
    });
}
//Clear errors single field
Validation.clearErrorsSingleField = function(container, singleField) {
    var container;
    if (container == null) {
        container = 'testForm';
    }
    $('#' + container + ' .' + singleField + ' .inputBox').each(function(i) {
        $(this).removeClass('error');
    });
}
//Set error style
Validation.setErrorStyle = function(item) {
    $(item).addClass('error');
}
//Trim function
Validation.trim = function(str) {
    return str.replace(/^\s+|\s+$/g, '');
}
//Validate contract number
Validation.validateContractNumber = function(item) {
	var isValid = true;
	el = item.getElementsByTagName('input');
	var stringLength = Validation.trim(el[0].value).length;
	if (stringLength == 0) {
		isValid = false;
	}
	if (!isValid) {
		Validation.setErrorStyle($(item).find('.inputBox').get(0));
	}
	return isValid;
}
//Validate card number
Validation.validateCardNumber = function(item) {
    var isValid = true;
    el = item.getElementsByTagName('input');
    var stringLength = el[0].value.length;
    if (stringLength == 0) {
		isValid = false;
	}
	if (!isValid) {
		Validation.setErrorStyle($(item).find('.inputBox').get(0));
	}
    return isValid;
}
