YAHOO.namespace('com.metrojobb');

YAHOO.com.metrojobb.Common = function() {
};

YAHOO.com.metrojobb.Common.prototype = {

    redirect : function(contextPath, returnPath) {
        var path = contextPath + '/';
        var homePath = 'recruiter/home.do';
        var editPath = 'recruiter/ad/edit.do';
        var publishPath = 'recruiter/ad/publish.do';
        var indexPath = 'index.do';
        if (returnPath === 'home') {
            path += homePath;
        } else if (returnPath === 'jobadedit') {
            path += editPath;
        } else if (returnPath.substring(0, 7) === 'publish') {
            var params = returnPath.substring(7, returnPath.length);
            path += publishPath + params;
        } else {
            path += indexPath;
        }
        parent.window.location = path;
    },

    checkPreviewPopup : function(path, showPreviewPopup, title) {
        if (showPreviewPopup === 'true') {
            YAHOO.com.metrojobb.common.popwin(path, title);
        }
        return false;
    },

    hideOpenPreviewWindow : function(element) {
        if (element.window.opener) {
            element.window.opener.YAHOO.util.Dom.setStyle('openPreviewWindow',
                    'display', 'none');
        }
        return false;
    },

    popwin : function(url, title) {
        var newwin = window
                .open(url, title,
                        'width=750,height=600,status=0,resizable=true,scrollbars=yes,location=no');
        if (newwin) {
            newwin.focus();
        }
    },

    changeDisplay : function(id) {
        if (YAHOO.util.Dom.getStyle(id, 'display') === 'none') {
            YAHOO.util.Dom.setStyle(id, 'display', 'block');
        } else {
            YAHOO.util.Dom.setStyle(id, 'display', 'none');
        }
    },

    toggleClass : function(id, className) {
        if (YAHOO.util.Dom.hasClass(id, className)) {
            YAHOO.util.Dom.removeClass(id, className);
        } else {
            YAHOO.util.Dom.addClass(id, className);
        }
    },

    showPublicationPrice : function(ctx) {
        var index = YAHOO.util.Dom.get('jobAdPublicationPricesId').value;

        var handleSuccess = function(o) {
            if (o.responseText !== undefined) {
                document.getElementById('jobAdPublicationPricesInfo').innerHTML = o.responseText;
            }
        };
        var handleFailure = function(o) {
        };
        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };
        var url = ctx + '/ad/showPublicationPrice.do?index=' + index;
        YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },

    addRemoveJobAd : function(ctx, id) {
        var cb = document.getElementById(id);

        var handleSuccess = function(o) {
            // not handled
        };
        var handleFailure = function(o) {
            // not handled
        };
        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };

        var url = null;
        if (cb.checked) {
            url = ctx + '/jobads/add.do?id=' + id;
        } else {
            url = ctx + '/jobads/remove.do?id=' + id;
        }

        YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },

    clearSelectedJobAds : function(ctx) {
        var handleSuccess = function(o) {
        };
        var handleFailure = function(o) {
        };
        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };

        var url = ctx + '/jobads/reset.do';
        YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },

    populateCountForNode : function(node, prefix, onlyIfChecked, checkBoxGroup) {
        if (onlyIfChecked) {
            var group = document.getElementsByName(checkBoxGroup);
            var checkedStr = YAHOO.com.metrojobb.common
                    .retrieveCheckboxValues(group);
            var check = checkedStr.split(",");
        }
        for (i = 0; i < node.length; i++) {
            var updateCurrent = true;
            // If we only are too update selected nodes.
            if (onlyIfChecked) {
                updateCurrent = false;
                if (node[i].facetId == checkBoxGroup) {
                    for (j = 0; j < check.length; j++) {
                        if (node[i].id == check[j]) {
                            updateCurrent = true;
                        }
                    }
                }
            }
            // is true for selected if not onlyIfChecked is false
            /*
             * Removed facet count for now if(updateCurrent) {
             * document.getElementById(prefix + node[i].facetId + '-' +
             * node[i].id).innerHTML = node[i].count; }
             */
        }
    },

    initFacetCount : function(json, type) {
        if (type.length > "all".length) {
            type = type.substr(type.indexOf("-") + 1, 1);
        }
        var searchResult;
        try {
            searchResult = json;
            var prefix = "cnt-";
            YAHOO.com.metrojobb.common.populateCountForNode(searchResult.c1,
                    prefix, true, "c1");
            YAHOO.com.metrojobb.common.populateCountForNode(searchResult.c2,
                    prefix, true, "c2");
            YAHOO.com.metrojobb.common.populateCountForNode(searchResult.r1,
                    prefix, true, "r1");
            YAHOO.com.metrojobb.common.populateCountForNode(searchResult.r2,
                    prefix, true, "r2");
            YAHOO.com.metrojobb.common.populateCountForNode(searchResult.r3,
                    prefix, true, "r3");
            YAHOO.com.metrojobb.common.populateCountForNode(searchResult.e1,
                    prefix, true, "e1");

            if (type == "all") {
                prefix = "tot-";
                YAHOO.com.metrojobb.common.populateCountForNode(
                        searchResult.c1, prefix, false, "c1");
                YAHOO.com.metrojobb.common.populateCountForNode(
                        searchResult.c2, prefix, false, "c2");
                YAHOO.com.metrojobb.common.populateCountForNode(
                        searchResult.r1, prefix, false, "r1");
                YAHOO.com.metrojobb.common.populateCountForNode(
                        searchResult.r2, prefix, false, "r2");
                YAHOO.com.metrojobb.common.populateCountForNode(
                        searchResult.r3, prefix, false, "r3");
                YAHOO.com.metrojobb.common.populateCountForNode(
                        searchResult.e1, prefix, false, "e1");
            }
            document.getElementById('total').innerHTML = searchResult.total;
            if (searchResult.total == 0) {
                document.getElementById('submit-box').style.display = "none";
                document.getElementById('agent-box').style.display = "block";
            } else {
                document.getElementById('submit-box').style.display = "block";
                document.getElementById('agent-box').style.display = "none";
            }
        } catch (x) {
            alert("Failed reading json result!" + x);
            return;
        }
    },
    getTotalCountValue : function() {
        var value = document.getElementById('total').innerHTML
        if (!isNaN(parseInt(value))) {
            return parseInt(value);
        } else {
            return undefined;
        }
    },

    retrieveCheckboxValues : function(checkBoxGroup) {
        var selectedValues = "";
        for (i = 0; i < checkBoxGroup.length; i++) {
            if (checkBoxGroup[i].checked) {
                selectedValues += checkBoxGroup[i].value + ",";
            }
        }
        if (selectedValues.length > 1) {
            return selectedValues.substring(0, selectedValues.length - 1);
        } else {
            return "";
        }
    },

    resetCountForNode : function(facetId, id) {
        // alert("facetId " + facetId + " id " + id);
        var prefix = "cnt-";
        document.getElementById(prefix + facetId + '-' + id).innerHTML = "";
    },

    checkParentFacets : function(type, level, id, chk) {
        if (level > 1) {
            var tmpId = "";
            tmpId = id.substr(0, id.lastIndexOf('-'));
            var parentId = tmpId.substr(0, tmpId.lastIndexOf('-'));
            var parentCheckbox = document.getElementById(parentId);
            if (chk && !parentCheckbox.checked) {
                parentCheckbox.checked = chk;
            } else if (!chk && parentCheckbox.checked) {
                var group = document.getElementsByName(type + level);
                var uncheckParent = true;
                for (i = 0; i < group.length; i++) {
                    var node = group[i].id;
                    if (node.indexOf(tmpId) >= 0 && group[i].checked) {
                        uncheckParent = false;
                    }
                }
                if (uncheckParent) {
                    parentCheckbox.checked = chk;
                    /*
                     * if(!chk) { // parentId == cb-c1-1
                     * YAHOO.com.metrojobb.common.resetCountForNode( type +
                     * (level-1),parentId.substr(parentId.lastIndexOf('-')+1,
                     * parentId.length)); }
                     */
                }
            }
            if (level > 2) {
                YAHOO.com.metrojobb.common.checkParentFacets(type, level - 1,
                        parentId, chk);
            }
        }
    },

    checkChildFacets : function(type, level, value, checked) {
        var childLevel = parseInt(level) + 1;
        var children = document.getElementsByName(type + childLevel);
        if (level != 1) {
            var ad = true;
            for (i = 0; i < children.length; i++) {
                if (ad) {
                    ad = false;
                }
                var nodeId = children[i].id;
                if (nodeId.indexOf("-" + type + level + "-" + value + "-"
                        + type + childLevel + "-") >= 0) {
                    children[i].checked = checked;
                    /*
                     * if(!checked) {
                     * YAHOO.com.metrojobb.common.resetCountForNode(type +
                     * childLevel, nodeId.substr(nodeId.lastIndexOf('-')+1,
                     * nodeId.length)); }
                     */
                }
            }
        } else {
            var childChildLevel = parseInt(childLevel) + 1;
            var childChildren = document.getElementsByName(type
                    + childChildLevel);
            for (i = 0; i < children.length; i++) {
                var nodeId = children[i].id;
                if (nodeId.indexOf("cb-" + type + level + "-" + value + "-"
                        + type + childLevel + "-") >= 0) {
                    children[i].checked = checked;
                    /*
                     * if(!checked) {
                     * YAHOO.com.metrojobb.common.resetCountForNode(type +
                     * childLevel, nodeId.substr(nodeId.lastIndexOf('-')+1,
                     * nodeId.length)); }
                     */
                }
            }
            for (i = 0; i < childChildren.length; i++) {
                var nodeId = childChildren[i].id;
                if (nodeId.indexOf("cb-" + type + level + "-" + value + "-"
                        + type + childLevel + "-") >= 0) {
                    childChildren[i].checked = checked;
                    /*
                     * if(!checked) {
                     * YAHOO.com.metrojobb.common.resetCountForNode(type +
                     * (parseInt(childLevel) +1),
                     * nodeId.substr(nodeId.lastIndexOf('-')+1, nodeId.length)); }
                     */
                }
            }
        }
    },

    checkAllFacets : function(type, checked) {
        if (type == "all") {
            YAHOO.com.metrojobb.common.checkAllFacets("e", checked);
            YAHOO.com.metrojobb.common.checkAllFacets("r", checked);
            YAHOO.com.metrojobb.common.checkAllFacets("c", checked);
        } else {
            depth = 1;
            if (type == "c") {
                depth = 2;
            }
            if (type == "r") {
                depth = 3;
            }
            for (i = depth; i > 0; i--) {
                var items = document.getElementsByName(type + i);
                for (j = 0; j < items.length; j++) {
                    items[j].checked = checked;
                    /*
                     * if(!checked) {
                     * YAHOO.com.metrojobb.common.resetCountForNode(type + i,
                     * items[j].id.substr(items[j].id.lastIndexOf('-')+1,
                     * items[j].id.length) ) }
                     */
                }
            }
        }
    },

    checkFacets : function(id) {
        var cb = document.getElementById(id);
        var type = id.substr(id.indexOf('-') + 1, 1);
        var level = id.substr(id.lastIndexOf('-') - 1, 1);
        if (type == "c") {
            if (level == 1) {
                YAHOO.com.metrojobb.common.checkChildFacets(type, level,
                        cb.value, cb.checked);
            } else {
                YAHOO.com.metrojobb.common.checkParentFacets(type, level, id,
                        cb.checked);
            }
        }
        if (type == "r") {
            if (level == 1) {
                YAHOO.com.metrojobb.common.checkChildFacets(type, level,
                        cb.value, cb.checked);
            } else if (level == 2) {
                YAHOO.com.metrojobb.common.checkParentFacets(type, level, id,
                        cb.checked);
                YAHOO.com.metrojobb.common.checkChildFacets(type, level,
                        cb.value, cb.checked);
            } else {
                YAHOO.com.metrojobb.common.checkParentFacets(type, level, id,
                        cb.checked);
            }
        }
        /*
         * if(!cb.checked) {
         * YAHOO.com.metrojobb.common.resetCountForNode(type+level,
         * id.substr(id.lastIndexOf('-') + 1, id.length)); }
         */
    },

    updateFacetCount : function(ctx, id) {
        // use to check
        YAHOO.com.metrojobb.common.checkFacets(id);
        var type = id.substr(id.indexOf('-') + 1, 1);

        var c1Group = document.getElementsByName('c1');
        var c2Group = document.getElementsByName('c2');
        var r1Group = document.getElementsByName('r1');
        var r2Group = document.getElementsByName('r2');
        var r3Group = document.getElementsByName('r3');
        var e1Group = document.getElementsByName('e1');

        var c1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(c1Group);
        var c2Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(c2Group);
        var r1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(r1Group);
        var r2Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(r2Group);
        var r3Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(r3Group);
        var e1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(e1Group);

        var handleSuccess = function(o) {
            var searchResult;
            // Use the JSON Utility to parse the data returned from the server
            try {
                searchResult = YAHOO.lang.JSON.parse(o.responseText);
                YAHOO.com.metrojobb.common.initFacetCount(searchResult, id);
            } catch (x) {
                alert("JSON Parse failed!" + x);
                return;
            }
        };

        var handleFailure = function(o) {
            // no error handling
        };

        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };

        var url = ctx + '/ad/search/advancedFacetSearch.do?' + 'c1='
                + c1Checked + '&c2=' + c2Checked + '&r1=' + r1Checked + '&r2='
                + r2Checked + '&r3=' + r3Checked + '&e1=' + e1Checked;
        YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },

    initSimpleFacetCount : function(ctx, id, facetString) {
        var type = id.substr(id.indexOf('-') + 1, 1);
        var handleSuccess = function(o) {
            var searchResult;
            // Use the JSON Utility to parse the data returned from the server
            try {
                searchResult = YAHOO.lang.JSON.parse(o.responseText);
                YAHOO.com.metrojobb.common.initFacetCount(searchResult, id);
            } catch (x) {
                // do nothing
                // alert("JSON Parse failed!" + x);
                return;
            }
        };
        var handleFailure = function(o) {
            // no error handling
        };
        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };
        var url = ctx + '/ad/search/advancedFacetSearch.do?' + this.removeAmps(facetString);
        YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },

    removeQueryParameter: function(url,parameter)
    {
        var urlparts = url.split('?');
        if (urlparts.length >= 2) {
            var queryString = "";
            var pairs = urlparts[1].split("&");
            var first = true;
            for (var i = 0; i < pairs.length; i++) {
                var keyValuePair = pairs[i].split("=");
                if(keyValuePair[0] !== parameter)
                {
                    if(first == true)
                    {
                        queryString += pairs[i];
                        first = false;
                    }
                    else
                    {
                        queryString += "&" + pairs[i];
                    }
                }
            }
            if(queryString != "")
            {
                url = urlparts[0]+'?'+queryString;
            }
            else
            {
                url = urlparts[0];
            }
        }
        return url;
    },
    
    removeEmploymentTypeQueryStrings: function()
    {
        categoryLinks = YAHOO.util.Dom.getElementsByClassName('facet-link','a');
        for(var i=0;i<categoryLinks.length;i++)
        {
            var e1Pos = categoryLinks[i].href.indexOf('e1');
            if(e1Pos > 0)
            {
                categoryLinks[i].href = this.removeQueryParameter(categoryLinks[i].href,"e1");    
            }
        }
    },
    
    addEmploymentTypeParameters: function(employmentTypeParameters)
    {
        categoryLinks = YAHOO.util.Dom.getElementsByClassName('facet-link','a');
        for(var i=0;i<categoryLinks.length;i++)
        {
            var queryStringPos = categoryLinks[i].href.indexOf('?');
            if(queryStringPos > 0)
            {
                categoryLinks[i].href = this.appendQueryString(this.removeQueryParameter(categoryLinks[i].href,"e1"),employmentTypeParameters);;    
            }
            else
            {
                categoryLinks[i].href = this.appendQueryString(categoryLinks[i].href,employmentTypeParameters); 
            }
        }
    },
    
    appendQueryString : function(url,queryString)
    {
        if(url.indexOf("?") > 0)
        {
            return url + "&" + queryString;
        }
        else
        {
            return url + "?" + queryString;
        }
    },
    
    updateLinksWithEmploymentTypeParameters : function(e1Checked)
    {
        if(e1Checked.length == 0 || e1Checked.length > 6)
        {
            YAHOO.com.metrojobb.common.removeEmploymentTypeQueryStrings();
        }   
        else
        {
            var e1Params = "e1=" + e1Checked.replace(new RegExp(",","g"),"&e1=");
            YAHOO.com.metrojobb.common.addEmploymentTypeParameters(e1Params);
        }
    },
    
    removeAmps : function(str)
    {
        return str.replace(new RegExp("&amp;","g"),"&");
    },
    
    updateSimpleFacetCount : function(ctx, id, facetString) {
        // use to check
        // YAHOO.com.metrojobb.common.checkFacets(id);
        var type = id.substr(id.indexOf('-') + 1, 1);

        var e1Group = document.getElementsByName('e1');
        var e1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(e1Group);

        var handleSuccess = function(o) {                      
            var searchResult;
            // Use the JSON Utility to parse the data returned from the server
            try {
                searchResult = YAHOO.lang.JSON.parse(o.responseText);
                YAHOO.com.metrojobb.common.initFacetCount(searchResult, id);                
            } catch (x) {
                alert("JSON Parse failed!" + x);
                return;
            }
        };

        var handleFailure = function(o) {
            // no error handling
        };

        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };

        var url = ctx + '/ad/search/advancedFacetSearch.do?' + this.removeAmps(facetString);
        if (facetString.length > 0) {
            url += '&';
        }
        url += 'e1=' + e1Checked;        
        YAHOO.util.Connect.asyncRequest('GET', url, callback);      
        YAHOO.com.metrojobb.common.updateLinksWithEmploymentTypeParameters(e1Checked);  
    },

    buildQueryPart : function(prefix, checkedString) {
        var url = "";
        var check = checkedString.split(",");
        var last = check.length - 1;
        for (i = 0; i < check.length; i++) {
            url += prefix + "=" + check[i];
            if (i != last) {
                url += "&";
            }
        }
        return url;
    },

    buildJobAgentString : function() {

        var c1Group = document.getElementsByName('c1');
        var c2Group = document.getElementsByName('c2');
        var r1Group = document.getElementsByName('r1');
        var r2Group = document.getElementsByName('r2');
        var r3Group = document.getElementsByName('r3');
        var e1Group = document.getElementsByName('e1');

        var c1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(c1Group);
        var c2Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(c2Group);
        var r1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(r1Group);
        var r2Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(r2Group);
        var r3Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(r3Group);
        var e1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(e1Group);
        var url = YAHOO.com.metrojobb.common.buildQueryPart('c1', c1Checked)
                + '&'
                + YAHOO.com.metrojobb.common.buildQueryPart('c2', c2Checked)
                + '&'
                + YAHOO.com.metrojobb.common.buildQueryPart('r1', r1Checked)
                + '&'
                + YAHOO.com.metrojobb.common.buildQueryPart('r2', r2Checked)
                + '&'
                + YAHOO.com.metrojobb.common.buildQueryPart('r3', r3Checked)
                + '&'
                + YAHOO.com.metrojobb.common.buildQueryPart('e1', e1Checked);

        var form = document.getElementById('agentform');
        var jobAgentQuery = form.elements['query'];
        jobAgentQuery.value = url;
    },

    buildSimpleJobAgentString : function(jobAgentString) {
        var e1Group = document.getElementsByName('e1');
        var e1Checked = YAHOO.com.metrojobb.common
                .retrieveCheckboxValues(e1Group);
        var url = this.removeAmps(jobAgentString);
        if (url != null && url.length > 0) {
            url += '&';
        }
        url += YAHOO.com.metrojobb.common.buildQueryPart('e1', e1Checked);

        var form = document.getElementById('agentform');
        var jobAgentQuery = form.elements['query'];
        jobAgentQuery.value = url;
    },

    setMailAFriendId : function(id) {
        if (id != null) {
            var form = document.getElementById('mail_friend_form');
            var jobAgentQuery = form.elements['id'];
            jobAgentQuery.value = id;
        }
    },
    getCredits : function(ctx, requestType) {
        var startDate = document.getElementById('publishDate').value;
        var endDate = document.getElementById('publishEndDate').value;

        var handleSuccess = function(o) {
            document.getElementById('noOfCredits').innerHTML = o.responseText;
        };
        var handleFailure = function(o) {
            document.getElementById('noOfCredits').innerHTML = '-';
        };
        var callback = {
            success : handleSuccess,
            failure : handleFailure
        };

        url = ctx + '/recruiter/ad/credits.do?startDate=' + startDate
                + '&endDate=' + endDate + '&requestType=' + requestType;
        YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },

    submitIndexSearchForm : function(url, countryId) {
        url = this.removeAmps(url);
        var form = document.getElementById('indexSearchForm');
        if (countryId.length > 0) {
            var field = document.createElement("input");
            field.setAttribute("type", "hidden");
            field.setAttribute("name", "countryId");
            field.setAttribute("value", countryId);
            form.appendChild(field);
        }
        if (url.indexOf("?") > 0) {
            var tmpStr = url.substr(url.indexOf("?") + 1, url.length);
            if (tmpStr.indexOf("&") > 0) {
                var tmp = tmpStr.split("&");
                for (i = 0; i < tmp.length; i++) {
                    var id = tmp[i].split("=");
                    if (id.length == 2) {
                        if (id[0] != "r1" || countryId.length <= 0) {
                            var field = document.createElement("input");
                            field.setAttribute("type", "hidden");
                            field.setAttribute("name", id[0]);
                            field.setAttribute("value", id[1]);
                            form.appendChild(field);
                        }
                    }
                }
            } else if (tmpStr.indexOf("=") > 0) {
                var id = tmpStr.split("=");
                if (id.length == 2) {
                    if (id[0] != "r1" || countryId.length <= 0) {
                        var field = document.createElement("input");
                        field.setAttribute("type", "hidden");
                        field.setAttribute("name", id[0]);
                        field.setAttribute("value", id[1]);
                        form.appendChild(field);
                    }
                }
            }
        }
        form.setAttribute('action', url);
        form.submit();
    }
};
YAHOO.com.metrojobb.common = new YAHOO.com.metrojobb.Common();

function createCalendar(divName, elementName, btn, ctx, requestType) {
    var dates = document.getElementById(elementName).value.split("-");
    var psdCal = new YAHOO.widget.Calendar("psdCal", divName, {
        mindate : new Date(),
        selected : dates[1] + "/" + dates[2] + "/" + dates[0],
        pagedate : dates[1] + "/" + dates[0],
        close : true
    });
    psdCal.render();

    function handleSelect(type, args, obj) {

        var dates = args[0];
        var date = dates[0];
        var year = date[0], month = date[1], day = date[2];
        var txtDate = document.getElementById(elementName);
        txtDate.value = year + "-" + (month < 10 ? "0" + month : month) + "-"
                + (day < 10 ? "0" + day : day);

        YAHOO.com.metrojobb.common.getCredits(ctx, requestType);
        psdCal.hide();
    }

    psdCal.selectEvent.subscribe(handleSelect, psdCal, true);
    YAHOO.util.Event.addListener(btn, "click", psdCal.show, psdCal, true);
}

function externalizeLinks() {
    if (!document.getElementsByTagName) {
        return;
    }
    var anchors = document.getElementsByTagName("a");
    for ( var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href")
                && anchor.getAttribute("rel") == "external") {
            anchor.target = "_blank";
        }
    }
}

function queryValidate(defaultValue) {
    if (document.getElementById("inputQuery").value == defaultValue) {
        document.getElementById("inputQuery").value = "";
    }
    return true;
}
