function makeRequest(url, param)
{
    var http_request = false;
    if (window.XMLHttpRequest)
    {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType)
        {
            http_request.overrideMimeType('text/xml');

        }
    }
    else if (window.ActiveXObject)
    {
        try
        {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }
    else
    {
        alert('failed!!');
        return false;
    }
    if (!http_request)
    {
        alert('failed!!');
        return false;
    }

    if (param)
    {
        http_request.onreadystatechange = function() {
            processResponse(http_request, param);
        };
    }

    http_request.open('GET', url, true);
    http_request.send(null);
}

function processResponse(http_request, param)
{
    if (http_request.readyState == 4)
    {
        if (http_request.status == 200)
        {
            if (param == 'add_favorite')
            {
                if (http_request.responseText == 'OK')
                {
                    alert(ui_messages[2]);
                }
            }
            if (param == 'delete_favorite')
            {
                document.location.reload();
            }
        }
        else
        {
    //alert('failed.');
    }
    }
}


function CheckInput(id, type)
{
    if (type == 'int')
    {
        var regxp = new RegExp("^[0-9]*$");
        var str = document.getElementById(id).value;
        if (!regxp.test(str))
        {
            document.getElementById(id).value = str.replace(/[^0-9]+/, '');
        }
    }
    if (type == 'int_comma')
    {
        var regxp = new RegExp("^[\,0-9]*$");
        var str = document.getElementById(id).value;
        if (!regxp.test(str))
        {
            document.getElementById(id).value = str.replace(/[^\,0-9]+/, '');
        }
    }

    //0-9,A-Z and '-'.
    if (type == 'zipcode')
    {
        var regxp = new RegExp("^[-0-9A-Za-z]*$");
        var str = document.getElementById(id).value;
        if (!regxp.test(str))
        {
            document.getElementById(id).value = str.replace(/[^-0-9A-Za-z]+/, '');
        }
    }
    
    if (type == 'alphanum')
    {
        var regxp = new RegExp("^[0-9 A-Za-z]*$");
        var str = document.getElementById(id).value;
        if (!regxp.test(str))
        {
            document.getElementById(id).value = str.replace(/[^0-9 A-Za-z]+/, '');
        }
    }
}

function SetInnerHtml(block_id, text)
{
    document.getElementById(block_id).innerHTML = text;
}

function SetValue(id, value)
{
    document.getElementById(id).value = value;
}

function GetElement(id)
{
    return document.getElementById(id);
}

function $(id)
{
    return document.getElementById(id);
}

function ShowBlock(id, display)
{
    $(id).style.display = display;
}

function IsSet(variable)
{
    return (typeof(variable) != 'undefined')?true:false;
}

function check_feedback_form()
{
    if ($('field1').value == '' || $('field2').value == '' || $('field3').value == '' || $('field4').value == '')
    {
        alert(ui_messages[0]);
        return false;
    }
    
    var re = /^[A-Za-z0-9_\.\-]{1,20}@(([A-Za-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|inc|name|[A-Za-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/;
    if (!$('field2').value.match(re))
    {
        alert(ui_messages[1]);
        return false;
    }
    $('form_feedback').submit();
    return true;
}

function check_guestbook_form()
{
    if ($('field1').value == '' || $('field2').value == '' || $('field3').value == '' || $('field4').value == '')
    {
        alert(ui_messages[0]);
        return false;
    }
    
    var re = /^[A-Za-z0-9_\.\-]{1,20}@(([A-Za-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|inc|name|[A-Za-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/;
    if (!$('field2').value.match(re))
    {
        alert(ui_messages[1]);
        return false;
    }
    $('form_guestbook').submit();
    return true;
}

function add_favorite(aModelId)
{
    makeRequest("/ajax.php?act=add_favorite&id=" + aModelId, 'add_favorite');
}

function delete_favorite(aModelId)
{
    makeRequest("/ajax.php?act=delete_favorite&id=" + aModelId, 'delete_favorite');
}

function togglePaperWidthVisibility()
{
    if ($('field3c').checked)
    {
        ShowBlock('paper-width-block', 'block');
    }
    else
    {
        ShowBlock('paper-width-block', 'none');
    }
}

if (typeof(jQuery) != 'undefined')
{
    jQuery(document).ready(function ()
    {
        if (typeof(pageaction) != 'undefined')
        {
            if (pageaction == 'subcategory_listing')
            {
                jQuery('.lightbox').each(function ()
                {
                    jQuery(this).lightBox({fixedNavigation: false});
                });
            }
            
            jQuery('#currency_block_switcher').bind('change', function (e) {
                var currency = jQuery(e.target).val();
                var slash = '';
                if (document.location.href[document.location.href.length - 1] != '/') {
                    slash = '/';
                }
                if (document.location.href.match(/currency\/[a-z]{3}/)) {
                    document.location = document.location.href.replace(/currency\/[a-z]{3}/, 'currency/' + currency)
                }
                else {
                    document.location = document.location.href + slash + 'currency/' + currency;
                }
            });
        }
    });
}
