﻿var _popupDelay = 250;
var _popupShower = null;
var _popupEl = null;

String.prototype.trim = function() { return this.replace(/^\s*/, "").replace(/\s*$/, ""); }

$(document).ready(function() { initPropertyHighlights(); });

function ShowLoadingPanel() {
    loadingPanel.Show();
}

function HideLoadingPanel() {
    loadingPanel.Hide();
}

function Trim(value) {
    var s = new String(value);
    return s.trim();
}

function setMaxLength(textAreaElement, length) {
    textAreaElement.maxlength = length;
    ASPxClientUtils.AttachEventToElement(textAreaElement, "keyup", createEventHandler("onKeyUpOrChange"));
    ASPxClientUtils.AttachEventToElement(textAreaElement, "change", createEventHandler("onKeyUpOrChange"));
}

function onKeyUpOrChange(evt) {
    processTextAreaText(ASPxClientUtils.GetEventSource(evt));
}

function processTextAreaText(textAreaElement) {
    var maxLength = textAreaElement.maxlength;
    var text = textAreaElement.value;
    var isAcceptable = (maxLength == 0) || (text.length <= maxLength);
    if (maxLength != 0 && text.length > maxLength)
        textAreaElement.value = text.substr(0, maxLength);
}

function createEventHandler(funcName) {
    return new Function("event", funcName + "(event);");
}

function setCookie(name, value, expires, path, domain, secure) {
    if (!path) path = "/";

    var curCookie = name + "=" + escape(value) +
  ((expires) ? "; expires=" + expires.toGMTString() : "") +
  ((path) ? "; path=" + path : "") +
  ((domain) ? "; domain=" + domain : "") +
  ((secure) ? "; secure" : "");
    document.cookie = curCookie;
}

function getCookie(name) {
    var prefix = name + "=";
    var cookieStartIndex = document.cookie.indexOf(prefix);
    if (cookieStartIndex == -1) return null;
    var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
    if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
    return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function fixDate(date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0) date.setTime(date.getTime() - skew);
}

function showPopup(popupName, el) {
    _popupEl = el;
    _popupShower = setTimeout("showPopupNow('" + popupName + "')", _popupDelay);
}

function showPopupNow(popupName, el) {
    clearTimeout(_popupShower);
    if (_popupEl != null) el = _popupEl;
    _popupEl = null;
    
    var pos = findPos(el);
    pos[0] += 15;

    $('#' + popupName).css("top", pos[1] + "px").css("left", pos[0] + "px").slideDown('100');
}

function hidePopup(popupName) {
    clearTimeout(_popupShower);
    _popupEl = null;
    $('#' + popupName).slideUp('100');
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft, curtop];
}

function CheckedClear(listBox) {
    var selected = listBox.GetSelectedValues();
    listBox.SelectAll();
    listBox.UnselectAll();
    listBox.SelectValues(selected);
    return;
}

function ComboClear(comboBox) {
    var selected = comboBox.GetSelectedIndex();
    if (selected < 0) selected = 0;

    comboBox.SetSelectedIndex(-1);
    comboBox.SetSelectedIndex(selected);
    return;
}

function SpinnerClear(spinner) {
    var oldValue = spinner.GetValue();
    spinner.SetValue(0);
    spinner.SetValue(oldValue);
}

function initPropertyHighlights() {
    $('.ph').css('cursor', 'pointer');
    $('.ph').click(function(event) { event.preventDefault(); phClicked(this); });
}

function phClicked(item) {
    location.href = $('#' + item.id + ' a')[0].href;
}