﻿var err = "_err";
var etext = "_text";
var debug = false;

$ = function(strId){return document.getElementById(strId);}

function submitSubscribe(strId, strShow, strHide, strlang){
    var obj = $(strId);
    var objShow = $(strShow);
    var objHide = $(strHide);
    
    if(!chkEmail(obj)){
        return false;
    }
    else {
        sendRequest(
            "POST", 
            true, 
            "subscribe-handler.aspx", 
            "email=" + obj.value + "&lang=" + strlang,
            function submiteCallback(text){
                if(text != "OK" && debug)
                {
                    alert(text);
                }
                show(objShow);
                hide(objHide);
            }
        );
    }
    return false;
}

function submitContact(lnId, telId, fnId, msgTitleId, msgId, strlang){
    var objLn = $(lnId);
    var objTel = $(telId);    
    var objFn = $(fnId);
    var objMsgTitle = $(msgTitleId);
    var objMsg = $(msgId);    

    if(!chkRequired(objLn)){
        return false;
    }
    if(!chkRequired(objFn)){
        return false;
    }
    if(!chkEmail(objTel)){
        return false;
    }
    if(!chkRequired(objMsgTitle))
    {
        return false;
    }
    if(!chkRequired(objMsg)){
        return false;
    }
    else {
        sendRequest(
            "POST", 
            true,             
            "contact-handler.aspx", 

            "&email=" + objTel.value + 
            "&fn=" + objFn.value + 
            "&ln=" + objLn.value + 
            "&tel=" + objTel.value +
            "&ttl=" + objMsgTitle.value +
            "&msg=" + objMsg.value + 
            "&lang=" + strlang,
            
            function submiteCallback(text){
                if(text != "OK" && debug)
                {
                    alert(text);
                }
                show($("form_message"));
                hide($("form"));
            }
        );
    }
    return false;
}


function chkEmail(objChk){ 
    if(objChk)    {
        if (objChk.value.length < 0 || !objChk.value.match(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/)){
            error(objChk)
            return false;
        }
        else{
            error(objChk, false);
            return true;
        }
    }    
}

function chkRequired(objChk, length)
{
    if(!objChk){error(objChk); return false;}
    if(!objChk.value){error(objChk); return false;}
    if(objChk.value.length<=0){error(objChk); return false;}
    if(length && objChk.value.length < length){error(objChk); return false;}
    error(objChk, false);
    return true;
}

function error(obj, flag)
{
    var objErr = $(obj.id+err);
    if(!objErr) return;
    if(flag === true) obj.focus();    
    switchErrClass(objErr, flag);
    showSummary(obj, flag);
}

function showSummary(obj, flag)
{
    var objEs = $("error_summary");
    
    if(!objEs){return;}
    
    var objT = $(obj.id + etext);
    
    if(objT && !!flag)
    {
        objEs.innerHTML = objEs.attributes["template"].value.replace("[%holder%]", objT.innerHTML);
    }
    else
    {
        objEs.innerHTML = "";
    }
}

function switchErrClass(objErr, flag)
{
    if(flag === false)
    {
        objErr.className = "error";
    }
    else
    {
        objErr.className = "error_show";
    }  
}

function show(obj){
    if(obj)
    obj.style.display = "";
}

function hide(obj){
    if(obj)
    obj.style.display = "none";
}

function sendRequest(method, async, actionUrl, data, cb){
    var request; 

    try{
        request =  new ActiveXObject('Msxml2.XMLHTTP');
    }
    catch(e){
        try{
            request =  new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e){
            request =  new XMLHttpRequest();
        }
    }


    request.onreadystatechange = function (){
        if(request.readyState == 4){
            if(request.status == 200){
                if(cb){
                    cb(request.responseText);
                }
            }
        }
    };
    request.open(method, actionUrl, async);
    request.setRequestHeader('Content-type',
           'application/x-www-form-urlencoded;charset=UTF-8;');
    request.send(data);
}

function updateArea(strId)
{
    sendRequest(
            "POST", 
            true,             
            "en-port-handler.aspx", 
            "u=1",
            function submiteCallback(text){
                $(strId).innerHTML = text;
            });
}

function keepRefresh(areaId, timeout)
{
    if(timeout < 0) return;
    updateArea(areaId);
    window.setInterval("updateArea('" + areaId + "')",timeout);
}




