﻿var domain = 'data.bulwarkpestcontrol.com';
var restUrl = 'http://' + domain + '/Resources/Services/RatingRest.svc';
var imgUrl = 'http://' + domain + '/Resources/Images';
var tracker_data;
var contextTitle;
var contextSubTitle;
var contextCity;
var contextState;
var hostDomain = '';
var overrideDomain = '';
var scrollDetectorId = 0;
var track = '';
var otherSites = '<span style="font-size:28px;color:#660926;"><br /><span class="ReviewLinkDomain" onclick="javascript:openOtherReviewSite(\'http://superpages.com\')">Superpages</span>' +
                 '<br /><br />' +
                 '<span class="ReviewLinkDomain" onclick="javascript:openOtherReviewSite(\'http://merchantcircle.com\')">Merchant Circle</span>' +
                 '<br /><br />' +
                 '<span class="ReviewLinkDomain" onclick="javascript:openOtherReviewSite(\'http://yp.com\')">Yellow Pages</span><br />' +
                 '<br /></span>';

$(document).ready(function() {
    $('#trackingData').hide();
    if (document.title == '') {
        hostDomain = window.location.hostname;
        overrideDomain = getQueryVariable('domain');
        getHostDomainData((overrideDomain == '' ? hostDomain : overrideDomain));
    }
    track = getQueryVariable('track');

    checkExhausted();
    checkAbuse();
});

function startScrollingDetector() {
    scrollDetectorId = setInterval("scrollingDetector()", 2500);
}
function scrollingDetector() {
    if ($(window).scrollTop() > 0) {
        scroll(0, 0);
        //secure attribute prohibits this
        //getElement('reviewFrame').contentWindow.scrollTo(0, 0);
        clearInterval(scrollDetectorId);

    }
}

/**
* function to display the report activation dialog;
*/
function displayReviewFrame() {

    var id = "#dgDialog";

    var maskHeight = $(document).height();
    var maskWidth = $(window).width();
    var toolbarHeight = $('#toolbar').height();

    $('#reviewFrame').css({ 'top': toolbarHeight, 'width': maskWidth + 8, 'height': maskHeight - toolbarHeight });

    $('#reviewFrame').fadeIn(5);
    $('#reviewFrame').fadeTo("fast", 1);

    $(id).fadeIn(5);

    startScrollingDetector();
}

function resizeReviewFrame() {
    if (!$('#reviewFrame').is(':visible')) return;
    var id = "#dgDialog";

    var maskHeight = $(document).height();
    var maskWidth = $(window).width();
    var toolbarHeight = $('#toolbar').height();

    $('#reviewFrame').css({ 'top': toolbarHeight, 'width': maskWidth + 8, 'height': maskHeight - toolbarHeight });

    $('#reviewFrame').fadeIn(5);
    $('#reviewFrame').fadeTo("fast", 1);
}

function openReviewSite(url, id) {
    var clickedDomain = url.substring(url.indexOf('//') + 2, url.length);
    clickedDomain = clickedDomain.substring(0, clickedDomain.indexOf('/'));
    clickedDomain = clickedDomain.replace('www.', '');
    displayReviewFrame();
    $('#reviewFrame').attr('src', url);
    getTrackingData(id);
}

function openOtherReviewSite(url) {
    displayReviewFrame();
    $('#reviewFrame').attr('src', url);

    getElement('TitleFrame_Line1').innerHTML = 'Please include what your technician did to impress you.<br />';
    getElement('TitleFrame_Line3').innerText = '';
    $('#TitleFrame_Line1').css('font-size', '20px');
    $('#TitleFrame_Line2').css('font-size', '20px');
    $('#TitleFrame_Line1').css('font-weight', 'bold');
    $('#TitleFrame_Line2').css('font-weight', 'bold');
    $('#TitleFrame_Line1').css('color', '#427C49');
    $('#TitleFrame_Line2').css('color', '#427C49');

}

/******************************************************************************
* rest functions
*/

/**
* function to check to see if all links have been exhausted
*/
function checkExhausted() {
    if (getElement('ReviewSiteLinks').children.length == 0) {
        getElement('trackingData').innerHTML = otherSites;
    }
}

/**
* function to check for abuse
*/
function checkAbuse() {
    jsonp(restUrl + '/ReviewAuditIP/ /json', 'actIfAbuse');
}

function actIfAbuse(data) {
    var abuse_data = data;
    if (JSON.stringify(abuse_data) != "[]") {
        if (abuse_data[0].Reviews.length <= 5) {
            $('#trackingData').show();
        } else {
            $('#trackingData').css('height', '1px');
            getElement('otherSites').innerHTML = otherSites;
        }
    } else {
        $('#trackingData').show();
    }
}

/**
* function to get Tracking data
*/
function getTrackingData(id) {
    if (track == '') {
        jsonp(restUrl + '/ReviewTracking/' + id + '/json', 'loadTrackingData');
    }
    else {
        loadTrackingData(JSON.parse('{"ReviewId":"TESTING"}'));
    }
}

function replaceAll(txt, replace, with_this) {
    return txt.replace(new RegExp(replace, 'g'), with_this);
}
/**
* function to load Tracking data
*/
function loadTrackingData(data) {

    var clickedDomain = $('#reviewFrame').attr('src');
    clickedDomain = clickedDomain.substring(clickedDomain.indexOf('//') + 2, clickedDomain.length);
    clickedDomain = clickedDomain.substring(0, clickedDomain.indexOf('/'));
    clickedDomain = clickedDomain.replace('www.', '');

    var noId = (clickedDomain == 'yelp.com')

    var tracker_data = data;
    getElement('TitleFrame_Line1').innerHTML = '<br />Please include your technician\'s name' + (noId ? ' and ' : ', ') + '<br />what your technician did to impress you' + (noId ? '.<br />' : ' and the ID below.<br /><span style="font-size:28px;color:#660926;">ID:&nbsp;' + tracker_data.ReviewId + '</span>');
    getElement('TitleFrame_Line2').innerText = '';
    getElement('TitleFrame_Line3').innerText = '';
    $('#TitleFrame_Line1').css('font-size', '20px');
    $('#TitleFrame_Line2').css('font-size', '20px');
    $('#TitleFrame_Line1').css('font-weight', 'bold');
    $('#TitleFrame_Line2').css('font-weight', 'bold');
    $('#TitleFrame_Line1').css('color', '#427C49');
    $('#TitleFrame_Line2').css('color', '#427C49');
}

/**
* function for creating script tags as a json proxy
*/
function jsonp(url, callback) {
    url += '?method=' + callback;
    var script = document.createElement('script');
    script.setAttribute('src', url);
    script.setAttribute('type', 'text/javascript');
    document.body.appendChild(script);
}


/**
* function for getting window height
*/
function windowHeight() {
    // Standard browsers (Mozilla, Safari, etc.)
    if (self.innerHeight)
        return self.innerHeight - 22;
    // IE 6
    if (document.documentElement && document.documentElement.clientHeight)
        return document.documentElement.clientHeight;
    // IE 5
    if (document.body)
        return document.body.clientHeight;
    // jQuery
    if ($(window).height())
        return $(window).height();
    // Just in case. 
    return 0;
}

/**
* function for getting window width
*/
function windowWidth() {
    // Standard browsers (Mozilla, Safari, etc.)
    if (self.innerWidth)
        return self.innerWidth - 22;
    // IE 6
    if (document.documentElement && document.documentElement.clientWidth)
        return document.documentElement.clientWidth;
    // IE 5
    if (document.body)
        return document.body.clientWidth;
    // jQuery
    if ($(window).width())
        return $(window).width();
    // Just in case. 
    return 0;
}

/**
* function to get an element
*/
function getElement(id) {
    var element = null;
    if (document.getElementById(id) != 'undefined') {
        element = document.getElementById(id);
    }
    return element;
}

/**
* function to get a query string variable
*/
function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (pair[0] == variable) {
            return pair[1];
        }
    }
    return '';
}


window.onresize = resizeReviewFrame;
