
//var URL_PREFIX = "http://onionmap.cranklin";
function arraycount(arr){
    var numrows = 0;
    for(var i in arr){
        if(arr!="undefined") numrows++;
    }
    return numrows;
}

function switchpic(whichpic){
    var temp="document.images."+whichpic+".src=="+whichpic+"off.src";
    if(eval(temp)){
        temp="document.images."+whichpic+".src="+whichpic+"on.src";
    }       
    else{
        temp="document.images."+whichpic+".src="+whichpic+"off.src";
    }
    eval(temp);
}

function toggledisplay(item,action){
    var obj = document.getElementById(item);
    if(action == "auto"){
        if(obj.style.display=="block"){
            obj.style.display = "none";
        }
        else{
            obj.style.display = "block";
        }
    }
    else if(action == "show"){
        obj.style.display="block";
    }
    else{
        obj.style.display="none";
    }
}

function shiftpic(item,action){
    var obj = document.getElementById(item);
    if(obj.offsetHeight){
        var ypos = obj.offsetHeight;
    }
    else{
        var ypos = obj.style.pixelHeight;
    }
    if(action=="shift"){
        obj.style.backgroundPosition = "0 -"+ypos+"px";
    }
    else{
        obj.style.backgroundPosition = "0 0";
    }
}

isInteger = function( s ) {
    return !isNaN( parseInt( s ) );
}


/* POI List Results Functions Start */

function populatePois(){
    var ret = ajaxObj.GetData();
    if(ret == null) return;
    //alert(ret);
    sendToAS(ret);
}

var currentCategory = 0;

function toggleDropDown(category,action){
    if(category) currentCategory = category;
    var obj = document.getElementById("dropdown_"+category);
    if(action=="auto"){
        if(obj.style.display=="block"){
            var action2 = "hide";
        }
        else{
            var action2 = "show";
        }
    }
    else{
        var action2 = action;
    }
    toggledisplay("dropdown_weather","hide");
    var i;
    for(i=1;i<=3;i++){
        toggledisplay("dropdown_"+i,"hide");
    }
    if(isInteger(category) && action2=="show"){
        var apistring = URL_PREFIX+"/api/poilist/category/"+category;
        ajaxObj.Create(populatePois);
        ajaxObj.Open("get",apistring,"false");
    }
    if(category) toggledisplay("dropdown_"+category,action2);
}

/* POI List Results Functions End */


/* Communication with Flash Movie Start */

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    }
    else{
        return document[movieName];
    }
}

// used to send XML to flash
function sendToAS(value) {
    //alert(value);
    thisMovie("OnionMap").sendToActionScript(value);
}

/* Communication with Flash Movie End */

//
// POI/XY function calls and ajax handler
//
var ajaxObj = new Crajax();

function parseXML(text){
    //alert('parseXML '+text);
    if (window.DOMParser)
    {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(text,"text/xml");
    }
    else // Internet Explorer
    {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(text);
    }

    //var id = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
    //var name = xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;
    //var map_x = xmlDoc.getElementsByTagName("map_x")[0].childNodes[0].nodeValue;
    //var map_y = xmlDoc.getElementsByTagName("map_y")[0].childNodes[0].nodeValue;
    return xmlDoc;
}

function populatePoiDetail(){
    var ret = ajaxObj.GetData();
    if(ret == null) return;
    //alert(ret);
    eval(ret);
    if(om_subcategories.count){
    }
    document.getElementById('poiDetailBody').innerHTML = ret;
    document.getElementById("poiDetailFrame").src = "about:blank";
    document.getElementById("poiDetailFrame").src = URL_PREFIX+"/poidetail/generalInfo/"+poi_id;
    toggledisplay("poiDetailContainer","show");
    //
    //
    //
}

function showPoiInfo(poi_id){
    //var apistring = URL_PREFIX+"/api/getSubCategories/"+poi_id;
    //ajaxObj.Create(populatePoiDetail);
    //ajaxObj.Open("get",apistring,"false");
    var targetxml = "<?xml version='1.0' encoding='UTF-8'?><om_target><poi><poi_id>"+poi_id+"</poi_id></poi></om_target>";
    document.getElementById("poiDetailFrame").src = "about:blank";
    document.getElementById("poiDetailFrame").src = URL_PREFIX+"/poidetail/generalInfo/"+poi_id;
    document.getElementById('categoryName').innerHTML = categories[currentCategory];
    document.getElementById('categoryIcon').src = URL_PREFIX+"/assets/images_v5/poiDetailTopIcon_"+currentCategory+".gif";
    toggleDropDown(0,"hide");
    //document.getElementById('poiDetailLogo').style.backgroundImage = "";
    //document.getElementById('poiaddress1').innerHTML = "";
    //document.getElementById('poiaddress2').innerHTML = "";
    //document.getElementById('poiphone').innerHTML = "";
    //document.getElementById('poiwebsite').innerHTML = "";
    document.getElementById('poiDetailMenu').innerHTML = "";
    //toggledisplay("poiDetailBody","hide");
    toggledisplay("poiDetailContainer","show");
    sendToAS(targetxml);
}

var poiList;

function closeWindows(){
    // CLOSE ALL VIRTUAL WINDOWS
    if(weather){
        toggleWeather(); // includes toggleDropDown(0,"hide");
    }
    else{
        toggleDropDown(0,"hide");
    }
    toggledisplay("poiDetailContainer","hide");
}

var weather = 0;
var tags = 0;

function toggleWeather(){
    var toflash = "<?xml version='1.0' encoding='UTF-8'?><om_flash_action>";
    if(weather){
        document.getElementById("weatherBoxInnerContainerAlt").style.display = "none";
        document.getElementById("weatherBoxSmallContainer").style.backgroundImage = "url(/assets/images_v4/weatherboxback2.png)";
        document.getElementById("weatherBoxInnerContainer").style.display = "inline";
        toflash += "default";
        toggleDropDown(0,"hide");
        weather = 0;
    }
    else{
        document.getElementById("weatherBoxInnerContainer").style.display = "none";
        document.getElementById("weatherBoxSmallContainer").style.backgroundImage = "url(/assets/images_v4/weatherboxbackopen.png)";
        document.getElementById("weatherBoxInnerContainerAlt").style.display = "inline";
        toflash += "default";
        toggleDropDown("weather","show");
        weather = 1;
    }
    toflash += "</om_flash_action>";
    sendToAS(toflash);
}

function toggleTags(){
    var toflash = "<?xml version='1.0' encoding='UTF-8'?><om_flash_action>";
    if(tags){
        document.getElementById("showAllTagsButton").style.backgroundImage = "url(/assets/images_v5/showalltagsboxback.png)";
        toflash += "hide_all_tags";
        closeWindows();
        tags = 0;
    }
    else{
        document.getElementById("showAllTagsButton").style.backgroundImage = "url(/assets/images_v5/showalltagscloseboxback.png)";
        toflash += "show_all_tags";
        closeWindows();
        tags = 1;
    }
    toflash += "</om_flash_action>";
    sendToAS(toflash);
}

// Ajax login stuff

/*function modal_signin(action){
    if (action == 'show'){
        toggledisplay("login_box","show");
        toggledisplay("modal_background","show");
    }
    else{
        toggledisplay("modal_background","hide");
        toggledisplay("login_box","hide");
    }
}*/

function modal(item,action){
    if(action == "show"){
        toggledisplay(item,"show");
        toggledisplay("modal_background","show");
    }
    else{
        toggledisplay("modal_background","hide");
        toggledisplay(item,"hide");
    }
}

function enlargephoto(item){
    parent.document.getElementById('modal_photo').src = item;
    //alert('hi');
    parent.modal('photo_box','show');
}

function check_login_response(){
    var ret = ajaxObj.GetData();
    if(ret == null) return;
    //alert(ret);
    eval(ret);
    //alert(om_authenticate.status);
    if(om_authenticate.status==1){
        //alert('1');
        modal('login_box','hide');
        createCookie('loggedin','true',1);
        createCookie('email',om_authenticate.email,1);
        createCookie('token',om_authenticate.token,1);
        createCookie('user_level',om_authenticate.user_level,1);
        createCookie('id',om_authenticate.id,1);
        createCookie('username',om_authenticate.username,1);
        createCookie('firstname',om_authenticate.firstname,1);
        createCookie('lastname',om_authenticate.lastname,1);
        membertabs('show');
    }
}

function check_login(){
    var querystring = buildQueryString('loginform',1);
    //alert(querystring);
    ajaxObj.Create(check_login_response);
    ajaxObj.Open("post",URL_PREFIX+"/api/authenticate/json/md5","true",querystring);
}

function create_user_response(){
    var ret = ajaxObj.GetData();
    if(ret == null) return;
    //alert(ret);
    if(ret){
        //alert(ret);
        document.getElementById('registration_body').innerHTML = "Thank you for signing up with Onionmap!";
    }
}

function create_user(){
    var querystring = buildQueryString('registrationform',1);
    //alert(querystring);
    ajaxObj.Create(create_user_response);
    ajaxObj.Open("post",URL_PREFIX+"/api/createUser","true",querystring);
}

function membertabs(action){
    if (action == 'show'){
        var firstname = readCookie('firstname');
        toggledisplay('loggedInButtonsSmall',"show");
        toggledisplay('loggedInButtonsBig',"show");
        toggledisplay('loggedOutButtonsSmall',"hide");
        toggledisplay('loggedOutButtonsBig',"hide");
    }
    else{
        toggledisplay('loggedInButtonsSmall',"hide");
        toggledisplay('loggedInButtonsBig',"hide");
        toggledisplay('loggedOutButtonsSmall',"show");
        toggledisplay('loggedOutButtonsBig',"show");
    }
}

function logout(){
    eraseCookie('loggedin');
    eraseCookie('email');
    eraseCookie('token');
    eraseCookie('user_level');
    eraseCookie('id');
    eraseCookie('username');
    eraseCookie('firstname');
    eraseCookie('lastname');
    membertabs('hide');
}

function rotateweather(){
    if(weatherstatus){
        document.getElementById('weatherBoxInnerContainer').innerHTML = current_temperature;
        weatherstatus = 0;
    }
    else{
        document.getElementById('weatherBoxInnerContainer').innerHTML = current_condition;
        weatherstatus = 1;
    }
}

window.onload=function(){
    var weathertimer = setInterval("rotateweather()",7000);
}
