var preloadedImages = new Array();

function switchImage(id, src) {
    var item = window.document.getElementById(id);
    item.src = src;
}

function clicked(id, url, img) {
    var item = window.document.getElementById(id);
    if (img) {
        item.src = img;
    }
    item.onmouseover = null;
    item.onmouseout = null;
    window.location.assign(url);
}

function drawMenu(items){
    var menu = window.document.getElementById("menu-container");
    var footer = window.document.getElementById("footmenu-container");

    var menuHtml = '';
    var footerHtml = '';
    
    for (var i in items) {
    	var mid = "main_" + i;
    	var fid = "foot_" + i;
    
        menuHtml = menuHtml + '<img style="cursor: pointer; border: 0px;" onclick=clicked("' + mid + '","' + items[i].url + '","' + items[i].simg + '") id ="' + mid + '" src="';
        footerHtml = footerHtml + '<img style="cursor: pointer; border: 0px;"onclick=clicked("' + fid + '","' + items[i].url + '","' + items[i].sfimg + '")  id ="' + fid + '" src="';

        if (i == menu_selected) {
            menuHtml = menuHtml + items[i].simg + '" />';
            footerHtml = footerHtml + items[i].sfimg + '" />';
        } else {
            menuHtml = menuHtml + items[i].img + '" onmouseover=switchImage("' + mid + '","' + items[i].oimg + '")' + ' onmouseout=switchImage("' + mid + '","' + items[i].img + '") />';
            footerHtml = footerHtml + items[i].fimg + '" onmouseover=switchImage("' + fid + '","' + items[i].ofimg + '")' + ' onmouseout=switchImage("' + fid + '","' + items[i].fimg + '") />';
        }

        if (i == menu_selected && MENU_ITEMS[i].sub) {
            drawSubmenu(i);
        }
    }

    menu.innerHTML = menuHtml;
    footer.innerHTML = footerHtml;
}

function drawSubmenu(menuItem) {
    var subMenu = window.document.getElementById("submenu-container");
    var html = '';
	
    subMenu.style.visibility = "visible";
    var items = MENU_ITEMS[menuItem].sub;
    for (var i in items) {
        var id = "sub_" + i;
        
        html = html + '<img style="cursor: pointer; border: 0px;" onclick=clicked("' + id + '","' + items[i].url + '","' + items[i].simg + '") id ="' + id + '" src="';
        
        if (i == submenu_selected) {
            html = html + items[i].simg + '" />';
        } else {
            html = html + items[i].img + '" onmouseover=switchImage("' + id + '","' + items[i].oimg + '")' + ' onmouseout=switchImage("' + id + '","' + items[i].img + '") />';
        }
    }

    subMenu.innerHTML = html;
}

function drawSidemenu(items) {
    var sideMenu = window.document.getElementById("sidemenu-container");
    
    var html = '';
    
    for (var i in items) {
        var id = "side_" + i;
        
        html = html + '<img style="cursor: pointer; border: 0px;" onclick=clicked("' + id + '","' + items[i].url + '","' + items[i].simg + '") id ="' + id + '" src="';
        
        if (i == sidemenu_selected) {
            html = html + items[i].simg + '" />';
            if (items[i].sub) {
                for (var j in items[i].sub) {
                    var spid = "subpage_" + j;
                    html = html + '<img style="cursor: pointer; border: 0px;" onclick=clicked("' + spid + '","' + items[i].sub[j].url + '","' + items[i].sub[j].simg + '") id ="' + spid + '" src="';
                    if (j == subpage_selected) {
                        html = html + items[i].sub[j].simg + '" />';
                    } else {
                        html = html + items[i].sub[j].img + '" onmouseover=switchImage("' + spid + '","' + items[i].sub[j].oimg + '")' + ' onmouseout=switchImage("' + spid + '","' + items[i].sub[j].img + '") />';
                    }
                }
            }
        } else {
            html = html + items[i].img + '" onmouseover=switchImage("' + id + '","' + items[i].oimg + '")' + ' onmouseout=switchImage("' + id + '","' + items[i].img + '") />';
        }
    }

    sideMenu.innerHTML = html;
}

function getImageUrls(items) {
	var res = new Array();

    for (var i in items) {
        var item = items[i];
        if (item.img) {
            res.push(item.img);
        }
        if (item.oimg) {
            res.push(item.oimg);
        }
        if (item.simg) {
            res.push(item.simg);
        }
        if (item.fimg) {
            res.push(item.fimg);
            if (item.ofimg) {
                res.push(item.ofimg);
            }
            if (item.sfimg) {
                res.push(item.sfimg);
            }
        }
       
        if (!item.sub) {
            continue;
        }
       
        for (var j in item.sub) {
            var sitem = item.sub[j];
            if (sitem.img) {
                res.push(sitem.img);
            }
            if (sitem.oimg) {
                res.push(sitem.oimg);
            }
            if (sitem.simg) {
                res.push(sitem.simg);
            }
        }
    }
    
    return res;
}

function preloadImages(items) {
	var urls = getImageUrls(items);
	
    if (document.images) {
        var images = new Array(urls.length);
		for (i = 0; i < urls.length; i++) {
		    images[i] = new Image();
		    images[i].src = urls[i];
		}
		preloadedImages.push(images);
    }
}

function getParameter ( queryString, parameterName ) {
    // Add "=" to the parameter name (i.e. parameterName=value)
    var parameterName = parameterName + "=";
    if ( queryString.length > 0 ) {
        // Find the beginning of the string
        begin = queryString.indexOf ( parameterName );
        // If the parameter name is not found, skip it, otherwise return the value
        if ( begin != -1 ) {
            // Add the length (integer) to the beginning
            begin += parameterName.length;
            // Multiple parameters are separated by the "&" sign
            end = queryString.indexOf ( "&" , begin );
            if ( end == -1 ) {
                end = queryString.length
            }
            // Return the string
            return unescape ( queryString.substring ( begin, end ) );
        }
        // Return "null" if no parameter has been found
        return "null";
    }
}
