// sollentuna_extif.js 0.8.6
// Pac 2009-10-15, Clickbase Corporation Sverige AB

// Variables
//
// StrMovieApp contains the name of the flash object
// var strMovieApp should've been declared and given its value in the calling html page

// flashLoaded will be set to true as soon as the flash has finished loading all maps and is ready to receive data
var timerId = "";
/////////////////////////////////
// function calls to flash

/*
function showDefaultArea(areaId){
    timerId = setTimeout('mapLoaded("area_' + areaId + '")', 800);
}


function mapLoaded(areaid) {
    clearHighlight();
    showArea(areaid);
    clearTimeout ( timerId );
}
*/

function mapLoaded() {
    clearHighlight();
    showArea(startAreaId);
    
}

// showArea("area_1_id[, area_2_id, ...]"): highlight the selected area(s) (store, service etc) in the flash object
// If "area_" is omitted in the function call it will be added.
//
function showArea(strItemId) {
	 if (strItemId.indexOf(",") != -1)
	 {
	 		var arrItems = strItemId.split(",");
	 		for (var i=0; i<=arrItems.length-1; i++)
	 		{
	 			arrItems[i] = trim(arrItems[i]);
	 			arrItems[i] = addPrefix("area_", arrItems[i]);
			 	try { thisMovie(strMovieApp).flShowArea(arrItems[i]);	}
		   	catch(err) { alert("err: "+err); }
	 		}
	 		return;
	 } 
	 else {
	     strItemId = addPrefix("area_", strItemId);
			try { thisMovie(strMovieApp).flShowArea(strItemId);	}
   		catch(err) { alert("err: " + err); }
	 }
}

// clearHighlight(["area_1_id[, area_2_id, ...]"]): remove highlighted area(s) in flash object, if strItemId left blank all currently highlighted areas are cleared
// If "area_" is omitted in the function call it will be added.
//
function clearHighlight(strItemId)
{
	 if (strItemId != undefined) 
	 { 
		 if (strItemId.indexOf(",") != -1)
		 {
		 		var arrItems = strItemId.split(",");
		 		for (var i=0; i<=arrItems.length-1; i++)
		 		{
		 			arrItems[i] = trim(arrItems[i]);
		 			arrItems[i] = addPrefix("area_", arrItems[i]);
				 	try { thisMovie(strMovieApp).flRestoreArea(arrItems[i]);	}
			   	catch(err) { alert("err: "+err); }
		 		}
		 		return;
		 } 
		 else
		 {	
 				strItemId = addPrefix("area_", strItemId);
				try { thisMovie(strMovieApp).flRestoreArea(strItemId);	}
	   		catch(err) { alert("err: " + err); }
		 }
	 } 
	 else
	 { 
				try { thisMovie(strMovieApp).flRestoreArea(strItemId);	}
	   		catch(err) { alert("err: " + err); }
	 }
}

// swapLevel():change levels in a multi-level flash map object
//
function swapLevel(strLevelName) {

   try { thisMovie(strMovieApp).flSwapMap(strLevelName); }
   catch(err) { alert("err: "+err); }
	
}

function selectLevel(id) {
    $('.level-menu li' ).removeClass('selected');
    $('.level-menu .lev' + id).addClass('selected');
}


//////////////////////////////
// function calls from flash

// clickedArea("area_id"): receives the area_id for the area clicked by the user in the flash object
//
function clickedArea(strItemId)
{
    /*
    clearHighlight();
    var area = strItemId.replace(/area_/, "");
    SC.main.getStoreDataByAreaId(area);
    showArea(strItemId);
    */

   //alert("You have clicked the area known to us as: " + strItemId + " or simply " + removePrefix(strItemId));
}


//////////////////////////////
// resource functions

// thisMovie("strMovieName"): gives an object reference to the flash object
//
function thisMovie(strMovieName) {
    if (navigator.appName.indexOf("Microsoft") != -1 && getInternetExplorerVersion() != 8 && getInternetExplorerVersion() != 7) return window[strMovieName];
  else return document[strMovieName];
}

function getInternetExplorerVersion() {

    var rv = -1; 

    if (navigator.appName == 'Microsoft Internet Explorer') {

        var ua = navigator.userAgent;

        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");

        if (re.exec(ua) != null)

            rv = parseFloat(RegExp.$1);

    }

    return rv;

}

// trim(str): to trim leading and trailing spaces
//
function trim(str) 
{
        return str.replace(/^\s+|\s+$/g,"");
}
    
// addPrefix("strPrefix", "strItem"): adds prefix (e.g "area_") to itemId if missing
//
function addPrefix(strPrefix, strItem)
{
	if (strItem.indexOf("_") == -1)
	 		strItem = strPrefix + strItem;
	return strItem;
}

// removePrefix("strItem"): removes prefix (e.g "area_") from itemId if present
//
function removePrefix(strItem)
{
	if (strItem.indexOf("_") != -1)
	 		strItem = strItem.substr(strItem.indexOf("_")+1);
	return strItem;
}
