/**
* general
*/

// settings
var isHttps = (location.href.indexOf('https') == 0);
var userType = 'guest';
var gaCode = 'UA-1757549-2';
var lpMTagConfig = {
    lpServer: 'server.iad.liveperson.net',
    lpNumber: '17472836',
    lpProtocol: 'https'
};

// console for IE
if (!window.console)  {
    window.console =  {
        debug: function(o)  {
            alert(o);
        },
        log: function(o)  {

        }
    }
}

// server error msg
var serverErrorMsg = '<div class="message error"><h2>Server Error</h2><p>We are sorry, service is not available, please try again in a minute</p></div>';


$(function() {

    // main host url
    var rootUrl = $('a#logo').attr('href');
    //console.log(rootUrl);
    rootUrl = (rootUrl == '/') ? 'http://' + document.domain + '/' : rootUrl;

    // fix styles
    // $('input[type=hidden]').hide();

    // flash messges
    var fm = $('#flash-message');
    if (fm.length) {
        fm.hide().fadeIn(3000);
    }

    // preload loading icon
    $('<img>').attr('src', '/images/icons/loader-circle.gif');
    $('<img>').attr('src', '/images/icons/loader-circle-small.gif');

    // submit button action
    $('div.live input[type=submit]').mouseup(function() {
        if (! $('#submit-button-loading').length) {
            $(this).before('<div id="submit-button-loading" class="button-loading">Processing, please wait&hellip;</div>');
        }
    });


    // top search autocomplete
    var instSearchField = $('#search-location');
    if (instSearchField.length) {
        $(instSearchField).autocomplete('/search/autocomplete', {
            minChars: 3,
            highlight: false,
            selectFirst: false,
            width: 250,
            formatItem: function (row, i, total) {
                return row[1]; // full name
            },
            //formatResult: function (row, i, total) {
            //    return row[2]; // short name
            //},
            delay: 300
        });


        $(instSearchField).result(function (event, data, formatted) {
            var form = instSearchField.get(0).form;

            var hName = 'search[geoname][' + data[2] + ']';
            var hValue = data[1];

            var hiddenField = $('#hidden-city');
            if (hiddenField.length) {
                hiddenField.attr('name', hName);
                hiddenField.val(hValue);
            } else {
                $(form).prepend('<input id="hidden-city" type="hidden" name="' + hName +'" value="' + hValue + '" />');
            }
        });

    }


    // liveperson chat
    $('a.lp-chat-link').click(function(e) {
        e.preventDefault();
        LPWindow('chat');
        return false;
    });
    $('a.lp-call-link').click(function(e) {
        e.preventDefault();
        LPWindow('call');
        return false;
    });

    // addthis button
    /*
    $('a.addthis').mouseover(function() {
        return addthis_open(this, '', '[URL]', '[TITLE]');
    });
    $('a.addthis').mouseout(function() {
        addthis_close();
    });
    $('a.addthis').click(function() {
        return addthis_sendto();
    });
    */

    // addthis toolbox
    if ($('#addthis-toolbox').length) {
        try {
            var url = (isHttps ? 'https://' : 'http://') + 's7.addthis.com/js/250/addthis_widget.js#pub=apartmenthunters';
            $.getScript(url, function(){
                return true;
            });
        } catch(err) {
            console.log('Failed to load AddThis:' + err);
        }
    }

    // google analytics
    try {
        var url = (isHttps ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        //console.log('analytics url:' + url);

        // include the script
        $.getScript(url, function(){
            $.pageTracker = _gat._getTracker(gaCode);
            $.pageTracker._initData();
            $.pageTracker._setDomainName('.apartmenthunterz.com');
            $.pageTracker._setCampSourceKey('source');
            $.pageTracker._trackPageview();

            // track order
            if ('undefined' != typeof(gaOrders)) {
                for (var i = 0; i < gaOrders.length; i++) {
                    var order = gaOrders[i];
                    $.pageTracker._addTrans(
                        order.id, // order ID - required
                        '', // affiliation or store name
                        order.total, // total - required
                        '', // tax
                        '', // shipping
                        order.city, // city
                        order.state, // state or province
                        order.country // country
                    );
                    $.pageTracker._addItem(
                        order.id, // order ID - necessary to associate item with transaction
                        order.code, // SKU/code - required
                        order.name, // product name
                        order.category, // category or variation
                        order.price, // unit price - required
                        order.qty // quantity - required
                    );
                    $.pageTracker._trackTrans();
                }
            }

            return true;
        });
    } catch(err) {
        console.log('Failed to load Google Analytics:' + err);
    }


    // LP monitoring
    try {
        var url = (isHttps ? 'https://' : 'http://') + lpMTagConfig.lpServer + '/hcp/html/mTag.js?site=' + lpMTagConfig.lpNumber;
        // include the script
        $.getScript(url, function(){
            return true;
        });
    } catch(err) {
        console.log('Failed to load LP Monitoring:' + err);
    }


    // print page
    /*
    $('a.b-print,a.print').click(function(e) {
        e.preventDefault();
        printPage();
        return false;
    });
    */

   // send friend
   $('a.send-friend').click(function() {
        var modal = $('#send-friend-modal');

        if (! modal.length)
            return false;

        // extra field
        $('#send-friend-modal form').attr('action', '/index/send');
        var extra = '<input type="hidden" name="url" value="' + window.location.href + '"/><input type="hidden" name="type" value="friend"/>';
        $('#send-friend-modal .hidden').html(extra);

        modal.dialog({
            bgiframe: true,
            autoOpen: false,
            modal: true,
            draggable: false,
            width: 400,
            buttons: {
                'Cancel': function() {
                    $(this).dialog('close');
                },
                'Send': function() {
                    // send

                    $(this).dialog('close');
                }
            }
        });

        modal.dialog('open');

        return false;
   });

});



function printPage()
{
    var container = $('#container');
    var cWidth = container.css('width');
    container.css('width', '8.5in');

    // switch stylesheet
    $('link[rel=stylesheet]').each(function(i) {
        if (this.media == 'print') {
            this.disabled = false;
            this.media = 'print,screen';
        } else {
            this.disabled = true;
        }
    });

    // do print
    window.print();

    // add message
    var message = '<div id="print-preview-msg" class="message notice"><p>This is page print preview.</p>' +
        '<p><a href="#" class="cancel-print">Switch to normal view</a></p></div>';

    $('#header').prepend(message);
    $('#print-preview-msg').show();

    // wire cancel button
    $('#print-preview-msg a').click(function() {
        // switch stylesheet
        $('link[rel=stylesheet]').each(function(i) {
            if (this.media == 'print,screen') {
                this.media = 'print';
            }
            this.disabled = false;
        });
        $('#print-preview-msg').remove();
        container.css('width', cWidth);
        return false;
    });
}

function LPWindow(type)
{
    var lpButtonCTTUrl = 'https://server.iad.liveperson.net/hc/17472836/?site=17472836&cmd=file';

    if (type == 'call') {
        lpButtonCTTUrl += '&file=visitorWantsToTalk' +
        '&SESSIONVAR!skill=Default%20Ticket%20Skill';
    } else {
        lpButtonCTTUrl += '&file=visitorWantsToChat' +
        '&offlineURL=http://www.' + document.domain +'/help/tickets/offline';
    }
    lpButtonCTTUrl += '&imageUrl=https://server.iad.liveperson.net/hcp/Gallery/CallButton-Gallery/English/General/1a/';
    lpButtonCTTUrl += '&referrer=' + escape(document.location);

    lpButtonCTTUrl = (typeof(lpAppendVisitorCookies) != 'undefined' ? lpAppendVisitorCookies(lpButtonCTTUrl) : lpButtonCTTUrl);
    lpButtonCTTUrl = ((typeof(lpMTag) != 'undefined' && typeof(lpMTag.addFirstPartyCookies) != 'undefined') ? lpMTag.addFirstPartyCookies(lpButtonCTTUrl) : lpButtonCTTUrl);

    //console.log(url);
    var winWidth = 500;
    var winHeight = 430;
    var winLeft = (screen.width - winWidth) / 2;
    var winTop = (screen.height - winHeight) / 2;
    var winprops = 'height=' + winHeight + ',width=' + winWidth + ',top=' + winTop + ',left=' + winLeft + ',scrollbars=yes,resizable=no';
    var lpchat = window.open(lpButtonCTTUrl, 'lpchat', winprops);

    return false;
}