var galleryCurrent = -1;
var galleryTarget = -1;

var galleryInX = 0;
var galleryOutXLeft = 2000;
var galleryOutXRight = -2000;
var galleryCurrentX = galleryOutXLeft;
var galleryClicked = false;

var hideProductsMenuVar = true;
var language = "eng";
var windowWidth = 2000;
var items = new Array("developers_atlas_mobile_api", "developers_atlas_places_api", "enterprise_dedicated_geo_servers");
var loadedContent = "";

/*******************************************************************************
 *
 ******************************************************************************/
function updateWindowWidth() {
    try {
        if (window.innerWidth) {
            //if browser supports window.innerWidth
            windowWidth = window.innerWidth;
        } else if (document.all) {
            //else if browser supports document.all (IE 4+)
            windowWidth = document.body.clientWidth;
        }
        windowWidth = Math.max(1024, windowWidth);
        galleryOutXLeft = windowWidth;
        galleryOutXRight = -windowWidth;
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function navigationAdvance() {
    try {
        //alert('navigationAdvance()');
        if (galleryTarget!=galleryCurrent) {
            //alert('change!');
            if (galleryCurrent!=-1) {
                // Out
                var galleryOutX;
                if (galleryTarget<galleryCurrent) {
                    galleryOutX = galleryOutXLeft;
                } else {
                    galleryOutX = galleryOutXRight;
                }
                galleryCurrentX = 0.7*galleryCurrentX + 0.3*galleryOutX;
                if (Math.abs(galleryCurrentX-galleryOutX)<=1) {
                    if (galleryTarget<galleryCurrent) {
                        galleryCurrentX = galleryOutXRight;
                    } else {
                        galleryCurrentX = galleryOutXLeft;
                    }
                    switchGalleryItem(galleryTarget);
                    galleryCurrent = -1;
                    updateItemIndicators();
                //alert('reached galleryOutX(' + galleryOutX + ')');
                }
            } else {
                // In
                galleryCurrentX = 0.8*galleryCurrentX + 0.2*galleryInX;
                if (Math.abs(galleryCurrentX-galleryInX)<=1) {
                    galleryCurrentX	= galleryInX;
                    galleryCurrent = galleryTarget;
                    updateItemIndicators();
                //alert('reached galleryInX(' + galleryInX + ')');
                }
            }
        }
        document.getElementById("gallery").style.left = galleryCurrentX + "px";
        var temp = setTimeout(navigationAdvance, 20);
    } catch (err) {
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function switchGalleryItem(index) {
    try {
        document.getElementById("galleryItemImage").src = "";
        document.getElementById("galleryItemImage").src = "images/" + language + "/gallery_" + items[galleryTarget] + ".png";
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function showContent() {
    try {
        //alert("showContent()");
        // Content div
        var element = document.getElementById("content");
        element.style.height = 'auto';
        element.style.visibility = 'visible';
    // Separator
    /*
                                element = document.getElementById("content_separator");
                                element.style.height = '25px';
                                element.style.visibility = 'visible';
         */
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function hideContent() {
    try {
        var element = document.getElementById("content");
        element.style.height = '0px';
        element.style.visibility = 'hidden';
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function updateItemIndicators() {
    try {
        for (var i=0; i<items.length; i++) {
            var element = document.getElementById("item" + i);
            if (i==galleryTarget) {
                element.src = "images/nav_on.png";
            } else {
                element.src = "images/nav_off.png";
            }
        }
    } catch (err) {
    //alert('Error in updateItemIndicators()');
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function nextItem() {
    try {
        //alert('nextItem()');
        navigationRight(false);
    } catch (err) {
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function navigationLeft() {
    try {
        //alert('navigationLeft()');
        navigationLeftForce(true);
    } catch (err) {
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function navigationRight() {
    try {
        //alert('navigationRight()');
        navigationRightForce(true);
    } catch (err) {
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function navigationLeftForce(force) {
    //alert('navigationLeft(' + force + ')');
    try {
        if ((force)||(!galleryClicked)) {
            if (galleryCurrent==-1) {
                galleryCurrent = galleryTarget;
            }
            galleryTarget = (galleryTarget-1+items.length)%items.length;
            galleryClicked = true;
        //alert('galleryTarget=' + galleryTarget);
        }
    } catch (err) {
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function navigationRightForce(force) {
    //alert('navigationRight(' + force + ')');
    try {
        if ((force)||(!galleryClicked)) {
            if (galleryCurrent==-1) {
                galleryCurrent = galleryTarget;
            }
            galleryTarget = (galleryTarget+1+items.length)%items.length;
            galleryClicked = true;
        //alert('galleryTarget=' + galleryTarget);
        }
    } catch (err) {
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function navigationGoto(index) {
    //alert('navigationGoto(' + index + ')');
    try {
        if (galleryCurrent==index) {
            return;
        }
        if (galleryCurrent==-1) {
            galleryCurrent = galleryTarget;
        }
        galleryClicked = true;
        galleryTarget = index;
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function nextItemTimer() {
    try {
        if (!galleryClicked) {
            nextItem();
            galleryClicked = false;
        }
        var temp2 = setTimeout(nextItemTimer, 15000);
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function loadContent(name, hash) {
    try {
        //alert("loadContent('" + name + "', '" + hash + "')");
        //loadContentAjax(name, hash);
        loadContentPHP(name, hash);
    } catch (err) {
        alert("Error in loadContent(name, hash)");
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function loadContentAjax(name, hash) {
    //alert("loadContentAjax('" + name + "', '" + hash + "')");
    //alert("loadContent(" + name + ")");
    try {
        if (loadedContent==name) {
            window.location.hash = hash;
            return;
        }
        try {
            var loadingHTML = "<div style='width: 100%; text-align: center'><br><br><br><br><img src='images/ajax_loading.gif'><br><br><br><br></div>";
            //document.getElementById("content").innerHTML = loadingHTML;
            $("#content").html(loadingHTML);
        } catch (err) {
        }
        $.get(
            "content/" + language + "/" + name + ".html",
            null,
            function(data) {
                //data = "<html><h1>Hello!</h1><h1>Hello!</h1><h1>Hello!</h1><h1>Hello!</h1><h1>Hello!</h1><h1>Hello!</h1></html>";
                try {
                    //document.getElementById("content").innerHTML = data;
                    $("#content").html(data);
                } catch (err) {
                }
                //showContent();
                loadedContent = name;
                //alert("Setting hash: [" + name + "]");
                window.location.hash = hash;
            //alert("After: " + document.getElementById(mapHostDivId).innerHTML);
            },
            "html"
            );
    } catch (err) {
    //alert("Could not connect to the API server. Try again later...");
    }
}

/*******************************************************************************
 *
 ******************************************************************************/
function learnFromGallery() {
    try {
        //alert("learnFromGallery()");
        loadContent(items[galleryTarget], items[galleryTarget]);
    //showContent();
    //alert("Setting hash: [" + "content" + "]");
    //window.location.hash = "content";
    //alert("Setting hash: [" + items[galleryTarget] + "]");
    //window.location.hash = items[galleryTarget];
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function signupFromGallery() {
    try {
        loadContent(items[galleryTarget], items[galleryTarget] + "_signup");
    //showContent();
    //alert("Setting hash: [" + "content" + "]");
    //window.location.hash = "content";
    //alert("Setting hash: [" + items[galleryTarget] + "]");
    //window.location.hash = items[galleryTarget];
    //alert("Setting hash: [" + items[galleryTarget] + "_signup" + "]");
    //window.location.hash = items[galleryTarget] + "_signup";
    } catch (err) {
    }
}
/***************************************************************************
 *
 **************************************************************************/
function unhideGallery() {
    //alert('unhideGallery()');
    try {
        document.getElementById("galleryItemImage").src = "images/" + language + "/gallery_" + items[0] + ".png";
        document.getElementById("galleryItemImage").style.marginTop = "0px";
        document.getElementById("gallery").style.visibility = "visible";
        document.getElementById("gallery_action_learn").style.visibility = "visible";
        document.getElementById("gallery_action_signup").style.visibility = "visible";
        document.getElementById("gallery_navigation").style.visibility = "visible";
    } catch (err) {
    //alert("Error in unhideGallery()");
    }
//alert('Done unhideGallery()');
}
/*******************************************************************************
 *
 ******************************************************************************/
function loadItemsImages() {
    //alert('loadItemsImages()');
    try {
        document.getElementById("galleryItemImage").style.marginTop = "200px";
        document.getElementById("galleryItemImage").src = "images/contentLoading.gif";
        for (var i=0; i<items.length; i++) {
            loadImage("images/" + language + "/gallery_" + items[galleryTarget] + ".png");
        }
    } catch (err) {
    //alert("Error in loadItemsImages()");
    }
//alert('Done loadItemsImages()');
}
/*******************************************************************************
 *
 ******************************************************************************/
function loadImage(url) {
    try {
        objImage = new Image();
        objImage.src = url;
    /*
        $.get(
            url,
            null,
            function(data) {
                objImage = new Image();
                objImage.src = url;
            },
            "png"
            );
        */
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function signup() {
    try {
        //alert("Setting hash: [" + loadedContent + "]");
        //window.location.hash = loadedContent;
        //alert("Setting hash: [" + loadedContent + "_signup" + "]");
        window.location.hash = loadedContent + "_signup";
		var el = document.getElementById("signup");
		el.style.visibility = "visible";
		el.style.height = "auto";
    } catch (err) {
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function home() {
    try {
        //alert("home");
        //hideContent();
        loadContent("home");
        //alert("Setting hash: [" + "home" + "]");
        window.location.hash = "home";
        galleryClicked = false;
    } catch (err) {
    }
}
/*******************************************************************************
     *
     ******************************************************************************/
function unhideLanguages() {
    try {
        var element = document.getElementById("languageselect0");
        element.style.visibility = "visible";
    } catch (err) {
    //alert("Error in unhideLanguages()");
    }

}
/*******************************************************************************
 *
 ******************************************************************************/
function hideLanguages() {
    try {
        var element = document.getElementById("languageselect0");
        element.style.visibility = "hidden";
    } catch (err) {
    //alert("Error in hideLanguages()");
    }
}
/*******************************************************************************
 *
 ******************************************************************************/
function setLanguage(lang) {
    try {
        hideLanguages();
        if (lang == language) {
            return;
        }
        if (lang=="eng") {
            //window.location = 'http://www.atlasct.com/site/index.php?language=eng';
            window.location = 'index.php?language=eng';
            //return;
        } else if (lang=="heb") {
            //window.location = 'http://www.atlasct.com/site/index.php?language=heb';
            window.location = 'index.php?language=heb';
            //window.location = 'http://www.atlasct.co.il';
        }
    } catch (err) {
        alert("Error in setLanguage()");
    }
}
/*******************************************************************************
     *
     ******************************************************************************/
function unhideProductsMenu() {
    //alert("show");
    try {
        hideProductsMenuVar = false;
        var element = document.getElementById("productsmenu");
        element.style.visibility = "visible";
        element.style.height = "auto";
    } catch (err) {
    //alert("Error in unhideLanguages()");
    }

}
/*******************************************************************************
     *
     ******************************************************************************/
function hideProductsMenu() {
    //alert("hide");
    hideProductsMenuVar = true;
    var temp3 = setTimeout(hideProductsMenuReal, 1000);
//
//hideProductsMenuReal()

}
/*******************************************************************************
     *
     ******************************************************************************/
function hideProductsMenuReal() {
    try {
        if (hideProductsMenuVar) {
            var element = document.getElementById("productsmenu");
            element.style.visibility = "hidden";
            element.style.height = "0px";
        }
    } catch (err) {
    //alert("Error in hideLanguages()");
    }

}

/***************************************************************************
 *
 **************************************************************************/
function init() {
    //alert("init()");
    try {
        updateWindowWidth();
        loadItemsImages();
        unhideGallery();
        hideLanguages();
        nextItemTimer();
        updateItemIndicators();
        navigationAdvance();
    //loadContent("home");
    //alert('Done init()');
    } catch (err) {
        alert('Error in init()');
    }
}

