﻿//Date
var dtCh = "-";
var minYear = 1900;
var maxYear = 2100;

function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary(year) {
    return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
        if (i == 2) { this[i] = 29 }
    }
    return this
}

function isDate(pElement) {
    var reTestString = /[\/.,]/ig;
    var dtStr = pElement.value;
    dtStr = dtStr.replace(reTestString, '-');
    if (dtStr.substr(1, 1) == '-') {
        dtStr = '0' + dtStr;
    }
    if (dtStr.substr(4, 1) == '-') {
        dtStr = dtStr.substring(0, 3) + '0' + dtStr.substring(3, dtStr.length);
    }
    if (dtStr.length < 10) {
        if (dtStr.substring(dtStr.length - 2, dtStr.length) > 11)
            dtStr = dtStr.substring(0, 6) + '19' + dtStr.substring(6)
        else
            dtStr = dtStr.substring(0, 6) + '20' + dtStr.substring(6);
    }
    var daysInMonth = DaysArray(12)
    var pos1 = dtStr.indexOf(dtCh)
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
    var strDay = dtStr.substring(0, pos1)
    var strMonth = dtStr.substring(pos1 + 1, pos2)
    var strYear = dtStr.substring(pos2 + 1)
    strYr = strYear
    if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
    if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
    }
    month = parseInt(strMonth)
    day = parseInt(strDay)
    year = parseInt(strYr)
    if (pos1 == -1 || pos2 == -1) {
        return false
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        return false
    }
    if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
        return false
    }
    if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
        return false
    }
    pElement.value = dtStr
    return true
}

//Basics
function locateElement(pName) {
    return document.getElementById(pName);
}

function doSubmit(pForm, pAction) {
    if (pForm == null || pForm == '')
        pForm = 'submitForm';
    if (!(pAction == null || pAction == '')) {
        locateElement(pForm).action = pAction;
    }
    locateElement(pForm).submit();
}

function updateCheckbox(pName, pValue) {
    locateElement(pName).checked = pValue;
}

function RefreshImage(valImageId) {
    var objImage = document.images[valImageId];
    if (objImage == undefined) {
        return;
    }
    var now = new Date();
    objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}

function autoForm() {
    if (document.getElementById('autoForm') != undefined)
        document.getElementById('autoForm').submit();
}

function updatePage(pPage) {
    locateElement('Page').value = pPage;
}

function copyValue(p1, p2) {
    locateElement(p2).value = locateElement(p1).value;
}

//Specifics

function clearDriverYearControls() {
    if (locateElement('NameControl'))
        locateElement('NameControl').checked = false;
    if (locateElement('YearsControl'))
        locateElement('YearsControl').checked = false;
}

function clearTeamYearControls() {
    if (locateElement('NameControl'))
        locateElement('NameControl').checked = false;
    if (locateElement('YearsControl'))
        locateElement('YearsControl').checked = false;
}


function updateKeywordsClass(pElem) {
    var keywords = locateElement('Keywords').value;
    if (pElem.checked) {
        if (keywords.indexOf(pElem.className.toLowerCase())) {
            if (keywords != '') {
                keywords = keywords + ', '
            }
            keywords = keywords + pElem.className.toLowerCase();
        }
    }
    else {
        keywords = keywords.replace(pElem.className.toLowerCase() + ', ', '');
        keywords = keywords.replace(pElem.className.toLowerCase(), '');
    }
    locateElement('Keywords').value = keywords;
}

function viewImageOverlay(pGUID) {
    locateElement('overlayContent').innerHTML = locateElement('pictureViewContent-' + pGUID).innerHTML;
    setTimeout("overlay()", 250);
}

function adjustPreviewFrame() {
    window.parent.document.getElementById('PressRelease').height = locateElement('previewBody').scrollHeight + 35;
}

//Overlay

function setOverlayContent(pName) {
    locateElement('overlayContent').innerHTML = locateElement(pName).innerHTML;
    overlay();
}

function overlay() {
    var scrOfX = 0, scrOfY = 0;
    if (typeof (window.pageYOffset) == 'number') {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    var myWidth = 0, myHeight = 0;
    if (typeof (window.innerWidth) == 'number') {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }
    xyz = document.getElementById("overlay");
    xyz.style.height = document.getElementById('Sizer').scrollHeight + 'px';
    xyz.style.visibility = (xyz.style.visibility == "visible") ? "hidden" : "visible";
    xyz = document.getElementById("overlayContent");
    var myCenterWidth = (myWidth - xyz.scrollWidth) / 2 + scrOfX;
    var myCenterHeight = (myHeight - xyz.scrollHeight) / 3 + scrOfY;

    xyz.style.left = myCenterWidth + 'px';
    xyz.style.top = myCenterHeight + 'px';
    xyz.style.visibility = (xyz.style.visibility == "visible") ? "hidden" : "visible";

}


