﻿// SupressEnter usage: to supress "Enter" key press on form fields (i.e. to take no action).
function SupressEnter(e) {
    var charCode;
    if (window.ActiveXObject) {
        charCode = (event.charCode) ? event.charCode : ((event.keyCode) ? event.keyCode : ((event.which) ? event.which : 0));
    }
    else {
        charCode = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0));
    }

    if (charCode == 13) {
        return false;
    }
}

function showCJModalBox(mediaType, mediaFilePath, catalogueId) {
    //First: Call SearchClick.aspx to log this search results click in the database
    var uriLogClick = "/som/SearchClick.aspx?s=" + $.getQueryString({ ID: "s" }) +
                "&catalogueid=" + catalogueId + "&absoluteuri=" + mediaFilePath + "&r=" + mediaFilePath;

    var x = $.get("/som/SearchClick.aspx", {
        s: $.getQueryString({ ID: "s" }),
        CatalogueId: catalogueId,
        au: mediaFilePath,
        r: mediaFilePath
    });

    // Replace "%20" with " " in the mediaFilePath parameter
    try {
        mediaFilePath = mediaFilePath.replace(/%20/g, " ");
    } catch (e) { }

    //First: Deal with the Mask / Overlay
    //Get the screen height and width
    var maskHeight = $(document).height();
    var maskWidth = $(window).width();

    //Set heigth and width to mask to fill up the whole screen
    $('#cfd_cj_modalbox_mask').css({ 'width': maskWidth, 'height': maskHeight });

    //transition effect
    $('#cfd_cj_modalbox_mask').fadeTo("fast", 0.8);
    $('#cfd_cj_modalbox_mask').fadeIn(500);


    //Get the window height and width
    var winH = $(window).height();
    var winW = $(window).width();


    //Second: Deal with modal window
    var id = '#cfd_cj_modalbox';

    //Set the popup window to center
    $(id).css('top', winH / 2 - $(id).height() / 2);
    $(id).css('left', winW / 2 - $(id).width() / 2);

    //Depending on the mediaType variable, add the appropriate flash player to modal window
    switch (mediaType.toLowerCase()) {
        case 'video':
            var playerPath = '/som/media/flash/flvplayer.swf';
            var isStreaming = false;
            // If the mediaFilePath variable contains "/som/dinamic-content/videostreaming/" then it's a streamed file,
            //  so configure it for streaming server use
            
            var iFilePath = mediaFilePath.indexOf('/som/dinamic-content/videostreaming/');
            if (iFilePath > -1) {
                isStreaming = true;
                // Remove the path to the videostreaming
                mediaFilePath = mediaFilePath.substring(iFilePath, mediaFilePath.length).replace("/som/dinamic-content/videostreaming/", "");
            }

            //<embed height="300" width="400" allowfullscreen="true" allowscriptaccess="always" 
            //src="/som/media/flash/flvplayer.swf" 
            //flashvars="file=whatever.mp4&amp;config=http://www.som.cranfield.ac.uk/som/media/flash/config.xml"></embed>
            if (isStreaming == true) {
                $(id + ' #cfd_modalplayer').flash({
                    flashvars: { file: mediaFilePath, autostart: 'true', config: '/som/media/flash/config.xml' },
                    src: playerPath,
                    width: 640,
                    height: 360
                });
            } else {
                $(id + ' #cfd_modalplayer').flash({
                    flashvars: { autostart: 'true' },
                    src: playerPath + '?file=' + mediaFilePath,
                    width: 640,
                    height: 360
                });
            }
            break;
        case 'audio':
            var playerPath = '/som/media/flash/flvplayer.swf';
            var isStreaming = false;
            // If the mediaFilePath variable contains "/som/dinamic-content/videostreaming/" then it's a streamed file,
            //  so configure it for streaming server use

            var iFilePath = mediaFilePath.indexOf('/som/dinamic-content/videostreaming/');
            if (iFilePath > -1) {
                isStreaming = true;
                // Remove the path to the videostreaming
                mediaFilePath = mediaFilePath.substring(iFilePath, mediaFilePath.length).replace("/som/dinamic-content/videostreaming/", "");
            }

            //<embed height="300" width="400" allowfullscreen="true" allowscriptaccess="always" 
            //src="/som/media/flash/flvplayer.swf" 
            //flashvars="file=whatever.mp4&amp;config=http://www.som.cranfield.ac.uk/som/media/flash/config.xml"></embed>
            if (isStreaming == true) {
                $(id + ' #cfd_modalplayer').flash({
                    flashvars: { file: mediaFilePath, autostart: 'true', config: '/som/media/flash/config.xml', image: '/som/media/images/audiobackground.png', controlbar: 'bottom' },
                    src: playerPath,
                    width: 640,
                    height: 360
                });
            } else {
                $(id + ' #cfd_modalplayer').flash({
                    flashvars: { file: mediaFilePath, autostart: 'true', image: '/som/media/images/audiobackground.png', controlbar: 'bottom' },
                    src: playerPath,
                    width: 640,
                    height: 360
                });
            }
            break;

        case 'image':
            $(id + ' #cfd_modalplayer').html('<img src=' + mediaFilePath + ' border=none />');
            break;
    }

    //transition effect
    $(id).fadeIn(1000);
}
function closeCJVideoBox() {
    $('#cfd_cj_modalbox_mask').hide();
    $('#cfd_cj_modalbox').hide();
    $('#cfd_cj_modalbox #cfd_modalplayer').html('');
}
$(document).ready(function() {
    //if close button is clicked
    $('#cfd_cj_modalbox a.cfd_close').click(function(e) {
        //Cancel the link behavior
        e.preventDefault();

        closeCJVideoBox();
    });

    //if mask is clicked
    $('#cfd_cj_modalbox_mask').click(function() {
        closeCJVideoBox();
    });
});

// Content & Sub Navigation Height
function setDivHeights() {
    var iLeftHeight = $("#cfd_sub_navigation").offsetHeight;
    var iRightHeight = $("#ctl00_cphMain_divMainContent").offsetHeight;
    if (iLeftHeight > iRightHeight) {
        $("#ctl00_cphMain_divMainContent").css("height", iLeftHeight);
    }
    else {
        $("#cfd_sub_navigation").css("height", iRightHeight);
    }
}

// Click appropriate button for in-focus text input on Enter keypress
//      onkeydown="return submitOnEnter(event,'ButtonIdHere');"
// ------------------------------------------------------------------
function submitOnEnter(e, c) {
    var keynum;
    var keychar;
    var numcheck;

    if (window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }

    if (keynum == 13) {
        if (document.getElementById(c)) {
            var btnToClick = document.getElementById(c)
            btnToClick.click();
        }
        return false;
    }
}

/* MSc JS */

var btnclasses = new Array();
btnclasses[0] = 0;
btnclasses[1] = new Array();
btnclasses[2] = new Array();
btnclasses[3] = new Array();
btnclasses[4] = new Array();
btnclasses[5] = new Array();

//backwards compatibility for getElementById
if (document.all && !document.getElementById) {
    document.getElementById = new Function('var expr = /^\\w[\\w\\d]*$/, elname=arguments[0]; if(!expr.test(elname)) { return null; } else if(eval("document.all."+elname)) { return eval("document.all."+elname); } else return null;')
}

function msc_navover(nav, btn, state) {
    if (!document.getElementById) return;
    var button = document.getElementById('msc_' + nav + '_' + btn);
    if (state == 1) {
        btnclasses[nav][btn] = button.className;
        button.className = button.className.substring(0, button.className.length - 1) + '1'; //'msc_nav'+nav+'_1';
    } else {
        button.className = btnclasses[nav][btn];
    }
}

var xl = 0;

function msc_togglexlist(parentlist, li) {
    if (!document.getElementById) return;
    //iterate through li elements in msc_xlist
    var uls = document.getElementById(parentlist).getElementsByTagName('ul');

    var ulbasename = (parentlist == 'msc_xlist') ? 'msc_xl' : parentlist.substring(0, 8);


    for (var i = 0; i < uls.length; i++) {
        //skip child elements
        //if(lis[i].className!='msc_xl') continue;

        //hide others / toggle current
        if (uls[i].id != ulbasename + li + '_ul') {
            msc_show_element(uls[i].id, 0);
        } else {
            //msc_show_element(uls[i].id, 1); 
            uls[i].style.display = (uls[i].style.display == 'block') ? 'none' : 'block';
        }
    }

    //a[0].style['color'] = (over) ? '#5a7b97' : '#5a7b87';
}

function msc_listover(i, state) {
    if (!document.getElementById) return;
    var el = document.getElementById('msc_xl' + i);
    el.className = 'msc_xl' + state;
}

function msc_showrightpanel(panelid) {
    //1. hide all rightpanel content divs
    var els = msc_getElementsByClass('msc_hidden', document.getElementById('msc_rightpanel'), 'div');
    for (var i = 0; i < els.length; i++) {
        msc_show_element(els[i].id, 0);
    }
    //2. show chosen content
    msc_show_element('msc_xl' + panelid + '_content', 1);
}


function mscm_groupproject(panelid) {
    document.getElementById("msc_xl2_1_ul").style.display = 'none';
    document.getElementById("msc_xl2_2_ul").style.display = 'none';

    //1. hide all rightpanel content divs
    var els = msc_getElementsByClass('msc_hidden', document.getElementById('msc_rightpanel'), 'div');
    for (var i = 0; i < els.length; i++) {
        msc_show_element(els[i].id, 0);
    }
    //2. show chosen content
    msc_show_element('msc_xl' + panelid + '_content', 1);
}





//utility functions
function msc_getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}
function msc_move_element(elid, l, t) {
    if (!document.getElementById) return;
    document.getElementById(elid).style.left = l + 'px';
    document.getElementById(elid).style.top = t + 'px';
}
function msc_show_element(elid, v) {
    if (!document.getElementById) return;
    document.getElementById(elid).style.display = v ? 'block' : 'none';
}
function msc_changebackground(el, img) {
    if (!document.getElementById) return;
    document.getElementById(el).style.background = 'url(' + img + ')';
}

/* MBA DEFENCE SECTION SCRIPT */

//JavaScript processing of GET variables to show correct page section on load - should be replaced with server side equivalent
function mba_getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1].replace('+', ' ');
        }
    }
    return '';
}

//hide divs with class="mba_hidden" in parent & show el
function mba_showcontent(parent, el) {
    if (!document.getElementById(parent)) return;
    //1. hide all content divs in parent
    var els = mba_getElementsByClass('mba_hidden', document.getElementById(parent), 'div');
    for (var i = 0; i < els.length; i++) {
        mba_show_element(els[i].id, 0);
    }
    //2. show chosen content
    mba_show_element(el, 1);
}

//show content and hide list item
function mba_leftside(l) {
    //parent id = mba_content_left
    //list id = mba_list0
    //li id = 'mba_list0_li' + l
    mba_showcontent('mba_content_left', 'mba_content' + l);
    var els = document.getElementById('mba_list0').getElementsByTagName('li');
    for (var i = 0; i < els.length; i++) {
        mba_show_element(els[i].id, 1);
    }
    mba_show_element('mba_list0_li' + l, 0);

}

//set initial content based on GET variables
//right section + expanding lists on left side
function mba_loadrhsection() {
    //show right side section
    var getvar = mba_getQueryVariable('section');
    if (getvar.length > 0 && mba_inarray(getvar, mbaSections)) {
        mba_showcontent('mba_content_right', 'mba_' + getvar);
    }
    //expand list
    var expand = mba_getQueryVariable('expand');
    var xlist = mba_getQueryVariable('list');


    if (expand.length > 0) {
        //default list id is mba_list0... set list in query string if not mba_list0
        //expand=n sets index of list to expand... expand=[n] => mba_list0_li[n]
        xlist = (xlist.length > 0) ? xlist : 'mba_list0';
        mba_togglelist(xlist, expand);
    }

}

//simple in array function
function mba_inarray(needle, haystack) {
    for (var i = 0; i < haystack.length; i++) {
        if (haystack[i] == needle) return true;
    }
    return false;
}

//backwards compatibility for getElementById
if (document.all && !document.getElementById) {
    document.getElementById = new Function('var expr = /^\\w[\\w\\d]*$/, elname=arguments[0]; if(!expr.test(elname)) { return null; } else if(eval("document.all."+elname)) { return eval("document.all."+elname); } else return null;')
}

//expanding lists
//similar to MSc site - see notes
function mba_togglelist(parentlist, el) {
    if (!document.getElementById(parentlist)) return;
    //iterate through li elements in mba_list
    var uls = document.getElementById(parentlist).getElementsByTagName('ul');
    var ulbasename = (parentlist.substr(0, 8) == 'mba_list') ? 'mba_ul' : parentlist.substring(0, 8);

    for (var i = 0; i < uls.length; i++) {
        //skip child elements
        //if(lis[i].className!='mba_ul') continue;

        //hide others / toggle current
        if (uls[i].id != ulbasename + el) {
            mba_show_element(uls[i].id, 0);
        } else {
            var expand = (uls[i].style.display == 'block') ? false : true;
            uls[i].style.display = (expand) ? 'block' : 'none';
        }
    }

    //also check for divs instead of uls
    var divs = document.getElementById(parentlist).getElementsByTagName('div');
    var divbasename = parentlist + '_div';
    for (var i = 0; i < divs.length; i++) {
        if (divs[i].id != divbasename + el) {
            mba_show_element(divs[i].id, 0);
        } else {
            var expand = (divs[i].style.display == 'block') ? false : true;
            divs[i].style.display = (expand) ? 'block' : 'none';
        }
    }

    //set arrow styles
    var lis = document.getElementById(parentlist).getElementsByTagName('li');
    for (var i = 0; i < lis.length; i++) {
        //mba_list0_li#
        if (lis[i].id.substr(0, parentlist.length) == parentlist) {
            document.getElementById(lis[i].id).className = (lis[i].id == parentlist + '_li' + el && expand) ? 'mba_expanded' : '';
        }
    }
}


//expand selected diary entry and collape others
function mba_diary_expand(el) {
    //if current entry is expanded, collapse & return
    if (document.getElementById('mba_diaryentry' + el).className == 'mba_currententry') {
        document.getElementById('mba_diaryentry' + el).className = '';
        //document.getElementById('mba_more'+el).className='mba_more';
        mba_show_element('mba_diarytext' + el, 0);
        return;
    }

    //collapse others
    var els = mba_getElementsByClass('mba_currententry', document.getElementById('mba_diary'), 'li');
    for (var i = 0; i < els.length; i++) {
        document.getElementById(els[i].id).className = '';
    }
    var els = mba_getElementsByClass('mba_morex', document.getElementById('mba_diary'), 'div');
    for (var i = 0; i < els.length; i++) {
        document.getElementById(els[i].id).className = 'mba_more';
    }
    var els = mba_getElementsByClass('mba_diarytext', document.getElementById('mba_diary'), 'div');
    for (var i = 0; i < els.length; i++) {
        mba_show_element(els[i].id, 0);
    }
    //set class & expand text
    document.getElementById('mba_diaryentry' + el).className = 'mba_currententry';
    mba_show_element('mba_diarytext' + el, 1);

}

//list rollovers - set class name
function mba_listover(i, state) {
    if (!document.getElementById) return;
    var el = document.getElementById('mba_ul' + i);
    el.className = 'mba_ul' + state;
}

//---- mba menu based on SuckerTree 1.1 (http://www.dynamicdrive.com/style/)
function mba_buildsubmenus() {
    var menuid = 'mba_navlist';
    if (document.getElementById(menuid)) {
        var ultags = document.getElementById(menuid).getElementsByTagName("ul")
        for (var t = 0; t < ultags.length; t++) {
            ultags[t].parentNode.onmouseover = function() {
                this.getElementsByTagName("ul")[0].style.display = "block"
            }
            ultags[t].parentNode.onmouseout = function() {
                this.getElementsByTagName("ul")[0].style.display = "none"
            }
        }
        for (var t = ultags.length - 1; t > -1; t--) { //loop through all sub menus again, and use "display:none" to hide menus (to prevent possible page scrollbars
            ultags[t].style.visibility = "visible"
            ultags[t].style.display = "none"
        }
        //piggyback rollover image load on this function to avoid bloat
        mba_imgload();
    }
}
if (window.addEventListener)
    window.addEventListener("load", mba_buildsubmenus, false)
else if (window.attachEvent)
    window.attachEvent("onload", mba_buildsubmenus)
//---- end mba menu script

//rollover scripts
var mba_imgids = new Array('mba_btn1', 'mba_btn2');
var mba_srcs = new Array('request-a-brochure.gif', 'apply-now.gif');
var mba_imgwidth = new Array(213, 213);
var mba_imgheight = new Array(87, 41);
var mba_images = new Array();
var mba_imgcount = mba_imgids.length;
var mba_imgloaded = false;

function mba_imgload() {
    if (!document.images) return;
    for (var i = 0; i < mba_imgcount; i++) {
        mba_images[i] = new Image(mba_imgwidth[i], mba_imgheight[i]);
        mba_images[(i + mba_imgcount)] = new Image(mba_imgwidth[i], mba_imgheight[i]);
        mba_images[i].src = document.images[mba_imgids[i]].src;

        //*** remove relpath when using absolute srcs ***
        mba_images[(i + mba_imgcount)].src = '/som/mba/images/rollovers/over/' + mba_srcs[i];
    }
    mba_imgloaded = true;
}

function mba_rollover(i, over) {
    if (!mba_imgloaded || !document.images) return;
    //alert('document.images['+mba_imgids[i]+'].src=mba_images['+(i+over*mba_imgcount)+'].src='+mba_images[i+over*mba_imgcount].src );
    document.images[mba_imgids[i]].src = mba_images[i + over * mba_imgcount].src;
}

//utility functions
function mba_getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}
function mba_move_element(elid, l, t) {
    if (!document.getElementById(elid)) return;
    document.getElementById(elid).style.left = l + 'px';
    document.getElementById(elid).style.top = t + 'px';
}
function mba_show_element(elid, v) {
    if (!document.getElementById(elid)) return;
    document.getElementById(elid).style.display = v ? 'block' : 'none';
}
function mba_changebackground(el, img) {
    if (!document.getElementById(el)) return;
    document.getElementById(el).style.background = 'url(' + img + ')';
}


var regions = new Array('uk', 'europe', 'middle_east', 'africa', 'north_america', 'asia', 'australasia');
var maps = new Array();
for (var i = 0; i < regions.length; i++) {
    maps[i] = new Image(566, 343);
    maps[i].src = '/som/dinamic-content/mba/images/worldmap_' + regions[i] + '.gif';
}

//map rollovers
function mba_mapover(map) {
    if (!document.images) return;
    //var loc='/som/mba/mba/images/world-map/worldmap'+map+'.gif';//
    //alert(loc);//
    document.images['worldmap'].src = '/som/dinamic-content/mba/images/worldmap' + map + '.gif';
}

/* END MBA DEFENCE SCRIPT */


/* MBA SCROLLING SCRIPT */
/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Mr J | http://www.huntingground.net/ */

scrollStep = 1

timerLeft = ""
timerRight = ""

function toLeft(id) {
    document.getElementById(id).scrollLeft = 0
}

function scrollDivRight(id) {
    clearTimeout(timerRight)
    document.getElementById(id).scrollLeft += scrollStep
    timerRight = setTimeout("scrollDivRight('" + id + "')", 10)
}

function scrollDivLeft(id) {
    clearTimeout(timerLeft)
    document.getElementById(id).scrollLeft -= scrollStep
    timerLeft = setTimeout("scrollDivLeft('" + id + "')", 10)
}

function toRight(id) {
    document.getElementById(id).scrollLeft = document.getElementById(id).scrollWidth
}

function stopMe() {
    clearTimeout(timerRight)
    clearTimeout(timerLeft)
}


/* END MBA SCROLLING SCRIPT */

/* MBA PAGES INLINE SCRIPT PORTED FROM OLD WEBSITE */
function css_change_style(obj) {
    var all = document.getElementsByTagName('*');
    var id_only = [];
    for (var i = 0; i < all.length; ++i) {
        if (all[i].className == 'flag') {
            id_only.push(all[i]);
        }
    }
    for (var j = 0; j < id_only.length; ++j) {
        var e = id_only[j];
        e.style.backgroundColor = '#008a9b';
    }
    obj.style.backgroundColor = '#43a9b6';
}

function fudge() {
    return;
    document.getElementById('mba_Ola').style.display = 'none';
}
function Showtop(str) {
    if (str == 1) {
        document.getElementById("mba_profiles").style.display = "";
        document.getElementById("mba_content_right").style.background = "#cce8ed";

    } else {
        document.getElementById("mba_profiles").style.display = "none";
        document.getElementById("mba_content_right").style.background = "0098af";

    }
}
/* END MBA PAGES INLINE SCRIPT PORTED FROM OLD WEBSITE */

$(document).ready(function() {
    $("body.oep .faq-item .trigger").click(function() {
        if ($(this).parent(".faq-item").hasClass("show")) {
            $(this).prev().hide();
            $(this).parent(".faq-item").removeClass("show");
        }
        else {
            $(this).prev().show();
            $(this).parent(".faq-item").addClass("show");
        }
    });
});


/* pdf loader specific methods */

var PDFLoader = {};
PDFLoader.GetWindowUrl = function(noPhoto) {
    var inputs = document.getElementsByTagName("input");
    var resultTkns = '';
    var firstCVName = '';
    var selectedCount = 0;
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type == "checkbox" && inputs[i].id.indexOf('chbEx') > 0 && inputs[i].checked) {
            if (firstCVName == '') {
                firstCVName = inputs[i].getAttribute("rel");
            }
            var tkns = inputs[i].id.split('_');
            resultTkns += tkns[0] + '.';
            selectedCount++;
        }
    }
    if (selectedCount == 0) {
        alert('Please select at least one CV in the list.');
        return false;
    }
    var result = '/som/careers/cvdetailspdfproxy.aspx?issearch=True&cvids=' + resultTkns + '&FileName=Cranfield SoM&Name=' + firstCVName + (noPhoto ? "&NoPhoto=1" : "");
    window.open(result);
}

/* pdf loader specific methods */

var Career = {};

Career.EnableDisableIfOtherValidator = function(me, valId) {
Career.EnableValidation(me.checked, valId)
}

Career.EnableValidation = function(enableMe) {
    for (var i = 1; i < arguments.length; i++) {
        ValidatorEnable(document.getElementById(arguments[i]), enableMe);
    }
}

Career.ReloadMe = function() {
    window.location.href = window.location.href;
    window.location.reload();
}