var base_url = "http://whamauctions.com/";
var id_resource = '';
var guestbook = {
    message: null,
    open: function (dialog) {
        // add padding to the buttons in firefox/mozilla
        if ($.browser.mozilla) {
            $('#contact-container .contact-button').css({
                'padding-bottom': '2px'
            });
        }
        // input field font size
        if ($.browser.safari) {
            $('#contact-container .contact-input').css({
                'font-size': '.9em'
            });
        }

        // dynamically determine height
        var h = 380;
        if ($('#contact-subject').length) {
            h += 26;
        }
        if ($('#contact-cc').length) {
            h += 22;
        }

        var title = $('#contact-container .contact-title').html();
        $('#contact-container .contact-title').html('Loading...');
        dialog.overlay.fadeIn(200, function () {
            dialog.container.fadeIn(200, function () {
                dialog.data.fadeIn(200, function () {
                    $('#contact-container .contact-content').animate({
                        height: h
                    }, function () {
                        $('#contact-container .contact-title').html(title);
                        $('#contact-container form').fadeIn(200, function () {
                            $('#contact-container #contact-name').focus();

                            $('#contact-container .contact-cc').click(function () {
                                var cc = $('#contact-container #contact-cc');
                                cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');
                            });

                            // fix png's for IE 6
                            if ($.browser.msie && $.browser.version < 7) {
                                $('#contact-container .contact-button').each(function () {
                                    if ($(this).css('backgroundImage').match(/^url[("']+(.*\.png)[)"']+$/i)) {
                                        var src = RegExp.$1;
                                        $(this).css({
                                            backgroundImage: 'none',
                                            filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' +  src + '", sizingMethod="crop")'
                                        });
                                    }
                                });
                            }
                        });
                    });
                });
            });
        });
    },
    show: function (dialog) {
        $('#contact-container .contact-send').click(function (e) {
            e.preventDefault();
            // validate form
            if (guestbook.validate()) {
                var msg = $('#contact-container .contact-message');
                msg.fadeOut(function () {
                    msg.removeClass('contact-error').empty();
                });
                $('#contact-container .contact-title').html('Sending...');
                $('#contact-container form').fadeOut(200);
                $('#contact-container .contact-content').animate({
                    height: '80px'
                }, function () {
                    $('#contact-container .contact-loading').fadeIn(200, function () {
                        $.ajax({
                            url: base_url+'get_document/send_message',
                            data: $('.contact-content form').serialize()+'&id='+id_resource,
                            type: 'post',
                            cache: false,
                            dataType: 'html',
                            success: function (data) {
                                $.modal.close();
                                window.location.href = base_url+"uploaded_files/pdf/"+data;
                                /*
                                $('#contact-container .contact-loading').fadeOut(200, function () {
                                    $('#contact-container .contact-title').html('Thank you!');
                                    msg.html(data).fadeIn(200);
                                });
                                */
                            },
                            error: guestbook.error
                        });
                    });
                });
                
            }
            else {
                if ($('#contact-container .contact-message:visible').length > 0) {
                    var msg = $('#contact-container .contact-message div');
                    msg.fadeOut(200, function () {
                        msg.empty();
                        guestbook.showError();
                        msg.fadeIn(200);
                    });
                }
                else {
                    /*
                    $('#contact-container .contact-message').animate({
                        height: '30px'
                    }, guestbook.showError);*/
                }
                
            }
        });
    },
    close: function (dialog) {
        $('#contact-container .contact-message').fadeOut();
        $('#contact-container .contact-title').html('Goodbye...');
        $('#contact-container form').fadeOut(200);
        $('#contact-container .contact-content').animate({
            height: 40
        }, function () {
            dialog.data.fadeOut(200, function () {
                dialog.container.fadeOut(200, function () {
                    dialog.overlay.fadeOut(200, function () {
                        $.modal.close(); 
                    });
                });
            });
        });
    },
    error: function (xhr) {
        alert(xhr.statusText);
    },
    validate: function () {
        
        guestbook.message = '';
        
        var arr_attr = ['firstname','lastname','email','address','city','state','zip','source'];
        for(var i=0;i<arr_attr.length;i++){
            if (!$('#contact-container input[name*="'+arr_attr[i]+'"]').val()) {
                guestbook.message += ' ';
                $('#contact-container input[name*="'+arr_attr[i]+'"]').prev().css('color','#ff0000');
            } else {
                if(arr_attr[i]=='email'){
                    var email = $('#contact-container input[name*="'+arr_attr[i]+'"]').val();
                    if (!guestbook.validateEmail(email)){
                        guestbook.message += ' ';
                        $('#contact-container input[name*="'+arr_attr[i]+'"]').prev().css('color','#ff0000');
                    }else{
                        $('#contact-container input[name*="'+arr_attr[i]+'"]').prev().css('color','#555555');
                    }
                } 
                else {                  
                    $('#contact-container input[name*="'+arr_attr[i]+'"]').prev().css('color','#555555');
                }
            }
        }
        
        var email = $('#contact-container #contact-email').val();
        if (!email) {
            guestbook.message += ' ';
        }
        else {
            if (!guestbook.validateEmail(email)) {
                guestbook.message += ' ';
            }
        }
        
        /*
        if (!$('#contact-container #contact-message').val()) {
            guestbook.message += 'Message is required.';
        }
        */
        if (guestbook.message.length > 0) {
            return false;
        }
        else {
            return true;
        }
    },
    validateEmail: function (email) {
        var at = email.lastIndexOf("@");

        // Make sure the at (@) sybmol exists and  
        // it is not the first or last character
        if (at < 1 || (at + 1) === email.length)
            return false;

        // Make sure there aren't multiple periods together
        if (/(\.{2,})/.test(email))
            return false;

        // Break up the local and domain portions
        var local = email.substring(0, at);
        var domain = email.substring(at + 1);

        // Check lengths
        if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255)
            return false;

        // Make sure local and domain don't start with or end with a period
        if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain))
            return false;

        // Check for quoted-string addresses
        // Since almost anything is allowed in a quoted-string address,
        // we're just going to let them go through
        if (!/^"(.+)"$/.test(local)) {
            // It's a dot-string address...check for valid characters
            if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local))
                return false;
        }

        // Make sure domain contains only valid characters and at least one period
        if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1)
            return false;   

        return true;
    },
    showError: function () {
        $('.contact-content').css('height','400px');
        $('#contact-container .contact-message')
            .html($('<div class="contact-error"></div>').append(guestbook.message))
            .fadeIn(200);
    }
};

/**
 * Fuction loads a new page and put in into container
 *
 */
var loadNewPage = function(pageLink, calledByUser){
    // If user clicked on link need to get next page relative to page on which he got
    if(pageLink !== undefined && pageLink.nextPage !== undefined && calledByUser){
        linkIterator = pageLink.nextPage;
    }

    if(window.Interval !== undefined){
        clearInterval(Interval);
    }

    $('.pages div').removeClass('active');

    pageLink = $(pageLink);
    pageLink.addClass('active');

    var num = pageLink.attr('id').split('_');

    $.ajax({
      url: 'home/get_au/'+num[1],
      dataType: 'json',
      success: function(data) {
        var bannerContentContainer = $('#banner-content-container');

        bannerContentContainer.fadeOut(400, function(){
            document.getElementById('banner-title_div').innerHTML     = (data.name != null ? data.name : '');
            if(data.name.length > 80) $('.div_opacity').css('width','64px');
            document.getElementById('item-title').innerHTML       = (data.address != null ? data.address : '');
            document.getElementById('item-description').innerHTML = (data.description != null ? data.description : '');

            var imageCache = new Image();
            imageCache.src = data.main_image;
            canFadeIn = false;
        
            // IE 7 workarond
            if($.browser.version.substr(0,1) == 7){
                 function testImg(){
                     if(imageCache.complete != null && imageCache.complete == true){ 
                         allowFadeIn();
                         return;
                     }
                     setTimeout(testImg, 100);
                 }
                 setTimeout(testImg, 100);
            }
            else{
                 imageCache.onload = allowFadeIn;
            }
        
            document.getElementById('image').src = data.main_image;
            if(data.property == "1") document.getElementById("home_und_c").style.display = 'block';
            else document.getElementById("home_und_c").style.display = 'none';
            
            if(data.has_video_tour){
                var video_container = document.getElementById('show_video');
                video_container.href = data.video_tour;
                video_container.style.display = 'block';
            }
            else{
                document.getElementById('show_video').style.display = 'none';
            }
        
            if(data.has_listing){
                var listing_container = document.getElementById('download_listing');
                listing_container.href = data.listing;
                listing_container.style.display = 'block';
            }
            else{
                document.getElementById('download_listing').style.display = 'none';
            }
        
            if(data.online_bidding_url){
                var online_bidding_container = document.getElementById('online_bidding');
                online_bidding_container.href = data.online_bidding_url;
                online_bidding_container.style.display = 'block';
            }
            else
            {
                 document.getElementById('online_bidding').style.display = 'none';
            }

            var Iteration = 0;
            if(!canFadeIn){
                var Interval = setInterval(function(){
                   Iteration++;
                   if(canFadeIn || Iteration >= 15){
                      clearInterval(Interval);
                      bannerContentContainer.fadeIn(400);
                      imageCache = undefined;
                      canFadeIn = false;
                   }
                }, 250);
            }
            else{
                bannerContentContainer.fadeIn(400);
                imageCache = undefined;
                canFadeIn = false;
            }
        });
      }
    });
}

/**
 * Helper function for loadNewPage
 *
 */
var allowFadeIn = function(){
    canFadeIn = true;
}

/**
 * If user clicked on a link, need to skip next update
 */

var skipNextUpdate = false;

/**
 * Global variable which used for preventing of the automatic loading a next page, if used clicked on the link.
 *
 */
var linkIterator = 1;

$(document).ready(function(){
    var len_div = 0;
    if($('#banner-title div').html()){
        len_div = $('#banner-title div').html().length;
    }
    if(len_div > 80) $('.div_opacity').css('width','64px');
    $(document).pngFix();

    $('.menu .subscription .left_sub input#s_name').click(
        function(){
            if($(this).val() == "Your Name") {
                $(this).val('');
            }
        });
    $('.menu .subscription .left_sub input#s_email').click(
        function(){
            if($(this).val() == "Your Email") {
                $(this).val('');
            }
        });
    $('.menu .subscription .left_sub input#s_name').blur(
        function(){
            if($(this).val() == "") {
                $(this).val('Your Name');
            }
        });
    $('.menu .subscription .left_sub input#s_email').blur(
        function(){
            if($(this).val() == "") {
                $(this).val('Your Email');
            }
        });
    
    $('.header .subscription .right_sub .toSibscribe').click(
        function(){
            var name = $('.menu .subscription .left_sub input#s_name').val();
            var email = $('.menu .subscription .left_sub input#s_email').val();
            
            if((name == "Your Name") 
            || (name == "")
            ) {
                alert('Enter Your Name');return false;
            }
            if((email == "Your Email")
            || (email == "")
            ) {
                alert('Enter Your Email');return false;
            }
            
        });

    canFadeIn = false;

    var bannerPageLinks = $('.home .banner .pages div div');

    if(bannerPageLinks[0] !== undefined){
        // Attaching onClick handler
        for(var linkNum = 0; linkNum < bannerPageLinks.length; linkNum++){
            bannerPageLinks[linkNum].nextPage = (linkNum < (bannerPageLinks.length - 1) ? linkNum + 1 : 0);
            $(bannerPageLinks[linkNum]).click(function(){
                skipNextUpdate = true;
                loadNewPage(this, 'calledByUser');
            });
        }
        
        var maxLinkNum = bannerPageLinks.length - 1;

        // Showing slideshow
        setInterval(function(){ 
            if(skipNextUpdate){
                skipNextUpdate = false;
            }
            else{
                loadNewPage(bannerPageLinks[linkIterator]);

                if(linkIterator < maxLinkNum){
                    linkIterator++;
                }
                else{
                    linkIterator = 0;
                }
            }
        }, 7000);
    }

/**
 *
 * Download Listing
 *
 */
    $('.download_document.guestbook').click(function(e){
        $this = $(this);

        id_resource = $this.attr('href').replace(/#/, '');

        e.preventDefault();
        
        // load the contact form using ajax
        $.get(base_url+"get_document/" + id_resource, function(data){
           var check = data.indexOf('<div');
           if(check != -1) { 
            // create a modal dialog with the data
            $(data).modal({
                    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
                    position: ["15%",],
                    overlayId: 'contact-overlay',
                    containerId: 'contact-container',
                    onOpen: guestbook.open,
                    onShow: guestbook.show,
                    onClose: guestbook.close
                });
            } else {
                window.location.href = base_url+"uploaded_files/pdf/"+data;
            }
        });        
    });    
});

