window.addEvent('domready', function() {
    initPage();
    /*
                                    if (document.readyState && window.ie) {									
                                	    if (window.addEventListener) { window.addEventListener("load",domReady,false); }
                                        else if (window.attachEvent) { window.attachEvent("onload",initPage); }
                                    } else initPage();
    */
                            });

function initPage() {
    //INIZIALIZZO LA RICERCA
    if ($defined($('gmswhereweare_reset'))) 
        $$('#gmswhereweare_reset').each(function(item) {item.addEvent('click', loadList);});
    if ($defined($('gmswhereweare_search_submit'))) 
        $$('#gmswhereweare_search_submit').each(function(item) {item.addEvent('click', loadSearch);});
    if ($defined($('gmswhereweare_search_provfield')))
        $$('#gmswhereweare_search_provfield').each(function(item) {item.addEvent('change', loadSearch);});
    if ($defined($('gmswhereweare_search_cityfield')))
        $$('#gmswhereweare_search_cityfield').each(function(item) {item.addEvent('change', loadSearch);});
 
    initPageBrowser();
} 
function initPageBrowser() {
        $$('a.pagebrowserlink').each(function(item) {
            item.addEvent('click', loadList);
     	});
}


//***************************
// RICERCA
//***************************
function loadSearch(event) {
        $('gmswhereweare_search_form').action = $('gmswhereweare_search_form').action.replace('provval',$('gmswhereweare_search_provfield').value);
        $('gmswhereweare_search_form').action = $('gmswhereweare_search_form').action.replace('cityval',$('gmswhereweare_search_cityfield').value);
        $('gmswhereweare_search_form').action = $('gmswhereweare_search_form').action.replace('zipval',$('gmswhereweare_search_zipfield').value);
	    new Event(event).stop();
        fadeIn( $('gmswhereweare_search_form'), 'listViewContainer', 'ajaxLoading', sendSearch);
}

function sendSearch(targetObj, updateObj, loadingObj) {
	    $(loadingObj).setStyle('width',$(updateObj).clientWidth+'px');
	    $(loadingObj).setStyle('height',$(updateObj).clientHeight+'px');
	    $(loadingObj).setProperty('class','');
	    targetObj.send({update: $(updateObj),
    			        onComplete: function() {viewResults(updateObj, loadingObj);},
    			        onFailure: function() {noResults(updateObj);}
        });
				
}

function viewResults(updateObj, loadingObj) {
	    $(loadingObj).setProperty('class','hide');
        //riassegno le funzion ajax ai link
        initPage();
        //initPageBrowser();
        //faccio ricomparire i dati
        fadeOut(updateObj);
}

function noResults(updateObj) {
	    $(updateObj).setText("No data");
        $(updateObj).setStyle('opacity', '1');
}

function fadeOut(domObj) { 
    $(domObj).effect('opacity', {duration: 1000,fps: 75}).start(1);
}


function fadeIn(domObj, updateObj, loadingObj, targetFunction) { 
		$(updateObj).effect('opacity', {
		                duration: 500,
						fps: 75,
						//effettuo richiesta nuovi dati
						onComplete: function() {targetFunction(domObj, updateObj, loadingObj);}
		}).start(0);
}

//***************************
// LISTA
//***************************
function loadList(event) {
        new Event(event).stop();
        
        //se ho i campi di ricerca devo pulirli 
        if ($defined($('gmswhereweare_search_provfield'))) {
            $$('#gmswhereweare_search_provfield').each(function(item) {item.setProperty('value','');});
        }
        if ($defined($('gmswhereweare_search_wordsfield'))) {
            $$('#gmswhereweare_search_wordsfield').each(function(item) {item.setProperty('value','');});
        }
        //ricarico la lista
        fadeIn( this, 'listViewContainer', 'ajaxLoading', requestList);
}

function requestList(targetObj, updateObj, loadingObj) {
	    $(loadingObj).setStyle('width',$(updateObj).clientWidth+'px');
	    $(loadingObj).setStyle('height',$(updateObj).clientHeight+'px');
	    $(loadingObj).setProperty('class','');
	    var url = targetObj.getProperty("href");
        new Ajax(url, {
                        data: '&tx_gmswhereweare_pi1[view_mode]=0&type=9912',
    			        method: 'get',
    			        update: $(updateObj),
            	        onComplete: function() {viewResults(updateObj, loadingObj);},
    			        onFailure: function() {noResults(updateObj);}
        }).request();
}




