<!--
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');

function levenshtein (s1, s2) {
      // Calculate Levenshtein distance between two strings
    //
    // version: 909.322
    // discuss at: http://phpjs.org/functions/levenshtein      // +            original by: Carlos R. L. Rodrigues (http://www.jsfromhell.com)
      // +            bugfixed by: Onno Marsman
      // +             revised by: Andrea Giammarchi (http://webreflection.blogspot.com)
      // + reimplemented by: Brett Zamir (http://brett-zamir.me)
      // + reimplemented by: Alexander M Beedie      // *                example 1: levenshtein('Kevin van Zonneveld', 'Kevin van Sommeveld');
      // *                returns 1: 3
    if (s1 == s2) {
        return 0;
    }
    var s1_len = s1.length;
    var s2_len = s2.length;
    if (s1_len === 0) {
        return s2_len;    }
    if (s2_len === 0) {
        return s1_len;
    }
     // BEGIN STATIC
    var split = false;
    try{
        split=!('0')[0];
    } catch (e){        split=true; // Earlier IE may not support access by string index
    }
    // END STATIC
    if (split){
        s1 = s1.split('');        s2 = s2.split('');
    }

    var v0 = new Array(s1_len+1);
    var v1 = new Array(s1_len+1);
    var s1_idx=0, s2_idx=0, cost=0;
    for (s1_idx=0; s1_idx<s1_len+1; s1_idx++) {
        v0[s1_idx] = s1_idx;
    }    var char_s1='', char_s2='';
    for (s2_idx=1; s2_idx<=s2_len; s2_idx++) {
        v1[0] = s2_idx;
        char_s2 = s2[s2_idx - 1];
         for (s1_idx=0; s1_idx<s1_len;s1_idx++) {
            char_s1 = s1[s1_idx];
            cost = (char_s1 == char_s2) ? 0 : 1;
            var m_min = v0[s1_idx+1] + 1;
            var b = v1[s1_idx] + 1;            var c = v0[s1_idx] + cost;
            if (b < m_min) {
                m_min = b; }
            if (c < m_min) {
                m_min = c; }            v1[s1_idx+1] = m_min;
        }
        var v_tmp = v0;
        v0 = v1;
        v1 = v_tmp;    }
    return v0[s1_len];
}

function is_image_filename(fieldvalue)
{
    var extension = new Array();

    extension[0] = ".png";
    extension[1] = ".gif";
    extension[2] = ".jpg";
    extension[3] = ".jpeg";


    // No other customization needed.
    var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.'));
    for(var i = 0; i < extension.length; i++)
    {
        if(thisext.toLowerCase() == extension[i])
        {
            return true;
        }
    }

    return false;
}

function popUpWindow(url,popup_name,toolbar_,location_,directories_,status_,menubar_,scrollbars_,resizable_,width_,height_,page_name) {
    if ( typeof( window.innerWidth ) == 'number' ) {
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
    } else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    } else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    var leftPos = (my_width-width_)/2, topPos = (my_height-height_)/2;

    sealWin=window.open(url,popup_name,'top='+topPos+',left='+leftPos+',toolbar=' + toolbar_ + ',location=' + location_ + ',directories=' + directories_ + ',status=' + status_ + ',menubar=' + menubar_ + ',scrollbars=' + scrollbars_ + ',resizable=' + resizable_ + ',width=' + width_ + ',height=' + height_ + '');
    self.name = page_name;
}

// here is the sample code to call the function:
// popUpWindow('index.php','give_your_popUp_a_name','0','0','0','0','0','0','0','359','225','give_your_page_where_you_are_putting_this_code_a_name')
// for the following: toolbar_,location_,directories_,status_,menubar_,scrollbars_,resizable_, the options are '0' or '1'

function checkDisplayDetails() {
    var str1, str2, str3, str4, str5, str6, str7, str8
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.delegate.institution.value;
    str2 = document.delegate.surname.value;
    str3 = document.delegate.first_name.value;
    str4 = document.delegate.address.value;
    str5 = document.delegate.city.value;
    str6 = document.delegate.phone.value;
    str7 = document.delegate.email.value;
//	str8 = document.delegate.markets.value;
    str13 = document.delegate.newPassword.value;
    str14 = document.delegate.passwordConfirm.value;

    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")
    str3 = str3.replace(errExp, "")
    str4 = str4.replace(errExp, "")
    str5 = str5.replace(errExp, "")
    str6 = str6.replace(errExp, "")
    str7 = str7.replace(errExp, "")
//	str8 = str8.replace(errExp, "")

    if (str13 != str14) {
        errCount += 1;
        alert("Please confirm your password correctly.");
        document.delegate.passwordConfirm.focus();
        return false;
    }

    if (str1.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- institution\n";
        document.delegate.institution.focus();
    }

    if (str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- last name\n";
        document.delegate.surname.focus();
    }

    if (str3.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- first name(s)\n";
        document.delegate.first_name.focus();
    }

    if (str4.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- address\n";
        document.delegate.address.focus();
    }

    if (str5.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- city\n";
        document.delegate.city.focus();
    }

    if (str6.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- telephone number\n";
        document.delegate.phone.focus();
    }

    if (str7.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.delegate.email.focus();
    }

//	if (str8.length == 0) {
//		errCount += 1;
//		errFlag = true;
//		errMsg += "- countries of origin\n";
//		document.delegate.markets.focus();
//	}

    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty or incorrect:\n" + errMsg;
        } else {
            errMsg = "The following field is empty or incorrect:\n" + errMsg;
        }
        alert(errMsg);
        return false
    } else {
        return true;
    }

}

function checkEducatorDetails1() {
    var str1, str2, str3, str4, str5, str6, str7, str9, str10, str11
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.delegate.institution.value;
    str2 = document.delegate.rep_title.value;
    str3 = document.delegate.rep_surname.value;
    str4 = document.delegate.rep_first_name.value;
    str5 = document.delegate.rep_email.value;
    str6 = document.delegate.address_street.value;
    str7 = document.delegate.address_city.value;
    str9 = document.delegate.address_country.value;
    str10 = document.delegate.address_phone.value;
    str11 = document.delegate.address_email.value;
    str13 = document.delegate.newPassword.value;
    str14 = document.delegate.passwordConfirm.value;
//	str15 = document.delegate.address_markets.value;


    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")
    str3 = str3.replace(errExp, "")
    str4 = str4.replace(errExp, "")
    str5 = str5.replace(errExp, "")
    str6 = str6.replace(errExp, "")
    str7 = str7.replace(errExp, "")
    str9 = str9.replace(errExp, "")
    str10 = str10.replace(errExp, "")
    str11 = str11.replace(errExp, "")
    str13 = str13.replace(errExp, "")
    str14 = str14.replace(errExp, "")
//	str15 = str15.replace(errExp, "")


//	if (str15.length == 0) {
//		errCount += 1;
//		errFlag = true;
//		errMsg += "- where are your offices\n";
//		document.delegate.address_markets.focus();
//	}

    if (str13 != str14) {
        errCount += 1;
        alert("Please confirm your password correctly.");
        document.delegate.passwordConfirm.focus();
        return false;
    }

    if (str1.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- institution\n";
        document.delegate.institution.focus();
    }

    if (str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- salutation\n";
        document.delegate.rep_title.focus();
    }

    if (str3.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- last name\n";
        document.delegate.rep_surname.focus();
    }

    if (str4.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- first name(s)\n";
        document.delegate.rep_first_name.focus();
    }

    if (str5.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.delegate.rep_email.focus();
    }

    if (str6.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- street\n";
        document.delegate.address_street.focus();
    }

    if (str7.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- city\n";
        document.delegate.address_city.focus();
    }

    if (str9.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- country\n";
        document.delegate.address_country.focus();
    }

    if (str10.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- telephone number\n";
        document.delegate.address_phone.focus();
    }

    if (str11.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.delegate.address_email.focus();
    }

    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty:\n" + errMsg;
        } else {
            errMsg = "The following field is empty:\n" + errMsg;
        }
        alert(errMsg);
        return false
    } else {
        return true;
    }
}

function checkAgentDetails1() {
    var str1, str2, str3, str4, str5, str6, str7, str9, str10, str11, str12
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.delegate.institution.value;
    str2 = document.delegate.rep_title.value;
    str3 = document.delegate.rep_surname.value;
    str4 = document.delegate.rep_first_name.value;
    str5 = document.delegate.rep_email.value;
    str6 = document.delegate.address_street.value;
    str7 = document.delegate.address_city.value;
    str9 = document.delegate.address_country.value;
    str10 = document.delegate.address_phone.value;
    str11 = document.delegate.address_email.value;
    str12 = document.delegate.address_markets.value;
    str13 = document.delegate.newPassword.value;
    str14 = document.delegate.passwordConfirm.value;

    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")
    str3 = str3.replace(errExp, "")
    str4 = str4.replace(errExp, "")
    str5 = str5.replace(errExp, "")
    str6 = str6.replace(errExp, "")
    str7 = str7.replace(errExp, "")
    str9 = str9.replace(errExp, "")
    str10 = str10.replace(errExp, "")
    str11 = str11.replace(errExp, "")
    str12 = str12.replace(errExp, "")

    if (str13 != str14) {
        errCount += 1;
        alert("Please confirm your password correctly.");
        document.delegate.passwordConfirm.focus();
        return false;
    }

    if (str1.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- institution\n";
        document.delegate.institution.focus();
    }

    if (str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- salutation\n";
        document.delegate.rep_title.focus();
    }

    if (str3.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- last name\n";
        document.delegate.rep_surname.focus();
    }

    if (str4.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- first name(s)\n";
        document.delegate.rep_first_name.focus();
    }

    if (str5.length == 0 | !validateEmail2(str5)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.delegate.rep_email.focus();
    }

    if (str6.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- street\n";
        document.delegate.address_street.focus();
    }

    if (str7.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- city\n";
        document.delegate.address_city.focus();
    }

    if (str9.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- country\n";
        document.delegate.address_country.focus();
    }

    if (str10.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- telephone number\n";
        document.delegate.address_phone.focus();
    }

    if (str11.length == 0 | !validateEmail2(str11)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- company email address\n";
        document.delegate.address_email.focus();
    }

    if (str12.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- countries of origin\n";
        document.delegate.address_markets.focus();
    }

    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty or incorrect:\n" + errMsg;
        } else {
            errMsg = "The following field is empty or incorrect:\n" + errMsg;
        }
        alert(errMsg);
        return false
    } else {
        return true;
    }
}

function checkAdvancedSearch() {
    var str1, str2
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.search.date_from.value;
    str2 = document.search.date_to.value;

    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")

    if (str1.length != 0 && str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- the \"to\" date field is required\n";
        document.search.date_to.focus();
    }

    if (str1.length == 0 && str2.length != 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- the \"from\" date field is required\n";
        document.search.date_from.focus();
    }

    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty:\n" + errMsg;
        } else {
            errMsg = "The following field is empty:\n" + errMsg;
        }
        alert(errMsg);
        return false
    }

}

function checkCheckboxes(what,total) {

    // set the "select all" field
    var varCheckbox = document.getElementById("courses" + what + "_all");
    var varDoWhat = "off";

    if (varCheckbox.checked == true) {
        varDoWhat = "on";
    }

    for (i=1; i <= total; i++) {

        var strField = "courses_" + what + "_" + i;

        if (varDoWhat == "on") {
            document.getElementById(strField).checked = true;
        } else {
            document.getElementById(strField).checked = false;
        }

    }

}

function checkDisplayRegister() {
    var str1, str2, str3, str4, str5, str6, str7, str8
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.register.institution.value;
    str2 = document.register.surname.value;
    str3 = document.register.first_name.value;
    str4 = document.register.address.value;
    str5 = document.register.city.value;
    str6 = document.register.phone.value;
    str7 = document.register.email.value;
//	str8 = document.register.markets.value;
    str9 = document.register.address_country.value;
    str11 = document.register.email_confirm.value;

    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")
    str3 = str3.replace(errExp, "")
    str4 = str4.replace(errExp, "")
    str5 = str5.replace(errExp, "")
    str6 = str6.replace(errExp, "")
    str7 = str7.replace(errExp, "")
//	str8 = str8.replace(errExp, "")
    str9 = str9.replace(errExp, "")
    str11 = str11.replace(errExp, "")

    if (str1.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- institution\n";
        document.register.institution.focus();
    }

    if (str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- last name\n";
        document.register.surname.focus();
    }

    if (str3.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- first name(s)\n";
        document.register.first_name.focus();
    }

    if (str4.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- address\n";
        document.register.address.focus();
    }

    if (str5.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- city\n";
        document.register.city.focus();
    }

    if (str6.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- telephone number\n";
        document.register.phone.focus();
    }

    if (str7.length == 0 | !validateEmail2(str7)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.register.email.focus();
    }

    if (str7 != str11) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address is incorrectly confirmed\n";
        document.register.email_confirm.focus();
    }


//	if (str8.length == 0) {
//		errCount += 1;
//		errFlag = true;
//		errMsg += "- countries of origin\n";
//		document.register.markets.focus();
//	}
    if (str9.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- country\n";
        document.register.address_country.focus();
    }
    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty or incorrect:\n" + errMsg;
        } else {
            errMsg = "The following field is empty or incorrect:\n" + errMsg;
        }
        alert(errMsg);
        return false
    } else{
        return true;
    }

}

function checkEducatorRegister1() {
    var str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, str13, str14, str15, str16
    var str20
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.register.institution.value;
    str2 = document.register.title_1.value;
    str3 = document.register.surname_1.value;
    str4 = document.register.first_name_1.value;
    str5 = document.register.email_1.value;
    str6 = document.register.title_2.value;
    str7 = document.register.surname_2.value;
    str8 = document.register.first_name_2.value;
    str9 = document.register.email_2.value;
    str10 = document.register.address_street.value;
    str11 = document.register.address_city.value;
    str13 = document.register.address_country.value;
    str14 = document.register.address_phone.value;
    str15 = document.register.address_email.value;
//	str16 = document.register.address_markets.value;
    str19 = document.register.email_1_confirm.value;
    str20 = document.register.email_2_confirm.value;
    str21 = document.register.address_email_confirm.value;

    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")
    str3 = str3.replace(errExp, "")
    str4 = str4.replace(errExp, "")
    str5 = str5.replace(errExp, "")
    str6 = str6.replace(errExp, "")
    str7 = str7.replace(errExp, "")
    str8 = str8.replace(errExp, "")
    str9 = str9.replace(errExp, "")
    str10 = str10.replace(errExp, "")
    str11 = str11.replace(errExp, "")
    str13 = str13.replace(errExp, "")
    str14 = str14.replace(errExp, "")
    str15 = str15.replace(errExp, "")
//	str16 = str16.replace(errExp, "")

//	if (str16.length == 0) {
//		errCount += 1;
//		errFlag = true;
//		errMsg += "- countries of origin\n";
//		document.register.address_markets.focus();
//	}
    if (str1.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- institution\n";
        document.register.institution.focus();
    }

    if (str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- salutation (1st representative)\n";
        document.register.title_1.focus();
    }

    if (str3.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- last name (1st representative)\n";
        document.register.surname_1.focus();
    }

    if (str4.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- first name(s) (1st representative)\n";
        document.register.first_name_1.focus();
    }

    if (str5.length == 0 | !validateEmail2(str5)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address (1st representative)\n";
        document.register.email_1.focus();
    }

    if (str5 != str19) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address (1st representative) is incorrectly confirmed\n";
        document.register.email_1_confirm.focus();
    }


    if (str6.length != 0 || str7.length != 0 || str8.length != 0 || str9.length != 0) {

        if (str6.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- salutation (2nd representative)\n";
            document.register.title_2.focus();
        }

        if (str7.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- last name (2nd representative)\n";
            document.register.surname_2.focus();
        }

        if (str8.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- first name(s) (2nd representative)\n";
            document.register.first_name_2.focus();
        }

        if (str9.length == 0 | !validateEmail2(str9)) {
            errCount += 1;
            errFlag = true;
            errMsg += "- email address (2nd representative)\n";
            document.register.email_2.focus();
        }

        if (str9 != str20) {
            errCount += 1;
            errFlag = true;
            errMsg += "- email address (2nd representative) is incorrectly confirmed\n";
            document.register.email_2_confirm.focus();
        }
    }

    if (str10.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- street\n";
        document.register.address_street.focus();
    }

    if (str11.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- city\n";
        document.register.address_city.focus();
    }

    if (str13.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- country\n";
        document.register.address_country.focus();
    }

    if (str14.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- telephone number\n";
        document.register.address_phone.focus();
    }

    if (str15.length == 0 | !validateEmail2(str15)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.register.address_email.focus();
    }

    if (str15 != str21) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address is incorrectly confirmed\n";
        document.register.address_email_confirm.focus();
    }


    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty or incorrect:\n" + errMsg;
        } else {
            errMsg = "The following field is empty or incorrect:\n" + errMsg;
        }
        alert(errMsg);
        return false
    } else {
        return true;
    }
}

function checkAgentRegister1() {
    var str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, str12, str13, str14, str15, str17, str18, str19
    var str20
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g");

    str1 = document.register.institution.value;
    str2 = document.register.title_1.value;
    str3 = document.register.surname_1.value;
    str4 = document.register.first_name_1.value;
    str5 = document.register.email_1.value;
    str6 = document.register.title_2.value;
    str7 = document.register.surname_2.value;
    str8 = document.register.first_name_2.value;
    str9 = document.register.email_2.value;
    str10 = document.register.title_3.value;
    str11 = document.register.surname_3.value;
    str12 = document.register.first_name_3.value;
    str13 = document.register.email_3.value;
    str14 = document.register.address_street.value;
    str15 = document.register.address_city.value;
    str17 = document.register.address_country.value;
    str18 = document.register.address_phone.value;
    str19 = document.register.address_email.value;
    str20 = document.register.address_markets.value;
    str24 = document.register.email_1_confirm.value;
    str25 = document.register.email_2_confirm.value;
    str26 = document.register.email_3_confirm.value;
    str27 = document.register.address_email_confirm.value;

    str1 = str1.replace(errExp, "")
    str2 = str2.replace(errExp, "")
    str3 = str3.replace(errExp, "")
    str4 = str4.replace(errExp, "")
    str5 = str5.replace(errExp, "")
    str6 = str6.replace(errExp, "")
    str7 = str7.replace(errExp, "")
    str8 = str8.replace(errExp, "")
    str9 = str9.replace(errExp, "")
    str10 = str10.replace(errExp, "")
    str11 = str11.replace(errExp, "")
    str12 = str12.replace(errExp, "")
    str13 = str13.replace(errExp, "")
    str14 = str14.replace(errExp, "")
    str15 = str15.replace(errExp, "")
    str17 = str17.replace(errExp, "")
    str18 = str18.replace(errExp, "")
    str19 = str19.replace(errExp, "")
    str20 = str20.replace(errExp, "")
    str24 = str24.replace(errExp, "");
    str25 = str25.replace(errExp, "");
    str26 = str26.replace(errExp, "");
    str27 = str27.replace(errExp, "");

    if (str1.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- institution\n";
        document.register.institution.focus();
    }

    if (str2.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- salutation (1st representative)\n";
        document.register.title_1.focus();
    }

    if (str3.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- last name (1st representative)\n";
        document.register.surname_1.focus();
    }

    if (str4.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- first name(s) (1st representative)\n";
        document.register.first_name_1.focus();
    }

    if (str5.length == 0 | !validateEmail2(str5)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address (1st representative)\n";
        document.register.email_1.focus();
    }

    if (str5 != str24) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address (1st representative) is incorrectly confirmed\n";
        document.register.email_1_confirm.focus();
    }


    if (str6.length != 0 || str7.length != 0 || str8.length != 0 || str9.length != 0) {

        if (str6.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- salutation (2nd representative)\n";
            document.register.title_2.focus();
        }

        if (str7.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- last name (2nd representative)\n";
            document.register.surname_2.focus();
        }

        if (str8.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- first name(s) (2nd representative)\n";
            document.register.first_name_2.focus();
        }

        if (str9.length == 0 | !validateEmail2(str9)) {
            errCount += 1;
            errFlag = true;
            errMsg += "- email address (2nd representative)\n";
            document.register.email_2.focus();
        }
        if (str9 != str25) {
            errCount += 1;
            errFlag = true;
            errMsg += "- email address (2nd representative) is incorrectly confirmed\n";
            document.register.email_2_confirm.focus();
        }


    }


    if (str10.length != 0 || str11.length != 0 || str12.length != 0 || str13.length != 0) {

        if (str10.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- salutation (3rd representative)\n";
            document.register.title_3.focus();
        }

        if (str11.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- last name (3rd representative)\n";
            document.register.surname_3.focus();
        }

        if (str12.length == 0) {
            errCount += 1;
            errFlag = true;
            errMsg += "- first name(s) (3rd representative)\n";
            document.register.first_name_3.focus();
        }

        if (str13.length == 0 | !validateEmail2(str13)) {
            errCount += 1;
            errFlag = true;
            errMsg += "- email address (3rd representative)\n";
            document.register.email_3.focus();
        }

        if (str13 != str26) {
            errCount += 1;
            errFlag = true;
            errMsg += "- email address (3rd representative) is incorrectly confirmed\n";
            document.register.email_3_confirm.focus();
        }

    }

    if (str14.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- street\n";
        document.register.address_street.focus();
    }

    if (str15.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- city\n";
        document.register.address_city.focus();
    }

    if (str17.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- country\n";
        document.register.address_country.focus();
    }

    if (str18.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- telephone number\n";
        document.register.address_phone.focus();
    }

    if (str19.length == 0 | !validateEmail2(str19)) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address\n";
        document.register.address_email.focus();
    }

    if (str19 != str27) {
        errCount += 1;
        errFlag = true;
        errMsg += "- email address is incorrectly confirmed\n";
        document.register.address_email_confirm.focus();
    }

    if (str20.length == 0) {
        errCount += 1;
        errFlag = true;
        errMsg += "- countries of origin\n";
        document.register.address_markets.focus();
    }

    if (errFlag == true) {

        if (errCount > 1) {
            errMsg = "The following fields are empty or incorrect:\n" + errMsg;
        } else {
            errMsg = "The following field is empty or incorrect:\n" + errMsg;
        }
        alert(errMsg);
        return false
    } else {
        return true;
    }
}

function validateEmail(what) {
    var str1
    var errFlag = false;
    var errCount = 0;
    var errMsg = "";
    var errExp = new RegExp(" ", "g")

    str1 = document.getElementById(what).value;

    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(str1)){
        //do nothing
    } else {
        errFlag = true;
        errMsg += "- email address\n";
        document.getElementById(what).email.focus();
    }

    if (errFlag == true) {
        errMsg = "The following field is not valid:\n" + errMsg;
        alert(errMsg);
        return false
    } else {
        return true
    }
}

function validateEmail2(what) {
    if (!what.match(/\b[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}\b/i))
    {
        return false;
    } else {
        return true;
    }
}

function scrollToCoordinates(y) {
  window.scrollTo(0, y);
}

function updateSession() {
    var xmlhttp=false;
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        try {
            xmlhttp = new XMLHttpRequest();
        } catch (e) {
            xmlhttp=false;
        }
    }
    if (!xmlhttp && window.createRequest) {
        try {
            xmlhttp = window.createRequest();
        } catch (e) {
            xmlhttp=false;
        }
    }
     xmlhttp.open("GET", "updateSession.php",true);
     xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4) {
      }
     }
     xmlhttp.send(null)
}
function getNumWordsInString (string) {

    string = string.replace(/^\s*|\s*$/g,'');

    if (string == '')
    {
        return 0;
    } else {
        return string.replace(/\s+/g,' ').split(' ').length;
    }
}
function getFirstFourLetters(string)
{
    stringLength = string.length;

//	if (stringLength < 4)
//	{
//		return string + (left('xxxx', 4-stringLength));
//	} else {
        return left(string, 4);
//	}
}
function left(str, n){
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0,n);
}
function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
function parseDate(val)
{
    var preferEuro=(arguments.length==2)?arguments[1]:false;
    generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d');
    monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d');
    dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M');
    var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst');
    var d=null;
    for (var i=0; i<checkList.length; i++) {
        var l=window[checkList[i]];
        for (var j=0; j<l.length; j++) {
            d=getDateFromFormat(val,l[j]);
            if (d!=0) { return new Date(d); }
            }
        }
    return null;
}
// ------------------------------------------------------------------
// getDateFromFormat( date_string , format_string )
//
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the
// getTime() of the date. If it does not match, it returns 0.
// ------------------------------------------------------------------
function getDateFromFormat(val,format)
{
    val=val+"";
    format=format+"";
    var i_val=0;
    var i_format=0;
    var c="";
    var token="";
    var token2="";
    var x,y;
    var now=new Date();
    var year=now.getYear();
    var month=now.getMonth()+1;
    var date=1;
    var hh=now.getHours();
    var mm=now.getMinutes();
    var ss=now.getSeconds();
    var ampm="";

    while (i_format < format.length) {
        // Get next token from format string
        c=format.charAt(i_format);
        token="";
        while ((format.charAt(i_format)==c) && (i_format < format.length)) {
            token += format.charAt(i_format++);
            }
        // Extract contents of value based on format token
        if (token=="yyyy" || token=="yy" || token=="y") {
            if (token=="yyyy") { x=4;y=4; }
            if (token=="yy")   { x=2;y=2; }
            if (token=="y")    { x=2;y=4; }
            year=_getInt(val,i_val,x,y);
            if (year==null) { return 0; }
            i_val += year.length;
            if (year.length==2) {
                if (year > 70) { year=1900+(year-0); }
                else { year=2000+(year-0); }
                }
            }
        else if (token=="MMM"||token=="NNN"){
            month=0;
            for (var i=0; i<MONTH_NAMES.length; i++) {
                var month_name=MONTH_NAMES[i];
                if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
                    if (token=="MMM"||(token=="NNN"&&i>11)) {
                        month=i+1;
                        if (month>12) { month -= 12; }
                        i_val += month_name.length;
                        break;
                        }
                    }
                }
            if ((month < 1)||(month>12)){return 0;}
            }
        else if (token=="EE"||token=="E"){
            for (var i=0; i<DAY_NAMES.length; i++) {
                var day_name=DAY_NAMES[i];
                if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
                    i_val += day_name.length;
                    break;
                    }
                }
            }
        else if (token=="MM"||token=="M") {
            month=_getInt(val,i_val,token.length,2);
            if(month==null||(month<1)||(month>12)){return 0;}
            i_val+=month.length;}
        else if (token=="dd"||token=="d") {
            date=_getInt(val,i_val,token.length,2);
            if(date==null||(date<1)||(date>31)){return 0;}
            i_val+=date.length;}
        else if (token=="hh"||token=="h") {
            hh=_getInt(val,i_val,token.length,2);
            if(hh==null||(hh<1)||(hh>12)){return 0;}
            i_val+=hh.length;}
        else if (token=="HH"||token=="H") {
            hh=_getInt(val,i_val,token.length,2);
            if(hh==null||(hh<0)||(hh>23)){return 0;}
            i_val+=hh.length;}
        else if (token=="KK"||token=="K") {
            hh=_getInt(val,i_val,token.length,2);
            if(hh==null||(hh<0)||(hh>11)){return 0;}
            i_val+=hh.length;}
        else if (token=="kk"||token=="k") {
            hh=_getInt(val,i_val,token.length,2);
            if(hh==null||(hh<1)||(hh>24)){return 0;}
            i_val+=hh.length;hh--;}
        else if (token=="mm"||token=="m") {
            mm=_getInt(val,i_val,token.length,2);
            if(mm==null||(mm<0)||(mm>59)){return 0;}
            i_val+=mm.length;}
        else if (token=="ss"||token=="s") {
            ss=_getInt(val,i_val,token.length,2);
            if(ss==null||(ss<0)||(ss>59)){return 0;}
            i_val+=ss.length;}
        else if (token=="a") {
            if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
            else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
            else {return 0;}
            i_val+=2;}
        else {
            if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
            else {i_val+=token.length;}
            }
        }
    // If there are any trailing characters left in the value, it doesn't match
    if (i_val != val.length) { return 0; }
    // Is date valid for month?
    if (month==2) {
        // Check for leap year
        if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
            if (date > 29){ return 0; }
            }
        else { if (date > 28) { return 0; } }
        }
    if ((month==4)||(month==6)||(month==9)||(month==11)) {
        if (date > 30) { return 0; }
        }
    // Correct hours value
    if (hh<12 && ampm=="PM") { hh=hh-0+12; }
    else if (hh>11 && ampm=="AM") { hh-=12; }
    var newdate=new Date(year,month-1,date,hh,mm,ss);
    return newdate.getTime();
}
// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val)
{
    var digits="1234567890";
    for (var i=0; i < val.length; i++) {
        if (digits.indexOf(val.charAt(i))==-1) { return false; }
        }
    return true;
}
function _getInt(str,i,minlength,maxlength)
{
    for (var x=maxlength; x>=minlength; x--) {
        var token=str.substring(i,i+x);
        if (token.length < minlength) { return null; }
        if (_isInteger(token)) { return token; }
        }
    return null;
}
// ------------------------------------------------------------------
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
// ------------------------------------------------------------------
function formatDate(date,format)
{
    format=format+"";
    var result="";
    var i_format=0;
    var c="";
    var token="";
    var y=date.getYear()+"";
    var M=date.getMonth()+1;
    var d=date.getDate();
    var E=date.getDay();
    var H=date.getHours();
    var m=date.getMinutes();
    var s=date.getSeconds();
    var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
    // Convert real date parts into formatted versions
    var value=new Object();
    if (y.length < 4) {y=""+(y-0+1900);}
    value["y"]=""+y;
    value["yyyy"]=y;
    value["yy"]=y.substring(2,4);
    value["M"]=M;
    value["MM"]=LZ(M);
    value["MMM"]=MONTH_NAMES[M-1];
    value["NNN"]=MONTH_NAMES[M+11];
    value["d"]=d;
    value["dd"]=LZ(d);
    value["E"]=DAY_NAMES[E+7];
    value["EE"]=DAY_NAMES[E];
    value["H"]=H;
    value["HH"]=LZ(H);
    if (H==0){value["h"]=12;}
    else if (H>12){value["h"]=H-12;}
    else {value["h"]=H;}
    value["hh"]=LZ(value["h"]);
    if (H>11){value["K"]=H-12;} else {value["K"]=H;}
    value["k"]=H+1;
    value["KK"]=LZ(value["K"]);
    value["kk"]=LZ(value["k"]);
    if (H > 11) { value["a"]="PM"; }
    else { value["a"]="AM"; }
    value["m"]=m;
    value["mm"]=LZ(m);
    value["s"]=s;
    value["ss"]=LZ(s);
    while (i_format < format.length) {
        c=format.charAt(i_format);
        token="";
        while ((format.charAt(i_format)==c) && (i_format < format.length)) {
            token += format.charAt(i_format++);
            }
        if (value[token] != null) { result=result + value[token]; }
        else { result=result + token; }
        }
    return result;
}
function LZ(x) {return(x<0||x>9?"":"0")+x}

function checkEnter(e){ //e is event object passed from function invocation
//var characterCode literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
characterCode = e.which //character code is contained in NN4's which property
}
else{
e = window.event;
characterCode = e.keyCode //character code is contained in IE's keyCode property
}

if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
return true
}
else{
return false
}

}
function testInput()
{
    if( event.keyCode == 8 )
    {
        return false;
    }
    return true;
}
// Removes leading whitespaces
function LTrim( value ) {

    var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( value ) {

    var re = /((\s*\S+)*)\s*/;
    return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( value ) {

    return LTrim(RTrim(value));

}
function loadMessageBox() {
//	document.getElementById('messageBox').className= 'messageBox';
}

function checkDelegate(userID, checkedValue)
{
    var checkAction;
    if (checkedValue)
    {
        checkAction = 'add';
    } else {
        checkAction = 'remove';
    }
  new Ajax.Request('includes/ajax/checkDelegate.php',
  {
        method: 'post',
        parameters: "userID="+userID+"&action="+checkAction,
    onSuccess: function(response){
            numCheckedDelegates = parseInt(response.responseText);
            if (numCheckedDelegates == NaN || numCheckedDelegates == -1)
            {
                $('numRowsSelected').value=0;
            } else {
                $('numRowsSelected').value=numCheckedDelegates;
            }
    }
  });
}
function emptyCheckedDelegates(runAfter)
{
  new Ajax.Request('includes/ajax/checkDelegate.php',
  {
        method: 'post',
        parameters: "action=empty",
    onSuccess: function(response){
            if ($('numRowsSelected') != null)
            {
                $('numRowsSelected').value=0;
            }
            eval(runAfter);
    },
    onFailure: function(response){
            alert("broken");
    }
  });
}

function load_picture_bank_image(class_name, object_id, new_image_location, picNum)
{
  after_success = "load_object_input_field('image_crop_id_"+picNum+"', '"+class_name+"', '"+object_id+"', 'vcPhotograph_crop');";
  object_method(class_name, object_id, "load_picture_bank_image", after_success, new_image_location);
}

// called onblur on firstname and surname.  we save the name of the delegate so that it can be pulled when uploading their image
function save_delegate_name(_class, _id, first_name, surname)
{
  crud("update", _class, _id ,_class+"|vcFirstName="+first_name+"&"+_class+"|vcSurname="+surname);
}


function delete_user_email_template(user_email_template_id) {
  if (confirm("Are you sure you wish to delete this template?"))
    crud("delete", "user_email_template", user_email_template_id ,"", "window.location.reload();");
}
// -->
