// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function rate(component, id){
    document.getElementById('hiddenVoteName'+id.toString()).value = component.name;
    document.getElementById('hiddenVoteValue'+id.toString()).value = component.attributes['value'].nodeValue + "";
    document.getElementById('votes_form'+id.toString()).onsubmit();
}

function showHideComponent(component_id){
    component = document.getElementById(component_id);
    component.style.display = component.style.display == 'none' ? 'inline' : 'none';
}

function pick_image(id, component){

    // Clean previous selection
    image_picker_div = document.getElementById('image_picker');
    images = image_picker_div.getElementsByTagName("img");
    for (i = 0; i < images.length; i++) {
        images[i].style.borderColor = '#d5d5d5';
        images[i].style.borderStyle = 'solid';
        images[i].style.borderWidth = '3px';
    }
    // Style the selected one and store the id value in the hidden field, if the hidden value is the same as the selected one we clean all selections.
    if (document.getElementById('hiddenImageId').value != id) {
        component.style.borderColor = '#184c9a';
        component.style.borderStyle = 'solid';
        component.style.borderWidth = '3px';
        document.getElementById('hiddenImageId').value = id;
    }
    else {
        document.getElementById('hiddenImageId').value = null;
    }
}

// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all ? true : false

// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) 
    document.captureEvents(Event.MOUSEMOVE)

// Set-up to use getMouseXY function onMouseMove
document.onclick = getMouseXY;

// Temporary variables to hold mouse x-y pos.s
var tempX = 0
var tempY = 0

// Main function to retrieve mouse x-y pos.s

function getMouseXY(e){
    if (IE) { // grab the x-y pos.s if browser is IE
        tempX = event.clientX + document.body.scrollLeft
        tempY = event.clientY + document.body.scrollTop
    }
    else { // grab the x-y pos.s if browser is NS
        tempX = e.pageX
        tempY = e.pageY
    }
    // catch possible negative values in NS4
    if (tempX < 0) {
        tempX = 0
    }
    if (tempY < 0) {
        tempY = 0
    }
    return true;
}

function revert(el){
    drop_zone = document.getElementById('print_queue');
    return (Position.page(el)[0] < drop_zone.offsetLeft || Position.page(el)[0] > (drop_zone.offsetLeft + drop_zone.scrollWidth) || Position.page(el)[1] < drop_zone.offsetTop || Position.page(el)[1] > (drop_zone.offsetTop + drop_zone.scrollHeight));
}

function auto_complete_on_select(element, selectedElement)
{
    var entityParts = selectedElement.id.split('::');
    var entityType = entityParts[0];
    var entityId   = entityParts[1];
    document.getElementById(entityType).value = entityId;
}

function setValueStandard(componentId, value, form) {
    if (form) {
        var e = form.elements,i
        for(i in e) {
            if (e[i].id == componentId) {
                elem = e[i];
                break;
            }
        }    
    } else {
        elem = document.getElementById(componentId);    
    }  
    elem.value = value;
}

function clean(formId) {
    form = document.getElementById(formId);
    form.reset();
}

function refresh_filter(div, url) {
    params = "?";
    if (document.getElementById("state").value != -1){
        params += 'state='+document.getElementById("state").value+'&'
    }
    if (document.getElementById("course").value != 0){
        params += 'course='+document.getElementById("course").value+'&'
    }
    if (document.getElementById("level_id").value != 0){
        params += 'level_id='+document.getElementById("level_id").value+'&'
    }
    if (document.getElementById("district").value != 0){
        params += 'district='+document.getElementById("district").value+'&'
    }
    if (document.getElementById("school").value != 0){
        params += 'school='+document.getElementById("school").value+'&'
    }
    refresh_div(div, url+params)
}

function refresh_standard_filter(div, url) {
    params = "?";
    if (document.getElementById("state_std").value != -1){
        params += 'state='+document.getElementById("state_std").value+'&'
    }
    if (document.getElementById("course_std").value != 0){
        params += 'course='+document.getElementById("course_std").value+'&'
    }
    if (document.getElementById("level_id_std").value != 0){
        params += 'level_id='+document.getElementById("level_id_std").value+'&'
    }
    if (document.getElementById("tag") && document.getElementById("tag").value != 0){
        params += 'tag='+document.getElementById("tag").value+'&'
    }
    refresh_div(div, url+params)
}


function refresh_users(div, url){    
    if (document.getElementById("search_name").value != ""){
        url += '?search_name='+document.getElementById("search_name").value
    }
    refresh_div(div, url)
}

function refresh_banks(div, url) {
    params = "?";
    if (document.getElementById("bank_state_id").value != -1){
        params += 'state='+document.getElementById("bank_state_id").value+'&'
    }
    if (document.getElementById("bank_course_id").value != 0){
        params += 'course='+document.getElementById("bank_course_id").value+'&'
    }
    if (document.getElementById("bank_level_id").value != 0){
        params += 'level_id='+document.getElementById("bank_level_id").value
    }    
    refresh_div(div, url+params)
}


function refresh_div(div, url){
    new Ajax.Updater(div, url,{ 
        asyncronous: false
    })
}

var upload_number = 2;
function addFileInput() { 	
    var d = document.createElement("fieldset");        
    var b = document.createElement("br");
    d.appendChild(b);
    
    var file = document.createElement("input");
    file.setAttribute("type", "file");
    file.setAttribute("name", "new_file["+upload_number+"]");
    file.setAttribute("id", "new_file_"+upload_number);
    file.setAttribute("size", "30");
    d.appendChild(file);        
        
    var l = document.createElement("label")
    l.setAttribute("class", "text_field set")
    l.setAttribute("for", "new_file_"+upload_number)
    l.textContent = "Name of File:"
    d.appendChild(l);

    var text = document.createElement("input");
    text.setAttribute("type", "text");
    text.setAttribute("name", "new_file_name["+upload_number+"]");
    text.setAttribute("id", "new_file_name_"+upload_number);
    text.setAttribute("size", "30");
    d.appendChild(text);
        
    document.getElementById("moreUploads").appendChild(d);        
    upload_number++;
}


function clean_auto_completes(){
    district_id = document.getElementById('job_district_id');
    if (district_id) district_id.value = null;
    school_id = document.getElementById('job_school_id');
    if (school_id) school_id.value = null;
    course_id = document.getElementById('job_course_id');
    if (course_id) course_id.value = null;
    level_id = document.getElementById('job_level_id');
    if (level_id) level_id.value = null;
    
    district_name = document.getElementById('district_name');
    if (district_name) district_name.value = "";
    school_name = document.getElementById('school_name');
    if (school_name) school_name.value = "";
    course_title = document.getElementById('course_title');
    if (course_title) course_title.value = "";
    level_name = document.getElementById('level_name');
    if (level_name) level_name.value = "";    
}

var Standards = {
    init: function(){
        $$('#standard_list li *').invoke("observe", 'mouseover', Standards.showElement);
        $$('#standard_list li').invoke("observe", 'mouseout', Standards.hideElement);
    },
    showElement: function(event){
        var element = event.element();
        var dl = null;

        if(element.match("li"))
            dl = element;
        else {
            dl = element.up("#standard_list li");
        }

        var options = dl.down("div.options_container");
        if(options){
            dl.addClassName("active");
            options.show();
        }
    },
    hideElement: function(event){
        var element = event.element();
        var dl = null;

        if(element.match("li")){
            dl = element;
        }else{
            dl = element.up("#standard_list li")
        }

        dl.removeClassName("active");
        var options = dl.down("div.options_container");
        options.hide();
    }
}

var Assessments = {
    showAddQuestion: function(){
        $$('.add_questions').each(
            function(element){
                element.show()
            });
    },
    hideAddQuestion: function(){
        $$('.add_questions').each(
            function(element){
                element.hide()
            });
    }
}
