// $RCSfile: map.js,v $
// $Source: /cvs/vintenradamecweb-dev/js/map.js,v $, $Revision: 1.11 $, $Date: 2008/04/08 09:14:26 $, $State: Exp $
/***********FLASH MAP STUFF***************/

var http = createRequestObject();

function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		ro = new XMLHttpRequest();
	}
	return ro;
}

function closedupPop(){
    var popup = document.getElementById('dupPop');
    popup.innerHTML = '';
    popup.style.display = 'none';
}

function dupPop(passeddata){
    var poptext = '<span class="closepop" onclick="closedupPop();">close (X)</span><h4>Please select a location:</h4><ul>';
    var passeddata2 = passeddata;
    var passeddata3 = passeddata2.split("-");
    var num = passeddata3.length;
    for(i=0;i<num;i++){
        var items = passeddata3[i].split("|");
        var poptext = poptext + '<li><a href="javascript:sendCountryRequest(\'' + items[0] + '\',\'' + items[2] + '\')">' + items[1] + '</a></li>';
    }
    var poptext = poptext + '</ul>';
    var popup = document.getElementById('dupPop');
    popup.innerHTML = poptext;
    popup.style.display = 'block';
}

function setCountry(country,type){
    var countryitems = country.split("-");
    var current_map = document.getElementById('maptype').value;
    if((type=='country')&&(current_map!='0')){
        showMap('0');
    }
		sendCountryRequest(countryitems[0],countryitems[1]);
    //flashProxy.call('zoomTo', countryitems[1]);
}

/***COUNTRY STUFF***/

function sendCountryRequest(countryID,mapRef) {
    var popup = document.getElementById('dupPop');
    popup.innerHTML = '';
    popup.style.display = 'none';
    setLanguage();
    document.getElementById('selectedRef').value = countryID + '-' + mapRef;
    var officeDetailsContent = document.getElementById('officeDetails').innerHTML;
    document.getElementById('theloader').style.display = 'block';
	var url = "getcontact.php?officeID=" + countryID + "&area=country&lang=" + lang + "&mapRef=' + mapRef + '&timeStamp=" + new Date().getTime();
	http.open('get', url );
	http.onreadystatechange = handleCountryResponse;
	http.send(null);
}

function handleCountryResponse(countryId,mapRef) {
	if(http.readyState == 4) {
		var content = http.responseText;
        
        var selectedRef = document.getElementById('selectedRef').value;
        var selectedRef = selectedRef.split('-');
        preselectCountry(selectedRef[1], selectedRef[0]);
        document.getElementById('officeDetails').innerHTML = content;
        new Effect.Appear('officeDetails',{
            to: 0.9,
            afterFinish: function(){
                document.getElementById('theloader').style.display = 'none';
                closeDetails();
            }
        });
	} else if (http.readyState == 1) {
        /* DO A LOADER */
    }
}


/***STATE STUFF***/

function sendStateRequest(stateID,mapRef) {
    var popup = document.getElementById('dupPop');
    popup.innerHTML = '';
    popup.style.display = 'none';
    setLanguage();
    document.getElementById('selectedRef').value = stateID + '-' + mapRef;
    var officeDetailsContent = document.getElementById('officeDetails').innerHTML;
    if(officeDetailsContent!=''){
        document.getElementById('theloader').style.display = 'block';
    }
    /*Find Selected Country*/
    var countries_dd = document.getElementById("countries_dd");
    var countryID = countries_dd.options[countries_dd.options.selectedIndex].value;
    var countryID = countryID.split('-');
    /*Send Request*/
	var url = 'getcontact.php?officeID=' + stateID + '&parentID=' + countryID[0] + '&area=state&mapRef=' + mapRef + '&lang=' + lang + '&timeStamp=' + new Date().getTime();
	http.open('get', url );
	http.onreadystatechange = handleStateResponse;
	http.send(null);
}

function handleStateResponse() {
	if(http.readyState == 4) {
		var content = http.responseText;
        
        var selectedRef = document.getElementById('selectedRef').value;
        var selectedRef = selectedRef.split('-');
        preselectState(selectedRef[1], selectedRef[0]);
        document.getElementById('officeDetails').innerHTML = content;
        new Effect.Appear('officeDetails',{
            to: 0.9,
            afterFinish: function(){
                document.getElementById('theloader').style.display = 'none';
                closeDetails();
            }
        });

	} else if (http.readyState == 1) {
        /* DO A LOADER */
    }
}

/* Change Contact Page */

function changePageRequest(locID,parentID,mapRef,page,area) {
    setLanguage();
    document.getElementById('theloader').style.display = 'block';
	var url = 'getcontact.php?officeID=' + locID + '&parentID=' + parentID + '&area=' + area + '&mapRef=' + mapRef + '&page=' + page + '&lang=' + lang + '&timeStamp=' + new Date().getTime();
	http.open('get', url );
	http.onreadystatechange = handlePageResponse;
	http.send(null);
}

function handlePageResponse() {
	if(http.readyState == 4) {
		var content = http.responseText;
        document.getElementById('officeDetails').innerHTML = content;
        new Effect.Appear('officeDetails',{
            to: 0.9,
            afterFinish: function(){
                document.getElementById('theloader').style.display = 'none';
                closeDetails();
            }
        });
	} else if (http.readyState == 1) {
        /* DO A LOADER */
    }
}


/* DD STUFF*/

function preselectCountry(mapRef, countryId){

    /*Select the country in the DD*/
    
    var countries_dd = document.getElementById("countries_dd");
    var length = countries_dd.options.length;
    for(i=0; i<=length-1; i++){
        theval = countries_dd.options[i].value;
        var newRef = countryId + '-' + mapRef;
        if(theval==newRef){
            countries_dd.options[i].selected = 'selected';
        }else{
            //countries_dd.options[i].selected = '';
        }
    }

}

function preselectState(mapRef, stateId){

    /*Select the county in the DD*/
    
    var counties_dd = document.getElementById("counties_dd");
    var length = counties_dd.options.length;
    for(i=0; i<=length-1; i++){
        theval = counties_dd.options[i].value;
        var newRef = stateId + '-' + mapRef;
        if(theval==newRef){
            counties_dd.options[i].selected = 'selected';
        }else{
            //countries_dd.options[i].selected = '';
        }
    }

}

/*DISPLAY A NEW MAP*/

function showMap(mapID,mapRef,countryId){
    document.getElementById('theloader').style.display = 'block';
    if(mapID==0){
        var map = 'world.swf?data_file=countries_data.php';
    }else{
        var map = 'map' + mapID + '.swf?data_file=map' + mapID + '-' + countryId + 'data.php';
    }
    
    preselectCountry(mapRef, countryId);

    //var uid = new Date().getTime();
    //var flashProxy = new FlashProxy(uid, 'js/JavaScriptFlashGateway.swf');
    var tag = new FlashTag(map, 500, 280);
    tag.setFlashvars('lcId='+uid);
    document.getElementById('maptype').value = mapID;
    document.getElementById('mapAreaDisplay').innerHTML = tag;
    //statesdd(mapID,countryId);
}

/*DISPLAY STATES DD*/

function statesdd(mapID,countryId){
    setLanguage();
    var url = "includes/inc-states-dd.inc.php?lang=" + lang + "&showMap=" + mapID + "&countryId=" + countryId;
    http.open('get', url );
	http.onreadystatechange = function(){
        if(http.readyState == 4) {
            var content = http.responseText;
            document.getElementById('statesdd').innerHTML = content;
            document.getElementById('theloader').style.display = 'none';
            closeDetails();
        }    
    };
	http.send(null);
}

function setLanguage() {
	if(!document.getElementById('language')) return false;
	lang = document.getElementById('language').firstChild.nodeValue;
}


/*********Exhibitions**********/

/* Change Contact Page */

function changeExhibition(id) {
    setLanguage();
    document.getElementById('theloader').style.display = 'block';
	var url = 'getexhibition.php?id=' + id + '&lang=' + lang + '&timeStamp=' + new Date().getTime();
	http.open('get', url );
	http.onreadystatechange = handleExhibitionResponse;
	http.send(null);
}

function handleExhibitionResponse() {
	if(http.readyState == 4) {
		var content = http.responseText;
        document.getElementById('officeDetails').innerHTML = content;
        new Effect.Appear('officeDetails',{
            to: 0.9,
            afterFinish: function(){
                document.getElementById('theloader').style.display = 'none';
                closeDetails();
                setTimeout("setZoomOut()",1000);
            }
        });
	} else if (http.readyState == 1) {
        /* DO A LOADER */
    }
}

function setZoomOut(){
    flashProxy.call('zoomOut');
}

function closeDetails(){
    if($('officeDetails')){
        $('officeDetails').onclick = function(){
            new Effect.Fade('officeDetails',{
                from: 0.9,
                to: 0.0,
                afterFinish: function(){
                    flashProxy.call('zoomOut');
                }
            });
        }
    }
}
