﻿function errorHandler(msg) {
   // document.write(msg);
   // return true;
}
window.onerror = errorHandler;
//eval('test'); // throw 'a' is not defined

var scrollLeftMasterContainer;
var scrollLeftItem1;
var scrollLeftItem2;
var scrollLeftTimeOut;
var scrollleftSecondsShown = 0;
var scrollLeftPaused = false;
var scrollLeftInterval; // = setInterval('scrollLeftObject()', 1000);

function scrollLeftObject() {
    scrollLeftMasterContainer = document.getElementById('scrollLeftContainerObject');
    try { 
        if (scrollLeftItem2.style.pixelLeft == undefined) {
            scrollLeftItem2.style.pixelLeft = 0;
        }
    }
    catch (Error) { }
        if (scrollLeftItem1 == undefined || (scrollLeftItem2 != undefined && scrollLeftItem2.style.pixelLeft == 0)) {
            
            scrollleftSecondsShown += 1;
            if (!scrollLeftPaused && scrollleftSecondsShown >= 10) {
                if (scrollLeftItem1 != undefined) {
                    scrollLeftMasterContainer.removeChild(scrollLeftItem1);
                    scrollLeftItem1.style.display = 'none';
                    scrollLeftItem1.style.position = 'absolute';
                    scrollLeftItem1.style.top = '0px';
                    scrollLeftMasterContainer.appendChild(scrollLeftItem1);
                }
                scrollLeftItem1 = scrollLeftMasterContainer.firstChild;

                while (scrollLeftItem1.nextSibling != null && scrollLeftItem1.nodeType != 1 && scrollLeftItem1.nodeName != undefined && scrollLeftItem1.nodeName != 'DIV') {
                    scrollLeftItem1 = scrollLeftItem1.nextSibling;
                }
                scrollLeftItem2 = scrollLeftItem1.nextSibling;
                while (scrollLeftItem2.nextSibling != null && scrollLeftItem2.nodeType != 1 && scrollLeftItem2.nodeName != undefined && scrollLeftItem2.nodeName != 'DIV') {
                    scrollLeftItem2 = scrollLeftItem2.nextSibling;
                }
                scrollLeftItem1.style.position = 'relative';
                scrollLeftItem1.style.top = '0px';
                scrollLeftItem1.style.pixelLeft = 0;
                scrollLeftItem1.style.left = scrollLeftItem1.style.pixelLeft + 'px';
                scrollLeftItem2.style.pixelLeft = scrollLeftItem1.clientWidth;
                scrollLeftItem2.style.position = 'absolute';
                scrollLeftItem2.style.display = 'block';
                scrollLeftItem2.style.top = '0px';
                scrollLeftItem2.style.left = scrollLeftItem2.style.pixelLeft + 'px';
                scrollleftSecondsShown = 0;
                scrollTwoItemsLeft();
            }   
        }

}
// scrolls two items
function scrollTwoItemsLeft() {
    window.clearTimeout(scrollLeftTimeOut);
    if (scrollLeftItem1 != undefined && !scrollLeftPaused) {
        if (scrollLeftItem1.style.pixelLeft == undefined) {
            scrollLeftItem1.style.pixelLeft = scrollLeftItem1.offsetLeft;
            scrollLeftItem2.style.pixelLeft = scrollLeftItem2.offsetLeft;
        }
        if (scrollLeftItem2.style.pixelLeft > 0) {
            scrollLeftItem1.style.pixelLeft -= 1;
            scrollLeftItem1.style.left = scrollLeftItem1.style.pixelLeft + 'px';
            scrollLeftItem2.style.pixelLeft -= 1;
            scrollLeftItem2.style.left = scrollLeftItem2.style.pixelLeft + 'px';
            scrollLeftTimeOut = window.setTimeout("scrollTwoItemsLeft()", 10);
        }
    }
}

function scrollLeftStart() {
    scrollLeftInterval = window.setInterval('scrollLeftObject()', 1000);
}

function scrollLeftPause() {
    window.clearTimeout(scrollLeftTimeOut);
    scrollLeftPaused = true;
}

function scrollLeftReStart(){
    scrollLeftPaused = false;
    scrollTwoItemsLeft();
}


//----------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------

function backandforthsrollleft() {
    var backAndForthContainer = document.getElementById('backAndForthItemContainer');
    var lastChild = backAndForthContainer.lastChild;
    while (lastChild.previousSibling != null && lastChild.nodeType != 1 && lastChild.nodeName != undefined && lastChild.nodeName != 'DIV') {
        lastChild = lastChild.previousSibling;
    }
    var tempHTML = lastChild.innerHTML;
    
    var firstChild = backAndForthContainer.firstChild;
    while (firstChild.nextSibling != null && firstChild.nodeType != 1 && firstChild.nodeName != undefined && firstChild.nodeName != 'DIV') {
        firstChild = firstChild.nextSibling;
    }
    for (var i = backAndForthContainer.childNodes.length; i > 0; i--) {
        var div = backAndForthContainer.childNodes[i];
        if (div != null && div.previousSibling != null) {
            var previousDiv = div.previousSibling;
            
            while (previousDiv.previousSibling != null && previousDiv.nodeType != 1 && previousDiv.nodeName != undefined && previousDiv.nodeName != 'DIV') {
                previousDiv = previousDiv.previousSibling;
            }
            while (div.previousSibling != null && div.nodeType != 1 && div.nodeName != undefined && div.nodeName != 'DIV') {
                div = div.previousSibling;
            }
            if (div != null && div.nodeName == 'DIV') {
                div.innerHTML = previousDiv.innerHTML;
            }
        }
    }
    firstChild.innerHTML = tempHTML;
}
    

function backandforthsrollright() {
    var backAndForthContainer = document.getElementById('backAndForthItemContainer');

    var firstChild = backAndForthContainer.firstChild;
    while (firstChild.nodeType != 1 && firstChild.nodeName != undefined && firstChild.nodeName != 'DIV') {
        firstChild = firstChild.nextSibling;
    }
    var tempHTML = firstChild.innerHTML;
    var lastChild = backAndForthContainer.lastChild;
    while (lastChild.nodeType != 1 && lastChild.nodeName != undefined && lastChild.nodeName != 'DIV') {
        lastChild = lastChild.previousSibling;
    }
    for (var i = 0; i < backAndForthContainer.childNodes.length; i++) {
        var div = backAndForthContainer.childNodes[i];
        while (div.nextSibling != null && div.nodeType != 1 && div.nodeName != undefined && div.nodeName != 'DIV') {
            div = div.nextSibling;
        }
        if (div != null && div.nextSibling != null) {
            var nextDiv = div.nextSibling;
            while (nextDiv.nextSibling != null && nextDiv.nodeType != 1 && nextDiv.nodeName != undefined && nextDiv.nodeName != 'DIV') {
                nextDiv = nextDiv.nextSibling;
            }
            if (nextDiv != null && nextDiv.nodeName == 'DIV') {
                div.innerHTML = nextDiv.innerHTML;
            }
        }
    }
    lastChild.innerHTML = tempHTML;
    // update onImageCount
}

function moveimageleft() {
    var currentImageNumber = parseInt(document.getElementById('onImageCount').innerHTML);
    var nextGalleryImage = parseInt(document.getElementById('onImageCount').innerHTML);
    var galleryImagesNumber = parseInt(document.getElementById('numberOfImages').innerHTML);
    if (document.getElementById('videoLabel').style.display == 'block') {
        nextGalleryImage = galleryImagesNumber;
    }
    else {
        if (nextGalleryImage - 1 > 0) {
        
            nextGalleryImage -= 1;
        }
        else {
            nextGalleryImage = galleryImagesNumber;
        }
    }
    var id = 'galleryImage_' + nextGalleryImage
    if (document.getElementById('videoPlayer') != null && document.getElementById('videoPlayer').innerHTML.length > 10) {
        if (document.getElementById('videoPlayer').style.display == '') {
            document.getElementById('videoPlayer').style.display = 'none';
        }
        if (currentImageNumber == 1 && nextGalleryImage == galleryImagesNumber && document.getElementById('videoPlayer').style.display == 'none') {
            id = 'galleryImage_' + 'VIDEO';
        }
    }
    swapImages(id, nextGalleryImage);
}

function moveimageright() {
    var currentImageNumber = parseInt(document.getElementById('onImageCount').innerHTML);
    var nextGalleryImage = parseInt(document.getElementById('onImageCount').innerHTML);
    var galleryImagesNumber = parseInt(document.getElementById('numberOfImages').innerHTML);
    if (document.getElementById('videoLabel').style.display == 'block') {
        nextGalleryImage = 1;
    }
    else {
        if (currentImageNumber + 1 > galleryImagesNumber) {
            nextGalleryImage = 1;
        }
        else {
            nextGalleryImage += 1;
        }
    }
    
    var id = 'galleryImage_' + nextGalleryImage;
    if (document.getElementById('videoPlayer') != null && document.getElementById('videoPlayer').innerHTML.length > 10)
    {
        if (document.getElementById('videoPlayer').style.display == '')
        {
            document.getElementById('videoPlayer').style.display = 'none';
        }
        if (currentImageNumber == galleryImagesNumber && nextGalleryImage == 1 && document.getElementById('videoPlayer').style.display == 'none') {
            id = 'galleryImage_' + 'VIDEO';
        }
    }
    swapImages(id,nextGalleryImage);
}

function swapImages(id, imageNumber) {
    document.getElementById(id).removeAttribute("onload",0); 
    if (id.match("VIDEO") != null)
    {
        document.getElementById('enlargedImage').style.display = 'none';
        if(document.getElementById('imageDescriptionContainer').style.display == 'block')
        {
            document.getElementById('imageDescriptionContainer').style.display = 'none';
        }
        document.getElementById('videoPlayer').style.display = 'block';
        document.getElementById('imageLabel').style.display = 'none';
        document.getElementById('videoLabel').style.display = 'block';
    }
    else {
        document.getElementById('enlargedImage').style.display = 'block';
        document.getElementById('videoPlayer').style.display = 'none';
        document.getElementById('onImageCount').innerHTML = imageNumber;
        document.getElementById('enlargedImage').src = document.getElementById(id).src
        document.getElementById('enlargedImage').alt = document.getElementById(id).alt;
        document.getElementById('enlargedImage').title = document.getElementById(id).title;
        if (document.getElementById(id).alt.length > 0) {
            document.getElementById('imageDescriptionContainer').innerHTML = document.getElementById(id).alt;
            document.getElementById('imageDescriptionContainer').style.display = 'block';
        }
        else {
            document.getElementById('imageDescriptionContainer').innerHTML = '';
            document.getElementById('imageDescriptionContainer').style.display = 'none';
        }
        document.getElementById('imageLabel').style.display = 'block';
        document.getElementById('videoLabel').style.display = 'none';
    }
}


function scrollToBottom() {
    window.scrollTo(0, document.body.offsetHeight);

}

function showhidelargeimage(whatToDo) {
    
    var largeImageContainer = document.getElementById('largeImageContainer');

    if (whatToDo == 'show') 
    {
        if( document.getElementById('videoPlayer').style.display == 'block')
        {
            var height = document.getElementById('videoPlayer').offsetHeight + document.getElementById('imageHeading').offsetHeight;
            largeImageContainer.style.height = height + 'px';
        }
        else
        {
            var largeImageContainerHeight = parseInt(document.getElementById('enlargedImage').offsetHeight + document.getElementById('imageHeading').offsetHeight);
            largeImageContainer.style.height = largeImageContainerHeight +'px';
        }
    }
    else 
    {
        largeImageContainer.style.height = '0px';
    }
}
var backGroundColor = 'red';
//-----------------------------------------------------------------------------------------------------
// Subscribe
//-----------------------------------------------------------------------------------------------------
function validatesubscribe() {
    var msg = '';
    var emailAddress = document.getElementById('emailAddress');
    emailAddress.value = emailAddress.value.trim();
    if (emailAddress.value.length < 1 || !isvalidemail(emailAddress.value)) {
        msg += 'Valid email address is required' + '\n';
        document.getElementById('emailAddressSpan').style.color = backGroundColor;
    }
    var designator = document.getElementById('designator');
    if (designator.selectedIndex < 1) {
        msg += 'Designator is required' + '\n';
        document.getElementById('designatorSpan').style.color = backGroundColor;
    }
    var firstName = document.getElementById('firstName');
    firstName.value = firstName.value.trim(); ;
    if (firstName.value.length < 1 ) {
        msg += 'First name is required' + '\n';
        document.getElementById('firstNameSpan').style.color = backGroundColor;
    }
    var lastName = document.getElementById('lastName');
    lastName.value = lastName.value.trim();;
    if (lastName.value.length < 1) {
        msg += 'Last name is required' + '\n';
        document.getElementById('lastNameSpan').style.color = backGroundColor;
    }
    var practiceName = document.getElementById('practiceName');
    practiceName.value = practiceName.value.trim(); ;
    if (practiceName.value.length < 1) {
        msg += 'Practice name is required' + '\n';
        document.getElementById('practiceNameSpan').style.color = backGroundColor;
    }
    var postalCode = document.getElementById('postalCode');
    postalCode.value = postalCode.value.trim();;
    if (postalCode.value.length < 1) {
        msg += 'Postal code is required' + '\n';
        document.getElementById('postalCodeSpan').style.color = backGroundColor;
    }

    var returnValue = true;
    if (msg.length > 0) {
            msg = 'The following fields are required...' + '\n' + '\n' + msg;
            msg += '\n' + '* The field(s) are highlighted.';
            alert(msg);
            returnValue = false;
    }
    return returnValue;
}



//-----------------------------------------------------------------------------------------------------
// share email validation
//-----------------------------------------------------------------------------------------------------

function validateShareEmail() {
    var msg = '';
    var toEmailAddress = document.getElementById('to');
    toEmailAddress.value = toEmailAddress.value.trim();
    if (toEmailAddress.value.length < 1 || !isvalidemail(toEmailAddress.value)) {
        msg += 'Valid To email address is required' + '\n';
        document.getElementById('toSpan').style.color = backGroundColor;
    }
    var fromEmailAddress = document.getElementById('from');
    fromEmailAddress.value = fromEmailAddress.value.trim();
    if (fromEmailAddress.value.length < 1 || !isvalidemail(fromEmailAddress.value)) {
        msg += 'Valid To email address is required' + '\n';
        document.getElementById('fromSpan').style.color = backGroundColor;
    }
    var returnValue = true;
    if (msg.length > 0) {
        msg = 'The following fields are required...' + '\n' + '\n' + msg;
        msg += '\n' + '* The field(s) are highlighted.';
        alert(msg);
        returnValue = false;
    }

    return returnValue;
}

//-----------------------------------------------------------------------------------------------------
// Contact
//-----------------------------------------------------------------------------------------------------
var xmlHttpRequestContact;
function validatecontact() {
    var msg = '';
   
    var firstName = document.getElementById('firstName');
    firstName.value = firstName.value.trim(); ;
    if (firstName.value.length < 1) {
        msg += 'First name is required' + '\n';
        document.getElementById('firstNameSpan').style.color = backGroundColor;
    }
    var lastName = document.getElementById('lastName');
    lastName.value = lastName.value.trim(); ;
    if (lastName.value.length < 1) {
        msg += 'Last name is required' + '\n';
        document.getElementById('lastNameSpan').style.color = backGroundColor;
    }
    var designator = document.getElementById('designator');

    var postalCode = document.getElementById('postalCode');
    postalCode.value = postalCode.value.trim(); ;
    if (!isvaliduszipcode(postalCode.value) || postalCode.value.length < 1) {
        msg += 'Invalid U.S. postal code entered' + '\n';
        document.getElementById('postalCodeSpan').style.color = backGroundColor;
    }
    var emailAddress = document.getElementById('emailAddress');
    emailAddress.value = emailAddress.value.trim();
    if (emailAddress.value.length < 1 || !isvalidemail(emailAddress.value)) {
        msg += 'Valid email address is required' + '\n';
        document.getElementById('emailAddressSpan').style.color = backGroundColor;
    }
    var pattersonCustomerNumber = document.getElementById('pattersonCustomerNumber');
    var equipmentProductSubmission = document.getElementById('equipmentProductSubmission');
    var equipmentShowroomAppointmentDemonstration = document.getElementById('equipmentShowroomAppointmentDemonstration');
    var officeRemodel = document.getElementById('officeRemodel');
    var newOffice = document.getElementById('newOffice');

    var message = document.getElementById('message');
    message.value = message.value.trim();
    if (message.value.length < 1) {
        msg += 'Message is required' + '\n';
        document.getElementById('messageSpan').style.color = backGroundColor;
    }
    var returnValue = true;
    if (msg.length > 0) {
        msg = 'The following fields are required...' + '\n' + '\n' + msg;
        msg += '\n' + '* The field(s) are highlighted.';
        alert(msg);
        returnValue = false;
    }

    return returnValue;
}



//-----------------------------------------------------------------------------------------------------
// end of contact
//-----------------------------------------------------------------------------------------------------

function waitingdisplaynofocus(id) {
    var divHtml = 'Processing your request...' +
                '<br/>' +
                '<img src="Images/bigrotation.gif" alt="Retrieving your request..." title="Retrieving your request..." />';
    document.getElementById(id).innerHTML = divHtml;
    return true;
}

var emailFilter = /^([\w\-\.']+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$/
function isvalidemail(value) {
    value = value.replace(/^\s+|\s+$/g, "");
    var returnValue = emailFilter.test(value);
    return returnValue;
}

String.prototype.trim = function() {
    a = this.replace(/^\s+/, '');
    return a.replace(/\s+$/, '');
};


function sendemail(issue,story) {
    window.open('/ShareEmail?requestedIssue=' + issue + '&story=' + story, '_blank', 'width=750, height=500');

}

function submitsearch() {
    document.location.href = 'Search?searchText=' + document.getElementById('searchTextBox').value;
}

function submitdocument(e) {
    e = e || event;
    var kC = e.keyCode || e.which;
    if (kC == 13) {
        document.forms[0].submit();
        return false;
    }
    return true;
}

function controlKeyPressHandler(e) {
    e = e || event;
    var kC = e.keyCode || e.which;
    if (kC == 13) {
        submitsearch();
        return false;
    }
    return true;
}
function control(e) {
    e = e || event;
    var kC = e.keyCode || e.which;
    if (kC == 13) {
        return false;
    }
}

var usZipCodeFilter = /^(\s*(\d{5}[-\s]\d{4}|\d{5}|\d{9})\s*)$/
function isvaliduszipcode(value) {
    var returnValue = usZipCodeFilter.test(value);
    return returnValue;
}