var lastRotateTime = 0;
var timerID = 0;


function check(target, id)
{
    // Regular Expression matching from
	// http://regexlib.com/UserPatterns.aspx?authorId=1758
    var emailRegExp = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/i;
        
    if(target.val().length == 0)
    {
        return false;
    }
    
    if(id == "email" && !emailRegExp.test(target.val()))
    {
        return false;
    }
        
    return true;
}


function resetForm()
{
    var elements = new Array("name", "email", "issue");
    for(var i = 0;i<elements.length;i++)
    {
        $("#"+elements[i]).css("border-color", "#4a4a4a");
        $("#"+elements[i]).val("");
    }
}

function onSubmit()
{
    var Name = $("#name");
    var Email = $("#email");
    var Issue = $("#issue");
        
    var formAction = $("#contact_form").attr("action");
    
    var toValidate = new Array("name", "email", "issue");
    
    var haveErrors = false;
    var errorsOn = new Array();
    
    for(var i = 0;i<toValidate.length;i++)
    {
        var id = toValidate[i];
        var elem = $("#"+id);
        var result = check(elem, id);
        if(!result)
        {
            haveErrors = true;
            errorsOn[errorsOn.length] = id;
            elem.css("border-color", "#A60000");
        }
        else
        {
            elem.css("border-color", "#4a4a4a");
        }
    }
    
    
    if(haveErrors == true)
    {
        var text = "";
        for(var i = 0;i<errorsOn.length;i++)
        {
            var str = errorsOn[i];
            text += "  - " + str.slice(0, 1).toUpperCase() + str.slice(1, str.length)+"\n";
        }
        alert("Please, check your input in:\n" + text, "Error");
    }
    else
    {
        $.post(formAction,
               {name: Name.val(), email: Email.val(), issue: Issue.val()},
               function(data)
               {
                   if(data == 1)
                   {
                       alert("Your mail has been sent!!!");
                   }
                   else
                   {
                       alert("Sorry, your mail could not be sent.\nThere is a problem with our Mail Service by now.\nPlease, try again later or just call us.");
                   }
                   resetForm();
               }
              );
        
    }

    return false;
}


function loadNextSlideShowImage()
{
    var current = $("#slideshow img").attr("src").split("/");
    var base_dir = "images/slideshow/";
    current = base_dir+current[current.length-1];
    $.get("slide_loader.php", {'base_dir': base_dir, 'current': current}, function(data)
    {
        data = data.split("/");
        $("#loading").html("<img src=\"" + base_dir + data[data.length-1] + "\" />");
    });
}

function rotateSlideShow()
{
    var now = new Date();
    if($("#loading img").width() > 0 && (now.getTime() - lastRotateTime) > 5000)
    {
        clearTimeout(timerID);
        timerID = 0;
        $("#slideshow img").fadeOut(
            "slow",
            function () {
                    $("#slideshow img").attr("src", $("#loading img").attr("src"));
                    $("#slideshow img").fadeIn("slow");
                    loadNextSlideShowImage();
                }
        );
        var now = new Date();
        lastRotateTime = now.getTime();
    }
    timerID = setTimeout("rotateSlideShow()", 1000);
}

function load_previous(base_dir)
{
    var base_dir = base_dir;
    var current = $("#galleryshow img").attr("src").split("/");
    current = base_dir+"/"+current[current.length-1];
    
    $.get("slide_loader.php", {'base_dir': base_dir, 'current': current, 'direction': "down"}, function(data)
    {
        data = data.split("/");
        $("#galleryshow img").attr("src", base_dir +"/"+ data[data.length-1]);
    });
    
    return false;
}

function load_next(base_dir)
{
    var base_dir = base_dir;
    var current = $("#galleryshow img").attr("src").split("/");
    current = base_dir+"/"+current[current.length-1];
    
    $.get("slide_loader.php", {'base_dir': base_dir, 'current': current}, function(data)
    {
        data = data.split("/");
        $("#galleryshow img").attr("src", base_dir +"/"+ data[data.length-1]);
    });
    
    return false;
}


function updateContent(data)
{
    var menuStart = data.indexOf("id=\"main-menu\">") + "id=\"main-menu\">".length;
    var menuContent = data.substring(menuStart, data.indexOf("</ul> <!-- /main-menu -->"));
    
    var sideStart = data.indexOf("id=\"side\">") + "id=\"side\">".length;
    var sideContent = data.substring(sideStart, data.indexOf("</div> <!-- /side -->"));
    
    var contentStart = data.indexOf("id=\"content\">") + "id=\"content\">".length;
    var contentContent = data.substring(contentStart, data.indexOf("</div> <!-- /content -->"));
    
    $("#main-menu").html(menuContent);
    $("#side").html(sideContent);
    $("#content").html(contentContent);
    
    $("#main-menu a").click(changePage);
    $("#contact_form").submit(onSubmit);
    if($("#contact_form").length > 0) { $("#contact_form").submit(onSubmit); }
        
    return false;
}


function changePage()
{
    $.get($(this).attr("href"), updateContent);
    return false;
}


function atReady()
{
    $("#header h1").fadeOut(0);
    $("#header h1").fadeIn(1500);
    
    if($("#slideshow img").size() > 0 )
    {
        var now = new Date();
        lastRotateTime = now.getTime();
        loadNextSlideShowImage();
        timerID = setTimeout("rotateSlideShow()", 1000)
    }
    
    $("#main-menu a").click(changePage);
    
    $("#contact_form").submit(onSubmit);
}

$(document).ready(atReady)


