window.onload = function (){
    //doPopuplinks();
    domTableEnhance();
    domListEnhance();
    domDivEnhance();
    doIE6NavFix();
    //if (document.getElementById('wrapper').offsetHeight < window.innerHeight) document.getElementById('wrapper').style.height = window.innerHeight+'px';
}

function doPopuplinks(){
    links = document.getElementsByTagName('a');
    for (i=0;i<links.length;i++){
        if (links[i].getAttribute('class') == 'popup' || links[i].className == 'popup'){
            links[i].setAttribute('onclick','window.open("'+links[i].getAttribute('href')+'","popupwin","width=300,height=200");return false;');
            //links[i].onclick=function() {window.open(links[i].getAttribute('href'),'popupwin',"width=300,height=200");}
        }
    }
}

function doIE6NavFix(){
    if (navigator.userAgent.indexOf('MSIE') != -1) {
       var nav = document.getElementById("nav");
       if (nav) {
            var lis         = nav.getElementsByTagName("li");
            var lis_length  = lis.length;
            for (var i = 0; i < lis_length; i++) {
                lis[i].onmouseover = function() {
                    this.className = "over";
                }
                lis[i].onmouseout = function() {
                    this.className = "";
                }
            }
        }
    }
}

function domTableEnhance() {
    if(!document.createTextNode){return;}
    var tableClass='enhancedtable';
    var colourClass='row1';
    var alltables,bodies,i,j,k,addClass,trs,c,a;
    alltables=document.getElementsByTagName('table');
    for (k=0;k<alltables.length;k++)
    {
        if(!alltables[k].className.match(tableClass)){continue;}
        bodies=alltables[k].getElementsByTagName('tbody');
        for (i=0;i<bodies.length;i++)
        {
            trs=bodies[i].getElementsByTagName('tr')
            for (j=0;j<trs.length;j++)
            {
                if(trs[j].getElementsByTagName('td').length>0)
                {
                    addClass=j%2==0?' '+colourClass:'';
                    trs[j].className=trs[j].className+addClass;
                }
            }
        }
    }
}

function domListEnhance(){
    if(!document.createTextNode){return;}
    var listClass='enhancedlist';
    var colourClass='row1';
    alllists=document.getElementsByTagName('dl');
    for (k=0;k<alllists.length;k++){
        if(!alllists[k].className.match(listClass)){continue;}
        dds=alllists[k].getElementsByTagName('dd')
        for (j=0;j<dds.length;j++){
            addClass=j%2==0?' '+colourClass:'';
            dds[j].className=dds[j].className+addClass;
        }
    }
}

function domDivEnhance(){
    if(!document.createTextNode){return;}
    var listClass='enhanceddiv';
    var colourClass='row1';
    alllists=document.getElementsByTagName('div');
    for (k=0;k<alllists.length;k++){
        if(!alllists[k].className.match(listClass)){continue;}
        dds=alllists[k].getElementsByTagName('div')
        for (j=0;j<dds.length;j++){
            addClass=j%2==0?' '+colourClass:'';
            dds[j].className=dds[j].className+addClass;
        }
    }
}

function profileNav(a){
    dls = document.getElementsByTagName('dl');
    for (i=0;i<dls.length;i++){
        c=0;
        if (dls[i].className) c = dls[i].className;
        if (dls[i].getAttribute('class')) c = dls[i].getAttribute('class');
        if (c != 0){
            if (c.indexOf('profile') != -1)	dls[i].style.display = 'none';
        }
    }
    // this is going to have to be made dynamic somehow, responding to the question options in the db
    if (document.forms.profile.elements['q2'][0].checked){ // content developer
        for(d=35;d<42;d+=2){
            if (document.getElementById('dd'+d)){
                dvs = document.getElementById('dd'+d).getElementsByTagName('div');
                firstDiv=0;
                for(i=0;i<dvs.length;i++){
                    if (dvs[i].className.indexOf('flt') > -1){
                        if (firstDiv==0){
                            firstDiv = 1;
                            dvs[i].style.width = '380px';
                            dvs[i].style.display = 'block';
                        } else {
                            dvs[i].style.display = 'none';
                        }
                    }
                }
            }
        }
    } else if (document.forms.profile.elements['q2'][2].checked){ // enabler
        for(d=35;d<42;d+=2){
            if (document.getElementById('dd'+d)){
                dvs = document.getElementById('dd'+d).getElementsByTagName('div');
                firstDiv=0;
                for(i=0;i<dvs.length;i++){
                    if (dvs[i].className.indexOf('flt') > -1){
                        if (firstDiv==0){
                            firstDiv = 1;
                            dvs[i].style.display = 'none';
                        } else {
                            dvs[i].style.width = '380px';
                            dvs[i].style.display = 'block';
                        }
                    }
                }
            }
        }
    }
    if (a == 'all'){
        for (i=0;i<dls.length;i++){
            c=0;
            if (dls[i].className) c = dls[i].className;
            if (dls[i].getAttribute('class')) c = dls[i].getAttribute('class');
            if (c != 0){
                if (c.indexOf('profile') != -1) dls[i].style.display = 'block';
            }
        }
    } else {
        document.getElementById(a).style.display = 'block';
    }
    checkForCompletion();
}

function validate(f){
    e=document.forms[f].elements;
    if (f == 'mail'){
        if (e.name.value == ''){
            alert('Please enter your name');
            return false;
        }
        if (e.email.value == ''){
            alert('Please enter your eMail address');
            return false;
        }
        if (e.message.value == ''){
            alert('Please enter a message for this recipient');
            return false;
        }
    }

    if (f == 'enews' || f == 'enews2' || f == 'events_mail'){
        if (e.email.value == ''){
            alert('Please enter your eMail address');
            return false;
        }
        if (! e.format[0].checked && ! e.format[1].checked){
            alert('Please choose your preferred format for messages.');
            return false;
        }
    }

    if (f == 'profile'){
        if (e.password.value != '' && e.password.value != e.password2.value){
            alert('Please retype the password precisely.');
            return false;
        }
    }
    if (f == 'change_password'){
        if (e.password_old.value == ''){
            alert('Please enter your old password.');
            return false;
        }
        if (e.password_new.value != '' && e.password_new.value != e.password_new2.value){
            alert('Please enter your new password and retype the password precisely.');
            return false;
        }
    }
    if (f == 'login'){
        if (e.email.value == '' || e.password.value == ''){
            alert('Please enter a valid email address and password to login.');
            return false;
        }
    }
    if (f == 'login2'){
        if (e.email.value == '' || e.password.value == ''){
            alert('Please enter a valid email address and password to login.');
            return false;
        }
    }

    if (f == 'events_1'){
        /*sel = document.getElementsByTagName('select');
        for (s=0;s<sel.length;s++){
            if (sel[s].getAttribute('name').indexOf('quantity') >= 0){
                if(e[sel[s].getAttribute('name')].value == '0'){
                    alert('Please select a quantity of tickets for this event');
                    return false;
                }
            }
        }*/
    }
    if (f == 'events_3'){
        if (e.firstname.value == ''){
            alert('Please enter your first name');
            return false;
        }
        if (e.lastname.value == ''){
            alert('Please enter your last name');
            return false;
        }
        if (e.email.value == ''){
            alert('Please enter your eMail address');
            return false;
        }
        inp = document.getElementsByTagName('input');
        for (i=0;i<inp.length;i++){
            if (inp[i].getAttribute('name').indexOf('register') >= 0){
                if(e[inp[i].getAttribute('name')].value == ''){
                    alert('Please enter a registrant\'s name for this event');
                    return false;
                }
            } else  if (inp[i].getAttribute('name').indexOf('email_') >= 0){
                if(e[inp[i].getAttribute('name')].value == ''){
                    alert('Please enter a registrant\'s eMail address for this event');
                    return false;
                }
            }
        }
    }
    if (f == 'application'){
        if (e.member_type.value == ''){
            alert ('Please select a membership type');
            return false;
        }
        if(e.member_type.value != 10){//Ignore validation of company info for students
            if (e.q1.value == ''){
                alert ('Please enter your company\'s name');
                return false;
            }
            if (e.q12.value == ''){
                alert ('Please enter your company\'s phone number');
                return false;
            }
            if (e.q8.value == ''){
                alert ('Please enter your company\'s address');
                return false;
            }
            if (e.q9.value == ''){
                alert ('Please enter your company\'s city');
                return false;
            }
            if (e.q10.value == ''){
                alert ('Please select your company\'s province');
                return false;
            }
            if (e.country.value == ''){
                alert ('Please select your company\'s country');
                return false;
            }
            if (e.q11.value == ''){
                alert ('Please enter your company\'s postal code');
                return false;
            }
        }
        if (e.firstname.value == ''){
            alert ('Please enter your first name');
            return false;
        }
        if (e.lastname.value == ''){
            alert ('Please enter your last name');
            return false;
        }
        if (e.phone.value == ''){
            alert ('Please enter your phone number');
            return false;
        }
        if (e.email.value == ''){
            alert ('Please enter your eMail address');
            return false;
        }
        if(e.member_type.value == 10){// Validate school name and student id for student
            if (e.school.value == ''){
                alert ('Please enter your schools name');
                return false;
            }
            if (e.student_id.value == ''){
                alert ('Please enter your student ID#');
                return false;
            }
        }
        return true;

    }
}

function calWin(f,e){
    window.open("calendar.html", "calendar", "width=400,height=200,status=yes");
    dateField = document.forms[f].elements[e];
    dateType = "date";
}

boxSlider = 0;
boxObj = '';
speed=10;
targetHeight = '';
function showBox(b,s){
    boxObj = b+'Wrapper';
    if (s) speed=s;
    targetHeight = document.getElementById(b+'box').offsetHeight;
    h=parseInt(document.getElementById(boxObj).style.height);
    h=(h > 0 ? h : 0);
    if (boxSlider) window.clearTimeout(boxSlider);
    if (h==0){
        boxSlider = window.setTimeout("boxSlide('d')", 20);
    } else {
        boxSlider = window.setTimeout("boxSlide('u')", 20);
    }
}

function boxSlide(dir){
    h=parseInt(document.getElementById(boxObj).style.height);
    h=h>0?h:0;
    if (dir == 'd'){
        if (h<(targetHeight - speed)){
            h+=speed;
            document.getElementById(boxObj).style.height = h+'px';
            boxSlider = window.setTimeout("boxSlide('d')", 20);
        } else {
            document.getElementById(boxObj).style.height = targetHeight+'px';
            window.clearTimeout(boxSlider);
        }

    } else {
        if (h>speed){
            h-=speed;
            document.getElementById(boxObj).style.height = h+'px';
            boxSlider = window.setTimeout("boxSlide('u')", 20);
        } else {
            document.getElementById(boxObj).style.height = 0;
            window.clearTimeout(boxSlider);
        }
    }
}


function showStage(s){
    if (document.getElementById('stage0')){
        document.forms['application'].elements['member_type'].selectedIndex = document.forms['application'].elements['nmembershiptype'].selectedIndex;
        document.getElementById('stage0').style.display = 'none';
    }
    document.getElementById('stage1').style.display = 'none';
    document.getElementById('stage2').style.display = 'none';
    document.getElementById('stage3').style.display = 'none';
    document.getElementById('stage'+s).style.display = 'block';
}

// Restrict individuals to individual sectors
function updateSectors(category) {
    switch (category) {
        case 'Associate Member, Non-Voting Rights':
            $("input[type=checkbox][name='sectors[]']:gt(4)").attr("disabled", "disabled");
            break;
    }
}

function setMemberFees(fees, method) {
    var selected = $("#newPayment select[name=member_type]").val();

    var amount  = 0;
    var gst     = 0;
    if (fees[selected]) {
        amount  = fees[selected][method];
        gst     = amount * fees[selected]["gst"];
    }

    $("#newPayment input[name=amount]").val(amount.toFixed(2));
    $("#newPayment input[name=gst]").val(gst.toFixed(2));
}

function memberType2Amount(t){
    if (t=='online' || t=='cheque'){
        tt=document.forms.newPayment.elements.member_type.selectedIndex;
        if (tt==1){
            document.forms.newPayment.elements.amount.value='325.00';
            document.forms.newPayment.elements.gst.value='16.25';
            if (t != 'online'){
                document.forms.newPayment.elements.amount.value='350.00';
                document.forms.newPayment.elements.gst.value='17.50';
            }
        } else if (tt==2){
            document.forms.newPayment.elements.amount.value='625.00';
            document.forms.newPayment.elements.gst.value='31.25';
            if (t != 'online'){
                document.forms.newPayment.elements.amount.value='650.00';
                document.forms.newPayment.elements.gst.value='32.50';
            }
        } else if (tt==3){
            document.forms.newPayment.elements.amount.value='325.00';
            document.forms.newPayment.elements.gst.value='16.25';
            if (t != 'online'){
                document.forms.newPayment.elements.amount.value='350.00';
                document.forms.newPayment.elements.gst.value='17.50';
            }
        } else if (tt==4){
            document.forms.newPayment.elements.amount.value='125.00';
            document.forms.newPayment.elements.gst.value='6.25';
            if (t != 'online'){
                document.forms.newPayment.elements.amount.value='150.00';
                document.forms.newPayment.elements.gst.value='7.50';
            }
        } else if (tt==5){
            document.forms.newPayment.elements.amount.value='1225.00';
            document.forms.newPayment.elements.gst.value='61.25';
            if (t != 'online'){
                document.forms.newPayment.elements.amount.value='1250.00';
                document.forms.newPayment.elements.gst.value='62.50';
            }
        }
    } else {
        if (t.indexOf('_')){
            t=t.split("_");
            t=t[1];
        }
        document.forms.newPayment.elements.member_type.selectedIndex=t;
        if (t==1){
            document.forms.newPayment.elements.amount.value='325.00';
            document.forms.newPayment.elements.gst.value='16.25';
        }
        if (t==2){
            document.forms.newPayment.elements.amount.value='625.00';
            document.forms.newPayment.elements.gst.value='31.25';
        }
        if (t==3){
            document.forms.newPayment.elements.amount.value='325.00';
            document.forms.newPayment.elements.gst.value='16.25';
        }
        if (t==4){
            document.forms.newPayment.elements.amount.value='125.00';
            document.forms.newPayment.elements.gst.value='6.25';
        }
        if (t==5){
            document.forms.newPayment.elements.amount.value='1225.00';
            document.forms.newPayment.elements.gst.value='61.25';
        }
    }

}

scroll_pos = 0;

function projectsScroll(dir){
    direction = dir;
    if (navigator.userAgent.indexOf("Camino") != -1){
    var amount=10 * dir;
    } else {
    var amount=10 * dir;
    }

    if (document.getElementById && dir != 0){
        var scroll_wrapper_width = 560;
        var scroll_content_width = document.getElementById("projectsIcons").offsetWidth;

        if ((scroll_pos >= (scroll_wrapper_width - scroll_content_width)) && (scroll_pos <=0)){
            scroll_pos=scroll_pos+amount;
            if (scroll_pos > 0){
                scroll_pos = 0;
            } else if (scroll_pos < (scroll_wrapper_width - scroll_content_width)) {
                scroll_pos = (scroll_wrapper_width - scroll_content_width)
            }
            document.getElementById("projectsIcons").style.left=scroll_pos+"px";
        }
        scrolltimer = setTimeout("projectsScroll(direction)", 1);
    } else {
        clearTimeout(scrolltimer);
    }
}
function showPresenter(pid, l) {
    document.getElementById('presenter'+ pid).style.left = l;
}
function SetVisible(id, visible) {
    var display = visible ? 'block' : 'none';
    document.getElementById(id).style.display = display;
}