<!--
/**
 * Opens a new windows by specified width and height.
 */
var popWindow = null;

function openWindow(url, width, height) {
    if (popWindow == null || popWindow.closed) {
        if ((4 == arguments.length) && (arguments[3])) {
            popWindow = window.open(url, null, 'height=' + height + 'px,width=' + width + 'px,status=no,toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no');
        }
        else {
            popWindow = window.open(url, null, 'height=' + height + 'px,width=' + width + 'px,status=no,toolbar=no,menubar=no,location=no,resizable=no');
        }
    }
    else {
        popWindow.focus();
        popWindow.resizeTo(width, height);
        popWindow.location = url;
    }
}

function checkAll(nameItem, itemAll)
{
  var a = document.getElementsByName(nameItem);
  var n = a.length;
  for (var i=0; i<n; i++) {
    a[i].checked = itemAll.checked;
  }
}

function checkItem(nameAll, item)
{
  var e = item;
  var all = document.getElementById(nameAll);
  if (e.checked)
  {
    var a = document.getElementsByName(e.name);
    all.checked = true;
    for (var i=0; i<a.length; i++)
    {
      if (!a[i].checked){ all.checked = false; break;}
    }
  }
  else {
    all.checked = false;
  }
}


/**
 * Checks state status for USA.
 */
function validateStates(countrySelect) {
    if ('US' == countrySelect.value) {
        document.getElementById("selectState").disabled = false;
        if (null != document.getElementById("ssn")) {
            document.getElementById("ssn").disabled = false;
        }
        if (null != document.getElementById("taxList")) {
            document.getElementById("taxList").disabled = false;
        }
        if (null != document.getElementById("stateStar")) {
            document.getElementById("stateStar").style.visibility = 'visible';
        }
        document.getElementById("usaZipCode").style.visibility = 'visible';
        if (null != document.getElementById("taxClassification")) {
            document.getElementById("taxClassification").style.visibility = 'visible';
        }
        if (null != document.getElementById("ssnTaxID")) {
            document.getElementById("ssnTaxID").style.visibility = 'visible';
        }
        document.getElementById("usaZipCodeCheck").className = 'zipcode';
        if (null != document.getElementById("ssnEmpty")) {
            document.getElementById("ssnEmpty").className = 'ssn';
        }
    }
    else {
        document.getElementById("selectState").disabled = true;
        if (null != document.getElementById("ssn")) {
            document.getElementById("ssn").disabled = true;
        }
        if (null != document.getElementById("taxList")) {
            document.getElementById("taxList").disabled = true;
        }
        if (null != document.getElementById("stateStar")) {
            document.getElementById("stateStar").style.visibility = 'hidden';
        }
        document.getElementById("usaZipCode").style.visibility = 'hidden';
        if (null != document.getElementById("taxClassification")) {
            document.getElementById("taxClassification").style.visibility = 'hidden';
        }
        if (null != document.getElementById("ssnTaxID")) {
            document.getElementById("ssnTaxID").style.visibility = 'hidden';
        }
        document.getElementById("usaZipCodeCheck").className = 'nonecss';
        if (null != document.getElementById("ssnEmpty")) {
            document.getElementById("ssnEmpty").className = 'nonecss';
        }
    }
}

/**
 * Shows the limit message on input field.
 */
function showLimitMessage(inputObj, spanObj, maxLimit) {
    var strLength = 0;
    if (inputObj.value != null) {
        strLength = inputObj.value.length;
    }
    if (strLength <= maxLimit) {
        spanObj.innerHTML = (maxLimit - strLength);
    }
    else {
        spanObj.innerHTML = "<span style=\"color:red\">Too many characters!</span>";
    }
}

/**
 * Cuts the content in an input field that limits the content length.
 */
function cutContent(inputObj, maxLimit) {
    var contentText = inputObj.value;
    if (contentText.length > maxLimit) {
        inputObj.value = contentText.substring(0, maxLimit);
    }
}
/**
 * Escapes the special html characters.
 */
function htmlSpecialChars(code) {
    code = code.replace(/&/g, '&amp;');
    code = code.replace(/"/g, '&quot;');
    code = code.replace(/'/g, '&#039;');
    code = code.replace(/</g, '&lt;');
    code = code.replace(/>/g, '&gt;');
    return code;
}

/**
 * Adds ellipsis for ad headline and description.
 */
function stripAllContents(elements) {
    var striped = false;

    for (var i in elements) {
        striped |= stripContent(elements[i]);
    }
    return striped;
}

/**
 * Adds ellipsis for broker link.
 */
function stripBrokerLink(preview) {
    var width = preview.totalWidth;
    var element = preview.brokerLinkSpan;

    var originalText = element.innerHTML;
    element.innerHTML = 'jJ';
    var lineHeight = element.scrollHeight * 1.5;
    element.innerHTML = originalText;
    if ((element.scrollWidth <= width) && (element.scrollHeight <= lineHeight)) {
        return false;
    }

    var lastText = "";
    var currentText = "";
    for(var i=0; i < originalText.length; i++) {
        currentText += originalText.charAt(i);
        element.innerHTML=currentText;
        if ((element.scrollWidth > width) || (element.scrollHeight > lineHeight)) {
            lastText = lastText.substr(0, lastText.length - 4) + "...";
            element.innerHTML=lastText;
            return true;
        }
        lastText=currentText;
    }
}
/**
 * Adds ellipsis for ad headline and description.
 */
function stripContent(element) {
    var nodes = element.childNodes;
    var div_nodes = new Array();
    var idx = 0;
    var striped = false;
    for (var i=0;i< nodes.length;i++) {
         if (1 == nodes[i].nodeType) {
            div_nodes[idx++] = nodes[i];
         }
    }
    var titleElement = div_nodes[0];
    var descriptionElement = div_nodes[1];
    var width=parseInt(element.style.width);
    var height=parseInt(element.style.height);
    if ((titleElement.parentNode.scrollWidth > width) || (descriptionElement.parentNode.scrollWidth > width) || (titleElement.offsetHeight + descriptionElement.offsetHeight > height)) {
        var backDescription = descriptionElement.innerHTML;
        descriptionElement.innerHTML = '';
        var striped = stripTitle(titleElement, width, height);
        if (!striped) {
            descriptionElement.innerHTML = backDescription;
            var backTitle = titleElement.innerHTML;
            var titleHeight = titleElement.offsetHeight;
            striped |= stripDescription(descriptionElement, width, height - titleHeight);
            //When description can't display, add ellipsis to the end of title
            if (("..." == descriptionElement.innerHTML) && ("..." != backDescription)) {
                descriptionElement.innerHTML = '';
                descriptionElement.style.display = 'none';//Set description height to 0 for IE.
                for(var j=0;j<3;j++) {
                    backTitle += ".";
                    titleElement.innerHTML = backTitle;
                    //check whether after add dot to the end of title cause overflow
                    if (titleElement.parentNode.scrollWidth > width || titleElement.parentNode.scrollHeight > height) {
                        backTitle = backTitle.substr(0, backTitle.length - 4) + "...";
                        break;
                    }
                }
                titleElement.innerHTML =  backTitle;                
            }
        }
    }

    return striped;

}

/**
 * Adds ellipsis for ad headline.
 */
function stripTitle(element, width, height) {
    if ((element.offsetHeight <= height) && (element.parentNode.scrollWidth <= width)) {
        return false;
    }
    var originalText = element.innerHTML;
    var lastText = "";
    var currentText = "";
    for(var i=0;i<originalText.length;i++) {
        currentText+=originalText.charAt(i);
        element.innerHTML=currentText;
        if (element.parentNode.scrollWidth > width) {
            currentText = lastText.substr(0,lastText.length-1)+ " " + originalText.charAt(i-1) + originalText.charAt(i);
            element.innerHTML = currentText;
        }
        if(element.offsetHeight>height) {
            lastText=lastText.substr(0,lastText.length-4)+"...";
            element.innerHTML=lastText;
            return true;
        }
        lastText=currentText;
    }

    return false;
}

/**
 * Adds ellipsis for ad description.
 */
function stripDescription(element,width,height) {
    if (element.offsetHeight <= height && element.parentNode.scrollWidth <= width) {
        return false;
    }
    var originalText=element.innerHTML;
    var lastText="";
    var currentText="";
    for(var i=0;i<originalText.length;i++) {
        currentText+=originalText.charAt(i);
        element.innerHTML=currentText;
        if (element.parentNode.scrollWidth>width) {
            currentText=lastText.substr(0,lastText.length-1)+" "+originalText.charAt(i-1)+originalText.charAt(i);
            element.innerHTML=currentText;
        }
        if (element.offsetHeight>height) {
            if (lastText.length == 0) {
                element.innerHTML = "...";
            }
            else {
                lastText=lastText.substr(0, lastText.length-4) + "...";
                element.innerHTML = lastText;
            }
            return true;
        }
        lastText=currentText;
    }
    return false;
}

/**
 * Highlight all the selected rows in a page.
 */
function highlightSelectedRows(checkboxsName, buttonsName) {
    buttons = buttonsName ? document.getElementsByName(buttonsName) : new Array();
    if (checkboxes = document.getElementsByName(checkboxsName)) {
        for (var i = 0; i < checkboxes.length; ++i) {
            highlightOneRow(checkboxes[i], buttons[i]);
        }
    }
}

/**
 * Highlight the row of the checkbox
 */
function highlightOneRow(checkBox, button) {
    currentNode = checkBox.parentNode;
    while (button && ('TD' != button.tagName)) {
        button = button.parentNode;
    }
    while ('TR' != currentNode.tagName) {
        currentNode = currentNode.parentNode;
    }
    if (checkBox.checked && !checkBox.disabled) {
        if (null == checkBox.originalColor) {
            checkBox.originalColor = currentNode.style.backgroundColor;
        }
        currentNode.style.backgroundColor = '#F8F685';
        if (button) {
            button.style.backgroundColor = checkBox.originalColor;
        }
    }
    else {
        currentNode.style.backgroundColor = checkBox.originalColor;
    }
}
-->
