﻿/*
    Created by: Michael Nuada.
*/
/* Validate a string of email address */
function mmn_validateEmail(emailaddresses, isdelimited){
    var regex = /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/;
    var isvalid = false;    

    if(isdelimited == true)
    {   
        var arremailaddresses;
        var delimiter = ';';
        var lastindex = 0;

        emailaddresses = emailaddresses.replace(/,/g,delimiter);        
        emailaddresses = emailaddresses.replace(' ; ',delimiter);
        emailaddresses = emailaddresses.replace(' ;',delimiter);
        emailaddresses = emailaddresses.replace('; ',delimiter);

        while(emailaddresses.lastIndexOf(' ') > -1 ||
              emailaddresses.lastIndexOf(';;') > -1)
        {
            emailaddresses = emailaddresses.replace(' ',delimiter);
            emailaddresses = emailaddresses.replace(';;',delimiter);
        }
        
        lastindex = emailaddresses.lastIndexOf(delimiter);
        emailaddresses = emailaddresses.substr(0,lastindex > 0 && lastindex == emailaddresses.length - 1?emailaddresses.length - 1:emailaddresses.length)
        arremailaddresses = emailaddresses.split(delimiter);
        
        for(index in arremailaddresses)
        {
            if(arremailaddresses[index] == '')
            {
                isvalid = false;
                break;
            }
            
            isvalid = regex.test(arremailaddresses[index]);
            if(isvalid == false) break;
        }
    }
    else
    {
       isvalid = regex.test(emailaddresses);
    }
    
    return isvalid;
}
/*
    Created by: Michael Nuada.
*/
/* Automatically sets focus to the first UI control */
function mmn_setFocus()
{
    var index = 0;
    var inputCollection = document.getElementsByTagName("INPUT");
    for(index = 0; index < inputCollection.length; index ++)
    {
        if(inputCollection[index].type == 'text')
        {
            inputCollection[index].focus();
            return;
        }
    }        
}

/*
    Created by: Randell Erick Flores.
*/

/* Count number of days in a given month and year. (",) */
function redf_daysInMonth(month,year){
    var redf_daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);

    if(month==2)
        return redf_daysInMonth[month]+(redf_isLeap(year)?1:0);
    else
        return redf_daysInMonth[month];
}

/* Determine if a given year is a leap year. (",) */
function redf_isLeap(year){
    return !(year%4) && ((year%100) || !(year%400));
}

function redf_getElementById(elementId){
    if(document.getElementById){
        return document.getElementById(elementId);
    }
    else if(document.all){
        return document.all[elementId];
    }
    else return null;
}

/*
    (space) =   32
        /   =   47
        0   =   48
        1   =   49
        2   =   50
        3   =   51
        4   =   52
        5   =   53
        6   =   54
        7   =   55
        8   =   56
        9   =   57
*/
function redf_filterKeys(textBoxId){
    var keynum;

    /* IE */
    if(window.event){
        keynum=event.keyCode;
    }
    /* Netscape/Firefox/Opera */
    else if(event.which){
        keynum=event.which;
    }

    //alert(keynum);
}

function redf_getElementPosition(element){
    var result = new Object();
    result.x = 0;
    result.y = 0;
    result.width = 0;
    result.height = 0;
    
    if (element.offsetParent){
        result.x = element.offsetLeft;
        result.y = element.offsetTop;
        var parent = element.offsetParent;
        
        while (parent){
            result.x += parent.offsetLeft;
            result.y += parent.offsetTop;
            var parentTagName = parent.tagName.toLowerCase();
            
            if (parentTagName != "table" &&
                parentTagName != "body" && 
                parentTagName != "html" && 
                parentTagName != "div" && 
                parent.clientTop && 
                parent.clientLeft) 
			{
                result.x += parent.clientLeft;
                result.y += parent.clientTop;
            }
            
            parent = parent.offsetParent;
        }
    }
    else if (element.left && element.top){
        result.x = element.left;
        result.y = element.top;
    }
    else{
        if (element.x){
            result.x = element.x;
        }
        if (element.y){
            result.y = element.y;
        }
    }
    
    if (element.offsetWidth && element.offsetHeight){
        result.width = element.offsetWidth;
        result.height = element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && element.style.pixelHeight){
        result.width = element.style.pixelWidth;
        result.height = element.style.pixelHeight;
    }
    return result;
}
function redf_setElementHeight(element, height){
	if (element && element.style){
		element.style.height = height + "px";
	}
}
function redf_setElementWidth(element, width){
	if (element && element.style){
		element.style.width = width + "px";
	}
}
function redf_setElementX(element, x){
	if (element && element.style){
		element.style.left = x + "px";
	}
}
function redf_setElementY(element, y){
	if (element && element.style){
		element.style.top = y + "px";
	}
}

/* Combo Functions */
function redf_clearCombo(combo){
    combo.length=0;
//    return;
//    var count = combo.options.length;
//    
//    for(var i=0;i<count;i++)
//    {
//        combo.options[0]=null;
//    }
}
function redf_addComboItem(combo,text,value){
    var newOption=new Option(text,value);

    combo.options[combo.options.length]=newOption;
}

/* Ajax Functions */
function redf_createXmlHttpObject(){
    if(window.XMLHttpRequest){
        /* If IE7, Mozilla, Safari, and so on: Use native object */
        return new XMLHttpRequest();
    }
    else{
        if(window.ActiveXObject){
            /* Otherwise, use the ActiveX control for IE5.x and IE6 */
            return new ActiveXObject('MSXML2.XMLHTTP.3.0');
        }
    }
}
function redf_sendRequest(xmlHttpObj,url,eventHandler){
    xmlHttpObj.open("GET", url, true);
    xmlHttpObj.onreadystatechange=eventHandler;
    xmlHttpObj.send(null);
}