var vMenuArray = new Array();
var vClosed = 0;

var puz = new puzzle();

window.onload = function() {
    puz.initGrid();
    var startstop = $('startstop');
    startstop.style.display = "block";
    startstop.onclick = function(){ startPuz(puz,startstop);return false; }
  
    // Initialise menu objects
    for (i = 0; document.getElementById('submenu'+i); i++) vMenuArray.push(new vMenu('submenu'+i,i,50));
    for(m = 0; m < vMenuArray.length; m++) vMenuArray[m].initMenu(-1);
}

var _currentPod = 'h';
var _pods = new Array('h','a','c','pics','p');

function openTab(podName){
    if (podName == "h") puz.initGrid();
    else stopPuz(puz);
    $('t' + _currentPod).className = "";
    $('p' + _currentPod).style.display = "none";
    _currentPod = podName;
    $('t' + _currentPod).className = "selected";
    $('p' + _currentPod).style.display = "block";
}

function initTabs(){
    $('menu').style.display = "block";
    for(var i in _pods){ if ($('p' + _pods[i]) && _pods[i] != _currentPod) $('p' + _pods[i]).style.display = "none"; }
    $('t' + _currentPod).className = "selected";
}

function highlightRow(tr){
    tr.style.backgroundColor = '#FFBD54';
    tr.bgColor = '#FFBD54';
    tr.onmouseout = function(){ this.bgColor = ''; this.style.backgroundColor = ''; }
}

function numbersOnly(cell){ if (!isNumber(cell.value)) cell.value = ""; }

function isNumber(n){ 
    var ValidChars = "123456789"; 
    if (ValidChars.indexOf(n) == -1) return false;
    return true;
}

/*********************
 AJAX
**********************/
function createXMLHttp(){
    var xmlHttp;
    try { xmlHttp = new XMLHttpRequest();}
    catch(e){
        var XmlHttpVersions = new Array(   'MSXML2.XMLHTTP.6.0',
                                            'MSXML2.XMLHTTP.5.0',
                                            'MSXML2.XMLHTTP.4.0',
                                            'MSXML2.XMLHTTP.3.0',
                                            'MSXML2.XMLHTTP',
                                            'Microsoft.XMLHTTP');
        for (i = 0; i < XmlHttpVersions.length && !xmlHttp; i++){
            try{
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch(e) {}
        }
    }
    if (!xmlHttp) alert("Error creating Ajax with current browser");
    else return xmlHttp;
}

function sendContact(){
    var ajax_request = createXMLHttp();
    if (ajax_request){
        var reply = $('contactsent');
        reply.style.display = 'block';
        reply.innerHTML = "<img src=\"images/loading.gif\" />";
        var url = "ajax/sendcontact.php";
        var name = $('name').value;
        var email = $('email').value;
        var tel = $('tel').value;
        var message = $('message').value;
        var query = "name="+name+"&email="+email+"&tel="+tel+"&message="+message;
        try {
            ajax_request.onreadystatechange = function (){
                if (ajax_request.readyState == 4 && (ajax_request.status==200 || window.location.href.indexOf("http")==-1)){
                    $('contactform').style.display = 'none';
                    $('contactp').style.display = 'none';
                    reply.innerHTML = ajax_request.responseText;
                }
            }
            var bustcache = '?'+new Date().getTime();
            ajax_request.open('POST',url+bustcache, true);
            ajax_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            ajax_request.send(query);
        }
        catch (e){
            alert("Error connecting to server:\n"+e.toString());
        }
    }
}

function login(){
    var ajax_request = createXMLHttp();
    if (ajax_request){
        var reply = $('loginsent');
        reply.style.display = 'block';
        reply.innerHTML = "<img src=\"images/loading.gif\" />";
        var url = "ajax/login.php";
        var username = $('username').value;
        var password = $('password').value;
        var query = "username="+username+"&password="+password;
        try {
            ajax_request.onreadystatechange = function (){
                if (ajax_request.readyState == 4 && (ajax_request.status==200 || window.location.href.indexOf("http")==-1)){
                    $('loginform').style.display = 'none';
                    reply.innerHTML = ajax_request.responseText;
                }
            }
            var bustcache = '?'+new Date().getTime();
            ajax_request.open('POST',url+bustcache, true);
            ajax_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            ajax_request.send(query);
        }
        catch (e){
            alert("Error connecting to server:\n"+e.toString());
        }
    }
}

function showlogin(){
    var ls = $('loginsent');
    var lf = $('loginform');
    
    ls.style.display = 'none';
    ls.innerHTML = '';
    lf.style.display = 'block';
}

function showcontact(){
    var cs = $('contactsent');
    var cf = $('contactform');
    var cp = $('contactp');
    
    cs.style.display = 'none';
    cs.innerHTML = '';
    cf.style.display = 'block';
    cp.style.display = 'block';
}

function loadPortPic(el){
    $('loadpic').style.display = 'block';
    var frame = $('portpic');
    frame.style.display = 'none';
    frame.src = el.src;
    frame.onload = function(){
        $('loadpic').style.display = 'none';
        this.style.display = 'block';
    }
}

function load(page,area){
    var ajax_request = createXMLHttp();
    if (ajax_request){
        var resultArea = $(area);
        resultArea.style.height = resultArea.offsetHeight + 'px';
        resultArea.innerHTML = "<img src=\"images/loading.gif\" />";
        var url = "portfolio/"+page+".php";
        try {
            ajax_request.onreadystatechange = function (){
                if (ajax_request.readyState == 4 && (ajax_request.status==200 || window.location.href.indexOf("http")==-1)){
                    resultArea.innerHTML = ajax_request.responseText;
                    resultArea.style.height = '';
                }
            }
            var bustcache = '?'+new Date().getTime();
            ajax_request.open('GET',url+bustcache, true);
            ajax_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            ajax_request.send(null);
        }
        catch (e){
            alert("\nError connecting to server:\n"+e.toString());
        }
    }
}

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