var IE = /*@cc_on!@*/false;
function checkUncheckAll(formId) {
    var form = $(formId);
    checkboxes = form.getInputs('checkbox');
    if (checkboxes[0].checked == 0) {
        checkboxes.each(function(e){
            e.checked = 1
        });
    } else {
        checkboxes.each(function(e){
            e.checked = 0
        });
    }
}

function createTooltip(e , el, text, className) {
    var x = Event.pointerX(e);
    var y = Event.pointerY(e);
    var tt = document.createElement("div");
    Element.extend(tt);
    
    //tt.innerHTML = x + ', ' + y;
    tt.innerHTML = text;
    document.body.appendChild(tt);
    //    var pos = Element.cumulativeOffset(el);
    //    var dim = Element.getDimensions(el);

    Element.addClassName(tt,className);
    
    tt.setStyle({
        position: 'absolute',
        width: 'auto',
        height: 'auto',
        top: (y - Element.getHeight(tt) - 5) + 'px',
        left: (x + 5) + 'px',
        zIndex: '10'
    });
    el.onmouseout = function() {
        tt.remove()
    };
    el.onmousemove = function(e) {
        var xx = 0;
        var yy = 0;
        if (IE) {
            xx = Event.pointerX(event);
            yy = Event.pointerY(event);
        } else {
            xx = Event.pointerX(e);
            yy = Event.pointerY(e);
        }
        //        tt.innerHTML = Math.random();
        tt.setStyle({
            top: (yy - Element.getHeight(tt) - 5) + 'px',
            left: (xx + 5) + 'px'
        });
    };
    
}

function textCounter(field, maxlimit) {
    var f = $(field);
    if (f.value.length > maxlimit) { // if too long...trim it!
        f.value = f.value.substring(0, maxlimit);
    }
}

function numInc() {
    var n = $("ResearchProfileNum");
    var value = parseInt(n.value, 10);
    n.value = value+1;
}

function showReference() {
    var n = $("ResearchProfileNum");
    showdeadcenterdiv(800, 700, "Reference"+n.value);
}


function showdeadcenterdiv(Xwidth,Yheight,divid) {
    // First, determine how much the visitor has scrolled

    var scrolledX, scrolledY;
    if( self.pageYOffset ) {
        scrolledX = self.pageXOffset;
        scrolledY = self.pageYOffset;
    } else if( document.documentElement && document.documentElement.scrollTop ) {
        scrolledX = document.documentElement.scrollLeft;
        scrolledY = document.documentElement.scrollTop;
    } else if( document.body ) {
        scrolledX = document.body.scrollLeft;
        scrolledY = document.body.scrollTop;
    }
    // Next, determine the coordinates of the center of browser's window

    var centerX, centerY;
    if( self.innerHeight ) {
        centerX = self.innerWidth;
        centerY = self.innerHeight;
    } else if( document.documentElement && document.documentElement.clientHeight ) {
        centerX = document.documentElement.clientWidth;
        centerY = document.documentElement.clientHeight;
    } else if( document.body ) {
        centerX = document.body.clientWidth;
        centerY = document.body.clientHeight;
    }
    // Xwidth is the width of the div, Yheight is the height of the
    // div passed as arguments to the function:
    var leftOffset = scrolledX + (centerX - Xwidth) / 2;
    var topOffset = scrolledY + (centerY - Yheight) / 2;
    // The initial width and height of the div can be set in the
    // style sheet with display:none; divid is passed as an argument to // the function
    var o=$(divid);
    var r=o.style;
    r.position='absolute';
    r.top = topOffset + 'px';
    r.left = leftOffset + 'px';
    r.width = Xwidth + 'px';
    //    r.height = Yheight + 'px';
    r.height = 'auto';
    r.display = "block";
}

function display(element) {
    var e = $(element);
    e.style.display = "block";
}

function notDisplay(element) {
    var e = $(element);
    e.style.display = "none";

}

function readKeywords(element) {
    notDisplay(element);
    var field = document.getElementsByName("data[Keyword][Keyword][]");
    var values = "";
    for (i=0; i<field.length; i++) {
        if(field[i].checked) {
            values+=(field[i].value+", ");
        }
    }
    values += "; ";
    var newKeywords = $("KeywordNewKeywords");
    if (newKeywords) {
        values += newKeywords.value;
    }
    var d = $("ResearchProfileSelectedKeywords");
    d.value = values;
}

function readReferenceKeywords(element, num) {
    notDisplay(element);
    var field = document.getElementsByName("data[Reference]["+num+"][Keyword][]");
    var values = "";
    for (i=0; i<field.length; i++) {
        if(field[i].checked) {
            values+=(field[i].value+", ");
        }
    }
    values += "; ";
    var newKeywords = $("Reference"+num+"NewKeywords");
    if (newKeywords) {
        values += newKeywords.value;
    }
    var d = $("Reference"+num+"SelectedKeywords");
    d.value = values;
}

function closeReference(element) {
    notDisplay(element);
    var descField = $(element+"Description");
    var shortDescField = $(element+"ShortDescription");
    shortDescField.value = descField.value.substr(0, 47)+"...";
    $(element+"DisabledShortDescription").value = shortDescField.value;

    var organisation = "";
    var centre = "";
    var department = "";

    var partnerOrganisationSelect = $(element+"PartnerOrganisationId");
    if (partnerOrganisationSelect) {
        organisation = partnerOrganisationSelect.options[partnerOrganisationSelect.selectedIndex].text;
    } else {
        organisation = $(element+"OrganisationName").value;
    }

    var partnerCentreSelect = $(element+"PartnerCentreId");
    if (partnerCentreSelect) {
        centre = partnerCentreSelect.options[partnerCentreSelect.selectedIndex].text;
    } else {
        centre = $(element+"CentreName").value;
    }

    var partnerDepartmentSelect = $(element+"PartnerDepartmentId");
    if (partnerDepartmentSelect) {
        department = partnerDepartmentSelect.options[partnerDepartmentSelect.selectedIndex].text;
    } else {
        department = $(element+"DepartmentName").value;
    }

    var pln = organisation;
    if (centre != "") {
        pln += (" | "+centre);
    }
    if (department != "") {
        pln += (" | "+department);
    }
    var partnerLegalName = $(element+"PartnerLegalName");
    partnerLegalName.value = pln;
    $(element+"DisabledPartnerLegalName").value = partnerLegalName.value;
}

function updateSubmitButtons() {
    Move.element('submitButton', 'submitButton2', 'copy', 2);
    Move.element('submitButton', 'submitButton3', 'copy', 3);
}

function sizeLoading() {
    var h = $("listing").getHeight();
    var w = $("listing").getWidth();

    $("loading").clonePosition($("listing"));
    $("loadingImage").setStyle({
        position: 'absolute',
        left: (w/2 - $("loadingImage").getWidth()/2) + 'px',
        top: (h/2 - $("loadingImage").getHeight()/2) + 'px'
    });
}

function activeRow(element, i) {
    //$("link"+i).show();
    Element.addClassName(element, "hover");
//element.prototype.addClassName("hover");

}

function inactiveRow(element, i) {
    //$("link"+i).hide();
    Element.removeClassName(element, "hover");
//element.prototype.removeClassName("hover");

}

function myToggle(element) {
    if ($(element).visible()) {
        Effect.BlindUp(element);
    } else {
        Effect.BlindDown(element);
    }
    return false;
}

var Move =	{

    copy	:   function(e, target, num)	{

        $(e+'-copy'+num).remove();
        var eId      = $(e);
        var copyE    = eId.cloneNode(true);
        var cLength  = copyE.childNodes.length -1;
        copyE.id     = e+'-copy'+num;

        for(var i = 0; cLength >= i;  i++)	{
            if(copyE.childNodes[i].id) {
                var cNode   = copyE.childNodes[i];
                var firstId = cNode.id;
                cNode.id    = firstId+'-copy'+num;
            }
        }
        $(target).appendChild(copyE);
    },
    element:  function(e, target, type, num)	{
        var eId =  $(e);
        if(type == 'move') {
            $(target).appendChild(eId);
        }

        else if(type == 'copy')	{
            this.copy(e, target, num);
        }
    }
}

