﻿
// simplify getElementById
function $(e) {
    return document.getElementById(e);
}

// return an array of elements with particular class.
function getElementsByClassName(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

function getChildNodesByTagName(e, t) {
    var n = new Array();
    for (i = 0, j = 0; i < e.childNodes.length; i++)
        if (e.childNodes[i].nodeName == t) n[j++] = e.childNodes[i];
    return n;
}

function addEvent(e, a, f, b) {
    if (document.addEventListener) {
        e.addEventListener(a, f, b);
    }
    else if (document.attachEvent) {
        e.attachEvent('on' + a, f, b);
    }
}

function removeEvent(e, a, f, b) {
    if (document.removeEventListener) {
        e.removeEventListener(a, f, b);
    }
    else if (document.detachEvent) {
        e.detachEvent('on' + a, f, b);
    }
}

function getAccUrl() {
    return '/' + accountURL + '/';
}

function getScrollXY() {
    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;
    }
    return [scrOfX, scrOfY];
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft, curtop];
}


//variables

var tmpX1;
var tmpY1;
var tmpX2;
var tmpY2;
var hlColors = new Array('#FFDD77');

function fadeWatch() {
    highlightFade(255, 200, 100);
}

function highlightFade(r, g, b) {
    var newStuff = getElementsByClassName('highlight', null, '*');
    r = Math.min(r + Math.max((255 - r) / 100, 2), 255);
    g = Math.min(g + Math.max((255 - g) / 100, 2), 255);
    b = Math.min(b + Math.max((255 - b) / 100, 2), 255);
    for (i = 0; i < newStuff.length; i++)
        newStuff[i].style.backgroundColor = 'rgb(' + r + ',' + g + ',' + b + ')';
    if (r < 255 || g < 255 || b < 255)
        setTimeout(function() { highlightFade(r, g, b); }, 20);
}

function clearFocusWatch() {
    var fields = getElementsByClassName('clearsOnFocus', null, '*');
    for (i = 0; i < fields.length; i++)
        addEvent(fields[i], 'focus', clearOnFocus);
}

function clearOnFocus(e) {
    var f;
    if (e.childNodes)
        f = e;
    else if (this.childNodes)
        f = this;
    else if (e.srcElement.childNodes)
        f = e.srcElement;
    f.value = '';
    removeEvent(f, 'focus', clearOnFocus);
}

//onload

jQuery(document).ready(function() {
    fadeWatch();
    clearFocusWatch();
    //more/less comments
    jQuery('.showCommentsLink').click(function() {
        jQuery('.viewMoreComments').addClass('hidden');
        jQuery('.moreComments').slideDown();
        return false;
    });
    jQuery('.hideCommentsLink').click(function() {
        jQuery('.moreComments').slideUp('hidden', function() {
            jQuery('.viewMoreComments').removeClass('hidden');
        });
        return false;
    });
    jQuery('#filterTemplates').change(function() {
        location.href = jQuery(this).siblings('input:hidden[name=base]').val() + jQuery(this).val();
    });
    jQuery('#hideHelperLnk').click(function() {
        jQuery('#pageHelper').fadeOut();
        helperName = jQuery(this).attr('class')
        helperName = helperName.substring(helperName.indexOf('-') + 1);
        jQuery.ajax({ type: 'POST', url: getAccUrl() + 'partial/hidehelper', data: 'action=hideHelper&helpername=' + helperName });
    });
    jQuery('#hidePageError').click(function() {
        jQuery('#pageError').fadeOut();
    });
    jQuery('#hidePageConfirm').click(function() {
        jQuery('#pageConfirm').fadeOut();
    });
    jQuery('.permissionddl').change(function() {
        if (jQuery(this).val() == -1) {
            id = jQuery(this).attr('class').substring(jQuery(this).attr('class').indexOf('-') + 1);
            doDBoxFetch('clientlogins/' + id);
            jQuery(this).val('');
        }
        else if (jQuery(this).val() > 0) {
            this.form.submit();
        }
    });
    jQuery('.navTab').click(function() {
        jQuery(this).parent().siblings().removeClass('current');
        jQuery(this).parent().addClass('current');
    });
    jQuery('#previewCSS').click(function() {
        var f = jQuery(this).parents('form');
        if (f.attr('target') == '_blank')
            return true;
        f.attr('target', '_blank');
        jQuery(this).click();
        f.attr('target', '');
        return false;
    });
    jQuery(document).keypress(function(e) {
        if (jQuery('#slideshow').length > 0 && e.which == 0) {
            //alert(location.href);
            location.href = location.href.replace(/\/fullscreen$/, '');
            return false;
        }
    });
    jQuery('#deleteuser').click(function() {
        return confirm('Are you sure you want to delete this team member?');
    });

    setTimeout("jQuery('input[name=userpass1]').val('');", 100);
});

