/**
 * version 1.0
 * lk
 **/
/**
 * version 1.0
 * lk, zs
 * @2006 - Intermax Group
 **/
var System_hasUserValidBrowser = true;

function System_checkValidBrowser()
{
    var xml = axax_CreateAjaxObj();
    if (!xml) 
    {
        System_hasUserValidBrowser = false;
    }       
    
    var root = document.getElementById('pagecontent');        
    root.style.display = System_hasValidBrowser() ? 'block': 'none';
    if(!System_hasValidBrowser())
    {
        alert('Sorry your Internet browser is not compatible!');
    }
    
}

function System_hasValidBrowser()
{
    return System_hasUserValidBrowser;
}

function openWindow(NewLocation)
{
    window.open(NewLocation, "NEWUNSIZABLE", "height=200,width=290,location=no, resizable=no, status=no,titlebar=no,toolbar=no,scrollbars=no");
    return(false);
}

function checkFieldValRegExp(fieldName)
{
    var useObj = mandatoryFields;
    if (!mandatoryFields[fieldName])
    {
        if (!optionalFields[fieldName])
        {
            //alert(fieldName);
            return;
        }
        else
        {
            useObj = optionalFields;
        }
        
    }
    var regPattern = useObj[fieldName]['re'];
    var regFlag = useObj[fieldName]['rf'];

    var element = document.frm[fieldName];
    if (!element)
    {
        alert(fieldName);
        return false;
    }
    var regExp = new RegExp(regPattern,regFlag);
    var success = regExp.test(element.value);

    return success;
}    

function checkRegExp(value, pattern)
{
    return value.match(pattern);
}

function axax_CreateAjaxObj()
{
    var httprequest = false;
    if (window.XMLHttpRequest)
    {
        httprequest=new XMLHttpRequest()
        if (httprequest.overrideMimeType)
        httprequest.overrideMimeType('text/plain');

    }
    else if (window.ActiveXObject)
    { // if IE
        try {
            httprequest = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e){
            try{
                httprequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
        catch (e){}
        }
    }
    return httprequest
}


function ajax_PostRequest(callBackFunction, url, content)
{
    var http_request = axax_CreateAjaxObj();
    if (!http_request) 
    {
        return false;
    }    

    http_request.open('POST', url, true);
    
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", content.length);
    http_request.setRequestHeader("Connection", "close");
    
    http_request.onreadystatechange = function() {
        callBackFunction(http_request);
    };
    http_request.send(content);
    return true;
}

function displayErrorIcos(arr)
{
    for(var x in mandatoryFields)
    {
        var el = document.getElementById('err-' + mandatoryFields[x].n);
        if (!el) continue;
        el.className = 'errico errico-ok';
    }
    for(var x in optionalFields)
    {
        var el = document.getElementById('err-' + optionalFields[x].n);
        if (!el) continue;
        el.className = 'errico errico-ok';
    }    

    for(var x in arr)
    {
        var el = document.getElementById('err-' + arr[x]);
        if (!el) continue;
        if(el.value == '') continue;        
        el.className = 'errico errico-err';
    }
}


function checkForm()
{
    var errorFields = [];
    var message = '';
    var errorMessages = [];
    var missingFields = [];
    
    var frm = document.frm;
    var pattern;

    var focusDone = false;
    for(var x in mandatoryFields)
    {
        var field = mandatoryFields[x];
        var fieldName = field.n;
        var fieldLabel = field.l;
        var fieldRexExp = field.r;
        
        if (!frm[fieldName])
        {
            missingFields.push(fieldLabel);
            errorFields.push(fieldName);
            continue;
        }
        if(frm[fieldName].value == '')
        {
            missingFields.push(fieldLabel);
            errorFields.push(fieldName);
        }
    }
    if (missingFields.length > 0)
    {
        message = pgMsg_VALIDATION_THE_FOLLOWING_FORM_FIELDS_ARE_MISSING + ':\n\n';
        message += '... ' + missingFields.join('\n... ');
        displayErrorIcos(errorFields);
        alert(message)
        return false;
    }
    
    for(var x in mandatoryFields)
    {
        var field = mandatoryFields[x];
        var fieldName = field.n;
        var fieldLabel = field.l;
        var fieldRexExp = field.r;
        var fieldInvMsg = field.invm;
        fieldLabel = fieldLabel.replace(":", "");
        
        if (!frm[fieldName])
        {
            continue;
        }
        if(!checkFieldValRegExp(fieldName))
        {
            if (fieldInvMsg)
            {
                var msg = fieldInvMsg;
            }
            else
            {
                var msg = fieldLabel + ' ' + pgMsg_VALIDATION_IS_INVALID +'!';
            }
            
            errorMessages.push(msg);
            errorFields.push(fieldName);
        }    
    }
    
    if (errorMessages.length > 0)
    {
        message = pgMsg_VALIDATION_DATA_NOT_VALID + ':\n\n';
        message += '... ' + errorMessages.join('\n... ');
        displayErrorIcos(errorFields);
        alert(message)
        return false;
    }    
    
    
    return true;
}
