﻿document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function unhide(strId)
{
    document.getElementById(strId).className='';
}

function IsValidEmail(src) {
    var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
    var regex = new RegExp(emailReg);
    return regex.test(src);
}

function IsValidFile(src,type) {
    var ext = '';
    if(src.trim().length>5)
    {
        ext = src.substring(src.length-4,src.length);
        ext = ext.toLowerCase();
    }
    if(type=='*')
        return src.trim()=='' || ext.length>0; 
    else
        return src.trim()=='' || ext == type; 
}

function fcnValidateMyStory(objInvoker, fcnPostBack)
{
    var arValidate=document.getElementsByClassName('not_empty')
    var arErrors= new Array();
    for(var intCount=0;intCount<arValidate.length;intCount++)
    {
        if(arValidate[intCount].value.trim().length==0)
        {
            var strFriendlyName=fcnGetFriendlyName(arValidate[intCount].id);
            //find the object friendly name...
            arErrors.push(strFriendlyName + ' is not filled in.');
        }
    }
    arValidate=document.getElementsByClassName('valid_email')
    for(var intCount=0;intCount<arValidate.length;intCount++)
    {
        if(!IsValidEmail(arValidate[intCount].value.trim()))
        {
            var strFriendlyName=fcnGetFriendlyName(arValidate[intCount].id);
            //find the object friendly name...
            arErrors.push(strFriendlyName + ' is not a valid email address.');
        }
    }
    arValidate=document.getElementsByClassName('valid_doc')
    for(var intCount=0;intCount<arValidate.length;intCount++)
    {
        if(!IsValidFile(arValidate[intCount].value.trim(), '.doc'))
        {
            var strFriendlyName=fcnGetFriendlyName(arValidate[intCount].id);
            //find the object friendly name...
            arErrors.push(strFriendlyName + ' is not a valid word document.');
        }
    }
    arValidate=document.getElementsByClassName('valid_file')
    for(var intCount=0;intCount<arValidate.length;intCount++)
    {
        if(!IsValidFile(arValidate[intCount].value.trim(), '*'))
        {
            var strFriendlyName=fcnGetFriendlyName(arValidate[intCount].id);
            //find the object friendly name...
            arErrors.push(strFriendlyName + ' is not a valid file.\n    Please make sure your path is correct and the file size is under 4MB.\n    If the file is over 4MB please contact Customer Service to upload your file.');
        }
    }
    
    arValidate=null;
    if(arErrors.length>0)
    {
        window.alert(arErrors.join('\n'));
        arErrors=null;
    }
    else
    {
        arErrors=null;
        fcnPostBack(objInvoker.id, '');
    }
}
function fcnGetFriendlyName(strObjectId)
{
    var strName = '';
    arLabels=document.getElementsByTagName('label');
    for(var intCount=0;intCount<arLabels.length && strName.length==0;intCount++)
    {
        if(arLabels[intCount].attributes['for'].value==strObjectId)
        {
            strName=arLabels[intCount].innerHTML;
        }
    }
    arLabels=null;
    return strName;
}
function fcnShowMoreDocuments(objInvoker)
{
    var arDocuments = document.getElementsByClassName('add_document');
    if(arDocuments.length > 0)
    {
        arDocuments[0].className='';
    }
    if(arDocuments.length==1)
    {
        objInvoker.parentNode.parentNode.className='hidden';
    }
    arDocuments=null;
}