var PAGE_VIEW_PROFILE;
PAGE_VIEW_PROFILE = 18;

function TabClicked(idx) 
{
    var cont = document.getElementById('country' + idx);
    var tab = document.getElementById('cnt' + idx);
    document.getElementById('country1').style.display = 'none';
    document.getElementById('country2').style.display = 'none';
    document.getElementById('cnt1').className = '';
    document.getElementById('cnt2').className = '';
    cont.style.display = 'block';
    tab.className = 'selected';
}
            
function ShowPopup(objectname) 
{
    document.getElementById('contentPopup').innerHTML=document.getElementById(objectname).innerHTML;
    document.getElementById('contentPopup').style.display='block';
}

function Popup(id)
{
    Panel = document.getElementById(id);
    HTB = document.getElementById('halftonebackground');
    PC = document.getElementById('popupContainer');

    var arrayPageSize = getPageSize();
    HTB.style.height = arrayPageSize[1] + 'px';
    HTB.style.display = 'block';
    PC.style.display = 'block';
    PC.style.zIndex = '100';
    PC.innerHTML = Panel.innerHTML;
    Panel.innerHTML = '';
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0;
    var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || 0;
    PC.style.top = scrollTop+200+'px'; 
    PC.style.left = scrollLeft+400+'px';
    
    var currVal;
    switch(id)
    {
        case 'SubmitSubmitWorkbookItem':
            //Do nothing
            break;
        case 'ViewMarkWorkbookItems':
            
            currVal = document.getElementById("WB_Record_Status_Id").value.toUpperCase();
            
            var slength = document.getElementsByName("WB_Record_Status").length;
            for (var j = 0; j < slength; j++)
            {
                if (document.getElementsByName("WB_Record_Status")[j].value.toUpperCase() == currVal)
                {
                    document.getElementsByName("WB_Record_Status")[j].checked = true;
                }
            }

            break;
        case 'OA_Mark':
            
            currVal = document.getElementById("OA_Record_Status_Id").value.toUpperCase();
            
            var slength = document.getElementsByName("OA_Record_Status").length;
            for (var j = 0; j < slength; j++)
            {
                if (document.getElementsByName("OA_Record_Status")[j].value.toUpperCase() == currVal)
                {
                    document.getElementsByName("OA_Record_Status")[j].checked = true;
                }
            }
            
            break;
        case 'PWP_View_Records':
            
            currVal = document.getElementById("PWP_Record_Status_Id").value;
            
            var slength = document.getElementsByName("PWP_Record_Status").length;
            for (var j = 0; j < slength; j++)
            {
                if (document.getElementsByName("PWP_Record_Status")[j].value == currVal)
                {
                    document.getElementsByName("PWP_Record_Status")[j].checked = true;
                }
            }
            
            break;
        case 'RP_View_Records':
            
            currVal = document.getElementById("RP_Record_Status_Id").value;
            
            var slength = document.getElementsByName("RP_Record_Status").length;
            for (var j = 0; j < slength; j++)
            {
                if (document.getElementsByName("RP_Record_Status")[j].value == currVal)
                {
                    document.getElementsByName("RP_Record_Status")[j].checked = true;
                }
            }
            
            break;

        default:
            break;
    }
    
}

function UnPopup(id)
{
    document.getElementById('halftonebackground').style.display = 'none';
    document.getElementById(id).innerHTML = document.getElementById('popupContainer').innerHTML;
    document.getElementById('popupContainer').innerHTML = '';
}

function CloseLPopup(id)
{
    try
    {
        var uid, csid;
        uid = document.getElementById("cUser_Id").value;
        csid = document.getElementById("cCourse_Schedule_Id").value;
        
        switch(id)
        {
            case 'SubmitSubmitWorkbookItem':
                document.getElementById(id).location.href = 'Submit_Workbook_Item.asp?User_Id='+ uid.toString() +'&CrsSchedule=' + csid.toString() + '&showResubmit=' + document.getElementById("WB_Show_Resubmit").value.toString();   
                break;
            case 'ViewMarkWorkbookItems':
                document.getElementById(id).location.href = 'View_Workbook.asp?User_Id='+ uid.toString() +'&CrsSchedule=' + csid.toString();   
                break;
            case 'M_View_Details':
                document.getElementById("M_View_Details_Frame").location.href = 'M_View_Details.asp?User_Id='+ uid.toString() +'&CrsSchedule=' + csid.toString();
                break;
            case 'OA_Mark':
                //Do nothing
                break;
            case 'PWP_Record_Hours':
                
                var currID = parseFloat(document.getElementById("pwp_hours_spent").innerHTML);
                var threshID = parseFloat(document.getElementById("pwp_hours_thresh").innerHTML);
                
                if (currID >= threshID)
                {
                    if (document.getElementById("PWP_Record_Status_Id").value.toUpperCase() == '{4872A6A0-A997-4DE0-AE93-2754EB7E9924}')
                    {
                        document.getElementById("pwp_complete_tb").style.display = 'block';
                        document.getElementById("pwp_table_outer").style.display = 'block';
                    }
                }
                
                break;
            case 'PWP_View_Records':
                
                if (document.getElementById("PWP_Record_Status_Id").value.toUpperCase() == '{5A41E99D-CDCC-4C9D-8E8C-58312FAFDC19}')
                {
                    document.getElementById("pwp_complete_tb").style.display = 'none';
                    if (document.getElementById("RoleAdmin").value.toLowerCase() === 'true')
                    {
                        document.getElementById("pwp_verify_tb").style.display = 'block';
                    }
                    else
                    {
                        document.getElementById("pwp_table_outer").style.display = 'none';
                    }
                }
                if (document.getElementById("PWP_Record_Status_Id").value.toUpperCase() == '{20489BCF-8378-4CDF-A419-C8C103659D15}')
                {
                    document.getElementById("pwp_table_outer").style.display = 'none';
                    document.getElementById("pwp_verify_tb").style.display = 'none';
                }
                
                break;
            case 'RP_Record_Hours':
                
                var currID = parseFloat(document.getElementById("rp_hours_spent").innerHTML);
                var threshID = parseFloat(document.getElementById("rp_hours_thresh").innerHTML);
                
                if (currID >= threshID)
                {
                    if (document.getElementById("RP_Record_Status_Id").value.toUpperCase() == '{4872A6A0-A997-4DE0-AE93-2754EB7E9924}')
                    {
                        document.getElementById("rp_table_outer").style.display = 'block';
                        document.getElementById("rp_complete_tb").style.display = 'block';
                    }
                }
                
                break;
            case 'RP_View_Records':
                
                if (document.getElementById("RP_Record_Status_Id").value.toUpperCase() == '{5A41E99D-CDCC-4C9D-8E8C-58312FAFDC19}')
                {
                    document.getElementById("rp_complete_tb").style.display = 'none';
                    if (document.getElementById("RoleAdmin").value.toLowerCase() === 'true')
                    {   
                        document.getElementById("rp_verify_tb").style.display = 'block';
                    }
                    else
                    {
                        document.getElementById("rp_table_outer").style.display = 'none';
                    }
                }
                if (document.getElementById("RP_Record_Status_Id").value.toUpperCase() == '{20489BCF-8378-4CDF-A419-C8C103659D15}')
                {
                    document.getElementById("rp_table_outer").style.display = 'none';
                    document.getElementById("rp_verify_tb").style.display = 'none';
                }
                
                break;
            case 'M_Enter_Results':
                
                //Do nothing
                
                break;
            case 'M_Verify_Comment':
                document.getElementById("M_Assess_Frame").location.href = 'M_View_Details.asp?User_Id='+ uid.toString() +'&CrsSchedule=' + csid.toString();
                break;
            default:
                break;
        }
    }
    catch(e)
    {
        //Do nothing
    }
       
    document.getElementById(id).style.display = 'none';
    document.getElementById('halftonebackground').style.display = 'none';
    document.getElementById(id).innerHTML = document.getElementById('popupContainer').innerHTML;
    document.getElementById('popupContainer').innerHTML = '';
    document.getElementById("popupContainer").style.display = 'none';
}

function deleteMyWork(valIn)
{
    if (valIn.length > 0)
    {
        if (confirm("Delete this record? Are you sure?"))
        {
            var poststr = 'callback=true&docid=' + escape(valIn);
            ajaxpack.postAjaxRequest('deleteMyWork.asp', poststr, function t() 
            { 
                if(ajaxIsReady()) 
                {
                    var row = 'docs_row_';
                    row = row + valIn.toString();
                    document.getElementById(row).style.display = 'none';
                }
            }, 'html');
        }
    }
}

function CreateVeriyMark()
{
    var uid, dataid, csid, ctext;
    uid = document.getElementById("cUser_Id").value;
    csid = document.getElementById("cCourse_Schedule_Id").value;
    ctext = document.getElementById("Verify_Moderation_Comment").value;
    ctext = ctext.replace("\n\n\n", "<br/><br/>");
    ctext = ctext.replace("\n\n", "<br/><br/>");
    ctext = ctext.replace("\n", "<br/>");
    
    if (ctext.length > 0)
    {
        var poststr = 'callback=true&uid=' + uid.toString() + '&csid=' + escape(csid) + '&ctext=' + escape(ctext) + '&typeid=5';
        ajaxpack.postAjaxRequest('createVerifyComment.asp', poststr, function t() 
        { 
            if(ajaxIsReady()) 
            {
                document.getElementById("Verify_Moderation_Comment").value = '';
                CloseLPopup('M_Verify_Comment');
            }
        }, 'html');
    }
    else
    {
        alert("Please add your comment and try again.");
    }
}

function CreateModerationMark(typeid)
{
    var uid, dataid, csid, ctext;
    uid = document.getElementById("cUser_Id").value;
    csid = document.getElementById("cCourse_Schedule_Id").value;
    ctext = document.getElementById("Moderation_Comment").value;
    ctext = ctext.replace("\n\n\n", "<br/><br/>");
    ctext = ctext.replace("\n\n", "<br/><br/>");
    ctext = ctext.replace("\n", "<br/>");
    
    dataid = document.getElementById("Moderation_Result_Id").options[document.getElementById("Moderation_Result_Id").selectedIndex].value;

    if (dataid.length > 0)
    {
        var poststr = 'callback=true&uid=' + uid.toString() + '&csid=' + escape(csid) + '&dataid=' + escape(dataid) + '&ctext=' + escape(ctext) + '&typeid=5';
        ajaxpack.postAjaxRequest('updateLearnerStatus.asp', poststr, function t() 
        { 
            if(ajaxIsReady()) 
            {
                document.getElementById("mod_status_text").innerHTML = ajaxpack.ajaxobj.responseText;
                document.getElementById("MOD_Record_Status_Id").value = dataid.toUpperCase();
                CloseLPopup('M_Enter_Results');
            }
        }, 'html');
    }
    
}

function UpdateWBMark()
{
    var uid, dataid, csid;
    uid = document.getElementById("cUser_Id").value;
    csid = document.getElementById("cCourse_Schedule_Id").value;
    
    var slength = document.getElementsByName("WB_Record_Status").length;
    for (var j = 0; j < slength; j++)
    {
        if (document.getElementsByName("WB_Record_Status")[j].checked)
        {
            dataid = document.getElementsByName("WB_Record_Status")[j].value;
        }
    }
	        
    if (dataid.length > 0)
    {
        var poststr = 'callback=true&uid=' + uid.toString() + '&csid=' + escape(csid) + '&dataid=' + escape(dataid) + '&typeid=1';
        ajaxpack.postAjaxRequest('updateLearnerStatus.asp', poststr, function t() 
        { 
            if(ajaxIsReady()) 
            {
                document.getElementById("wb_status_text").innerHTML = ajaxpack.ajaxobj.responseText;
                document.getElementById("WB_Record_Status_Id").value = dataid.toUpperCase();
                CloseLPopup('ViewMarkWorkbookItems');
            }
        }, 'html');
    }
    
}

function UpdateOAMark()
{
    var uid, dataid, csid;
    uid = document.getElementById("cUser_Id").value;
    csid = document.getElementById("cCourse_Schedule_Id").value;
    
    var slength = document.getElementsByName("OA_Record_Status").length;
    for (var j = 0; j < slength; j++)
    {
        if (document.getElementsByName("OA_Record_Status")[j].checked)
        {
            dataid = document.getElementsByName("OA_Record_Status")[j].value;
        }
    }
	        
    if (dataid.length > 0)
    {
        var poststr = 'callback=true&uid=' + uid.toString() + '&csid=' + escape(csid) + '&dataid=' + escape(dataid) + '&typeid=2';
        ajaxpack.postAjaxRequest('updateLearnerStatus.asp', poststr, function t() 
        { 
            if(ajaxIsReady()) 
            {
                document.getElementById("oa_status_text").innerHTML = ajaxpack.ajaxobj.responseText;
                document.getElementById("OA_Record_Status_Id").value = dataid.toUpperCase();
                CloseLPopup('OA_Mark');
            }
        }, 'html');
    }
    
}

function UpdatePWPMark(valIn)
{
    var uid, dataid, csid;
    uid = parseInt(document.getElementById("cUser_Id").value);
    csid = document.getElementById("cCourse_Schedule_Id").value;
    
    if (csid.length > 0 && uid > 0)
    {
        if (valIn == 1)
        {
            dataid = '{5A41E99D-CDCC-4C9D-8E8C-58312FAFDC19}';
        }
        else
        {
            dataid = '{20489BCF-8378-4CDF-A419-C8C103659D15}';
        }
        
        var poststr = 'callback=true&uid=' + uid.toString() + '&csid=' + escape(csid) + '&dataid='+ escape(dataid) +'&typeid=3';
        ajaxpack.postAjaxRequest('updateLearnerStatus.asp', poststr, function t() 
        { 
            if(ajaxIsReady()) 
            {
                document.getElementById("pwp_status_text").innerHTML = ajaxpack.ajaxobj.responseText;
                document.getElementById("PWP_Record_Status_Id").value = dataid.toUpperCase();
                CloseLPopup('PWP_View_Records');
            }
        }, 'html');
    }
    
}

function UpdateRPMark(valIn)
{
    var uid, dataid, csid;
    uid = document.getElementById("cUser_Id").value;
    csid = document.getElementById("cCourse_Schedule_Id").value;
    
    if (csid.length > 0 && uid > 0)
    {
        if (valIn == 1)
        {
            dataid = '{5A41E99D-CDCC-4C9D-8E8C-58312FAFDC19}';
        }
        else
        {
            dataid = '{20489BCF-8378-4CDF-A419-C8C103659D15}';
        }
        
        var poststr = 'callback=true&uid=' + uid.toString() + '&csid=' + escape(csid) + '&dataid='+ escape(dataid) +'&typeid=4';
        ajaxpack.postAjaxRequest('updateLearnerStatus.asp', poststr, function t() 
        { 
            if(ajaxIsReady()) 
            {
                document.getElementById("rp_status_text").innerHTML = ajaxpack.ajaxobj.responseText;
                document.getElementById("RP_Record_Status_Id").value = dataid.toUpperCase();
                CloseLPopup('RP_View_Records');
            }
        }, 'html');
    }
    
}

function deleteTimeRecord(valIn, tIn, typeid)
{
    if (valIn.length > 0)
    {
        if (confirm("Delete this record? Are you sure?"))
        {
            var poststr = 'callback=true&id=' + escape(valIn);
            ajaxpack.postAjaxRequest('deleteTimeRecord.asp', poststr, function t() 
            { 
                if(ajaxIsReady()) 
                {
                    var rowID, curVal, newVal, finVal;
                    rowID = 'time_item_' + valIn.toString();
                    document.getElementById(rowID).style.display = 'none';
                    
                    if (parseInt(typeid) == 1)
                    {
                        curVal = parseFloat(parent.document.getElementById("pwp_hours_spent").innerHTML);
                        newVal = parseFloat(tIn);
                        finVal = curVal - newVal;
                        parent.document.getElementById("pwp_hours_spent").innerHTML = finVal;
                    }
                    else
                    {
                        curVal = parseFloat(parent.document.getElementById("rp_hours_spent").innerHTML);
                        newVal = parseFloat(tIn);
                        finVal = curVal - newVal;
                        parent.document.getElementById("rp_hours_spent").innerHTML = finVal;
                    }
                    
                }
                
            }, 'html');
        }
    }
}

function Expand(id)
{
    if (document.getElementById(id).style.display == 'none')
    {
        document.getElementById(id).style.display = 'block';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
    }
}

function ExpandWithImage(id, img_id)
{
    if (document.getElementById(id).style.display == 'none')
    {
        document.getElementById(id).style.display = 'block';
        document.getElementById(img_id).src = '/images/close_btn.png';
        document.getElementById("showHide1").innerHTML = 'Hide Learner Details';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
        document.getElementById(img_id).src = '/images/open_btn.png';
        document.getElementById("showHide1").innerHTML = 'Show Learner Details';
    }
}

function showHideEmployerView(id, img_id)
{
    if (document.getElementById(id).style.display == 'none')
    {
        document.getElementById(id).style.display = 'block';
        document.getElementById(img_id).src = '/images/close_btn.png';
        document.getElementById("showHide2").innerHTML = 'Hide All Learner Schedules';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
        document.getElementById(img_id).src = '/images/open_btn.png';
        document.getElementById("showHide2").innerHTML = 'Show All Learner Schedules';
    }
}

function showVenueInfo(divid, spanid)
{
    if (document.getElementById(divid).style.display == 'none')
    {
        document.getElementById(divid).style.display = 'block';
        document.getElementById(spanid).innerHTML = 'Hide details';
    }
    else
    {
        document.getElementById(divid).style.display = 'none';
        document.getElementById(spanid).innerHTML = 'Show details';
    }
}

function lrnSelectCheck()
{
    var lrnID = document.getElementById("Learner_Id").options[document.getElementById("Learner_Id").selectedIndex].value;
    if (lrnID != '')
    {
        document.getElementById('learner_form').submit();
    }
}

function crsSelectCheck()
{
    var crsID = document.getElementById("Course_Instance_Id").value;
    if (crsID != '')
    {
        document.getElementById('crsInstForm').submit();
    }
}

function changeUser()
{
    document.getElementById('myform').submit();
}

function ValidateForm()
{
    var ErrorMessage=''; 
    if (document.getElementById("primaryRoleID").value == 15)
    {
        if (document.myForm.User_Firstname.value.length == 0) 
        { 
            ErrorMessage += 'Employer Name: Please enter Employer name.\n'; 
        }         
    }
    else
    {
        if (document.myForm.User_Firstname.value.length == 0) 
        { 
            ErrorMessage += 'First Name: Please enter your first name.\n'; 
        } 
        if (document.myForm.User_Lastname.value.length == 0) 
        {
            ErrorMessage += 'Last Name: Please enter your last name.\n'; 
        }            
    }
    
    if ((document.myForm.User_Email_1_Address.value.length == 0) && (document.myForm.User_Email_2_Address.value.length == 0)) 
    { 
        ErrorMessage += 'Email: At least one email required.\n'; 
    } 
    if (document.myForm.User_Email_1_Address.value != document.myForm.User_Email_1_Address_again.value) 
    { 
        ErrorMessage += 'Email 1: Email addresses do not match.\n'; 
    } 
    if (document.myForm.User_Email_2_Address.value != document.myForm.User_Email_2_Address_again.value) 
    { 
        ErrorMessage += 'Email 2: Email addresses do not match.\n'; 
    } 
    if (document.myForm.User_Password.value != document.myForm.User_Password_again.value) 
    { 
        ErrorMessage += 'Password: Please make sure that both passwords match correctly.\n'; 
    } 
    if (ErrorMessage.length > 0) 
    { 
        alert(ErrorMessage); return false; 
    } 
    else
    {
        return true; 
    } 
}

function showAddressBook()
{
    var oAD;
    oAD=document.getElementById('address_book');
    
    if (oAD.style.display =='none')
    {
        oAD.style.display = 'block';
    }
    else
    {
        oAD.style.display = 'none';
    }
}

function addToList(User_Id_To)
{
    var ofield,ofield2;
    ofield=document.getElementById('User_to');
    ofield2=document.getElementById('User_to_iframe');
    
    if (ofield.value.length == 0)
    {
        ofield.value=ofield.value + User_Id_To;
    }
    else
    {
        ofield.value=ofield.value + ',' + User_Id_To;
        window.frames.User_to_iframe.location.href='User_List.asp?users=' + ofield.value;
    }
}

function inArray(arr, val) 
{
	var i;
	for (i=0; i < arr.length; i++) {
		if (arr[i] === val) {
			return true;
		}
	}
	return false;
}

function removeFromArray(arr, val) {
  for(i=0;i<arr.length;i++){
    if(val==arr[i]) 
    {
        arr.splice(i, 1);
    }
  }
}

function getAnchorPosition(anchorname) {
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	var use_gebi=false, use_css=false, use_layers=false;
	
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(o);
		y=AnchorPosition_getPageOffsetTop(o);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	
	return coordinates;
}

function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}

function FormatNumber(amount)
{
	var i = parseFloat(amount.value);
	if(isNaN(i)) { i = 0.00; }

	var minus = '';
	if(i < 0) { i = 0; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	if(s == 0)
	{
        amount.value = '';
	}
	else
	{
        amount.value = s;
    }
}

function FormatNumberMB(amount)
{
	var i = parseFloat(amount.value);
	if(isNaN(i)) { i = 0.00; }

	var minus = '';
	if(i < 0) { i = 0; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	if(s == 0)
	{
        amount.value = '';
	}
	else
	{
        amount.value = s;
    }
}

function FormatNumberDays(amount)
{
	var i = parseFloat(amount.value);
	if(isNaN(i)) { i = 0.00; }

	var minus = '';
	if(i < 0) { i = 0; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	if(s == 0)
	{
        amount.value = '';
	}
	else
	{
        var sArray = s.split(".");
        var result = sArray[0];
        amount.value = result;
    }
}

function isEmail(email) {
    invalidChars = " ~\'^\`\"*+=\\|][(){}$&!#%/:,;";

    if (email == "") {
        return true;
    }

    for (i=0; i<invalidChars.length; i++) {
        badChar = invalidChars.charAt(i);
        if (email.indexOf(badChar,0) > -1) {
            return false;
        }
    }
    lengthOfEmail = email.length;
    if ((email.charAt(lengthOfEmail - 1) == ".") || (email.charAt(lengthOfEmail - 2) == ".")) {
        return false;
    }
    Pos = email.indexOf("@",1);
    if (email.charAt(Pos + 1) == ".") {
        return false;
    }
    while ((Pos < lengthOfEmail) && ( Pos != -1)) {
        Pos = email.indexOf(".",Pos);
        if (email.charAt(Pos + 1) == ".") {
            return false;
        }
        if (Pos != -1) {
            Pos++;
        }
    }

    atPos = email.indexOf("@",1);
    if (atPos == -1) {
        return false;
    }

    if (email.indexOf("@",atPos+1) != -1) {
        return false;
    }

    periodPos = email.indexOf(".",atPos);
    if (periodPos == -1) {
        return false;
    }
    if (periodPos+3 > email.length) {
        return false;
    }
    return true;
}


function textCounter(field, maxlimit) 
{
    if (field.value.length > maxlimit)
    {
        field.value = field.value.substring(0, maxlimit);
    }
}

function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if ((charCode < 48 || charCode > 58))
    {
        return false;
    }
    else
    {
        return true;
    }
}

function numberIntEntry(field, max_length, raised_event)
{	
	var keynum;
	var strEntry = field.value;
	var currlen = (strEntry.length + 1);

	if(window.event) // IE
	{
		keynum = raised_event.keyCode;	// Get the number of the key pressed
		
		if(field.value.length > max_length)	// Make sure it's not too long
		{
			return false;
		}
		else
		{
			if (keynum == 8)
			{
			    return true;
			}
			else
			{
			    if(keynum > 47 && keynum < 58)
		        {
			        return true;
		        }
		        else
		        {
			        return false;
		        }
			}
		}
	}
	else if(raised_event.which) // Netscape/Firefox/Opera
	{
		keynum = raised_event.which;		// Get the number of the key pressed

		if(field.value.length > max_length)	// Make sure it's not too long
		{
			return false;
		}
		else
		{
			if (keynum == 8)
			{
			    return true;
			}
			else
			{
			    if(keynum > 47 && keynum < 58)
		        {
			        return true;
		        }
		        else
		        {
			        return false;
		        }
			}
		}
	}
	else
	{	
		return true;
	}
}

function populateDOBs(day,month,year,dayName,monthName,yearName)
{
	day = parseInt(day);
	month = parseInt(month);
	year = parseInt(year);

	var objDay = document.getElementById(dayName);

	var iLoop;
	var iDaysInMonth;
	var htmlData;
	
    var currentDate = new Date();
    var currentYear = currentDate.getFullYear();
    currentYear = parseInt(currentYear);
    
	htmlData = '';
	
    //Find out how many days in the currently selected month
	switch(month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			iDaysInMonth = 31;
			break;
			
		case 4:
		case 6:
		case 9:
		case 11:
            iDaysInMonth = 30;
			break;

		case 2:
		    if( ( ((year%4)==0) && ((year%100)!=0) ) || ((year%400)==0) )
		    {
		        //leap year
		        iDaysInMonth = 29;
		    }
		    else
		    {
	            //Not a leap year
	            iDaysInMonth = 28;
			}
			break;
			
		default:
		    iDaysInMonth = 31;
			break;
	}	

    //Cater for incorrect transferred data from members system
    if(day>iDaysInMonth)
    {
        day=iDaysInMonth;
    }

    // Re-populate the day drop-down
    for (iLoop=objDay.length-1; iLoop>-1; iLoop--)
    {
        objDay.remove(iLoop);
    }
    for (iLoop=1; iLoop<=iDaysInMonth; iLoop++)
    {
        var opt=document.createElement('option');
        opt.text=iLoop;
        opt.value=iLoop;
        if (iLoop==day)
        {
        opt.selected=true;
        }
        objDay.add(opt,null);
    }
}

function updateDOB(dayName,monthName,yearName)
{
    // Get references for form DOB day and month data elements
	
	var objDay = document.getElementById(dayName).options[document.getElementById(dayName).selectedIndex].value;
	var objMonth = document.getElementById(monthName).options[document.getElementById(monthName).selectedIndex].value;
	var objYear = document.getElementById(yearName).options[document.getElementById(yearName).selectedIndex].value;
	populateDOBs(objDay,objMonth,objYear,dayName,monthName,yearName);

}

/* Messaging JS functions START */

function submitMessageFilter()
{
    var psize, pid, order, cid, listType, aid, archive;
    pid = document.getElementById("pID").value;
    psize = document.getElementById("pagesize").value;
    listType = document.getElementById("typeid").value;
    order = document.getElementById("Message_Sorting").value;
    archive = document.getElementById("archive").value;
    
    var include = '';
    var catslength = document.getElementsByName("include_opt_read").length;
    
    for (i = 0; i < catslength; i++)
    {
        if (document.getElementsByName("include_opt_read")[i].checked)
        {
            include = document.getElementsByName("include_opt_read")[i].value;
        }
    }
    
    if(pid > 0)
    {   
        document.location.href = 'cp.asp?id=' + pid.toString() + '&typeid=' + listType.toString() + '&mstatus=' + include + '&specorder=' + order + '&pagesize=' + psize + '&archive=' + archive + '&t=1&start=0';
    }
    
}

function SubmitListingFilter(pid, tid, order, cid)
{
    if(pid > 0)
    {
        var psize, purl;
        psize = document.getElementById("number_select").value;
        
        //Set cookie
        setCookie("PageFilter", psize);
        
        switch(tid)
        {
            
            case 6:
                var listType;
                listType = document.getElementById("typeid").value;
                document.location.href = 'cp.asp?id=' + pid.toString() + '&typeid=' + listType.toString() + '&specorder=' + order + '&pagesize=' + psize + '&mstatus=' + cid + '&t=1&start=0';
                break;
            case 7:
                var listType;
                listType = document.getElementById("typeid").value;
                document.location.href = 'cp.asp?id=' + pid.toString() + '&typeid=' + listType.toString() + '&specorder=' + order + '&pagesize=' + psize + '&t=1&start=0';
                break;
            default:
                break;
        }
    }
}

function showUserDetails(valIn)
{
    if (valIn > 0)
    {
        var uid;
        uid = parseInt(document.getElementById("logedin_user").value);
        if(uid > 0)
        {
            document.location.href = 'cp.asp?id='+ PAGE_VIEW_PROFILE +'&userid='+ valIn.toString();
        }
    }
}

function closeAddressBook(valIn)
{
    msgURL(4);
}

function msgURL(valIn)
{
    if (valIn > 0)
    {
        try
        {
            var toId = parseInt(valIn);
            var redURL;
            
            switch(toId)
            {
                case 1:
                    redURL = document.getElementById("inboxURL").value;
                    document.location.href = redURL + '&typeid=' + valIn.toString();
                    break;
                case 2:
                    redURL = document.getElementById("sentURL").value;
                    document.location.href = redURL + '&typeid=' + valIn.toString();
                    break;
                case 3:
                    redURL = document.getElementById("composeURL").value;
                    document.location.href = redURL + '&typeid=' + valIn.toString();
                    break;
                case 4:
                    
                    var divObj = document.getElementById("address_book_div");
                    var fObj = document.getElementById("address_book_frame");
                    
                    if (fObj.style.display == 'block')
                    {
                        fObj.style.display = 'none';
                        divObj.style.display = 'none';
                        hideBlanket();
                    }
                    else
                    {
                        showBlanket();
                        fObj.style.display = 'block';
                        divObj.style.display = 'block';
                    }
                    
                    break;
                case 5:
                    redURL = document.getElementById("inboxURL").value;
                    document.location.href = redURL + '&typeid=1&archive=1';
                    break;
                default:
                    break;
            }
        }
        catch(e)
        {
            //Do nothing
        }   
    }
}

function showBlanket()
{
    document.getElementById("mail_blanket").style.height = (document.body.clientHeight) + 'px';
	document.getElementById("mail_blanket").style.width = (document.body.clientWidth) + 'px';
	document.getElementById("mail_blanket").style.display = 'block';
	document.getElementById("mail_blanket").style.zIndex = 50;
}

function hideBlanket()
{
    document.getElementById("mail_blanket").style.height = (document.body.clientHeight) + 'px';
	document.getElementById("mail_blanket").style.display = 'none';
	document.getElementById("mail_blanket").style.zIndex = -50;
}

function exit_address_book()
{
    var divObj = document.getElementById("address_book_div");
    var fObj = document.getElementById("address_book_frame");
    
    fObj.style.display = 'none';
    divObj.style.display = 'none';
}

function checkNewMessages()
{
    var uid;
    uid = parseInt(document.getElementById("logedin_user").value);
    
    try
    {
        if (uid > 0)
        {
            var poststr = 'callback=true&uid=' + uid.toString() + '&stat=1';
		    ajaxpack.postAjaxRequest('checkNewMessages.asp', poststr, function t() 
		    { 
		         if(ajaxIsReady()) 
		         { 
		             if(ajaxpack.ajaxobj.responseText.length > 0 && ajaxpack.ajaxobj.responseText != 0)
		             {
		                try
		                {   
		                    document.getElementById("new_msg_1").innerHTML = '<strong>(' + ajaxpack.ajaxobj.responseText.toString() + ')</strong>';
		                }
		                catch(err)
		                {
		                    document.getElementById("new_msg_1").innerHTML = '<strong>(0)</strong>';
		                }
		             } 
		         } 
		    }, 'html');
            
            setTimeout('checkNewMessages()', 300000);  //Every 5 Mins
        }
    }
    catch(e)
    {
        document.getElementById("new_msg_1").innerHTML = '<strong>(0)</strong>';
    }
}

function submitReplyMessage()
{   
    document.getElementById("input_btns").style.display = 'none';
    document.getElementById("loader_bar").style.display = 'block';
    document.forms['reply_form'].submit();
}

function markInboxItem(mid, stat)
{
    var uid = document.getElementById("logedin_user").value;
    
    var statmod;
    statmod = stat;
    
    if (stat == 7)
    {
        statmod = 1;
    }
    
    if (mid > 0 && statmod > 0 && uid > 0)
    {
        var poststr = 'callback=true&mid=' + mid.toString() + '&uid=' + uid.toString() + '&stat=' + statmod.toString();
		ajaxpack.postAjaxRequest('updateMessageStatus.asp', poststr, function t() 
		{ 
		     if(ajaxIsReady())
		     { 
		         if(ajaxpack.ajaxobj.responseText == "success")
		         {
                    
                    if (stat == 6 || stat == 7)
                    {
                        document.getElementById("mess_" + mid.toString()).style.display = 'none';
                    }
                    else
                    {
                    
                        var imgext = '';
                        var labeltext = '';
                        switch(stat)
                        {
                            case 1:
                                imgext = '/images/new_msg.gif';
                                labeltext = '';
                                break;
                            case 2:
                                imgext = '/images/open_msg.gif';
                                labeltext = 'Mark as unread';
                                break;
                            case 3:
                                imgext = '/images/reply_msg.gif';
                                labeltext = 'Mark as unread';
                                break;
                            default:
                                break;
                        }
                        
                        var sub_1 = 'envelop_';
                        sub_1 = sub_1 + mid.toString();
                        document.getElementById(sub_1).src = imgext;
                        
                        var sub_2 = 'remark_';
                        sub_2 = sub_2 + mid.toString();
                        document.getElementById(sub_2).innerHTML = labeltext;
                    
                    }               
		         } 
		     } 
		}, 'html');
    }
}

function deleteInboxItem(mid)
{
    var uid = document.getElementById("logedin_user").value;
    
    if (mid > 0 && uid > 0)
    {
        if (confirm("Delete this thread? Are you sure?"))
        {
            var rows = 'mess_';
            rows = rows + mid.toString();
            var mObj = document.getElementById(rows);
            
            var poststr = 'callback=true&mid=' + mid.toString() + '&uid=' + uid.toString() + '&stat=4';
		    ajaxpack.postAjaxRequest('updateMessageStatus.asp', poststr, function t() 
		    { 
		         if(ajaxIsReady()) 
		         { 
		             if(ajaxpack.ajaxobj.responseText == "success")
		             {
                         mObj.style.display = 'none';
                     } 
		         } 
		    }, 'html');
		}
    }
}

function removeUserFromEmail(uid)
{
    var span_name = 'msg_user_span_';
    span_name = span_name + uid.toString();
    
    //document.getElementById(span_name).innerHTML = '';
    var d = document.getElementById("msg_to");
    var e = document.getElementById(span_name);
    d.removeChild(e);
    var currArr = document.getElementById("recpts_array").value.split(",");
    var newArray = '';
    
    for (i = 0; i < currArr.length; i++)
    {
        if (currArr[i] != uid)
        {
            if (newArray.length > 0) {newArray = newArray + ',';}
            newArray = newArray + currArr[i];
        }
    }
    document.getElementById("recpts_array").value = newArray;
    
}

function removeGroupFromEmail(gid)
{
    var span_name = 'msg_group_span_';
    span_name = span_name + gid.toString();
    
    //document.getElementById(span_name).innerHTML = '';
    var d = document.getElementById("msg_to");
    var e = document.getElementById(span_name);
    d.removeChild(e);
    var currArr = document.getElementById("grp_recpts_array").value.split(",");
    var newArray = '';
    
    for (i = 0; i < currArr.length; i++)
    {
        if (currArr[i] != gid)
        {
            if (newArray.length > 0) {newArray = newArray + ',';}
            newArray = newArray + currArr[i];
        }
    }
    document.getElementById("grp_recpts_array").value = newArray;
    
}

function sendNewMessage()
{
    var subject, body;
    
    if ((document.getElementById("recpts_array").value.split(",").length > 1) || (document.getElementById("grp_recpts_array").value.split(",").length > 1))
    {
        
        document.getElementById("input_btns").style.display = 'none';
        document.getElementById("loader_bar").style.display = 'block';
        
        subject = document.getElementById("msg_subject").value;
        body = document.getElementById("msg_body").value;
        
        document.forms['comp_msg'].submit();
    }
}

function setCookie(name, value) 
{
	var today = new Date();
    var expiry = new Date(today.getTime() + 28 * 24 * 60 * 60 * 1000);
        
	if (value != null && value != "")
	{
	    document.cookie = name + "=" + escape(value) + "; expires=" + expiry.toGMTString();
	    document.cookie = document.cookie;
	}
}

/* Messaging JS functions END */
